From b715f0b397d96aac5d54271f8d47d7b288a26a3d Mon Sep 17 00:00:00 2001 From: Vladimir Kuklin Date: Mon, 2 Mar 2015 14:56:31 +0300 Subject: [PATCH] Refactor how we are doing packaging This commit is a squashed version of commits that implement packaging of fuel components. In order to make our packaging process better I had to introduce some new macros and do additional cleanup. The main paradigm that we are following with this commit is the following: 1 GIT REPO -> 1 PACKAGING SPEC -> N PACKAGES Though it would be ideal to have only one package per git repo, but this is left for further releases This change is very essential to make updates process easier as we provide only one type of artifacts that a user can fetch - distro-specific package This particular commit does not introduce new DEB packages (such as packages of OCF scripts and other binaries that we currently put onto the slave nodes with puppet instead of installing them as packages) which will be introduced as a part of whole packaging initiative a little bit later 1) Add prepare_git_source macro This change is important to always checkout the code from git working or we can end up with garbage getting into package source code and add version.txt file to source archives 2) Remove nailgun-redhat-license package This package is obsolete - we do not need it. 3) Package fuel-library into RPM package 4) Delete old packages and misc stuff This change is a little cleanup of python-tasklib and other leftovers 5) Change RPM sandbox configuration Change RPM sandbox configuration to use upstream mirrors to be able to install nailgun build dependencies 6) Alter Nailgun spec a) Change nailgun spec to use NPM during package build b) Switch nailgun to prepare_git_source c) Package all packages of fuel-web repo using only nailgun.spec 7) Alter RPM sandbox preparation to install build-deps 8) Package astute and mcagents using astute.spec 9) Include all built RPMs Include all RPMS that were built inside the sandbox 10) Package fuel-ostf with git-archive 11) Build python-fuelclient using git_archive macro 12) Move specs to particular git repositories 13) Rename fuel-library and ostf to make macros easier 14)Adjust build scripts to fetch specs from particular fuel repositories FUEL DEB-packaging related code 15) Restore part of make system code for DEB packages building 16) Nailgun debian spec files for all nailgun-based packages 17) Clean up SANDBOX for Ubuntu generation 18) Clean up some package building scripts 19) Put PACKAGE_VERSION variable into the top config.mk 20) Add dockerctl and change fuel-library tar.tg path 21) Move deb rules to particula repos 22) Allow to rebuild deb repo with reprepro on-the-fly 24) Fix repocleanup stanza to parse source packages metadata 25) Debmirror whole repos in order not to break reprepro 26) Make docker image build depend on late RPM packages or it may lead to race conditions 27) Clean up old deb packages with one shot instead of parallel run Change-Id: I15ae4d0abe51c72b28793e1a1ef30fec0f668b73 Blueprint: package-fuel-components --- Makefile | 1 - config.mk | 14 +++ docker/fuel-centos-build/fuel-centos.ks | 1 + docker/module.mk | 2 - iso/ks.template | 22 ++-- iso/module.mk | 9 +- mirror/ubuntu/module.mk | 69 ++++++++++- packages/deb/genpkgnames.pl | 8 ++ packages/deb/module.mk | 73 ++++++++++++ .../deb/specs/fencing-agent/debian/changelog | 17 --- .../deb/specs/fencing-agent/debian/compat | 1 - .../deb/specs/fencing-agent/debian/control | 18 --- .../deb/specs/fencing-agent/debian/install | 1 - packages/deb/specs/fencing-agent/debian/rules | 4 - .../specs/fencing-agent/debian/source/format | 1 - .../deb/specs/nailgun-agent/debian/changelog | 23 ---- .../deb/specs/nailgun-agent/debian/compat | 1 - .../deb/specs/nailgun-agent/debian/control | 20 ---- .../deb/specs/nailgun-agent/debian/install | 1 - .../nailgun-agent/debian/nailgun-agent.cron.d | 1 - packages/deb/specs/nailgun-agent/debian/rules | 4 - .../specs/nailgun-agent/debian/source/format | 1 - .../specs/nailgun-mcagents/debian/changelog | 17 --- .../deb/specs/nailgun-mcagents/debian/compat | 1 - .../deb/specs/nailgun-mcagents/debian/control | 12 -- .../deb/specs/nailgun-mcagents/debian/rules | 52 -------- .../nailgun-mcagents/debian/source/format | 1 - .../specs/nailgun-net-check/debian/changelog | 17 --- .../deb/specs/nailgun-net-check/debian/compat | 1 - .../specs/nailgun-net-check/debian/control | 12 -- .../deb/specs/nailgun-net-check/debian/rules | 4 - .../nailgun-net-check/debian/source/format | 1 - .../deb/specs/python-tasklib/debian/changelog | 11 -- .../deb/specs/python-tasklib/debian/compat | 1 - .../deb/specs/python-tasklib/debian/control | 13 -- .../deb/specs/python-tasklib/debian/rules | 4 - .../specs/python-tasklib/debian/source/format | 1 - packages/module.mk | 60 +++++----- packages/rpm/genpkgnames.py | 6 + packages/rpm/module.mk | 50 ++++---- .../get_redhat_licenses | 70 ----------- packages/rpm/patches/pypcap.diff | 31 ----- packages/rpm/specs/fencing-agent.spec | 32 ----- packages/rpm/specs/fuel-agent.spec | 89 -------------- packages/rpm/specs/fuel-ostf.spec | 111 ------------------ .../rpm/specs/fuel-provisioning-scripts.spec | 33 ------ packages/rpm/specs/fuelmenu.spec | 47 -------- packages/rpm/specs/nailgun-agent.spec | 39 ------ packages/rpm/specs/nailgun-mcagents.spec | 28 ----- packages/rpm/specs/nailgun-net-check.spec | 44 ------- .../rpm/specs/nailgun-redhat-license.spec | 28 ----- packages/rpm/specs/nailgun.spec | 74 ------------ packages/rpm/specs/python-fuelclient.spec | 57 --------- packages/rpm/specs/python-tasklib.spec | 39 ------ .../rpm/specs/ruby21-nailgun-mcagents.spec | 30 ----- packages/rpm/specs/ruby21-rubygem-astute.spec | 81 ------------- packages/rpm/specs/shotgun.spec | 43 ------- prepare-build-env.sh | 2 +- puppet/module.mk | 24 ---- regenerate_ubuntu_repo.sh | 55 +++++++++ repos.mk | 15 ++- sandbox.mk | 109 ++++++++++++++++- .../fuel-image.spec => specs/fuel-main.spec | 17 ++- 63 files changed, 426 insertions(+), 1228 deletions(-) create mode 100644 packages/deb/genpkgnames.pl create mode 100644 packages/deb/module.mk delete mode 100644 packages/deb/specs/fencing-agent/debian/changelog delete mode 100644 packages/deb/specs/fencing-agent/debian/compat delete mode 100644 packages/deb/specs/fencing-agent/debian/control delete mode 100644 packages/deb/specs/fencing-agent/debian/install delete mode 100755 packages/deb/specs/fencing-agent/debian/rules delete mode 100644 packages/deb/specs/fencing-agent/debian/source/format delete mode 100644 packages/deb/specs/nailgun-agent/debian/changelog delete mode 100644 packages/deb/specs/nailgun-agent/debian/compat delete mode 100644 packages/deb/specs/nailgun-agent/debian/control delete mode 100644 packages/deb/specs/nailgun-agent/debian/install delete mode 100644 packages/deb/specs/nailgun-agent/debian/nailgun-agent.cron.d delete mode 100755 packages/deb/specs/nailgun-agent/debian/rules delete mode 100644 packages/deb/specs/nailgun-agent/debian/source/format delete mode 100755 packages/deb/specs/nailgun-mcagents/debian/changelog delete mode 100755 packages/deb/specs/nailgun-mcagents/debian/compat delete mode 100755 packages/deb/specs/nailgun-mcagents/debian/control delete mode 100755 packages/deb/specs/nailgun-mcagents/debian/rules delete mode 100755 packages/deb/specs/nailgun-mcagents/debian/source/format delete mode 100644 packages/deb/specs/nailgun-net-check/debian/changelog delete mode 100644 packages/deb/specs/nailgun-net-check/debian/compat delete mode 100644 packages/deb/specs/nailgun-net-check/debian/control delete mode 100644 packages/deb/specs/nailgun-net-check/debian/rules delete mode 100644 packages/deb/specs/nailgun-net-check/debian/source/format delete mode 100644 packages/deb/specs/python-tasklib/debian/changelog delete mode 100644 packages/deb/specs/python-tasklib/debian/compat delete mode 100644 packages/deb/specs/python-tasklib/debian/control delete mode 100644 packages/deb/specs/python-tasklib/debian/rules delete mode 100644 packages/deb/specs/python-tasklib/debian/source/format create mode 100644 packages/rpm/genpkgnames.py delete mode 100755 packages/rpm/nailgun-redhat-license/get_redhat_licenses delete mode 100644 packages/rpm/patches/pypcap.diff delete mode 100644 packages/rpm/specs/fencing-agent.spec delete mode 100644 packages/rpm/specs/fuel-agent.spec delete mode 100644 packages/rpm/specs/fuel-ostf.spec delete mode 100644 packages/rpm/specs/fuel-provisioning-scripts.spec delete mode 100644 packages/rpm/specs/fuelmenu.spec delete mode 100644 packages/rpm/specs/nailgun-agent.spec delete mode 100644 packages/rpm/specs/nailgun-mcagents.spec delete mode 100644 packages/rpm/specs/nailgun-net-check.spec delete mode 100644 packages/rpm/specs/nailgun-redhat-license.spec delete mode 100644 packages/rpm/specs/nailgun.spec delete mode 100644 packages/rpm/specs/python-fuelclient.spec delete mode 100644 packages/rpm/specs/python-tasklib.spec delete mode 100644 packages/rpm/specs/ruby21-nailgun-mcagents.spec delete mode 100644 packages/rpm/specs/ruby21-rubygem-astute.spec delete mode 100644 packages/rpm/specs/shotgun.spec delete mode 100644 puppet/module.mk create mode 100755 regenerate_ubuntu_repo.sh rename packages/rpm/specs/fuel-image.spec => specs/fuel-main.spec (62%) diff --git a/Makefile b/Makefile index 00254c8a5..ed16079ae 100644 --- a/Makefile +++ b/Makefile @@ -87,7 +87,6 @@ include $(SOURCE_DIR)/sandbox.mk include $(SOURCE_DIR)/repos.mk include $(SOURCE_DIR)/image/module.mk include $(SOURCE_DIR)/mirror/module.mk -include $(SOURCE_DIR)/puppet/module.mk include $(SOURCE_DIR)/packages/module.mk include $(SOURCE_DIR)/packages/openstack/module.mk include $(SOURCE_DIR)/docker/module.mk diff --git a/config.mk b/config.mk index 4c1e0c2eb..704143468 100644 --- a/config.mk +++ b/config.mk @@ -38,6 +38,7 @@ CURRENT_VERSION:=$(PRODUCT_VERSION) # If it is set then diff $(BASE_VERSION)->$(CURRENT_VERSION) BASE_VERSION:=6.0 +PACKAGE_VERSION=6.0.0 # UPGRADE_VERSIONS?=\ # 6.0:5.1 \ # 5.1 \ @@ -253,6 +254,13 @@ MIRROR_DOCKER?=$(MIRROR_BASE)/docker MIRROR_CENTOS_KERNEL?=$(MIRROR_CENTOS) endif + +#This suffix is used to generate path +#to ubuntu mirror inside mirror +#DocumentRoot + +MIRROR_UBUNTU_SUFFIX?=/pkgs/ubuntu + YUM_DOWNLOAD_SRC?= MIRROR_CENTOS?=http://mirrors-local-msk.msk.mirantis.net/centos-$(PRODUCT_VERSION)/$(CENTOS_RELEASE) @@ -313,3 +321,9 @@ DOCKER_PREBUILT_SOURCE?=http://srv11-msk.msk.mirantis.net/docker-test/fuel-image # Production variable (prod, dev, docker) PRODUCTION?=docker + +SANDBOX_MIRROR_CENTOS_UPSTREAM?=http://mirrors-local-msk.msk.mirantis.net/centos-$(PRODUCT_VERSION)/$(CENTOS_RELEASE) +SANDBOX_MIRROR_CENTOS_UPSTREAM_OS_BASEURL:=$(SANDBOX_MIRROR_CENTOS_UPSTREAM)/os/$(CENTOS_ARCH)/ +SANDBOX_MIRROR_CENTOS_UPDATES_OS_BASEURL:=$(SANDBOX_MIRROR_CENTOS_UPSTREAM)/updates/$(CENTOS_ARCH)/ +SANDBOX_MIRROR_EPEL?=http://mirror.yandex.ru/epel/ +SANDBOX_MIRROR_EPEL_OS_BASEURL:=$(SANDBOX_MIRROR_EPEL)/$(CENTOS_MAJOR)/$(CENTOS_ARCH)/ diff --git a/docker/fuel-centos-build/fuel-centos.ks b/docker/fuel-centos-build/fuel-centos.ks index 993ca6e4b..493c0af71 100644 --- a/docker/fuel-centos-build/fuel-centos.ks +++ b/docker/fuel-centos-build/fuel-centos.ks @@ -72,6 +72,7 @@ cronie crontabs dnsmasq fence-agents +fuel-library httpd logrotate nginx diff --git a/docker/module.mk b/docker/module.mk index 439f01c41..b642170b4 100644 --- a/docker/module.mk +++ b/docker/module.mk @@ -46,12 +46,10 @@ $(BUILD_DIR)/docker/$1.done: \ cp -a $(SOURCE_DIR)/docker/$1 $(BUILD_DIR)/docker/$1 && \ REPO_PORT=`sudo docker port $(REPO_CONTAINER) 80 | cut -d':' -f2` && \ sed -e "s/_PORT_/$$$${REPO_PORT}/" -i $(BUILD_DIR)/docker/$1/Dockerfile && \ - mkdir -p $(BUILD_DIR)/docker/$1/etc/puppet/modules/ && \ mkdir -p $(BUILD_DIR)/docker/$1/etc/fuel && \ cp $(BUILD_DIR)/iso/isoroot/version.yaml $(BUILD_DIR)/docker/$1/etc/fuel/version.yaml && \ sed -e 's/production:.*/production: "docker-build"/' -i $(BUILD_DIR)/docker/$1/etc/fuel/version.yaml && \ cp $(SOURCE_DIR)/docker/docker-astute.yaml $(BUILD_DIR)/docker/$1/etc/fuel/astute.yaml && \ - rsync -a $(BUILD_DIR)/repos/fuellib/deployment/puppet/* $(BUILD_DIR)/docker/$1/etc/puppet/modules/ && \ sudo docker build --force-rm -t fuel/$1_$(PRODUCT_VERSION) $(BUILD_DIR)/docker/$1 $$(ACTION.TOUCH) endef diff --git a/iso/ks.template b/iso/ks.template index 3b25235c9..cac856f92 100644 --- a/iso/ks.template +++ b/iso/ks.template @@ -237,6 +237,8 @@ echo "cat /tmp/grub.script | chroot /mnt/sysimage /sbin/grub --no-floppy --batch %packages --nobase --excludedocs @Core +fuel-library +fuel-dockerctl authconfig bind-utils cronie @@ -425,23 +427,23 @@ ln -s ${repodir}/ubuntu ${wwwdir}/ubuntu # -------------------------- # create folders -mkdir -p /etc/puppet/${OPENSTACK_VERSION}/manifests/ -mkdir -p /etc/puppet/${OPENSTACK_VERSION}/modules/ -rm -rf /etc/puppet/modules/ +#mkdir -p /etc/puppet/${OPENSTACK_VERSION}/manifests/ +#mkdir -p /etc/puppet/${OPENSTACK_VERSION}/modules/ +#rm -rf /etc/puppet/modules/ # TODO(ikalnitsky): investigate why we need this -cp ${SOURCE}/puppet-slave.tgz ${wwwdir}/ +#cp ${SOURCE}/puppet-slave.tgz ${wwwdir}/ # place modules and manifests -tar zxf ${SOURCE}/puppet-slave.tgz -C /etc/puppet/${OPENSTACK_VERSION}/modules -cp /etc/puppet/${OPENSTACK_VERSION}/modules/osnailyfacter/examples/site.pp /etc/puppet/${OPENSTACK_VERSION}/manifests/site.pp +#tar zxf ${SOURCE}/puppet-slave.tgz -C /etc/puppet/${OPENSTACK_VERSION}/modules +#cp /etc/puppet/${OPENSTACK_VERSION}/modules/osnailyfacter/examples/site.pp /etc/puppet/${OPENSTACK_VERSION}/manifests/site.pp cp ${SOURCE}/centos-versions.yaml ${SOURCE}/ubuntu-versions.yaml /etc/puppet/${OPENSTACK_VERSION}/manifests/ # make links for backward compatibility -pushd /etc/puppet -ln -s ${OPENSTACK_VERSION}/manifests/ /etc/puppet/manifests -ln -s ${OPENSTACK_VERSION}/modules/ /etc/puppet/modules -popd +#pushd /etc/puppet +#ln -s ${OPENSTACK_VERSION}/manifests/ /etc/puppet/manifests +#ln -s ${OPENSTACK_VERSION}/modules/ /etc/puppet/modules +#popd cp ${SOURCE}/send2syslog.py /bin/send2syslog.py mkdir -p /var/lib/hiera diff --git a/iso/module.mk b/iso/module.mk index 6c86e257d..ad94e3dad 100644 --- a/iso/module.mk +++ b/iso/module.mk @@ -112,9 +112,9 @@ endif # we need to repack puppet artifact because artifact # has puppet directory packed into it but we need to have an # archive of puppet modules packed into it -$(ISOROOT)/puppet-slave.tgz: $(BUILD_DIR)/puppet/$(PUPPET_ART_NAME) - tar zxf $(BUILD_DIR)/puppet/$(PUPPET_ART_NAME) -C $(BUILD_DIR)/iso - tar zcf $(ISOROOT)/puppet-slave.tgz -C $(BUILD_DIR)/iso/puppet . +#$(ISOROOT)/puppet-slave.tgz: $(BUILD_DIR)/puppet/$(PUPPET_ART_NAME) +# tar zxf $(BUILD_DIR)/puppet/$(PUPPET_ART_NAME) -C $(BUILD_DIR)/iso +# tar zcf $(ISOROOT)/puppet-slave.tgz -C $(BUILD_DIR)/iso/puppet . ######################## # DOCKER @@ -147,8 +147,7 @@ $(BUILD_DIR)/iso/isoroot-files.done: \ $(ISOROOT)/version.yaml \ $(ISOROOT)/openstack_version \ $(ISOROOT)/centos-versions.yaml \ - $(ISOROOT)/ubuntu-versions.yaml \ - $(ISOROOT)/puppet-slave.tgz + $(ISOROOT)/ubuntu-versions.yaml $(ACTION.TOUCH) $(ISOROOT)/.discinfo: $(SOURCE_DIR)/iso/.discinfo ; $(ACTION.COPY) diff --git a/mirror/ubuntu/module.mk b/mirror/ubuntu/module.mk index b0c6b37fb..8f82058de 100644 --- a/mirror/ubuntu/module.mk +++ b/mirror/ubuntu/module.mk @@ -1,17 +1,78 @@ -.PHONY: mirror-ubuntu +.PHONY: mirror-ubuntu repo-ubuntu + +mirror-ubuntu: $(BUILD_DIR)/mirror/ubuntu/mirror.done +repo-ubuntu: $(BUILD_DIR)/mirror/ubuntu/repo.done + +define reprepro_dist_conf +Origin: Mirantis +Label: $(PRODUCT_NAME)$(PRODUCT_VERSION) +Suite: $(PRODUCT_NAME)$(PRODUCT_VERSION) +Codename: $(PRODUCT_NAME)$(PRODUCT_VERSION) +Description: Mirantis OpenStack mirror +Architectures: $(UBUNTU_ARCH) +Components: main restricted +DebIndices: Packages Release . .gz .bz2 +Update: - $(PRODUCT_NAME)$(PRODUCT_VERSION) +endef + +define reprepro_updates_conf +Suite: $(PRODUCT_NAME)$(PRODUCT_VERSION) +Name: $(PRODUCT_NAME)$(PRODUCT_VERSION) +Method: file:$(LOCAL_MIRROR_UBUNTU) +Components: main +Architectures: $(UBUNTU_ARCH) +VerifyRelease: blindtrust +endef + -mirror-ubuntu: $(BUILD_DIR)/mirror/ubuntu/build.done # Two operation modes: # USE_MIRROR=none - mirroring mode, rsync full mirror from internal build server # USE_MIRROR= - ISO building mode, get repository for current product release only -$(BUILD_DIR)/mirror/ubuntu/build.done: +$(BUILD_DIR)/mirror/ubuntu/build.done: $(BUILD_DIR)/mirror/ubuntu/mirror.done +ifneq ($(BUILD_PACKAGES),0) + $(BUILD_DIR)/mirror/ubuntu/build.done: $(BUILD_DIR)/mirror/ubuntu/repo.done +endif + +define config_reprepro +#Generate reprepro distributions config +cat > $(LOCAL_MIRROR_UBUNTU)/conf/distributions << EOF +$(reprepro_dist_conf) +EOF +#Generate reprepro updates config +cat > $(LOCAL_MIRROR_UBUNTU)/conf/updates << EOF +$(reprepro_updates_conf) +EOF +endef + + +$(BUILD_DIR)/mirror/ubuntu/reprepro.done: export config_reprepro:=$(config_reprepro) +$(BUILD_DIR)/mirror/ubuntu/reprepro.done: $(BUILD_DIR)/mirror/ubuntu/mirror.done + mkdir -p $(LOCAL_MIRROR_UBUNTU)/conf + sh -c "$${config_reprepro}" + #Import existing Ubuntu repository + cd $(LOCAL_MIRROR_UBUNTU) && reprepro --confdir=$(LOCAL_MIRROR_UBUNTU)/conf -V update + $(ACTION.TOUCH) + +$(BUILD_DIR)/mirror/ubuntu/repo.done: $(BUILD_DIR)/mirror/ubuntu/mirror.done \ + $(BUILD_DIR)/mirror/ubuntu/reprepro.done + #FIXME(aglarendil): do not touch upstream repo. instead - build new repo + #Import newly built packages + cd $(LOCAL_MIRROR_UBUNTU) && reprepro --confdir=$(LOCAL_MIRROR_UBUNTU)/conf -V includedeb $(PRODUCT_NAME)$(PRODUCT_VERSION) $(BUILD_DIR)/packages/deb/packages/*.deb + #Clean up reprepro data + rm -rf $(LOCAL_MIRROR_UBUNTU)/db + rm -rf $(LOCAL_MIRROR_UBUNTU)/lists + rm -rf $(LOCAL_MIRROR_UBUNTU)/conf + $(ACTION.TOUCH) + + +$(BUILD_DIR)/mirror/ubuntu/mirror.done: mkdir -p $(LOCAL_MIRROR_UBUNTU) ifeq (none,$(strip $(USE_MIRROR))) set -ex; rsync -aPtvz $(MIRROR_FUEL_UBUNTU)::$(PRODUCT_NAME)-ubuntu $(LOCAL_MIRROR_UBUNTU)/ else set -ex; debmirror --method=$(MIRROR_UBUNTU_METHOD) --progress --checksums --nocleanup --host=$(MIRROR_UBUNTU) --root=$(MIRROR_UBUNTU_ROOT) \ - --arch=$(UBUNTU_ARCH) --dist=$(PRODUCT_NAME)$(PRODUCT_VERSION) --nosource --exclude=".*-dbg_.*\.deb\$$" --ignore-release-gpg --rsync-extra=none \ + --arch=$(UBUNTU_ARCH) --dist=$(PRODUCT_NAME)$(PRODUCT_VERSION) --nosource --ignore-release-gpg --rsync-extra=none \ --section=$(MIRROR_UBUNTU_SECTION) $(LOCAL_MIRROR_UBUNTU)/ rm -rf $(LOCAL_MIRROR_UBUNTU)/.temp $(LOCAL_MIRROR_UBUNTU)/project endif diff --git a/packages/deb/genpkgnames.pl b/packages/deb/genpkgnames.pl new file mode 100644 index 000000000..3fab5a10e --- /dev/null +++ b/packages/deb/genpkgnames.pl @@ -0,0 +1,8 @@ +use Parse::DebControl; + +$parser = new Parse::DebControl; + $data = $parser->parse_file($ARGV[0]); + foreach my $a (@$data) { + next if exists $a->{"Source"}; + print ${a}->{"Package"}."\n"; + } diff --git a/packages/deb/module.mk b/packages/deb/module.mk new file mode 100644 index 000000000..2a14979c6 --- /dev/null +++ b/packages/deb/module.mk @@ -0,0 +1,73 @@ +.PHONY: clean clean-deb + +clean: clean-deb + +clean-deb: + -mount | grep '$(BUILD_DIR)/packages/deb' | while read entry; do \ + set -- $$entry; \ + mntpt="$$3"; \ + sudo umount $$mntpt; \ + done + sudo rm -rf $(BUILD_DIR)/packages/deb + +$(BUILD_DIR)/packages/deb/buildd.tar.gz: SANDBOX_DEB_PKGS:=wget bzip2 apt-utils build-essential python-setuptools devscripts debhelper fakeroot +$(BUILD_DIR)/packages/deb/buildd.tar.gz: SANDBOX_UBUNTU:=$(BUILD_DIR)/packages/deb/chroot +$(BUILD_DIR)/packages/deb/buildd.tar.gz: export SANDBOX_UBUNTU_UP:=$(SANDBOX_UBUNTU_UP) +$(BUILD_DIR)/packages/deb/buildd.tar.gz: export SANDBOX_UBUNTU_DOWN:=$(SANDBOX_UBUNTU_DOWN) +$(BUILD_DIR)/packages/deb/buildd.tar.gz: $(BUILD_DIR)/mirror/ubuntu/mirror.done + sh -c "$${SANDBOX_UBUNTU_UP}" + sh -c "$${SANDBOX_UBUNTU_DOWN}" + sudo rm -f $(SANDBOX_UBUNTU)/var/cache/apt/archives/*.deb + sudo tar czf $@.tmp -C $(SANDBOX_UBUNTU) . + mv $@.tmp $@ + +# Usage: +# (eval (call build_deb,package_name)) +define build_deb +$1-deb: $(BUILD_DIR)/packages/deb/$1.done +$(BUILD_DIR)/packages/deb/build.done: $(BUILD_DIR)/packages/deb/$1.done + +$(BUILD_DIR)/mirror/ubuntu/repo.done: $(BUILD_DIR)/packages/deb/$1.done +$(BUILD_DIR)/packages/deb/$1.done: $(BUILD_DIR)/mirror/ubuntu/mirror.done +$(BUILD_DIR)/packages/deb/$1.done: $(BUILD_DIR)/packages/source_$1.done +$(BUILD_DIR)/packages/deb/$1.done: $(BUILD_DIR)/packages/deb/buildd.tar.gz +$(BUILD_DIR)/packages/deb/$1.done: SANDBOX_UBUNTU:=$(BUILD_DIR)/packages/deb/SANDBOX/$1 +$(BUILD_DIR)/packages/deb/$1.done: SANDBOX_DEB_PKGS:=apt wget bzip2 apt-utils build-essential python-setuptools devscripts debhelper fakeroot +$(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)/tmp/$1/ + if [ ! -e "$$(SANDBOX_UBUNTU)/etc/debian_version" ]; then \ + sudo tar xaf $(BUILD_DIR)/packages/deb/buildd.tar.gz -C $$(SANDBOX_UBUNTU); \ + fi + sudo tar zxf $(BUILD_DIR)/packages/sources/$1/$1-$(PACKAGE_VERSION).tar.gz -C $$(SANDBOX_UBUNTU)/tmp/$1/ +#sudo cp -r $(BUILD_DIR)/repos/$1/debian $$(SANDBOX_UBUNTU)/tmp/$1/ + dpkg-checkbuilddeps $(BUILD_DIR)/repos/$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/sh -c "cat /tmp/$1.installdeps | xargs apt-get -y install" + sudo chroot $$(SANDBOX_UBUNTU) /bin/sh -c "cd /tmp/$1 ; DEB_BUILD_OPTIONS=nocheck debuild -us -uc -b -d" + cp $$(SANDBOX_UBUNTU)/tmp/*.deb $(BUILD_DIR)/packages/deb/packages + sudo sh -c "$$$${SANDBOX_UBUNTU_DOWN}" + $$(ACTION.TOUCH) +endef + +define remove_deb +#FIXME(aglarendil): do not touch upstream repo. instead - build new repo +mkdir -p $(BUILD_DIR)/packages/deb +perl $(SOURCE_DIR)/packages/deb/genpkgnames.pl $(BUILD_DIR)/repos/$1/debian/control > $(BUILD_DIR)/packages/deb/$1.cleanup.list +cd $(LOCAL_MIRROR_UBUNTU) && cat $(BUILD_DIR)/packages/deb/$1.cleanup.list | \ +xargs -n1 -I{} reprepro --confdir=$(LOCAL_MIRROR_UBUNTU)/conf remove $(PRODUCT_NAME)$(PRODUCT_VERSION) {} $(NEWLINE) +endef + +$(BUILD_DIR)/mirror/ubuntu/repo.done: $(BUILD_DIR)/packages/deb/repocleanup.done +$(BUILD_DIR)/packages/deb/repocleanup.done: $(BUILD_DIR)/mirror/ubuntu/mirror.done +$(BUILD_DIR)/packages/deb/repocleanup.done: sources + $(foreach pkg,$(fuel_debian_packages),$(call remove_deb,$(pkg))) + $(ACTION.TOUCH) + +$(BUILD_DIR)/packages/deb/build.done: + $(ACTION.TOUCH) + +fuel_debian_packages:=nailgun astute fuel-library$(PRODUCT_VERSION) + +$(eval $(foreach pkg,$(fuel_debian_packages),$(call build_deb,$(pkg))$(NEWLINE))) diff --git a/packages/deb/specs/fencing-agent/debian/changelog b/packages/deb/specs/fencing-agent/debian/changelog deleted file mode 100644 index a78394e9a..000000000 --- a/packages/deb/specs/fencing-agent/debian/changelog +++ /dev/null @@ -1,17 +0,0 @@ -fencing-agent (6.0.0-1) precise; urgency=low - - * Update code from upstream - - -- Igor Kalnitsky Wed, 26 Nov 2014 19:49:00 +0200 - -fencing-agent (0.1.0-ubuntu1) precise; urgency=low - - * Update code from upstream - - -- OSCI Jenkins Wed, 03 Sep 2014 15:17:07 +0400 - -fencing-agent (0.1.0-1ubuntu0) precise; urgency=low - - * Add fencing agent script as a separated task - - -- Bogdan Dobrelya Thu, 23 Jan 2014 18:55:00 +0400 diff --git a/packages/deb/specs/fencing-agent/debian/compat b/packages/deb/specs/fencing-agent/debian/compat deleted file mode 100644 index 45a4fb75d..000000000 --- a/packages/deb/specs/fencing-agent/debian/compat +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/packages/deb/specs/fencing-agent/debian/control b/packages/deb/specs/fencing-agent/debian/control deleted file mode 100644 index 3a527e27d..000000000 --- a/packages/deb/specs/fencing-agent/debian/control +++ /dev/null @@ -1,18 +0,0 @@ -Source: fencing-agent -Section: unknown -Priority: extra -Maintainer: Bogdan Dobrelya -Build-Depends: debhelper (>= 8.0.0) -Standards-Version: 3.9.2 -Homepage: mirantis.com - -Package: fencing-agent -Architecture: all -Depends: ohai (<< 7), - ruby-httpclient, - ruby-rethtool, - ruby-cstruct, - ruby-json, - ${misc:Depends} -Description: - diff --git a/packages/deb/specs/fencing-agent/debian/install b/packages/deb/specs/fencing-agent/debian/install deleted file mode 100644 index 6145a8096..000000000 --- a/packages/deb/specs/fencing-agent/debian/install +++ /dev/null @@ -1 +0,0 @@ -fencing-agent.rb /opt/nailgun/bin diff --git a/packages/deb/specs/fencing-agent/debian/rules b/packages/deb/specs/fencing-agent/debian/rules deleted file mode 100755 index 2d33f6ac8..000000000 --- a/packages/deb/specs/fencing-agent/debian/rules +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/make -f - -%: - dh $@ diff --git a/packages/deb/specs/fencing-agent/debian/source/format b/packages/deb/specs/fencing-agent/debian/source/format deleted file mode 100644 index 163aaf8d8..000000000 --- a/packages/deb/specs/fencing-agent/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/packages/deb/specs/nailgun-agent/debian/changelog b/packages/deb/specs/nailgun-agent/debian/changelog deleted file mode 100644 index d49ef4fc3..000000000 --- a/packages/deb/specs/nailgun-agent/debian/changelog +++ /dev/null @@ -1,23 +0,0 @@ -nailgun-agent (6.0.0-1) precise; urgency=low - - * Update code from upstream - - -- Igor Kalnitsky Wed, 26 Nov 2014 19:49:00 +0200 - -nailgun-agent (3.9.2-ubuntu6) precise; urgency=low - - * Update code from upstream - - -- OSCI Jenkins Wed, 03 Sep 2014 15:16:22 +0400 - -nailgun-agent (3.9.2-1ubuntu10) precise; urgency=low - - * Add new version code - - -- roman Thu, 12 Sep 2013 16:44:14 +0400 - -nailgun-agent (3.9.2-1) unstable; urgency=low - - * Initial release (Closes: #nnnn) - - -- roman Tue, 10 Sep 2013 18:51:51 +0400 diff --git a/packages/deb/specs/nailgun-agent/debian/compat b/packages/deb/specs/nailgun-agent/debian/compat deleted file mode 100644 index 45a4fb75d..000000000 --- a/packages/deb/specs/nailgun-agent/debian/compat +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/packages/deb/specs/nailgun-agent/debian/control b/packages/deb/specs/nailgun-agent/debian/control deleted file mode 100644 index 6747967c7..000000000 --- a/packages/deb/specs/nailgun-agent/debian/control +++ /dev/null @@ -1,20 +0,0 @@ -Source: nailgun-agent -Section: unknown -Priority: extra -Maintainer: rvyalov -Build-Depends: debhelper (>= 8.0.0) -Standards-Version: 3.9.2 -Homepage: mirantis.com -#Vcs-Git: git://git.debian.org/collab-maint/nailgun-agent.git -#Vcs-Browser: http://git.debian.org/?p=collab-maint/nailgun-agent.git;a=summary - -Package: nailgun-agent -Architecture: all -Depends: ohai (<< 7), - ruby-httpclient, - ruby-rethtool, - ruby-cstruct, - ruby-json, - ${misc:Depends} -Description: - diff --git a/packages/deb/specs/nailgun-agent/debian/install b/packages/deb/specs/nailgun-agent/debian/install deleted file mode 100644 index 3b7775e8a..000000000 --- a/packages/deb/specs/nailgun-agent/debian/install +++ /dev/null @@ -1 +0,0 @@ -agent /opt/nailgun/bin diff --git a/packages/deb/specs/nailgun-agent/debian/nailgun-agent.cron.d b/packages/deb/specs/nailgun-agent/debian/nailgun-agent.cron.d deleted file mode 100644 index 722335e7a..000000000 --- a/packages/deb/specs/nailgun-agent/debian/nailgun-agent.cron.d +++ /dev/null @@ -1 +0,0 @@ -* * * * * 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" diff --git a/packages/deb/specs/nailgun-agent/debian/rules b/packages/deb/specs/nailgun-agent/debian/rules deleted file mode 100755 index 2d33f6ac8..000000000 --- a/packages/deb/specs/nailgun-agent/debian/rules +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/make -f - -%: - dh $@ diff --git a/packages/deb/specs/nailgun-agent/debian/source/format b/packages/deb/specs/nailgun-agent/debian/source/format deleted file mode 100644 index 163aaf8d8..000000000 --- a/packages/deb/specs/nailgun-agent/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/packages/deb/specs/nailgun-mcagents/debian/changelog b/packages/deb/specs/nailgun-mcagents/debian/changelog deleted file mode 100755 index ee8959e83..000000000 --- a/packages/deb/specs/nailgun-mcagents/debian/changelog +++ /dev/null @@ -1,17 +0,0 @@ -nailgun-mcagents (6.0.0-1) precise; urgency=low - - * Update code from upstream - - -- Igor Kalnitsky Wed, 26 Nov 2014 19:49:00 +0200 - -nailgun-mcagents (0.0.1-ubuntu1) precise; urgency=low - - * Update code from upstream - - -- OSCI Jenkins Wed, 03 Sep 2014 15:20:13 +0400 - -nailgun-mcagents (0.0.1) unstable; urgency=low - - * Initial release. - - -- Mirantis Product Tue, 20 Aug 2013 22:20:46 +0400 diff --git a/packages/deb/specs/nailgun-mcagents/debian/compat b/packages/deb/specs/nailgun-mcagents/debian/compat deleted file mode 100755 index 7f8f011eb..000000000 --- a/packages/deb/specs/nailgun-mcagents/debian/compat +++ /dev/null @@ -1 +0,0 @@ -7 diff --git a/packages/deb/specs/nailgun-mcagents/debian/control b/packages/deb/specs/nailgun-mcagents/debian/control deleted file mode 100755 index e5c8f69ca..000000000 --- a/packages/deb/specs/nailgun-mcagents/debian/control +++ /dev/null @@ -1,12 +0,0 @@ -Source: nailgun-mcagents -Section: admin -Priority: optional -Maintainer: flops.ru Signing key -Build-Depends: debhelper (>= 7) -Standards-Version: 3.9.2 - -Package: nailgun-mcagents -Architecture: all -Depends: ${misc:Depends}, ${shlibs:Depends}, mcollective -Description: NailGun mcagents - . diff --git a/packages/deb/specs/nailgun-mcagents/debian/rules b/packages/deb/specs/nailgun-mcagents/debian/rules deleted file mode 100755 index d1fadc6a6..000000000 --- a/packages/deb/specs/nailgun-mcagents/debian/rules +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/make -f - -include /usr/share/dpkg/pkg-info.mk - -clean: - dh_testdir - dh_testroot - rm -f build-stamp - dh_clean - -build-arch: - dh_testdir - mkdir -p 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-indep: build-stamp - -build-stamp: - dh_testdir - touch build-stamp - -install: build - dh_testdir - -binary-arch: build install - dh_testdir - dh_testroot - dh_installdirs - dh_installchangelogs - dh_installdocs - dh_installexamples - dh_install - dh_installcron - dh_installdebconf - dh_installinit - dh_installman - dh_installlogrotate -a - dh_link - dh_compress - dh_fixperms - dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch - -.PHONY: build clean binary-indep binary-arch binary install diff --git a/packages/deb/specs/nailgun-mcagents/debian/source/format b/packages/deb/specs/nailgun-mcagents/debian/source/format deleted file mode 100755 index 163aaf8d8..000000000 --- a/packages/deb/specs/nailgun-mcagents/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/packages/deb/specs/nailgun-net-check/debian/changelog b/packages/deb/specs/nailgun-net-check/debian/changelog deleted file mode 100644 index 60a132a37..000000000 --- a/packages/deb/specs/nailgun-net-check/debian/changelog +++ /dev/null @@ -1,17 +0,0 @@ -nailgun-net-check (6.0.0-1) precise; urgency=low - - * Update code from upstream - - -- Igor Kalnitsky Wed, 26 Nov 2014 19:49:00 +0200 - -nailgun-net-check (0.2-ubuntu1) precise; urgency=low - - * Update code from upstream - - -- OSCI Jenkins Wed, 03 Sep 2014 15:18:56 +0400 - -nailgun-net-check (0.2-0) unstable; urgency=low - - * Initial release. - - -- Mirantis Product Tue, 20 Aug 2013 22:20:46 +0400 diff --git a/packages/deb/specs/nailgun-net-check/debian/compat b/packages/deb/specs/nailgun-net-check/debian/compat deleted file mode 100644 index 7f8f011eb..000000000 --- a/packages/deb/specs/nailgun-net-check/debian/compat +++ /dev/null @@ -1 +0,0 @@ -7 diff --git a/packages/deb/specs/nailgun-net-check/debian/control b/packages/deb/specs/nailgun-net-check/debian/control deleted file mode 100644 index 7178baf8e..000000000 --- a/packages/deb/specs/nailgun-net-check/debian/control +++ /dev/null @@ -1,12 +0,0 @@ -Source: nailgun-net-check -Section: admin -Priority: optional -Maintainer: Mirantis Product -Build-Depends: debhelper (>= 8), python-setuptools -Standards-Version: 3.9.2 - -Package: nailgun-net-check -Architecture: all -Depends: ${misc:Depends}, ${python:Depends}, python-pypcap, vlan, python-scapy, cliff-tablib, python-stevedore, python-daemonize, python-yaml, tcpdump -Description: NailGun client net-check - . diff --git a/packages/deb/specs/nailgun-net-check/debian/rules b/packages/deb/specs/nailgun-net-check/debian/rules deleted file mode 100644 index 4647c9c00..000000000 --- a/packages/deb/specs/nailgun-net-check/debian/rules +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/make -f - -%: - dh $@ --with python2 diff --git a/packages/deb/specs/nailgun-net-check/debian/source/format b/packages/deb/specs/nailgun-net-check/debian/source/format deleted file mode 100644 index 163aaf8d8..000000000 --- a/packages/deb/specs/nailgun-net-check/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/packages/deb/specs/python-tasklib/debian/changelog b/packages/deb/specs/python-tasklib/debian/changelog deleted file mode 100644 index 214afa44b..000000000 --- a/packages/deb/specs/python-tasklib/debian/changelog +++ /dev/null @@ -1,11 +0,0 @@ -python-tasklib (6.0.0-1) precise; urgency=low - - * Update code from upstream - - -- Igor Kalnitsky Wed, 26 Nov 2014 19:49:00 +0200 - -python-tasklib (0.1.0-1) unstable; urgency=low - - * Initial release. - - -- Mirantis Product Tue, 30 Sep 2014 14:36:29 +0400 diff --git a/packages/deb/specs/python-tasklib/debian/compat b/packages/deb/specs/python-tasklib/debian/compat deleted file mode 100644 index 7f8f011eb..000000000 --- a/packages/deb/specs/python-tasklib/debian/compat +++ /dev/null @@ -1 +0,0 @@ -7 diff --git a/packages/deb/specs/python-tasklib/debian/control b/packages/deb/specs/python-tasklib/debian/control deleted file mode 100644 index c38b1b573..000000000 --- a/packages/deb/specs/python-tasklib/debian/control +++ /dev/null @@ -1,13 +0,0 @@ -Source: python-tasklib -Section: admin -Priority: optional -Maintainer: Mirantis Product -Build-Depends: debhelper (>= 8), python-setuptools -Standards-Version: 3.9.2 - -Package: python-tasklib -Architecture: all -Depends: ${misc:Depends}, ${python:Depends}, python-argparse, python-daemonize, python-yaml -Description: Fuel tasklib - Medium between configuration management providers and user. - For plagability, control and simple interface. diff --git a/packages/deb/specs/python-tasklib/debian/rules b/packages/deb/specs/python-tasklib/debian/rules deleted file mode 100644 index 4647c9c00..000000000 --- a/packages/deb/specs/python-tasklib/debian/rules +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/make -f - -%: - dh $@ --with python2 diff --git a/packages/deb/specs/python-tasklib/debian/source/format b/packages/deb/specs/python-tasklib/debian/source/format deleted file mode 100644 index 163aaf8d8..000000000 --- a/packages/deb/specs/python-tasklib/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/packages/module.mk b/packages/module.mk index 9c0223330..465ca1cc5 100644 --- a/packages/module.mk +++ b/packages/module.mk @@ -23,12 +23,6 @@ $(BUILD_DIR)/packages/sources/$1/$2: $(BUILD_DIR)/repos/repos.done $(BUILD_DIR)/packages/source_$1.done: $(BUILD_DIR)/packages/sources/$1/$2 $(BUILD_DIR)/packages/sources/$1/$2: $(call find-files,$3) mkdir -p $(BUILD_DIR)/packages/sources/$1 -ifeq ($1,nailgun) - mkdir -p $(BUILD_DIR)/npm-cache - cd $3 && npm --cache $(BUILD_DIR)/npm-cache install && ./node_modules/.bin/gulp build --static-dir=compressed_static - rm -rf $3/static - mv $3/compressed_static $3/static -endif cd $3 && python setup.py sdist -d $(BUILD_DIR)/packages/sources/$1 endef @@ -56,39 +50,42 @@ $(BUILD_DIR)/packages/sources/$1/$2: $(call find-files,$3) cd $3 && gem build *.gemspec && cp $2 $(BUILD_DIR)/packages/sources/$1/$2 endef -PACKAGE_VERSION=6.0.0 +define prepare_git_source +$(BUILD_DIR)/packages/sources/$1/$2: $(BUILD_DIR)/repos/repos.done +$(BUILD_DIR)/packages/source_$1.done: $(BUILD_DIR)/packages/sources/$1/$2 +$(BUILD_DIR)/packages/sources/$1/$2: + mkdir -p $(BUILD_DIR)/packages/sources/$1 + cd $3 && git archive --format tar --worktree-attributes $4 > $(BUILD_DIR)/packages/sources/$1/$1.tar\ + && git rev-parse $4 > $(BUILD_DIR)/packages/sources/$1/version.txt + cd $(BUILD_DIR)/packages/sources/$1 && tar -rf $1.tar version.txt + cd $(BUILD_DIR)/packages/sources/$1 && gzip -9 $1.tar && mv $1.tar.gz $2 +endef + $(BUILD_DIR)/packages/source_%.done: $(ACTION.TOUCH) -$(eval $(call prepare_file_source,fencing-agent,fencing-agent.rb,$(BUILD_DIR)/repos/nailgun/bin/fencing-agent.rb)) -$(eval $(call prepare_file_source,fencing-agent,fencing-agent.cron,$(BUILD_DIR)/repos/nailgun/bin/fencing-agent.cron)) -$(eval $(call prepare_python_source,fuel-agent,fuel-agent-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/nailgun/fuel_agent)) -$(eval $(call prepare_file_source,fuel-provisioning-scripts,download-debian-installer,$(BUILD_DIR)/repos/nailgun/bin/download-debian-installer)) -$(eval $(call prepare_file_source,fuel-agent,fuel-agent.conf,$(BUILD_DIR)/repos/nailgun/fuel_agent/etc/fuel-agent/fuel-agent.conf.sample)) -$(eval $(call prepare_python_source,fuel-package-updates,fuel-package-updates-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/nailgun/fuel_upgrade_system/fuel_package_updates)) -$(eval $(call prepare_tgz_source,fuel-agent,fuel-agent-cloud-init-templates.tar.gz,$(BUILD_DIR)/repos/nailgun/fuel_agent/cloud-init-templates)) -$(eval $(call prepare_tgz_source,fuel-image,fuel-image-$(PACKAGE_VERSION).tar.gz,$(SOURCE_DIR)/image/ubuntu/build_on_masternode)) -$(eval $(call prepare_python_source,fuel-ostf,fuel-ostf-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/ostf)) -$(eval $(call prepare_python_source,fuelmenu,fuelmenu-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/nailgun/fuelmenu)) -$(eval $(call prepare_file_source,nailgun-agent,agent,$(BUILD_DIR)/repos/nailgun/bin/agent)) -$(eval $(call prepare_file_source,nailgun-agent,nailgun-agent.cron,$(BUILD_DIR)/repos/nailgun/bin/nailgun-agent.cron)) -$(eval $(call prepare_tgz_source,nailgun-mcagents,mcagents.tar.gz,$(BUILD_DIR)/repos/astute/mcagents)) -$(eval $(call prepare_tgz_source,ruby21-nailgun-mcagents,nailgun-mcagents.tar.gz,$(BUILD_DIR)/repos/astute/mcagents)) -$(eval $(call prepare_python_source,nailgun-net-check,nailgun-net-check-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/nailgun/network_checker)) -$(eval $(call prepare_python_source,python-tasklib,tasklib-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/nailgun/tasklib)) -$(eval $(call prepare_python_source,nailgun,nailgun-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/nailgun/nailgun)) -$(eval $(call prepare_python_source,python-fuelclient,python-fuelclient-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/python-fuelclient)) -$(eval $(call prepare_python_source,shotgun,shotgun-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/nailgun/shotgun)) -$(eval $(call prepare_file_source,nailgun-redhat-license,get_redhat_licenses,$(SOURCE_DIR)/packages/rpm/nailgun-redhat-license/get_redhat_licenses)) -$(eval $(call prepare_ruby21_source,ruby21-rubygem-astute,astute-$(PACKAGE_VERSION).gem,$(BUILD_DIR)/repos/astute)) +#NAILGUN_PKGS +$(eval $(call prepare_git_source,nailgun,nailgun-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/nailgun,HEAD)) +#FUEL_OSTF_PKGS +$(eval $(call prepare_git_source,fuel-ostf,fuel-ostf-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/fuel-ostf,HEAD)) +#ASTUTE_PKGS +$(eval $(call prepare_git_source,astute,astute-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/astute,HEAD)) +#FUELLIB_PKGS +$(eval $(call prepare_git_source,fuel-library6.1,fuel-library6.1-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/fuel-library6.1,HEAD)) +#FUEL_PYTHON_PKGS +$(eval $(call prepare_git_source,python-fuelclient,python-fuelclient-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/python-fuelclient,HEAD)) +#FUEL-IMAGE PKGS +$(eval $(call prepare_git_source,fuel-main,fuel-main-$(PACKAGE_VERSION).tar.gz,$(BUILD_DIR)/repos/fuel-main,HEAD)) include $(SOURCE_DIR)/packages/rpm/module.mk +include $(SOURCE_DIR)/packages/deb/module.mk .PHONY: packages packages-deb packages-rpm ifneq ($(BUILD_PACKAGES),0) $(BUILD_DIR)/packages/build.done: \ - $(BUILD_DIR)/packages/rpm/build.done + $(BUILD_DIR)/packages/rpm/build.done \ + $(BUILD_DIR)/packages/deb/build.done endif $(BUILD_DIR)/packages/build.done: @@ -96,7 +93,12 @@ $(BUILD_DIR)/packages/build.done: packages: $(BUILD_DIR)/packages/build.done packages-rpm: $(BUILD_DIR)/packages/rpm/build.done +packages-deb: $(BUILD_DIR)/packages/deb/build.done +#FIXME(aglarendil): make sources generation uniform +#$(BUILD_DIR)/packages/source_fuel-library.done: $(BUILD_DIR)/packages/source_fuel-library6.1.done +# ln -s $(BUILD_DIR)/packages/sources/fuel-library6.1 $(BUILD_DIR)/packages/sources/fuel-library +# $(ACTION.TOUCH) ################################### #### LATE PACKAGES ################ diff --git a/packages/rpm/genpkgnames.py b/packages/rpm/genpkgnames.py new file mode 100644 index 000000000..c9b4f2cde --- /dev/null +++ b/packages/rpm/genpkgnames.py @@ -0,0 +1,6 @@ +import rpm +import sys +specfile = sys.argv[1] +spec = rpm.spec(specfile) +for pkg in spec.packages: + print pkg.header.format('%{name}') diff --git a/packages/rpm/module.mk b/packages/rpm/module.mk index 6ea2edfc9..c4e588d11 100644 --- a/packages/rpm/module.mk +++ b/packages/rpm/module.mk @@ -12,7 +12,7 @@ clean-rpm: RPM_SOURCES:=$(BUILD_DIR)/packages/rpm/SOURCES -$(BUILD_DIR)/packages/rpm/buildd.tar.gz: SANDBOX_PACKAGES:=ruby rpm-build tar python-setuptools python-pbr +$(BUILD_DIR)/packages/rpm/buildd.tar.gz: SANDBOX_PACKAGES:=ruby rpm-build tar python-setuptools python-pbr nodejs npm yum yum-utils git $(BUILD_DIR)/packages/rpm/buildd.tar.gz: SANDBOX:=$(BUILD_DIR)/packages/rpm/SANDBOX/buildd $(BUILD_DIR)/packages/rpm/buildd.tar.gz: export SANDBOX_UP:=$(SANDBOX_UP) $(BUILD_DIR)/packages/rpm/buildd.tar.gz: export SANDBOX_DOWN:=$(SANDBOX_DOWN) @@ -31,50 +31,57 @@ $(BUILD_DIR)/packages/rpm/repo$2.done: $(BUILD_DIR)/packages/rpm/$1-repocleanup. # You can use package name as a target, for example: make ruby21-rubygem-astute # It will build astute rpm package -$1: $(BUILD_DIR)/packages/rpm/$1.done +$1-rpm: $(BUILD_DIR)/packages/rpm/$1.done $(BUILD_DIR)/packages/rpm/$1.done: SANDBOX:=$(BUILD_DIR)/packages/rpm/SANDBOX/$1 $(BUILD_DIR)/packages/rpm/$1.done: export SANDBOX_DOWN:=$$(SANDBOX_DOWN) $(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/source_$1.done $(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/rpm/buildd.tar.gz -$(BUILD_DIR)/packages/rpm/$1.done: $(SOURCE_DIR)/packages/rpm/specs/$1.spec + +ifneq (late,$(findstring late,$2)) +$(BUILD_DIR)/packages/rpm/$1.done: SPECFILE:=$(BUILD_DIR)/repos/$1/specs/$1.spec +$(BUILD_DIR)/repos/$1/specs/$1.spec: $(BUILD_DIR)/repos/repos.done +$(BUILD_DIR)/repos/$1/specs/$1.spec: $(BUILD_DIR)/repos/$1.done +$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/repos/$1/specs/$1.spec +else +$(BUILD_DIR)/packages/rpm/$1.done: SPECFILE:=$(SOURCE_DIR)/packages/rpm/specs/$1.spec +endif + +$(BUILD_DIR)/packages/rpm/$1.done: mkdir -p $(BUILD_DIR)/packages/rpm/RPMS/x86_64 mkdir -p $$(SANDBOX) && \ sudo tar xzf $(BUILD_DIR)/packages/rpm/buildd.tar.gz -C $$(SANDBOX) && \ + sudo chroot $$(SANDBOX) bash -c "(mkdir -p '$$$${TEMP}'; mkdir -p /tmp/user/0)" sudo mount --bind /proc $$(SANDBOX)/proc && \ sudo mount --bind /dev $$(SANDBOX)/dev && \ mkdir -p $$(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 $$(SPECFILE) $$(SANDBOX)/tmp && \ + sudo /bin/sh -c 'export TMPDIR=$$(SANDBOX)/tmp/yum TMP=$$(SANDBOX)/tmp/yum; yum-builddep -y -c $$(SANDBOX)/etc/yum.conf --installroot=$$(SANDBOX) $$(SANDBOX)/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/*/*.rpm $(BUILD_DIR)/packages/rpm/RPMS/x86_64 sudo sh -c "$$$${SANDBOX_DOWN}" $$(ACTION.TOUCH) +ifneq (late,$(findstring late,$2)) +$(BUILD_DIR)/packages/rpm/$1-repocleanup.done: SPECFILE:=$(BUILD_DIR)/repos/$1/specs/$1.spec +$(BUILD_DIR)/packages/rpm/$1-repocleanup.done: $(BUILD_DIR)/packages/source_$1.done +else +$(BUILD_DIR)/packages/rpm/$1-repocleanup.done: SPECFILE:=$(SOURCE_DIR)/packages/rpm/specs/$1.spec +endif $(BUILD_DIR)/packages/rpm/$1-repocleanup.done: $(BUILD_DIR)/mirror/centos/repo.done - find $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/Packages -regex '.*/$1-[^-]+-[^-]+' -delete + python $(SOURCE_DIR)/packages/rpm/genpkgnames.py $$(SPECFILE) | xargs -I{} sudo find $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/Packages -regex '.*/{}-[^-]+-[^-]+' -delete $$(ACTION.TOUCH) endef packages_list:=\ -fencing-agent \ -fuel-agent \ -fuel-image \ -fuel-package-updates \ -fuel-provisioning-scripts \ -fuelmenu \ -nailgun-mcagents \ -ruby21-nailgun-mcagents \ -nailgun-net-check \ -python-tasklib \ +fuel-main \ +fuel-library$(PRODUCT_VERSION) \ +astute \ nailgun \ -shotgun \ fuel-ostf \ -nailgun-agent \ -nailgun-redhat-license \ -python-fuelclient \ -ruby21-rubygem-astute +python-fuelclient $(eval $(foreach pkg,$(packages_list),$(call build_rpm,$(pkg))$(NEWLINE))) @@ -108,6 +115,7 @@ $(BUILD_DIR)/packages/rpm/fuel-docker-images.done: \ $(BUILD_DIR)/packages/rpm/build.done: $(BUILD_DIR)/packages/rpm/repo.done $(ACTION.TOUCH) +$(BUILD_DIR)/docker/build.done: $(BUILD_DIR)/packages/rpm/repo-late.done ####################################### # This section is for building container diff --git a/packages/rpm/nailgun-redhat-license/get_redhat_licenses b/packages/rpm/nailgun-redhat-license/get_redhat_licenses deleted file mode 100755 index d6027fc5f..000000000 --- a/packages/rpm/nailgun-redhat-license/get_redhat_licenses +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python - -# Copyright 2013 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. - - -import sys -sys.path.insert(0, '/usr/share/rhsm/') - -import json -import socket -import traceback - -from rhsm.connection import UEPConnection -from subscription_manager.managercli import handle_exception - - -def get_licenses(username, password): - uep = UEPConnection(username=username, password=password) - owner_key = uep.getOwnerList(username)[0]['key'] - pool_list = uep.getPoolsList(owner=owner_key) - - avail_licenses = 0 - licenses = [] - for pool in pool_list: - license_info = {} - - if 'OpenStack' in pool['productName']: - license_info['quantity'] = pool['quantity'] - license_info['consumed'] = pool['consumed'] - license_info['product_name'] = pool['productName'] - license_info['id'] = pool['id'] - license_info['active_subscription'] = pool['activeSubscription'] - - # subscriptionSubKey is master for physical hosts - # subscriptionSubKey is derived for virtual hosts - license_info['type'] = pool['subscriptionSubKey'] - - if pool['subscriptionSubKey'] == 'master': - license_info['free'] = int(pool['quantity']) - int(pool['consumed']) - if pool['activeSubscription']: - avail_licenses += license_info['free'] - - licenses.append(license_info) - - return { - 'openstack' : licenses, - 'openstack_licenses_physical_hosts_count' : avail_licenses - } - -if __name__ == "__main__": - username = sys.argv[1] - password = sys.argv[2] - - try: - licenses = get_licenses(username, password) - print json.dumps(licenses) - except Exception, exc: - handle_exception(traceback.format_exc(), exc) diff --git a/packages/rpm/patches/pypcap.diff b/packages/rpm/patches/pypcap.diff deleted file mode 100644 index 5a9eaacca..000000000 --- a/packages/rpm/patches/pypcap.diff +++ /dev/null @@ -1,31 +0,0 @@ -diff -u -r a/pypcap-1.1/pcap_ex.c b/pypcap-1.1/pcap_ex.c ---- a/pypcap-1.1/pcap_ex.c 2005-10-17 02:58:14.000000000 +0400 -+++ b/pypcap-1.1/pcap_ex.c 2012-10-10 15:51:39.689673638 +0400 -@@ -13,13 +13,14 @@ - # include - #endif - -+#include "config.h" -+ - #include - #ifdef HAVE_PCAP_INT_H - # include - #endif - #include "pcap_ex.h" - --#include "config.h" - - /* XXX - hack around older Python versions */ - #include "patchlevel.h" -diff -u -r a/pypcap-1.1/setup.py b/pypcap-1.1/setup.py ---- a/pypcap-1.1/setup.py 2005-10-17 03:07:03.000000000 +0400 -+++ b/pypcap-1.1/setup.py 2012-10-10 15:51:39.689673638 +0400 -@@ -46,7 +46,7 @@ - incdirs = [ os.path.join(d, sd) ] - if os.path.exists(os.path.join(d, sd, 'pcap.h')): - cfg['include_dirs'] = [ os.path.join(d, sd) ] -- for sd in ('lib', ''): -+ for sd in ('lib', 'lib64', ''): - for lib in (('pcap', 'libpcap.a'), - ('pcap', 'libpcap.dylib'), - ('wpcap', 'wpcap.lib')): diff --git a/packages/rpm/specs/fencing-agent.spec b/packages/rpm/specs/fencing-agent.spec deleted file mode 100644 index d6ea064f8..000000000 --- a/packages/rpm/specs/fencing-agent.spec +++ /dev/null @@ -1,32 +0,0 @@ -Name: fencing-agent -Summary: Fencing agent -Version: 6.0.0 -Release: 1 -License: GPLv2 -BuildRoot: %{_tmppath}/%{name}-%{version} -Source0: fencing-agent.rb -Source1: fencing-agent.cron -URL: http://mirantis.com -Requires: rubygem-ohai -%description -Agent for periodic checks for additional fencing criterias (free space, etc) - -%prep -rm -rf %{name}-%{version} -mkdir %{name}-%{version} -cp %{SOURCE0} %{name}-%{version} -cp %{SOURCE1} %{name}-%{version} - -%install -cd %{name}-%{version} -mkdir -p %{buildroot}/opt/nailgun/bin -mkdir -p %{buildroot}/etc/cron.d -install -m 755 %{SOURCE0} %{buildroot}/opt/nailgun/bin/fencing-agent.rb -install -m 644 %{SOURCE1} %{buildroot}/etc/cron.d/fencing-agent - -%clean -rm -rf %{buildroot} - -%files -/etc/cron.d/fencing-agent -/opt/nailgun/bin/fencing-agent.rb diff --git a/packages/rpm/specs/fuel-agent.spec b/packages/rpm/specs/fuel-agent.spec deleted file mode 100644 index 0ad30c45d..000000000 --- a/packages/rpm/specs/fuel-agent.spec +++ /dev/null @@ -1,89 +0,0 @@ -%define name fuel-agent -%define version 6.0.0 -%define release 1 - -Summary: Fuel-agent package -Name: %{name} -Version: %{version} -Release: %{release} -URL: http://mirantis.com -Source0: %{name}-%{version}.tar.gz -Source1: %{name}.conf -Source2: %{name}-cloud-init-templates.tar.gz -License: Apache -Group: Development/Libraries -BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot -Prefix: %{_prefix} -BuildRequires: python-setuptools -BuildRequires: python-pbr -BuildArch: noarch - -Requires: PyYAML -Requires: bzip2 -Requires: cloud-utils -Requires: coreutils -Requires: debootstrap -Requires: dmidecode -Requires: e2fsprogs -Requires: ethtool -Requires: gdisk -Requires: genisoimage -Requires: gzip -Requires: lvm2 -Requires: mdadm -Requires: openssh-clients -Requires: parted -Requires: pciutils -Requires: python -Requires: python-argparse -Requires: python-babel -Requires: python-eventlet -Requires: python-iso8601 -Requires: python-jinja2 -Requires: python-jsonschema -Requires: python-oslo-config -Requires: python-oslo-serialization >= 1.0.0 -Requires: python-pbr -Requires: python-requests -Requires: python-six -Requires: python-stevedore -Requires: python-urllib3 -Requires: tar -Requires: udev -Requires: util-linux-ng -Requires: xfsprogs -Requires: xz - -%description -Fuel-agent package - -%prep -rm -rf %{name}-%{version} -tar -xzf %{SOURCE0} -rm -rf %{name}-cloud-init-templates -mkdir -p %{name}-cloud-init-templates -tar -xzf %{SOURCE2} -C %{name}-cloud-init-templates - -%build -cd $RPM_BUILD_DIR/%{name}-%{version} -python setup.py build - -%install -cd $RPM_BUILD_DIR/%{name}-%{version} -python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES - -# Install config file -install -d -m 755 %{buildroot}%{_sysconfdir}/fuel-agent -install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/fuel-agent/fuel-agent.conf - -# Install template file -install -d -m 755 %{buildroot}%{_datadir}/fuel-agent/cloud-init-templates -install -p -D -m 644 $RPM_BUILD_DIR/%{name}-cloud-init-templates/* %{buildroot}%{_datadir}/fuel-agent/cloud-init-templates - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -f %{name}-%{version}/INSTALLED_FILES -%defattr(-,root,root) -%config(noreplace) %{_sysconfdir}/fuel-agent/fuel-agent.conf -%{_datadir}/fuel-agent/cloud-init-templates/* diff --git a/packages/rpm/specs/fuel-ostf.spec b/packages/rpm/specs/fuel-ostf.spec deleted file mode 100644 index 860e8a774..000000000 --- a/packages/rpm/specs/fuel-ostf.spec +++ /dev/null @@ -1,111 +0,0 @@ -%define name fuel-ostf -%define version 6.0.0 -%define release 1 - -Summary: cloud computing testing -Name: %{name} -Version: %{version} -Release: %{release} -Source0: %{name}-%{version}.tar.gz -License: Apache -Group: Development/Libraries -BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot -Prefix: %{_prefix} -BuildRequires: python-setuptools -BuildArch: noarch - -# fuel_health_reqs -Requires: python-amqplib >= 1.0.2 -Requires: python-anyjson >= 0.3.3 -Requires: python-argparse >= 1.2.1 -Requires: python-oslo-config >= 1.1.1 -Requires: python-ceilometerclient >= 1.0.9 -Requires: python-cinderclient >= 1.0.6 -Requires: python-keystoneclient >= 0.11 -Requires: python-kombu >= 1:3.0.16 -Requires: python-novaclient >= 1:2.15.0 -Requires: python-heatclient >= 0.2.5 -Requires: python-muranoclient >= 0.2.11 -Requires: python-neutronclient >= 2.3.6 -Requires: python-saharaclient >= 0.6 -Requires: python-swiftclient >= 2.3.1 -Requires: python-glanceclient >= 0.14.1 -Requires: python-paramiko >= 1.10.1 -Requires: python-requests >= 1.1 -Requires: python-unittest2 >= 0.5.1 -Requires: PyYAML >= 3.10 -Requires: python-testresources >= 0.2.7 - -# fuel_ostf_reqs -Requires: python-keystonemiddleware >= 1.2.0 -Requires: python-nose >= 1.3.0 -Requires: python-sqlalchemy >= 0.7.8 -Requires: python-sqlalchemy < 1.0 -Requires: python-alembic >= 0.5.0 -Requires: python-gevent >= 0.13.8 -Requires: python-pecan >= 0.3.0 -Requires: python-pecan < 0.6.0 -Requires: python-psycopg2 >= 2.5.1 -Requires: python-stevedore >= 0.10 -Requires: python-oslo-serialization >= 1.0.0 - -# test_requires -#mock >= 1.0.1 -#pep8 >= 1.4.6 -#py >= 1.4.15 -#Requires: python-six >= 1.4.1 -#tox >= 1.5.0 - -#Requires: python-mako >= 0.8.1 -#Requires: python-markupsafe >= 0.18 -#Requires: python-webob >= 1.2.3 -#Requires: python-webtest >= 2.0.6 -#Requires: python-argparse >= 1.2.1 -#Requires: python-beautifulsoup4 >= 4.2.1 -#Requires: python-cliff >= 1.4 -#Requires: python-cmd2 >= 0.6.5.1 -#Requires: python-d2to1 >= 0.2.10 -#Requires: python-distribute >= 0.7.3 -#Requires: python-extras >= 0.0.3 -#Requires: python-greenlet >= 0.4.1 -#Requires: python-httplib2 >= 0.8 -#Requires: python-iso8601 >= 0.1.4 -#Requires: python-jsonpatch >= 1.1 -#Requires: python-jsonpointer >= 1.0 -#Requires: python-jsonschema >= 2.0.0 -#Requires: python-logutils >= 0.3.3 -#Requires: python-netaddr >= 0.7.10 -#Requires: python-ordereddict >= 1.1 -#Requires: python-pbr >= 0.5.21 -#Requires: python-prettytable >= 0.7.2 -#Requires: python-psycogreen >= 1.0 -#Requires: python-pyopenssl >= 0.13 -#Requires: python-crypto >= 2.6 -#Requires: pyparsing >= 1.5.6 -#Requires: python-mimeparse >= 0.1.4 -#Requires: python-setuptools-git >= 1.0 -#Requires: python-simplegeneric >= 0.8.1 -#Requires: python-simplejson >= 3.3.0 -#Requires: python-testtools >= 0.9.32 -#Requires: python-waitress >= 0.8.5 -#Requires: python-warlock >= 1.0.1 -#Requires: python-wsgiref >= 0.1.2 - - -%description -fuel-ostf-tests - -%prep -%setup -n %{name}-%{version} -n %{name}-%{version} - -%build -python setup.py build - -%install -python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -f INSTALLED_FILES -%defattr(-,root,root) diff --git a/packages/rpm/specs/fuel-provisioning-scripts.spec b/packages/rpm/specs/fuel-provisioning-scripts.spec deleted file mode 100644 index 0f0bd262b..000000000 --- a/packages/rpm/specs/fuel-provisioning-scripts.spec +++ /dev/null @@ -1,33 +0,0 @@ -%define name fuel-provisioning-scripts -%define version 6.1.0 -%define release 1 - -Summary: %{name} package -Name: %{name} -Version: %{version} -Release: %{release} -URL: http://mirantis.com -Source0: download-debian-installer -License: Apache -BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot -Prefix: %{_prefix} -BuildArch: noarch - -Requires: wget - -%description -This package provides a set of scripts which we need for provisioning. - -%prep - -%build - -%install -install -p -D -m 755 %{SOURCE0} %{buildroot}%{_bindir}/download-debian-installer - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) -%{_bindir}/download-debian-installer diff --git a/packages/rpm/specs/fuelmenu.spec b/packages/rpm/specs/fuelmenu.spec deleted file mode 100644 index 11aca93fb..000000000 --- a/packages/rpm/specs/fuelmenu.spec +++ /dev/null @@ -1,47 +0,0 @@ -%define name fuelmenu -%define version 6.0.0 -%define release 1 - -Summary: Console utility for pre-configuration of Fuel server -Name: %{name} -Version: %{version} -Release: %{release} -Source0: %{name}-%{version}.tar.gz -License: Apache -Group: Development/Libraries -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot -Prefix: %{_prefix} -BuildArch: noarch -Vendor: Matthew Mosesohn -BuildRequires: python-setuptools -Requires: bind-utils -Requires: nailgun-net-check -Requires: ntp -Requires: python-setuptools -Requires: python-netaddr -Requires: python-netifaces -Requires: python-urwid >= 1.1.0 -Requires: PyYAML -Requires: python-ordereddict - -%description -Summary: Console utility for pre-configuration of Fuel server - -%prep -%setup -n %{name}-%{version} -n %{name}-%{version} - -%build -python setup.py build - -%install -python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES - -mkdir -p $RPM_BUILD_ROOT/etc -install -d -m 755 $RPM_BUILD_ROOT/etc/fuel -install -m 0600 fuelmenu/settings.yaml $RPM_BUILD_ROOT/etc/fuel/astute.yaml -%clean -rm -rf $RPM_BUILD_ROOT - -%files -f INSTALLED_FILES -%defattr(-,root,root) -%config(noreplace) /etc/fuel/astute.yaml diff --git a/packages/rpm/specs/nailgun-agent.spec b/packages/rpm/specs/nailgun-agent.spec deleted file mode 100644 index f0bcaf0fa..000000000 --- a/packages/rpm/specs/nailgun-agent.spec +++ /dev/null @@ -1,39 +0,0 @@ -Name: nailgun-agent -Summary: Nailgun starup agent -Version: 6.0.0 -Release: 1 -License: GPLv2 -BuildRoot: %{_tmppath}/%{name}-%{version} -Source0: agent -Source1: nailgun-agent.cron -URL: http://mirantis.com -Requires: rubygem-rethtool -Requires: rubygem-ohai -Requires: rubygem-httpclient -Requires: rubygem-ipaddress -Requires: rubygem-json -Requires: rubygems -%description -Nailgun starup agent that register node at Nailgun and make a little setup -of other services. - - -%prep -rm -rf %{name}-%{version} -mkdir %{name}-%{version} -cp %{SOURCE0} %{name}-%{version} -cp %{SOURCE1} %{name}-%{version} - -%install -cd %{name}-%{version} -mkdir -p %{buildroot}/opt/nailgun/bin -mkdir -p %{buildroot}/etc/cron.d -install -m 755 %{SOURCE0} %{buildroot}/opt/nailgun/bin/agent -install -m 644 %{SOURCE1} %{buildroot}/etc/cron.d/nailgun-agent - -%clean -rm -rf %{buildroot} - -%files -/etc/cron.d/nailgun-agent -/opt/nailgun/bin/agent diff --git a/packages/rpm/specs/nailgun-mcagents.spec b/packages/rpm/specs/nailgun-mcagents.spec deleted file mode 100644 index 51c13266c..000000000 --- a/packages/rpm/specs/nailgun-mcagents.spec +++ /dev/null @@ -1,28 +0,0 @@ -Name: nailgun-mcagents -Summary: MCollective Agents -Version: 6.0.0 -Release: 1 -License: GPLv2 -Source0: mcagents.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version} -Requires: mcollective >= 2.2 -URL: http://mirantis.com -%description -MCollective agents - - -%prep -rm -rf %{name}-%{version} -mkdir %{name}-%{version} -tar -xf %{SOURCE0} -C %{name}-%{version} - -%install -cd %{name}-%{version} -mkdir -p %{buildroot}/usr/libexec/mcollective/mcollective/agent/ -cp * %{buildroot}/usr/libexec/mcollective/mcollective/agent/ - -%clean -rm -rf %{buildroot} - -%files -/usr/libexec/mcollective/mcollective/agent/* diff --git a/packages/rpm/specs/nailgun-net-check.spec b/packages/rpm/specs/nailgun-net-check.spec deleted file mode 100644 index 00bd076af..000000000 --- a/packages/rpm/specs/nailgun-net-check.spec +++ /dev/null @@ -1,44 +0,0 @@ -%define name nailgun-net-check -%define version 6.0.0 -%define release 1 - -Name: %{name} -Summary: Network checking package for CentOS6.2 -Version: %{version} -Release: %{release} -License: GPLv2 -Source0: %{name}-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot -URL: http://github.com/Mirantis - -BuildRequires: python-setuptools - -Requires: vconfig -Requires: scapy -Requires: python-argparse -Requires: python-pypcap -Requires: python-cliff-tablib -Requires: python-stevedore -Requires: python-daemonize -Requires: python-yaml -Requires: tcpdump - - -%description -This is a network tool that helps to verify networks connectivity -between hosts in network. - -%prep -%setup -n %{name}-%{version} - -%build -python setup.py build - -%install -python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -f INSTALLED_FILES -%defattr(-,root,root) diff --git a/packages/rpm/specs/nailgun-redhat-license.spec b/packages/rpm/specs/nailgun-redhat-license.spec deleted file mode 100644 index 4b665ac78..000000000 --- a/packages/rpm/specs/nailgun-redhat-license.spec +++ /dev/null @@ -1,28 +0,0 @@ -Name: nailgun-redhat-license -Summary: Getting redhat licenses -Version: 6.0.0 -Release: 1 -License: Apache License 2.0 -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-build -URL: http://github.com/Mirantis -Requires: subscription-manager -Source0: get_redhat_licenses - -%description -This is python script that can be used to get redhat licenses. - -%prep -rm -rf %{name}-%{version} -mkdir %{name}-%{version} -cp %{SOURCE0} %{name}-%{version} - -%install -mkdir -p %{buildroot}/usr/bin -cp %{_sourcedir}/get_redhat_licenses %{buildroot}/usr/bin - -%files -%defattr(0755,root,root,-) -/usr/bin/get_redhat_licenses - -%clean -rm -rf %{buildroot} diff --git a/packages/rpm/specs/nailgun.spec b/packages/rpm/specs/nailgun.spec deleted file mode 100644 index ae3747c6b..000000000 --- a/packages/rpm/specs/nailgun.spec +++ /dev/null @@ -1,74 +0,0 @@ -%define name nailgun -%define version 6.0.0 -%define release 1 - -Summary: Nailgun package -Name: %{name} -Version: %{version} -Release: %{release} -Source0: %{name}-%{version}.tar.gz -License: Apache -Group: Development/Libraries -BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot -Prefix: %{_prefix} -BuildRequires: python-setuptools -BuildArch: noarch - -Requires: python-alembic >= 0.6.2 -Requires: python-amqplib >= 1.0.2 -Requires: python-anyjson >= 0.3.3 -Requires: python-argparse >= 1.2.1 -Requires: python-babel >= 1.3 -Requires: python-crypto >= 2.6.1 -Requires: python-decorator >= 3.4.0 -Requires: python-fysom >= 1.0.11 -Requires: python-iso8601 >= 0.1.9 -Requires: python-jinja2 >= 2.7 -Requires: python-jsonschema >= 2.3.0 -Requires: python-keystoneclient >= 0.11 -Requires: python-keystonemiddleware >= 1.2.0 -Requires: python-kombu >= 1:3.0.16 -Requires: python-mako >= 0.9.1 -Requires: python-markupsafe >= 0.18 -Requires: python-netaddr >= 0.7.10 -Requires: python-netifaces >= 0.8 -Requires: python-oslo-config >= 1:1.2.1 -Requires: python-oslo-serialization >= 1.0.0 -Requires: python-paste >= 1.7.5.1 -Requires: python-ply >= 3.4 -Requires: python-psycopg2 >= 2.5.1 -Requires: python-requests >= 1.2.3 -Requires: python-simplejson >= 3.3.0 -Requires: python-six >= 1.5.2 -Requires: python-sqlalchemy >= 0.7.9 -Requires: python-stevedore >= 0.14 -Requires: python-urllib3 >= 1.7 -Requires: python-webpy >= 0.37 -Requires: python-wsgilog >= 0.3 -Requires: python-wsgiref >= 0.1.2 -Requires: PyYAML >= 3.10 -Requires: python-novaclient >= 2.17.0 -Requires: python-networkx-core >= 1.8.0 -Requires: python-cinderclient >= 1.0.7 -Requires: pydot-ng >= 1.0.0 -Requires: python-ordereddict >= 1.1 -# Workaroud for babel bug -Requires: pytz - -%description -Nailgun package - -%prep -%setup -n %{name}-%{version} -n %{name}-%{version} - -%build -python setup.py build - -%install -python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -f INSTALLED_FILES -%defattr(0755,root,root) diff --git a/packages/rpm/specs/python-fuelclient.spec b/packages/rpm/specs/python-fuelclient.spec deleted file mode 100644 index 7b7dc3060..000000000 --- a/packages/rpm/specs/python-fuelclient.spec +++ /dev/null @@ -1,57 +0,0 @@ -%define name python-fuelclient -%define unmangled_name python-fuelclient -%define version 6.0.0 -%define release 1 - -Summary: Console utility for working with fuel rest api -Name: %{name} -Version: %{version} -Release: %{release} -Source0: %{unmangled_name}-%{version}.tar.gz -License: Apache -Group: Development/Libraries -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot -Prefix: %{_prefix} -BuildArch: noarch -BuildRequires: python-setuptools - -BuildRequires: python-pbr > 0.7 -BuildRequires: python-pbr < 1.0 - -Requires: python >= 2.6 -Requires: python <= 2.7 - -Requires: python-argparse == 1.2.1 - -Requires: PyYAML >= 3.1.0 -Requires: PyYAML <= 3.10 - -Requires: python-requests >= 2.1.0 -Requires: python-requests <= 2.2.1 - -Requires: python-keystoneclient >= 1:0.10.0 -Requires: python-keystoneclient <= 1:1.1.0 - -Requires: python-cliff >= 1.7.0 -Requires: python-cliff <= 1.9.0 - -Requires: python-six >= 1.7.0 -Requires: python-six <= 1.9.0 - -%description -Summary: Console utility for working with fuel rest api - -%prep -%setup -n %{unmangled_name}-%{version} - -%build -python setup.py build - -%install -python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -f INSTALLED_FILES -%defattr(-,root,root) diff --git a/packages/rpm/specs/python-tasklib.spec b/packages/rpm/specs/python-tasklib.spec deleted file mode 100644 index 06c514f0e..000000000 --- a/packages/rpm/specs/python-tasklib.spec +++ /dev/null @@ -1,39 +0,0 @@ -%define name python-tasklib -%define unmangled_name tasklib -%define version 6.0.0 -%define release 1 - -Name: %{name} -Summary: Fuel tasklib -Version: %{version} -Release: %{release} -License: GPLv2 -Source0: %{unmangled_name}-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot -URL: http://github.com/Mirantis - -BuildRequires: python-setuptools - -Requires: python-argparse -Requires: python-daemonize -Requires: python-yaml - - -%description -Medium between configuration management providers and user. -For plagability, control and simple interface. - -%prep -%setup -n %{unmangled_name}-%{version} - -%build -python setup.py build - -%install -python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -f INSTALLED_FILES -%defattr(-,root,root) diff --git a/packages/rpm/specs/ruby21-nailgun-mcagents.spec b/packages/rpm/specs/ruby21-nailgun-mcagents.spec deleted file mode 100644 index 9851c0857..000000000 --- a/packages/rpm/specs/ruby21-nailgun-mcagents.spec +++ /dev/null @@ -1,30 +0,0 @@ -%define srcname nailgun-mcagents -Name: ruby21-nailgun-mcagents -Summary: MCollective Agents -Version: 6.0.0 -Release: 1 -License: GPLv2 -Source0: %{srcname}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version} -Requires: ruby21-mcollective >= 2.2 -URL: http://mirantis.com -%description -MCollective agents - - -%prep -%setup -c -n %{srcname}-%{version} - -%install -mkdir -p %{buildroot}/usr/libexec/mcollective/mcollective/agent/ -cp * %{buildroot}/usr/libexec/mcollective/mcollective/agent/ - -%clean -rm -rf %{buildroot} - -%files -/usr/libexec/mcollective/mcollective/agent/* - -%changelog -* Mon May 6 2013 Mirantis Product - 0.1.0-1 -- Version 0.1.0 diff --git a/packages/rpm/specs/ruby21-rubygem-astute.spec b/packages/rpm/specs/ruby21-rubygem-astute.spec deleted file mode 100644 index 280fd1fdf..000000000 --- a/packages/rpm/specs/ruby21-rubygem-astute.spec +++ /dev/null @@ -1,81 +0,0 @@ -%define rbname astute -%define version 6.0.0 -%define release 1 -%global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null) -%global geminstdir %{gemdir}/gems/%{gemname}-%{version} -%define gembuilddir %{buildroot}%{gemdir} - -Summary: Orchestrator for OpenStack deployment -Name: ruby21-rubygem-%{rbname} - -Version: %{version} -Release: %{release} -Group: Development/Ruby -License: Distributable -URL: http://fuel.mirantis.com -Source0: %{rbname}-%{version}.gem -# Make sure the spec template is included in the SRPM -BuildRoot: %{_tmppath}/%{name}-%{version}-root -Requires: ruby >= 2.1 -Requires: ruby21-rubygem-activesupport = 3.0.10 -Requires: ruby21-rubygem-mcollective-client = 2.4.1 -Requires: ruby21-rubygem-symboltable = 1.0.2 -Requires: ruby21-rubygem-rest-client = 1.6.7 -Requires: ruby21-rubygem-popen4 = 0.1.2 -Requires: ruby21-rubygem-amqp = 1.4.1 -Requires: ruby21-rubygem-raemon = 0.3.0 -Requires: ruby21-rubygem-net-ssh = 2.8.0 -Requires: ruby21-rubygem-net-ssh-gateway = 1.2.0 -Requires: ruby21-rubygem-net-ssh-multi = 1.2.0 -Requires: openssh-clients -BuildRequires: ruby >= 2.1 -BuildArch: noarch -Provides: ruby21(Astute) = %{version} - - -%description -Deployment Orchestrator of Puppet via MCollective. Works as a library or from -CLI. - - -%prep -%setup -T -c - -%build - -%install -%{__rm} -rf %{buildroot} -mkdir -p %{gembuilddir} -gem install --local --install-dir %{gembuilddir} --force %{SOURCE0} -mkdir -p %{buildroot}%{_bindir} -mv %{gembuilddir}/bin/* %{buildroot}%{_bindir} -rmdir %{gembuilddir}/bin - -install -d -m 750 %{buildroot}%{_sysconfdir}/astute - -cat > %{buildroot}%{_bindir}/astuted <= 0'; load Gem.bin_path('astute', 'astuted', '>= 0')" -- \$@ -EOF - -install -d -m 755 %{buildroot}%{_localstatedir}/log/astute - -%clean -%{__rm} -rf %{buildroot} - -%files -%defattr(-, root, root) -%{gemdir}/gems/%{rbname}-%{version}/bin/* -%{gemdir}/gems/%{rbname}-%{version}/lib/* -%{gemdir}/gems/%{rbname}-%{version}/spec/* -%{gemdir}/gems/%{rbname}-%{version}/examples/* - -%dir %attr(0750, naily, naily) %{_sysconfdir}/%{rbname} -%dir %attr(0755, naily, naily) %{_localstatedir}/log/%{rbname} -%config(noreplace) %{_bindir}/astuted - -%doc %{gemdir}/doc/astute-6.0.0 -%{gemdir}/cache/astute-6.0.0.gem -%{gemdir}/specifications/astute-6.0.0.gemspec - -%changelog diff --git a/packages/rpm/specs/shotgun.spec b/packages/rpm/specs/shotgun.spec deleted file mode 100644 index 9ac93acc6..000000000 --- a/packages/rpm/specs/shotgun.spec +++ /dev/null @@ -1,43 +0,0 @@ -%define name shotgun -%define version 6.0.0 -%define release 1 - -Summary: Shotgun package -Name: %{name} -Version: %{version} -Release: %{release} -URL: http://mirantis.com -Source0: %{name}-%{version}.tar.gz -License: Apache -Group: Development/Libraries -BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot -Prefix: %{_prefix} -BuildRequires: python-setuptools -BuildArch: noarch - -Requires: postgresql -Requires: python-fabric >= 1.10.0 -Requires: python-argparse -Requires: tar -Requires: gzip -Requires: bzip2 -Requires: openssh-clients -Requires: xz - -%description -Shotgun package - -%prep -%setup -n %{name}-%{version} - -%build -python setup.py build - -%install -python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -f INSTALLED_FILES -%defattr(-,root,root) diff --git a/prepare-build-env.sh b/prepare-build-env.sh index 5262bc22d..e48a1d16c 100755 --- a/prepare-build-env.sh +++ b/prepare-build-env.sh @@ -111,7 +111,7 @@ sudo apt-get -y install build-essential make git $GEMPKG debootstrap createrepo python-setuptools yum yum-utils libmysqlclient-dev isomd5sum bc \ python-nose libvirt-bin python-ipaddr python-paramiko python-yaml \ python-pip kpartx extlinux unzip genisoimage syslinux debmirror \ - lrzip python-daemon python-dev + lrzip python-daemon python-dev libparse-debcontrol-perl reprepro sudo gem install bundler -v 1.2.1 sudo gem install builder sudo pip install xmlbuilder jinja2 pbr diff --git a/puppet/module.mk b/puppet/module.mk deleted file mode 100644 index 7ecd9dcf6..000000000 --- a/puppet/module.mk +++ /dev/null @@ -1,24 +0,0 @@ -.PHONY: all puppet - -all: puppet - -######################## -# PUPPET ARTIFACT -######################## -puppet: $(ARTS_DIR)/$(PUPPET_ART_NAME) - -$(ARTS_DIR)/$(PUPPET_ART_NAME): $(BUILD_DIR)/puppet/$(PUPPET_ART_NAME) - $(ACTION.COPY) - -PUPPET_DEP_FILE:=$(call find-files,$(DEPS_DIR_CURRENT)/$(PUPPET_ART_NAME)) - -ifdef PUPPET_DEP_FILE -$(BUILD_DIR)/puppet/$(PUPPET_ART_NAME): $(PUPPET_DEP_FILE) - $(ACTION.COPY) -else -$(BUILD_DIR)/puppet/$(PUPPET_ART_NAME): \ - $(BUILD_DIR)/repos/fuellib.done \ - $(call find-files,$(BUILD_DIR)/repos/fuellib/deployment/puppet) - mkdir -p $(@D) - tar czf $@ -C $(BUILD_DIR)/repos/fuellib/deployment puppet -endif diff --git a/regenerate_ubuntu_repo.sh b/regenerate_ubuntu_repo.sh new file mode 100755 index 000000000..a24291f70 --- /dev/null +++ b/regenerate_ubuntu_repo.sh @@ -0,0 +1,55 @@ +#!/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 +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 -a amd64 pool/main > $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 diff --git a/repos.mk b/repos.mk index 55efa14a2..eca6323b4 100644 --- a/repos.mk +++ b/repos.mk @@ -32,8 +32,19 @@ endef $(eval $(call build_repo,nailgun,$(NAILGUN_REPO),$(NAILGUN_COMMIT),$(NAILGUN_GERRIT_URL),$(NAILGUN_GERRIT_COMMIT))) $(eval $(call build_repo,python-fuelclient,$(PYTHON_FUELCLIENT_REPO),$(PYTHON_FUELCLIENT_COMMIT),$(PYTHON_FUELCLIENT_GERRIT_URL),$(PYTHON_FUELCLIENT_GERRIT_COMMIT))) $(eval $(call build_repo,astute,$(ASTUTE_REPO),$(ASTUTE_COMMIT),$(ASTUTE_GERRIT_URL),$(ASTUTE_GERRIT_COMMIT))) -$(eval $(call build_repo,fuellib,$(FUELLIB_REPO),$(FUELLIB_COMMIT),$(FUELLIB_GERRIT_URL),$(FUELLIB_GERRIT_COMMIT))) -$(eval $(call build_repo,ostf,$(OSTF_REPO),$(OSTF_COMMIT),$(OSTF_GERRIT_URL),$(OSTF_GERRIT_COMMIT))) +$(eval $(call build_repo,fuel-library,$(FUELLIB_REPO),$(FUELLIB_COMMIT),$(FUELLIB_GERRIT_URL),$(FUELLIB_GERRIT_COMMIT))) +$(eval $(call build_repo,fuel-ostf,$(OSTF_REPO),$(OSTF_COMMIT),$(OSTF_GERRIT_URL),$(OSTF_GERRIT_COMMIT))) + +$(BUILD_DIR)/repos/fuel-main.done: + ln -s $(SOURCE_DIR) $(BUILD_DIR)/repos/fuel-main + $(ACTION.TOUCH) +$(BUILD_DIR)/repos/repos.done: $(BUILD_DIR)/repos/fuel-main.done $(BUILD_DIR)/repos/fuel-library6.1.done + +#FIXME(aglarendil): make repos generation uniform + +$(BUILD_DIR)/repos/fuel-library6.1.done: $(BUILD_DIR)/repos/fuel-library.done + ln -s $(BUILD_DIR)/repos/fuel-library $(BUILD_DIR)/repos/fuel-library6.1 + $(ACTION.TOUCH) $(BUILD_DIR)/repos/repos.done: version_yaml=$(BUILD_DIR)/repos/version.yaml; \ diff --git a/sandbox.mk b/sandbox.mk index dc32611ff..a5e905c43 100644 --- a/sandbox.mk +++ b/sandbox.mk @@ -4,13 +4,32 @@ name=Mirantis mirror baseurl=file://$(LOCAL_MIRROR_CENTOS_OS_BASEURL) gpgcheck=0 enabled=1 +priority=1 +endef +define yum_upstream_repo +[upstream] +name=Upstream mirror +baseurl=$(SANDBOX_MIRROR_CENTOS_UPSTREAM_OS_BASEURL) +gpgcheck=0 +priority=2 +[upstream-updates] +name=Upstream mirror +baseurl=$(SANDBOX_MIRROR_CENTOS_UPDATES_OS_BASEURL) +gpgcheck=0 +priority=2 +endef +define yum_epel_repo +[epel] +name=epel mirror +baseurl=$(SANDBOX_MIRROR_EPEL_OS_BASEURL) +gpgcheck=0 +priority=3 endef - define sandbox_yum_conf [main] cachedir=$(SANDBOX)/cache keepcache=0 -debuglevel=6 +debuglevel=2 logfile=$(SANDBOX)/yum.log exclude=*.i686.rpm exactarch=1 @@ -22,7 +41,7 @@ pluginconfpath=$(SANDBOX)/etc/yum/pluginconf.d reposdir=$(SANDBOX)/etc/yum.repos.d endef -SANDBOX_PACKAGES:=bash +SANDBOX_PACKAGES:=bash yum define SANDBOX_UP echo "Starting SANDBOX up" @@ -32,6 +51,8 @@ $(sandbox_yum_conf) EOF cp /etc/resolv.conf $(SANDBOX)/etc/resolv.conf cat > $(SANDBOX)/etc/yum.repos.d/base.repo < $(SANDBOX_UBUNTU)/usr/sbin/policy-rc.d < $(BUILD_DIR)/mirror/ubuntu/preferences << EOF +$(apt_preferences) +EOF +sudo cp $(BUILD_DIR)/mirror/ubuntu/preferences $(SANDBOX_UBUNTU)/etc/apt/preferences.d/ +echo "Configuring apt sources.list" +cat > $(BUILD_DIR)/mirror/ubuntu/sources.list << EOF +$(apt_sources_list) +EOF +sudo cp $(BUILD_DIR)/mirror/ubuntu/sources.list $(SANDBOX_UBUNTU)/etc/apt/ +echo "Allowing using unsigned repos" +sudo mkdir -p /etc/apt/apt.conf.d/ +echo "APT::Get::AllowUnauthenticated 1;" | sudo tee $(SANDBOX_UBUNTU)/etc/apt/apt.conf.d/02mirantis-unauthenticated +echo "Updating apt package database" +sudo chroot $(SANDBOX_UBUNTU) bash -c "(mkdir -p '$${TEMP}'; mkdir -p /tmp/user/0)" +sudo chroot $(SANDBOX_UBUNTU) apt-get update +echo "Installing additional packages: $(SANDBOX_DEB_PKGS)" +sudo chroot $(SANDBOX_UBUNTU) apt-get dist-upgrade --yes +test -n "$(SANDBOX_DEB_PKGS)" && sudo chroot $(SANDBOX_UBUNTU) apt-get install --yes $(SANDBOX_DEB_PKGS) +echo "SANDBOX_UBUNTU_UP: done" +endef + +define SANDBOX_UBUNTU_DOWN + if mountpoint -q $(SANDBOX_UBUNTU)/proc; then sudo umount $(SANDBOX_UBUNTU)/proc; fi + sudo umount $(SANDBOX_UBUNTU)/tmp/apt || true +endef + diff --git a/packages/rpm/specs/fuel-image.spec b/specs/fuel-main.spec similarity index 62% rename from packages/rpm/specs/fuel-image.spec rename to specs/fuel-main.spec index 662d18b9c..143033375 100644 --- a/packages/rpm/specs/fuel-image.spec +++ b/specs/fuel-main.spec @@ -1,3 +1,6 @@ +#TEMP fixme +%define repo_name fuel-main + %define name fuel-image %define version 6.0.0 %define release 1 @@ -7,7 +10,7 @@ Name: %{name} Version: %{version} Release: %{release} URL: http://mirantis.com -Source0: %{name}-%{version}.tar.gz +Source0: %{repo_name}-%{version}.tar.gz License: Apache Group: Development/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot @@ -31,19 +34,15 @@ Requires: xz Fuel-image package %prep -rm -f build_ubuntu_image.py -rm -f create_separate_images.sh -tar -xzf %{SOURCE0} - +%setup -cq -n %{name}-%{version} %build %install -cd $RPM_BUILD_DIR -install -p -D -m 755 build_ubuntu_image.py %{buildroot}%{_bindir}/build_ubuntu_image.py -install -p -D -m 755 create_separate_images.sh %{buildroot}%{_bindir}/create_separate_images.sh +install -p -D -m 755 %{_builddir}/%{name}-%{version}/image/ubuntu/build_on_masternode/build_ubuntu_image.py %{buildroot}%{_bindir}/build_ubuntu_image.py +install -p -D -m 755 %{_builddir}/%{name}-%{version}/image/ubuntu/build_on_masternode/create_separate_images.sh %{buildroot}%{_bindir}/create_separate_images.sh %post -ln -s build_ubuntu_image.py %{_bindir}/fuel-image +ln -s %{_bindir}/build_ubuntu_image.py %{_bindir}/fuel-image %postun rm -f %{_bindir}/fuel-image