commit: 06a9dd831bf8a98148ed8dd70bfe22936c825d10 Author: Alexander Golubev <fatzer2 <AT> gmail <DOT> com> AuthorDate: Wed Nov 13 17:17:10 2024 +0000 Commit: David Roman <davidroman96 <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
