[Apt-Rpm] Issue with apt-rpm 0.5.15lorg3.2 on Solaris 9 with RPM 4.4.2.3

Panu Matilainen pmatilai at laiskiainen.org
Tue Jan 27 12:26:19 PST 2009


On Wed, 7 Jan 2009, Brian Schubert wrote:

> Hello,
>
> I have managed to get rpm 4.4.2.3 working on Solaris 9 but am unable to
> get apt-rpm to work properly with it. Specifically, apt-get gives an
> error when ever it encounters a %post, %preun, etc. script.
> Additionally, the usage of 'popen' in gpg-check.lua does not appear to
> be supported by my setup. Here is an example:
>
> apt-get install nano
> Reading Package Lists... Done
> Building Dependency Tree... Done
> The following NEW packages will be installed:
>  nano (2.1.4-1)
> 0 upgraded, 1 newly installed, 0 removed and 0 not upgraded.
> Need to get 0B/268kB of archives.
> After unpacking 781kB of additional disk space will be used.
> Checking GPG signatures...  Committing changes...######################
> [100%]
> Preparing...                ###########################################
> [100%]
>  1:nano                   ###########################################
> [100%]
> error: %post(nano-2.1.4-1.sparc64) scriptlet failed, signal 11
>
> W: Error running script: /usr/local/share/apt/scripts/gpg-check.lua:59:
> `popen' not supported
> W: Some errors occurred while running transaction

Hmm, Solaris surely has popen(), so it's not getting built in for whatever 
reason, this is what controls it:

/*
** by default, posix systems get `popen'
*/
#ifndef USE_POPEN
#ifdef _POSIX_C_SOURCE
#if _POSIX_C_SOURCE >= 2
#define USE_POPEN       1
#endif
#endif
#endif

> And here is what happens when I remove the package:
>
> apt-get remove nano
> Reading Package Lists... Done
> Building Dependency Tree... Done
> The following packages will be REMOVED:
>  nano (2.1.4-1)
> 0 upgraded, 0 newly installed, 1 removed and 0 not upgraded.
> Need to get 0B of archives.
> After unpacking 781kB disk space will be freed.
> Do you want to continue? [Y/n] y
> Committing changes...
> Preparing...                ###########################################
> [100%]
> error: %preun(nano-2.1.4-1.sparc64) scriptlet failed, signal 11
> W: Some errors occurred while running transaction
>
> I have determined that this is not an rpm issue, since the package
> installs/uninstalls without issue when rpm is used directly.
>
> I also experience the same problem with the 0.5.15lorg3.94a development
> release.

This is fairly strange, as it's really rpm code which is executing inside 
the transaction, apt doesn't directly call anything like "execute this 
packages %preun scriptlet" and has been working reliably for a long time 
now. Try to get a backtrace of the scriptlet dying, otherwise it's kinda 
hopeless guesswork.

One possible workaround might be switching to the "external package 
manager" mode which actually executes the rpm command instead of using 
librpm to do the work, this can be enabled with -o RPM::PM="external" 
option to see if it helps. But again, even if it works, that's just a 
workaround.

 	- Panu -



More information about the Apt-Rpm mailing list