Date: Thursday, February 2, 2023 @ 01:21:09
  Author: artafinde
Revision: 1391890

kafka: add zookeeper service and fix kafka service

Added:
  kafka/trunk/set-base_dir.patch
  kafka/trunk/zookeeper.service
Modified:
  kafka/trunk/PKGBUILD
  kafka/trunk/kafka.service
  kafka/trunk/kafka.tmpfiles

--------------------+
 PKGBUILD           |   30 ++++++++++++++++++++++++++----
 kafka.service      |   10 +++++++---
 kafka.tmpfiles     |    1 +
 set-base_dir.patch |   19 +++++++++++++++++++
 zookeeper.service  |   41 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 94 insertions(+), 7 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2023-02-02 00:59:50 UTC (rev 1391889)
+++ PKGBUILD    2023-02-02 01:21:09 UTC (rev 1391890)
@@ -12,13 +12,28 @@
 makedepends=(gradle 'java-environment=17')
 source=(
        
https://downloads.apache.org/$pkgname/$pkgver/$pkgname-$pkgver-src.tgz{,.asc}
+       $pkgname.service
+       $pkgname.sysusers
+       $pkgname.tmpfiles
+       zookeeper.service
+       set-base_dir.patch
        support-gradle-7_6.patch
 )
 
sha512sums=('385bbe644ca1cce80e8edca0aab76c02d00ef6ba6a408fa18bacef279524662102678d7188b5d814acba476dd7361a1ecd1a8aa34e4425c4d44a640b6dd1aea4'
             'SKIP'
+            
'5b61517a2236bbfce86cc372f0000fdd78fd8715fa2ee872972401df6b9950427ef952b3b248479a5fedc0f7caab3df9cf08982dac4ba5ed2d486c96e521eed5'
+            
'ae31dd1282250295401df11047bfca13263f8ab867df08f4030f1ddbd2dd5b407e5a59674e8d77a02cdf8a33916a3486b308b022b4fcda0374dbf42d9a29ef28'
+            
'6712da5b177131ad235ac857fbd8fb97d2c8821ce5c15c40f82f638eb8b08ee693d73030bce893a61934b48b20e67d611dffb365979aafe12e448100c0b82981'
+            
'6aca852f63f62c8df32721a86cf2ce56630ab1bf428111655908113fe337714fe1149865567e7f0ba1da96fd026cccdb851bcb10ac1823e033edc18adb2ba4c6'
+            
'3739ec988aada505a0eccee6ae27a9ca620547b3117a034d9eec7cae5bc2af26f41aa8bd066945946c19c05e8529034b7a1b1f49ea03a6574760bb6c1a64a7ad'
             
'defa0ec9ee06829d981aad4be3d69c7c772ad61e4b1e2cce2c5a814638cd47b39f27c3099e35d1ab5779e1cdda29dddd9ae72da65e3e08aade44ce6ef967b5b5')
 
