updated on Thu Jan 26 00:18:00 UTC 2012
[aur-mirror.git] / gnu2ucb-coreutils / PKGBUILD
blob18c814f0688afb579d909b8f66d5f5410503e52c
1 # Contributor: Jens Staal <staal1978@gmail.com>
3 pkgname=gnu2ucb-coreutils
4 pkgver=1
5 pkgrel=3
6 arch=('i686' 'x86_64')
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"')
10 depends=('busybox')
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)
34 build() {
35   rm -rf $srcdir/tmp
36   mkdir $srcdir/tmp
37   mkdir $srcdir/tmp/bin
38   mkdir $srcdir/tmp/usr
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)
44       do
45       ln -s /bin/busybox $srcdir/tmp/bin/$i
46     done
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)
55       do
56       cp /usr/heirloom/bin/$i $srcdir/tmp/bin/$i
57     done
58   
59    for i in $(cat $_posix)
60       do
61       cp /usr/heirloom/bin/posix/$i $srcdir/tmp/bin/$i
62     done
64    for i in $(cat $_s42)
65       do
66       cp /usr/heirloom/bin/s42/$i $srcdir/tmp/bin/$i
67     done
69    for i in $(cat $_posix2001)
70       do
71       cp /usr/heirloom/bin/posix2001/$i $srcdir/tmp/bin/$i
72     done
74    for i in $(cat $_ucb)
75       do
76       cp /usr/heirloom/bin/ucb/$i $srcdir/tmp/bin/$i
77     done
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 ...].
86 package() {
87   mkdir $pkgdir/bin
88   mkdir $pkgdir/usr
89   mkdir $pkgdir/usr/bin
90   mkdir $pkgdir/usr/sbin
92   msg "moving binaries into a Coreutils tree structure"
94     for i in $(cat $_core_bin)
95       do
96       mv $srcdir/tmp/bin/$i $pkgdir/bin/$i
97     done
99     for i in $(cat $_core_usrbin)
100       do
101       mv $srcdir/tmp/bin/$i $pkgdir/usr/bin/$i
102     done
104     for i in $(cat $_core_usrsbin)
105       do
106       mv $srcdir/tmp/bin/$i $pkgdir/usr/sbin/$i
107     done
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)
122       do
123       mv $srcdir/tmp/usr/heirloom/share/man/man1b/$i.1b $srcdir/tmp/man/$i.1
124     done
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)
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   cd $srcdir/tmp/man/
150   for i in $(cat $_busybox)
151       do
152       printf "Busybox symlink. For more info type busybox $i --help" > $i.1
153     done
155 _shavariants=($srcdir/scripts/shavariants)
156     for i in $(cat $_shavariants)
157       do
158       ln -s /usr/share/man/man1/shasum.1p.gz sha${i}sum.1
159     done
161   ln -s ls.1 dir.1
162   ln -s ls.1 vdir.1
163   ln -s ln.1 link.1
164   ln -s rm.1 unlink.1
165   ln -s rm.1 shred.1
168 # Moving the relevant manpages to the package directory
169   
170   for i in $(cat $_core_bin)
171       do
172         mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
173       done
175   for i in $(cat $_core_usrbin)
176       do
177         mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
178       done
180   for i in $(cat $_core_usrsbin)
181       do
182         mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
183       done
185   msg "adding system configuration files"
186   mkdir $pkgdir/etc
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"
193   cat $_gnuonly
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)"