1 # Contributor: Jens Staal <staal1978@gmail.com>
3 pkgname=gnu2plan9-coreutils
7 pkgdesc="A replacement of GNU Coreutils with binaries derived from Plan9port and Heirloom (ucb profile)"
8 url="https://wiki.archlinux.org/index.php/Base2plan9"
9 license=('custom:"opensolaris"' 'custom:"lucent"')
11 optdepends=('perl-digest-sha')
12 makedepends=('plan9port' 'heirloom-devtools-cvs' 'heirloom-cvs')
13 provides=('coreutils' 'gnu2heirloom-coreutils')
14 conflicts=('coreutils' 'gnu2busybox-coreutils')
16 source=('scripts.tar.gz') #collected all custom lists in an archive for clean-ness
18 md5sums=('c8033e5ef5f930d25d9a559fabd7129b')
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)
26 _plan9=($srcdir/scripts/plan9port-bin.ls)
28 #package-specific file list variables below this line
29 _busybox=($srcdir/scripts/busybox.ls)
30 _gnuonly=($srcdir/scripts/coreutils.gnuonly.ls)
31 _core_bin=($srcdir/scripts/coreutils.bin.ls)
32 _core_usrbin=($srcdir/scripts/coreutils.usr.bin.ls)
33 _core_usrsbin=($srcdir/scripts/coreutils.usr.sbin.ls)
40 mkdir $srcdir/tmp/usr/heirloom
41 mkdir $srcdir/tmp/usr/heirloom/share
43 msg "Fill up missing binaries for Coreutils using symlinks to Busybox"
44 for i in $(cat $_busybox)
46 ln -s /bin/busybox $srcdir/tmp/bin/$i
49 msg "move Heirloom (ucb profile) and plan9port binaries"
50 msg "to a single intermediate directory: $srcdir/tmp/bin"
52 for i in $(cat $_5bin)
54 cp /usr/heirloom/bin/$i $srcdir/tmp/bin/$i
57 for i in $(cat $_posix)
59 cp /usr/heirloom/bin/posix/$i $srcdir/tmp/bin/$i
64 cp /usr/heirloom/bin/s42/$i $srcdir/tmp/bin/$i
67 for i in $(cat $_posix2001)
69 cp /usr/heirloom/bin/posix2001/$i $srcdir/tmp/bin/$i
74 cp /usr/heirloom/bin/ucb/$i $srcdir/tmp/bin/$i
77 for i in $(cat $_plan9)
79 cp -ar /opt/plan9/bin/$i $srcdir/tmp/bin/$i
82 cp $srcdir/tmp/bin/unmount $srcdir/tmp/bin/umount
84 msg "Add shell scripts for some missing functions"
85 cp $srcdir/scripts/bin/* $srcdir/tmp/bin/
88 # The package function is the only thing changing for different packages [coreutils, findutils ...].
93 mkdir $pkgdir/usr/sbin
95 msg "moving binaries into a Coreutils tree structure"
97 for i in $(cat $_core_bin)
99 mv $srcdir/tmp/bin/$i $pkgdir/bin/$i
102 for i in $(cat $_core_usrbin)
104 mv $srcdir/tmp/bin/$i $pkgdir/usr/bin/$i
107 for i in $(cat $_core_usrsbin)
109 mv $srcdir/tmp/bin/$i $pkgdir/usr/sbin/$i
112 msg "adding corresponding man pages"
113 mkdir $pkgdir/usr/share
114 mkdir $pkgdir/usr/share/man
115 mkdir $pkgdir/usr/share/man/man1
116 mkdir $srcdir/tmp/man
117 # Moving manpages into a common directory
118 cp -ar /usr/heirloom/share/man $srcdir/tmp/usr/heirloom/share/man
119 mv $srcdir/tmp/usr/heirloom/share/man/man8/catman.8 $srcdir/tmp/usr/heirloom/share/man/man1/catman.1
120 mv $srcdir/tmp/usr/heirloom/share/man/man5/fspec.5 $srcdir/tmp/usr/heirloom/share/man/man1/fspec.1
121 mv $srcdir/tmp/usr/heirloom/share/man/man1m/mknod.1m $srcdir/tmp/usr/heirloom/share/man/man1/mknod.1
122 mv $srcdir/tmp/usr/heirloom/share/man/man1m/sync.1m $srcdir/tmp/usr/heirloom/share/man/man1/sync.1
124 for i in $(cat $_ucb)
126 mv $srcdir/tmp/usr/heirloom/share/man/man1b/$i.1b $srcdir/tmp/man/$i.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
149 for i in $(cat $srcdir/scripts/9man.ls)
151 cp /opt/plan9/man/man1/$i $srcdir/tmp/man/$i
156 printf "Plan9 utility dd, no manpage available" > dd.1
157 printf "Plan9 utility du, no manpage available" > du.1
159 ln -s sum.1 sha1sum.1
162 _shavariants=($srcdir/scripts/shavariants)
163 for i in $(cat $_shavariants)
165 ln -s /usr/share/man/man1/shasum.1p.gz sha${i}sum.1
168 printf "custom script false, no manpage available" > false.1
169 printf "custom script true, no manpage available" > true.1
171 for i in $(cat $_busybox)
173 printf "Type busybox $i --help for instructions" > $i.1
176 # Moving the relevant manpages to the package directory
178 for i in $(cat $_core_bin)
180 mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
183 for i in $(cat $_core_usrbin)
185 mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
188 for i in $(cat $_core_usrsbin)
190 mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
193 # It would be cool to substitute su with factotum
194 msg "adding system configuration files"
196 mkdir $pkgdir/etc/pam.d
197 install -m0644 $srcdir/scripts/su $pkgdir/etc/pam.d/su
199 # locales and the libstdbuf are lacking in both Heirloom and Busybox
201 msg "The following coreutils binaries are not covered by Heirloom or Busybox"
203 msg "A list of missing functionality is saved in /usr/share/info"
204 mkdir $pkgdir/usr/share/info
205 cp $srcdir/scripts/coreutils.gnuonly.ls $pkgdir/usr/share/info/
207 msg "installing Heirloom-specific licence information"
208 install -D -m0644 /usr/share/licenses/heirloom-cvs/LICENSE $pkgdir/usr/share/licenses/${pkgname}/LICENSE
209 install -D -m0644 /usr/share/licenses/heirloom-cvs/OPENSOLARIS.LICENSE $pkgdir/usr/share/licenses/${pkgname}/OPENSOLARIS.LICENSE
210 install -D -m0644 /usr/share/licenses/heirloom-cvs/LUCENT $pkgdir/usr/share/licenses/${pkgname}/LUCENT
212 msg "WARNING: this package changes fundamental components in your system. DO NOT install on a production system (unless you know what you are doing)"