updated on Thu Jan 26 16:09:46 UTC 2012
[aur-mirror.git] / gnu2posix2001-coreutils / PKGBUILD
blob529a3392154bbec047e2dd36327cda76cdc1a95c
1 # Contributor: Jens Staal <staal1978@gmail.com>
3 pkgname=gnu2posix2001-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')
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)
33 build() {
34   rm -rf $srcdir/tmp
35   mkdir $srcdir/tmp
36   mkdir $srcdir/tmp/bin
37   mkdir $srcdir/tmp/usr
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)
43       do
44       ln -s /bin/busybox $srcdir/tmp/bin/$i
45     done
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
51    for i in $(cat $_ucb)
52       do
53       cp /usr/heirloom/bin/ucb/$i $srcdir/tmp/bin/$i
54     done
56    for i in $(cat $_5bin)
57       do
58       cp /usr/heirloom/bin/$i $srcdir/tmp/bin/$i
59     done
60       cp /usr/heirloom/bin/sh $srcdir/tmp/bin/jsh
62    for i in $(cat $_posix)
63       do
64       cp /usr/heirloom/bin/posix/$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   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 ...].
80 package() {
81   mkdir $pkgdir/bin
82   mkdir $pkgdir/usr
83   mkdir $pkgdir/usr/bin
84   mkdir $pkgdir/usr/sbin
86   msg "moving binaries into a Coreutils tree structure"
88     for i in $(cat $_core_bin)
89       do
90       mv $srcdir/tmp/bin/$i $pkgdir/bin/$i
91     done
93     for i in $(cat $_core_usrbin)
94       do
95       mv $srcdir/tmp/bin/$i $pkgdir/usr/bin/$i
96     done
98     for i in $(cat $_core_usrsbin)
99       do
100       mv $srcdir/tmp/bin/$i $pkgdir/usr/sbin/$i
101     done
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)
120       do
121       mv $srcdir/tmp/usr/heirloom/share/man/man1b/$i.1b $srcdir/tmp/man/$i.1
122     done
124    for i in $(cat $_5bin)
125       do
126       mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
127     done
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)
133       do
134       mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
135     done
137    for i in $(cat $_posix2001)
138       do
139       mv $srcdir/tmp/usr/heirloom/share/man/man1/$i.1 $srcdir/tmp/man/$i.1
140     done
142   cd $srcdir/tmp/man/
143   for i in $(cat $_busybox)
144       do
145       printf "Busybox symlink. Type busybox $i --help for more info" > $i.1
146     done
148 _shavariants=($srcdir/scripts/shavariants)
149     for i in $(cat $_shavariants)
150       do
151       ln -s /usr/share/man/man1/shasum.1p.gz sha${i}sum.1
152     done
154   ln -s ls.1 dir.1
155   ln -s ls.1 vdir.1
156   ln -s ln.1 link.1
157   ln -s rm.1 unlink.1
158   ln -s rm.1 shred.1
160 # Moving the relevant manpages to the package directory
161   
162   for i in $(cat $_core_bin)
163       do
164         mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
165       done
167   for i in $(cat $_core_usrbin)
168       do
169         mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
170       done
172   for i in $(cat $_core_usrsbin)
173       do
174         mv $srcdir/tmp/man/$i.1 $pkgdir/usr/share/man/man1/$i.1
175       done
177   msg "adding system configuration files"
178   mkdir $pkgdir/etc
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"
185   cat $_gnuonly
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)"