util-linux-ng: Fixed dangling symlinks.
[vuplus_openembedded] / recipes / util-linux-ng / util-linux-ng.inc
1 DESCRIPTION = "Util-linux-ng is a suite of essential utilities for any Linux system."
2 SECTION = "base"
3 LICENSE = "GPL"
4 DEPENDS = "udev zlib ncurses e2fsprogs-libs"
5
6 inherit autotools
7
8 DEFAULT_PREFERENCE = "-1"
9
10 # allows for a release candidate
11 RC ?= ""
12
13 SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/util-linux-ng/v${PV}/util-linux-ng-${PV}${RC}.tar.bz2"
14
15 PACKAGES =+ "util-linux-ng-fdisk util-linux-ng-cfdisk util-linux-ng-sfdisk util-linux-ng-swaponoff util-linux-ng-losetup util-linux-ng-umount util-linux-ng-mount util-linux-ng-readprofile "
16
17 FILES_${PN}-doc += "/usr/share/misc/getopt/getopt-*.*"
18
19 FILES_util-linux-ng-fdisk = "/sbin/fdisk.${PN}"
20 FILES_util-linux-ng-cfdisk = "/sbin/cfdisk"
21 FILES_util-linux-ng-sfdisk = "/sbin/sfdisk"
22 FILES_util-linux-ng-swaponoff = "/sbin/swapon.${PN} /sbin/swapoff.${PN}"
23 FILES_util-linux-ng-losetup = "/sbin/losetup.${PN}"
24 FILES_util-linux-ng-mount = "/bin/mount.${PN} ${sysconfdir}/default/mountall"
25 FILES_util-linux-ng-umount = "/bin/umount.${PN}"
26 FILES_util-linux-ng-readprofile = "/usr/sbin/readprofile.${PN}"
27
28 RRECOMMENDS_${PN} = "util-linux-ng-fdisk util-linux-ng-cfdisk util-linux-ng-sfdisk util-linux-ng-mount util-linux-ng-readprofile "
29 RDEPENDS_${PN} = "util-linux-ng-umount util-linux-ng-swaponoff util-linux-ng-losetup"
30
31 EXTRA_OECONF = "--disable-use-tty-group --disable-makeinstall-chown \
32 --enable-kill --enable-last --enable-mesg --enable-raw --enable-login-utils \
33 --enable-arch --enable-init"
34
35 S = "${WORKDIR}/util-linux-ng-${PV}${RC}"
36
37 do_compile () {
38         set -e
39 #       install ${WORKDIR}/MCONFIG ${S}/MCONFIG
40 #       install ${WORKDIR}/make_include ${S}/make_include
41 #       install ${WORKDIR}/swapargs.h ${S}/mount/swapargs.h
42 #       install ${WORKDIR}/defines.h ${S}/defines.h
43         oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= \
44                 'OPT=${CFLAGS}' 'CC=${CC}' 'LD=${LD}' \
45                 'LDFLAGS=${LDFLAGS}'
46 }
47
48 checklink() {
49         local targ link value
50         targ="$1"
51         link="$2"
52         ext="$3"
53         if test -h "$link"
54         then
55                 value="$(readlink "$link")"
56                 if test "$value" = "$targ"
57                 then
58                         rm "$link"
59                         ln -s "$targ"."${PN}" "$link$ext"
60                         return 0
61                 else
62                         echo "$link: '$value' found '$targ' expected" >&2
63                         return 1
64                 fi
65         else
66                 echo "$link: not a symbolic link" >&2
67                 return 1
68         fi
69 }
70
71 do_install () {
72         # with ccache the timestamps on compiled files may
73         # end up earlier than on their inputs, this allows
74         # for the resultant compilation in the install step.
75         oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= \
76                 'OPT=${CFLAGS}' 'CC=${CC}' 'LD=${LD}' \
77                 'LDFLAGS=${LDFLAGS}' 'DESTDIR=${D}' install
78         mkdir ${D}${base_bindir}
79         mkdir ${D}${base_sbindir}
80         test -f ${D}${sbindir}/pivot_root && \
81         mv ${D}${sbindir}/pivot_root ${D}${base_sbindir}/pivot_root.${PN}
82         mv ${D}${bindir}/dmesg ${D}${base_bindir}/dmesg.${PN}
83         mv ${D}${bindir}/kill ${D}${base_bindir}/kill.${PN}
84         mv ${D}${bindir}/more ${D}${base_bindir}/more.${PN}
85         mv ${D}${sbindir}/hwclock ${D}${base_sbindir}/hwclock.${PN}
86         mv ${D}${sbindir}/mkswap ${D}${base_sbindir}/mkswap.${PN}
87         mv ${D}${sbindir}/shutdown ${D}${base_sbindir}/shutdown.${PN}
88 #       mv ${D}${sbindir}/sln ${D}${base_sbindir}/sln.${PN}
89         mv ${D}${sbindir}/mkfs.minix ${D}${base_sbindir}/mkfs.minix.${PN}
90         mv ${D}${sbindir}/fsck.minix ${D}${base_sbindir}/fsck.minix.${PN}
91         mv ${D}${bindir}/hexdump ${D}${bindir}/hexdump.${PN}
92         mv ${D}${bindir}/last ${D}${bindir}/last.${PN}
93         mv ${D}${bindir}/logger ${D}${bindir}/logger.${PN}
94         mv ${D}${bindir}/mesg ${D}${bindir}/mesg.${PN}
95         mv ${D}${bindir}/renice ${D}${bindir}/renice.${PN}
96         mv ${D}${bindir}/wall ${D}${bindir}/wall.${PN}
97
98         mv ${D}${sbindir}/losetup ${D}${base_sbindir}/losetup.${PN}
99         mv ${D}${sbindir}/swapon ${D}${base_sbindir}/swapon.${PN}
100         mv ${D}${bindir}/umount ${D}${base_bindir}/umount.${PN}
101         mv ${D}${bindir}/mount ${D}${base_bindir}/mount.${PN}
102         mv ${D}${sbindir}/fdisk ${D}${base_sbindir}/fdisk.${PN}
103
104         mv ${D}${sbindir}/agetty ${D}${base_sbindir}/ 
105         mv ${D}${sbindir}/blockdev ${D}${base_sbindir}/
106         mv ${D}${sbindir}/cfdisk ${D}${base_sbindir}/
107         mv ${D}${sbindir}/ctrlaltdel ${D}${base_sbindir}/
108
109         mv ${D}${sbindir}/readprofile ${D}${sbindir}/readprofile.${PN}
110         
111         install -d ${D}${sysconfdir}/default/
112         echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall
113
114         ln -sf ${sbindir}/swapon ${D}${sbindir}/swapoff.${PN}
115         ln -sf ${sbindir}/shutdown ${D}${sbindir}/reboot.${PN}
116         ln -sf ${sbindir}/shutdown ${D}${sbindir}/halt.${PN}
117         ln -sf ${sbindir}/shutdown ${D}${sbindir}/fastboot
118         ln -sf ${sbindir}/shutdown ${D}${sbindir}/fasthalt
119 }
120
121 pkg_postinst_${PN} () {
122         update-alternatives --install ${base_bindir}/dmesg dmesg dmesg.${PN} 100
123         update-alternatives --install ${base_bindir}/kill kill kill.${PN} 100
124         update-alternatives --install ${base_bindir}/more more more.${PN} 100
125         update-alternatives --install ${base_sbindir}/mkswap mkswap mkswap.${PN} 100
126         test -x ${base_sbindir}/pivot_root.${PN} && \
127         update-alternatives --install ${base_sbindir}/pivot_root pivot_root pivot_root.${PN} 100
128         update-alternatives --install ${base_sbindir}/sln sln sln.${PN} 100
129         update-alternatives --install ${base_sbindir}/mkfs.minix mkfs.minix mkfs.minix.${PN} 100
130         update-alternatives --install ${base_sbindir}/fsck.minix fsck.minix fsck.minix.${PN} 100
131         update-alternatives --install ${bindir}/hexdump hexdump hexdump.${PN} 100
132         update-alternatives --install ${bindir}/last last last.${PN} 100
133         update-alternatives --install ${bindir}/logger logger logger.${PN} 100
134         update-alternatives --install ${bindir}/mesg mesg mesg.${PN} 100
135         update-alternatives --install ${bindir}/renice renice renice.${PN} 100
136         update-alternatives --install ${bindir}/wall wall wall.${PN} 100
137         
138         # There seems to be problem, atleast on nslu2, with these, until they are
139         # fixed the busybox ones have higher priority
140         update-alternatives --install ${base_sbindir}/hwclock hwclock hwclock.${PN} 10
141         update-alternatives --install ${base_sbindir}/shutdown shutdown shutdown.${PN} 10
142         update-alternatives --install ${base_sbindir}/reboot reboot reboot.${PN} 10
143         update-alternatives --install ${base_sbindir}/halt halt halt.${PN} 10
144 }
145
146 pkg_prerm_${PN} () {
147         test -x ${base_sbindir}/pivot_root.${PN} && \
148         update-alternatives --remove pivot_root pivot_root.${PN}
149         update-alternatives --remove dmesg dmesg.${PN}
150         update-alternatives --remove kill kill.${PN}
151         update-alternatives --remove more more.${PN}
152         update-alternatives --remove halt halt.${PN}
153         update-alternatives --remove hwclock hwclock.${PN}
154         update-alternatives --remove mkswap mkswap.${PN}
155         update-alternatives --remove reboot reboot.${PN}
156         update-alternatives --remove shutdown shutdown.${PN}
157         update-alternatives --remove sln sln.${PN}
158         update-alternatives --remove mkfs.minix mkfs.minix.${PN}
159         update-alternatives --remove fsck.minix fsck.minix.${PN}
160         update-alternatives --remove hexdump hexdump.${PN}
161         update-alternatives --remove last last.${PN}
162         update-alternatives --remove logger logger.${PN}
163         update-alternatives --remove mesg mesg.${PN}
164         update-alternatives --remove renice renice.${PN}
165         update-alternatives --remove wall wall.${PN}
166 }
167
168 pkg_postinst_util-linux-ng-fdisk () {
169         update-alternatives --install ${base_sbindir}/fdisk fdisk fdisk.${PN} 100
170 }
171
172 pkg_prerm_util-linux-ng-fdisk () {
173         update-alternatives --remove fdisk fdisk.${PN}
174 }
175
176 pkg_postinst_util-linux-ng-mount () {
177         update-alternatives --install ${base_bindir}/mount mount mount.${PN} 100
178 }
179
180 pkg_prerm_util-linux-ng-mount () {
181         update-alternatives --remove mount mount.${PN}
182 }
183
184 pkg_postinst_util-linux-ng-umount () {
185         update-alternatives --install ${base_bindir}/umount umount umount.${PN} 100
186 }
187
188 pkg_prerm_util-linux-ng-umount () {
189         update-alternatives --remove umount umount.${PN}
190 }
191
192 pkg_postinst_util-linux-ng-losetup () {
193         update-alternatives --install ${base_sbindir}/losetup losetup losetup.${PN} 100
194 }
195
196 pkg_prerm_util-linux-ng-losetup () {
197         update-alternatives --remove losetup losetup.${PN}
198 }
199
200 pkg_postinst_util-linux-ng-swaponoff () {
201         update-alternatives --install ${base_sbindir}/swapoff swapoff swapoff.${PN} 100
202         update-alternatives --install ${base_sbindir}/swapon swapon swapon.${PN} 100
203 }
204
205 pkg_prerm_util-linux-ng-swaponoff () {
206         update-alternatives --remove swapoff swapoff.${PN}
207         update-alternatives --remove swapon swapon.${PN}
208 }
209
210 pkg_postinst_util-linux-ng-readprofile() {
211     update-alternatives --install ${sbindir}/readprofile readprofile readprofile.${PN} 100
212 }
213
214 pkg_prerm_util-linux-ng-readprofile () {
215     update-alternatives --remove readprofile readprofile.${PN} 100
216 }
217