b715f0b397
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
56 lines
1.7 KiB
Bash
Executable File
56 lines
1.7 KiB
Bash
Executable File
#!/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
|