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>