Mailinglist Archive: opensuse-buildservice (170 mails)

< Previous Next >
Re: [opensuse-buildservice] Ubuntu 12.10 x11-common postinst bug
  • From: Martin Koegler <martin.koegler@xxxxxxxxx>
  • Date: Sat, 3 Nov 2012 13:32:08 +0100
  • Message-id: <20121103123207.GA5867@mail.zuhause>
The workaround is the following addition to the project config:
==+++++++++++++=================================
%if "%_repository" == "xUbuntu_12.10"

Runscripts: sysv-rc

%endif
=+++++++++++++==================================

Workarund in action:
https://build.opensuse.org/package/live_build_log?arch=x86_64&package=libgnomeprint&project=home%3Ae9925248%3Agrandorgue&repository=xUbuntu_12.10

It would be nice, if the global OBS config for Ubuntu 12.10 could be fixed.

Regards,
Martin

On Fri, Nov 02, 2012 at 09:12:10AM +0100, Martin Koegler wrote:
As I also hit the same issue, I looked at the problem:

[ 192s] [191/305] installing x11-common
[ 192s] Selecting previously unselected package x11-common.
[ 194s] Can't exec "insserv": No such file or directory at
/usr/sbin/update-rc.d line 417.
[ 194s] update-rc.d: error: insserv rejected the script header
[ 194s] dpkg: error processing x11-common (--install):
[ 194s] subprocess installed post-installation script returned error exit
status 255
[ 194s] Errors were encountered while processing:
[ 194s] x11-common
[ 194s] exit ...

x11-common simply manages a initscript via update-rc.d - the bug is inside
update-rc.d (part of sysv-rc package).

update-rc.d checks, if /etc/init.d/.legacy-bootordering is present. If yes,
it changes the etc directory itself, else it calls
inserv [expecting, that it is in the path - the insserv package ships this
exectuable in /usr/lib/insserv].

The postinst of sysv-rc creates /etc/init.d/.legacy-bootordering, if still
some init scripts are linked as
/etc/rc0.d/S*

In a Ubunutu 12.04 (as well as Ubuntu 12.10) chroot, update-rc.d is broken,
if there is no /etc/init.d/.legacy-bootordering.

Ensuring, that there is a /etc/init.d/.legacy-bootordering after sysv-rc is
installed and configured, should solve the problem.

I don't fully understand the OBS bootstrap nor have I tried to reproduce the
bootstrap, but in my option the problem
is caused by the fact, that passwd on 12.10 got a depenendency to upstart
added. So initscripts/sysv-rc.d are installed
in the first phase (--prepare) - according to the build logs (and the project
config), it's postinst are not started.

So in my option, OBS could add a workaround to create a
/etc/init.d/.legacy-bootordering after finishing prepare.
Running the initscripts of sysc-rc.d/initscripts could also be an option.

--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >
References