updated on Thu Jan 26 00:18:00 UTC 2012
[aur-mirror.git] / gnu2plan9-coreutils / PKGBUILD
blobfa6522e943771d092d4b4fecb6dfe0adf054b7a3
1 # Contributor: Jens Staal <staal1978@gmail.com>
3 pkgname=gnu2plan9-coreutils
4 pkgver=1
5 pkgrel=1
6 arch=('i686' 'x86_64')
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"')
10 depends=('busybox')
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)
35 build() {
36   rm -rf $srcdir/tmp
37   mkdir $srcdir/tmp
38   mkdir $srcdir/tmp/bin
39   mkdir $srcdir/tmp/usr
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)
45       do
46       ln -s /bin/busybox $srcdir/tmp/bin/$i
47     done
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)
53       do
54       cp /usr/heirloom/bin/$i $srcdir/tmp/bin/$i
55     done
56   
57    for i in $(cat $_posix)
58       do
59       cp /usr/heirloom/bin/posix/$i $srcdir/tmp/bin/$i
60     done
62    for i in $(cat $_s42)
63       do
64       cp /usr/heirloom/bin/s42/$i $srcdir/tmp/bin/$i
65     done
67    for i in $(cat $_posix2001)
68       do
69       cp /usr/heirloom/bin/posix2001/$i $srcdir/tmp/bin/$i
70     done
72    for i in $(cat $_ucb)
73       do
74       cp /usr/heirloom/bin/ucb/$i $srcdir/tmp/bin/$i
75     done
77    for i in $(cat $_plan9)
78       do
79       cp -ar /opt/plan9/bin/$i $srcdir/tmp/bin/$i
80     done
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 ...].
89 package() {
90   mkdir $pkgdir/bin
91   mkdir $pkgdir/usr
92   mkdir $pkgdir/usr/bin
93   mkdir $pkgdir/usr/sbin
95   msg "moving binaries into a Coreutils tree structure"
97     for i in $(cat $_core_bin)
98       do
99       mv $srcdir/tmp/bin/$i $pkgdir/bin/$i
100     done
102     for i in $(cat $_core_usrbin)
103       do
104       mv $srcdir/tmp/bin/$i $pkgdir/usr/bin/$i
105     done
107     for i in $(cat $_core_usrsbin)
108       do
109       mv $srcdir/tmp/bin/$i $pkgdir/usr/sbin/$i
110     done
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)
125       do
126       mv $srcdir/tmp/usr/heirloom/share/man/man1b/$i.1b $srcdir/tmp/man/$i.1
127     done
129    for i in $(cat $_5bin)
130       do
131       mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
132     done
133   
134    for i in $(cat $_posix)
135       do
136       mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
137     done
139    for i in $(cat $_posix2001)
140       do
141       mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
142     done
144    for i in $(cat $_s42)
145       do
146       mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
147     done
149    for i in $(cat $srcdir/scripts/9man.ls)
150       do
151       cp /opt/plan9/man/man1/$i $srcdir/tmp/man/$i
152     done  
154   cd $srcdir/tmp/man/
156       printf "Plan9 utility dd, no manpage available" > dd.1
157       printf "Plan9 utility du, no manpage available" > du.1
158       ln -s sum.1 md5sum.1
159       ln -s sum.1 sha1sum.1
160       ln -s ls.1 lc.1
162 _shavariants=($srcdir/scripts/shavariants)
163     for i in $(cat $_shavariants)
164       do
165       ln -s /usr/share/man/man1/shasum.1p.gz sha${i}sum.1
166     done
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)
172       do
173       printf "Type busybox $i --help for instructions" > $i.1
174     done
176 # Moving the relevant manpages to the package directory
178   for i in $(cat $_core_bin)
179       do
180         mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
181       done
183   for i in $(cat $_core_usrbin)
184       do
185         mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
186       done
188   for i in $(cat $_core_usrsbin)
189       do
190         mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
191       done
193 # It would be cool to substitute su with factotum
194   msg "adding system configuration files"
195   mkdir $pkgdir/etc
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"
202   cat $_gnuonly
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)"