diff --git a/modules/cowbuilder/files/E01-enable-repos b/modules/cowbuilder/files/E01-enable-repos index b4ba9a034e..8343d4904a 100644 --- a/modules/cowbuilder/files/E01-enable-repos +++ b/modules/cowbuilder/files/E01-enable-repos @@ -15,23 +15,22 @@ deb http://security.ubuntu.com/ubuntu $release-security main universe deb-src http://security.ubuntu.com/ubuntu $release-security main universe deb http://us.archive.ubuntu.com/ubuntu/ $release-updates main universe deb-src http://us.archive.ubuntu.com/ubuntu/ $release-updates main universe + +deb http://packages.openstack.org/trunk $release main +deb-src http://packages.openstack.org/trunk $release main EOF - #TODO: This should be packages.openstack.org once we have it. - add-apt-repository ppa:nova-core/trunk - - if test "${release}" != "oneiric" -a "${release}" != "natty" - then - add-apt-repository ppa:nova-core/build-depends - fi + apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32EE128C + rm -rf /etc/apt/sources.list.d/nova-core* else # Have I mentioned our lack of debian is a bit assy? Let's hope Maverick # works for now - cat > "/etc/apt/sources.list.d/nova.list" << EOF -deb http://ppa.launchpad.net/nova-core/trunk/ubuntu maverick main -deb http://ppa.launchpad.net/nova-core/build-depends/ubuntu maverick main + cat > "/etc/apt/sources.list.d/extras.list" << EOF +deb http://packages.openstack.org/trunk $release main +deb-src http://packages.openstack.org/trunk $release main EOF - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 2A2356C9 + rm -rf /etc/apt/sources.list.d/nova.list + apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32EE128C fi apt-get update diff --git a/modules/cowbuilder/manifests/cow.pp b/modules/cowbuilder/manifests/cow.pp index a4b7f067a3..0d678dfd04 100644 --- a/modules/cowbuilder/manifests/cow.pp +++ b/modules/cowbuilder/manifests/cow.pp @@ -1,6 +1,16 @@ define cowbuilder::cow($distro = ubuntu) { $has_cow = "/usr/bin/test -d /var/cache/pbuilder/base-$name.cow" + $has_cow_32 = "/usr/bin/test -d /var/cache/pbuilder/base-$name-i386.cow" + case $bits { + 32: { + $env = ["ARCH=i386", "DIST=$name","APTCACHEHARDLINK=no","HOME=/root"] + } + 64: { + $env = ["DIST=$name","APTCACHEHARDLINK=no","HOME=/root"] + } + } + case $distro { ubuntu: { exec { "Add base cow for $name": @@ -13,6 +23,16 @@ define cowbuilder::cow($distro = ubuntu) { logoutput => on_failure, unless => "$has_cow", } + exec { "Add 32-bit base cow for $name": + environment => ["ARCH=i386", "DIST=$name","APTCACHEHARDLINK=no","HOME=/root"], + command => "linux32 git-pbuilder create --distribution $name --components 'main universe' --hookdir /var/cache/pbuilder/hook.d/ --mirror='http://us.archive.ubuntu.com/ubuntu/'", + path => "/usr/sbin:/usr/bin:/sbin:/bin", + user => root, + group => root, + timeout => 0, + logoutput => on_failure, + unless => "$has_cow_32", + } } debian: { exec { "Add base cow for $name": @@ -25,6 +45,16 @@ define cowbuilder::cow($distro = ubuntu) { logoutput => on_failure, unless => "$has_cow", } + exec { "Add 32-bit base cow for $name": + environment => ["ARCH=i386", "DIST=$name","APTCACHEHARDLINK=no","HOME=/root"], + command => "linux32 git-pbuilder create --distribution $name --mirror ftp://ftp.us.debian.org/debian/ --debootstrapopts '--keyring=/usr/share/keyrings/debian-archive-keyring.gpg' --hookdir /var/cache/pbuilder/hook.d/", + path => "/usr/sbin:/usr/bin:/sbin:/bin", + user => root, + group => root, + timeout => 0, + logoutput => on_failure, + unless => "$has_cow_32", + } } } exec { "Update base cow for $name": @@ -36,4 +66,13 @@ define cowbuilder::cow($distro = ubuntu) { logoutput => on_failure, onlyif => "$has_cow", } + exec { "Update 32-bit base cow for $name": + environment => ["ARCH=i386", "DIST=$name","APTCACHEHARDLINK=no","HOME=/root"], + command => "linux32 git-pbuilder update --hookdir /var/cache/pbuilder/hook.d/", + path => "/usr/sbin:/usr/bin:/sbin:/bin", + user => root, + group => root, + logoutput => on_failure, + onlyif => "$has_cow_32", + } } diff --git a/modules/cowbuilder/manifests/init.pp b/modules/cowbuilder/manifests/init.pp index ef0e46f5bc..78be502d7f 100644 --- a/modules/cowbuilder/manifests/init.pp +++ b/modules/cowbuilder/manifests/init.pp @@ -3,6 +3,7 @@ class cowbuilder { $slave_packages = ["git-buildpackage", "pbuilder", "cowbuilder", + "linux32", "debian-archive-keyring"] $ubuntu_releases = [ "lucid", @@ -39,11 +40,15 @@ class cowbuilder { cowbuilder::cow { $ubuntu_releases: distro => 'ubuntu', - require => [Package[debian-archive-keyring], File[cowhook]], + require => [ Package[debian-archive-keyring], + Package[linux32], + File[cowhook] + ], } cowbuilder::cow { $debian_releases: distro => 'debian', require => [ Package[debian-archive-keyring], + Package[linux32], File[cowhook], Cowbuilder::Debgpg[AED4B06F473041FA], ],