5 Usage: id-pbuild.sh [OPTIONS]
16 while test $# -gt 0; do
18 -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
40 if test "$do_help" = "yes"; then
43 if test ! -x /usr/bin/lxc-attach; then
44 echo "No lxc-attach. Probably not running on mochi!!"
47 if test -f IDMETA; then
53 UPLOAD_HOST=${UPLOAD_HOST:=ftp.indexdata.dk}
54 UPLOAD_PATH=${UPLOAD_PATH:=/home/ftp/pub}
56 if test "$DEBIAN_DIST_A" -o "$UBUNTU_DIST_A" -o "$CENTOS_DIST_A"; then
57 DEBIAN_DIST=$DEBIAN_DIST_A
58 UBUNTU_DIST=$UBUNTU_DIST_A
59 CENTOS_DIST=$CENTOS_DIST_A
61 ID_DEB_BUILD=~/proj/git-tools/id-deb-build
62 if test "$DEBIAN_DIST" -o "$UBUNTU_DIST"; then
64 DNAME=`awk '/Source:/ {print $2}' debian/control`
65 if test "$NAME" -a "$NAME" != "$DNAME"; then
66 echo "NAME in IDMETA ($NAME) does not match debian/control ($DNAME)"
73 if test "$CENTOS_DIST"; then
75 RNAME=`awk '/Name:/ {print $2}' *.spec`
76 if test "$NAME" -a "$NAME" != "$RNAME"; then
77 echo "NAME in IDMETA ($NAME) does not match RPM spec NAME ($RNAME)"
81 if test ! -d ~/rpmbuild; then
82 mkdir -p ~/pmbuild/BUILD
83 mkdir -p ~/rpmbuild/RPMS/noarch
84 mkdir -p ~/rpmbuild/RPMS/x86_64
85 mkdir -p ~/rpmbuild/SOURCES
86 mkdir -p ~/rpmbuild/SPECS
87 mkdir -p ~/rpmbuild/SRPMS
92 TAR=${PRODUCT}-${VERSION}.tar.gz
95 UPLOAD_URI=${UPLOAD_HOST}:${UPLOAD_PATH}/${PRODUCT}
96 echo "Uploading to ${UPLOAD_URI}"
98 pkg_names=`rpm -q --specfile ${PRODUCT}.spec --queryformat "%{NAME}-%{VERSION}-%{RELEASE}\n"`
99 for dist in ${CENTOS_DIST}; do
103 r=id-epel-5-x86_64 ;;
106 r=id-epel-6-x86_64 ;;
109 r=id-epel-7-x86_64 ;;
115 for pkg in ${pkg_names}; do
116 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/${ftpdir}/SRPMS"
117 if test -f ~/rpmbuild/SRPMS/${pkg}.src.rpm; then
118 scp ~/rpmbuild/SRPMS/${pkg}.src.rpm ${UPLOAD_URI}/redhat/${ftpdir}/SRPMS
120 for arch in x86_64 noarch; do
121 if test -f ~/rpmbuild/$r/${pkg}.${arch}.rpm; then
122 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/${ftpdir}/RPMS/${arch}"
123 scp ~/rpmbuild/$r/${pkg}.${arch}.rpm ${UPLOAD_URI}/redhat/${ftpdir}/RPMS/${arch}
128 if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-yum-archive.sh" >~/rpmbuild/yum-update.log 2>&1; then
129 echo "update-yum-archive.sh failed. Inspect ~/rpmbuild/yum-update.log"
136 if test -n "${UBUNTU_DIST}"; then
137 for dist in ${UBUNTU_DIST}; do
138 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/ubuntu/${dist}"
139 if ! scp ${dist}-*/* ${UPLOAD_URI}/ubuntu/${dist}; then
140 echo "Upload failed for $dist"
145 if test -n "${DEBIAN_DIST}"; then
146 for dist in ${DEBIAN_DIST}; do
147 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/debian/${dist}"
148 if ! scp ${dist}-*/* ${UPLOAD_URI}/debian/${dist}; then
149 echo "Upload failed for $dist"
154 if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-archive.sh --ubuntu=\"${UBUNTU_DIST}\" --debian=\"${DEBIAN_DIST}\""; then
155 echo "update-archive.sh failed"
159 echo "Upload successful - we hope"
165 cp ${TAR} ~/rpmbuild/SOURCES
166 cat ${SPEC}|sed "s/%define idmetaversion.*/%define idmetaversion ${VERSION}/" >~/rpmbuild/SPECS/${SPEC}
167 sudo lxc-attach -n mockbuild -- rpmbuild -bs ~/rpmbuild/SPECS/${SPEC}
168 for dist in ${CENTOS_DIST}; do
171 r=id-epel-5-x86_64 ;;
173 r=id-epel-6-x86_64 ;;
175 r=id-epel-7-x86_64 ;;
180 mkdir -p ~/rpmbuild/$r
181 if sudo lxc-attach -n mockbuild -- mock -q --resultdir=~/rpmbuild/$r -r $r ~/rpmbuild/SRPMS/${PRODUCT}-${VERSION}*src.rpm; then
184 echo " failed. Inspect ~/rpmbuild/$r/build.log"
191 MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh
192 if test ! -x $MKDEBSRC; then
193 echo "$MKDEBSRC not found"
196 if ! ${ID_DEB_BUILD}/id-mk-deb-changelog.sh; then
197 echo "id-mk-deb-changelog.sh failed"
199 if ! ${MKDEBSRC}; then
200 echo "id-mk-deb-src.sh failed"
204 if test -f "$f"; then
208 if test -z "$DSC"; then
209 echo "${DSC}does not exist"
212 if grep "Architecture: all" $DSC >/dev/null; then
215 USE_ARCHS="i386 amd64"
217 for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
218 for arch in ${USE_ARCHS}; do
219 echo -n "dist=$dist arch=$arch"
221 echo "DIST=$dist" > ~/.pbuilderrc
222 echo "ARCH=$arch" >> ~/.pbuilderrc
223 cat ${ID_DEB_BUILD}/pbuilderrc >> ~/.pbuilderrc
225 if ! sudo lxc-attach -n pbuilder -- pbuilder --update --override-config >update-${dist}-${arch}.log 2>&1; then
227 if ! sudo lxc-attach -n pbuilder -- pbuilder --create >create-${dist}-${arch}.log 2>&1; then
228 echo " failed. Inspect deb-src/create-${dist}-${arch}.log"
232 if ! sudo lxc-attach -n pbuilder -- pbuilder --update --override-config >update-${dist}-${arch}.log 2>&1; then
233 echo " failed. Inspect deb-src/update-${dist}-${arch}.log"
238 if sudo lxc-attach -n pbuilder -- pbuilder --build $DSC >build-${dist}-${arch}.log 2>&1; then
241 echo " failed. Inspect deb-src/build-${dist}-${arch}.log"