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 BASE_NAME
=$
(head -n 50 configure.ac |
grep "m4_define(\[library_base_name\], \[.*\])" |
sed "s/m4_define(\[library_base_name\], \[\(.*\)\])/\1/")
38 API_VERSION
=$
(head -n 50 configure.ac |
grep "m4_define(\[api_version\], \[.*\])" |
sed "s/m4_define(\[api_version\], \[\(.*\)\])/\1/")
40 MAJOR_VER
=$
(head -n 50 configure.ac |
grep "m4_define(\[package_major_version\], \[.*\])" |
sed "s/m4_define(\[package_major_version\], \[\(.*\)\])/\1/")
41 MINOR_VER
=$
(head -n 50 configure.ac |
grep "m4_define(\[package_minor_version\], \[.*\])" |
sed "s/m4_define(\[package_minor_version\], \[\(.*\)\])/\1/")
42 MICRO_VER
=$
(head -n 50 configure.ac |
grep "m4_define(\[package_micro_version\], \[.*\])" |
sed "s/m4_define(\[package_micro_version\], \[\(.*\)\])/\1/")
44 NAME
="lib${BASE_NAME}"
45 NAME1
="lib${BASE_NAME}-${API_VERSION}-${MAJOR_VER}"
46 NAMEDEV1
="${NAME1}-dev"
47 NAMEDBG1
="${NAME1}-dbg"
49 VER
="${MAJOR_VER}.${MINOR_VER}.${MICRO_VER}"
51 DEBIAN_IN_DIR
="debian.in"
52 REL_SUB_VER_FILE
="${DEBIAN_IN_DIR}/${DISTRO}/release_subv"
54 [ -f "$REL_SUB_VER_FILE" ] ||
{ err_mess
"release_subv not found"; exit 1; }
56 REL_SUB_VER
="$(cat "${REL_SUB_VER_FILE}")";
57 echo "$REL_SUB_VER" |
grep -q "[[:digit:]]\+" ||
{ err_mess
"invalid release subversion: $REL_SUB_VER"; exit 1;}
59 NAME_HYPHEN
="${NAME}-${API_VERSION}-${VER}"
60 NAME_UNDERSC
="${NAME}_${VER}"
61 NAME_UNDERSC1
="${NAME1}_${VER}"
62 NAMEDEV_UNDERSC1
="${NAMEDEV1}_${VER}"
63 NAMEDBG_UNDERSC1
="${NAMEDBG1}_${VER}"
64 TGZ_NAME
="${NAME_HYPHEN}.tar.gz"
65 ORIG_NAME
="${NAME_UNDERSC}.orig.tar.gz"
69 DEB_NAME
="${NAME_UNDERSC}-0ubuntu$1"
70 DEB_NAME1
="${NAME_UNDERSC1}-0ubuntu$1"
71 DEB_NAMEDEV1
="${NAMEDEV_UNDERSC1}-0ubuntu$1"
72 DEB_NAMEDBG1
="${NAMEDBG_UNDERSC1}-0ubuntu$1"
73 DSC_NAME
="${DEB_NAME}.dsc"
74 DIFF_NAME
="${DEB_NAME}.diff.gz"
75 CHANGES_NAME
="${DEB_NAME}_i386.changes"
76 PKG_NAME
="${DEB_NAME1}_i386.deb"
77 PKG_NAMEDEV
="${DEB_NAMEDEV1}_i386.deb"
78 PKG_NAMEDBG
="${DEB_NAMEDBG1}_i386.deb"
81 RESULTS_DIR
="/var/cache/pbuilder_${DISTRO}/result"
82 BUILD_DIR
="${HOME}/deb_builds/${DISTRO}/${NAME_HYPHEN}"
83 DEB_DIR_TEMPL
="${DEBIAN_IN_DIR}/${DISTRO}/debian.template"
84 TMP_DIR
="${NAME_HYPHEN}-tmp-$$"
85 TMP_FILE_1
="changelog1.$$.tmp"
86 TMP_FILE_2
="changelog2.$$.tmp"
88 if [ $REL_SUB_VER -gt 0 ]
90 [ -d "${BUILD_DIR}" ] || { err_mess "directory not found: ${BUILD_DIR}"; exit 1; }
91 pushd "${BUILD_DIR}" > /dev/null || exit 1
92 BUILD_DIR="$
(pwd -P)" || exit 1
93 [ -f "${ORIG_NAME}" ] || { err_mess "file not found: ${ORIG_NAME}"; exit 1; }
94 for ver
in $
(seq $REL_SUB_VER)
97 [ -f "${DIFF_NAME}" ] || { err_mess "file not found: ${DIFF_NAME}"; exit 1; }
99 popd > /dev/null || exit 1
101 mkdir -p "${BUILD_DIR}" || exit 1
102 pushd "${BUILD_DIR}" > /dev/null || exit 1
103 BUILD_DIR="$
(pwd -P)" || exit 1
104 popd > /dev/null || exit 1
108 mkdir "${TMP_DIR}" || exit 1
110 ## intltool-update-all || exit 1
114 mv "${TGZ_NAME}" "${TMP_DIR}" || exit 1
116 cd "${TMP_DIR}" || exit 1
118 if [ $REL_SUB_VER -eq 0 ]
120 cp "${TGZ_NAME}" "${ORIG_NAME}" || exit 1;
123 tar -vxzf "${TGZ_NAME}" || exit 1
125 if [ $REL_SUB_VER -gt 0 ]
127 cp "${BUILD_DIR}/${ORIG_NAME}" . || exit 1
128 for ver in $(seq $REL_SUB_VER)
131 cp "${BUILD_DIR}/${DIFF_NAME}" . || exit 1;
136 cd "${NAME_HYPHEN}" || exit 1
138 cp -r "..
/..
/${DEB_DIR_TEMPL}" "debian
" || exit 1
140 if [ $REL_SUB_VER -gt 0 ]
142 [ -f "debian
/changelog
" ] || { err_mess "changelog not found
"; exit 1; }
143 head -n 1 "debian
/changelog
" | grep -q "^
${NAME} ($(echo ${VER} | sed "s/\./\\\./g")-0ubuntu${REL_SUB_VER}) ${DISTRO}; urgency
=.\
+$
"
144 [ $? -eq 0 ] || { err_mess "wrong changelog
"; exit 1; }
146 [ -f "debian
/changelog
" ] && { err_mess "changelog found before first release
, aborting
"; exit 1; }
147 touch "debian
/changelog
" || exit 1;
150 REL_SUB_VER=$[ $REL_SUB_VER + 1 ] || { err_mess "strange error
"; exit 1; }
152 cat > ${TMP_FILE_1} << EOF
153 ${NAME} (${VER}-0ubuntu${REL_SUB_VER}) ${DISTRO}; urgency=low
155 * < description here >
157 -- ${DEBFULLNAME} <${DEBEMAIL}> $(date -R)
161 [ $? -eq 0 ] || { err_mess "what?
"; exit 1; }
163 cat "debian
/changelog
" >> "${TMP_FILE_1}" || exit 1
165 cp "${TMP_FILE_1}" "${TMP_FILE_2}" || exit 1
167 vim +/"< description here
>" "${TMP_FILE_1}" || exit 1
171 diff -q "${TMP_FILE_1}" "${TMP_FILE_2}" > /dev/null
173 0) echo "no changelog description
, aborting
";
175 rm -fr "${TMP_DIR}" || exit 1;
183 cp "${TMP_FILE_1}" "debian
/changelog
"
185 rm -f "${TMP_FILE_1}" "${TMP_FILE_2}" || exit 1
187 debuild -S -k"${DEBFULLNAME}" || exit 1
191 ubunames ${REL_SUB_VER}
193 sudo apt-get update --simulate || exit 1
195 sudo pbuilder --build \
196 --distribution "${DISTRO}" \
197 --configfile "${PBUILDER_RC_FILE}" \
198 "${DSC_NAME}" || exit 1
202 pushd "${RESULTS_DIR}" > /dev/null || exit 1
206 [ ${REL_SUB_VER} -eq 1 ] && { cp "${ORIG_NAME}" "${BUILD_DIR}" || exit 1; }
207 cp "${DIFF_NAME}" "${CHANGES_NAME}" "${DSC_NAME}" "${PKG_NAME}" "${PKG_NAMEDEV}" "${PKG_NAMEDBG}" "${BUILD_DIR}" || exit 1
209 [ ${REL_SUB_VER} -eq 1 ] && { [ -f "${ORIG_NAME}" ] || { err_mess "orginal tar.gz not found"; exit 1; } }
210 [ -f "${CHANGES_NAME}" -a -f "${DSC_NAME}" -a -f "${PKG_NAME}" -a -f "${PKG_NAMEDEV}" -a -f "${PKG_NAMEDBG}" ] || { err_mess "built files not found"; exit 1; }
213 popd > /dev
/null ||
exit 1
217 cp -f "${TMP_DIR}/${NAME_HYPHEN}/debian/changelog" "${DEB_DIR_TEMPL}" ||
exit 1
219 echo "${REL_SUB_VER}" > "${REL_SUB_VER_FILE}" ||
exit 1
222 rm -fr "${TMP_DIR}" ||
exit 1