Compare commits

...

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

10 changed files with 246 additions and 378 deletions

12
.gitignore vendored
View File

@ -1 +1,11 @@
SOURCES/0.4.15.tar.gz
/libproxy-0.*.tar.gz
/0.4.12.tar.gz
/0.4.13.tar.gz
/libproxy-0.4.14.tar.xz
/0.4.15.tar.gz
/libproxy-0.4.17.tar.xz
/libproxy-0.4.18.tar.xz
/0.5.1.tar.gz
/0.5.2.tar.gz
/0.5.3.tar.gz
/0.5.5.tar.gz

View File

@ -1 +0,0 @@
2dc0fc31cad78ce3d7a5ceb8fa8df07010f5c13e SOURCES/0.4.15.tar.gz

View File

@ -1,41 +0,0 @@
diff -up libproxy-0.4.11/libproxy/extension_pacrunner.cpp.crash libproxy-0.4.11/libproxy/extension_pacrunner.cpp
--- libproxy-0.4.11/libproxy/extension_pacrunner.cpp.crash 2010-07-29 08:14:59.000000000 -0400
+++ libproxy-0.4.11/libproxy/extension_pacrunner.cpp 2013-11-11 15:23:56.987266457 -0500
@@ -22,20 +22,10 @@ using namespace libproxy;
pacrunner::pacrunner(string, const url&) {}
-pacrunner_extension::pacrunner_extension() {
- this->pr = NULL;
-}
+pacrunner_extension::pacrunner_extension() {}
-pacrunner_extension::~pacrunner_extension() {
- if (this->pr) delete this->pr;
-}
+pacrunner_extension::~pacrunner_extension() {}
pacrunner* pacrunner_extension::get(string pac, const url& pacurl) throw (bad_alloc) {
- if (this->pr) {
- if (this->last == pac)
- return this->pr;
- delete this->pr;
- }
-
- return this->pr = this->create(pac, pacurl);
+ return this->create(pac, pacurl);
}
diff -up libproxy-0.4.11/libproxy/proxy.cpp.crash libproxy-0.4.11/libproxy/proxy.cpp
--- libproxy-0.4.11/libproxy/proxy.cpp.crash 2013-11-11 15:25:27.309271353 -0500
+++ libproxy-0.4.11/libproxy/proxy.cpp 2013-11-11 15:25:31.569271584 -0500
@@ -416,7 +416,9 @@ void proxy_factory::run_pac(url &realurl
/* Run the PAC, but only try one PACRunner */
if (debug) cerr << "Using pacrunner: " << typeid(*pacrunners[0]).name() << endl;
- string pacresp = pacrunners[0]->get(this->pac, this->pacurl->to_string())->run(realurl);
+ pacrunner* runner = pacrunners[0]->get(this->pac, this->pacurl->to_string());
+ string pacresp = runner->run(realurl);
+ delete runner;
if (debug) cerr << "Pacrunner returned: " << pacresp << endl;
format_pac_response(pacresp, response);
}

View File

