Use nfpm packager for archlinux packages

Since nfpm v2.20.0 it can build packages for archlinux [1].

  [1]: https://github.com/goreleaser/nfpm/pull/543

Something like this:

    $ mkdir -p /src/packages/root
    $ cmake -DCMAKE_INSTALL_PREFIX=/usr /src
    $ DESTDIR=/src/packages/root ninja install
    $ cd /src/packages
    $ ./build --archlinux

    $ root@s3:/src/packages# ./build --archlinux
    Current version is 22.10.1.1
    Building archlinux package for clickhouse-client.yaml
    using archlinux packager...
    created package: /src/clickhouse-client-22.10.1.1-1-x86_64.pkg.tar.zst
    ...

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
This commit is contained in:
Azat Khuzhin 2022-10-16 21:39:45 +02:00
parent fb6474c35b
commit 043c4163f4
10 changed files with 9 additions and 66 deletions

View File

@ -73,7 +73,7 @@ RUN apt-get install binutils-riscv64-linux-gnu
# Architecture of the image when BuildKit/buildx is used
ARG TARGETARCH
ARG NFPM_VERSION=2.18.1
ARG NFPM_VERSION=2.20.0
RUN arch=${TARGETARCH:-amd64} \
&& curl -Lo /tmp/nfpm.deb "https://github.com/goreleaser/nfpm/releases/download/v${NFPM_VERSION}/nfpm_${arch}.deb" \

View File

@ -26,6 +26,7 @@ SOURCE=${SOURCE:-$PKG_ROOT}
HELP="${0} [--test] [--rpm] [-h|--help]
--test - adds '+test' prefix to version
--apk - build APK packages
--archlinux - build archlinux packages
--rpm - build RPM packages
--tgz - build tarball package
--deb - build deb package
@ -60,6 +61,9 @@ do
--apk )
MAKE_APK=1
shift ;;
--archlinux )
MAKE_ARCHLINUX=1
shift ;;
--rpm )
MAKE_RPM=1
shift ;;
@ -148,6 +152,10 @@ for config in clickhouse*.yaml; do
echo "Building apk package for $config"
nfpm package --target "$OUTPUT_DIR" --config "$config" --packager apk
fi
if [ -n "$MAKE_ARCHLINUX" ]; then
echo "Building archlinux package for $config"
nfpm package --target "$OUTPUT_DIR" --config "$config" --packager archlinux
fi
if [ -n "$MAKE_RPM" ]; then
echo "Building rpm package for $config"
nfpm package --target "$OUTPUT_DIR" --config "$config" --packager rpm

View File

@ -44,5 +44,3 @@ if (NOT DEFINED ENABLE_UTILS OR ENABLE_UTILS)
add_subdirectory (memcpy-bench)
endif ()
endif ()
add_subdirectory (package)

View File

@ -1 +0,0 @@
add_subdirectory (arch)

View File

@ -1,2 +0,0 @@
include ("${ClickHouse_SOURCE_DIR}/cmake/version.cmake")
configure_file (PKGBUILD.in PKGBUILD)

View File

@ -1,33 +0,0 @@
pkgname=clickhouse
pkgver=${VERSION_STRING}
pkgrel=1
pkgdesc='An open-source column-oriented database management system that allows generating analytical data reports in real time'
arch=('x86_64')
url='https://clickhouse.com/'
license=('Apache')
package() {
install -dm 755 $pkgdir/usr/lib/tmpfiles.d
install -dm 755 $pkgdir/usr/lib/sysusers.d
install -Dm 644 ${CMAKE_CURRENT_SOURCE_DIR}/clickhouse.tmpfiles $pkgdir/usr/lib/tmpfiles.d/clickhouse.conf
install -Dm 644 ${CMAKE_CURRENT_SOURCE_DIR}/clickhouse.sysusers $pkgdir/usr/lib/sysusers.d/clickhouse.conf
install -dm 755 $pkgdir/etc/clickhouse-server/config.d
install -Dm 644 ${CMAKE_CURRENT_SOURCE_DIR}/logging.xml $pkgdir/etc/clickhouse-server/config.d/logging.xml
# This code was requisited from kmeaw@ https://aur.archlinux.org/packages/clickhouse/ .
SRC=${ClickHouse_SOURCE_DIR}
BIN=${ClickHouse_BINARY_DIR}
mkdir -p $pkgdir/etc/clickhouse-server/ $pkgdir/etc/clickhouse-client/
mkdir -p $pkgdir/usr/bin/
mkdir -p $pkgdir/usr/lib/systemd/system
ln -s clickhouse-client $pkgdir/usr/bin/clickhouse-server
cp $SRC/programs/server/config.xml $SRC/programs/server/users.xml $pkgdir/etc/clickhouse-server/
cp $BIN/programs/clickhouse $pkgdir/usr/bin/clickhouse-client
patchelf --remove-rpath $pkgdir/usr/bin/clickhouse-client
patchelf --replace-needed libz.so.1 libz-ng.so.1 $pkgdir/usr/bin/clickhouse-client
cp $SRC/programs/client/clickhouse-client.xml $pkgdir/etc/clickhouse-client/config.xml
compiler="libclickhouse-compiler.so"
if ! pacman -Q clang | grep '^clang 7'; then
compiler=""
fi
cp $SRC/debian/clickhouse-server.service $pkgdir/usr/lib/systemd/system
}

View File

@ -1,17 +0,0 @@
### Build Arch Linux package
From binary directory:
```
make
cd utils/package/arch
makepkg
```
### Install and start ClickHouse server
```
pacman -U clickhouse-*.pkg.tar.xz
systemctl enable clickhouse-server
systemctl start clickhouse-server
```

View File

@ -1,3 +0,0 @@
u clickhouse - "ClickHouse user" /nonexistent /bin/false
g clickhouse - "ClickHouse group"
m clickhouse clickhouse

View File

@ -1 +0,0 @@
d /var/lib/clickhouse 0700 clickhouse clickhouse

View File

@ -1,6 +0,0 @@
<clickhouse>
<logger>
<log></log>
<errorlog></errorlog>
</logger>
</clickhouse>