Date: Tuesday, March 28, 2023 @ 13:14:00
  Author: dvzrv
Revision: 472094

upgpkg: libcap 2.68-1: Upgrade to 2.68.

Use bash arrays with one entry per line for better handling.
Add make options to local bash arrays for better handling.
Add patch (also sent upstream) to provide flags to go build.
Use CGO_REQUIRED to enforce the use of CGO (which makes Makefile patch work as 
well).

Added:
  libcap/trunk/libcap-2.68-cgo_flags.patch
Modified:
  libcap/trunk/PKGBUILD

-----------------------------+
 PKGBUILD                    |   73 +++++++++++++++++++++++++++++++++++-------
 libcap-2.68-cgo_flags.patch |   41 +++++++++++++++++++++++
 2 files changed, 103 insertions(+), 11 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2023-03-28 12:40:29 UTC (rev 472093)
+++ PKGBUILD    2023-03-28 13:14:00 UTC (rev 472094)
@@ -4,24 +4,65 @@
 # Contributor: Hugo Doria <[email protected]>
 
 pkgname=libcap
-pkgver=2.67
+pkgver=2.68
 pkgrel=1
 pkgdesc="POSIX 1003.1e capabilities"
 arch=(x86_64)
 url="https://sites.google.com/site/fullycapable/";
 license=(GPL2)
