From 6dd6f5efc3cfdeff7229de823a76664daa28a423 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Sat, 14 Sep 2013 14:03:28 +0200 Subject: [PATCH] - updated to 1.24.5 - updated pass-arguments patch - added link patch to avoid unnecessary linking with -lnsl --- gnustep-base-ac.patch | 18 ---- gnustep-base-link.patch | 11 +++ gnustep-base-pass-arguments.patch | 12 +-- gnustep-base.spec | 140 ++++++++++++++++++------------ 4 files changed, 101 insertions(+), 80 deletions(-) create mode 100644 gnustep-base-link.patch diff --git a/gnustep-base-ac.patch b/gnustep-base-ac.patch index e1a3b6d..155413a 100644 --- a/gnustep-base-ac.patch +++ b/gnustep-base-ac.patch @@ -9,15 +9,6 @@ if (gnutls_check_version("$min_tls_version") == 0) { -@@ -71,8 +71,6 @@ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - tls_config_micro_version=`$TLS_CONFIG $tls_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` -- # Strip '-L/usr/lib' off since this is always in the link path. -- TLS_LIBS=`echo $TLS_LIBS | sed -e 's|-L/usr/lib||'` - - if test "x$enable_tlstest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" @@ -91,7 +89,7 @@ int main() @@ -38,15 +29,6 @@ tmp_version = xmlStrdup("$min_xml_version"); if(sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { -@@ -108,8 +108,6 @@ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - xml_config_micro_version=`$XML_CONFIG $xml_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` -- # Strip '-L/usr/lib' off since this is always in the link path. -- XML_LIBS=`echo $XML_LIBS | sed -e 's|-L/usr/lib||'` - - if test "x$enable_xmltest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" @@ -133,7 +131,7 @@ int major, minor, micro; char *tmp_version; diff --git a/gnustep-base-link.patch b/gnustep-base-link.patch new file mode 100644 index 0000000..7cec446 --- /dev/null +++ b/gnustep-base-link.patch @@ -0,0 +1,11 @@ +--- gnustep-base-1.24.5/configure.ac.orig 2013-07-15 07:24:27.000000000 +0200 ++++ gnustep-base-1.24.5/configure.ac 2013-09-14 10:54:56.415018340 +0200 +@@ -2349,7 +2349,7 @@ + # These used by GSFileHandle.m and distributed objects + # On some systems we need -lnsl ... so check for that first. + #-------------------------------------------------------------------- +-AC_CHECK_LIB(nsl, inet_ntop) ++AC_SEARCH_LIBS(inet_ntop, nsl) + AC_CHECK_FUNCS(gethostbyaddr_r inet_aton inet_pton inet_ntop sigaction) + USE_ZLIB=0 + AC_CHECK_HEADERS(zlib.h) diff --git a/gnustep-base-pass-arguments.patch b/gnustep-base-pass-arguments.patch index 1d0503c..ab3d7f3 100644 --- a/gnustep-base-pass-arguments.patch +++ b/gnustep-base-pass-arguments.patch @@ -1,11 +1,11 @@ ---- gnustep-base-1.11.1/Source/NSProcessInfo.m.orig 2005-08-15 06:00:22.000000000 +0200 -+++ gnustep-base-1.11.1/Source/NSProcessInfo.m 2005-10-22 13:36:36.492131256 +0200 -@@ -343,7 +343,7 @@ - IF_NO_GC(RELEASE(arp)); +--- gnustep-base-1.24.5/Source/NSProcessInfo.m.orig 2013-09-13 18:37:12.234146907 +0200 ++++ gnustep-base-1.24.5/Source/NSProcessInfo.m 2013-09-13 18:47:08.217455182 +0200 +@@ -457,7 +457,7 @@ + [arp drain]; } --#if !GS_FAKE_MAIN && ((defined(HAVE_PROCFS) || defined(HAVE_KVM_ENV) || defined(HAVE_PROCFS_PSINFO)) && (defined(HAVE_LOAD_METHOD))) -+#if !GS_FAKE_MAIN && !GS_PASS_ARGUMENTS && ((defined(HAVE_PROCFS) || defined(HAVE_KVM_ENV) || defined(HAVE_PROCFS_PSINFO)) && (defined(HAVE_LOAD_METHOD))) +-#if !GS_FAKE_MAIN && ((defined(HAVE_PROCFS) || defined(HAVE_KVM_ENV) || defined(HAVE_PROCFS_PSINFO) || defined(__APPLE__)) && (defined(HAVE_LOAD_METHOD))) ++#if !GS_FAKE_MAIN && !GS_PASS_ARGUMENTS && ((defined(HAVE_PROCFS) || defined(HAVE_KVM_ENV) || defined(HAVE_PROCFS_PSINFO) || defined(__APPLE__)) && (defined(HAVE_LOAD_METHOD))) /* * We have to save program arguments and environment before main () is * executed, because main () could modify their values before we get a diff --git a/gnustep-base.spec b/gnustep-base.spec index d19d070..6354427 100644 --- a/gnustep-base.spec +++ b/gnustep-base.spec @@ -1,37 +1,50 @@ +# TODO: use system ca-certificates +# - libdispatch # # Conditional build: -%bcond_without doc # don't generate documentation (bootstrap build w/o gnustep-base) +%bcond_without doc # don't generate documentation (bootstrap build w/o gnustep-base) # -%define ver 1.19 +# gc is used for gnugc-*-* libcombo +%if "%(gnustep-config --variable=LIBRARY_COMBO | cut -d- -f1)" == "gnugc" +%define with_gc 1 +%endif Summary: GNUstep Base library package Summary(pl.UTF-8): Podstawowa biblioteka GNUstep Name: gnustep-base -Version: %{ver}.1 -Release: 6 -License: LGPL/GPL +%define ver 1.24 +Version: %{ver}.5 +Release: 1 +License: LGPL v2+ (library), GPL v3+ (applications) Group: Libraries Source0: ftp://ftp.gnustep.org/pub/gnustep/core/%{name}-%{version}.tar.gz -# Source0-md5: 100e433a7e0624a6e4e5727b87e48c82 +# Source0-md5: df4e9786c6845d091a677b55d4e2c7c3 Source1: %{name}.init Source2: %{name}.sysconfig Patch0: %{name}-pass-arguments.patch Patch1: %{name}-ac.patch +Patch2: %{name}-link.patch URL: http://www.gnustep.org/ +BuildRequires: autoconf >= 2.60 +BuildRequires: avahi-devel %{?with_doc:BuildRequires: docbook-dtd41-sgml} +%{?with_gc:BuildRequires: gc-devel} BuildRequires: gcc-objc BuildRequires: gmp-devel -BuildRequires: gnustep-make-devel >= 1.11.2 -BuildRequires: libffi-devel +BuildRequires: gnustep-make-devel >= 1.13.1 +BuildRequires: gnutls-devel >= 1.4.0 +BuildRequires: libffi-devel >= 3.0.9 +BuildRequires: libgcrypt-devel +BuildRequires: libicu-devel >= 4.0 BuildRequires: libxml2-devel >= 2.3.0 BuildRequires: libxslt-devel >= 1.1.21 -BuildRequires: openssl-devel >= 0.9.7d -BuildRequires: texinfo-texi2dvi +BuildRequires: pkgconfig +%{?with_doc:BuildRequires: texinfo-texi2dvi} BuildRequires: zlib-devel Requires(post): /sbin/ldconfig Requires(post,preun): /sbin/chkconfig Requires(triggerpostun): sed >= 4.0 Requires: glibc >= 6:2.3.5-7.6 -Requires: gnustep-make >= 1.11.2 +Requires: gnustep-make >= 1.13.1 # with gdomap in /etc/services Requires: setup >= 2.4.3 Conflicts: gnustep-core @@ -57,13 +70,12 @@ Summary: GNUstep Base headers Summary(pl.UTF-8): Pliki nagłówkowe podstawowej biblioteki GNUstep Group: Development/Libraries Requires: %{name} = %{version}-%{release} -Requires: ffcall-devel Requires: gcc-objc Requires: gmp-devel -Requires: gnustep-make-devel >= 1.11.2 +Requires: gnustep-make-devel >= 1.13.1 +Requires: libffi-devel >= 3.0.9 Requires: libxml2-devel Requires: zlib-devel -Conflicts: gnustep-core %description devel Header files required to build applications against the GNUstep Base @@ -77,6 +89,7 @@ podstawowej biblioteki GNUstep. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build %{__autoconf} -Iconfig @@ -91,9 +104,10 @@ export GNUSTEP_FLATTENED=yes # - pass-arguments (program must call NSProcessInfo initialize) GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \ %configure \ - --enable-pass-arguments \ + --disable-ffcall \ --enable-libffi \ - --disable-ffcall + --enable-pass-arguments \ + --with-zeroconf=avahi # fake GUI_MAKE_LOADED to avoid linking with gnustep-gui %{__make} -j1 \ @@ -103,12 +117,9 @@ GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \ messages=yes %if %{with doc} +# needs already built gnustep-base export LD_LIBRARY_PATH=`pwd`/Source/obj -# with __make -j2: -# mkdir: cannot create directory `../Documentation/BaseTools': File exists -# make[1]: *** [../Documentation/BaseTools] Error 1 -# make[1]: *** Waiting for unfinished jobs.... -# requires already installed gnustep-base +# build seems racy, use -j1 %{__make} -j1 -C Documentation \ GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \ GNUSTEP_MAKEFILES=`gnustep-config --variable=GNUSTEP_MAKEFILES` @@ -133,9 +144,6 @@ install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/gnustep echo 'GMT' > $RPM_BUILD_ROOT%{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/NSTimeZones/localtime -# Fix .so symlink -(cd $RPM_BUILD_ROOT%{_libdir} ; ln -sf libgnustep-base.so.*.*.* libgnustep-base.so) - %if %{with doc} %{__make} -j1 -C Documentation install \ GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \ @@ -145,6 +153,8 @@ echo 'GMT' > $RPM_BUILD_ROOT%{_libdir}/GNUstep/Libraries/gnustep-base/Versions/% GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \ DESTDIR=$RPM_BUILD_ROOT +%{__mv} $RPM_BUILD_ROOT%{_infodir}/{manual,gnustep-base-manual}.info + # not (yet?) supported by rpm-compress-doc find $RPM_BUILD_ROOT%{_datadir}/GNUstep/Documentation \ -type f -a ! -name '*.html' -a ! -name '*.gz' -a ! -name '*.jpg' -a ! -name '*.css' | xargs gzip -9nf @@ -178,24 +188,43 @@ sed -i -e "/^%(echo %{_prefix}/Libraries/ | sed -e 's,/,\\/,g')$/d" /etc/ld.so.c %files %defattr(644,root,root,755) %doc ChangeLog* -%if %{with doc} -%docdir %{_datadir}/GNUstep/Documentation -%{_datadir}/GNUstep/Documentation/*.jpg -%{_datadir}/GNUstep/Documentation/index.html -%{_datadir}/GNUstep/Documentation/style.css -%dir %{_datadir}/GNUstep/Documentation -%dir %{_datadir}/GNUstep/Documentation/Developer -%dir %{_datadir}/GNUstep/Documentation/Developer/Base -%{_datadir}/GNUstep/Documentation/Developer/Base/ReleaseNotes -%endif + +%attr(755,root,root) %{_bindir}/HTMLLinker +%attr(755,root,root) %{_bindir}/autogsdoc +%attr(755,root,root) %{_bindir}/cvtenc +%attr(755,root,root) %{_bindir}/defaults +%attr(755,root,root) %{_bindir}/gdnc +%attr(755,root,root) %{_bindir}/gdomap +%attr(755,root,root) %{_bindir}/gspath +%attr(755,root,root) %{_bindir}/make_strings +%attr(755,root,root) %{_bindir}/pl +%attr(755,root,root) %{_bindir}/pl2link +%attr(755,root,root) %{_bindir}/pldes +%attr(755,root,root) %{_bindir}/plget +%attr(755,root,root) %{_bindir}/plmerge +%attr(755,root,root) %{_bindir}/plparse +%attr(755,root,root) %{_bindir}/plser +%attr(755,root,root) %{_bindir}/sfparse +%attr(755,root,root) %{_bindir}/xmlparse +# is suid necessary here??? it runs as daemon... +#%attr(4755,root,root) %{_bindir}/gdomap + +%attr(755,root,root) %{_libdir}/libgnustep-base.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgnustep-base.so.%{ver} + +%{_mandir}/man1/autogsdoc.1* +%{_mandir}/man1/cvtenc.1* +%{_mandir}/man1/defaults.1* +%{_mandir}/man1/gdnc.1* +%{_mandir}/man1/gspath.1* +%{_mandir}/man1/pldes.1* +%{_mandir}/man1/sfparse.1* +%{_mandir}/man1/xmlparse.1* +%{_mandir}/man8/gdomap.8* %attr(754,root,root) /etc/rc.d/init.d/gnustep %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/gnustep -%dir %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/SSL.bundle -%attr(755,root,root) %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/SSL.bundle/SSL -%{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/SSL.bundle/Resources - %dir %{_libdir}/GNUstep/DTDs %{_libdir}/GNUstep/DTDs/*.dtd %{_libdir}/GNUstep/DTDs/*.rnc @@ -205,6 +234,8 @@ sed -i -e "/^%(echo %{_prefix}/Libraries/ | sed -e 's,/,\\/,g')$/d" /etc/ld.so.c %dir %{_libdir}/GNUstep/Libraries/gnustep-base/Versions %dir %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver} %dir %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources +%dir %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/GSTLS +%{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/GSTLS/ca-certificates.crt %dir %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/Languages %dir %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/NSTimeZones @@ -240,22 +271,25 @@ sed -i -e "/^%(echo %{_prefix}/Libraries/ | sed -e 's,/,\\/,g')$/d" /etc/ld.so.c %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/NSTimeZones/zones %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/NSTimeZones/*.m %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/NSTimeZones/*.plist +# FIXME: FHS %config(noreplace) %verify(not md5 mtime size) %{_libdir}/GNUstep/Libraries/gnustep-base/Versions/%{ver}/Resources/NSTimeZones/localtime -%attr(755,root,root) %{_libdir}/libgnustep-base.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libgnustep-base.so.%{ver} - -# is suid necessary here??? it runs as daemon... -#%attr(4755,root,root) %{_bindir}/gdomap -%attr(755,root,root) %{_bindir}/* - -%{_mandir}/man1/*.1* -%{_mandir}/man8/*.8* +%if %{with doc} +%docdir %{_datadir}/GNUstep/Documentation +%{_datadir}/GNUstep/Documentation/*.jpg +%{_datadir}/GNUstep/Documentation/index.html +%{_datadir}/GNUstep/Documentation/style.css +%dir %{_datadir}/GNUstep/Documentation/Developer/Base +%{_datadir}/GNUstep/Documentation/Developer/Base/ReleaseNotes +%endif %files devel %defattr(644,root,root,755) -%dir %{_datadir}/GNUstep/Makefiles/Additional -%{_datadir}/GNUstep/Makefiles/Additional/base.make +%attr(755,root,root) %{_libdir}/libgnustep-base.so +%{_includedir}/Foundation +%{_includedir}/GNUstepBase +%{_includedir}/gnustep + %if %{with doc} %docdir %{_datadir}/GNUstep/Documentation %{_datadir}/GNUstep/Documentation/Developer/Base/General @@ -264,14 +298,8 @@ sed -i -e "/^%(echo %{_prefix}/Libraries/ | sed -e 's,/,\\/,g')$/d" /etc/ld.so.c %{_datadir}/GNUstep/Documentation/Developer/BaseAdditions %{_datadir}/GNUstep/Documentation/Developer/CodingStandards %{_datadir}/GNUstep/Documentation/Developer/Tools -%{_infodir}/*.info* +%{_infodir}/gnustep-base-manual.info* %endif -%{_includedir}/Foundation -%{_includedir}/GNUstepBase -%{_includedir}/gnustep - -%attr(755,root,root) %{_libdir}/libgnustep-base.so - %dir %{_datadir}/GNUstep/Makefiles/Additional %{_datadir}/GNUstep/Makefiles/Additional/base.make -- 2.44.0