1 # Contributor: Jens Staal <staal1978@gmail.com>
3 pkgname=gnu2posix2001-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')
16 source=('scripts.tar.gz')
18 md5sums=('0295e605235674d11daa5dbfc73d8d43')
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)
26 #package-specific file list variables below this line
27 _busybox=($srcdir/scripts/busybox.ls)
28 _gnuonly=($srcdir/scripts/coreutils.gnuonly.ls)
29 _core_bin=($srcdir/scripts/coreutils.bin.ls)
30 _core_usrbin=($srcdir/scripts/coreutils.usr.bin.ls)
31 _core_usrsbin=($srcdir/scripts/coreutils.usr.sbin.ls)
38 mkdir $srcdir/tmp/usr/heirloom
39 mkdir $srcdir/tmp/usr/heirloom/share
41 msg "Fill up missing binaries for Coreutils using symlinks to Busybox"
42 for i in $(cat $_busybox)
44 ln -s /bin/busybox $srcdir/tmp/bin/$i
47 msg "move binaries corresponding to a specific Heirloom variant [sysV, posix, posix2001, s42 or ucb]"
48 msg "to a single intermediate directory: $srcdir/tmp/bin"
50 # the build function will be common for all gnu2heirloom packages of a given type
53 cp /usr/heirloom/bin/ucb/$i $srcdir/tmp/bin/$i
56 for i in $(cat $_5bin)
58 cp /usr/heirloom/bin/$i $srcdir/tmp/bin/$i
60 cp /usr/heirloom/bin/sh $srcdir/tmp/bin/jsh
62 for i in $(cat $_posix)
64 cp /usr/heirloom/bin/posix/$i $srcdir/tmp/bin/$i
67 for i in $(cat $_posix2001)
69 cp /usr/heirloom/bin/posix2001/$i $srcdir/tmp/bin/$i
72 msg "copy script files to common binary directory"
74 cp $srcdir/scripts/bin/* $srcdir/tmp/bin/
79 # The package function is the only thing changing for different packages [coreutils, findutils ...].
84 mkdir $pkgdir/usr/sbin
86 msg "moving binaries into a Coreutils tree structure"
88 for i in $(cat $_core_bin)
90 mv $srcdir/tmp/bin/$i $pkgdir/bin/$i
93 for i in $(cat $_core_usrbin)
95 mv $srcdir/tmp/bin/$i $pkgdir/usr/bin/$i
98 for i in $(cat $_core_usrsbin)
100 mv $srcdir/tmp/bin/$i $pkgdir/usr/sbin/$i
103 # chmod 755 $pkgdir/bin/*
104 # chmod 755 $pkgdir/usr/bin/*
105 # chmod 755 $pkgdir/usr/sbin/*
107 msg "adding corresponding man pages"
108 mkdir $pkgdir/usr/share
109 mkdir $pkgdir/usr/share/man
110 mkdir $pkgdir/usr/share/man/man1
111 mkdir $srcdir/tmp/man
112 # Moving manpages into a common directory
113 cp -ar /usr/heirloom/share/man $srcdir/tmp/usr/heirloom/share/man
114 mv $srcdir/tmp/usr/heirloom/share/man/man8/catman.8 $srcdir/tmp/usr/heirloom/share/man/man1/catman.1
115 mv $srcdir/tmp/usr/heirloom/share/man/man5/fspec.5 $srcdir/tmp/usr/heirloom/share/man/man1/fspec.1
116 mv $srcdir/tmp/usr/heirloom/share/man/man1m/mknod.1m $srcdir/tmp/usr/heirloom/share/man/man1/mknod.1
117 mv $srcdir/tmp/usr/heirloom/share/man/man1m/sync.1m $srcdir/tmp/usr/heirloom/share/man/man1/sync.1
119 for i in $(cat $_ucb)
121 mv $srcdir/tmp/usr/heirloom/share/man/man1b/$i.1b $srcdir/tmp/man/$i.1
124 for i in $(cat $_5bin)
126 mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
128 cp /usr/heirloom/share/man/man1/sh.1 $srcdir/tmp/man/jsh.1
129 cp /usr/heirloom/share/man/man1/false.1 $srcdir/tmp/man/false.1
130 cp /usr/heirloom/share/man/man1/true.1 $srcdir/tmp/man/true.1
132 for i in $(cat $_posix)
134 mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
137 for i in $(cat $_posix2001)
139 mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
143 for i in $(cat $_busybox)
145 printf "Busybox symlink. Type busybox $i --help for more info" > $i.1
148 _shavariants=($srcdir/scripts/shavariants)
149 for i in $(cat $_shavariants)
151 ln -s /usr/share/man/man1/shasum.1p.gz sha${i}sum.1
160 # Moving the relevant manpages to the package directory
162 for i in $(cat $_core_bin)
164 mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
167 for i in $(cat $_core_usrbin)
169 mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
172 for i in $(cat $_core_usrsbin)
174 mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
177 msg "adding system configuration files"
179 mkdir $pkgdir/etc/pam.d
180 install -m0644 $srcdir/scripts/su $pkgdir/etc/pam.d/su
182 # locales and the libstdbuf are lacking in both Heirloom and Busybox
184 msg "The following coreutils binaries are not covered by Heirloom or Busybox"
186 msg "A list of missing functionality is saved in /usr/share/info"
187 mkdir $pkgdir/usr/share/info
188 cp $srcdir/scripts/coreutils.gnuonly.ls $pkgdir/usr/share/info/
190 msg "installing Heirloom-specific licence information"
191 install -D -m0644 /usr/share/licenses/heirloom-cvs/LICENSE $pkgdir/usr/share/licenses/${pkgname}/LICENSE
192 install -D -m0644 /usr/share/licenses/heirloom-cvs/OPENSOLARIS.LICENSE $pkgdir/usr/share/licenses/${pkgname}/OPENSOLARIS.LICENSE
193 install -D -m0644 /usr/share/licenses/heirloom-cvs/LUCENT $pkgdir/usr/share/licenses/${pkgname}/LUCENT
195 msg "WARNING: this package changes fundamental components in your system. DO NOT install on a production system (unless you know what you are doing)"