-depends=(glibc pam)
-makedepends=(linux-api-headers)
-provides=(libcap.so libpsx.so)
-source=(https://kernel.org/pub/linux/libs/security/linux-privs/${pkgname}2/$pkgname-$pkgver.tar.{xz,sign})
-sha512sums=('2e52c5a571cc1565e6829b0889f63216af10dfd9a86485f8ae7d0fcf4cc0db96aa21eb2ddea29e8dadf41a1194e91fb5961fe84ba07beb2ce950b6131be099d4'
-            'SKIP')
-b2sums=('bd9be22e439397a3c1726093cfee2410df93773b3139d50a1cdc10daecb666ddb9b64daded6e0ec9f2fd6defd16ea156dbd66bd55360ea266131f31ea0f0e989'
-        'SKIP')
+depends=(
+  gcc-libs
+  glibc
+  pam
+)
+makedepends=(
+  go
+  linux-api-headers
+)
+provides=(
+  libcap.so
+  libpsx.so
+)
+source=(
+  
https://kernel.org/pub/linux/libs/security/linux-privs/${pkgname}2/$pkgname-$pkgver.tar.{xz,sign}
+  libcap-2.68-cgo_flags.patch  # provide flags to go build (sent upstream)
+)
+sha512sums=('ede3e1356aef22e18a46dc8ff0727500ab023bea698cf2bb822abb06625e272940afea52ad6457d0cd8cf1c7f435f1b568baf0a6bf0a08ae96fbf6d7502f9de2'
+            'SKIP'
+            
'08db53f996a4d686fe54b43159def06b60f996277023e3729a1855dbc1f26d2279512183fdf852da787cc6b4c4b9a582d789e8dea6a4b6717359e7e08f20a173')
+b2sums=('659ee2b0f92ab7490e7f4c9ccd6aafa02ae36c509654fdb53a0b9da4d5ba8be2d1b5afd2073b2b1c75f9585a0593a9d3e70af59fe0c213e178782bbd11cd3b3d'
+        'SKIP'
+        
'40c4e760efdb203d6a680b1c7f58e45ff7c971cade170a3619db620fdd39d75d9063e6ba1193172a29e3304a948d5e7a77abe803cb803d5124a2c0d8622b5a5a')
 validpgpkeys=(38A644698C69787344E954CE29EE848AE2CCF3F4) # Andrew G. Morgan 
<[email protected]>
 
+prepare() {
+  patch -Np1 -d $pkgname-$pkgver -i ../libcap-2.68-cgo_flags.patch
+}
+
 build() {
-  make DYNAMIC=yes KERNEL_HEADERS=/usr/include lib=lib prefix=/usr sbindir=bin 
-C $pkgname-$pkgver
+  export CGO_CPPFLAGS="$CPPFLAGS"
+  export CGO_CFLAGS="$CFLAGS"
+  export CGO_CXXFLAGS="$CXXFLAGS"
+  export CGO_LDFLAGS="$LDFLAGS"
+  export CGO_REQUIRED="1"
+  export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external 
-mod=readonly -modcacherw"
+
+  local make_options=(
+    CGO_CPPFLAGS="$CPPFLAGS"
+    CGO_CFLAGS="$CFLAGS"
+    CGO_CXXFLAGS="$CXXFLAGS"
+    CGO_LDFLAGS="$LDFLAGS"
+    CGO_REQUIRED="1"
+    GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external 
-mod=readonly -modcacherw"
+    DYNAMIC=yes
+    KERNEL_HEADERS=/usr/include
+    lib=lib
+    prefix=/usr
+    sbindir=bin
+    -C $pkgname-$pkgver
+  )
+
+  make "${make_options[@]}"
 }
 
 check() {
@@ -29,7 +70,17 @@
 }
 
 package() {
-  make DESTDIR="$pkgdir" RAISE_SETFCAP=no lib=lib prefix=/usr sbindir=bin 
install -C $pkgname-$pkgver
+  local make_options=(
+    DESTDIR="$pkgdir"
+    RAISE_SETFCAP=no
+    lib=lib
+    prefix=/usr
+    sbindir=bin
+    install
+    -C $pkgname-$pkgver
+  )
+
+  make "${make_options[@]}"
   install -vDm 644 $pkgname-$pkgver/{CHANGELOG,README} -t 
"$pkgdir/usr/share/doc/$pkgname/"
   install -vDm 644 $pkgname-$pkgver/pam_cap/capability.conf -t 
"$pkgdir/usr/share/doc/$pkgname/examples/"
 }

Added: libcap-2.68-cgo_flags.patch
===================================================================
--- libcap-2.68-cgo_flags.patch                         (rev 0)
+++ libcap-2.68-cgo_flags.patch 2023-03-28 13:14:00 UTC (rev 472094)
@@ -0,0 +1,41 @@
+From 522b78b9d6a1b6cf282a22657dea59bc5c960557 Mon Sep 17 00:00:00 2001
+From: David Runge <[email protected]>
+Date: Tue, 28 Mar 2023 13:44:20 +0200
+Subject: [PATCH] Provide flags when building go binaries
+
+go/Makefile:
+Provide CGO_CFLAGS, CGO_CPPFLAGS, CGO_CXXFLAGS, CGO_LDFLAGS and GOFLAGS
+to the go compiler, so that they may be set for e.g. supplying
+downstream flags (such as for PIE and full RELRO).
+---
+ go/Makefile | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/go/Makefile b/go/Makefile
+index 38c1cf3..3a98af3 100644
+--- a/go/Makefile
++++ b/go/Makefile
+@@ -68,16 +68,16 @@ ifeq ($(RAISE_GO_FILECAP),yes)
+ endif
+ 
+ setid: ../goapps/setid/setid.go CAPGOPACKAGE PSXGOPACKAGE
+-      CC="$(CC)" CGO_ENABLED="$(CGO_REQUIRED)" $(CGO_LDFLAGS_ALLOW) $(GO) 
build $(GO_BUILD_FLAGS) -mod=vendor -o $@ $<
++      CC="$(CC)" CGO_ENABLED="$(CGO_REQUIRED)" $(CGO_LDFLAGS_ALLOW) 
CGO_CFLAGS="$(CGO_CFLAGS)" CGO_CPPFLAGS="$(CGO_CPPFLAGS)" 
CGO_CXXFLAGS="$(CGO_CXXFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" $(GO) build 
$(GO_BUILD_FLAGS) $(GOFLAGS) -mod=vendor -o $@ $<
+ 
+ gowns: ../goapps/gowns/gowns.go CAPGOPACKAGE
+-      CC="$(CC)" CGO_ENABLED="$(CGO_REQUIRED)" $(CGO_LDFLAGS_ALLOW) $(GO) 
build $(GO_BUILD_FLAGS) -mod=vendor -o $@ $<
++      CC="$(CC)" CGO_ENABLED="$(CGO_REQUIRED)" $(CGO_LDFLAGS_ALLOW) 
CGO_CFLAGS="$(CGO_CFLAGS)" CGO_CPPFLAGS="$(CGO_CPPFLAGS)" 
CGO_CXXFLAGS="$(CGO_CXXFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" $(GO) build 
$(GO_BUILD_FLAGS) $(GOFLAGS) -mod=vendor -o $@ $<
+ 
+ captree: ../goapps/captree/captree.go CAPGOPACKAGE
+-      CC="$(CC)" CGO_ENABLED="$(CGO_REQUIRED)" $(CGO_LDFLAGS_ALLOW) $(GO) 
build $(GO_BUILD_FLAGS) -mod=vendor -o $@ $<
++      CC="$(CC)" CGO_ENABLED="$(CGO_REQUIRED)" $(CGO_LDFLAGS_ALLOW) 
CGO_CFLAGS="$(CGO_CFLAGS)" CGO_CPPFLAGS="$(CGO_CPPFLAGS)" 
CGO_CXXFLAGS="$(CGO_CXXFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" $(GO) build 
$(GO_BUILD_FLAGS) $(GOFLAGS) -mod=vendor -o $@ $<
+ 
+ captrace: ../goapps/captrace/captrace.go CAPGOPACKAGE
+-      CC="$(CC)" CGO_ENABLED="$(CGO_REQUIRED)" $(CGO_LDFLAGS_ALLOW) $(GO) 
build $(GO_BUILD_FLAGS) -mod=vendor -o $@ $<
++      CC="$(CC)" CGO_ENABLED="$(CGO_REQUIRED)" $(CGO_LDFLAGS_ALLOW) 
CGO_CFLAGS="$(CGO_CFLAGS)" CGO_CPPFLAGS="$(CGO_CPPFLAGS)" 
CGO_CXXFLAGS="$(CGO_CXXFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" $(GO) build 
$(GO_BUILD_FLAGS) $(GOFLAGS) -mod=vendor -o $@ $<
+ 
+ ok: ok.go vendor/modules.txt
+       CC="$(CC)" CGO_ENABLED="0" $(GO) build $(GO_BUILD_FLAGS)  -mod=vendor $<
+-- 
+2.40.0
+

Reply via email to