Packaging scripts for Arch packages

This commit is contained in:
Nav
2023-01-20 18:40:02 +00:00
parent 99913ad132
commit d50d756b99
4 changed files with 109 additions and 15 deletions

View File

@@ -0,0 +1,33 @@
pkgname=@BLOOM_PACKAGE_NAME_LOWER@
pkgver=@CMAKE_PROJECT_VERSION@
pkgrel=1
pkgdesc="@BLOOM_PACKAGE_DESCRIPTION@"
arch=('i686' 'x86_64')
url="@CMAKE_PROJECT_HOMEPAGE_URL@"
license=('LGPLv3')
package(){
depends=(
'fontconfig>=2.11.94'
'freetype2>=2.6'
'gcc-libs>=5'
'glibc>=2.18'
'libgl'
'libglvnd'
'libpng12'
'libx11'
'libxcb'
'libxext'
'libxkbcommon>=0.5.0'
'libxkbcommon-x11>=0.5.0'
'libxrender'
'xcb-util-image>=0.2.1'
'xcb-util-keysyms>=0.4.0'
'xcb-util-renderutil'
'xcb-util-wm>=0.4.1'
'zlib>=1.1.4'
)
mkdir -p "${pkgdir}/"
cp -R @CMAKE_BINARY_DIR@/packaging/pkgbuild/playground/build_root/* "${pkgdir}/"
}

View File

@@ -0,0 +1,57 @@
#!/bin/bash
PLAYGROUND_DIR=@CMAKE_BINARY_DIR@/packaging/pkgbuild/playground;
BUILD_ROOT_DIR=${PLAYGROUND_DIR}/build_root
BLOOM_INSTALLATION_PREFIX=/opt/bloom/
BLOOM_INSTALLATION_DIR=${BUILD_ROOT_DIR}/${BLOOM_INSTALLATION_PREFIX}
BLOOM_PACKAGE_PATH=@CMAKE_BINARY_DIR@/packaging/@BLOOM_PACKAGE_FILE_NAME@.pkg.tar.gz
if [ ! -f @CMAKE_BINARY_DIR@/bin/bloom ]; then
echo "Build files not found. Did you forget to build?"
exit 1;
fi
echo "Preparing playground directory...";
rm -fr ${PLAYGROUND_DIR};
mkdir -p ${PLAYGROUND_DIR};
mkdir -p ${BUILD_ROOT_DIR};
mkdir -p ${BLOOM_INSTALLATION_DIR};
mkdir -p ${BLOOM_INSTALLATION_DIR}/bin;
mkdir -p ${BUILD_ROOT_DIR}/usr/lib/udev/rules.d/;
mkdir -p ${BUILD_ROOT_DIR}/usr/bin/;
echo "Copying PKGBUILD control file...";
cp -a @CMAKE_BINARY_DIR@/packaging/pkgbuild/PKGBUILD ${PLAYGROUND_DIR}/;
echo "Copying Bloom binary...";
cp -a @CMAKE_BINARY_DIR@/bin/bloom ${BLOOM_INSTALLATION_DIR}/bin/;
echo "Copying resources...";
cp -a @CMAKE_BINARY_DIR@/resources ${BLOOM_INSTALLATION_DIR}/;
cp -a @CMAKE_CURRENT_SOURCE_DIR@/build/distributed/fonts ${BLOOM_INSTALLATION_DIR}/resources/;
echo "Copying distributed binaries...";
cp -a @CMAKE_CURRENT_SOURCE_DIR@/build/distributed/bin/lib ${BLOOM_INSTALLATION_DIR}/;
cp -a @CMAKE_CURRENT_SOURCE_DIR@/build/distributed/bin/plugins ${BLOOM_INSTALLATION_DIR}/;
echo "Copying udev rules...";
cp -a @CMAKE_CURRENT_SOURCE_DIR@/build/distributed/udevrules/99-bloom.rules ${BUILD_ROOT_DIR}/usr/lib/udev/rules.d/;
echo "Adjusting permissions...";
chmod u=rwx,g=rx,o=rx -R ${BLOOM_INSTALLATION_DIR}/bin/;
chmod u=rwx,g=rx,o=rx -R ${BLOOM_INSTALLATION_DIR}/lib/;
chmod u=rwx,g=rx,o=rx -R ${BLOOM_INSTALLATION_DIR}/plugins/;
chmod u=rwX,g=rX,o=rX -R ${BLOOM_INSTALLATION_DIR}/resources/;
chmod u=rw,g=r,o=r ${BUILD_ROOT_DIR}/usr/lib/udev/rules.d/99-bloom.rules;
echo "Creating symbolic link for Bloom binary..."
ln -s -f ${BLOOM_INSTALLATION_PREFIX}./bin/bloom ${BUILD_ROOT_DIR}/usr/bin/;
echo "Building Arch package...";
cd ${PLAYGROUND_DIR};
makepkg;
mv ./@BLOOM_PACKAGE_NAME_LOWER@-@CMAKE_PROJECT_VERSION@-1-x86_64.pkg.tar.gz ${BLOOM_PACKAGE_PATH};

View File

@@ -43,3 +43,22 @@ configure_file(
WORLD_READ
@ONLY
)
# Generate the PKGBUILD file and packaging script
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/packaging/pkgbuild")
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/build/packaging/pkgbuild/PKGBUILD.in"
"${CMAKE_BINARY_DIR}/packaging/pkgbuild/PKGBUILD"
@ONLY
)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/build/packaging/pkgbuild/package-pkgbuild.sh.in"
"${CMAKE_BINARY_DIR}/packaging/package-pkgbuild.sh"
FILE_PERMISSIONS
OWNER_EXECUTE OWNER_READ OWNER_WRITE
GROUP_READ
WORLD_READ
@ONLY
)

View File

@@ -1,15 +0,0 @@
pkgname=@CPACK_PACKAGE_NAME_LOWER@
pkgver=@CMAKE_PROJECT_VERSION@
pkgrel=1
pkgdesc="@CPACK_PACKAGE_DESCRIPTION_SUMMARY@"
arch=('i686' 'x86_64')
url="@CMAKE_PROJECT_HOMEPAGE_URL@"
license=('LGPLv3')
install=bloom.install
package(){
depends=('fontconfig>=2.11.94' 'freetype2>=2.6' 'gcc-libs>=5' 'glibc>=2.18' 'libgl' 'libglvnd' 'libpng12' 'libx11' 'libxcb' 'libxext' 'libxkbcommon>=0.5.0' 'libxkbcommon-x11>=0.5.0' 'libxrender' 'xcb-util-image>=0.2.1' 'xcb-util-keysyms>=0.4.0' 'xcb-util-renderutil' 'xcb-util-wm>=0.4.1' 'zlib>=1.1.4')
mkdir -p "${pkgdir}/@CPACK_PACKAGING_INSTALL_PREFIX@"
cp -R @CMAKE_INSTALL_PREFIX@* "${pkgdir}/@CPACK_PACKAGING_INSTALL_PREFIX@"
}