Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37377331
en ru br
ALT Linux repos
S:1.29.0-alt1.1
5.0: 1.14.1-alt1.3

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

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin