From: "Golubev Alexander" <fatzer2@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:dev commit in: sys-libs/libnvidia-container/, sys-libs/libnvidia-container/files/
Date: Wed, 13 Nov 2024 17:26:41 +0000 (UTC) [thread overview]
Message-ID: <1731518230.06a9dd831bf8a98148ed8dd70bfe22936c825d10.fatzer2@gentoo> (raw)
commit: 06a9dd831bf8a98148ed8dd70bfe22936c825d10
Author: Alexander Golubev <fatzer2 <AT> gmail <DOT> com>
AuthorDate: Wed Nov 13 17:17:10 2024 +0000
Commit: Golubev Alexander <fatzer2 <AT> gmail <DOT> com>
CommitDate: Wed Nov 13 17:17:10 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=06a9dd83
sys-libs/libnvidia-container: add 1.17.0 drop 1.14.6 +fixes
- drop USE=doc: it installs only trivial documentation which can already
be controlled by FEATURE=nodoc
- remove licenses from DOCS
- make dependency upon sys-libs/libseccomp optional
- drop dependency upon dev-build/bmake
- move x11-drivers/nvidia-drivers to RDEPEND
- make ebuild respect user's flags/CC/etc
Closes: https://bugs.gentoo.org/785154
Closes: https://bugs.gentoo.org/785970
Closes: https://bugs.gentoo.org/927989
Signed-off-by: Alexander Golubev <fatzer2 <AT> gmail.com>
sys-libs/libnvidia-container/Manifest | 2 +-
...ibnvidia-container-1.17.0-fix-makefile-r1.patch | 220 +++++++++++++++++++++
.../libnvidia-container-1.14.6.ebuild | 96 ---------
...99.ebuild => libnvidia-container-1.17.0.ebuild} | 70 ++++---
.../libnvidia-container-9999.ebuild | 70 ++++---
5 files changed, 315 insertions(+), 143 deletions(-)
diff --git a/sys-libs/libnvidia-container/Manifest b/sys-libs/libnvidia-container/Manifest
index 16d3095e5..0ecaa42b8 100644
--- a/sys-libs/libnvidia-container/Manifest
+++ b/sys-libs/libnvidia-container/Manifest
@@ -1,3 +1,3 @@
-DIST libnvidia-container-1.14.6.tar.gz 1549174 BLAKE2B d3c526d7b04ac9cbc6b6bb63f25d4c5b17571169a6cb1a6ab9f7c1cc322a27e3a853373551682b535146914fd2eca809d02391acb458a874a7e9e5c0fc8bf459 SHA512 598f4b2752615bfe44782a60cd2afee769fde496c6bdff613f58c4a3f0b02f8b398b293659cb78a84ff5fbff50892f3cb4b9cd3c6a60d17897fa5e063905a0c5
DIST libnvidia-container-1.16.1.tar.gz 1610619 BLAKE2B dc490c1bcd891119841bb5c1aa0c1977f0f326118f7bc86adbab6a0053f52950e4ced5a4b025d6b557c1526e3125aa69ac47c10c621993becc5c40b13d6990c5 SHA512 b304c284c5ab0c3544362307dc16ffcca8d34497e4356a520dc6da81a86a62b2a262b528cba559bb0d7a3addf018c3b50b6cb78669c82c1b4acae159e5922548
+DIST libnvidia-container-1.17.0.tar.gz 1611953 BLAKE2B 7e0506b77790b4e079285990dec3486a8c0b482c9e9864dea1257b6250dc5371f6f3f2d8cd78ec4d73b09e45a7ac4cf31f8d03b64b96507319d433797aa5c435 SHA512 cdb3dba9033414211d5d41c623ef71cd7296be4e8f87a03afcb557fb27c3fa2212c55479cd3235f935426ca7b48e9d616753cbd9b85d38f7e8d1fa5208cc9419
DIST libnvidia-container-nvidia-modprobe-550.54.14.tar.gz 47147 BLAKE2B 7b334877d98d0c75d5750192dea868436938852443ced14e74e59076ed4d8be9e361cdefbe48295d87bb91ac4565152ec3f3233479b3da19bb8baf8e7ef53cd6 SHA512 279228aa315ff5fd1a23df23527aff58b2319f11f9fc7d939fa285ea933b4cc6d223451e20ecf7f50baba9f6c9c100e57cb77675d0d17fa77f19d3fea2ccc193
diff --git a/sys-libs/libnvidia-container/files/libnvidia-container-1.17.0-fix-makefile-r1.patch b/sys-libs/libnvidia-container/files/libnvidia-container-1.17.0-fix-makefile-r1.patch
new file mode 100644
index 000000000..27efe9470
--- /dev/null
+++ b/sys-libs/libnvidia-container/files/libnvidia-container-1.17.0-fix-makefile-r1.patch
@@ -0,0 +1,220 @@
+Base on The patch from Arch[1] but better suited to Gentoo needs.
+
+[1]: https://gitlab.archlinux.org/archlinux/packaging/packages/libnvidia-container/-/blob/main/fix-makefile.patch
+diff --git a/Makefile b/Makefile
+index 6fb6976..c6f26d3 100644
+--- a/Makefile
++++ b/Makefile
+@@ -18,18 +18,16 @@
+ ##### Global variables #####
+
+ WITH_NVCGO ?= yes
+-WITH_LIBELF ?= no
+-WITH_TIRPC ?= no
++WITH_TIRPC ?= yes
+ WITH_SECCOMP ?= yes
+
+ ##### Global definitions #####
+
+-export prefix = /usr/local
++export prefix ?= /usr
+ export exec_prefix = $(prefix)
+ export bindir = $(exec_prefix)/bin
+-export libdir = $(exec_prefix)/lib
++export libdir ?= $(exec_prefix)/lib64
+ export docdir = $(prefix)/share/doc
+-export libdbgdir = $(prefix)/lib/debug$(libdir)
+ export includedir = $(prefix)/include
+ export pkgconfdir = $(libdir)/pkgconfig
+
+@@ -158,20 +156,17 @@ ifeq ($(WITH_NVCGO), yes)
+ LIB_CPPFLAGS += -DWITH_NVCGO
+ LIB_LDLIBS_SHARED += -lpthread
+ endif
+-ifeq ($(WITH_LIBELF), yes)
++# Build with system libelf unconditionally
+ LIB_CPPFLAGS += -DWITH_LIBELF
+ LIB_LDLIBS_SHARED += -lelf
+-else
+-LIB_LDLIBS_STATIC += -l:libelf.a
+-endif
+ ifeq ($(WITH_TIRPC), yes)
+-LIB_CPPFLAGS += -isystem $(DEPS_DIR)$(includedir)/tirpc -DWITH_TIRPC
+-LIB_LDLIBS_STATIC += -l:libtirpc.a
+-LIB_LDLIBS_SHARED += -lpthread
++LIB_CPPFLAGS += -isystem $(includedir)/tirpc -DWITH_TIRPC
++# dynamically link with system tirpc
++LIB_LDLIBS_SHARED += -lpthread -ltirpc
+ endif
+ ifeq ($(WITH_SECCOMP), yes)
+-LIB_CPPFLAGS += -DWITH_SECCOMP $(shell pkg-config --cflags libseccomp)
+-LIB_LDLIBS_SHARED += $(shell pkg-config --libs libseccomp)
++LIB_CPPFLAGS += -DWITH_SECCOMP $(shell $(PKG_CONFIG) --cflags libseccomp)
++LIB_LDLIBS_SHARED += $(shell $(PKG_CONFIG) --libs libseccomp)
+ endif
+ LIB_CPPFLAGS += $(CPPFLAGS)
+ LIB_CFLAGS += $(CFLAGS)
+@@ -222,22 +217,14 @@ $(BIN_OBJS): %.o: %.c | shared
+ -include $(DEPENDENCIES)
+
+ $(LIB_SHARED): $(LIB_OBJS)
+- $(MKDIR) -p $(DEBUG_DIR)
+ $(CC) $(LIB_CFLAGS) $(LIB_CPPFLAGS) $(LIB_LDFLAGS) $(OUTPUT_OPTION) $^ $(LIB_SCRIPT) $(LIB_LDLIBS)
+- $(OBJCPY) --only-keep-debug $@ $(LIB_SONAME)
+- $(OBJCPY) --add-gnu-debuglink=$(LIB_SONAME) $@
+- $(MV) $(LIB_SONAME) $(DEBUG_DIR)
+- $(STRIP) --strip-unneeded -R .comment $@
+
+ $(LIB_STATIC_OBJ): $(LIB_OBJS)
+ # FIXME Handle user-defined LDFLAGS and LDLIBS
+ $(LD) -d -r --exclude-libs ALL -L$(DEPS_DIR)$(libdir) $(OUTPUT_OPTION) $^ $(LIB_LDLIBS_STATIC)
+- $(OBJCPY) --localize-hidden $@
+- $(STRIP) --strip-unneeded -R .comment $@
+
+ $(BIN_NAME): $(BIN_OBJS)
+ $(CC) $(BIN_CFLAGS) $(BIN_CPPFLAGS) $(BIN_LDFLAGS) $(OUTPUT_OPTION) $^ $(BIN_SCRIPT) $(BIN_LDLIBS)
+- $(STRIP) --strip-unneeded -R .comment $@
+
+ ##### Public rules #####
+
+@@ -262,15 +249,9 @@ deps: $(LIB_RPC_SRCS) $(BUILD_DEFS)
+ ifeq ($(WITH_NVCGO), yes)
+ $(MAKE) -f $(MAKE_DIR)/nvcgo.mk DESTDIR=$(DEPS_DIR) MAJOR=$(MAJOR) VERSION=$(VERSION) LIB_NAME=$(LIBGO_NAME) install
+ endif
+-ifeq ($(WITH_LIBELF), no)
+- $(MAKE) -f $(MAKE_DIR)/elftoolchain.mk DESTDIR=$(DEPS_DIR) install
+-endif
+-ifeq ($(WITH_TIRPC), yes)
+- $(MAKE) -f $(MAKE_DIR)/libtirpc.mk DESTDIR=$(DEPS_DIR) install
+-endif
+
+ install: all
+- $(INSTALL) -d -m 755 $(addprefix $(DESTDIR),$(includedir) $(bindir) $(libdir) $(docdir) $(libdbgdir) $(pkgconfdir))
++ $(INSTALL) -d -m 755 $(addprefix $(DESTDIR),$(includedir) $(bindir) $(libdir) $(pkgconfdir))
+ # Install header files
+ $(INSTALL) -m 644 $(LIB_INCS) $(DESTDIR)$(includedir)
+ # Install library files
+@@ -279,18 +260,18 @@ install: all
+ $(LN) -sf $(LIB_SONAME) $(DESTDIR)$(libdir)/$(LIB_SYMLINK)
+ ifeq ($(WITH_NVCGO), yes)
+ $(INSTALL) -m 755 $(DEPS_DIR)$(libdir)/$(LIBGO_SHARED) $(DESTDIR)$(libdir)
++ # FIXME: for some reason ldconfig stopped creating this symlink after applying Arch Linux LDFLAGS
++ $(LN) -sf $(LIBGO_SHARED) $(DESTDIR)$(libdir)/$(LIBGO_SONAME)
+ $(LN) -sf $(LIBGO_SONAME) $(DESTDIR)$(libdir)/$(LIBGO_SYMLINK)
+ endif
+ $(LDCONFIG) -n $(DESTDIR)$(libdir)
+- # Install debugging symbols
+- $(INSTALL) -m 644 $(DEBUG_DIR)/$(LIB_SONAME) $(DESTDIR)$(libdbgdir)
+ # Install configuration files
+ $(MAKE_DIR)/$(LIB_PKGCFG).in "$(strip $(VERSION))" "$(strip $(LIB_LDLIBS_SHARED))" > $(DESTDIR)$(pkgconfdir)/$(LIB_PKGCFG)
+ # Install binary files
+ $(INSTALL) -m 755 $(BIN_NAME) $(DESTDIR)$(bindir)
+ # Install documentation files
+- $(INSTALL) -d -m 755 $(DESTDIR)$(docdir)/$(LIB_NAME)-$(VERSION)
+- $(INSTALL) -m 644 $(DOC_FILES) $(DESTDIR)$(docdir)/$(LIB_NAME)-$(VERSION)
++ # $(INSTALL) -d -m 755 $(DESTDIR)$(docdir)/$(LIB_NAME)-$(VERSION)
++ # $(INSTALL) -m 644 $(DOC_FILES) $(DESTDIR)$(docdir)/$(LIB_NAME)-$(VERSION)
+
+ uninstall:
+ # Uninstall header files
+@@ -300,14 +281,12 @@ uninstall:
+ ifeq ($(WITH_NVCGO), yes)
+ $(RM) $(addprefix $(DESTDIR)$(libdir)/,$(LIBGO_SHARED) $(LIBGO_SONAME) $(LIBGO_SYMLINK))
+ endif
+- # Uninstall debugging symbols
+- $(RM) $(DESTDIR)$(libdbgdir)/$(LIB_SONAME)
+ # Uninstall configuration files
+ $(RM) $(DESTDIR)$(pkgconfdir)/$(LIB_PKGCFG)
+ # Uninstall binary files
+ $(RM) $(DESTDIR)$(bindir)/$(BIN_NAME)
+ # Uninstall documentation files
+- $(RM) -r $(DESTDIR)$(docdir)/$(LIB_NAME)-$(VERSION)
++ # $(RM) -r $(DESTDIR)$(docdir)/$(LIB_NAME)-$(VERSION)
+
+ dist: DESTDIR:=$(DIST_DIR)/$(LIB_NAME)_$(VERSION)$(addprefix -,$(TAG))
+ dist: install
+@@ -320,12 +299,6 @@ depsclean:
+ ifeq ($(WITH_NVCGO), yes)
+ -$(MAKE) -f $(MAKE_DIR)/nvcgo.mk clean
+ endif
+-ifeq ($(WITH_LIBELF), no)
+- -$(MAKE) -f $(MAKE_DIR)/elftoolchain.mk clean
+-endif
+-ifeq ($(WITH_TIRPC), yes)
+- -$(MAKE) -f $(MAKE_DIR)/libtirpc.mk clean
+-endif
+
+ mostlyclean:
+ $(RM) $(LIB_OBJS) $(LIB_STATIC_OBJ) $(BIN_OBJS) $(DEPENDENCIES)
+diff --git a/mk/common.mk b/mk/common.mk
+index f6d5fbf..594ec08 100644
+--- a/mk/common.mk
++++ b/mk/common.mk
+@@ -19,6 +19,7 @@ RPCGEN ?= rpcgen
+ BMAKE ?= MAKEFLAGS= bmake
+ DOCKER ?= docker
+ PATCH ?= patch
++PKG_CONFIG ?= pkg-config
+
+ UID := $(shell id -u)
+ GID := $(shell id -g)
+diff --git a/mk/nvcgo.mk b/mk/nvcgo.mk
+index 0060f0e..877a72b 100644
+--- a/mk/nvcgo.mk
++++ b/mk/nvcgo.mk
+@@ -17,7 +17,7 @@ include $(MAKE_DIR)/common.mk
+ ##### Source definitions #####
+
+ PREFIX := nvcgo
+-SRCS_DIR := $(DEPS_DIR)/src/$(PREFIX)
++SRCS_DIR := $(CURDIR)/src/$(PREFIX)
+ VERSION := $(VERSION)
+
+ ##### Public rules #####
+@@ -25,9 +25,6 @@ VERSION := $(VERSION)
+ .PHONY: all install clean
+
+ build:
+- $(RM) -rf $(SRCS_DIR)
+- $(CP) -R $(CURDIR)/src/$(PREFIX) $(SRCS_DIR)
+- $(MAKE) -C $(SRCS_DIR) VERSION=$(VERSION) clean
+ $(MAKE) -C $(SRCS_DIR) VERSION=$(VERSION) build
+
+ install: build
+diff --git a/mk/nvidia-modprobe.mk b/mk/nvidia-modprobe.mk
+index 3406222..339275f 100644
+--- a/mk/nvidia-modprobe.mk
++++ b/mk/nvidia-modprobe.mk
+@@ -25,7 +25,7 @@ PATCH_FILE := $(MAKE_DIR)/nvidia-modprobe.patch
+
+ ARFLAGS := -rU
+ CPPFLAGS := -D_FORTIFY_SOURCE=2 -DNV_LINUX
+-CFLAGS := -O2 -g -fdata-sections -ffunction-sections -fstack-protector -fno-strict-aliasing -fPIC
++CFLAGS := -fdata-sections -ffunction-sections -fstack-protector -fno-strict-aliasing -fPIC $(CFLAGS)
+
+ ##### Private rules #####
+
+diff --git a/src/nvcgo/Makefile b/src/nvcgo/Makefile
+index eaee95a..7d5bd74 100644
+--- a/src/nvcgo/Makefile
++++ b/src/nvcgo/Makefile
+@@ -31,15 +31,15 @@ OBJ_NAME := $(LIB_NAME).so
+ HDR_NAME := $(LIB_NAME).h
+ CTYPES_H := ctypes.h
+
+-CGO_CFLAGS := -std=gnu11 -O2
+-CGO_LDFLAGS := -Wl,--gc-sections -Wl,-s -Wl,-soname,$(LIB_SONAME)
++CGO_CFLAGS := -std=gnu11 $(CGO_CFLAGS)
++CGO_LDFLAGS := -Wl,--gc-sections -Wl,-soname,$(LIB_SONAME) $(CGO_LDFLAGS)
+
+ build: $(OBJ_NAME)
+
+ $(OBJ_NAME): $(wildcard $(CURDIR)/*.go) $(wildcard */*.go)
+ export CGO_CFLAGS="$(CGO_CFLAGS)"; \
+- export CGO_LDFLAGS="$(CGO_LDFLAGS)"; \
+- $(GO) build -o $(@) -ldflags "-s -w" -buildmode=c-shared .
++ export CGO_LDFLAGS="-Wl,--gc-sections -Wl,-soname,$(LIB_SONAME) $(CGO_LDFLAGS)"; \
++ $(GO) build -o $(@) -ldflags "$(GO_LDFLAGS)" -buildmode=c-shared .
+
+ install: $(OBJ_NAME)
+ $(INSTALL) -d -m 755 $(addprefix $(DESTDIR),$(libdir) $(includedir)/$(PKG_NAME))
diff --git a/sys-libs/libnvidia-container/libnvidia-container-1.14.6.ebuild b/sys-libs/libnvidia-container/libnvidia-container-1.14.6.ebuild
deleted file mode 100644
index 2aa3cbf3f..000000000
--- a/sys-libs/libnvidia-container/libnvidia-container-1.14.6.ebuild
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# check the VERSION in libnvidia-container/mk/nvidia-modprobe.mk
-NVMODV="550.54.14"
-
-DESCRIPTION="NVIDIA container runtime library"
-HOMEPAGE="https://github.com/NVIDIA/libnvidia-container"
-
-if [[ "${PV}" == "9999" ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/NVIDIA/${PN}.git"
-else
- SRC_URI="
- https://github.com/NVIDIA/${PN}/archive/v${PV/_rc/-rc.}.tar.gz -> ${P}.tar.gz
- https://github.com/NVIDIA/nvidia-modprobe/archive/${NVMODV}.tar.gz -> ${PN}-nvidia-modprobe-${NVMODV}.tar.gz
- "
- S="${WORKDIR}/${PN}-${PV/_rc/-rc.}"
- NVMODS="${WORKDIR}/nvidia-modprobe-${NVMODV}"
- KEYWORDS="~amd64"
-fi
-
-LICENSE="Apache-2.0"
-SLOT="0/${PV}"
-IUSE="doc static-libs"
-
-RDEPEND="
- net-libs/libtirpc:=
- sys-libs/libcap
- sys-libs/libseccomp
- virtual/libelf:=
- x11-drivers/nvidia-drivers
-"
-
-DEPEND="${RDEPEND}"
-
-BDEPEND="
- dev-build/bmake
- dev-lang/go
- net-libs/rpcsvc-proto
- sys-apps/lsb-release
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.14.6-fix-makefile.patch
-)
-
-DOCS=( COPYING COPYING.LESSER LICENSE NOTICE README.md)
-
-src_prepare() {
- # nvidia-modprobe patching based on libnvidia-container/mk/nvidia-modprobe.mk
- mkdir -p "${S}"/deps/src/nvidia-modprobe-"${NVMODV}" || die
- cp -r "${NVMODS}"/modprobe-utils/ "${S}"/deps/src/nvidia-modprobe-"${NVMODV}"/ || die
- touch "${S}/deps/src/nvidia-modprobe-${NVMODV}/.download_stamp" || die
- pushd "${S}/deps/src/nvidia-modprobe-${NVMODV}" || die
- eapply -p1 "${S}"/mk/nvidia-modprobe.patch
- popd || die
-
- default
-}
-
-src_compile() {
- export GOPATH="${S}"
- export GOFLAGS="-mod=vendor"
- IFS='_' read -r MY_LIB_VERSION MY_LIB_TAG <<< "${PV}"
- emake \
- CGO_CFLAGS="${CFLAGS}" \
- CGO_LDFLAGS="${LDFLAGS}" \
- GO_LDFLAGS="-compressdwarf=false -linkmode=external" \
- REVISION="${PV}" \
- LIB_VERSION="${MY_LIB_VERSION}" \
- LIB_TAG="${MY_LIB_TAG}"
-}
-
-src_install() {
- emake \
- CGO_CFLAGS="${CFLAGS}" \
- CGO_LDFLAGS="${LDFLAGS}" \
- GO_LDFLAGS="-compressdwarf=false -linkmode=external" \
- REVISION="${PV}" \
- LIB_VERSION="${MY_LIB_VERSION}" \
- LIB_TAG="${MY_LIB_TAG}" \
- DESTDIR="${D}" \
- install
- # Install docs
- if use doc ; then
- einstalldocs # Bug 831705
- fi
- # Cleanup static libraries
- if ! use static-libs ; then
- find "${ED}" -name '*.a' -delete || die # Bug 783984
- fi
-}
diff --git a/sys-libs/libnvidia-container/libnvidia-container-9999.ebuild b/sys-libs/libnvidia-container/libnvidia-container-1.17.0.ebuild
similarity index 58%
copy from sys-libs/libnvidia-container/libnvidia-container-9999.ebuild
copy to sys-libs/libnvidia-container/libnvidia-container-1.17.0.ebuild
index b7d6fa9e1..2a4b620af 100644
--- a/sys-libs/libnvidia-container/libnvidia-container-9999.ebuild
+++ b/sys-libs/libnvidia-container/libnvidia-container-1.17.0.ebuild
@@ -3,6 +3,8 @@
EAPI=8
+inherit toolchain-funcs
+
# check the VERSION in libnvidia-container/mk/nvidia-modprobe.mk
NVMODV="550.54.14"
@@ -26,20 +28,22 @@ SRC_URI+="
LICENSE="Apache-2.0"
SLOT="0/${PV}"
-IUSE="doc static-libs"
-
-RDEPEND="
+IUSE="+seccomp static-libs"
+# libtirpc
+# NOTE It seams that library also has optional support for net-libs/libtirpc, but I didn't
+# manage to build without it, probably the support for that build-roted away.
+DEPEND="
net-libs/libtirpc:=
sys-libs/libcap
- sys-libs/libseccomp
virtual/libelf:=
- x11-drivers/nvidia-drivers
+ seccomp? ( sys-libs/libseccomp )
"
-DEPEND="${RDEPEND}"
+RDEPEND="${DEPEND}
+ x11-drivers/nvidia-drivers
+"
BDEPEND="
- dev-build/bmake
dev-lang/go
net-libs/rpcsvc-proto
sys-apps/lsb-release
@@ -47,10 +51,10 @@ BDEPEND="
"
PATCHES=(
- "${FILESDIR}"/${PN}-1.14.6-fix-makefile.patch
+ "${FILESDIR}/${PN}-1.17.0-fix-makefile-r1.patch"
)
-DOCS=( COPYING COPYING.LESSER LICENSE NOTICE README.md)
+DOCS=( NOTICE README.md )
src_unpack() {
default_src_unpack
@@ -71,27 +75,47 @@ src_prepare() {
default
}
-src_compile() {
+src_configure() {
export GOPATH="${S}"
export GOFLAGS="-mod=vendor"
- IFS='_' read -r MY_LIB_VERSION MY_LIB_TAG <<< "${PV}"
- emake \
- CGO_CFLAGS="${CFLAGS}" \
- CGO_LDFLAGS="${LDFLAGS}" \
+ export CFLAGS="${CFLAGS}"
+ export LDFLAGS="${LDFLAGS}"
+ export CGO_CFLAGS="${CGO_CFLAGS:-$CFLAGS}"
+ export CGO_LDFLAGS="${CGO_LDFLAGS:-$LDFLAGS}"
+
+ tc-export CC LD OBJCOPY PKG_CONFIG
+
+ # we could also set GO compiller, but it currently defaults to gccgo, but as for now I believe
+ # most users will prefer dev-lang/go and they usually don't define GO="go" their make.conf either.
+ # tc-export GO
+
+ my_makeopts=(
+ prefix="${EPREFIX}/usr"
+ libdir="${EPREFIX}/usr/$(get_libdir)"
GO_LDFLAGS="-compressdwarf=false -linkmode=external"
+ WITH_SECCOMP="$(usex seccomp)"
+ )
+ # WITH_TIRPC="$(usex libtirpc)"
+
+ if [[ "${PV}" != "9999" ]] ; then
+ IFS='_' read -r MY_LIB_VERSION MY_LIB_TAG <<< "${PV}"
+
+ my_makeopts=( "${my_makeopts[@]}"
+ REVISION="${PV}"
+ LIB_VERSION="${MY_LIB_VERSION}"
+ LIB_TAG="${MY_LIB_TAG}"
+ )
+ fi
+}
+
+src_compile() {
+ emake "${my_makeopts[@]}"
}
src_install() {
- emake \
- CGO_CFLAGS="${CFLAGS}" \
- CGO_LDFLAGS="${LDFLAGS}" \
- GO_LDFLAGS="-compressdwarf=false -linkmode=external" \
- DESTDIR="${D}" \
- install
+ emake "${my_makeopts[@]}" DESTDIR="${D}" install
# Install docs
- if use doc ; then
- einstalldocs # Bug 831705
- fi
+ einstalldocs # Bug 831705
# Cleanup static libraries
if ! use static-libs ; then
find "${ED}" -name '*.a' -delete || die # Bug 783984
diff --git a/sys-libs/libnvidia-container/libnvidia-container-9999.ebuild b/sys-libs/libnvidia-container/libnvidia-container-9999.ebuild
index b7d6fa9e1..2a4b620af 100644
--- a/sys-libs/libnvidia-container/libnvidia-container-9999.ebuild
+++ b/sys-libs/libnvidia-container/libnvidia-container-9999.ebuild
@@ -3,6 +3,8 @@
EAPI=8
+inherit toolchain-funcs
+
# check the VERSION in libnvidia-container/mk/nvidia-modprobe.mk
NVMODV="550.54.14"
@@ -26,20 +28,22 @@ SRC_URI+="
LICENSE="Apache-2.0"
SLOT="0/${PV}"
-IUSE="doc static-libs"
-
-RDEPEND="
+IUSE="+seccomp static-libs"
+# libtirpc
+# NOTE It seams that library also has optional support for net-libs/libtirpc, but I didn't
+# manage to build without it, probably the support for that build-roted away.
+DEPEND="
net-libs/libtirpc:=
sys-libs/libcap
- sys-libs/libseccomp
virtual/libelf:=
- x11-drivers/nvidia-drivers
+ seccomp? ( sys-libs/libseccomp )
"
-DEPEND="${RDEPEND}"
+RDEPEND="${DEPEND}
+ x11-drivers/nvidia-drivers
+"
BDEPEND="
- dev-build/bmake
dev-lang/go
net-libs/rpcsvc-proto
sys-apps/lsb-release
@@ -47,10 +51,10 @@ BDEPEND="
"
PATCHES=(
- "${FILESDIR}"/${PN}-1.14.6-fix-makefile.patch
+ "${FILESDIR}/${PN}-1.17.0-fix-makefile-r1.patch"
)
-DOCS=( COPYING COPYING.LESSER LICENSE NOTICE README.md)
+DOCS=( NOTICE README.md )
src_unpack() {
default_src_unpack
@@ -71,27 +75,47 @@ src_prepare() {
default
}
-src_compile() {
+src_configure() {
export GOPATH="${S}"
export GOFLAGS="-mod=vendor"
- IFS='_' read -r MY_LIB_VERSION MY_LIB_TAG <<< "${PV}"
- emake \
- CGO_CFLAGS="${CFLAGS}" \
- CGO_LDFLAGS="${LDFLAGS}" \
+ export CFLAGS="${CFLAGS}"
+ export LDFLAGS="${LDFLAGS}"
+ export CGO_CFLAGS="${CGO_CFLAGS:-$CFLAGS}"
+ export CGO_LDFLAGS="${CGO_LDFLAGS:-$LDFLAGS}"
+
+ tc-export CC LD OBJCOPY PKG_CONFIG
+
+ # we could also set GO compiller, but it currently defaults to gccgo, but as for now I believe
+ # most users will prefer dev-lang/go and they usually don't define GO="go" their make.conf either.
+ # tc-export GO
+
+ my_makeopts=(
+ prefix="${EPREFIX}/usr"
+ libdir="${EPREFIX}/usr/$(get_libdir)"
GO_LDFLAGS="-compressdwarf=false -linkmode=external"
+ WITH_SECCOMP="$(usex seccomp)"
+ )
+ # WITH_TIRPC="$(usex libtirpc)"
+
+ if [[ "${PV}" != "9999" ]] ; then
+ IFS='_' read -r MY_LIB_VERSION MY_LIB_TAG <<< "${PV}"
+
+ my_makeopts=( "${my_makeopts[@]}"
+ REVISION="${PV}"
+ LIB_VERSION="${MY_LIB_VERSION}"
+ LIB_TAG="${MY_LIB_TAG}"
+ )
+ fi
+}
+
+src_compile() {
+ emake "${my_makeopts[@]}"
}
src_install() {
- emake \
- CGO_CFLAGS="${CFLAGS}" \
- CGO_LDFLAGS="${LDFLAGS}" \
- GO_LDFLAGS="-compressdwarf=false -linkmode=external" \
- DESTDIR="${D}" \
- install
+ emake "${my_makeopts[@]}" DESTDIR="${D}" install
# Install docs
- if use doc ; then
- einstalldocs # Bug 831705
- fi
+ einstalldocs # Bug 831705
# Cleanup static libraries
if ! use static-libs ; then
find "${ED}" -name '*.a' -delete || die # Bug 783984
next reply other threads:[~2024-11-13 17:26 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-13 17:26 Golubev Alexander [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-12-10 0:42 [gentoo-commits] repo/proj/guru:dev commit in: sys-libs/libnvidia-container/, sys-libs/libnvidia-container/files/ Anna Vyalkova
2024-03-27 11:50 [gentoo-commits] repo/proj/guru:master commit in: sys-libs/libnvidia-container/files/, sys-libs/libnvidia-container/ Rui Huang
2024-03-26 12:24 ` [gentoo-commits] repo/proj/guru:dev commit in: sys-libs/libnvidia-container/, sys-libs/libnvidia-container/files/ Rui Huang
2024-03-27 11:50 [gentoo-commits] repo/proj/guru:master commit in: sys-libs/libnvidia-container/files/, sys-libs/libnvidia-container/ Rui Huang
2024-03-26 12:24 ` [gentoo-commits] repo/proj/guru:dev commit in: sys-libs/libnvidia-container/, sys-libs/libnvidia-container/files/ Rui Huang
2022-01-18 15:23 Rui Huang
2020-09-18 16:30 Rui Huang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1731518230.06a9dd831bf8a98148ed8dd70bfe22936c825d10.fatzer2@gentoo \
--to=fatzer2@gmail.com \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox