5 Usage: id-pbuild.sh [OPTIONS]
15 ID_DEB_BUILD=`cd $D0; pwd`
19 while test $# -gt 0; do
21 -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
43 if test "$do_help" = "yes"; then
46 if test ! -x /usr/bin/lxc-attach; then
47 echo "No lxc-attach. Probably not running on mochi!!"
50 if test -f IDMETA; then
56 UPLOAD_HOST=${UPLOAD_HOST:=ftp.indexdata.dk}
57 UPLOAD_PATH=${UPLOAD_PATH:=/home/ftp/pub}
59 if test "$DEBIAN_DIST_A" -o "$UBUNTU_DIST_A" -o "$CENTOS_DIST_A"; then
60 DEBIAN_DIST=$DEBIAN_DIST_A
61 UBUNTU_DIST=$UBUNTU_DIST_A
62 CENTOS_DIST=$CENTOS_DIST_A
64 if test "$DEBIAN_DIST" -o "$UBUNTU_DIST"; then
66 DNAME=`awk '/Source:/ {print $2}' debian/control`
67 if test "$NAME" -a "$NAME" != "$DNAME"; then
68 echo "NAME in IDMETA ($NAME) does not match debian/control ($DNAME)"
75 if test "$CENTOS_DIST"; then
77 RNAME=`awk '/Name:/ {print $2}' *.spec`
78 if test "$NAME" -a "$NAME" != "$RNAME"; then
79 echo "NAME in IDMETA ($NAME) does not match RPM spec NAME ($RNAME)"
83 if test ! -d ~/rpmbuild; then
84 mkdir -p ~/pmbuild/BUILD
85 mkdir -p ~/rpmbuild/RPMS/noarch
86 mkdir -p ~/rpmbuild/RPMS/x86_64
87 mkdir -p ~/rpmbuild/SOURCES
88 mkdir -p ~/rpmbuild/SPECS
89 mkdir -p ~/rpmbuild/SRPMS
94 TAR=${PRODUCT}-${VERSION}.tar.gz
97 UPLOAD_URI=${UPLOAD_HOST}:${UPLOAD_PATH}/${PRODUCT}
98 echo "Uploading to ${UPLOAD_URI}"
100 pkg_names=`rpm -q --specfile ${PRODUCT}.spec --queryformat "%{NAME}-%{VERSION}-%{RELEASE}\n"`
101 for dist in ${CENTOS_DIST}; do
105 r=id-epel-5-x86_64 ;;
108 r=id-epel-6-x86_64 ;;
111 r=id-epel-7-x86_64 ;;
117 for pkg in ${pkg_names}; do
118 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/${ftpdir}/SRPMS"
119 if test -f ~/rpmbuild/SRPMS/${pkg}.src.rpm; then
120 scp ~/rpmbuild/SRPMS/${pkg}.src.rpm ${UPLOAD_URI}/redhat/${ftpdir}/SRPMS
122 for arch in x86_64 noarch; do
123 if test -f ~/rpmbuild/$r/${pkg}.${arch}.rpm; then
124 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/${ftpdir}/RPMS/${arch}"
125 scp ~/rpmbuild/$r/${pkg}.${arch}.rpm ${UPLOAD_URI}/redhat/${ftpdir}/RPMS/${arch}
130 if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-yum-archive.sh" >~/rpmbuild/yum-update.log 2>&1; then
131 echo "update-yum-archive.sh failed. Inspect ~/rpmbuild/yum-update.log"
138 if test -n "${UBUNTU_DIST}"; then
139 for dist in ${UBUNTU_DIST}; do
140 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/ubuntu/${dist}"
141 if ! scp ${dist}-*/* ${UPLOAD_URI}/ubuntu/${dist}; then
142 echo "Upload failed for $dist"
147 if test -n "${DEBIAN_DIST}"; then
148 for dist in ${DEBIAN_DIST}; do
149 ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/debian/${dist}"
150 if ! scp ${dist}-*/* ${UPLOAD_URI}/debian/${dist}; then
151 echo "Upload failed for $dist"
156 if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-archive.sh --ubuntu=\"${UBUNTU_DIST}\" --debian=\"${DEBIAN_DIST}\""; then
157 echo "update-archive.sh failed"
161 echo "Upload successful - we hope"
167 cp ${TAR} ~/rpmbuild/SOURCES
168 cat ${SPEC}|sed "s/%define idmetaversion.*/%define idmetaversion ${VERSION}/" >~/rpmbuild/SPECS/${SPEC}
169 sudo lxc-attach -n mockbuild -- rpmbuild -bs ~/rpmbuild/SPECS/${SPEC}
170 for dist in ${CENTOS_DIST}; do
173 r=id-epel-5-x86_64 ;;
175 r=id-epel-6-x86_64 ;;
177 r=id-epel-7-x86_64 ;;
182 mkdir -p ~/rpmbuild/$r
183 if sudo lxc-attach -n mockbuild -- mock -q --resultdir=~/rpmbuild/$r -r $r ~/rpmbuild/SRPMS/${PRODUCT}-${VERSION}*src.rpm; then
186 echo " failed. Inspect ~/rpmbuild/$r/build.log"
193 MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh
194 if test ! -x $MKDEBSRC; then
195 echo "$MKDEBSRC not found"
198 if ! ${ID_DEB_BUILD}/id-mk-deb-changelog.sh; then
199 echo "id-mk-deb-changelog.sh failed"
201 if ! ${MKDEBSRC}; then
202 echo "id-mk-deb-src.sh failed"
206 if test -f "$f"; then
210 if test -z "$DSC"; then
211 echo "${DSC}does not exist"
214 if grep "Architecture: all" $DSC >/dev/null; then
217 USE_ARCHS="i386 amd64"
219 for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
220 for arch in ${USE_ARCHS}; do
221 echo -n "dist=$dist arch=$arch"
223 echo "DIST=$dist" > ~/.pbuilderrc
224 echo "ARCH=$arch" >> ~/.pbuilderrc
225 cat ${ID_DEB_BUILD}/pbuilderrc >> ~/.pbuilderrc
227 if ! sudo lxc-attach -n pbuilder -- pbuilder --update --override-config >update-${dist}-${arch}.log 2>&1; then
229 if ! sudo lxc-attach -n pbuilder -- pbuilder --create >create-${dist}-${arch}.log 2>&1; then
230 echo " failed. Inspect deb-src/create-${dist}-${arch}.log"
234 if ! sudo lxc-attach -n pbuilder -- pbuilder --update --override-config >update-${dist}-${arch}.log 2>&1; then
235 echo " failed. Inspect deb-src/update-${dist}-${arch}.log"
240 if sudo lxc-attach -n pbuilder -- pbuilder --build $DSC >build-${dist}-${arch}.log 2>&1; then
243 echo " failed. Inspect deb-src/build-${dist}-${arch}.log"