Group :: Development/Objective-C
RPM: gnustep-base
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
%set_verify_elf_method unresolved=strict
%define gnustep_ver 1.29
%def_without build_debug
%def_without objc2
%def_with doc
# Apparently, modern autoconf does not support
# setting AC_CONFIG_AUX_DIR dynamically
%set_autoconf_version 2.60
Name: gnustep-base
Version: 1.29.0
Release: alt1.1
Epoch: 1
Summary: GNUstep Base library package
License: LGPL-2.1+ and GPL-3.0+
Group: Development/Objective-C
Url: http://www.gnustep.org/
# http://svn.gna.org/svn/gnustep/libs/base/trunk/
Source: %name-%version.tar
Source1: %name.init
Patch1: %name-alt-objc2.patch
Patch2: %name-use_system-wide_crypto-policies.patch
Requires: lib%name = %EVR
BuildRequires: gnustep-make-devel libgnutls-devel
%if_with objc2
BuildRequires: libgnustep-objc2-devel
%endif
BuildRequires: pkgconfig libssl-devel
BuildRequires: libxml2-devel libxslt-devel zlib-devel libffi-devel mount
BuildRequires: libgmp-devel libbfd-devel libgcrypt-devel
BuildRequires: libicu-devel /proc
%if_with doc
BuildRequires: texinfo texi2html texlive-latex-base gnustep-make-doc
%endif
BuildRequires: tzdata ca-certificates
Requires: gnustep-make >= 2.0.6-alt4 glibc-locales glibc-gconv-modules
%description
The GNUstep Base Library is a powerful fast library of general-purpose,
non-graphical Objective C classes, inspired by the superb OpenStep API but
implementing Apple and GNU additions to the API as well. It includes for
example classes for unicode strings, arrays, dictionaries, sets, byte
streams, typed coders, invocations, notifications, notification dispatchers,
scanners, tasks, files, networking, threading, remote object messaging
support (distributed objects), event loops, loadable bundles, attributed
unicode strings, xml, mime, user defaults. This package includes development
headers too.
%package -n lib%name
Summary: Shared libraries of %name
Group: System/Libraries
Conflicts: %name < %EVR
%description -n lib%name
Shared libraries of %name.
%package devel
Summary: Header files and static libraries from %name
Group: Development/Objective-C
Requires: %name = %EVR
Requires: lib%name = %EVR
%description devel
Libraries and includes files for developing programs based on %name.
%package doc
Summary: Documentation for %name
Group: Development/Documentation
BuildArch: noarch
Requires: gnustep-make-doc
%description doc
Development documentation for %name.
%prep
%setup
%if_with objc2
%patch1 -p1
%endif
%patch2 -p1
%build
%if_with objc2
export OBJCFLAGS="$OBJCFLAGS -D__GNU_LIBOBJC__=1"
%endif
%undefine _configure_gettext
%undefine __libtoolize
%autoreconf
%configure \
--libexecdir=%_libdir \
--enable-pass-arguments
%make_build \
%if_with build_debug
messages=yes \
debug=yes \
%endif
strip=no \
shared=yes
%if_with doc
export LD_LIBRARY_PATH=$PWD/Source/obj
%make_build -C Documentation \
%if_with build_debug
messages=yes
%endif
%endif
%install
. %_datadir/GNUstep/Makefiles/GNUstep.sh
%makeinstall_std GNUSTEP_INSTALLATION_DOMAIN=SYSTEM
%if_with doc
%makeinstall_std -C Documentation \
GNUSTEP_INSTALLATION_DOMAIN=SYSTEM
%endif
install -d %buildroot%_initdir
sed -e "s! at TOOLSARCHDIR at !%prefix/System/Tools!" %SOURCE1 > %buildroot%_initdir/gdomap
rm -Rf %buildroot%_libdir/GNUstep/Libraries/gnustep-base/Versions/1.14/Resources/NSTimeZones/
# It is the file in the package whose name matches the format emacs or vim uses
# for backup and autosave files. It may have been installed by accident.
find $RPM_BUILD_ROOT \( -name '*.swp' -o -name '#*#' -o -name '*~' \) -print -delete
# failsafe cleanup if the file is declared as %%doc
find . \( -name '*.swp' -o -name '#*#' -o -name '*~' \) -print -delete
for i in ChangeLog*; do
gzip $i
done
# Set symlinks to system timezones, localtime and ca-certificates
cd %buildroot%_libdir/GNUstep/Libraries/gnustep-base/Versions/%gnustep_ver/Resources/NSTimeZones
rm -rf zones
cd %buildroot%_libdir/GNUstep/Libraries/gnustep-base/Versions/%gnustep_ver/Resources/GSTLS
rm -rf ca-certificates.crt
ln -s /usr/share/ca-certificates/ca-bundle.crt ca-certificates.crt
%post
t="%_libdir/GNUstep/Libraries/gnustep-base/Versions/%gnustep_ver/Resources/NSTimeZones/zones"
if [ ! -d "$t" ];then
ln -s /usr/share/zoneinfo "$t"
fi
%postun
t="%_libdir/GNUstep/Libraries/gnustep-base/Versions/%gnustep_ver/Resources/NSTimeZones/zones"
if [ -L "$t" ];then
rm -f "$t"
fi
%files
%_initdir/gdomap
%doc ANNOUNCE COPYING COPYING.LIB ChangeLog*
%doc NEWS README.md
%_bindir/*
%_libdir/GNUstep/*
%_man1dir/*
%_man8dir/*
%files -n lib%name
%_libdir/libgnustep-base.so.*
%files devel
%_datadir/GNUstep/Makefiles/Additional/base.make
%_libdir/libgnustep-base.so
%_includedir/Foundation
%_includedir/GNUstepBase
%if_with doc
%files doc
%_docdir/GNUstep
%_infodir/*
%endif
%changelog
…
Full changelog you can see here
%define gnustep_ver 1.29
%def_without build_debug
%def_without objc2
%def_with doc
# Apparently, modern autoconf does not support
# setting AC_CONFIG_AUX_DIR dynamically
%set_autoconf_version 2.60
Name: gnustep-base
Version: 1.29.0
Release: alt1.1
Epoch: 1
Summary: GNUstep Base library package
License: LGPL-2.1+ and GPL-3.0+
Group: Development/Objective-C
Url: http://www.gnustep.org/
# http://svn.gna.org/svn/gnustep/libs/base/trunk/
Source: %name-%version.tar
Source1: %name.init
Patch1: %name-alt-objc2.patch
Patch2: %name-use_system-wide_crypto-policies.patch
Requires: lib%name = %EVR
BuildRequires: gnustep-make-devel libgnutls-devel
%if_with objc2
BuildRequires: libgnustep-objc2-devel
%endif
BuildRequires: pkgconfig libssl-devel
BuildRequires: libxml2-devel libxslt-devel zlib-devel libffi-devel mount
BuildRequires: libgmp-devel libbfd-devel libgcrypt-devel
BuildRequires: libicu-devel /proc
%if_with doc
BuildRequires: texinfo texi2html texlive-latex-base gnustep-make-doc
%endif
BuildRequires: tzdata ca-certificates
Requires: gnustep-make >= 2.0.6-alt4 glibc-locales glibc-gconv-modules
%description
The GNUstep Base Library is a powerful fast library of general-purpose,
non-graphical Objective C classes, inspired by the superb OpenStep API but
implementing Apple and GNU additions to the API as well. It includes for
example classes for unicode strings, arrays, dictionaries, sets, byte
streams, typed coders, invocations, notifications, notification dispatchers,
scanners, tasks, files, networking, threading, remote object messaging
support (distributed objects), event loops, loadable bundles, attributed
unicode strings, xml, mime, user defaults. This package includes development
headers too.
%package -n lib%name
Summary: Shared libraries of %name
Group: System/Libraries
Conflicts: %name < %EVR
%description -n lib%name
Shared libraries of %name.
%package devel
Summary: Header files and static libraries from %name
Group: Development/Objective-C
Requires: %name = %EVR
Requires: lib%name = %EVR
%description devel
Libraries and includes files for developing programs based on %name.
%package doc
Summary: Documentation for %name
Group: Development/Documentation
BuildArch: noarch
Requires: gnustep-make-doc
%description doc
Development documentation for %name.
%prep
%setup
%if_with objc2
%patch1 -p1
%endif
%patch2 -p1
%build
%if_with objc2
export OBJCFLAGS="$OBJCFLAGS -D__GNU_LIBOBJC__=1"
%endif
%undefine _configure_gettext
%undefine __libtoolize
%autoreconf
%configure \
--libexecdir=%_libdir \
--enable-pass-arguments
%make_build \
%if_with build_debug
messages=yes \
debug=yes \
%endif
strip=no \
shared=yes
%if_with doc
export LD_LIBRARY_PATH=$PWD/Source/obj
%make_build -C Documentation \
%if_with build_debug
messages=yes
%endif
%endif
%install
. %_datadir/GNUstep/Makefiles/GNUstep.sh
%makeinstall_std GNUSTEP_INSTALLATION_DOMAIN=SYSTEM
%if_with doc
%makeinstall_std -C Documentation \
GNUSTEP_INSTALLATION_DOMAIN=SYSTEM
%endif
install -d %buildroot%_initdir
sed -e "s! at TOOLSARCHDIR at !%prefix/System/Tools!" %SOURCE1 > %buildroot%_initdir/gdomap
rm -Rf %buildroot%_libdir/GNUstep/Libraries/gnustep-base/Versions/1.14/Resources/NSTimeZones/
# It is the file in the package whose name matches the format emacs or vim uses
# for backup and autosave files. It may have been installed by accident.
find $RPM_BUILD_ROOT \( -name '*.swp' -o -name '#*#' -o -name '*~' \) -print -delete
# failsafe cleanup if the file is declared as %%doc
find . \( -name '*.swp' -o -name '#*#' -o -name '*~' \) -print -delete
for i in ChangeLog*; do
gzip $i
done
# Set symlinks to system timezones, localtime and ca-certificates
cd %buildroot%_libdir/GNUstep/Libraries/gnustep-base/Versions/%gnustep_ver/Resources/NSTimeZones
rm -rf zones
cd %buildroot%_libdir/GNUstep/Libraries/gnustep-base/Versions/%gnustep_ver/Resources/GSTLS
rm -rf ca-certificates.crt
ln -s /usr/share/ca-certificates/ca-bundle.crt ca-certificates.crt
%post
t="%_libdir/GNUstep/Libraries/gnustep-base/Versions/%gnustep_ver/Resources/NSTimeZones/zones"
if [ ! -d "$t" ];then
ln -s /usr/share/zoneinfo "$t"
fi
%postun
t="%_libdir/GNUstep/Libraries/gnustep-base/Versions/%gnustep_ver/Resources/NSTimeZones/zones"
if [ -L "$t" ];then
rm -f "$t"
fi
%files
%_initdir/gdomap
%doc ANNOUNCE COPYING COPYING.LIB ChangeLog*
%doc NEWS README.md
%_bindir/*
%_libdir/GNUstep/*
%_man1dir/*
%_man8dir/*
%files -n lib%name
%_libdir/libgnustep-base.so.*
%files devel
%_datadir/GNUstep/Makefiles/Additional/base.make
%_libdir/libgnustep-base.so
%_includedir/Foundation
%_includedir/GNUstepBase
%if_with doc
%files doc
%_docdir/GNUstep
%_infodir/*
%endif
%changelog
…
Full changelog you can see here