fixed wrong source uri.
[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 = "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} zlib ncurses virtual/libintl"
5 DEPENDS_virtclass-native = "zlib-native lzo-native gettext-native"
6
7 inherit autotools gettext
8
9 INC_PR = "r37"
10
11 # allows for a release candidate
12 RC ?= ""
13
14 SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/util-linux/v${PV}/util-linux-ng-${PV}${RC}.tar.bz2;name=archive"
15
16 SRC_URI_append_chinook-compat = " file://chinook_libtool.patch "
17
18 PACKAGES =+ "${PN}-fdisk ${PN}-cfdisk ${PN}-sfdisk ${PN}-swaponoff \
19              ${PN}-losetup ${PN}-umount ${PN}-mount ${PN}-readprofile \
20              ${PN}-fsck ${PN}-blkid ${PN}-mountall ${PN}-reset"
21
22 PACKAGES_virtclass-native = ""       
23
24 PACKAGES_DYNAMIC = "libblkid* libuuid*"
25
26 # Provide old util-linux names (several recipes still use DEPENDS or RDEPENDS_${PN} = "util-linux"):
27 PROVIDES = "util-linux"
28 RPROVIDES_${PN} = "util-linux"
29 RPROVIDES_util-linux-ng-fdisk = "util-linux-fdisk"
30 RPROVIDES_util-linux-ng-cfdisk = "util-linux-cfdisk"
31 RPROVIDES_util-linux-ng-sfdisk = "util-linux-sfdisk"
32 RPROVIDES_util-linux-ng-swaponoff = "util-linux-swaponoff"
33 RPROVIDES_util-linux-ng-losetup = "util-linux-losetup"
34 RPROVIDES_util-linux-ng-umount = "util-linux-umount"
35 RPROVIDES_util-linux-ng-mount = "util-linux-mount"
36 RPROVIDES_util-linux-ng-readprofile = "util-linux-readprofile"
37 RPROVIDES_util-linux-ng-fsck = "e2fsprogs-fsck"
38 RPROVIDES_util-linux-ng-blkid = "e2fsprogs-blkid"
39
40 FILES_${PN}-doc += "/usr/share/misc/getopt/getopt-*.*"
41 FILES_${PN} = "${bindir} ${sbindir} ${base_bindir} ${base_sbindir}"
42
43 FILES_util-linux-ng-fdisk = "${base_sbindir}/fdisk.${PN}"
44 FILES_util-linux-ng-cfdisk = "${base_sbindir}/cfdisk"
45 # Moved to ${sbindir} in new versions:
46 FILES_util-linux-ng-sfdisk = "${base_sbindir}/sfdisk ${sbindir}/sfdisk"
47 FILES_util-linux-ng-swaponoff = "${base_sbindir}/swapon.${PN} ${base_sbindir}/swapoff.${PN}"
48 FILES_util-linux-ng-losetup = "${base_sbindir}/losetup.${PN}"
49 FILES_util-linux-ng-mount = "${base_bindir}/mount.${PN} ${sysconfdir}/default/mountall"
50 FILES_util-linux-ng-umount = "${base_bindir}/umount.${PN}"
51 # Moved to ${base_sbindir} by do_install:
52 FILES_util-linux-ng-readprofile = "${sbindir}/readprofile.${PN}"
53 FILES_util-linux-ng-fsck = "${base_sbindir}/fsck.${PN}"
54 FILES_util-linux-ng-blkid = "${base_sbindir}/blkid.${PN}"
55 FILES_${PN}-mountall = "${sysconfdir}/default/mountall.${PN}"
56 FILES_${PN}-reset = "${bindir}/reset.${PN}"
57
58 RREPLACES_util-linux-ng-blkid = "e2fsprogs-blkid"
59 RREPLACES_${PN}-mountall = "busybox-mountall"
60
61 RRECOMMENDS_${PN} = "${PN}-fdisk ${PN}-cfdisk ${PN}-sfdisk ${PN}-mount ${PN}-readprofile"
62 RDEPENDS_${PN} = "${PN}-mountall ${PN}-umount ${PN}-swaponoff ${PN}-losetup ${PN}-fsck ${PN}-blkid"
63 RDEPENDS_${PN}-reset = "ncurses-tools"
64
65 RRECOMMENDS_${PN}_virtclass-native = ""
66 RDEPENDS_${PN}_virtclass-native = ""
67
68 NATIVECONF = ""
69 NATIVECONF_virtclass-native = "--without-ncurses"
70
71 EXTRA_OECONF = "--disable-use-tty-group --disable-makeinstall-chown \
72 --enable-kill --enable-last --enable-mesg --enable-raw --enable-login-utils \
73 --enable-arch --enable-init --enable-partx --enable-schedutils \
74 --with-fsprobe=builtin --enable-libuuid --enable-libblkid \
75 --enable-fsck --enable-reset ${NATIVECONF}"
76
77 LDFLAGS_append_libc-uclibc = "${@['',' -lintl'][bb.data.getVar('USE_NLS', d, 1) == 'yes']}"
78 LDFLAGS_virtclass-native = "${BUILD_LDFLAGS}"
79
80 S = "${WORKDIR}/util-linux-ng-${PV}${RC}"
81
82 do_configure_prepend_chinook-compat () {
83
84         for i in  lt~obsolete.m4 ltsugar.m4 libtool.m4 ltoptions.m4 ltversion.m4
85         do
86                 rm -f ${S}/m4/${i}
87         done
88 }
89
90 do_compile () {
91         set -e
92         oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= \
93                 'OPT=${CFLAGS}' 'CC=${CC}' 'LD=${LD}' \
94                 'LDFLAGS=${LDFLAGS}'
95 }
96
97 checklink() {
98         local targ link value
99         targ="$1"
100         link="$2"
101         ext="$3"
102         if test -h "$link"
103         then
104                 value="$(readlink "$link")"
105                 if test "$value" = "$targ"
106                 then
107                         rm "$link"
108                         ln -s "$targ"."${PN}" "$link$ext"
109                         return 0
110                 else
111                         echo "$link: '$value' found '$targ' expected" >&2
112                         return 1
113                 fi
114         else
115                 echo "$link: not a symbolic link" >&2
116                 return 1
117         fi
118 }
119
120 do_install () {
121         # with ccache the timestamps on compiled files may
122         # end up earlier than on their inputs, this allows
123         # for the resultant compilation in the install step.
124         oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= \
125                 'OPT=${CFLAGS}' 'CC=${CC}' 'LD=${LD}' \
126                 'LDFLAGS=${LDFLAGS}' 'DESTDIR=${D}' install
127         mkdir -p ${D}${base_bindir}
128
129         sbinprogs="agetty ctrlaltdel cfdisk"
130         sbinprogs_a="pivot_root hwclock mkswap shutdown mkfs.minix fsck.minix losetup swapon fdisk fsck blkid blockdev vigr vipw uuidd"
131         usrbinprogs_a="chfn chsh hexdump last logger mesg newgrp renice wall setsid chrt reset cal script flock"
132         usrsbinprogs_a="readprofile"
133         binprogs_a="dmesg kill more umount mount login"
134
135         if [ "${base_sbindir}" != "${sbindir}" ]; then
136                 mkdir -p ${D}${base_sbindir}
137                 for p in $sbinprogs $sbinprogs_a; do
138                         if [ -f "${D}${sbindir}/$p" ]; then
139                                 mv "${D}${sbindir}/$p" "${D}${base_sbindir}/$p"
140                         fi
141                 done
142         fi
143
144         if [ "${base_bindir}" != "${bindir}" ]; then
145                 mkdir -p ${D}${base_bindir}
146                 for p in $binprogs_a; do
147                         if [ -f "${D}${bindir}/$p" ]; then
148                                 mv "${D}${bindir}/$p" "${D}${base_bindir}/$p"
149                         fi
150                 done
151         fi
152
153         for p in $usrbinprogs_a; do
154                 if [ -f "${D}${bindir}/$p" ]; then
155                         mv "${D}${bindir}/$p" "${D}${bindir}/$p.${PN}"
156                 fi
157         done
158
159         for p in $usrsbinprogs_a; do
160                 if [ -f "${D}${sbindir}/$p" ]; then
161                         mv "${D}${sbindir}/$p" "${D}${sbindir}/$p.${PN}"
162                 fi
163         done
164
165         for p in $binprogs_a; do
166                 if [ -f "${D}${base_bindir}/$p" ]; then
167                         mv "${D}${base_bindir}/$p" "${D}${base_bindir}/$p.${PN}"
168                 fi
169         done
170
171         for p in $sbinprogs_a; do
172                 if [ -f "${D}${base_sbindir}/$p" ]; then
173                         mv "${D}${base_sbindir}/$p" "${D}${base_sbindir}/$p.${PN}"
174                 fi
175         done
176
177         install -d ${D}${sysconfdir}/default/
178         echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall.${PN}
179
180         rm ${D}${sbindir}/swapoff -f
181         ln -sf ${base_sbindir}/swapon.${PN} ${D}${base_sbindir}/swapoff.${PN}
182         ln -sf ${base_sbindir}/shutdown ${D}${base_sbindir}/reboot.${PN}
183         ln -sf ${base_sbindir}/shutdown ${D}${base_sbindir}/halt.${PN}
184         ln -sf ${base_sbindir}/shutdown ${D}${base_sbindir}/fastboot
185         ln -sf ${base_sbindir}/shutdown ${D}${base_sbindir}/fasthalt
186 }
187
188 python populate_packages_prepend () {
189         ulinxng_libdir = bb.data.expand('${libdir}', d)
190         ulinxng_libdir_dbg = bb.data.expand('${libdir}/.debug', d)
191         do_split_packages(d, ulinxng_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'util-linux-ng %s development package', extra_depends='${PN}-dev', allow_links=True)
192         do_split_packages(d, ulinxng_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'util-linux-ng %s development package', extra_depends='${PN}-dev')
193         do_split_packages(d, ulinxng_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'util-linux-ng %s development package', extra_depends='${PN}-dev')
194         do_split_packages(d, ulinxng_libdir, '^lib(.*)\.so\.*', 'lib%s', 'util-linux-ng %s library', extra_depends='', allow_links=True)
195 }
196
197
198 pkg_postinst_${PN} () {
199         update-alternatives --install ${base_bindir}/dmesg dmesg dmesg.${PN} 100
200         update-alternatives --install ${base_bindir}/kill kill kill.${PN} 100
201         update-alternatives --install ${base_bindir}/more more more.${PN} 100
202         update-alternatives --install ${base_sbindir}/mkswap mkswap mkswap.${PN} 100
203         test -x ${base_sbindir}/pivot_root.${PN} && \
204         update-alternatives --install ${base_sbindir}/pivot_root pivot_root pivot_root.${PN} 100
205         update-alternatives --install ${base_sbindir}/sln sln sln.${PN} 100
206         update-alternatives --install ${base_sbindir}/mkfs.minix mkfs.minix mkfs.minix.${PN} 100
207         update-alternatives --install ${base_sbindir}/fsck.minix fsck.minix fsck.minix.${PN} 100
208         update-alternatives --install ${bindir}/hexdump hexdump hexdump.${PN} 100
209         update-alternatives --install ${bindir}/last last last.${PN} 100
210         update-alternatives --install ${bindir}/logger logger logger.${PN} 100
211         update-alternatives --install ${bindir}/mesg mesg mesg.${PN} 100
212         update-alternatives --install ${bindir}/renice renice renice.${PN} 100
213         update-alternatives --install ${bindir}/wall wall wall.${PN} 100
214         update-alternatives --install ${bindir}/chfn chfn chfn.${PN} 100
215         update-alternatives --install ${bindir}/newgrp newgrp newgrp.${PN} 100
216         update-alternatives --install ${bindir}/chsh chsh chsh.${PN} 100
217         update-alternatives --install ${bindir}/cal cal cal.${PN} 100
218         update-alternatives --install ${bindir}/script script script.${PN} 100
219         update-alternatives --install ${bindir}/flock flock flock.${PN} 100
220         update-alternatives --install ${base_bindir}/login login login.${PN} 100
221         update-alternatives --install ${base_sbindir}/vipw vipw vipw.${PN} 100
222         update-alternatives --install ${base_sbindir}/vigr vigr vigr.${PN} 100
223         update-alternatives --install ${base_sbindir}/blockdev blockdev blockdev.${PN} 100
224         update-alternatives --install ${bindir}/setsid setsid setsid.${PN} 100
225         update-alternatives --install ${bindir}/chrt chrt chrt.${PN} 100
226         update-alternatives --install ${base_sbindir}/uuidd uuidd uuidd.${PN} 100
227         
228         # There seems to be problem, atleast on nslu2, with these, until they are
229         # fixed the busybox ones have higher priority
230         update-alternatives --install ${base_sbindir}/hwclock hwclock hwclock.${PN} 10
231         update-alternatives --install ${base_sbindir}/shutdown shutdown shutdown.${PN} 10
232         update-alternatives --install ${base_sbindir}/reboot reboot reboot.${PN} 10
233         update-alternatives --install ${base_sbindir}/halt halt halt.${PN} 10
234 }
235
236 pkg_prerm_${PN} () {
237         test -x ${base_sbindir}/pivot_root.${PN} && \
238         update-alternatives --remove pivot_root pivot_root.${PN}
239
240         for i in dmesg kill more halt hwclock mkswap reboot shutdown sln mkfs.minix fsck.minix hexdump setsid chrt last logger mesg renice wall vipw vigr blockdev chfn newgrp chsh login cal script flock uuidd; do
241                 update-alternatives --remove $i $i.${PN}
242         done
243 }
244
245 pkg_postinst_util-linux-ng-reset() {
246         update-alternatives --install ${bindir}/reset reset reset.${PN} 100
247 }
248
249 pkg_prerm_util-linux-ng-reset () {
250         update-alternatives --remove reset reset.${PN}
251 }
252
253 pkg_postinst_util-linux-ng-fdisk () {
254         update-alternatives --install ${base_sbindir}/fdisk fdisk fdisk.${PN} 100
255 }
256
257 pkg_prerm_util-linux-ng-fdisk () {
258         update-alternatives --remove fdisk fdisk.${PN}
259 }
260
261 pkg_postinst_util-linux-ng-mount () {
262         update-alternatives --install ${base_bindir}/mount mount mount.${PN} 100
263 }
264
265 pkg_prerm_util-linux-ng-mount () {
266         update-alternatives --remove mount mount.${PN}
267 }
268
269 pkg_postinst_util-linux-ng-umount () {
270         update-alternatives --install ${base_bindir}/umount umount umount.${PN} 100
271 }
272
273 pkg_prerm_util-linux-ng-umount () {
274         update-alternatives --remove umount umount.${PN}
275 }
276
277 pkg_postinst_util-linux-ng-losetup () {
278         update-alternatives --install ${base_sbindir}/losetup losetup losetup.${PN} 100
279 }
280
281 pkg_prerm_util-linux-ng-losetup () {
282         update-alternatives --remove losetup losetup.${PN}
283 }
284
285 pkg_postinst_util-linux-ng-swaponoff () {
286         update-alternatives --install ${base_sbindir}/swapoff swapoff swapon.${PN} 100
287         update-alternatives --install ${base_sbindir}/swapon swapon swapon.${PN} 100
288 }
289
290 pkg_prerm_util-linux-ng-swaponoff () {
291         update-alternatives --remove swapoff swapon.${PN}
292         update-alternatives --remove swapon swapon.${PN}
293 }
294
295 pkg_postinst_util-linux-ng-readprofile() {
296     update-alternatives --install ${sbindir}/readprofile readprofile readprofile.${PN} 100
297 }
298
299 pkg_prerm_util-linux-ng-readprofile () {
300     update-alternatives --remove readprofile readprofile.${PN} 100
301 }
302
303 pkg_postinst_util-linux-ng-mountall () {
304         update-alternatives --install ${sysconfdir}/default/mountall default_mountall mountall.${PN} 100
305 }
306 pkg_prerm_util-linux-ng-mountall () {
307         update-alternatives --remove default_mountall mountall.${PN}
308 }
309
310 pkg_postinst_util-linux-ng-fsck () {
311         update-alternatives --install ${base_sbindir}/fsck fsck fsck.${PN} 100
312 }
313
314 pkg_prerm_util-linux-ng-fsck () {
315         update-alternatives --remove fsck fsck.${PN}
316 }
317
318 pkg_postinst_util-linux-ng-blkid () {
319         update-alternatives --install ${base_sbindir}/blkid blkid blkid.${PN} 100
320 }
321
322 pkg_prerm_util-linux-ng-blkid () {
323         update-alternatives --remove blkid blkid.${PN}
324 }
325
326 BBCLASSEXTEND = "native"