Add building of Fuel deb packages during ISO build.
1) Add routines for building deb packages and adding them to local mirror. 2) Add commands for creating Ubuntu-based build sandbox. 3) Update deb specs for Fuel components. Closes-Bug: 1373400 Change-Id: If098654d1158aca6676f9cbb3fc3100fc2e8674d
This commit is contained in:
parent
863cc95244
commit
967ec61eb6
|
@ -1,5 +1,64 @@
|
||||||
|
.PHONY: clean clean-deb
|
||||||
|
|
||||||
include $(SOURCE_DIR)/packages/deb/debian-boot/module.mk
|
include $(SOURCE_DIR)/packages/deb/debian-boot/module.mk
|
||||||
|
|
||||||
$(BUILD_DIR)/packages/deb/build.done: $(BUILD_DIR)/packages/deb/debian-boot/build.done
|
clean: clean-deb
|
||||||
|
|
||||||
|
clean-deb:
|
||||||
|
-sudo umount $(BUILD_DIR)/packages/deb/SANDBOX/proc
|
||||||
|
-sudo umount $(BUILD_DIR)/packages/deb/SANDBOX/dev
|
||||||
|
sudo rm -rf $(BUILD_DIR)/packages/deb
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
# (eval (call build_deb,package_name))
|
||||||
|
define build_deb
|
||||||
|
$(BUILD_DIR)/packages/deb/repo.done: $(BUILD_DIR)/packages/deb/$1.done
|
||||||
|
$(BUILD_DIR)/packages/deb/repo.done: $(BUILD_DIR)/packages/deb/$1-repocleanup.done
|
||||||
|
|
||||||
|
$(BUILD_DIR)/packages/deb/$1.done: $(BUILD_DIR)/mirror/build.done
|
||||||
|
|
||||||
|
$(BUILD_DIR)/packages/deb/$1.done: SANDBOX_UBUNTU:=$(BUILD_DIR)/packages/deb/SANDBOX
|
||||||
|
$(BUILD_DIR)/packages/deb/$1.done: export SANDBOX_UBUNTU_UP:=$$(SANDBOX_UBUNTU_UP)
|
||||||
|
$(BUILD_DIR)/packages/deb/$1.done: export SANDBOX_UBUNTU_DOWN:=$$(SANDBOX_UBUNTU_DOWN)
|
||||||
|
$(BUILD_DIR)/packages/deb/$1.done: $(BUILD_DIR)/repos/repos.done
|
||||||
|
mkdir -p $(BUILD_DIR)/packages/deb/packages $(BUILD_DIR)/packages/deb/sources
|
||||||
|
mkdir -p $$(SANDBOX_UBUNTU)
|
||||||
|
mkdir -p $$(SANDBOX_UBUNTU)/proc
|
||||||
|
sed -e "s/@@UBUNTU_RELEASE@@/$(UBUNTU_RELEASE)/g" $$(SOURCE_DIR)/packages/multistrap.conf | sudo tee $$(SANDBOX_UBUNTU)/multistrap.conf
|
||||||
|
sudo sh -c "$$$${SANDBOX_UBUNTU_UP}"
|
||||||
|
sudo chroot $$(SANDBOX_UBUNTU) /bin/bash -c "apt-get update"
|
||||||
|
sudo mkdir -p $$(SANDBOX_UBUNTU)/tmp/$1
|
||||||
|
ifeq ($1,nailgun-net-check)
|
||||||
|
tar zxf $(BUILD_DIR)/packages/sources/$1/$1*.tar.gz -C $(BUILD_DIR)/packages/deb/sources
|
||||||
|
sudo cp -r $(BUILD_DIR)/packages/deb/sources/$1*/* $$(SANDBOX_UBUNTU)/tmp/$1/
|
||||||
|
endif
|
||||||
|
sudo cp -r $(BUILD_DIR)/packages/sources/$1/* $$(SANDBOX_UBUNTU)/tmp/$1/
|
||||||
|
sudo cp -r $(SOURCE_DIR)/packages/deb/specs/$1/* $$(SANDBOX_UBUNTU)/tmp/$1/
|
||||||
|
dpkg-checkbuilddeps $(SOURCE_DIR)/packages/deb/specs/$1/debian/control 2>&1 | sed 's/^dpkg-checkbuilddeps: Unmet build dependencies: //g' | sed 's/([^()]*)//g;s/|//g' | sudo tee $$(SANDBOX_UBUNTU)/tmp/$1.installdeps
|
||||||
|
sudo chroot $$(SANDBOX_UBUNTU) /bin/bash -c "cat /tmp/$1.installdeps | xargs apt-get -y install"
|
||||||
|
sudo chroot $$(SANDBOX_UBUNTU) /bin/bash -c "cd /tmp/$1 ; DEB_BUILD_OPTIONS=nocheck debuild -us -uc -b -d"
|
||||||
|
cp $$(SANDBOX_UBUNTU)/tmp/*$1*.deb $(BUILD_DIR)/packages/deb/packages
|
||||||
|
sudo rm -rf $$(SANDBOX_UBUNTU)/tmp/*
|
||||||
|
sudo sh -c "$$$${SANDBOX_UBUNTU_DOWN}"
|
||||||
|
$$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/packages/deb/$1-repocleanup.done: $(BUILD_DIR)/mirror/build.done
|
||||||
|
sudo find $(LOCAL_MIRROR_UBUNTU_OS_BASEURL)/pool/main -regex '.*$1_[^-]+-[^-]+.*' -delete
|
||||||
|
$$(ACTION.TOUCH)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call build_deb,fencing-agent))
|
||||||
|
$(eval $(call build_deb,nailgun-mcagents))
|
||||||
|
$(eval $(call build_deb,nailgun-net-check))
|
||||||
|
$(eval $(call build_deb,nailgun-agent))
|
||||||
|
|
||||||
|
$(BUILD_DIR)/packages/deb/repo.done:
|
||||||
|
sudo find $(BUILD_DIR)/packages/deb/packages -name '*.deb' -exec cp -u {} $(LOCAL_MIRROR_UBUNTU_OS_BASEURL)/pool/main \;
|
||||||
|
echo "Applying fix for upstream bug in dpkg..."
|
||||||
|
-sudo patch -N /usr/bin/dpkg-scanpackages < $(SOURCE_DIR)/packages/dpkg.patch
|
||||||
|
sudo $(SOURCE_DIR)/packages/regenerate_ubuntu_repo $(LOCAL_MIRROR_UBUNTU_OS_BASEURL) $(UBUNTU_RELEASE)
|
||||||
$(ACTION.TOUCH)
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/packages/deb/build.done: $(BUILD_DIR)/packages/deb/repo.done \
|
||||||
|
$(BUILD_DIR)/packages/deb/debian-boot/build.done
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
fencing-agent (0.1.0-ubuntu1) precise; urgency=low
|
||||||
|
|
||||||
|
* Update code from upstream
|
||||||
|
|
||||||
|
-- OSCI Jenkins <dburmistrov@mirantis.com> Wed, 03 Sep 2014 15:17:07 +0400
|
||||||
|
|
||||||
fencing-agent (0.1.0-1ubuntu0) precise; urgency=low
|
fencing-agent (0.1.0-1ubuntu0) precise; urgency=low
|
||||||
|
|
||||||
* Add fencing agent script as a separated task
|
* Add fencing agent script as a separated task
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
nailgun-agent (3.9.2-ubuntu6) precise; urgency=low
|
||||||
|
|
||||||
|
* Update code from upstream
|
||||||
|
|
||||||
|
-- OSCI Jenkins <dburmistrov@mirantis.com> Wed, 03 Sep 2014 15:16:22 +0400
|
||||||
|
|
||||||
nailgun-agent (3.9.2-1ubuntu10) precise; urgency=low
|
nailgun-agent (3.9.2-1ubuntu10) precise; urgency=low
|
||||||
|
|
||||||
* Add new version code
|
* Add new version code
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
* * * * * root flock -w 0 -o /var/lock/agent.lock -c "/opt/nailgun/bin/agent >> /var/log/nailgun-agent.log 2>&1"
|
* * * * * root flock -w 0 -o /var/lock/agent.lock -c "/opt/nailgun/bin/agent 2>&1 | tee -a /var/log/nailgun-agent.log | /usr/bin/logger -t nailgun-agent"
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
nailgun-mcagents (0.0.1-ubuntu1) precise; urgency=low
|
||||||
|
|
||||||
|
* Update code from upstream
|
||||||
|
|
||||||
|
-- OSCI Jenkins <dburmistrov@mirantis.com> Wed, 03 Sep 2014 15:20:13 +0400
|
||||||
|
|
||||||
nailgun-mcagents (0.0.1) unstable; urgency=low
|
nailgun-mcagents (0.0.1) unstable; urgency=low
|
||||||
|
|
||||||
* Initial release.
|
* Initial release.
|
||||||
|
|
|
@ -11,7 +11,7 @@ clean:
|
||||||
build-arch:
|
build-arch:
|
||||||
dh_testdir
|
dh_testdir
|
||||||
mkdir -p debian/nailgun-mcagents/usr/share/mcollective/plugins/mcollective/agent/
|
mkdir -p debian/nailgun-mcagents/usr/share/mcollective/plugins/mcollective/agent/
|
||||||
tar -xzf nailgun-mcagents.tar.gz -C debian/nailgun-mcagents/usr/share/mcollective/plugins/mcollective/agent/
|
tar -xzf mcagents.tar.gz -C debian/nailgun-mcagents/usr/share/mcollective/plugins/mcollective/agent/
|
||||||
|
|
||||||
build: build-arch build-indep
|
build: build-arch build-indep
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
nailgun-net-check (0.2-ubuntu1) precise; urgency=low
|
||||||
|
|
||||||
|
* Update code from upstream
|
||||||
|
|
||||||
|
-- OSCI Jenkins <dburmistrov@mirantis.com> Wed, 03 Sep 2014 15:18:56 +0400
|
||||||
|
|
||||||
nailgun-net-check (0.2-0) unstable; urgency=low
|
nailgun-net-check (0.2-0) unstable; urgency=low
|
||||||
|
|
||||||
* Initial release.
|
* Initial release.
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
From 09efec567e6b0baa835c1921c222a5a967cf193a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dennis Dmitriev <ddmitriev@mirantis.com>
|
||||||
|
Date: Tue, 19 Aug 2014 18:31:33 +0300
|
||||||
|
Subject: [PATCH] Allow correctly parcing indices/override.* files
|
||||||
|
|
||||||
|
Allow parcing indices/override.* files when architecture
|
||||||
|
prefixes are used in package names there. It allows to use
|
||||||
|
dpkg-scanpackages with Ubuntu repositories.
|
||||||
|
|
||||||
|
Originally, dpkg-scanpackages just skip the following lines because it
|
||||||
|
compares package names without any modification, and cannot find the
|
||||||
|
apropriate package because 'a2jmidid' != 'a2jmidid/amd64'
|
||||||
|
For example, several lines from override.precise.extra.main:
|
||||||
|
...
|
||||||
|
a2jmidid Bugs https://bugs.launchpad.net/ubuntu/+filebug
|
||||||
|
a2jmidid Origin Ubuntu
|
||||||
|
a2jmidid/amd64 Task ubuntustudio-generation, ubuntustudio-recording
|
||||||
|
a2jmidid/armel Task ubuntustudio-generation, ubuntustudio-recording
|
||||||
|
a2jmidid/armhf Task ubuntustudio-generation, ubuntustudio-recording
|
||||||
|
a2jmidid/i386 Task ubuntustudio-generation, ubuntustudio-recording
|
||||||
|
a2jmidid/powerpc Task ubuntustudio-generation, ubuntustudio-recording
|
||||||
|
...
|
||||||
|
|
||||||
|
Related-Bug: 1358785
|
||||||
|
---
|
||||||
|
scripts/dpkg-scanpackages.pl | 7 ++++++-
|
||||||
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/scripts/dpkg-scanpackages.pl b/scripts/dpkg-scanpackages.pl
|
||||||
|
index 9a3d59c..3d6724b 100755
|
||||||
|
--- a/scripts/dpkg-scanpackages.pl
|
||||||
|
+++ b/scripts/dpkg-scanpackages.pl
|
||||||
|
@@ -143,7 +143,12 @@ sub load_override_extra
|
||||||
|
s/\s+$//;
|
||||||
|
next unless $_;
|
||||||
|
|
||||||
|
- my ($p, $field, $value) = split(/\s+/, $_, 3);
|
||||||
|
+ my ($pr, $field, $value) = split(/\s+/, $_, 3);
|
||||||
|
+
|
||||||
|
+ my ($p, $parch) = split(/\//, $pr, 2);
|
||||||
|
+ if (defined($options{arch}) and defined($parch)) {
|
||||||
|
+ next unless ($options{arch} eq $parch);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
next unless defined($packages{$p});
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.5.5
|
||||||
|
|
|
@ -5,12 +5,10 @@ include $(SOURCE_DIR)/packages/deb/module.mk
|
||||||
|
|
||||||
ifneq ($(BUILD_PACKAGES),0)
|
ifneq ($(BUILD_PACKAGES),0)
|
||||||
$(BUILD_DIR)/packages/build.done: \
|
$(BUILD_DIR)/packages/build.done: \
|
||||||
$(BUILD_DIR)/packages/deb/build.done \
|
$(BUILD_DIR)/packages/rpm/build.done $(BUILD_DIR)/packages/deb/build.done
|
||||||
$(BUILD_DIR)/packages/rpm/build.done
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(BUILD_DIR)/packages/build.done: \
|
$(BUILD_DIR)/packages/build.done:
|
||||||
$(BUILD_DIR)/packages/deb/build.done
|
|
||||||
$(ACTION.TOUCH)
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
packages: $(BUILD_DIR)/packages/build.done
|
packages: $(BUILD_DIR)/packages/build.done
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
[General]
|
||||||
|
# arch and directory can be specified on the command line.
|
||||||
|
#arch=armel
|
||||||
|
#directory=/opt/multistrap/
|
||||||
|
# same as --tidy-up option if set to true
|
||||||
|
cleanup=false
|
||||||
|
# retain the sources outside the rootfs for distribution
|
||||||
|
# specify a directory to which all the .debs can be moved.
|
||||||
|
# or override with the --source-dir option.
|
||||||
|
# same as --no-auth option if set to true
|
||||||
|
# keyring packages listed in each debootstrap will
|
||||||
|
# still be installed.
|
||||||
|
noauth=true
|
||||||
|
# retries not needed.
|
||||||
|
#retries=5
|
||||||
|
# extract all downloaded archives
|
||||||
|
unpack=true
|
||||||
|
bootstrap=Ubuntu Updates Security Mirantis
|
||||||
|
# the order of sections is no longer important.
|
||||||
|
# debootstrap determines which repository is used to
|
||||||
|
# calculate the list of Priority: required packages
|
||||||
|
# the order of sections is no longer important.
|
||||||
|
# aptsources is a list of sections to be listed
|
||||||
|
# in the /etc/apt/sources.list.d/multistrap.sources.list
|
||||||
|
# of the target.
|
||||||
|
aptsources=Ubuntu Updates Security Mirantis
|
||||||
|
|
||||||
|
[Ubuntu]
|
||||||
|
packages=apt wget bzip2 apt-utils build-essential python-setuptools devscripts debhelper fakeroot
|
||||||
|
source=http://mirror.yandex.ru/ubuntu
|
||||||
|
suite=@@UBUNTU_RELEASE@@
|
||||||
|
omitdebsrc=true
|
||||||
|
[Security]
|
||||||
|
source=http://mirror.yandex.ru/ubuntu/
|
||||||
|
suite=@@UBUNTU_RELEASE@@-security
|
||||||
|
omitdebsrc=true
|
||||||
|
[Updates]
|
||||||
|
source=http://mirror.yandex.ru/ubuntu/
|
||||||
|
suite=@@UBUNTU_RELEASE@@-updates
|
||||||
|
omitdebsrc=true
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2014 Mirantis, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
# This script will rebuild local ubuntu mirror.
|
||||||
|
# Based on the method described here:
|
||||||
|
# http://troubleshootingrange.blogspot.com/2012/09/hosting-simple-apt-repository-on-centos.html
|
||||||
|
|
||||||
|
# Example:
|
||||||
|
# regenerate_ubuntu_repo /path/to/ubuntu/repo precise
|
||||||
|
|
||||||
|
REPO_PATH=$1
|
||||||
|
REPONAME=$2
|
||||||
|
|
||||||
|
BINDIR=${REPO_PATH}/dists/${REPONAME}/main
|
||||||
|
binoverride=indices/override.${REPONAME}.main
|
||||||
|
extraoverride=indices/override.${REPONAME}.extra.main
|
||||||
|
package_deb=${BINDIR}/binary-amd64/Packages
|
||||||
|
release_header=`head -8 ${REPO_PATH}/dists/${REPONAME}/Release`
|
||||||
|
|
||||||
|
cd ${REPO_PATH}
|
||||||
|
echo "Regenerating Ubuntu local mirror..."
|
||||||
|
|
||||||
|
# Scan *.deb packages
|
||||||
|
dpkg-scanpackages -m --extra-override ${extraoverride} -a amd64 pool/main ${binoverride} > $package_deb 2>/dev/null
|
||||||
|
gzip -9c $package_deb > ${package_deb}.gz
|
||||||
|
|
||||||
|
# Generate release file
|
||||||
|
cd ${REPO_PATH}/dists/${REPONAME}
|
||||||
|
echo "$release_header" > Release
|
||||||
|
|
||||||
|
# Generate hashes
|
||||||
|
c1=(MD5Sum: SHA1: SHA256: SHA512:)
|
||||||
|
c2=(md5 sha1 sha256 sha512)
|
||||||
|
|
||||||
|
i=0
|
||||||
|
while [ $i -lt ${#c1[*]} ]; do
|
||||||
|
echo ${c1[i]} >> Release
|
||||||
|
for hashme in `find main -type f \( -name "Package*" -o -name "Release*" \)`; do
|
||||||
|
chash=`openssl dgst -${c2[$i]} ${hashme}|cut -d" " -f 2`
|
||||||
|
size=`stat -c %s ${hashme}`
|
||||||
|
echo " ${chash} ${size} ${hashme}" >> Release
|
||||||
|
done
|
||||||
|
i=$(( $i + 1));
|
||||||
|
done
|
|
@ -12,42 +12,42 @@ RPM_SOURCES:=$(BUILD_DIR)/packages/rpm/SOURCES
|
||||||
# Usage:
|
# Usage:
|
||||||
# (eval (call prepare_file_source,package_name,file_name,source_path))
|
# (eval (call prepare_file_source,package_name,file_name,source_path))
|
||||||
define prepare_file_source
|
define prepare_file_source
|
||||||
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/rpm/sources/$1/$2
|
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/sources/$1/$2
|
||||||
$(BUILD_DIR)/packages/rpm/sources/$1/$2: $(call find-files,$3)
|
$(BUILD_DIR)/packages/sources/$1/$2: $(call find-files,$3)
|
||||||
mkdir -p $(BUILD_DIR)/packages/rpm/sources/$1
|
mkdir -p $(BUILD_DIR)/packages/sources/$1
|
||||||
cp $3 $(BUILD_DIR)/packages/rpm/sources/$1/$2
|
cp $3 $(BUILD_DIR)/packages/sources/$1/$2
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Usage:
|
# Usage:
|
||||||
# (eval (call prepare_python_source,package_name,file_name,source_path))
|
# (eval (call prepare_python_source,package_name,file_name,source_path))
|
||||||
define prepare_python_source
|
define prepare_python_source
|
||||||
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/rpm/sources/$1/$2
|
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/sources/$1/$2
|
||||||
$(BUILD_DIR)/packages/rpm/sources/$1/$2: $(call find-files,$3)
|
$(BUILD_DIR)/packages/sources/$1/$2: $(call find-files,$3)
|
||||||
mkdir -p $(BUILD_DIR)/packages/rpm/sources/$1
|
mkdir -p $(BUILD_DIR)/packages/sources/$1
|
||||||
ifeq ($1,nailgun)
|
ifeq ($1,nailgun)
|
||||||
cd $3 && npm install && grunt build --static-dir=compressed_static
|
cd $3 && npm install && grunt build --static-dir=compressed_static
|
||||||
rm -rf $3/static
|
rm -rf $3/static
|
||||||
mv $3/compressed_static $3/static
|
mv $3/compressed_static $3/static
|
||||||
endif
|
endif
|
||||||
cd $3 && python setup.py sdist -d $(BUILD_DIR)/packages/rpm/sources/$1
|
cd $3 && python setup.py sdist -d $(BUILD_DIR)/packages/sources/$1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Usage:
|
# Usage:
|
||||||
# (eval (call prepare_tgz_source,package_name,file_name,source_path))
|
# (eval (call prepare_tgz_source,package_name,file_name,source_path))
|
||||||
define prepare_tgz_source
|
define prepare_tgz_source
|
||||||
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/rpm/sources/$1/$2
|
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/sources/$1/$2
|
||||||
$(BUILD_DIR)/packages/rpm/sources/$1/$2: $(call find-files,$3)
|
$(BUILD_DIR)/packages/sources/$1/$2: $(call find-files,$3)
|
||||||
mkdir -p $(BUILD_DIR)/packages/rpm/sources/$1
|
mkdir -p $(BUILD_DIR)/packages/sources/$1
|
||||||
cd $3 && tar zcf $(BUILD_DIR)/packages/rpm/sources/$1/$2 *
|
cd $3 && tar zcf $(BUILD_DIR)/packages/sources/$1/$2 *
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Usage:
|
# Usage:
|
||||||
# (eval (call prepare_ruby21_source,package_name,file_name,source_path))
|
# (eval (call prepare_ruby21_source,package_name,file_name,source_path))
|
||||||
define prepare_ruby21_source
|
define prepare_ruby21_source
|
||||||
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/rpm/sources/$1/$2
|
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/sources/$1/$2
|
||||||
$(BUILD_DIR)/packages/rpm/sources/$1/$2: $(call find-files,$3)
|
$(BUILD_DIR)/packages/sources/$1/$2: $(call find-files,$3)
|
||||||
mkdir -p $(BUILD_DIR)/packages/rpm/sources/$1
|
mkdir -p $(BUILD_DIR)/packages/sources/$1
|
||||||
cd $3 && gem build *.gemspec && cp $2 $(BUILD_DIR)/packages/rpm/sources/$1/$2
|
cd $3 && gem build *.gemspec && cp $2 $(BUILD_DIR)/packages/sources/$1/$2
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Usage:
|
# Usage:
|
||||||
|
@ -72,7 +72,7 @@ $(BUILD_DIR)/packages/rpm/$1.done: \
|
||||||
sudo sh -c "$$$${SANDBOX_UP}"
|
sudo sh -c "$$$${SANDBOX_UP}"
|
||||||
sudo yum -c $$(SANDBOX)/etc/yum.conf --installroot=$$(SANDBOX) -y --nogpgcheck install ruby rpm-build tar python-setuptools python-pbr
|
sudo yum -c $$(SANDBOX)/etc/yum.conf --installroot=$$(SANDBOX) -y --nogpgcheck install ruby rpm-build tar python-setuptools python-pbr
|
||||||
sudo mkdir -p $$(SANDBOX)/tmp/SOURCES
|
sudo mkdir -p $$(SANDBOX)/tmp/SOURCES
|
||||||
sudo cp -r $(BUILD_DIR)/packages/rpm/sources/$1/* $$(SANDBOX)/tmp/SOURCES
|
sudo cp -r $(BUILD_DIR)/packages/sources/$1/* $$(SANDBOX)/tmp/SOURCES
|
||||||
sudo cp $(SOURCE_DIR)/packages/rpm/specs/$1.spec $$(SANDBOX)/tmp
|
sudo cp $(SOURCE_DIR)/packages/rpm/specs/$1.spec $$(SANDBOX)/tmp
|
||||||
sudo chroot $$(SANDBOX) rpmbuild --nodeps -vv --define "_topdir /tmp" -ba /tmp/$1.spec
|
sudo chroot $$(SANDBOX) rpmbuild --nodeps -vv --define "_topdir /tmp" -ba /tmp/$1.spec
|
||||||
cp $$(SANDBOX)/tmp/RPMS/*/$1-*.rpm $(BUILD_DIR)/packages/rpm/RPMS/x86_64
|
cp $$(SANDBOX)/tmp/RPMS/*/$1-*.rpm $(BUILD_DIR)/packages/rpm/RPMS/x86_64
|
||||||
|
|
18
sandbox.mk
18
sandbox.mk
|
@ -50,3 +50,21 @@ sync
|
||||||
umount $(SANDBOX)/proc
|
umount $(SANDBOX)/proc
|
||||||
umount $(SANDBOX)/dev
|
umount $(SANDBOX)/dev
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define SANDBOX_UBUNTU_UP
|
||||||
|
mount | grep -q $(SANDBOX_UBUNTU)/proc || sudo mount -t proc none $(SANDBOX_UBUNTU)/proc
|
||||||
|
[ -f $(SANDBOX_UBUNTU)/etc/debian_version ] || sudo multistrap -a amd64 -f $(SANDBOX_UBUNTU)/multistrap.conf -d $(SANDBOX_UBUNTU)/
|
||||||
|
sudo chroot $(SANDBOX_UBUNTU) /bin/bash -c "locale-gen en_US.UTF-8 ; dpkg-reconfigure locales"
|
||||||
|
sudo chroot $(SANDBOX_UBUNTU) /bin/bash -c "dpkg --configure -a || exit 0"
|
||||||
|
sudo chroot $(SANDBOX_UBUNTU) /bin/bash -c "rm -rf /var/run/*"
|
||||||
|
sudo chroot $(SANDBOX_UBUNTU) /bin/bash -c "dpkg --configure -a || exit 0"
|
||||||
|
echo 'APT::Get::AllowUnauthenticated 1;' | sudo tee $(SANDBOX_UBUNTU)/etc/apt/apt.conf.d/02mirantis-unauthenticated
|
||||||
|
[ -n "$(EXTRA_DEB_REPOS)" ] && echo "$(EXTRA_DEB_REPOS)" | tr '|' '\n' | while read repo; do echo deb $$repo; done | sudo tee $(SANDBOX_UBUNTU)/etc/apt/sources.list.d/extra.list || exit 0
|
||||||
|
sudo cp /etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf
|
||||||
|
mount | grep -q $(SANDBOX_UBUNTU)/proc || sudo mount -t proc none $(SANDBOX_UBUNTU)/proc
|
||||||
|
endef
|
||||||
|
|
||||||
|
define SANDBOX_UBUNTU_DOWN
|
||||||
|
sync
|
||||||
|
sudo umount $(SANDBOX_UBUNTU)/proc
|
||||||
|
endef
|
Loading…
Reference in New Issue