1 # Contributor: Jens Staal <staal1978@gmail.com>
3 pkgname=gnu2ucb-coreutils
7 pkgdesc="A replacement of GNU Coreutils with binaries derived from original UNIX utilities, provided by the Heirloom project"
8 url="https://wiki.archlinux.org/index.php/Base2heirloom"
9 license=('custom:"opensolaris"' 'custom:"lucent"')
11 optdepends=('perl-digest-sha')
12 makedepends=('heirloom-devtools-cvs' 'heirloom-cvs' 'heirloom-sh-cvs')
13 provides=('coreutils' 'gnu2heirloom-coreutils')
14 conflicts=('coreutils' 'gnu2busybox-coreutils')
16 source=('scripts.tar.gz')
18 md5sums=('101aab0ef09510fd12b7d5718d06dd28')
20 #Heirloom-variant dependent files below this line. Busybox covers unimplemented functions.
21 _5bin=($srcdir/scripts/5bin.ls)
22 _posix=($srcdir/scripts/posix.ls)
23 _posix2001=($srcdir/scripts/posix2001.ls)
24 _ucb=($srcdir/scripts/ucb.ls)
25 _s42=($srcdir/scripts/s42.ls)
27 #package-specific file list variables below this line
28 _busybox=($srcdir/scripts/busybox.ls)
29 _gnuonly=($srcdir/scripts/coreutils.gnuonly.ls)
30 _core_bin=($srcdir/scripts/coreutils.bin.ls)
31 _core_usrbin=($srcdir/scripts/coreutils.usr.bin.ls)
32 _core_usrsbin=($srcdir/scripts/coreutils.usr.sbin.ls)
39 mkdir $srcdir/tmp/usr/heirloom
40 mkdir $srcdir/tmp/usr/heirloom/share
42 msg "Fill up missing binaries for Coreutils using symlinks to Busybox"
43 for i in $(cat $_busybox)
45 ln -s /bin/busybox $srcdir/tmp/bin/$i
48 msg "move binaries corresponding to a specific Heirloom variant [sysV, posix, posix2001, s42 or ucb]"
49 msg "to a single intermediate directory: $srcdir/tmp/bin"
51 # the build function will be common for all gnu2heirloom packages of a given type
54 for i in $(cat $_5bin)
56 cp /usr/heirloom/bin/$i $srcdir/tmp/bin/$i
59 for i in $(cat $_posix)
61 cp /usr/heirloom/bin/posix/$i $srcdir/tmp/bin/$i
66 cp /usr/heirloom/bin/s42/$i $srcdir/tmp/bin/$i
69 for i in $(cat $_posix2001)
71 cp /usr/heirloom/bin/posix2001/$i $srcdir/tmp/bin/$i
76 cp /usr/heirloom/bin/ucb/$i $srcdir/tmp/bin/$i
78 cp /usr/heirloom/bin/sh $srcdir/tmp/bin/jsh
80 msg "copy scripts and symlinks for missing utilities corresponding those in coreutils"
81 cp $srcdir/scripts/bin/* $srcdir/tmp/bin/
85 # The package function is the only thing changing for different packages [coreutils, findutils ...].
90 mkdir $pkgdir/usr/sbin
92 msg "moving binaries into a Coreutils tree structure"
94 for i in $(cat $_core_bin)
96 mv $srcdir/tmp/bin/$i $pkgdir/bin/$i
99 for i in $(cat $_core_usrbin)
101 mv $srcdir/tmp/bin/$i $pkgdir/usr/bin/$i
104 for i in $(cat $_core_usrsbin)
106 mv $srcdir/tmp/bin/$i $pkgdir/usr/sbin/$i
109 msg "adding corresponding man pages"
110 mkdir $pkgdir/usr/share
111 mkdir $pkgdir/usr/share/man
112 mkdir $pkgdir/usr/share/man/man1
113 mkdir $srcdir/tmp/man
114 # Moving manpages into a common directory
115 cp -ar /usr/heirloom/share/man $srcdir/tmp/usr/heirloom/share/man
116 mv $srcdir/tmp/usr/heirloom/share/man/man8/catman.8 $srcdir/tmp/usr/heirloom/share/man/man1/catman.1
117 mv $srcdir/tmp/usr/heirloom/share/man/man5/fspec.5 $srcdir/tmp/usr/heirloom/share/man/man1/fspec.1
118 mv $srcdir/tmp/usr/heirloom/share/man/man1m/mknod.1m $srcdir/tmp/usr/heirloom/share/man/man1/mknod.1
119 mv $srcdir/tmp/usr/heirloom/share/man/man1m/sync.1m $srcdir/tmp/usr/heirloom/share/man/man1/sync.1
121 for i in $(cat $_ucb)
123 mv $srcdir/tmp/usr/heirloom/share/man/man1b/$i.1b $srcdir/tmp/man/$i.1
125 mv $srcdir/tmp/usr/heirloom/share/man/man1/true.1 $srcdir/tmp/man/true.1
126 mv $srcdir/tmp/usr/heirloom/share/man/man1/false.1 $srcdir/tmp/man/false.1
127 cp /usr/heirloom/share/man/man1/sh.1 $srcdir/tmp/man/jsh.1
129 for i in $(cat $_5bin)
131 mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
134 for i in $(cat $_posix)
136 mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
139 for i in $(cat $_posix2001)
141 mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
144 for i in $(cat $_s42)
146 mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
150 for i in $(cat $_busybox)
152 printf "Busybox symlink. For more info type busybox $i --help" > $i.1
155 _shavariants=($srcdir/scripts/shavariants)
156 for i in $(cat $_shavariants)
158 ln -s /usr/share/man/man1/shasum.1p.gz sha${i}sum.1
168 # Moving the relevant manpages to the package directory
170 for i in $(cat $_core_bin)
172 mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
175 for i in $(cat $_core_usrbin)
177 mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
180 for i in $(cat $_core_usrsbin)
182 mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
185 msg "adding system configuration files"
187 mkdir $pkgdir/etc/pam.d
188 install -m0644 $srcdir/scripts/su $pkgdir/etc/pam.d/su
190 # locales and the libstdbuf are lacking in both Heirloom and Busybox
192 msg "The following coreutils binaries are not covered by Heirloom or Busybox"
194 msg "A list of missing functionality is saved in /usr/share/info"
195 mkdir $pkgdir/usr/share/info
196 cp $srcdir/scripts/coreutils.gnuonly.ls $pkgdir/usr/share/info/
198 msg "installing Heirloom-specific licence information"
199 install -D -m0644 /usr/share/licenses/heirloom-cvs/LICENSE $pkgdir/usr/share/licenses/${pkgname}/LICENSE
200 install -D -m0644 /usr/share/licenses/heirloom-cvs/OPENSOLARIS.LICENSE $pkgdir/usr/share/licenses/${pkgname}/OPENSOLARIS.LICENSE
201 install -D -m0644 /usr/share/licenses/heirloom-cvs/LUCENT $pkgdir/usr/share/licenses/${pkgname}/LUCENT
203 msg "WARNING: this package changes fundamental components in your system. DO NOT install on a production system (unless you know what you are doing)"