--- freem/scripts/fmd-pkg-rpm 2025/04/07 05:19:36 1.1 +++ freem/scripts/fmd-pkg-rpm 2025/04/07 21:50:11 1.4 @@ -1,7 +1,7 @@ #!/usr/bin/env bash # -# $Id: fmd-pkg-rpm,v 1.1 2025/04/07 05:19:36 snw Exp $ +# $Id: fmd-pkg-rpm,v 1.4 2025/04/07 21:50:11 snw Exp $ # Creates an rpm package # # @@ -25,6 +25,15 @@ # along with FreeM. If not, see . # # $Log: fmd-pkg-rpm,v $ +# Revision 1.4 2025/04/07 21:50:11 snw +# Fix bug in fmd-pkg-rpm +# +# Revision 1.3 2025/04/07 13:02:51 snw +# Initial working version of fmd-pkg-rpm +# +# Revision 1.2 2025/04/07 05:39:23 snw +# Further work on fmd rpm porting +# # Revision 1.1 2025/04/07 05:19:36 snw # Initial work on moving rpm packaging to fmd # @@ -51,6 +60,8 @@ mkdir -p "${TMPDIR}" LOGFILE="${TMPDIR}/pkgbuild.log" echo "${PGM}: logging to ${LOGFILE}" +RPM_RELEASE=$(echo "${_fmd_freem_version}" | sed "s/-/~/g") + if [[ ! -f Makefile ]] then echo -n "${PGM}: running autogen.sh..." @@ -73,7 +84,11 @@ then fi fi - + +ORIG_TARBALL="freem-${_fmd_freem_version}.tar.gz" +ORIG_DIR="freem-${_fmd_freem_version}/" +NEW_DIR="freem-${RPM_RELEASE}/" +NEW_TARBALL="freem-${RPM_RELEASE}.tar.gz" echo -n "${PGM}: running 'make dist' to prepare source tarball..." make dist &>> "${LOGFILE}" @@ -85,8 +100,62 @@ else echo "[OK]" fi +if [[ "${ORIG_TARBALL}" != "${NEW_TARBALL}" ]] +then + RENAME=1 +else + RENAME=0 +fi + +if [[ $RENAME == 1 ]] +then + echo -n "${PGM}: cleaning up..." + rm -rf "${OLD_DIR}" "${NEW_DIR}" "${NEW_TARBALL}" &>> /dev/null + if [[ $? != 0 ]] + then + echo "[FAIL]" + exit 1 + else + echo "[OK]" + fi +fi + +echo -n "${PGM}: decompressing source tarball..." +tar xzf "${ORIG_TARBALL}" +if [[ $? != 0 ]] +then + echo "[FAIL]" + exit 1 +else + echo "[OK]" +fi + +if [[ $RENAME == 1 ]] +then + echo -n "${PGM}: renaming ${ORIG_DIR} -> ${NEW_DIR}..." + mv "${ORIG_DIR}" "${NEW_DIR}" &>> /dev/null + if [[ $? != 0 ]] + then + echo "[FAIL]" + exit 1 + else + echo "[OK]" + fi + + + echo -n "${PGM}: generating ${NEW_TARBALL}..." + tar cf "${NEW_TARBALL}" "${NEW_DIR}" &>> /dev/null + if [[ $? != 0 ]] + then + echo "[FAIL]" + exit 1 + else + echo "[OK]" + fi +fi + echo -n "${PGM}: uploading source tarball..." -scp freem*.tar.gz jpw@freem.coherent-logic.com://var/www/freem.coherent-logic.com/downloads/ &>> "${LOGFILE}" +scp "${NEW_TARBALL}" jpw@freem.coherent-logic.com://var/www/freem.coherent-logic.com/downloads/ &>> "${LOGFILE}" if [[ $? != 0 ]] then echo "[FAIL]" @@ -94,3 +163,93 @@ then else echo "[OK]" fi + +echo "${PGM}: performing substitutions on specfile..." +cat scripts/rpm/freem.spec.in | sed "s/FREEM_VERSION/${RPM_RELEASE}/g" > scripts/rpm/freem.spec + +RPMROOT="${HOME}/rpmbuild" +echo -n "${PGM}: removing ${RPMROOT}..." +rm -rf "${RPMROOT}" &>> "${LOGFILE}" +if [[ $? != 0 ]] +then + echo "[FAIL]" + exit 1 +else + echo "[OK]" +fi + +echo -n "${PGM}: preparing directory structure..." +rpmdev-setuptree &>> "${LOGFILE}" +if [[ $? != 0 ]] +then + echo "[FAIL]" + exit 1 +else + echo "[OK]" +fi + +echo -n "${PGM}: running spectool..." +spectool -g -R scripts/rpm/freem.spec &>> "${LOGFILE}" +if [[ $? != 0 ]] +then + echo "[FAIL]" + exit 1 +else + echo "[OK]" +fi + +echo -n "${PGM}: building package..." +rpmbuild -ba scripts/rpm/freem.spec &>> "${LOGFILE}" +if [[ $? != 0 ]] +then + echo "[FAIL]" + exit 1 +else + echo "[OK]" +fi + +echo -n "${PGM}: cleaning up..." +rm -rf "${OLD_DIR}" "${NEW_DIR}" "${NEW_TARBALL}" &>> /dev/null +if [[ $? != 0 ]] +then + echo "[FAIL]" + exit 1 +else + echo "[OK]" +fi + +echo -n "${PGM}: copying rpm packages..." +cp ${RPMROOT}/RPMS/${_fmd_arch}/*.rpm . &>> "${LOGFILE}" +if [[ $? != 0 ]] +then + echo "[FAIL]" + exit 1 +else + echo "[OK]" +fi + +echo -n "${PGM}: copying source rpm packages..." +cp ${RPMROOT}/SRPMS/*.rpm . &>> "${LOGFILE}" +if [[ $? != 0 ]] +then + echo "[FAIL]" + exit 1 +else + echo "[OK]" +fi + +RPM_BUILT=$(ls -1 *.rpm) + +BLDLST="" +for PKGFILE in ${RPM_BUILT} +do + if [[ "${BLDLST}" == "" ]] + then + BLDLST="${PKGFILE}" + else + BLDLST="${BLDLST} ${PKGFILE}" + fi +done + +echo "${PGM}: built ${BLDLST}" +