5 echo "$(basename $0): error: $1" > /dev
/stderr
;
8 [ -f "Makefile" ] ||
{ err_mess
"makefile not found"; exit 1; }
9 [ -f "configure.ac" ] ||
{ err_mess
"configure.ac not found"; exit 1; }
12 if [ "$1" == "--fake" ]
15 DEBFULLNAME
="Me Myself"
16 DEBEMAIL
="me@myself.org"
28 default
) err_mess
"unknown distro: $DISTRO";
33 PBUILDER_RC_FILE
="${HOME}/.pbuilderrc_${DISTRO}"
35 [ -f "${PBUILDER_RC_FILE}" ] ||
{ err_mess
"pbuilder config file not found"; exit 1; }
37 NAME
=$
(head -n 50 configure.ac |
grep "m4_define(\[plugin_name\], \[.*\])" |
sed "s/m4_define(\[plugin_name\], \[\(.*\)\])/\1/")
38 MAJOR_VER
=$
(head -n 50 configure.ac |
grep "m4_define(\[plugin_major_version\], \[.*\])" |
sed "s/m4_define(\[plugin_major_version\], \[\(.*\)\])/\1/")
39 MINOR_VER
=$
(head -n 50 configure.ac |
grep "m4_define(\[plugin_minor_version\], \[.*\])" |
sed "s/m4_define(\[plugin_minor_version\], \[\(.*\)\])/\1/")
40 MICRO_VER
=$
(head -n 50 configure.ac |
grep "m4_define(\[plugin_micro_version\], \[.*\])" |
sed "s/m4_define(\[plugin_micro_version\], \[\(.*\)\])/\1/")
42 VER
="${MAJOR_VER}.${MINOR_VER}.${MICRO_VER}"
44 DEBIAN_IN_DIR
="debian.in"
45 REL_SUB_VER_FILE
="${DEBIAN_IN_DIR}/${DISTRO}/release_subv"
47 [ -f "$REL_SUB_VER_FILE" ] ||
{ err_mess
"release_subv not found"; exit 1; }
49 REL_SUB_VER
="$(cat "${REL_SUB_VER_FILE}")";
50 echo "$REL_SUB_VER" |
grep -q "[[:digit:]]\+" ||
{ err_mess
"invalid release subversion: $REL_SUB_VER"; exit 1;}
52 NAME_HYPHEN
="${NAME}-${VER}"
53 NAME_UNDERSC
="${NAME}_${VER}"
54 TGZ_NAME
="${NAME_HYPHEN}.tar.gz"
55 ORIG_NAME
="${NAME_UNDERSC}.orig.tar.gz"
59 DEB_NAME
="${NAME_UNDERSC}-0ubuntu$1"
60 DSC_NAME
="${DEB_NAME}.dsc"
61 DIFF_NAME
="${DEB_NAME}.diff.gz"
62 PKG_NAME
="${DEB_NAME}_i386.deb"
63 CHANGES_NAME
="${DEB_NAME}_i386.changes"
66 RESULTS_DIR
="/var/cache/pbuilder_${DISTRO}/result"
67 BUILD_DIR
="${HOME}/deb_builds/${DISTRO}/${NAME_HYPHEN}"
68 DEB_DIR_TEMPL
="${DEBIAN_IN_DIR}/${DISTRO}/debian.template"
69 TMP_DIR
="${NAME_HYPHEN}-tmp-$$"
70 TMP_FILE_1
="changelog1.$$.tmp"
71 TMP_FILE_2
="changelog2.$$.tmp"
73 if [ $REL_SUB_VER -gt 0 ]
75 [ -d "${BUILD_DIR}" ] || { err_mess "directory not found: ${BUILD_DIR}"; exit 1; }
76 pushd "${BUILD_DIR}" > /dev/null || exit 1
77 BUILD_DIR="$
(pwd -P)" || exit 1
78 [ -f "${ORIG_NAME}" ] || { err_mess "file not found: ${ORIG_NAME}"; exit 1; }
79 for ver
in $
(seq $REL_SUB_VER)
82 [ -f "${DIFF_NAME}" ] || { err_mess "file not found: ${DIFF_NAME}"; exit 1; }
84 popd > /dev/null || exit 1
86 mkdir -p "${BUILD_DIR}" || exit 1
87 pushd "${BUILD_DIR}" > /dev/null || exit 1
88 BUILD_DIR="$
(pwd -P)" || exit 1
89 popd > /dev/null || exit 1
93 mkdir "${TMP_DIR}" || exit 1
95 intltool-update-all || exit 1
99 mv "${TGZ_NAME}" "${TMP_DIR}" || exit 1
101 cd "${TMP_DIR}" || exit 1
103 if [ $REL_SUB_VER -eq 0 ]
105 cp "${TGZ_NAME}" "${ORIG_NAME}" || exit 1;
108 tar -vxzf "${TGZ_NAME}" || exit 1
110 if [ $REL_SUB_VER -gt 0 ]
112 cp "${BUILD_DIR}/${ORIG_NAME}" . || exit 1
113 for ver in $(seq $REL_SUB_VER)
116 cp "${BUILD_DIR}/${DIFF_NAME}" . || exit 1;
121 cd "${NAME_HYPHEN}" || exit 1
123 cp -r "..
/..
/${DEB_DIR_TEMPL}" "debian
" || exit 1
125 if [ $REL_SUB_VER -gt 0 ]
127 [ -f "debian
/changelog
" ] || { err_mess "changelog not found
"; exit 1; }
128 head -n 1 "debian
/changelog
" | grep -q "^
${NAME} ($(echo ${VER} | sed "s/\./\\\./g")-0ubuntu${REL_SUB_VER}) ${DISTRO}; urgency
=.\
+$
"
129 [ $? -eq 0 ] || { err_mess "wrong changelog
"; exit 1; }
131 [ -f "debian
/changelog
" ] && { err_mess "changelog found before first release
, aborting
"; exit 1; }
132 touch "debian
/changelog
" || exit 1;
135 REL_SUB_VER=$[ $REL_SUB_VER + 1 ] || { err_mess "strange error
"; exit 1; }
137 cat > ${TMP_FILE_1} << EOF
138 ${NAME} (${VER}-0ubuntu${REL_SUB_VER}) ${DISTRO}; urgency=low
140 * < description here >
142 -- ${DEBFULLNAME} <${DEBEMAIL}> $(date -R)
146 [ $? -eq 0 ] || { err_mess "what?
"; exit 1; }
148 cat "debian
/changelog
" >> "${TMP_FILE_1}" || exit 1
150 cp "${TMP_FILE_1}" "${TMP_FILE_2}" || exit 1
152 vim +/"< description here
>" "${TMP_FILE_1}" || exit 1
156 diff -q "${TMP_FILE_1}" "${TMP_FILE_2}" > /dev/null
158 0) echo "no changelog description
, aborting
";
160 rm -fr "${TMP_DIR}" || exit 1;
168 cp "${TMP_FILE_1}" "debian
/changelog
"
170 rm -f "${TMP_FILE_1}" "${TMP_FILE_2}" || exit 1
172 debuild -S -k"${DEBFULLNAME}" || exit 1
176 ubunames ${REL_SUB_VER}
178 sudo apt-get update || exit 1
180 sudo pbuilder --build \
182 --distribution "${DISTRO}" \
183 --configfile "${PBUILDER_RC_FILE}" \
184 --bindmounts "/var
/cache
/pbuilder_
${DISTRO}/result
" \
185 --othermirror "deb
file:/var
/cache
/pbuilder_
${DISTRO}/result .
/|deb-src
file:/var
/cache
/pbuilder_
${DISTRO}/result .
/" \
186 --hookdir "/var
/cache
/pbuilder_
${DISTRO}/hooks
" \
187 "${DSC_NAME}" || exit 1
191 pushd "${RESULTS_DIR}" > /dev/null || exit 1
195 [ ${REL_SUB_VER} -eq 1 ] && { cp "${ORIG_NAME}" "${BUILD_DIR}" || exit 1; }
196 cp "${DIFF_NAME}" "${CHANGES_NAME}" "${DSC_NAME}" "${PKG_NAME}" "${BUILD_DIR}" || exit 1
198 [ ${REL_SUB_VER} -eq 1 ] && { [ -f "${ORIG_NAME}" ] || { err_mess "orginal tar.gz not found"; exit 1; } }
199 [ -f "${CHANGES_NAME}" -a -f "${DSC_NAME}" -a -f "${PKG_NAME}" ] || { err_mess "built files not found"; exit 1; }
202 popd > /dev
/null ||
exit 1
206 cp -f "${TMP_DIR}/${NAME_HYPHEN}/debian/changelog" "${DEB_DIR_TEMPL}" ||
exit 1
208 echo "${REL_SUB_VER}" > "${REL_SUB_VER_FILE}" ||
exit 1
211 rm -fr "${TMP_DIR}" ||
exit 1