5 Usage: id-pbuild.sh [OPTIONS]
17 ID_DEB_BUILD=`cd $D0; pwd`
23 while test $# -gt 0; do
25 -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
53 if test "$do_help" = "yes"; then
56 if test ! -x /usr/bin/lxc-attach; then
57 echo "No lxc-attach. Probably not running on mochi!!"
60 if test -f IDMETA; then
66 UPLOAD_HOST=${UPLOAD_HOST:=ftp.indexdata.dk}
67 UPLOAD_PATH=${UPLOAD_PATH:=/home/ftp/pub}
69 if test "$DEBIAN_DIST_A" -o "$UBUNTU_DIST_A" -o "$CENTOS_DIST_A"; then
70 DEBIAN_DIST=$DEBIAN_DIST_A
71 UBUNTU_DIST=$UBUNTU_DIST_A
72 CENTOS_DIST=$CENTOS_DIST_A
74 if test "$DEBIAN_DIST" -o "$UBUNTU_DIST"; then
76 DNAME=`awk '/Source:/ {print $2}' debian/control`
77 if test "$NAME" -a "$NAME" != "$DNAME"; then
78 echo "NAME in IDMETA ($NAME) does not match debian/control ($DNAME)"
85 if test "$CENTOS_DIST"; then
87 RNAME=`awk '/Name:/ {print $2}' *.spec`
88 if test "$NAME" -a "$NAME" != "$RNAME"; then
89 echo "NAME in IDMETA ($NAME) does not match RPM spec NAME ($RNAME)"
93 if test ! -d ~/rpmbuild; then
94 echo "Creating ~/rpmbuild"
95 mkdir -p ~/pmbuild/BUILD
96 mkdir -p ~/rpmbuild/RPMS/noarch
97 mkdir -p ~/rpmbuild/RPMS/x86_64
98 mkdir -p ~/rpmbuild/SOURCES
99 mkdir -p ~/rpmbuild/SPECS
100 mkdir -p ~/rpmbuild/SRPMS
102 if test ! -f ~/.rpmmacros; then
103 echo "Creating ~/.rpmmacros"
104 echo "%_topdir $HOME/rpmbuild" >~/.rpmmacros
105 echo "%_source_filedigest_algorithm 0" >>~/.rpmmacros
106 echo "%_binary_filedigest_algorithm 0" >>~/.rpmmacros
111 TAR=${PRODUCT}-${VERSION}.tar.gz
114 UPLOAD_URI=${UPLOAD_HOST}:${UPLOAD_PATH}/${PRODUCT}
115 echo "Uploading to ${UPLOAD_URI}"
117 pkg_names=`rpm -q --specfile ${PRODUCT}.spec --queryformat "%{NAME}-%{VERSION}-%{RELEASE}\n"`
118 for dist in ${CENTOS_DIST}; do
122 r=id-epel-5-x86_64 ;;
125 r=id-epel-6-x86_64 ;;
128 r=id-epel-7-x86_64 ;;
134 for pkg in ${pkg_names}; do
135 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/${ftpdir}/SRPMS"
136 if test -f ~/rpmbuild/SRPMS/${pkg}.src.rpm; then
137 scp ~/rpmbuild/SRPMS/${pkg}.src.rpm ${UPLOAD_URI}/redhat/${ftpdir}/SRPMS
139 for arch in x86_64 noarch; do
140 if test -f ~/rpmbuild/$r/${pkg}.${arch}.rpm; then
141 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/${ftpdir}/RPMS/${arch}"
142 scp ~/rpmbuild/$r/${pkg}.${arch}.rpm ${UPLOAD_URI}/redhat/${ftpdir}/RPMS/${arch}
147 if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-yum-archive.sh" >~/rpmbuild/yum-update.log 2>&1; then
148 echo "update-yum-archive.sh failed. Inspect ~/rpmbuild/yum-update.log"
155 if test -n "${UBUNTU_DIST}"; then
156 for dist in ${UBUNTU_DIST}; do
157 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/ubuntu/${dist}"
158 if ! scp ${dist}-*/* ${UPLOAD_URI}/ubuntu/${dist}; then
159 echo "Upload failed for $dist"
164 if test -n "${DEBIAN_DIST}"; then
165 for dist in ${DEBIAN_DIST}; do
166 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/debian/${dist}"
167 if ! scp ${dist}-*/* ${UPLOAD_URI}/debian/${dist}; then
168 echo "Upload failed for $dist"
173 if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-archive.sh --ubuntu=\"${UBUNTU_DIST}\" --debian=\"${DEBIAN_DIST}\""; then
174 echo "update-archive.sh failed"
178 echo "Upload successful - we hope"
184 cp ${TAR} ~/rpmbuild/SOURCES
185 cat ${SPEC}|sed "s/%define idmetaversion.*/%define idmetaversion ${VERSION}/" >~/rpmbuild/SPECS/${SPEC}
186 sudo lxc-attach -n mockbuild -- rpmbuild -bs ~/rpmbuild/SPECS/${SPEC}
187 for dist in ${CENTOS_DIST}; do
190 r=id-epel-5-x86_64 ;;
192 r=id-epel-6-x86_64 ;;
194 r=id-epel-7-x86_64 ;;
199 mkdir -p ~/rpmbuild/$r
200 if sudo lxc-attach -n mockbuild -- mock -q --resultdir=~/rpmbuild/$r -r $r ~/rpmbuild/SRPMS/${PRODUCT}-${VERSION}*src.rpm; then
203 echo " failed. Inspect ~/rpmbuild/$r/build.log"
210 MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh
211 if test ! -x $MKDEBSRC; then
212 echo "$MKDEBSRC not found"
215 if ! ${ID_DEB_BUILD}/id-mk-deb-changelog.sh; then
216 echo "id-mk-deb-changelog.sh failed"
218 if ! ${MKDEBSRC}; then
219 echo "id-mk-deb-src.sh failed"
223 if test -f "$f"; then
227 if test -z "$DSC"; then
228 echo "${DSC}does not exist"
231 if grep "Architecture: all" $DSC >/dev/null; then
238 cat ${ID_DEB_BUILD}/pbuilderrc > ~/.pbuilderrc
239 for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
240 for arch in ${USE_ARCHS}; do
241 ${ID_DEB_BUILD}/id-pbuild-root.sh --update=$update --dsc=$DSC --arch=$arch --dist=$dist &
243 if test $i -ge $concurrency; then
246 if ! test -f ${dist}-${arch}/*.dsc; then
247 echo "FAILED: No .dsc file for ${dist}-${arch}"
254 for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
255 for arch in ${USE_ARCHS}; do
256 if ! test -f ${dist}-${arch}/*.dsc; then
257 echo "FAILED: No .dsc file for ${dist}-${arch}"