Overhaul the packaging scripts:
- Ingame mod versions now always match the package version - Adds macOS compatibility - Removes trait and lua api docs pending future overhaul - Individual platform packages can be compiled directly - Improved error checking - Removes unnecessary redundancy and indirection
This commit is contained in:
@@ -1,41 +1,60 @@
|
||||
#!/bin/bash
|
||||
# OpenRA packaging master script for linux packages
|
||||
|
||||
if [ $# -ne "3" ]; then
|
||||
echo "Usage: `basename $0` tag files-dir outputdir"
|
||||
command -v curl >/dev/null 2>&1 || { echo >&2 "Linux packaging requires curl."; exit 1; }
|
||||
command -v markdown >/dev/null 2>&1 || { echo >&2 "Linux packaging requires markdown."; exit 1; }
|
||||
|
||||
if [ $# -ne "2" ]; then
|
||||
echo "Usage: `basename $0` tag outputdir"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TAG=$1
|
||||
VERSION=`echo $TAG | grep -o "[0-9]\\+-\\?[0-9]\\?"`
|
||||
BUILTDIR=$2
|
||||
PACKAGEDIR=$3
|
||||
ROOTDIR=root
|
||||
# Set the working dir to the location of this script
|
||||
cd $(dirname $0)
|
||||
|
||||
TAG="${1}"
|
||||
VERSION=`echo ${TAG} | grep -o "[0-9]\\+-\\?[0-9]\\?"`
|
||||
OUTPUTDIR="${2}"
|
||||
|
||||
SRCDIR="$(pwd)/../.."
|
||||
BUILTDIR="$(pwd)/build"
|
||||
|
||||
# Clean up
|
||||
rm -rf $ROOTDIR
|
||||
rm -rf ${BUILTDIR}
|
||||
|
||||
cd ../..
|
||||
echo "Building core files"
|
||||
|
||||
# Copy files for OpenRA.Game.exe and OpenRA.Editor.exe as well as all dependencies.
|
||||
make install prefix="/usr" DESTDIR="$PWD/packaging/linux/$ROOTDIR"
|
||||
pushd ${SRCDIR} > /dev/null
|
||||
make linux-dependencies
|
||||
make core SDK="-sdk:4.5"
|
||||
make version VERSION="${TAG}"
|
||||
|
||||
# Install startup scripts, desktop files and icons
|
||||
make install-linux-shortcuts prefix="/usr" DESTDIR="$PWD/packaging/linux/$ROOTDIR"
|
||||
make install-linux-mime prefix="/usr" DESTDIR="$PWD/packaging/linux/$ROOTDIR"
|
||||
make install-linux-appdata prefix="/usr" DESTDIR="$PWD/packaging/linux/$ROOTDIR"
|
||||
make install-man-page prefix="/usr" DESTDIR="$PWD/packaging/linux/$ROOTDIR"
|
||||
make install-core prefix="/usr" DESTDIR="${BUILTDIR}"
|
||||
make install-linux-shortcuts prefix="/usr" DESTDIR="${BUILTDIR}"
|
||||
make install-linux-mime prefix="/usr" DESTDIR="${BUILTDIR}"
|
||||
make install-linux-appdata prefix="/usr" DESTDIR="${BUILTDIR}"
|
||||
make install-man-page prefix="/usr" DESTDIR="${BUILTDIR}"
|
||||
|
||||
popd > /dev/null
|
||||
|
||||
# Documentation
|
||||
mkdir -p $PWD/packaging/linux/$ROOTDIR/usr/share/doc/openra/
|
||||
cp *.html $PWD/packaging/linux/$ROOTDIR/usr/share/doc/openra/
|
||||
DOCSDIR="${BUILTDIR}/usr/share/doc/openra/"
|
||||
|
||||
pushd packaging/linux/deb >/dev/null
|
||||
echo "Building Debian package."
|
||||
./buildpackage.sh "$TAG" ../$ROOTDIR "$PACKAGEDIR"
|
||||
mkdir -p "${DOCSDIR}"
|
||||
|
||||
curl -s -L -O https://raw.githubusercontent.com/wiki/OpenRA/OpenRA/Changelog.md
|
||||
markdown Changelog.md > "${DOCSDIR}/Changelog.html"
|
||||
rm Changelog.md
|
||||
|
||||
markdown ${SRCDIR}/README.md > "${DOCSDIR}/README.html"
|
||||
markdown ${SRCDIR}/CONTRIBUTING.md > "${DOCSDIR}/CONTRIBUTING.html"
|
||||
|
||||
pushd deb >/dev/null
|
||||
echo "Building Debian package"
|
||||
./buildpackage.sh "${TAG}" "${BUILTDIR}" "${OUTPUTDIR}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Debian package build failed."
|
||||
fi
|
||||
popd >/dev/null
|
||||
|
||||
rm -rf $PWD/packaging/linux/$ROOTDIR/
|
||||
rm -rf "${BUILTDIR}"
|
||||
|
||||
@@ -1,22 +1,32 @@
|
||||
#!/bin/bash
|
||||
# OpenRA packaging script for Debian based distributions
|
||||
|
||||
LINUX_BUILD_ROOT="$(readlink -f "$2")"
|
||||
DEB_BUILD_ROOT=./root
|
||||
command -v fakeroot >/dev/null 2>&1 || { echo >&2 "Debian packaging requires fakeroot."; exit 1; }
|
||||
command -v dpkg-deb >/dev/null 2>&1 || { echo >&2 "Debian packaging requires dpkg-deb."; exit 1; }
|
||||
|
||||
LIBDIR=/usr/lib/openra
|
||||
DOCDIR=/usr/share/doc/openra
|
||||
LINTIANORDIR=/usr/share/lintian/overrides
|
||||
|
||||
E_BADARGS=85
|
||||
if [ $# -ne "3" ]
|
||||
then
|
||||
echo "Usage: `basename $0` version root-dir outputdir"
|
||||
exit $E_BADARGS
|
||||
fi
|
||||
DATE=`echo $1 | grep -o "[0-9]\\+-\\?[0-9]\\?"`
|
||||
|
||||
# Set the working dir to the location of this script
|
||||
cd $(dirname $0)
|
||||
|
||||
TAG="${1}"
|
||||
LINUX_BUILD_ROOT="${2}"
|
||||
OUTPUTDIR="${3}"
|
||||
|
||||
DEB_BUILD_ROOT="$(pwd)/build"
|
||||
|
||||
LIBDIR=/usr/lib/openra
|
||||
DOCDIR=/usr/share/doc/openra
|
||||
LINTIANORDIR=/usr/share/lintian/overrides
|
||||
E_BADARGS=85
|
||||
|
||||
DATE=`echo ${TAG} | grep -o "[0-9]\\+-\\?[0-9]\\?"`
|
||||
TYPE=`echo $1 | grep -o "^[a-z]*"`
|
||||
VERSION="$DATE.$TYPE"
|
||||
VERSION="${DATE}.${TYPE}"
|
||||
|
||||
# Copy template files into a clean build directory (required)
|
||||
mkdir "${DEB_BUILD_ROOT}"
|
||||
@@ -62,21 +72,32 @@ rm "${DEB_BUILD_ROOT}/${LIBDIR}/COPYING"
|
||||
chmod -R g-w "${DEB_BUILD_ROOT}"
|
||||
|
||||
# Create the control file
|
||||
PACKAGE_SIZE=`du --apparent-size -c "${DEB_BUILD_ROOT}/usr" | grep "total" | awk '{print $1}'`
|
||||
sed "s/{VERSION}/$VERSION/" DEBIAN/control | sed "s/{SIZE}/$PACKAGE_SIZE/" > "${DEB_BUILD_ROOT}/DEBIAN/control"
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# BSD du doesn't have an --apparent-size flag, so we must accept a different result
|
||||
PACKAGE_SIZE=`du -c "${DEB_BUILD_ROOT}/usr" | grep "total" | awk '{print $1}'`
|
||||
else
|
||||
PACKAGE_SIZE=`du --apparent-size -c "${DEB_BUILD_ROOT}/usr" | grep "total" | awk '{print $1}'`
|
||||
fi
|
||||
|
||||
sed "s/{VERSION}/${VERSION}/" DEBIAN/control | sed "s/{SIZE}/${PACKAGE_SIZE}/" > "${DEB_BUILD_ROOT}/DEBIAN/control"
|
||||
|
||||
# Build it in the temp directory, but place the finished deb in our starting directory
|
||||
pushd "${DEB_BUILD_ROOT}" >/dev/null
|
||||
|
||||
# Calculate md5sums and clean up the ./usr/ part of them
|
||||
find . -type f -not -path "./DEBIAN/*" -print0 | xargs -0 -n1 md5sum | sed 's|\./usr/|usr/|' > DEBIAN/md5sums
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
find . -type f -not -path "./DEBIAN/*" -print0 | xargs -0 -n1 openssl md5 | awk '{ print $2, substr($1, 7, length($1)-8) }' > DEBIAN/md5sums
|
||||
else
|
||||
find . -type f -not -path "./DEBIAN/*" -print0 | xargs -0 -n1 md5sum | sed 's|\./usr/|usr/|' > DEBIAN/md5sums
|
||||
fi
|
||||
|
||||
chmod 0644 DEBIAN/md5sums
|
||||
|
||||
# Replace any dashes in the version string with periods
|
||||
PKGVERSION=`echo $1 | sed "s/-/\\./g"`
|
||||
PKGVERSION=`echo ${TAG} | sed "s/-/\\./g"`
|
||||
|
||||
# Start building, the file should appear in the output directory
|
||||
fakeroot dpkg-deb -b . "$3/openra_${PKGVERSION}_all.deb"
|
||||
fakeroot dpkg-deb -b . "${OUTPUTDIR}/openra_${PKGVERSION}_all.deb"
|
||||
|
||||
# Clean up
|
||||
popd >/dev/null
|
||||
|
||||
Reference in New Issue
Block a user