version 1.1, 2025/04/06 03:38:05
|
version 1.3, 2025/04/07 00:45:52
|
Line 25
|
Line 25
|
# along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
# along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
# |
# |
# $Log$ |
# $Log$ |
|
# Revision 1.3 2025/04/07 00:45:52 snw |
|
# Enhance fmd-pkg-dpkg to auto-generate the debian/changelog file from the FreeM ChangeLog |
|
# |
|
# Revision 1.2 2025/04/06 05:01:21 snw |
|
# Initial working implementation of fmd package for dpkg |
|
# |
# Revision 1.1 2025/04/06 03:38:05 snw |
# Revision 1.1 2025/04/06 03:38:05 snw |
# Prepare for adding packaging functionality to fmd |
# Prepare for adding packaging functionality to fmd |
# |
# |
Line 36
|
Line 42
|
PGM=$(basename $0) |
PGM=$(basename $0) |
SCRIPT_DIR=$(dirname "$0") |
SCRIPT_DIR=$(dirname "$0") |
|
|
if [[ $# != 2 ]] |
source "${SCRIPT_DIR}/_fmd_common.bash" |
|
|
|
if [[ $# != 1 ]] |
then |
then |
echo "fmd-pkg-dpkg: must run from fmd package" |
echo "${PGM}: must run from fmd package" |
exit 1 |
exit 1 |
fi |
fi |
|
|
FMD=$1 |
FMD=$1 |
|
|
FREEM_VERSION="${_fmd_freem_version}" |
FREEM_VERSION="${_fmd_freem_version}" |
FREEM_VERSION_MOD=$(echo "${FREEM_VERSION}" | sed 's/-/./g') |
FREEM_VERSION_MOD=$(echo "${FREEM_VERSION}" | sed 's/-/./g') |
FDPKG_VERSION=$2 |
export DEBEMAIL="${_fmd_email}" |
|
export DEBFULLNAME="${_fmd_fullname}" |
|
|
|
echo -n "${PGM}: getting debian package release for ${_fmd_freem_version}... " |
|
FDPKG_VERSION=$(_fmd_next_dpkg) |
|
echo "[${FDPKG_VERSION}]" |
|
echo "${PGM}: package version is ${FREEM_VERSION}-${FDPKG_VERSION}" |
|
|
TMPDIR="/tmp/fmd-pkg-dpkg" |
TMPDIR="/tmp/fmd-pkg-dpkg" |
rm -rf "${TMPDIR}" |
rm -rf "${TMPDIR}" |
|
mkdir -p "${TMPDIR}" |
|
|
|
LOGFILE="${TMPDIR}/pkgbuild.log" |
|
echo "${PGM}: logging to ${LOGFILE}" |
INFILE="freem-${FREEM_VERSION}.tar.gz" |
INFILE="freem-${FREEM_VERSION}.tar.gz" |
OUTFILE="${TMPDIR}/freem_${FREEM_VERSION_MOD}.orig.tar.gz" |
OUTFILE="${TMPDIR}/freem_${FREEM_VERSION_MOD}.orig.tar.gz" |
TARDIR="${TMPDIR}/freem-${FREEM_VERSION_MOD}" |
TARDIR="${TMPDIR}/freem-${FREEM_VERSION_MOD}" |
|
|
|
if [[ -f "${INFILE}" ]] |
|
then |
|
echo "${PGM}: removing ${INFILE}" |
|
rm -f "${INFILE}" |
|
fi |
|
|
|
echo -n "${PGM}: running 'make dist' to prepare source tarball..." |
|
make dist &>> "${LOGFILE}" |
|
if [[ $? != 0 ]] |
|
then |
|
echo "[FAIL]" |
|
exit 1 |
|
else |
|
echo "[OK]" |
|
fi |
|
|
|
echo "${PGM}: moving ${INFILE} to ${OUTFILE}..." |
|
mv "${INFILE}" "${OUTFILE}" |
|
|
echo -n "${PGM}: extracting ${OUTFILE} to ${TARDIR}..." |
echo "${PGM}: extracting ${OUTFILE} to ${TARDIR}..." |
tar zxf "${OUTFILE}" -C "${TMPDIR}" |
tar zxf "${OUTFILE}" -C "${TMPDIR}" |
if [[ "${FREEM_VERSION}" != "${FREEM_VERSION_MOD}" ]] |
if [[ "${FREEM_VERSION}" != "${FREEM_VERSION_MOD}" ]] |
then |
then |
mv "${TMPDIR}/freem-${FREEM_VERSION}" "${TMPDIR}/freem-${FREEM_VERSION_MOD}" |
mv "${TMPDIR}/freem-${FREEM_VERSION}" "${TMPDIR}/freem-${FREEM_VERSION_MOD}" |
fi |
fi |
|
|
|
echo "${PGM}: generating Debian changelog..." |
|
TMP_CHLOG=$(mktemp) |
|
${FMD} changelog --minimal > "${TMP_CHLOG}" |
|
|
|
pushd scripts &> /dev/null |
|
rm debian/changelog |
|
dch --create -v "${FREEM_VERSION_MOD}-${FDPKG_VERSION}" -u low --package freem --empty &>> "${LOGFILE}" |
|
|
|
while read LINE |
|
do |
|
dch --append "${LINE}" &>> "${LOGFILE}" |
|
done < "${TMP_CHLOG}" |
|
|
|
rm -f "${TMP_CHLOG}" |
|
|
|
dch --release "Release the package" &>> "${LOGFILE}" |
|
|
|
popd &> /dev/null |
|
|
|
echo -n "${PGM}: copying Debian packaging control info to ${TARDIR}... " |
|
cp -r scripts/debian "${TARDIR}/" |
if [[ $? == 0 ]] |
if [[ $? == 0 ]] |
then |
then |
echo "[OK]" |
echo "[OK]" |
Line 70 else
|
Line 126 else
|
exit 1 |
exit 1 |
fi |
fi |
|
|
echo -n "${PGM}: copying Debian packaging control info to ${TARDIR}..." |
sed -i "s/FREEM_VERSION/${FREEM_VERSION}-${FDPKG_VERSION}/g" "${TARDIR}/debian/control" |
cp -r debian "${TARDIR}/" |
|
|
echo -n "${PGM}: building the packages (this may take awhile)..." |
|
cd "${TARDIR}" |
|
export DEB_BUILD_MAINT_OPTIONS=hardening=-fortify,-format,-stackprotector,-stackprotectorstrong |
|
debuild -us -uc &>> "${LOGFILE}" |
if [[ $? == 0 ]] |
if [[ $? == 0 ]] |
then |
then |
echo "[OK]" |
echo "[OK]" |
Line 80 else
|
Line 140 else
|
exit 1 |
exit 1 |
fi |
fi |
|
|
sed -i "s/FREEM_VERSION/${FREEM_VERSION_MOD}-${FDPKG_VERSION}/g" "${TARDIR}/debian/changelog" |
cd - &> /dev/null |
sed -i "s/FREEM_VERSION/${FREEM_VERSION}-${FDPKG_VERSION}/g" "${TARDIR}/debian/control" |
mv ${TMPDIR}/*.deb . |
|
|
echo "${PGM}: building the package..." |
DPKG_BUILT=$(ls -1 *.deb) |
cd "${TARDIR}" |
|
export DEB_BUILD_MAINT_OPTIONS=hardening=-fortify,-format,-stackprotector,-stackprotectorstrong |
BLDLST="" |
debuild -us -uc |
for PKGFILE in ${DPKG_BUILT} |
|
do |
|
if [[ "${BLDLST}" == "" ]] |
|
then |
|
BLDLST="${PKGFILE}" |
|
else |
|
BLDLST="${BLDLST} ${PKGFILE}" |
|
fi |
|
done |
|
|
echo "${PGM}: the package is in ${TMPDIR}" |
echo "${PGM}: built ${BLDLST}" |
|
|
rm -f ${TMPDIR}/*dbgsym* |
|
scp ${TMPDIR}/*.deb "${FDSSH}://var/www/freem.coherent-logic.com/downloads/binaries/debian/" |
|