Annotation of freem/scripts/fmd-pkg-rpm, revision 1.3
1.1 snw 1: #!/usr/bin/env bash
2:
3: #
1.3 ! snw 4: # $Id: fmd-pkg-rpm,v 1.2 2025/04/07 05:39:23 snw Exp $
1.1 snw 5: # Creates an rpm package
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-rpm,v $
1.3 ! snw 28: # Revision 1.2 2025/04/07 05:39:23 snw
! 29: # Further work on fmd rpm porting
! 30: #
1.2 snw 31: # Revision 1.1 2025/04/07 05:19:36 snw
32: # Initial work on moving rpm packaging to fmd
33: #
1.1 snw 34: #
35: # SPDX-FileCopyrightText: (C) 2025 Coherent Logic Development LLC
36: # SPDX-License-Identifier: AGPL-3.0-or-later
37: #
38:
39: PGM=$(basename $0)
40: SCRIPT_DIR=$(dirname "$0")
41:
42: source "${SCRIPT_DIR}/_fmd_common.bash"
43:
44: if [[ $# != 1 ]]
45: then
46: echo "${PGM}: must run from fmd package"
47: exit 1
48: fi
49:
50: TMPDIR="/tmp/fmd-pkg-rpm"
51: rm -rf "${TMPDIR}"
52: mkdir -p "${TMPDIR}"
53:
54: LOGFILE="${TMPDIR}/pkgbuild.log"
55: echo "${PGM}: logging to ${LOGFILE}"
56:
1.2 snw 57: RPM_RELEASE=$(echo "${_fmd_freem_version}" | sed "s/-/~/g")
58:
1.1 snw 59: if [[ ! -f Makefile ]]
60: then
61: echo -n "${PGM}: running autogen.sh..."
62: ./autogen.sh &>> "${LOGFILE}"
63: if [[ $? != 0 ]]
64: then
65: echo "[FAIL]"
66: exit 1
67: else
68: echo "[OK]"
69: fi
70: echo -n "${PGM}: running configure..."
71: ./configure &>> "${LOGFILE}"
72: if [[ $? != 0 ]]
73: then
74: echo "[FAIL]"
75: exit 1
76: else
77: echo "[OK]"
78: fi
79:
80: fi
1.3 ! snw 81:
! 82: ORIG_TARBALL="freem-${_fmd_freem_version}.tar.gz"
! 83: ORIG_DIR="freem-${_fmd_freem_version}/"
! 84: NEW_DIR="freem-${RPM_RELEASE}/"
! 85: NEW_TARBALL="freem-${RPM_RELEASE}.tar.gz"
1.1 snw 86:
87: echo -n "${PGM}: running 'make dist' to prepare source tarball..."
88: make dist &>> "${LOGFILE}"
89: if [[ $? != 0 ]]
90: then
91: echo "[FAIL]"
92: exit 1
93: else
94: echo "[OK]"
95: fi
96:
1.3 ! snw 97: echo -n "${PGM}: cleaning up..."
! 98: rm -rf "${OLD_DIR}" "${NEW_DIR}" "${NEW_TARBALL}" &>> /dev/null
! 99: if [[ $? != 0 ]]
! 100: then
! 101: echo "[FAIL]"
! 102: exit 1
! 103: else
! 104: echo "[OK]"
! 105: fi
1.2 snw 106:
107: echo -n "${PGM}: decompressing source tarball..."
1.3 ! snw 108: tar xzf "${ORIG_TARBALL}"
! 109: if [[ $? != 0 ]]
! 110: then
! 111: echo "[FAIL]"
! 112: exit 1
! 113: else
! 114: echo "[OK]"
! 115: fi
! 116:
! 117: echo -n "${PGM}: renaming ${ORIG_DIR} -> ${NEW_DIR}..."
! 118: mv "${ORIG_DIR}" "${NEW_DIR}" &>> /dev/null
! 119: if [[ $? != 0 ]]
! 120: then
! 121: echo "[FAIL]"
! 122: exit 1
! 123: else
! 124: echo "[OK]"
! 125: fi
! 126:
! 127: echo -n "${PGM}: generating ${NEW_TARBALL}..."
! 128: tar cf "${NEW_TARBALL}" "${NEW_DIR}" &>> /dev/null
1.2 snw 129: if [[ $? != 0 ]]
130: then
131: echo "[FAIL]"
132: exit 1
133: else
134: echo "[OK]"
135: fi
136:
137:
1.1 snw 138: echo -n "${PGM}: uploading source tarball..."
1.3 ! snw 139: scp "${NEW_TARBALL}" jpw@freem.coherent-logic.com://var/www/freem.coherent-logic.com/downloads/ &>> "${LOGFILE}"
1.1 snw 140: if [[ $? != 0 ]]
141: then
142: echo "[FAIL]"
143: exit 1
144: else
145: echo "[OK]"
146: fi
1.2 snw 147:
148: echo "${PGM}: performing substitutions on specfile..."
149: cat scripts/rpm/freem.spec.in | sed "s/FREEM_VERSION/${RPM_RELEASE}/g" > scripts/rpm/freem.spec
150:
1.3 ! snw 151: RPMROOT="${HOME}/rpmbuild"
! 152: echo -n "${PGM}: removing ${RPMROOT}..."
! 153: rm -rf "${RPMROOT}" &>> "${LOGFILE}"
! 154: if [[ $? != 0 ]]
! 155: then
! 156: echo "[FAIL]"
! 157: exit 1
! 158: else
! 159: echo "[OK]"
! 160: fi
! 161:
! 162: echo -n "${PGM}: preparing directory structure..."
! 163: rpmdev-setuptree &>> "${LOGFILE}"
! 164: if [[ $? != 0 ]]
! 165: then
! 166: echo "[FAIL]"
! 167: exit 1
! 168: else
! 169: echo "[OK]"
! 170: fi
! 171:
1.2 snw 172: echo -n "${PGM}: running spectool..."
173: spectool -g -R scripts/rpm/freem.spec &>> "${LOGFILE}"
174: if [[ $? != 0 ]]
175: then
176: echo "[FAIL]"
177: exit 1
178: else
179: echo "[OK]"
180: fi
181:
182: echo -n "${PGM}: building package..."
183: rpmbuild -ba scripts/rpm/freem.spec &>> "${LOGFILE}"
184: if [[ $? != 0 ]]
185: then
186: echo "[FAIL]"
187: exit 1
188: else
189: echo "[OK]"
190: fi
1.3 ! snw 191:
! 192: echo -n "${PGM}: cleaning up..."
! 193: rm -rf "${OLD_DIR}" "${NEW_DIR}" "${NEW_TARBALL}" &>> /dev/null
! 194: if [[ $? != 0 ]]
! 195: then
! 196: echo "[FAIL]"
! 197: exit 1
! 198: else
! 199: echo "[OK]"
! 200: fi
! 201:
! 202: echo -n "${PGM}: copying rpm packages..."
! 203: cp ${RPMROOT}/RPMS/${_fmd_arch}/*.rpm . &>> "${LOGFILE}"
! 204: if [[ $? != 0 ]]
! 205: then
! 206: echo "[FAIL]"
! 207: exit 1
! 208: else
! 209: echo "[OK]"
! 210: fi
! 211:
! 212: echo -n "${PGM}: copying source rpm packages..."
! 213: cp ${RPMROOT}/SRPMS/*.rpm . &>> "${LOGFILE}"
! 214: if [[ $? != 0 ]]
! 215: then
! 216: echo "[FAIL]"
! 217: exit 1
! 218: else
! 219: echo "[OK]"
! 220: fi
! 221:
! 222: RPM_BUILT=$(ls -1 *.rpm)
! 223:
! 224: BLDLST=""
! 225: for PKGFILE in ${RPM_BUILT}
! 226: do
! 227: if [[ "${BLDLST}" == "" ]]
! 228: then
! 229: BLDLST="${PKGFILE}"
! 230: else
! 231: BLDLST="${BLDLST} ${PKGFILE}"
! 232: fi
! 233: done
! 234:
! 235: echo "${PGM}: built ${BLDLST}"
! 236:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>