Name:                gnustep-base
Version:             1.27.0
Release:             2
License:             GPLv3+ and LGPLv2+
Summary:             GNUstep Base library package
URL:                 http://www.gnustep.org/
Source0:             ftp://ftp.gnustep.org/pub/gnustep/core/%{name}-%{version}.tar.gz
Patch0:              %{name}-use_system-wide_crypto-policies.patch
#Patch from: https://github.com/gnustep/libs-base/commit/06fa7792a51cb970e5d010a393cb88eb127830d7
Patch1:              Fix-compilation-with-ICU-68.patch
BuildRequires:       gcc-objc libffi-devel >= 3.0.9 gnutls-devel libxml2-devel libxslt-devel
BuildRequires:       pkgconfig gnustep-make >= 2.0.0 avahi-compat-libdns_sd-devel gmp-devel
BuildRequires:       texi2html texinfo-tex libicu-devel texi2html
Requires:            %{name}-libs%{?_isa} = %{version}-%{release} make
Conflicts:           libFoundation
%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 libs
Summary:             GNUStep Base Libraries
%description libs
This packages contains the run-time libraries of the gnustep-base package.

%package devel
Summary:             Header of the GNUstep Base library packes
Requires:            %{name}-libs%{?_isa} = %{version}-%{release}
%description devel
This package contains the header files of the gnustep-base package.

%package doc
Summary:             Documentation for %{name}
Requires:            %{name}%{?_isa} = %{version}-%{release} gnustep-filesystem
%description doc
This package contains the documentation of the gnustep-base package.

%prep
%autosetup -p1
iconv -f iso-8859-1 -t utf-8 ChangeLog.2 -o ChangeLog.2.utf8
mv ChangeLog.2.utf8 ChangeLog.2

%build
ffi_include=$(pkg-config --cflags-only-I libffi | sed -e 's/^\-\I//')
export LDFLAGS="%{__global_ldflags} -Wl,--as-needed"
%gnustep_configure --disable-ffcall --with-ffi-include=$ffi_include
%gnustep_make -n

%install
%gnustep_install -n
mv ${RPM_BUILD_ROOT}%{_bindir}/pl ${RPM_BUILD_ROOT}%{_bindir}/pllist
rm -f Examples/.cvsignore
rm -f Examples/.gdbinit
sed -e "s|GNUSTEP_SYSTEM_LIBRARY=|GNUSTEP_SYSTEM_LIBRARY=$RPM_BUILD_ROOT|" \
    -e "s|GNUSTEP_SYSTEM_HEADERS=|GNUSTEP_SYSTEM_HEADERS=$RPM_BUILD_ROOT|" \
    %{_sysconfdir}/GNUstep/GNUstep.conf >GNUstep.conf
export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}
export GNUSTEP_CONFIG_FILE=$(pwd)/GNUstep.conf
%gnustep_makedoc
%gnustep_installdoc
%ldconfig_scriptlets libs

%files
%{_bindir}/HTMLLinker
%{_bindir}/autogsdoc
%{_bindir}/cvtenc
%{_bindir}/defaults
%{_bindir}/gdnc
%{_bindir}/gdomap
%{_bindir}/gspath
%{_bindir}/make_strings
%{_bindir}/pl2link
%{_bindir}/pldes
%{_bindir}/plget
%{_bindir}/pllist
%{_bindir}/plmerge
%{_bindir}/plparse
%{_bindir}/plser
%{_bindir}/sfparse
%{_bindir}/xmlparse
%{_mandir}/man1/*
%{_mandir}/man8/*
%{gnustep_dtddir}/

%files libs
%doc ANNOUNCE ChangeLog* NEWS README
%license COPYING.LIB COPYINGv3
%{gnustep_libraries}/
%{_libdir}/libgnustep-base.so.*

%files devel
%{_includedir}/Foundation/
%{_includedir}/GNUstepBase/
%{_libdir}/libgnustep-base.so
%{gnustep_additional}/base.make
%doc Examples

%files doc
%doc README
%{_infodir}/*
%dir %{_datadir}/GNUstep/Documentation
%{_datadir}/GNUstep/Documentation/*

%changelog
* Mon May 09 2022 chenchen <chen_aka_jan@163.com> - 1.27.0-2
- Fix compilation with ICU 68.

* Tue Sep 7 2021 zhengyaohui <zhengyaohui1@huawei.com> - 1.27.0-1
- package init
