Wind River Support Network

HomeDefectsLIN8-5649
Fixed

LIN8-5649 : smart needs to run flock --w but this option is not supported in busybox version of flock (glibc-small)

Created: Jan 27, 2017    Updated: Dec 3, 2018
Resolved Date: Mar 25, 2017
Found In Version: 8.0.0.13
Fix Version: 8.0.0.16
Severity: Standard
Applicable for: Wind River Linux 8
Component/s: Userspace

Description

We use smart to install quagga package.
During the install process, smart runs flock --w command via useradd and groupadd commands to create zebra.service file.

flock command was failing while installing quagga. glibc-small uses busybox version of flock which does not support --w option (see d by useradd and groupadd commands to create zebra.service file.)

So you will get this error :
---
Created symlink from /etc/systemd/system/multi-user.target.wants/isisd.service t o /lib/systemd/system/isisd.service.
Failed to restart isisd.service: Unit zebra.service failed to load: No such file or directory.
error: %post(quagga-isisd-0.99.24.1-r0.0.ppc603e) scriptlet failed, exit status 6
Output from quagga-0.99.24.1-r0.0@ppc603e:
Running groupadd commands...
NOTE: quagga: Performing groupadd with [ --system quagga ]
flock: invalid option -- 'w'
BusyBox v1.23.2 (2016-12-23 12:35:49 EST) multi-call binary.

Usage: flock [-sxun] FD|{FILE [-c] PROG ARGS}

ERROR: quagga: groupadd command did not succeed.
error: %pre(quagga-0.99.24.1-r0.0.ppc603e) scriptlet failed, exit status 1
error: install: %pre scriptlet failed (2), skipping quagga-0.99.24.1-r0.0.ppc6 03e
7:Installing quagga-ripd ######################################## [ 88%]
Output from quagga-ripd-0.99.24.1-r0.0@ppc603e:
Created symlink from /etc/systemd/system/multi-user.target.wants/ripd.service to /lib/systemd/system/ripd.service.
Failed to restart ripd.service: Unit zebra.service failed to load: No such file or directory.
error: %post(quagga-ripd-0.99.24.1-r0.0.ppc603e) scriptlet failed, exit status 6 
---

It works correctly when using flock from util-linux (need to add the package as it is not included with glibc-small)

Workaround

add util-linux package in glibc-small.

Steps to Reproduce

1. create platform project with glibc-small root FS :

configure --enable-reconfig --enable-board=intel-x86-64 --enable-kernel=standard --enable-rootfs=glibc-small --enable-build=production --enable-jobs=8 --enable-parallel-pkgbuilds=8 --with-template=feature/package-management  --with-rcpl-version=0013

2. build project and deploy it on the target

3. add quagga to the project and build
make -C build quagga.addpkg
make

At this point, quagga is built in the project but it is not deployed on the target

4. setup smart

On the host side :
$ cd bitbake_build/tmp/deploy/rpm
$ ls
all  core2_64  lib32_x86  qemux86_64

Using an editor, create package-feeds file (see attached my example)

start the server
$ python -m SimpleHTTPServer 8080

On the target side : 

$ smart channel -y --add http://host_IP_address:8080/package-feeds
$ smart update
$ smart install quagga

Other Downloads


Live chat
Online