b2sums=('e4c37a24b5cbb537fc1b117662e30a63bb11373ec6bfa50e017612853cff476833a3e7b4b1a5dc4f69f59091e98b811a99ddbacffc58f9a14cf40c8bd1147861'
         'SKIP'
+        
'0276cf21cf93d26022c484f085da18d4e314d6f2c6270591a3853cb84a63bbe9ad480949479ac0ef69a96b38508bb2fa528a205e666ce9305713d9da8f074711'
+        
'da8989434085e937bf24735f8ab9cec969293e2db5f0e715e33f9ba91f3cbde864467fd6d9a4ebb37a367cc3c72b364d74c4093dd027fbe3f96c2bd94987d0ac'
+        
'a19e80d0177eb35f74403d7ea68a228650c5aeaf54211fd0fba9a948aa49662c7b1331a0572dce7f5bb69163ee9d2b84a3823b94e176f108fd42904e56ade9d6'
+        
'61f3b3d2c34579a8d1d0ac372b08f74940e57de9a5666a53dfb6a5ddb705d4f96b40c5ab8df9cf6ed85bacc405c639d5a8cbde727e642b75ea05da90e58126c1'
+        
'ced95f54e1efc1cf1e94e933470f0ed19bbb787f0602fbbd7edd188943eda98c31b47debdde2a4cd0c79d32c448dbc6f634162f9ac1f977ba18b67b4376f4901'
         
'5813d14cef8512e6f36e94086e88ac8cefb3ea2c9a534cded6bf9e59cc6b9125612db972738a12c6f7817b0cd3624b1332787caae445bb022b85ae772fbb0585')
 # list of trusted signing keys: https://downloads.apache.org/kafka/KEYS
 validpgpkeys=(
@@ -28,6 +43,7 @@
 prepare() {
        cd "$pkgname-$pkgver-src"
        patch -Np1 < "${srcdir}/support-gradle-7_6.patch"
+       patch -Np1 < "${srcdir}/set-base_dir.patch"
 }
 
 build() {
@@ -56,11 +72,13 @@
        
        # copy application
        install -vdm 755 "$pkgdir/usr/share/$pkgname/"
-       cp -dr --no-preserve='ownership' {bin,libs,licenses,site-docs} 
"$pkgdir/usr/share/$pkgname/"
+       cp -dr --no-preserve='ownership' {bin,config,libs,licenses,site-docs} 
"$pkgdir/usr/share/$pkgname/"
 
-       # copy config
+       # symlink config to /etc
        install -vdm 755 "$pkgdir/etc/$pkgname/"
-       cp -dr --no-preserve='ownership' config/* "$pkgdir/etc/$pkgname/"
+       for _config in config/*; do
+       ln -sv /usr/share/$pkgname/${_config} 
"$pkgdir/etc/$pkgname/${_config#config/}"
+       done
 
        # symlink scripts into PATH
        install -vdm 755 "$pkgdir/usr/bin/"
@@ -70,7 +88,11 @@
        done
 
        # logs directory
-       install -vdm 750 "$pkgdir/var/log/$pkgname/"
+       install -vdm 755 "$pkgdir/var/log/$pkgname/"
        # docs
        install -vDm 644 {LICENSE,NOTICE} -t "$pkgdir/usr/share/doc/$pkgname/"
+       install -vDm 644 $srcdir/$pkgname.service -t 
"$pkgdir/usr/lib/systemd/system/"
+       install -vDm 644 $srcdir/zookeeper.service -t 
"$pkgdir/usr/lib/systemd/system/"
+       install -vDm 644 $srcdir/$pkgname.sysusers 
"$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
+       install -vDm 644 $srcdir/$pkgname.tmpfiles 
"$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
 }

Modified: kafka.service
===================================================================
--- kafka.service       2023-02-02 00:59:50 UTC (rev 1391889)
+++ kafka.service       2023-02-02 01:21:09 UTC (rev 1391890)
@@ -1,14 +1,18 @@
 [Unit]
 Description=Kafka server
-After=network.target
+After=network.target zookeeper.service
+Requires=zookeeper.service
 
 [Service]
 Type=simple
 Environment=KAFKA_PID_DIR=/run/kafka/
-Environment=KAFKA_LOGS_DIR=/var/log/kafka/
+Environment=LOG_DIR=/var/log/kafka
+Environment=KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:/etc/kafka/log4j.properties"
 User=kafka
 WorkingDirectory=/var/lib/kafka
-ExecStart=?? # TODO write a script?
+ExecStart=/usr/bin/kafka-server-start.sh /etc/kafka/server.properties
+ReadWritePaths=/var/log/kafka
+SuccessExitStatus=143
 PrivateTmp=true
 ProtectSystem=strict
 ProtectHome=true

Modified: kafka.tmpfiles
===================================================================
--- kafka.tmpfiles      2023-02-02 00:59:50 UTC (rev 1391889)
+++ kafka.tmpfiles      2023-02-02 01:21:09 UTC (rev 1391890)
@@ -1,6 +1,7 @@
 d %L/kafka 750 kafka kafka - -
 d %t/kafka 750 kafka kafka - -
 d %S/kafka 750 kafka kafka - -
+z /var/log/kafka - kafka kafka -
 z /etc/kafka/kraft/kraft 750 root kafka - -
 z /etc/kafka/kraft/broker.properties 640 root kafka - -
 z /etc/kafka/kraft/controller.properties 640 root kafka - -

Added: set-base_dir.patch
===================================================================
--- set-base_dir.patch                          (rev 0)
+++ set-base_dir.patch  2023-02-02 01:21:09 UTC (rev 1391890)
@@ -0,0 +1,19 @@
+Subject: [PATCH] configure-install-path
+---
+Index: bin/kafka-run-class.sh
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/bin/kafka-run-class.sh b/bin/kafka-run-class.sh
+--- a/bin/kafka-run-class.sh   (revision 
b66af662e61082cb8def576ded1fe5cee37e155f)
++++ b/bin/kafka-run-class.sh   (date 1675290857583)
+@@ -45,7 +45,7 @@
+   fi
+ }
+ 
+-base_dir=$(dirname $0)/..
++base_dir=/usr/share/kafka
+ 
+ if [ -z "$SCALA_VERSION" ]; then
+   SCALA_VERSION=2.13.6

Added: zookeeper.service
===================================================================
--- zookeeper.service                           (rev 0)
+++ zookeeper.service   2023-02-02 01:21:09 UTC (rev 1391890)
@@ -0,0 +1,41 @@
+[Unit]
+Description=Zookeeper distributed coordination server
+After=network.target
+
+[Service]
+Type=simple
+Environment=ZOOKEEPER_PID_DIR=/run/kafka/
+Environment=LOG_DIR=/var/log/kafka
+Environment=KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:/etc/kafka/log4j.properties"
+User=kafka
+WorkingDirectory=/var/lib/kafka
+ExecStart=/usr/bin/zookeeper-server-start.sh /etc/kafka/zookeeper.properties
+ReadWritePaths=/var/log/kafka
+SuccessExitStatus=143
+PrivateTmp=true
+ProtectSystem=strict
+ProtectHome=true
+PrivateDevices=true
+ProtectKernelTunables=true
+ProtectControlGroups=true
+NoNewPrivileges=true
+LockPersonality=true
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE
+CapabilityBoundingSet=~CAP_NET_BROADCAST CAP_NET_RAW
+ProtectHostname=true
+ProtectKernelLogs=true
+ProtectKernelModules=true
+RemoveIPC=true
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK AF_UNIX
+RestrictSUIDSGID=true
+RestrictNamespaces=true
+RestrictRealtime=true
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+SystemCallFilter=~@privileged @resources
+RuntimeDirectory=zookeeper
+StateDirectory=zookeeper
+LogsDirectory=zookeeper
+
+[Install]
+WantedBy=multi-user.target

Reply via email to