Two questions: "mach" problems on Ubuntu (Karmic Koala) - some distros don't work ...

Thomas Vander Stichele thomas at apestaart.org
Wed Apr 21 14:12:22 BST 2010


Hi,

On Wed, 2010-04-21 at 13:19 +0200, Marc Wäckerlin wrote:
> Hi Thomas
> Hi Loic and Hi Ubuntu MOTU Developers
> 
> 
> =================================================================================
> Motivation
> =================================================================================
> 
> First of all, thank's for "mach". I am looking for a solution to build SuSE/RedHat-RPMs on my Ubuntu build server. I developed a software for which I'd like to provide distribution specific packages. Since our buildsystem is Ubuntu i386 Karmic Koala, it's no problem to build i386/amd64 binary Karmic Koala, and for other Ubuntu/Debian packages, there's debootstrap/dchroot. But for RPM-based distributions, "mach" is the best solution I found by now.
> 
> Or is there any better approach?
> 
> Some of the packages to distribute packages are free, but some others have been licenced by us and cannot be set free. That's why I can't e.g. use the OpenSUSE-Buildserver.

That's fine, you can set up your own custom repositories, we do that at
work too.


> 
> 
> =================================================================================
> How I installed the package on Ubuntu Karmic Koala, installation problems:
> =================================================================================
> 
> "mach" is available in the Ubuntu repositories, but unfortunately only in the very old release 0.9.1. That's why I had to compile it myself.
> 
> "alien" does not work to convert Thomas' packages for fc11 to karmic, it results in:
> ---------------------------------------------------------------------------------
> chown: cannot access `mach-0.9.5//var/tmp/mach': No such file or directory
> failed chowning /var/tmp/mach to 0:0:  at /usr/share/perl5/Alien/Package/Rpm.pm line 265, <GETPERMS> line 73.
> ---------------------------------------------------------------------------------
> And so does "rpmbuild" from the source-rpm package: it ends in the same error message.

I can't understand people who see the need for mach but still use
alien :) This is a matter of taste of course.


> Installing to "/usr/local" using "./configure && make && sudo make install" results in an installation that does not work. Some paths seem not to be used in the correct way (hard-coded?).

More info please ? I doubt there is actual hardcoding going on.


> That's why I ended up in the following installation procedure (using checkinstall):
> ---------------------------------------------------------------------------------
>   ./configure --prefix /usr --sysconfdir /etc --sharedstatedir /var --localstatedir /var
>   sudo checkinstall bash -c "make install && chmod u+s /usr/sbin/mach-helper"
> ---------------------------------------------------------------------------------

That probably works too, though again, people who see the need for mach
typically also never install manually built stuff in /usr

> 
> =================================================================================
> Question 1: Where are the OpenSUSE-configurations?
> =================================================================================
> 
> In the README, it's documented, that OpenSUSE 11.0 would be supported, but I can't find it in /etc/mach/dist.d/ - how do I install OpenSUSE, what are the "mach" arguments to install OpenSUSE?
[thomas at level ~]$ rpm -ql mach | grep suse
/etc/mach/dist.d/opensuse-102-i386
/etc/mach/dist.d/opensuse-103-i386
/etc/mach/dist.d/opensuse-110-i386
/etc/mach/dist.d/suse-81-i386
/etc/mach/dist.d/suse-82-i386
/etc/mach/dist.d/suse-90-i386
[thomas at level ~]$ rpm -qi mach
Name        : mach                         Relocations: (not
relocatable)
Version     : 0.9.5.1                           Vendor: (none)
Release     : 0.20100406.153432.fc12        Build Date: Tue 06 Apr 2010
03:39:37 PM CEST
Install Date: Tue 06 Apr 2010 03:39:57 PM CEST      Build Host:
level.fluendo.lan
Group       : Applications/System           Source RPM:
mach-0.9.5.1-0.20100406.153432.fc12.src.rpm
Size        : 476816                           License: GPLv2+
Signature   : (none)
URL         : http://thomas.apestaart.org/projects/mach/
Summary     : Make a chroot


Looking at the ChangeLog it seems they weren't actually in the 0.9.5
release, so you can either build from CVS HEAD, or just copy the
necessary /etc/dist.d files from the CVS repo.

> 
> 
> =================================================================================
> Question 2: Problem installing distributions:
> =================================================================================
> 
> Then I tested the installation of several distribution, with the command "sudo mach -r fedora-3-i386-core setup build". Where I tried several combinations of distributions, with the following results:
>  - fedora-3-i386-core -> Success!
>  - fedora-3-i386-updates -> Success!
>  - fedora-3-i386-extras -> Success!
>  - fedora-4-i386-updates -> Success!
>  - fedora-9-i386-updates -> FAILED!
>  - fedora-10-i386-updates -> FAILED! (solved)
>  - fedora-11-i386-fedora -> FAILED!
>  - fedora-11-i386-updates -> FAILED! (unsolved)
> 
> 
> As can see in the output below, there are two different errors:
> 
> For Fedora 9
>  - URL has changed to: http://archives.fedoraproject.org/pub/archive/fedora/
>  - I solved this by changing fedorayum to fedorayuma.

Also changed in CVS HEAD recently.

> But what's the problem with Fedora 11?
> 
> Output:
> ---------------------------------------------------------------------------------
> sudo mach -r fedora-9-i386-updates setup build
> ---------------------------------------------------------------------------------
> Installing package set 'minimal' ...!
> ERROR: /usr/sbin/mach-helper yum -c /var/lib/mach/states/fedora-9-i386-updates/yum.conf --installroot=/var/lib/mach/roots/fedora-9-i386-updates  -y -y install bash glibc failed.
>  http://download.fedora.redhat.com/pub/fedora/linux/releases/9/Everything/i386/os/repodata/repomd.xml: [Errno 14] HTTP Error 404: Not Found
> Trying other mirror.
> Error: Cannot retrieve repository metadata (repomd.xml) for repository: everything. Please verify its path and try again
> 
> Retrying installing package set 'minimal' ...!
> ERROR: /usr/sbin/mach-helper yum -c /var/lib/mach/states/fedora-9-i386-updates/yum.conf --installroot=/var/lib/mach/roots/fedora-9-i386-updates  -y -y install bash glibc failed.
>  http://download.fedora.redhat.com/pub/fedora/linux/releases/9/Everything/i386/os/repodata/repomd.xml: [Errno 14] HTTP Error 404: Not Found
> Trying other mirror.
> Error: Cannot retrieve repository metadata (repomd.xml) for repository: everything. Please verify its path and try again
> 

This one you fixed, correct ?

> ERROR: Could not yum -y install bash glibc
> ---------------------------------------------------------------------------------
> ---------------------------------------------------------------------------------
> sudo mach -r fedora-11-i386-updates setup build
> ---------------------------------------------------------------------------------
> Installing package set 'minimal' ...!                                    
> ERROR: /usr/sbin/mach-helper yum -c /var/lib/mach/states/fedora-11-i386-updates/yum.conf --installroot=/var/lib/mach/roots/fedora-11-i386-updates  -y -y install bash glibc failed.                                     
>  Setting up Install Process                                                                                 
> Resolving Dependencies                                                                                      
> --> Running transaction check                                                                               
> ---> Package bash.i586 0:4.0-9.fc11 set to be updated                                                       
> --> Processing Dependency: libtinfo.so.5 for package: bash-4.0-9.fc11.i586                                  
> --> Processing Dependency: ncurses-libs for package: bash-4.0-9.fc11.i586                                   
> ---> Package glibc.i686 0:2.10.2-1 set to be updated                                                        
> --> Processing Dependency: glibc-common = 2.10.2-1 for package: glibc-2.10.2-1.i686                         
> --> Processing Dependency: basesystem for package: glibc-2.10.2-1.i686                                      
> --> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.10.2-1.i686                
> --> Processing Dependency: libgcc for package: glibc-2.10.2-1.i686                                          
> --> Processing Dependency: libfreebl3.so for package: glibc-2.10.2-1.i686                                   
> --> Running transaction check                                                                               
> ---> Package basesystem.noarch 0:10.0-2 set to be updated                                                   
> --> Processing Dependency: filesystem for package: basesystem-10.0-2.noarch                                 
> --> Processing Dependency: setup for package: basesystem-10.0-2.noarch                                      
> ---> Package glibc-common.i586 0:2.10.2-1 set to be updated                                                 
> --> Processing Dependency: tzdata >= 2003a for package: glibc-common-2.10.2-1.i586                          
> ---> Package libgcc.i586 0:4.4.1-2.fc11 set to be updated                                                   
> ---> Package ncurses-libs.i586 0:5.7-2.20090207.fc11 set to be updated                                      
> --> Processing Dependency: ncurses-base = 5.7-2.20090207.fc11 for package: ncurses-libs-5.7-2.20090207.fc11.i586                                                                                                        
> ---> Package nss-softokn-freebl.i586 0:3.12.6-1.2.fc11 set to be updated                                    
> --> Running transaction check                                                                               
> ---> Package filesystem.i586 0:2.4.21-1.fc11 set to be updated                                              
> ---> Package ncurses-base.i586 0:5.7-2.20090207.fc11 set to be updated                                      
> ---> Package setup.noarch 0:2.8.3-3.fc11 set to be updated                                                  
> ---> Package tzdata.noarch 0:2010f-3.fc11 set to be updated                                                 
> --> Finished Dependency Resolution                                                                          
> 
> Dependencies Resolved
> 
> ================================================================================
>  Package                Arch       Version                 Repository      Size 
> ================================================================================
> Installing:                                                                     
>  bash                   i586       4.0-9.fc11              updates        1.1 M 
>  glibc                  i686       2.10.2-1                updates        5.8 M 
> Installing for dependencies:                                                    
>  basesystem             noarch     10.0-2                  everything     3.9 k 
>  filesystem             i586       2.4.21-1.fc11           everything     109 k 
>  glibc-common           i586       2.10.2-1                updates         23 M 
>  libgcc                 i586       4.4.1-2.fc11            updates         98 k 
>  ncurses-base           i586       5.7-2.20090207.fc11     everything      68 k 
>  ncurses-libs           i586       5.7-2.20090207.fc11     everything     334 k 
>  nss-softokn-freebl     i586       3.12.6-1.2.fc11         updates        137 k 
>  setup                  noarch     2.8.3-3.fc11            updates        157 k 
>  tzdata                 noarch     2010f-3.fc11            updates        847 k
> 
> Transaction Summary
> ================================================================================
> Install     11 Package(s)
> Update       0 Package(s)
> Remove       0 Package(s)
> 
> Total size: 31 M
> Downloading Packages:
> Running rpm_check_debug
> ERROR with rpm_check_debug vs depsolve:
> rpmlib(BuiltinLuaScripts) is needed by bash-4.0-9.fc11.i586
> rpmlib(BuiltinLuaScripts) is needed by setup-2.8.3-3.fc11.noarch
> Complete!
> (1, [u'Please report this error in http://yum.baseurl.org/report'])
> 
> Retrying installing package set 'minimal' ...!
> ERROR: /usr/sbin/mach-helper yum -c /var/lib/mach/states/fedora-11-i386-updates/yum.conf --installroot=/var/lib/mach/roots/fedora-11-i386-updates  -y -y install bash glibc failed.
>  Setting up Install Process
> Resolving Dependencies
> --> Running transaction check
> ---> Package bash.i586 0:4.0-9.fc11 set to be updated
> --> Processing Dependency: libtinfo.so.5 for package: bash-4.0-9.fc11.i586
> --> Processing Dependency: ncurses-libs for package: bash-4.0-9.fc11.i586
> ---> Package glibc.i686 0:2.10.2-1 set to be updated
> --> Processing Dependency: glibc-common = 2.10.2-1 for package: glibc-2.10.2-1.i686
> --> Processing Dependency: basesystem for package: glibc-2.10.2-1.i686
> --> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.10.2-1.i686
> --> Processing Dependency: libgcc for package: glibc-2.10.2-1.i686
> --> Processing Dependency: libfreebl3.so for package: glibc-2.10.2-1.i686
> --> Running transaction check
> ---> Package basesystem.noarch 0:10.0-2 set to be updated
> --> Processing Dependency: filesystem for package: basesystem-10.0-2.noarch
> --> Processing Dependency: setup for package: basesystem-10.0-2.noarch
> ---> Package glibc-common.i586 0:2.10.2-1 set to be updated
> --> Processing Dependency: tzdata >= 2003a for package: glibc-common-2.10.2-1.i586
> ---> Package libgcc.i586 0:4.4.1-2.fc11 set to be updated
> ---> Package ncurses-libs.i586 0:5.7-2.20090207.fc11 set to be updated
> --> Processing Dependency: ncurses-base = 5.7-2.20090207.fc11 for package: ncurses-libs-5.7-2.20090207.fc11.i586
> ---> Package nss-softokn-freebl.i586 0:3.12.6-1.2.fc11 set to be updated
> --> Running transaction check
> ---> Package filesystem.i586 0:2.4.21-1.fc11 set to be updated
> ---> Package ncurses-base.i586 0:5.7-2.20090207.fc11 set to be updated
> ---> Package setup.noarch 0:2.8.3-3.fc11 set to be updated
> ---> Package tzdata.noarch 0:2010f-3.fc11 set to be updated
> --> Finished Dependency Resolution
> 
> Dependencies Resolved
> 
> ================================================================================
>  Package                Arch       Version                 Repository      Size
> ================================================================================
> Installing:
>  bash                   i586       4.0-9.fc11              updates        1.1 M
>  glibc                  i686       2.10.2-1                updates        5.8 M
> Installing for dependencies:
>  basesystem             noarch     10.0-2                  everything     3.9 k
>  filesystem             i586       2.4.21-1.fc11           everything     109 k
>  glibc-common           i586       2.10.2-1                updates         23 M
>  libgcc                 i586       4.4.1-2.fc11            updates         98 k
>  ncurses-base           i586       5.7-2.20090207.fc11     everything      68 k
>  ncurses-libs           i586       5.7-2.20090207.fc11     everything     334 k
>  nss-softokn-freebl     i586       3.12.6-1.2.fc11         updates        137 k
>  setup                  noarch     2.8.3-3.fc11            updates        157 k
>  tzdata                 noarch     2010f-3.fc11            updates        847 k
> 
> Transaction Summary
> ================================================================================
> Install     11 Package(s)
> Update       0 Package(s)
> Remove       0 Package(s)
> 
> Total size: 31 M
> Downloading Packages:
> Running rpm_check_debug
> ERROR with rpm_check_debug vs depsolve:
> rpmlib(BuiltinLuaScripts) is needed by bash-4.0-9.fc11.i586
> rpmlib(BuiltinLuaScripts) is needed by setup-2.8.3-3.fc11.noarch
> Complete!
> (1, [u'Please report this error in http://yum.baseurl.org/report'])


My best guess here (I recall something like that happening to me too) is
that the host system needs an rpmlib that has BuiltinLuaScripts as a
capability, a recent addition.  The host yum doing the installing uses
the host rpmlib, not the guest rpmlib, and I'm guessing the rpm/rpmlib
ubuntu ships doesn't have this.  rpm needs updating on the host for this
to work.

Thomas

-- 
Death, where is thy sting?
Grave, where is thy victory? 
--
Flumotion - the only way to stream!
http://www.flumotion.net/





More information about the Ubuntu-motu mailing list