split package and provide coreutils-single
Notes about coreutils: - Drops from 14.2MB to 5.5MB. - Still requires coreutils-common, though being separated allows for easier removal if required. - Explicitly conflicts with coreutils-single to avoid errant installs Notes about coreutils-single: - Contains a single multicall binary which is 1.2MB - Have to force install over any existing coreutils package so best used for initial install without existing coreutils package - Doesn't require (but suggests) coreutils-common so install that manually for docs, translations, and colors etc. Notes about coreutils-common: - 8.7MB - Having this split out gives an easy way to remove all docs and translations. Note RemovePathPostfixes: introduced with rpm 4.13 is used to facilitate producing the two sets of conflicting binaries from the same build, while maintaining appropriate --fileprovide in each generated rpm.
This commit is contained in:
parent
f0951fecac
commit
5fb9bc4700
108
coreutils.spec
108
coreutils.spec
@ -1,7 +1,7 @@
|
|||||||
Summary: A set of basic GNU tools commonly used in shell scripts
|
Summary: A set of basic GNU tools commonly used in shell scripts
|
||||||
Name: coreutils
|
Name: coreutils
|
||||||
Version: 8.24
|
Version: 8.24
|
||||||
Release: 4%{?dist}
|
Release: 100%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Url: http://www.gnu.org/software/coreutils/
|
Url: http://www.gnu.org/software/coreutils/
|
||||||
@ -55,6 +55,8 @@ Patch950: coreutils-selinux.patch
|
|||||||
Patch951: coreutils-selinuxmanpages.patch
|
Patch951: coreutils-selinuxmanpages.patch
|
||||||
|
|
||||||
Conflicts: filesystem < 3
|
Conflicts: filesystem < 3
|
||||||
|
# To avoid clobbering installs during %post
|
||||||
|
Conflicts: coreutils-single
|
||||||
Provides: /bin/basename
|
Provides: /bin/basename
|
||||||
Provides: /bin/cat
|
Provides: /bin/cat
|
||||||
Provides: /bin/chgrp
|
Provides: /bin/chgrp
|
||||||
@ -100,6 +102,7 @@ BuildRequires: gmp-devel
|
|||||||
BuildRequires: attr
|
BuildRequires: attr
|
||||||
BuildRequires: strace
|
BuildRequires: strace
|
||||||
|
|
||||||
|
Requires: %{name}-common = %{version}-%{release}
|
||||||
Requires(pre): /sbin/install-info
|
Requires(pre): /sbin/install-info
|
||||||
Requires(preun): /sbin/install-info
|
Requires(preun): /sbin/install-info
|
||||||
Requires(post): /sbin/install-info
|
Requires(post): /sbin/install-info
|
||||||
@ -119,11 +122,36 @@ Obsoletes: fileutils <= 4.1.9
|
|||||||
Obsoletes: sh-utils <= 2.0.12
|
Obsoletes: sh-utils <= 2.0.12
|
||||||
Obsoletes: stat <= 3.3
|
Obsoletes: stat <= 3.3
|
||||||
Obsoletes: textutils <= 2.0.21
|
Obsoletes: textutils <= 2.0.21
|
||||||
|
Obsoletes: %{name} < 8.24-100
|
||||||
|
|
||||||
%description
|
%description
|
||||||
These are the GNU core utilities. This package is the combination of
|
These are the GNU core utilities. This package is the combination of
|
||||||
the old GNU fileutils, sh-utils, and textutils packages.
|
the old GNU fileutils, sh-utils, and textutils packages.
|
||||||
|
|
||||||
|
%package single
|
||||||
|
Summary: coreutils multicall binary
|
||||||
|
Suggests: coreutils-common
|
||||||
|
Provides: coreutils
|
||||||
|
# To avoid clobbering installs during %post
|
||||||
|
Conflicts: coreutils < 8.24-100
|
||||||
|
# Note RPM doesn't support separate buildroots for %files
|
||||||
|
# http://rpm.org/ticket/874 so use RemovePathPostfixes
|
||||||
|
# (new in rpm 4.13) to support separate file sets.
|
||||||
|
RemovePathPostfixes: .single
|
||||||
|
%description single
|
||||||
|
These are the GNU core utilities,
|
||||||
|
packaged as a single multicall binary.
|
||||||
|
|
||||||
|
|
||||||
|
%package common
|
||||||
|
# yum obsoleting rules explained at:
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1107973#c7
|
||||||
|
Obsoletes: %{name} < 8.24-100
|
||||||
|
Summary: coreutils common optional components
|
||||||
|
%description common
|
||||||
|
Optional though recommended components,
|
||||||
|
including documentation and translations.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
@ -168,22 +196,53 @@ touch aclocal.m4 configure config.hin Makefile.in */Makefile.in
|
|||||||
aclocal -I m4
|
aclocal -I m4
|
||||||
autoconf --force
|
autoconf --force
|
||||||
automake --copy --add-missing
|
automake --copy --add-missing
|
||||||
%configure --enable-install-program=arch \
|
for type in separate single; do
|
||||||
--enable-no-install-program=uptime \
|
mkdir $type && \
|
||||||
--with-openssl \
|
(cd $type && ln -s ../configure && \
|
||||||
--with-tty-group \
|
test $type = 'single' && configure_single='--enable-single-binary'
|
||||||
DEFAULT_POSIX2_VERSION=200112 alternative=199209 || :
|
%configure $configure_single \
|
||||||
|
--cache-file=../config.cache \
|
||||||
make all %{?_smp_mflags}
|
--enable-install-program=arch \
|
||||||
|
--enable-no-install-program=uptime \
|
||||||
|
--with-openssl \
|
||||||
|
--with-tty-group \
|
||||||
|
DEFAULT_POSIX2_VERSION=200112 alternative=199209 || :
|
||||||
|
mkdir src # not needed with coreutils > 8.24
|
||||||
|
make all %{?_smp_mflags})
|
||||||
|
done
|
||||||
|
|
||||||
# Get the list of supported utilities
|
# Get the list of supported utilities
|
||||||
cp %SOURCE50 .
|
cp %SOURCE50 .
|
||||||
|
|
||||||
%check
|
%check
|
||||||
make check %{?_smp_mflags}
|
for type in separate single; do
|
||||||
|
test $type = 'single' && subdirs='SUBDIRS=.' # Only check gnulib once
|
||||||
|
(cd $type && make check %{?_smp_mflags} $subdirs)
|
||||||
|
done
|
||||||
|
|
||||||
%install
|
%install
|
||||||
make DESTDIR=$RPM_BUILD_ROOT install
|
for type in separate single; do
|
||||||
|
install=install
|
||||||
|
if test $type = 'single'; then
|
||||||
|
subdir=%{_libexecdir}/%{name}; install=install-exec
|
||||||
|
fi
|
||||||
|
(cd $type && make DESTDIR=$RPM_BUILD_ROOT/$subdir $install)
|
||||||
|
|
||||||
|
# chroot was in /usr/sbin :
|
||||||
|
mkdir -p $RPM_BUILD_ROOT/$subdir/{%{_bindir},%{_sbindir}}
|
||||||
|
mv $RPM_BUILD_ROOT/$subdir/{%_bindir,%_sbindir}/chroot
|
||||||
|
|
||||||
|
# Move multicall variants to *.single.
|
||||||
|
# RemovePathPostfixes will strip that later.
|
||||||
|
if test $type = 'single'; then
|
||||||
|
for dir in %{_bindir} %{_sbindir} %{_libexecdir}/%{name}; do
|
||||||
|
for bin in $RPM_BUILD_ROOT/%{_libexecdir}/%{name}/$dir/*; do
|
||||||
|
basebin=$(basename $bin)
|
||||||
|
mv $bin $RPM_BUILD_ROOT/$dir/$basebin.single
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# fix japanese catalog file
|
# fix japanese catalog file
|
||||||
if [ -d $RPM_BUILD_ROOT%{_datadir}/locale/ja_JP.EUC/LC_MESSAGES ]; then
|
if [ -d $RPM_BUILD_ROOT%{_datadir}/locale/ja_JP.EUC/LC_MESSAGES ]; then
|
||||||
@ -195,12 +254,6 @@ fi
|
|||||||
|
|
||||||
bzip2 -9f ChangeLog
|
bzip2 -9f ChangeLog
|
||||||
|
|
||||||
# let be compatible with old fileutils, sh-utils and textutils packages :
|
|
||||||
mkdir -p $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}
|
|
||||||
|
|
||||||
# chroot was in /usr/sbin :
|
|
||||||
mv $RPM_BUILD_ROOT{%_bindir,%_sbindir}/chroot
|
|
||||||
|
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
|
||||||
install -p -c -m644 %SOURCE101 $RPM_BUILD_ROOT%{_sysconfdir}/DIR_COLORS
|
install -p -c -m644 %SOURCE101 $RPM_BUILD_ROOT%{_sysconfdir}/DIR_COLORS
|
||||||
install -p -c -m644 %SOURCE102 $RPM_BUILD_ROOT%{_sysconfdir}/DIR_COLORS.lightbgcolor
|
install -p -c -m644 %SOURCE102 $RPM_BUILD_ROOT%{_sysconfdir}/DIR_COLORS.lightbgcolor
|
||||||
@ -213,7 +266,8 @@ install -p -c -m644 %SOURCE106 $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/colorls.c
|
|||||||
# rather than manually removing here, since tests depending on
|
# rather than manually removing here, since tests depending on
|
||||||
# built utilities are correctly skipped if not present.
|
# built utilities are correctly skipped if not present.
|
||||||
for i in kill ; do
|
for i in kill ; do
|
||||||
rm $RPM_BUILD_ROOT{%{_bindir}/$i,%{_mandir}/man1/$i.1}
|
rm -f $RPM_BUILD_ROOT{%{_bindir}/$i,%{_mandir}/man1/$i.1}
|
||||||
|
rm -f $RPM_BUILD_ROOT/%{_libexecdir}/%{name}/{%{_bindir}/$i,%{_mandir}/man1/$i.1}
|
||||||
done
|
done
|
||||||
|
|
||||||
# Compress ChangeLogs from before the fileutils/textutils/etc merge
|
# Compress ChangeLogs from before the fileutils/textutils/etc merge
|
||||||
@ -260,18 +314,34 @@ if [ -f %{_infodir}/%{name}.info.gz ]; then
|
|||||||
/sbin/install-info %{_infodir}/%{name}.info.gz %{_infodir}/dir || :
|
/sbin/install-info %{_infodir}/%{name}.info.gz %{_infodir}/dir || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
%files -f %{name}.lang -f supported_utils
|
%files -f supported_utils
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%exclude %{_bindir}/*.single
|
||||||
|
%{_libexecdir}/coreutils/*.so
|
||||||
|
|
||||||
|
%files single
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_bindir}/*.single
|
||||||
|
%{_sbindir}/chroot.single
|
||||||
|
%{_libexecdir}/coreutils/*.so.single
|
||||||
|
|
||||||
|
%files common -f %{name}.lang
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%config(noreplace) %{_sysconfdir}/DIR_COLORS*
|
%config(noreplace) %{_sysconfdir}/DIR_COLORS*
|
||||||
%config(noreplace) %{_sysconfdir}/profile.d/*
|
%config(noreplace) %{_sysconfdir}/profile.d/*
|
||||||
|
%{_infodir}/coreutils*
|
||||||
|
%{_mandir}/man*/*
|
||||||
|
# The following go to /usr/share/doc/coreutils-common
|
||||||
%doc ABOUT-NLS NEWS README THANKS TODO
|
%doc ABOUT-NLS NEWS README THANKS TODO
|
||||||
%{!?_licensedir:%global license %%doc}
|
%{!?_licensedir:%global license %%doc}
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%{_infodir}/coreutils*
|
%{_infodir}/coreutils*
|
||||||
%{_libexecdir}/coreutils*
|
|
||||||
%{_mandir}/man*/*
|
%{_mandir}/man*/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Nov 18 2015 Pádraig Brady <pbrady@redhat.com> - 8.24-100
|
||||||
|
- Split package to more easily support smaller installs
|
||||||
|
|
||||||
* Wed Sep 16 2015 Kamil Dudka <kdudka@redhat.com> - 8.24-4
|
* Wed Sep 16 2015 Kamil Dudka <kdudka@redhat.com> - 8.24-4
|
||||||
- fix memory leak in sort/I18N (patches written by Pádraig, #1259942)
|
- fix memory leak in sort/I18N (patches written by Pádraig, #1259942)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user