--- freem/scripts/fmd-pkg-dpkg 2025/04/06 03:38:05 1.1 +++ freem/scripts/fmd-pkg-dpkg 2025/04/06 05:01:21 1.2 @@ -1,7 +1,7 @@ #!/usr/bin/env bash # -# $Id: fmd-pkg-dpkg,v 1.1 2025/04/06 03:38:05 snw Exp $ +# $Id: fmd-pkg-dpkg,v 1.2 2025/04/06 05:01:21 snw Exp $ # Creates a Debian package for a specific FreeM version # # @@ -25,6 +25,9 @@ # along with FreeM. If not, see . # # $Log: fmd-pkg-dpkg,v $ +# 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 # Prepare for adding packaging functionality to fmd # @@ -36,6 +39,12 @@ PGM=$(basename $0) SCRIPT_DIR=$(dirname "$0") +if [[ $2 == "help" ]] +then + echo "foo" + exit 1 +fi + if [[ $# != 2 ]] then echo "fmd-pkg-dpkg: must run from fmd package" @@ -43,25 +52,48 @@ then fi FMD=$1 - FREEM_VERSION="${_fmd_freem_version}" FREEM_VERSION_MOD=$(echo "${FREEM_VERSION}" | sed 's/-/./g') FDPKG_VERSION=$2 TMPDIR="/tmp/fmd-pkg-dpkg" rm -rf "${TMPDIR}" +mkdir -p "${TMPDIR}" +LOGFILE="${TMPDIR}/pkgbuild.log" +echo "${PGM}: logging to ${LOGFILE}" INFILE="freem-${FREEM_VERSION}.tar.gz" OUTFILE="${TMPDIR}/freem_${FREEM_VERSION_MOD}.orig.tar.gz" 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}" if [[ "${FREEM_VERSION}" != "${FREEM_VERSION_MOD}" ]] then mv "${TMPDIR}/freem-${FREEM_VERSION}" "${TMPDIR}/freem-${FREEM_VERSION_MOD}" fi + +echo -n "${PGM}: copying Debian packaging control info to ${TARDIR}... " +cp -r scripts/debian "${TARDIR}/" if [[ $? == 0 ]] then echo "[OK]" @@ -70,8 +102,13 @@ else exit 1 fi -echo -n "${PGM}: copying Debian packaging control info to ${TARDIR}..." -cp -r debian "${TARDIR}/" +sed -i "s/FREEM_VERSION/${FREEM_VERSION_MOD}-${FDPKG_VERSION}/g" "${TARDIR}/debian/changelog" +sed -i "s/FREEM_VERSION/${FREEM_VERSION}-${FDPKG_VERSION}/g" "${TARDIR}/debian/control" + +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 ]] then echo "[OK]" @@ -80,15 +117,20 @@ else exit 1 fi -sed -i "s/FREEM_VERSION/${FREEM_VERSION_MOD}-${FDPKG_VERSION}/g" "${TARDIR}/debian/changelog" -sed -i "s/FREEM_VERSION/${FREEM_VERSION}-${FDPKG_VERSION}/g" "${TARDIR}/debian/control" +cd - +mv ${TMPDIR}/*.deb . -echo "${PGM}: building the package..." -cd "${TARDIR}" -export DEB_BUILD_MAINT_OPTIONS=hardening=-fortify,-format,-stackprotector,-stackprotectorstrong -debuild -us -uc +DPKG_BUILT=$(ls -1 *.deb) -echo "${PGM}: the package is in ${TMPDIR}" +BLDLST="" +for PKGFILE in ${DPKG_BUILT} +do + if [[ "${BLDLST}" == "" ]] + then + BLDLST="${PKGFILE}" + else + BLDLST="${BLDLST} ${PKGFILE}" + fi +done -rm -f ${TMPDIR}/*dbgsym* -scp ${TMPDIR}/*.deb "${FDSSH}://var/www/freem.coherent-logic.com/downloads/binaries/debian/" +echo "${PGM}: built ${BLDLST}"