@ -1,57 +0,0 @@
From a83dae404feac517695c23ff43ce1e116e2bfbe0 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@gnome.org>
Date: Wed, 9 Sep 2020 11:12:02 -0500
Subject: [PATCH] Rewrite url::recvline to be nonrecursive
This function processes network input. It's semi-trusted, because the
PAC ought to be trusted. But we still shouldn't allow it to control how
far we recurse. A malicious PAC can cause us to overflow the stack by
sending a sufficiently-long line without any '\n' character.
Also, this function failed to properly handle EINTR, so let's fix that
too, for good measure.
Fixes #134
---
libproxy/url.cpp | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/libproxy/url.cpp b/libproxy/url.cpp
index ee776b2..68d69cd 100644
--- a/libproxy/url.cpp
+++ b/libproxy/url.cpp
@@ -388,16 +388,24 @@ string url::to_string() const {
return m_orig;
}
-static inline string recvline(int fd) {
- // Read a character.
- // If we don't get a character, return empty string.
- // If we are at the end of the line, return empty string.
- char c = '\0';
-
- if (recv(fd, &c, 1, 0) != 1 || c == '\n')
- return "";
-
- return string(1, c) + recvline(fd);
+static string recvline(int fd) {
+ string line;
+ int ret;
+
+ // Reserve arbitrary amount of space to avoid small memory reallocations.
+ line.reserve(128);
+
+ do {
+ char c;
+ ret = recv(fd, &c, 1, 0);
+ if (ret == 1) {
+ if (c == '\n')
+ return line;
+ line += c;
+ }
+ } while (ret == 1 || (ret == -1 && errno == EINTR));
+
+ return line;
}
char* url::get_pac() {

View File

@ -1,93 +0,0 @@
From 4411b523545b22022b4be7d0cac25aa170ae1d3e Mon Sep 17 00:00:00 2001
From: Fei Li <lifeibiren@gmail.com>
Date: Fri, 17 Jul 2020 02:18:37 +0800
Subject: [PATCH] Fix buffer overflow when PAC is enabled
The bug was found on Windows 10 (MINGW64) when PAC is enabled. It turned
out to be the large PAC file (more than 102400 bytes) returned by a
local proxy program with no content-length present.
---
libproxy/url.cpp | 44 +++++++++++++++++++++++++++++++-------------
1 file changed, 31 insertions(+), 13 deletions(-)
diff --git a/libproxy/url.cpp b/libproxy/url.cpp
index ee776b2..8684086 100644
--- a/libproxy/url.cpp
+++ b/libproxy/url.cpp
@@ -54,7 +54,7 @@ using namespace std;
#define PAC_MIME_TYPE_FB "text/plain"
// This is the maximum pac size (to avoid memory attacks)
-#define PAC_MAX_SIZE 102400
+#define PAC_MAX_SIZE 0x800000
// This is the default block size to use when receiving via HTTP
#define PAC_HTTP_BLOCK_SIZE 512
@@ -478,15 +478,13 @@ char* url::get_pac() {
}
// Get content
- unsigned int recvd = 0;
- buffer = new char[PAC_MAX_SIZE];
- memset(buffer, 0, PAC_MAX_SIZE);
+ std::vector<char> dynamic_buffer;
do {
unsigned int chunk_length;
if (chunked) {
// Discard the empty line if we received a previous chunk
- if (recvd > 0) recvline(sock);
+ if (!dynamic_buffer.empty()) recvline(sock);
// Get the chunk-length line as an integer
if (sscanf(recvline(sock).c_str(), "%x", &chunk_length) != 1 || chunk_length == 0) break;
@@ -498,21 +496,41 @@ char* url::get_pac() {
if (content_length >= PAC_MAX_SIZE) break;
- while (content_length == 0 || recvd != content_length) {
- int r = recv(sock, buffer + recvd,
- content_length == 0 ? PAC_HTTP_BLOCK_SIZE
- : content_length - recvd, 0);
+ while (content_length == 0 || dynamic_buffer.size() != content_length) {
+ // Calculate length to recv
+ unsigned int length_to_read = PAC_HTTP_BLOCK_SIZE;
+ if (content_length > 0)
+ length_to_read = content_length - dynamic_buffer.size();
+
+ // Prepare buffer
+ dynamic_buffer.resize(dynamic_buffer.size() + length_to_read);
+
+ int r = recv(sock, dynamic_buffer.data() + dynamic_buffer.size() - length_to_read, length_to_read, 0);
+
+ // Shrink buffer to fit
+ if (r >= 0)
+ dynamic_buffer.resize(dynamic_buffer.size() - length_to_read + r);
+
+ // PAC size too large, discard
+ if (dynamic_buffer.size() >= PAC_MAX_SIZE) {
+ chunked = false;
+ dynamic_buffer.clear();
+ break;
+ }
+
if (r <= 0) {
chunked = false;
break;
}
- recvd += r;
}
} while (chunked);
- if (content_length != 0 && string(buffer).size() != content_length) {
- delete[] buffer;
- buffer = NULL;
+ if (content_length == 0 || content_length == dynamic_buffer.size()) {
+ buffer = new char[dynamic_buffer.size() + 1];
+ if (!dynamic_buffer.empty()) {
+ memcpy(buffer, dynamic_buffer.data(), dynamic_buffer.size());
+ }
+ buffer[dynamic_buffer.size()] = '\0';
}
}

View File

@ -1,23 +0,0 @@
.TH PROXY "1" "September 2013" "libproxy" "User Commands"
.SH NAME
proxy \- Display the proxy server that should be used to reach a given a network resource
.SH SYNOPSIS
proxy
.SH DESCRIPTION
Display the proxy server that should be used to reach a given a network resource.
.PP
libproxy is a library that provides automatic proxy configuration management
using different backends.
.SH EXAMPLE
.B echo http://www.example.com/ | proxy
http://webcache:3128 direct://
.SH AUTHOR
This manual page was written by
.MT bigon@debian.org
Laurent Bigonville
.ME ,
for the Debian GNU/Linux system (but may be used by others).
.SH SEE ALSO
.UR http://code.google.com/p/libproxy/
libproxy
.UE .

View File

@ -1,209 +1,151 @@
# When we are bootstrapping, we drop some dependencies.
# Set this to 0 after bootstrapping.
%{!?_with_bootstrap: %global bootstrap 0}
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
Name: libproxy
Version: 0.4.15
Release: 5.5%{?dist}
Summary: A library handling all the details of proxy configuration
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
Group: System Environment/Libraries
License: LGPLv2+
URL: https://libproxy.github.io/libproxy/
Source0: https://github.com/libproxy/%{name}/archive/%{version}.tar.gz
# Taken from the Debian package.
Source1: proxy.1
Patch1: libproxy-0.4.11-crash.patch
* Thu Nov 02 2023 David King <amigadave@amigadave.com> - 0.5.3-3
- Install a versioned library symlink (#2247508)
# https://bugzilla.redhat.com/show_bug.cgi?id=1880350
Patch2: libproxy-0.4.15-fix-CVE-2020-25219.patch
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
# https://bugzilla.redhat.com/show_bug.cgi?id=1883584
Patch3: libproxy-0.4.15-fix-pac-buffer-overflow.patch
* Fri Jul 07 2023 David King <amigadave@amigadave.com> - 0.5.3-1
- Update to 0.5.3
BuildRequires: libmodman-devel >= 2.0.1
BuildRequires: cmake >= 2.6.0
* Sun Jun 18 2023 David King <amigadave@amigadave.com> - 0.5.2-1
- Update to 0.5.2
%if ! 0%{?bootstrap}
# gnome
BuildRequires: pkgconfig(gio-2.0) >= 2.26
# NetworkManager
BuildRequires: pkgconfig(libnm)
BuildRequires: pkgconfig(dbus-1)
# webkit (gtk3)
BuildRequires: pkgconfig(javascriptcoregtk-4.0)
# Python
BuildRequires: python3-devel
%else
# Obsoletes of disabled subpackages.
Provides: %{name}-webkitgtk4 = %{version}-%{release}
Obsoletes: %{name}-webkitgtk4 < %{version}-%{release}
%endif
* Wed May 24 2023 David King <amigadave@amigadave.com> - 0.5.1-1
- Update to 0.5.1
* Tue May 23 2023 David King <amigadave@amigadave.com> - 0.5.0-3
- Fix libproxy rpath (#2209173)
%description
libproxy offers the following features:
* Mon May 22 2023 Adam Williamson <awilliam@redhat.com> - 0.5.0-2
- Add missing obsolete/provide for libproxy-duktape
* extremely small core footprint (< 35K)
* no external dependencies within libproxy core
(libproxy plugins may have dependencies)
* only 3 functions in the stable external API
* dynamic adjustment to changing network topology
* a standard way of dealing with proxy settings across all scenarios
* a sublime sense of joy and accomplishment
* Tue May 16 2023 David King <amigadave@amigadave.com> - 0.5.0-1
- Update to 0.5.0
* Wed Feb 08 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 0.4.18-6
- Soften KDE dependency
%package bin
Summary: Binary to test %{name}
Group: Applications/System
Requires: %{name}%{?_isa} = %{version}-%{release}
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.18-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
%description bin
The %{name}-bin package contains the proxy binary for %{name}
* Fri Dec 16 2022 František Zatloukal <fzatlouk@redhat.com> - 0.4.18-4
- Rebuilt for duktape 2.7.0
%if ! 0%{?bootstrap}
%package -n python3-%{name}
Summary: Binding for %{name} and python3
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%{?python_provide:%python_provide python3-%{name}}
* Wed Jul 20 2022 Michael Catanzaro <mcatanzaro@redhat.com> - 0.4.18-3
- Replace WebKitGTK pacrunner backend with duktape
%description -n python3-%{name}
The python3 binding for %{name}
* Tue Jul 19 2022 Milan Crha <mcrha@redhat.com> - 0.4.18-2
- Change WebKitGTK API dependency to 4.1 (using libsoup3)
%package gnome
Summary: Plugin for %{name} and gnome
Group: System Environment/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
* Tue Jun 21 2022 David King <amigadave@amigadave.com> - 0.4.18-1
- Update to 0.4.18
%description gnome
The %{name}-gnome package contains the %{name} plugin for gnome.
* Mon Jun 20 2022 David King <amigadave@amigadave.com> - 0.4.17-6
- Accept Python 3.11 (#2098739)
%package networkmanager
Summary: Plugin for %{name} and networkmanager
Group: System Environment/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
* Mon Mar 28 2022 David King <amigadave@amigadave.com> - 0.4.17-5
- Fix build (#2069137)
%description networkmanager
The %{name}-networkmanager package contains the %{name} plugin
for networkmanager.
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.17-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
%package webkitgtk4
Summary: Plugin for %{name} and webkitgtk3
Group: System Environment/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Provides: %{name}-pac = %{version}-%{release}
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.17-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
%description webkitgtk4
The %{name}-webkitgtk4 package contains the %{name} plugin for
webkitgtk3.
* Mon Jun 21 2021 David King <amigadave@amigadave.com> - 0.4.17-2
- Rebuilt for Python 3.10 (#1898060)
%endif
* Fri May 28 2021 David King <amigadave@amigadave.com> - 0.4.17-1
- Update to 0.4.17
%package devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.15-30
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
* Mon Nov 30 2020 David King <amigadave@amigadave.com> - 0.4.15-29
- Tweak KDE conditionals to only apply at runtime
%prep
%autosetup -p1
* Mon Nov 30 2020 David King <amigadave@amigadave.com> - 0.4.15-28
- Depend on KDE only on Fedora (#1902608)
* Tue Oct 06 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 0.4.15-27
- Disable mozjs backend by default, obsolete it by webkit subpackage
%build
%{cmake} \
-DMODULE_INSTALL_DIR=%{_libdir}/%{name}/%{version}/modules \
-DWITH_PERL=OFF \
-DWITH_PYTHON2=OFF \
-DWITH_KDE=OFF \
-DWITH_MOZJS=OFF \
-DBIPR=0 \
%if ! 0%{?bootstrap}
-DWITH_GNOME3=ON \
-DWITH_PYTHON3=ON \
-DWITH_WEBKIT3=ON \
%else
-DWITH_PYTHON3=OFF \
%endif
.
%make_build
* Tue Sep 29 2020 David King <amigadave@amigadave.com> - 0.4.15-26
- Fix PAC buffer overflow (#1883584)
* Fri Sep 18 2020 David King <amigadave@amigadave.com> - 0.4.15-25
- Fix CVE-2020-25219 (#1880350)
%install
%make_install INSTALL="install -p"
* Tue Aug 18 2020 Jeff Law <law@redhat.com> - 0.4.15-24
- Force C++14 as this code is not C++17 ready
#In case all modules are disabled
mkdir -p %{buildroot}%{_libdir}/%{name}/%{version}/modules
* Tue Aug 04 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 0.4.15-23
- build with mozjs68
- backport use after free fix for mozjs backend
# Man page.
install -Dpm 0644 %{SOURCE1} %{buildroot}/%{_mandir}/man1/proxy.1
* Tue Aug 04 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 0.4.15-22
- Fix build by switching to cmake macros instead of make
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.15-21
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
%check
make test
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.15-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
%post -p /sbin/ldconfig
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 0.4.15-19
- Rebuilt for Python 3.9
%postun -p /sbin/ldconfig
* Thu Feb 13 2020 David King <amigadave@amigadave.com> - 0.4.15-18
- Fix build against Python 3.9 (#1791942)
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.15-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
%files
%doc AUTHORS README
%license COPYING
%{_libdir}/*.so.*
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/%{version}
%dir %{_libdir}/%{name}/%{version}/modules
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 0.4.15-16
- Rebuilt for Python 3.8.0rc1 (#1748018)
%files bin
%{_bindir}/proxy
%{_mandir}/man1/proxy.1*
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 0.4.15-15
- Rebuilt for Python 3.8
%if ! 0%{?bootstrap}
%files -n python3-%{name}
%{python3_sitelib}/__pycache__/*
%{python3_sitelib}/%{name}.*
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.15-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
%files gnome
%{_libdir}/%{name}/%{version}/modules/config_gnome3.so
%{_libexecdir}/pxgsettings
* Fri Feb 08 2019 Kalev Lember <klember@redhat.com> - 0.4.15-13
- Build with mozjs60
%files networkmanager
%{_libdir}/%{name}/%{version}/modules/network_networkmanager.so
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.15-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
%files webkitgtk4
%{_libdir}/%{name}/%{version}/modules/pacrunner_webkit.so
%endif
* Thu Nov 22 2018 David King <amigadave@amigadave.com> - 0.4.15-11
- Add Obsoletes on old Python 2 subpackage (#1634211)
%files devel
%{_includedir}/proxy.h
%{_libdir}/*.so
%{_libdir}/pkgconfig/libproxy-1.0.pc
%{_datadir}/cmake/Modules/Findlibproxy.cmake
* Thu Sep 20 2018 David King <amigadave@amigadave.com> - 0.4.15-10
- Remove Python 2 subpackage (#1631331)
* Sun Aug 26 2018 Peter Robinson <pbrobinson@fedoraproject.org> 0.4.15-9
- Add patch and build against mozjs 52
%changelog
* Thu Aug 15 2024 Michael Santana <msantana@redhat.com> - 0.4.15-5.5
- Bump up version number
* Fri Jul 20 2018 David King <amigadave@amigadave.com> - 0.4.15-8
- Provide direct path to Python 2 (#1604646)
* Tue Jul 30 2024 Michael Santana <msantana@redhat.com> - 0.4.15-5.4
- Fix PAC buffer overflow (#1869639)
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.15-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jul 30 2024 Michael Santana <msantana@redhat.com> - 0.4.15-5.3
- Fix CVE-2020-25219 (#1880349)
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 0.4.15-7
- Rebuilt for Python 3.7
* Thu May 31 2018 Dan Winship <danw@redhat.com> - 0.4.15-5.2
- Drop pacrunner-mozjs (#1571640)
* Wed May 30 2018 Dan Winship <danw@redhat.com> - 0.4.15-5.1
- Drop python2 subpackage (#1559092)
- Drop PAC runner based on the "pacrunner" package (#1569023)
- Replace pacrunner-crash-fix patch with version from RHEL7
- Drop kde subpackage (#1538147)
* Fri May 04 2018 David King <amigadave@amigadave.com> - 0.4.15-6
- Resurrect an old patch (#1459779)
- Add BuildRequires on gcc-c++
- Switch to %%ldconfig_scriptlets
- Remove obsolete Group tags
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.15-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
@ -382,7 +324,7 @@ make test
- Update to 0.3.0
* Thu Sep 17 2009 kwizart < kwizart at gmail.com > - 0.2.3-12
- Remove Requirement of %%{name}-pac virtual provides
- Remove Requirement of %%{name}-pac virtual provides
from the main package - #524043
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.3-11
@ -397,7 +339,7 @@ make test
* Thu Jan 22 2009 kwizart < kwizart at gmail.com > - 0.2.3-8
- Merge NetworkManager module into the main libproxy package
- Main Requires the -python and -bin subpackage
- Main Requires the -python and -bin subpackage
(splitted for multilibs compliance).
* Fri Oct 24 2008 kwizart < kwizart at gmail.com > - 0.2.3-7
@ -424,7 +366,7 @@ make test
- Add Requires: gecko-libs >= %%{gecko_version}
- Fix some descriptions
- Add plugin-webkit package
* Fri Jul 11 2008 kwizart < kwizart at gmail.com > - 0.2.3-1
- Convert to Fedora spec

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating.functional}

124
libproxy.spec Normal file
View File

@ -0,0 +1,124 @@
%global _privatelibs libpxbackend-1.0[.]so.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
Name: libproxy
Version: 0.5.5
Release: %autorelease
Summary: A library handling all the details of proxy configuration
License: LGPL-2.1-or-later
URL: https://libproxy.github.io/libproxy/
Source0: https://github.com/libproxy/%{name}/archive/refs/tags/%{version}.tar.gz
BuildRequires: gcc
BuildRequires: meson
BuildRequires: /usr/bin/gi-docgen
BuildRequires: /usr/bin/vapigen
BuildRequires: pkgconfig(duktape)
BuildRequires: pkgconfig(gio-2.0) >= 2.71.3
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(libcurl)
BuildRequires: python3-devel
# For config-gnome
BuildRequires: pkgconfig(gsettings-desktop-schemas)
# Folded into main package in 0.5.0. Remove in F41.
Provides: python3-%{name} = %{version}-%{release}
Provides: %{name}-pac = %{version}-%{release}
# Obsoletes of subpackages prior to 0.5.0 rewrite. Remove in F41.
Provides: %{name}-gnome = %{version}-%{release}
Obsoletes: %{name}-gnome < %{version}-%{release}
Provides: %{name}-kde = %{version}-%{release}
Obsoletes: %{name}-kde < %{version}-%{release}
Provides: %{name}-mozjs = %{version}-%{release}
Obsoletes: %{name}-mozjs < %{version}-%{release}
Provides: %{name}-pacrunner = %{version}-%{release}
Obsoletes: %{name}-pacrunner < %{version}-%{release}
Provides: %{name}-webkitgtk4 = %{version}-%{release}
Obsoletes: %{name}-webkitgtk4 < %{version}-%{release}
Provides: %{name}-duktape = %{version}-%{release}
Obsoletes: %{name}-duktape < %{version}-%{release}
%description
libproxy offers the following features:
* extremely small core footprint
* minimal dependencies within libproxy core
* only 4 functions in the stable-ish external API
* dynamic adjustment to changing network topology
* a standard way of dealing with proxy settings across all scenarios
* a sublime sense of joy and accomplishment
%package bin
Summary: Binary to test %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description bin
The %{name}-bin package contains the proxy binary for %{name}
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%autosetup -p1
%build
%meson \
-Dconfig-gnome=true \
-Dconfig-kde=true \
-Dconfig-osx=false \
-Dconfig-windows=false \
-Dintrospection=true \
-Dtests=true \
-Dvapi=true
%meson_build
%install
%meson_install
%check
%meson_test
%ldconfig_scriptlets
%files
%doc CHANGELOG.md README.md
%license COPYING
%dir %{_libdir}/girepository-1.0
%{_libdir}/girepository-1.0/Libproxy-1.0.typelib
%{_libdir}/libproxy.so.*
%dir %{_libdir}/libproxy
%{_libdir}/libproxy/libpxbackend-1.0.so
%files bin
%{_bindir}/proxy
%{_mandir}/man8/proxy.8*
%files devel
%{_docdir}/libproxy-1.0/
%{_includedir}/libproxy/
%{_libdir}/libproxy.so
%{_libdir}/pkgconfig/libproxy-1.0.pc
%dir %{_datadir}/gir-1.0
%{_datadir}/gir-1.0/Libproxy-1.0.gir
%dir %{_datadir}/vala/vapi/
%{_datadir}/vala/vapi/libproxy-1.0.deps
%{_datadir}/vala/vapi/libproxy-1.0.vapi
%changelog
%autochangelog

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (0.5.5.tar.gz) = 101139fe6972c9b8b46a8bc5f5cea807649ad21e201a9cd7d532d2145c34eadc861d8039fc8a2bf129f364ddc99ffb1324ab8f19bb0b4b9e52eb0f6bd703c8a8