Annotation of freem/scripts/fmd-pkg-dpkg, revision 1.2

1.1       snw         1: #!/usr/bin/env bash
                      2: 
                      3: #
1.2     ! snw         4: #   $Id: fmd-pkg-dpkg,v 1.1 2025/04/06 03:38:05 snw Exp $
1.1       snw         5: #    Creates a Debian package for a specific FreeM version
                      6: #
                      7: #  
                      8: #   Author: Serena Willis <snw@coherent-logic.com>
                      9: #    Copyright (C) 2025 Coherent Logic Development LLC
                     10: #
                     11: #
                     12: #   This file is part of FreeM.
                     13: #
                     14: #   FreeM is free software: you can redistribute it and/or modify
                     15: #   it under the terms of the GNU Affero Public License as published by
                     16: #   the Free Software Foundation, either version 3 of the License, or
                     17: #   (at your option) any later version.
                     18: #
                     19: #   FreeM is distributed in the hope that it will be useful,
                     20: #   but WITHOUT ANY WARRANTY; without even the implied warranty of
                     21: #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     22: #   GNU Affero Public License for more details.
                     23: #
                     24: #   You should have received a copy of the GNU Affero Public License
                     25: #   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.
                     26: #
1.2     ! snw        27: #   $Log: fmd-pkg-dpkg,v $
        !            28: #   Revision 1.1  2025/04/06 03:38:05  snw
        !            29: #   Prepare for adding packaging functionality to fmd
        !            30: #
1.1       snw        31: #
                     32: # SPDX-FileCopyrightText:  (C) 2025 Coherent Logic Development LLC
                     33: # SPDX-License-Identifier: AGPL-3.0-or-later
                     34: #
                     35: 
                     36: PGM=$(basename $0)
                     37: SCRIPT_DIR=$(dirname "$0")
                     38: 
1.2     ! snw        39: if [[ $2 == "help" ]]
        !            40: then
        !            41:     echo "foo"
        !            42:     exit 1
        !            43: fi
        !            44: 
1.1       snw        45: if [[ $# != 2 ]]
                     46: then
                     47:     echo "fmd-pkg-dpkg:  must run from fmd package"
                     48:     exit 1
                     49: fi
                     50: 
                     51: FMD=$1
                     52: FREEM_VERSION="${_fmd_freem_version}"
                     53: FREEM_VERSION_MOD=$(echo "${FREEM_VERSION}" | sed 's/-/./g')
                     54: FDPKG_VERSION=$2
                     55: 
                     56: TMPDIR="/tmp/fmd-pkg-dpkg"
                     57: rm -rf "${TMPDIR}"
1.2     ! snw        58: mkdir -p "${TMPDIR}"
1.1       snw        59: 
1.2     ! snw        60: LOGFILE="${TMPDIR}/pkgbuild.log"
        !            61: echo "${PGM}:  logging to ${LOGFILE}"
1.1       snw        62: INFILE="freem-${FREEM_VERSION}.tar.gz"
                     63: OUTFILE="${TMPDIR}/freem_${FREEM_VERSION_MOD}.orig.tar.gz"
                     64: TARDIR="${TMPDIR}/freem-${FREEM_VERSION_MOD}"
                     65: 
1.2     ! snw        66: if [[ -f "${INFILE}" ]]
        !            67: then
        !            68:     echo "${PGM}:  removing ${INFILE}"
        !            69:     rm -f "${INFILE}"
        !            70: fi
        !            71: 
        !            72: echo -n "${PGM}:  running 'make dist' to prepare source tarball..."
        !            73: make dist &>> "${LOGFILE}"
        !            74: if [[ $? != 0 ]]
        !            75: then
        !            76:     echo "[FAIL]"
        !            77:     exit 1
        !            78: else
        !            79:     echo "[OK]"
        !            80: fi
        !            81: 
        !            82: echo "${PGM}:  moving ${INFILE} to ${OUTFILE}..."
        !            83: mv "${INFILE}" "${OUTFILE}"
1.1       snw        84: 
1.2     ! snw        85: echo "${PGM}:  extracting ${OUTFILE} to ${TARDIR}..."
1.1       snw        86: tar zxf "${OUTFILE}" -C "${TMPDIR}"
                     87: if [[ "${FREEM_VERSION}" != "${FREEM_VERSION_MOD}" ]]
                     88: then
                     89:     mv "${TMPDIR}/freem-${FREEM_VERSION}" "${TMPDIR}/freem-${FREEM_VERSION_MOD}"
                     90: fi
1.2     ! snw        91: 
        !            92: echo -n "${PGM}:  copying Debian packaging control info to ${TARDIR}... "
        !            93: cp -r scripts/debian "${TARDIR}/"
1.1       snw        94: if [[ $? == 0 ]]
                     95: then
                     96:     echo "[OK]"
                     97: else
                     98:     echo "[FAIL]"
                     99:     exit 1
                    100: fi
                    101: 
1.2     ! snw       102: sed -i "s/FREEM_VERSION/${FREEM_VERSION_MOD}-${FDPKG_VERSION}/g" "${TARDIR}/debian/changelog"
        !           103: sed -i "s/FREEM_VERSION/${FREEM_VERSION}-${FDPKG_VERSION}/g" "${TARDIR}/debian/control"
        !           104: 
        !           105: echo -n "${PGM}:  building the packages (this may take awhile)..."
        !           106: cd "${TARDIR}"
        !           107: export DEB_BUILD_MAINT_OPTIONS=hardening=-fortify,-format,-stackprotector,-stackprotectorstrong
        !           108: debuild -us -uc &>> "${LOGFILE}"
1.1       snw       109: if [[ $? == 0 ]]
                    110: then
                    111:     echo "[OK]"
                    112: else
                    113:     echo "[FAIL]"
                    114:     exit 1
                    115: fi
                    116: 
1.2     ! snw       117: cd -
        !           118: mv ${TMPDIR}/*.deb .
1.1       snw       119: 
1.2     ! snw       120: DPKG_BUILT=$(ls -1 *.deb)
1.1       snw       121: 
1.2     ! snw       122: BLDLST=""
        !           123: for PKGFILE in ${DPKG_BUILT}
        !           124: do
        !           125:     if [[ "${BLDLST}" == "" ]]
        !           126:     then
        !           127:        BLDLST="${PKGFILE}"
        !           128:     else
        !           129:        BLDLST="${BLDLST} ${PKGFILE}"
        !           130:     fi
        !           131: done
1.1       snw       132: 
1.2     ! snw       133: echo "${PGM}:  built ${BLDLST}"

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>