From 3c96a02508da9489d9c100c7ca71f53c4db06d7165580d41220c782ae6d61721 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 3 Sep 2010 11:57:22 +0000 Subject: [PATCH] Accepting request 46523 from GNOME:Factory Copy from GNOME:Factory/libproxy based on submit request 46523 from user dimstar OBS-URL: https://build.opensuse.org/request/show/46523 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libproxy?expand=0&rev=22 --- baselibs.conf | 1 - libproxy-0.4.3.tar.bz2 | 3 - libproxy-0.4.5.tar.bz2 | 3 + libproxy-plugins.changes | 64 ++++++++++ libproxy-plugins.spec | 248 +++++++++++++++++++++++---------------- libproxy.changes | 64 ++++++++++ libproxy.spec | 248 +++++++++++++++++++++++---------------- update-from-svn.sh | 28 +++++ 8 files changed, 459 insertions(+), 200 deletions(-) delete mode 100644 libproxy-0.4.3.tar.bz2 create mode 100644 libproxy-0.4.5.tar.bz2 create mode 100644 update-from-svn.sh diff --git a/baselibs.conf b/baselibs.conf index ad47a89..a3b6276 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,4 +1,3 @@ -libmodman0 libproxy1 libproxy1-config-gnome supplements "packageand(libproxy1-:libproxy1-gnome)" diff --git a/libproxy-0.4.3.tar.bz2 b/libproxy-0.4.3.tar.bz2 deleted file mode 100644 index d9fe728..0000000 --- a/libproxy-0.4.3.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:453bb246a06aae706df5e3252b597c1c7c69121f4f8c69e60024101d9f11e59e -size 64182 diff --git a/libproxy-0.4.5.tar.bz2 b/libproxy-0.4.5.tar.bz2 new file mode 100644 index 0000000..f934302 --- /dev/null +++ b/libproxy-0.4.5.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cccd9aff6304c7b687ef2364cd95475e6771d3920a521ad1b1d9c3cc70d13d1 +size 70452 diff --git a/libproxy-plugins.changes b/libproxy-plugins.changes index 34a527a..1cd010c 100644 --- a/libproxy-plugins.changes +++ b/libproxy-plugins.changes @@ -1,3 +1,67 @@ +------------------------------------------------------------------- +Fri Aug 20 15:16:46 UTC 2010 - dimstar@opensuse.org + +- Mono bindings are not available for all supported platforms, + thus wrapping it in a if have_mono [...] endif. + +------------------------------------------------------------------- +Thu Aug 19 22:16:22 UTC 2010 - dimstar@opensuse.org + +- Check for build_snapshot: the svn snapshot project contains + unversioned tarballs. + +------------------------------------------------------------------- +Thu Aug 19 15:49:02 UTC 2010 - dimstar@opensuse.org + +- Update to version 0.4.5: + + C# bindings are installable (-DWITH_DOTNET=ON) + + C# bindings installation path can be changed using -DGAC_DIR= + + Internal libmodman build fixed + + Installation dirs are now all relative to CMAKE_INSTALL_PREFIX + + Fixed test while using --as-needed linker flag + + Fixed generation of libproxy-1.0.pc + + Basic support for Mingw added (not yet 100% functional) + + Ruby binding implemented (not yet in the build system) + + Fixed modules not being found caused by relative + LIBEXEC_INSTALL_DIR + + Fixed bug with builtin plugins (Issue 133) + + Vala bindings installation path can be changed using + -DVAPI_DIR= + + Python bindings installation path can be changed using + -DPYTHON_SITEPKG_DIR= + + Perl bindings can be installed in vendor directory + (-DPERL_VENDORARCH=ON) + + Perl bindings installation path can be change using + -DPX_PERL_ARCH= + + Unit test now builds on OSX +- Changes from version 0.4.4: + + Add support for optionally building using a system libmodman + + Rework build system to be cleaner + + Fix two major build system bugs: 127, 128 + +------------------------------------------------------------------- +Mon Jul 5 21:42:37 UTC 2010 - dimstar@opensuse.org + +- Add mono-devel BuildRequires to install the csharp bindings. + +------------------------------------------------------------------- +Tue Jun 22 17:48:31 UTC 2010 - dimstar@opensuse.org + +- Initial work to support win32 cross building. + +------------------------------------------------------------------- +Mon Jun 14 17:48:01 UTC 2010 - dimstar@opensuse.org + +- Use external libmodman: add libmodman-devel BuildRequires. +- Drop libmodman0 subpackage + +------------------------------------------------------------------- +Wed Jun 9 22:52:05 UTC 2010 - dimstar@opensuse.org + +- Enable build on other distributions than openSUSE, wrapping + openSUSE rpm tags like Recommends and Supplements in %if + statements. + ------------------------------------------------------------------- Mon Jun 7 17:01:55 UTC 2010 - dimstar@opensuse.org diff --git a/libproxy-plugins.spec b/libproxy-plugins.spec index ca98886..0462a19 100644 --- a/libproxy-plugins.spec +++ b/libproxy-plugins.spec @@ -1,8 +1,7 @@ # -# spec file for package libproxy-plugins (Version 0.4.3) +# spec file for package libproxy-plugins (Version 0.4.5) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. -# Copyright (c) 2010 Dominique Leuenberger, Amsterdam, Netherlands. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,20 +15,21 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild %define build_core_not_modules 0 -%if 0%{suse_version} > 1120 +%if 0%{?suse_version} +%define have_mono 1 +%else +%define have_mono 0 +%endif + +%if 0%{?suse_version} > 1120 %define xulrunner_ver 192 %else -%if 0%{suse_version} > 1110 +%if 0%{?suse_version} > 1110 %define xulrunner_ver 191 %else -%if 0%{suse_version} >= 1100 %define xulrunner_ver 190 -%else -%define xulrunner_ver 181 -%endif %endif %endif Url: http://code.google.com/p/libproxy/ @@ -38,34 +38,52 @@ Url: http://code.google.com/p/libproxy/ Name: libproxy-plugins Group: System/Libraries Summary: Libproxy provides consistent proxy configuration to applications -Version: 0.4.3 +Version: 0.4.5 Release: 1 -Source: http://libproxy.googlecode.com/files/%{_name}-%{version}.tar.bz2 +%if 0%{?build_snapshot} +%define _sourcename %{_name} +%else +%define _sourcename %{_name}-%{version} +%endif +Source: http://libproxy.googlecode.com/files/%{_sourcename}.tar.bz2 +# Script used for automatic snapshot updates +Source98: update-from-svn.sh Source99: baselibs.conf -License: LGPLv2.1+ +License: GPLv2+ ; LGPLv2.1+ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: cmake BuildRequires: gcc-c++ -BuildRequires: pkg-config +BuildRequires: libmodman-devel +BuildRequires: pkgconfig BuildRequires: zlib-devel -%if !%build_core_not_modules +%if !%{build_core_not_modules} +%if ! 0%{?windows} BuildRequires: dbus-1-devel BuildRequires: gconf2-devel # For directory ownership, but also because we want to rebuild the modules if # the library changed BuildRequires: libproxy1 BuildRequires: libwebkit-devel +%if 0%{?suse_version} BuildRequires: mozilla-xulrunner%{xulrunner_ver}-devel +%else +BuildRequires: xulrunner-devel +%endif BuildRequires: NetworkManager-devel BuildRequires: libkde4-devel BuildRequires: libqt4-devel +%endif %else +%if 0%{?have_mono} +BuildRequires: mono-devel +%endif +BuildRequires: perl BuildRequires: python-devel %endif -%if %suse_version <= 1110 -%define python_sitelib %{py_sitedir} -%endif +%{!?python_sitelib: %global python_sitelib %(%__python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(%__python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%{!?_assemblies_dir: %global _assemblies_dir %(pkg-config cecil --variable=assemblies_dir)} %description libproxy offers the following features: * extremely small core @@ -73,11 +91,8 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 @@ -107,11 +122,8 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 @@ -126,33 +138,19 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 -%package -n libmodman0 -License: GPLv2+ ; LGPLv2.1+ -Summary: Libproxy's Module Management Library -Group: System/Libraries -Obsoletes: libmodman0_0_0 < %{version} -Provides: libmodman0_0_0 = %{version} - -%description -n libmodman0 -A module management library taking care of loading / unload modules -including heuristics in detecting which bindings might already -be used by an application and favouring this one. - - %package -n python-libproxy License: GPLv2+ ; LGPLv2.1+ Summary: Python bindings for libproxy Group: System/Libraries +%if 0%{?suse_version} > 1110 BuildArch: noarch -Requires: libproxy1 = %{version} %py_requires +%endif +Requires: libproxy1 = %{version} %description -n python-libproxy libproxy offers the following features: * extremely small core @@ -160,11 +158,8 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 @@ -173,7 +168,8 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Perl bindings for libproxy Group: Development/Libraries/Perl Requires: libproxy1 = %{version} -Requires: perl = %{perl_version} +# For Fedora at least perl = perl_version does not work. +Requires: perl >= %{perl_version} %description -n perl-Net-Libproxy libproxy offers the following features: * extremely small core @@ -181,13 +177,11 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 +%if 0%{?have_mono} %package -n libproxy-sharp License: GPLv2+ ; LGPLv2.1+ @@ -201,13 +195,10 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 - +%endif %else @@ -216,9 +207,12 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Libproxy module for GNOME configuration Group: System/Libraries Requires: libproxy1 = %{version} +%if 0%{?suse_version} Recommends: libproxy1-pacrunner = %{version} -Recommends: libproxy1-wpad-dns = %{version} Supplements: packageand(libproxy1:gconf2) +%else +Requires: libproxy1-pacrunner = %{version} +%endif Provides: libproxy-gnome = %{version} Obsoletes: libproxy-gnome < %{version} @@ -232,9 +226,12 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Libproxy module for KDE configuration Group: System/Libraries Requires: libproxy1 = %{version} +%if 0%{?suse_version} Recommends: libproxy1-pacrunner = %{version} -Recommends: libproxy1-wpad-dns = %{version} Supplements: packageand(libproxy1:libkde4) +%else +Requires: libproxy1-pacrunner = %{version} +%endif Provides: libproxy-kde = %{version} Obsoletes: libproxy-kde < %{version} @@ -248,7 +245,9 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Libproxy module to support wpad/pac parsing via Mozilla JavaScript Engine Group: System/Libraries Requires: libproxy1 = %{version} +%if 0%{?suse_version} Supplements: packageand(libproxy1:mozilla-xulrunner%{xulrunner_ver}) +%endif # A virtual symbol to identify that this is a pacrunner. Provides: libproxy1-pacrunner = %{version} @@ -262,7 +261,9 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Libproxy module to support WPAD/PAC parsing via WebKit JavaScript Engine Group: System/Libraries Requires: libproxy1 = %{version} -Supplements: packageand(libproxy1:libwebkit-1) +%if 0%{?suse_version} +Supplements: packageand(libproxy1:libwebkitgtk-0) +%endif # A virtual symbol to identify that this is a pacrunner. Provides: libproxy1-pacrunner = %{version} @@ -270,13 +271,14 @@ Provides: libproxy1-pacrunner = %{version} A module to extend libproxy with capabilities to pass addresses to a WPAD/PAC script and have it find the correct proxy. - %package -n libproxy1-networkmanager License: GPLv2+ ; LGPLv2.1+ Summary: Libproxy module for NetworkManager configuration Group: System/Libraries Requires: libproxy1 = %{version} +%if 0%{?suse_version} Supplements: packageand(libproxy1:NetworkManager) +%endif %description -n libproxy1-networkmanager A module to extend libproxy with capabilities to query NetworkManager @@ -285,88 +287,134 @@ about network configuration changes. %endif %prep -%setup -q -n %{_name}-%{version} +%setup -q -n %{_sourcename} mkdir build %build cd build +export CXXFLAGS="%{optflags}" +export CFLAGS="%{optflags}" +%if 0%{?suse_version} < 1120 && 0%{?suse_version} +export CXXFLAGS="%{optflags} -DXP_UNIX" +%endif +%if 0%{?windows} +export CXXFLAGS="%{optflags} -fno-stack-protector -static-libgcc" +%endif cmake \ - -DCMAKE_INSTALL_PREFIX=%{_prefix} \ - -Dlibdir=%{_libdir} \ - -Dlibexecdir=%{_libexecdir}/libproxy \ - -Ddatadir=%{_datadir} \ - -Dmoduledir=%{_libdir}/libproxy/%{version}/modules \ +%if 0%{?windows} + -DCMAKE_TOOLCHAIN_FILE=../cmake/mingw32.cmake \ + -DBUILD_TESTING=False \ + -DWITH_DOTNET=OFF \ +%else -DWITH_VALA=yes \ + -DWITH_DOTNET=%{have_mono} \ + -DFORCE_SYSTEM_LIBMODMAN=ON \ +%endif + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DBIN_INSTALL_DIR=%{_bindir} \ + -DLIB_INSTALL_DIR=%{_libdir} \ + -DMODULE_INSTALL_DIR=%{_libdir}/libproxy-%{version}/modules \ + -DLIBEXEC_INSTALL_DIR=%{_libexecdir}/libproxy-%{version} \ + -DSHARE_INSTALL_PREFIX=%{_datadir} \ + -DINCLUDE_INSTALL_DIR=%{_includedir} \ -DPERL_VENDORINSTALL=yes \ +%if ! %build_core_not_modules + -DWITH_DOTNET=OFF \ +%endif +%if 0%{?suse_version} && 0%{?suse_version} < 1120 + -DCMAKE_BUILD_TYPE=DebugFull \ + -DCMAKE_INSTALL_CONFIG_NAME=DebugFull \ +%else + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_CONFIG_NAME=RelWithDebInfo \ +%endif .. -%{__make} %{?jobs:-j%jobs} +%{__make} VERBOSE=1 %install cd build -%makeinstall +make DESTDIR=%{buildroot} install + +# On Windows we also do not want to provide the static libraries. +%if 0%{?windows} +find %{buildroot}%{_libdir} -name '*.dll.a' -delete -print +rm %{buildroot}%{_libdir}/libmodman.dll +%endif + %if %build_core_not_modules # Build the basic directory structure for the modules so we can # own the directories in the main library package -install -d %{buildroot}%{_libexecdir}/libproxy -install -d %{buildroot}%{_libdir}/%{name}/%{version}/modules +install -d %{buildroot}%{_libexecdir}/libproxy-%{version} +install -d %{buildroot}%{_libdir}/%{name}-%{version}/modules %else # remove files that are part of the core -rm %{buildroot}%{_includedir}/*.h +rm -f %{buildroot}%{_includedir}/*.h # Delete all files that exist in the base libproxy package -rm %{buildroot}%{_bindir}/proxy -rm %{buildroot}%{_libdir}/libproxy.so* -rm %{buildroot}%{_libdir}/libmodman.so* -rm %{buildroot}%{python_sitelib}/*.py -rm %{buildroot}%{_libdir}/pkgconfig/libproxy-1.0.pc -rm %{buildroot}%{_datadir}/cmake/Modules/Findlibproxy.cmake -rm %{buildroot}%{_datadir}/vala/vapi/libproxy-1.0.vapi -rm %{buildroot}%{perl_vendorarch}/Net/Libproxy.pm -rm %{buildroot}%{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so +rm -f %{buildroot}%{_bindir}/proxy%{?windows:.exe} +rm -f %{buildroot}%{_libdir}/libproxy.* +rm -f %{buildroot}%{python_sitelib}/*.py +rm -f %{buildroot}%{_libdir}/pkgconfig/libproxy-1.0.pc +rm -f %{buildroot}%{_datadir}/cmake/Modules/Findlibproxy.cmake +rm -f %{buildroot}%{_datadir}/vala/vapi/libproxy-1.0.vapi +rm -f %{buildroot}%{perl_vendorarch}/Net/Libproxy.pm +rm -f %{buildroot}%{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so %endif + +%check +cd build +make test + %if %build_core_not_modules %post -n libproxy1 -p /sbin/ldconfig -%post -n libmodman0 -p /sbin/ldconfig - %postun -n libproxy1 -p /sbin/ldconfig -%postun -n libmodman0 -p /sbin/ldconfig - %files tools %defattr(-, root, root) -%{_bindir}/proxy +%{_bindir}/proxy%{?windows:.exe} %files -n libproxy1 %defattr(-, root, root) +%doc COPYING README AUTHORS +%if ! 0%{?windows} %{_libdir}/libproxy.so.* -%dir %{_libexecdir}/libproxy -%dir %{_libdir}/libproxy -%dir %{_libdir}/libproxy/%{version} -%dir %{_libdir}/libproxy/%{version}/modules -#%{_libdir}/libproxy/%{version}/modules/config_envvar.so -#%{_libdir}/libproxy/%{version}/modules/config_file.so -#%{_libdir}/libproxy/%{version}/modules/config_direct.so -#%{_libdir}/libproxy/%{version}/modules/ignore_*.so - -%files -n libmodman0 -%defattr(-, root, root) -%{_libdir}/libmodman.so.* +%else +%{_libdir}/libproxy.dll +%endif +%dir %{_libexecdir}/libproxy-%{version} +%dir %{_libdir}/libproxy-%{version} +%dir %{_libdir}/libproxy-%{version}/modules %files devel %defattr(-, root, root) %{_includedir}/*.h +%if ! 0%{?windows} %{_libdir}/*.so %{_libdir}/pkgconfig/libproxy-1.0.pc +%if 0%{have_mono} +%{_libdir}/pkgconfig/libproxy-sharp-1.0.pc +%endif %{_datadir}/cmake/Modules/Findlibproxy.cmake %dir %{_datadir}/vala %dir %{_datadir}/vala/vapi %{_datadir}/vala/vapi/libproxy-1.0.vapi +%endif %files -n python-libproxy %defattr(-, root, root) %{python_sitelib}/*.py +%if 0%{?have_mono} + +%files -n libproxy-sharp +%defattr(-, root, root) +%{_assemblies_dir}/gac/libproxy-sharp +%{_assemblies_dir}/libproxy-sharp +%endif + +%if ! 0%{?windows} + %files -n perl-Net-Libproxy %defattr(-,root,root) %dir %{perl_vendorarch}/Net @@ -374,28 +422,32 @@ rm %{buildroot}%{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so %dir %{perl_vendorarch}/auto/Net/Libproxy %{perl_vendorarch}/Net/Libproxy.pm %{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so +%endif %else +%if ! 0%{?windows} + %files -n libproxy1-config-kde4 %defattr(-, root, root) -%{_libdir}/libproxy/%{version}/modules/config_kde4.so +%{_libdir}/libproxy-%{version}/modules/config_kde4.so %files -n libproxy1-config-gnome %defattr(-, root, root) -%{_libdir}/libproxy/%{version}/modules/config_gnome.so -%{_libexecdir}/libproxy/pxgconf +%{_libdir}/libproxy-%{version}/modules/config_gnome.so +%{_libexecdir}/libproxy-%{version}/pxgconf %files -n libproxy1-networkmanager %defattr(-, root, root) -%{_libdir}/libproxy/%{version}/modules/network_networkmanager.so +%{_libdir}/libproxy-%{version}/modules/network_networkmanager.so %files -n libproxy1-pacrunner-webkit %defattr(-, root, root) -%{_libdir}/libproxy/%{version}/modules/pacrunner_webkit.so +%{_libdir}/libproxy-%{version}/modules/pacrunner_webkit.so %files -n libproxy1-pacrunner-mozjs %defattr(-, root, root) -%{_libdir}/libproxy/%{version}/modules/pacrunner_mozjs.so +%{_libdir}/libproxy-%{version}/modules/pacrunner_mozjs.so +%endif %endif %changelog diff --git a/libproxy.changes b/libproxy.changes index 34a527a..1cd010c 100644 --- a/libproxy.changes +++ b/libproxy.changes @@ -1,3 +1,67 @@ +------------------------------------------------------------------- +Fri Aug 20 15:16:46 UTC 2010 - dimstar@opensuse.org + +- Mono bindings are not available for all supported platforms, + thus wrapping it in a if have_mono [...] endif. + +------------------------------------------------------------------- +Thu Aug 19 22:16:22 UTC 2010 - dimstar@opensuse.org + +- Check for build_snapshot: the svn snapshot project contains + unversioned tarballs. + +------------------------------------------------------------------- +Thu Aug 19 15:49:02 UTC 2010 - dimstar@opensuse.org + +- Update to version 0.4.5: + + C# bindings are installable (-DWITH_DOTNET=ON) + + C# bindings installation path can be changed using -DGAC_DIR= + + Internal libmodman build fixed + + Installation dirs are now all relative to CMAKE_INSTALL_PREFIX + + Fixed test while using --as-needed linker flag + + Fixed generation of libproxy-1.0.pc + + Basic support for Mingw added (not yet 100% functional) + + Ruby binding implemented (not yet in the build system) + + Fixed modules not being found caused by relative + LIBEXEC_INSTALL_DIR + + Fixed bug with builtin plugins (Issue 133) + + Vala bindings installation path can be changed using + -DVAPI_DIR= + + Python bindings installation path can be changed using + -DPYTHON_SITEPKG_DIR= + + Perl bindings can be installed in vendor directory + (-DPERL_VENDORARCH=ON) + + Perl bindings installation path can be change using + -DPX_PERL_ARCH= + + Unit test now builds on OSX +- Changes from version 0.4.4: + + Add support for optionally building using a system libmodman + + Rework build system to be cleaner + + Fix two major build system bugs: 127, 128 + +------------------------------------------------------------------- +Mon Jul 5 21:42:37 UTC 2010 - dimstar@opensuse.org + +- Add mono-devel BuildRequires to install the csharp bindings. + +------------------------------------------------------------------- +Tue Jun 22 17:48:31 UTC 2010 - dimstar@opensuse.org + +- Initial work to support win32 cross building. + +------------------------------------------------------------------- +Mon Jun 14 17:48:01 UTC 2010 - dimstar@opensuse.org + +- Use external libmodman: add libmodman-devel BuildRequires. +- Drop libmodman0 subpackage + +------------------------------------------------------------------- +Wed Jun 9 22:52:05 UTC 2010 - dimstar@opensuse.org + +- Enable build on other distributions than openSUSE, wrapping + openSUSE rpm tags like Recommends and Supplements in %if + statements. + ------------------------------------------------------------------- Mon Jun 7 17:01:55 UTC 2010 - dimstar@opensuse.org diff --git a/libproxy.spec b/libproxy.spec index d64a794..fa1f13e 100644 --- a/libproxy.spec +++ b/libproxy.spec @@ -1,8 +1,7 @@ # -# spec file for package libproxy (Version 0.4.3) +# spec file for package libproxy (Version 0.4.5) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. -# Copyright (c) 2010 Dominique Leuenberger, Amsterdam, Netherlands. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,20 +15,21 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild %define build_core_not_modules 1 -%if 0%{suse_version} > 1120 +%if 0%{?suse_version} +%define have_mono 1 +%else +%define have_mono 0 +%endif + +%if 0%{?suse_version} > 1120 %define xulrunner_ver 192 %else -%if 0%{suse_version} > 1110 +%if 0%{?suse_version} > 1110 %define xulrunner_ver 191 %else -%if 0%{suse_version} >= 1100 %define xulrunner_ver 190 -%else -%define xulrunner_ver 181 -%endif %endif %endif Url: http://code.google.com/p/libproxy/ @@ -38,34 +38,52 @@ Url: http://code.google.com/p/libproxy/ Name: libproxy Group: System/Libraries Summary: Libproxy provides consistent proxy configuration to applications -Version: 0.4.3 +Version: 0.4.5 Release: 1 -Source: http://libproxy.googlecode.com/files/%{_name}-%{version}.tar.bz2 +%if 0%{?build_snapshot} +%define _sourcename %{_name} +%else +%define _sourcename %{_name}-%{version} +%endif +Source: http://libproxy.googlecode.com/files/%{_sourcename}.tar.bz2 +# Script used for automatic snapshot updates +Source98: update-from-svn.sh Source99: baselibs.conf -License: LGPLv2.1+ +License: GPLv2+ ; LGPLv2.1+ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: cmake BuildRequires: gcc-c++ -BuildRequires: pkg-config +BuildRequires: libmodman-devel +BuildRequires: pkgconfig BuildRequires: zlib-devel -%if !%build_core_not_modules +%if !%{build_core_not_modules} +%if ! 0%{?windows} BuildRequires: dbus-1-devel BuildRequires: gconf2-devel # For directory ownership, but also because we want to rebuild the modules if # the library changed BuildRequires: libproxy1 BuildRequires: libwebkit-devel +%if 0%{?suse_version} BuildRequires: mozilla-xulrunner%{xulrunner_ver}-devel +%else +BuildRequires: xulrunner-devel +%endif BuildRequires: NetworkManager-devel BuildRequires: libkde4-devel BuildRequires: libqt4-devel +%endif %else +%if 0%{?have_mono} +BuildRequires: mono-devel +%endif +BuildRequires: perl BuildRequires: python-devel %endif -%if %suse_version <= 1110 -%define python_sitelib %{py_sitedir} -%endif +%{!?python_sitelib: %global python_sitelib %(%__python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(%__python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%{!?_assemblies_dir: %global _assemblies_dir %(pkg-config cecil --variable=assemblies_dir)} %description libproxy offers the following features: * extremely small core @@ -73,11 +91,8 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 @@ -107,11 +122,8 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 @@ -126,33 +138,19 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 -%package -n libmodman0 -License: GPLv2+ ; LGPLv2.1+ -Summary: Libproxy's Module Management Library -Group: System/Libraries -Obsoletes: libmodman0_0_0 < %{version} -Provides: libmodman0_0_0 = %{version} - -%description -n libmodman0 -A module management library taking care of loading / unload modules -including heuristics in detecting which bindings might already -be used by an application and favouring this one. - - %package -n python-libproxy License: GPLv2+ ; LGPLv2.1+ Summary: Python bindings for libproxy Group: System/Libraries +%if 0%{?suse_version} > 1110 BuildArch: noarch -Requires: libproxy1 = %{version} %py_requires +%endif +Requires: libproxy1 = %{version} %description -n python-libproxy libproxy offers the following features: * extremely small core @@ -160,11 +158,8 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 @@ -173,7 +168,8 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Perl bindings for libproxy Group: Development/Libraries/Perl Requires: libproxy1 = %{version} -Requires: perl = %{perl_version} +# For Fedora at least perl = perl_version does not work. +Requires: perl >= %{perl_version} %description -n perl-Net-Libproxy libproxy offers the following features: * extremely small core @@ -181,13 +177,11 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 +%if 0%{?have_mono} %package -n libproxy-sharp License: GPLv2+ ; LGPLv2.1+ @@ -201,13 +195,10 @@ libproxy offers the following features: * extremely small core * no external dependencies within libproxy core (libproxy modules 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 - +%endif %else @@ -216,9 +207,12 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Libproxy module for GNOME configuration Group: System/Libraries Requires: libproxy1 = %{version} +%if 0%{?suse_version} Recommends: libproxy1-pacrunner = %{version} -Recommends: libproxy1-wpad-dns = %{version} Supplements: packageand(libproxy1:gconf2) +%else +Requires: libproxy1-pacrunner = %{version} +%endif Provides: libproxy-gnome = %{version} Obsoletes: libproxy-gnome < %{version} @@ -232,9 +226,12 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Libproxy module for KDE configuration Group: System/Libraries Requires: libproxy1 = %{version} +%if 0%{?suse_version} Recommends: libproxy1-pacrunner = %{version} -Recommends: libproxy1-wpad-dns = %{version} Supplements: packageand(libproxy1:libkde4) +%else +Requires: libproxy1-pacrunner = %{version} +%endif Provides: libproxy-kde = %{version} Obsoletes: libproxy-kde < %{version} @@ -248,7 +245,9 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Libproxy module to support wpad/pac parsing via Mozilla JavaScript Engine Group: System/Libraries Requires: libproxy1 = %{version} +%if 0%{?suse_version} Supplements: packageand(libproxy1:mozilla-xulrunner%{xulrunner_ver}) +%endif # A virtual symbol to identify that this is a pacrunner. Provides: libproxy1-pacrunner = %{version} @@ -262,7 +261,9 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Libproxy module to support WPAD/PAC parsing via WebKit JavaScript Engine Group: System/Libraries Requires: libproxy1 = %{version} -Supplements: packageand(libproxy1:libwebkit-1) +%if 0%{?suse_version} +Supplements: packageand(libproxy1:libwebkitgtk-0) +%endif # A virtual symbol to identify that this is a pacrunner. Provides: libproxy1-pacrunner = %{version} @@ -270,13 +271,14 @@ Provides: libproxy1-pacrunner = %{version} A module to extend libproxy with capabilities to pass addresses to a WPAD/PAC script and have it find the correct proxy. - %package -n libproxy1-networkmanager License: GPLv2+ ; LGPLv2.1+ Summary: Libproxy module for NetworkManager configuration Group: System/Libraries Requires: libproxy1 = %{version} +%if 0%{?suse_version} Supplements: packageand(libproxy1:NetworkManager) +%endif %description -n libproxy1-networkmanager A module to extend libproxy with capabilities to query NetworkManager @@ -285,88 +287,134 @@ about network configuration changes. %endif %prep -%setup -q -n %{_name}-%{version} +%setup -q -n %{_sourcename} mkdir build %build cd build +export CXXFLAGS="%{optflags}" +export CFLAGS="%{optflags}" +%if 0%{?suse_version} < 1120 && 0%{?suse_version} +export CXXFLAGS="%{optflags} -DXP_UNIX" +%endif +%if 0%{?windows} +export CXXFLAGS="%{optflags} -fno-stack-protector -static-libgcc" +%endif cmake \ - -DCMAKE_INSTALL_PREFIX=%{_prefix} \ - -Dlibdir=%{_libdir} \ - -Dlibexecdir=%{_libexecdir}/libproxy \ - -Ddatadir=%{_datadir} \ - -Dmoduledir=%{_libdir}/libproxy/%{version}/modules \ +%if 0%{?windows} + -DCMAKE_TOOLCHAIN_FILE=../cmake/mingw32.cmake \ + -DBUILD_TESTING=False \ + -DWITH_DOTNET=OFF \ +%else -DWITH_VALA=yes \ + -DWITH_DOTNET=%{have_mono} \ + -DFORCE_SYSTEM_LIBMODMAN=ON \ +%endif + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DBIN_INSTALL_DIR=%{_bindir} \ + -DLIB_INSTALL_DIR=%{_libdir} \ + -DMODULE_INSTALL_DIR=%{_libdir}/libproxy-%{version}/modules \ + -DLIBEXEC_INSTALL_DIR=%{_libexecdir}/libproxy-%{version} \ + -DSHARE_INSTALL_PREFIX=%{_datadir} \ + -DINCLUDE_INSTALL_DIR=%{_includedir} \ -DPERL_VENDORINSTALL=yes \ +%if ! %build_core_not_modules + -DWITH_DOTNET=OFF \ +%endif +%if 0%{?suse_version} && 0%{?suse_version} < 1120 + -DCMAKE_BUILD_TYPE=DebugFull \ + -DCMAKE_INSTALL_CONFIG_NAME=DebugFull \ +%else + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_CONFIG_NAME=RelWithDebInfo \ +%endif .. -%{__make} %{?jobs:-j%jobs} +%{__make} VERBOSE=1 %install cd build -%makeinstall +make DESTDIR=%{buildroot} install + +# On Windows we also do not want to provide the static libraries. +%if 0%{?windows} +find %{buildroot}%{_libdir} -name '*.dll.a' -delete -print +rm %{buildroot}%{_libdir}/libmodman.dll +%endif + %if %build_core_not_modules # Build the basic directory structure for the modules so we can # own the directories in the main library package -install -d %{buildroot}%{_libexecdir}/libproxy -install -d %{buildroot}%{_libdir}/%{name}/%{version}/modules +install -d %{buildroot}%{_libexecdir}/libproxy-%{version} +install -d %{buildroot}%{_libdir}/%{name}-%{version}/modules %else # remove files that are part of the core -rm %{buildroot}%{_includedir}/*.h +rm -f %{buildroot}%{_includedir}/*.h # Delete all files that exist in the base libproxy package -rm %{buildroot}%{_bindir}/proxy -rm %{buildroot}%{_libdir}/libproxy.so* -rm %{buildroot}%{_libdir}/libmodman.so* -rm %{buildroot}%{python_sitelib}/*.py -rm %{buildroot}%{_libdir}/pkgconfig/libproxy-1.0.pc -rm %{buildroot}%{_datadir}/cmake/Modules/Findlibproxy.cmake -rm %{buildroot}%{_datadir}/vala/vapi/libproxy-1.0.vapi -rm %{buildroot}%{perl_vendorarch}/Net/Libproxy.pm -rm %{buildroot}%{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so +rm -f %{buildroot}%{_bindir}/proxy%{?windows:.exe} +rm -f %{buildroot}%{_libdir}/libproxy.* +rm -f %{buildroot}%{python_sitelib}/*.py +rm -f %{buildroot}%{_libdir}/pkgconfig/libproxy-1.0.pc +rm -f %{buildroot}%{_datadir}/cmake/Modules/Findlibproxy.cmake +rm -f %{buildroot}%{_datadir}/vala/vapi/libproxy-1.0.vapi +rm -f %{buildroot}%{perl_vendorarch}/Net/Libproxy.pm +rm -f %{buildroot}%{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so %endif + +%check +cd build +make test + %if %build_core_not_modules %post -n libproxy1 -p /sbin/ldconfig -%post -n libmodman0 -p /sbin/ldconfig - %postun -n libproxy1 -p /sbin/ldconfig -%postun -n libmodman0 -p /sbin/ldconfig - %files tools %defattr(-, root, root) -%{_bindir}/proxy +%{_bindir}/proxy%{?windows:.exe} %files -n libproxy1 %defattr(-, root, root) +%doc COPYING README AUTHORS +%if ! 0%{?windows} %{_libdir}/libproxy.so.* -%dir %{_libexecdir}/libproxy -%dir %{_libdir}/libproxy -%dir %{_libdir}/libproxy/%{version} -%dir %{_libdir}/libproxy/%{version}/modules -#%{_libdir}/libproxy/%{version}/modules/config_envvar.so -#%{_libdir}/libproxy/%{version}/modules/config_file.so -#%{_libdir}/libproxy/%{version}/modules/config_direct.so -#%{_libdir}/libproxy/%{version}/modules/ignore_*.so - -%files -n libmodman0 -%defattr(-, root, root) -%{_libdir}/libmodman.so.* +%else +%{_libdir}/libproxy.dll +%endif +%dir %{_libexecdir}/libproxy-%{version} +%dir %{_libdir}/libproxy-%{version} +%dir %{_libdir}/libproxy-%{version}/modules %files devel %defattr(-, root, root) %{_includedir}/*.h +%if ! 0%{?windows} %{_libdir}/*.so %{_libdir}/pkgconfig/libproxy-1.0.pc +%if 0%{have_mono} +%{_libdir}/pkgconfig/libproxy-sharp-1.0.pc +%endif %{_datadir}/cmake/Modules/Findlibproxy.cmake %dir %{_datadir}/vala %dir %{_datadir}/vala/vapi %{_datadir}/vala/vapi/libproxy-1.0.vapi +%endif %files -n python-libproxy %defattr(-, root, root) %{python_sitelib}/*.py +%if 0%{?have_mono} + +%files -n libproxy-sharp +%defattr(-, root, root) +%{_assemblies_dir}/gac/libproxy-sharp +%{_assemblies_dir}/libproxy-sharp +%endif + +%if ! 0%{?windows} + %files -n perl-Net-Libproxy %defattr(-,root,root) %dir %{perl_vendorarch}/Net @@ -374,28 +422,32 @@ rm %{buildroot}%{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so %dir %{perl_vendorarch}/auto/Net/Libproxy %{perl_vendorarch}/Net/Libproxy.pm %{perl_vendorarch}/auto/Net/Libproxy/Libproxy.so +%endif %else +%if ! 0%{?windows} + %files -n libproxy1-config-kde4 %defattr(-, root, root) -%{_libdir}/libproxy/%{version}/modules/config_kde4.so +%{_libdir}/libproxy-%{version}/modules/config_kde4.so %files -n libproxy1-config-gnome %defattr(-, root, root) -%{_libdir}/libproxy/%{version}/modules/config_gnome.so -%{_libexecdir}/libproxy/pxgconf +%{_libdir}/libproxy-%{version}/modules/config_gnome.so +%{_libexecdir}/libproxy-%{version}/pxgconf %files -n libproxy1-networkmanager %defattr(-, root, root) -%{_libdir}/libproxy/%{version}/modules/network_networkmanager.so +%{_libdir}/libproxy-%{version}/modules/network_networkmanager.so %files -n libproxy1-pacrunner-webkit %defattr(-, root, root) -%{_libdir}/libproxy/%{version}/modules/pacrunner_webkit.so +%{_libdir}/libproxy-%{version}/modules/pacrunner_webkit.so %files -n libproxy1-pacrunner-mozjs %defattr(-, root, root) -%{_libdir}/libproxy/%{version}/modules/pacrunner_mozjs.so +%{_libdir}/libproxy-%{version}/modules/pacrunner_mozjs.so +%endif %endif %changelog diff --git a/update-from-svn.sh b/update-from-svn.sh new file mode 100644 index 0000000..1fa6166 --- /dev/null +++ b/update-from-svn.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +MODULE=$(basename $(pwd)) + +if [ ! -x /usr/bin/svn ]; then + echo "subversion is missing - aborting" + return 1 +fi + +if [ ! -d $MODULE ]; then + echo "Base directory of $MODULE checkout is missing - aborting" + exit 2 +fi + +pushd $MODULE +svn update +VERSION=$(grep "version" $MODULE/CMakeLists.txt | awk -F'(' '{print $2}' | awk '{print $1+0"."$2+0"."$3+0}') +SVNREV=$(svn info | awk '/Revision:/ { print $2 }') +popd + +# Adjust the version information and svn rev in the spec file to what we get from the svn checkout. +sed -i "s/Version:.*/Version: ${VERSION}.svn.$SVNREV/" $MODULE.spec + +tar cjf $MODULE.tar.bz2 $MODULE + +[ -f pre_checkin.sh ] && sh pre_checkin.sh + +osc ci -m "Update to ${VERSION/git/svn.$SVNREV}" --skip-validation