1 DESCRIPTION = "Util-linux-ng is a suite of essential utilities for any Linux system."
4 DEPENDS = "udev zlib ncurses virtual/libintl"
6 inherit autotools_stage
7 AUTOTOOLS_STAGE_PKGCONFIG = "1"
9 DEFAULT_PREFERENCE = "-1"
13 # allows for a release candidate
16 SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/util-linux-ng/v${PV}/util-linux-ng-${PV}${RC}.tar.bz2"
18 SRC_URI_append_chinook-compat = " file://chinook_libtool.patch;patch=1 "
20 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 "
21 PACKAGES_DYNAMIC = "libblkid*"
23 # Provide old util-linux names (several recipes still use DEPENDS or RDEPENDS = "util-linux"):
24 PROVIDES = "util-linux"
25 RPROVIDES_${PN} = "util-linux"
26 RPROVIDES_util-linux-ng-fdisk = "util-linux-fdisk"
27 RPROVIDES_util-linux-ng-cfdisk = "util-linux-cfdisk"
28 RPROVIDES_util-linux-ng-sfdisk = "util-linux-sfdisk"
29 RPROVIDES_util-linux-ng-swaponoff = "util-linux-swaponoff"
30 RPROVIDES_util-linux-ng-losetup = "util-linux-losetup"
31 RPROVIDES_util-linux-ng-umount = "util-linux-umount"
32 RPROVIDES_util-linux-ng-mount = "util-linux-mount"
33 RPROVIDES_util-linux-ng-readprofile = "util-linux-readprofile"
35 FILES_${PN}-doc += "/usr/share/misc/getopt/getopt-*.*"
36 FILES_${PN} = "${bindir} ${sbindir} ${base_bindir} ${base_sbindir}"
38 FILES_util-linux-ng-fdisk = "${base_sbindir}/fdisk.${PN}"
39 FILES_util-linux-ng-cfdisk = "${base_sbindir}/cfdisk"
40 # Moved to ${sbindir} in new versions:
41 FILES_util-linux-ng-sfdisk = "${base_sbindir}/sfdisk ${sbindir}/sfdisk"
42 FILES_util-linux-ng-swaponoff = "${base_sbindir}/swapon.${PN} ${base_sbindir}/swapoff.${PN}"
43 FILES_util-linux-ng-losetup = "${base_sbindir}/losetup.${PN}"
44 FILES_util-linux-ng-mount = "${base_bindir}/mount.${PN} ${sysconfdir}/default/mountall"
45 FILES_util-linux-ng-umount = "${base_bindir}/umount.${PN}"
46 # Moved to ${base_sbindir} by do_install:
47 FILES_util-linux-ng-readprofile = "${base_sbindir}/readprofile.${PN}"
49 PACKAGES =+ "${PN}-mountall"
50 FILES_${PN}-mountall = "${sysconfdir}/default/mountall"
51 RREPLACES_${PN}-mountall = "busybox-mountall"
53 RRECOMMENDS_${PN} = "util-linux-ng-fdisk util-linux-ng-cfdisk util-linux-ng-sfdisk util-linux-ng-mount util-linux-ng-readprofile "
54 RDEPENDS_${PN} = "${PN}-mountall util-linux-ng-umount util-linux-ng-swaponoff util-linux-ng-losetup"
56 EXTRA_OECONF = "--disable-use-tty-group --disable-makeinstall-chown \
57 --enable-kill --enable-last --enable-mesg --enable-raw --enable-login-utils \
58 --enable-arch --enable-init --enable-partx --enable-schedutils \
59 --with-fsprobe=builtin"
61 S = "${WORKDIR}/util-linux-ng-${PV}${RC}"
63 do_configure_prepend_chinook-compat () {
65 for i in lt~obsolete.m4 ltsugar.m4 libtool.m4 ltoptions.m4 ltversion.m4
73 # install ${WORKDIR}/MCONFIG ${S}/MCONFIG
74 # install ${WORKDIR}/make_include ${S}/make_include
75 # install ${WORKDIR}/swapargs.h ${S}/mount/swapargs.h
76 # install ${WORKDIR}/defines.h ${S}/defines.h
77 oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= \
78 'OPT=${CFLAGS}' 'CC=${CC}' 'LD=${LD}' \
89 value="$(readlink "$link")"
90 if test "$value" = "$targ"
93 ln -s "$targ"."${PN}" "$link$ext"
96 echo "$link: '$value' found '$targ' expected" >&2
100 echo "$link: not a symbolic link" >&2
106 # with ccache the timestamps on compiled files may
107 # end up earlier than on their inputs, this allows
108 # for the resultant compilation in the install step.
109 oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= \
110 'OPT=${CFLAGS}' 'CC=${CC}' 'LD=${LD}' \
111 'LDFLAGS=${LDFLAGS}' 'DESTDIR=${D}' install
112 mkdir -p ${D}${base_bindir}
114 sbinprogs="agetty blockdev ctrlaltdel cfdisk"
115 sbinprogs_a="pivot_root hwclock mkswap shutdown mkfs.minix fsck.minix losetup swapon fdisk readprofile"
116 usrbinprogs_a="hexdump last logger mesg renice wall"
117 binprogs_a="dmesg kill more umount mount"
119 if [ "${base_sbindir}" != "${sbindir}" ]; then
120 mkdir -p ${D}${base_sbindir}
121 for p in $sbinprogs $sbinprogs_a; do
122 if [ -f "${D}${sbindir}/$p" ]; then
123 mv "${D}${sbindir}/$p" "${D}${base_sbindir}/$p"
128 if [ "${base_bindir}" != "${bindir}" ]; then
129 mkdir -p ${D}${base_bindir}
130 for p in $binprogs_a; do
131 if [ -f "${D}${bindir}/$p" ]; then
132 mv "${D}${bindir}/$p" "${D}${base_bindir}/$p"
137 for p in $usrbinprogs_a; do
138 if [ -f "${D}${bindir}/$p" ]; then
139 mv "${D}${bindir}/$p" "${D}${bindir}/$p.${PN}"
143 for p in $binprogs_a; do
144 if [ -f "${D}${base_bindir}/$p" ]; then
145 mv "${D}${base_bindir}/$p" "${D}${base_bindir}/$p.${PN}"
149 for p in $sbinprogs_a; do
150 if [ -f "${D}${base_sbindir}/$p" ]; then
151 mv "${D}${base_sbindir}/$p" "${D}${base_sbindir}/$p.${PN}"
155 install -d ${D}${sysconfdir}/default/
156 echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall
158 rm ${D}${sbindir}/swapoff -f
159 ln -sf ${base_sbindir}/swapon.${PN} ${D}${base_sbindir}/swapoff.${PN}
160 ln -sf ${sbindir}/shutdown ${D}${sbindir}/reboot.${PN}
161 ln -sf ${sbindir}/shutdown ${D}${sbindir}/halt.${PN}
162 ln -sf ${sbindir}/shutdown ${D}${sbindir}/fastboot
163 ln -sf ${sbindir}/shutdown ${D}${sbindir}/fasthalt
166 python populate_packages_prepend () {
167 ulinxng_libdir = bb.data.expand('${libdir}', d)
168 ulinxng_libdir_dbg = bb.data.expand('${libdir}/.debug', d)
169 do_split_packages(d, ulinxng_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'util-linux-ng %s development package', extra_depends='${PN}-dev', allow_links=True)
170 do_split_packages(d, ulinxng_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'util-linux-ng %s development package', extra_depends='${PN}-dev')
171 do_split_packages(d, ulinxng_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'util-linux-ng %s development package', extra_depends='${PN}-dev')
172 do_split_packages(d, ulinxng_libdir, '^lib(.*)\.so\.*', 'lib%s', 'util-linux-ng %s library', extra_depends='', allow_links=True)
176 pkg_postinst_${PN} () {
177 update-alternatives --install ${base_bindir}/dmesg dmesg dmesg.${PN} 100
178 update-alternatives --install ${base_bindir}/kill kill kill.${PN} 100
179 update-alternatives --install ${base_bindir}/more more more.${PN} 100
180 update-alternatives --install ${base_sbindir}/mkswap mkswap mkswap.${PN} 100
181 test -x ${base_sbindir}/pivot_root.${PN} && \
182 update-alternatives --install ${base_sbindir}/pivot_root pivot_root pivot_root.${PN} 100
183 update-alternatives --install ${base_sbindir}/sln sln sln.${PN} 100
184 update-alternatives --install ${base_sbindir}/mkfs.minix mkfs.minix mkfs.minix.${PN} 100
185 update-alternatives --install ${base_sbindir}/fsck.minix fsck.minix fsck.minix.${PN} 100
186 update-alternatives --install ${bindir}/hexdump hexdump hexdump.${PN} 100
187 update-alternatives --install ${bindir}/last last last.${PN} 100
188 update-alternatives --install ${bindir}/logger logger logger.${PN} 100
189 update-alternatives --install ${bindir}/mesg mesg mesg.${PN} 100
190 update-alternatives --install ${bindir}/renice renice renice.${PN} 100
191 update-alternatives --install ${bindir}/wall wall wall.${PN} 100
193 # There seems to be problem, atleast on nslu2, with these, until they are
194 # fixed the busybox ones have higher priority
195 update-alternatives --install ${base_sbindir}/hwclock hwclock hwclock.${PN} 10
196 update-alternatives --install ${base_sbindir}/shutdown shutdown shutdown.${PN} 10
197 update-alternatives --install ${base_sbindir}/reboot reboot reboot.${PN} 10
198 update-alternatives --install ${base_sbindir}/halt halt halt.${PN} 10
202 test -x ${base_sbindir}/pivot_root.${PN} && \
203 update-alternatives --remove pivot_root pivot_root.${PN}
204 update-alternatives --remove dmesg dmesg.${PN}
205 update-alternatives --remove kill kill.${PN}
206 update-alternatives --remove more more.${PN}
207 update-alternatives --remove halt halt.${PN}
208 update-alternatives --remove hwclock hwclock.${PN}
209 update-alternatives --remove mkswap mkswap.${PN}
210 update-alternatives --remove reboot reboot.${PN}
211 update-alternatives --remove shutdown shutdown.${PN}
212 update-alternatives --remove sln sln.${PN}
213 update-alternatives --remove mkfs.minix mkfs.minix.${PN}
214 update-alternatives --remove fsck.minix fsck.minix.${PN}
215 update-alternatives --remove hexdump hexdump.${PN}
216 update-alternatives --remove last last.${PN}
217 update-alternatives --remove logger logger.${PN}
218 update-alternatives --remove mesg mesg.${PN}
219 update-alternatives --remove renice renice.${PN}
220 update-alternatives --remove wall wall.${PN}
223 pkg_postinst_util-linux-ng-fdisk () {
224 update-alternatives --install ${base_sbindir}/fdisk fdisk fdisk.${PN} 100
227 pkg_prerm_util-linux-ng-fdisk () {
228 update-alternatives --remove fdisk fdisk.${PN}
231 pkg_postinst_util-linux-ng-mount () {
232 update-alternatives --install ${base_bindir}/mount mount mount.${PN} 100
235 pkg_prerm_util-linux-ng-mount () {
236 update-alternatives --remove mount mount.${PN}
239 pkg_postinst_util-linux-ng-umount () {
240 update-alternatives --install ${base_bindir}/umount umount umount.${PN} 100
243 pkg_prerm_util-linux-ng-umount () {
244 update-alternatives --remove umount umount.${PN}
247 pkg_postinst_util-linux-ng-losetup () {
248 update-alternatives --install ${base_sbindir}/losetup losetup losetup.${PN} 100
251 pkg_prerm_util-linux-ng-losetup () {
252 update-alternatives --remove losetup losetup.${PN}
255 pkg_postinst_util-linux-ng-swaponoff () {
256 update-alternatives --install ${base_sbindir}/swapoff swapoff swapoff.${PN} 100
257 update-alternatives --install ${base_sbindir}/swapon swapon swapon.${PN} 100
260 pkg_prerm_util-linux-ng-swaponoff () {
261 update-alternatives --remove swapoff swapoff.${PN}
262 update-alternatives --remove swapon swapon.${PN}
265 pkg_postinst_util-linux-ng-readprofile() {
266 update-alternatives --install ${sbindir}/readprofile readprofile readprofile.${PN} 100
269 pkg_prerm_util-linux-ng-readprofile () {
270 update-alternatives --remove readprofile readprofile.${PN} 100