gnu: lxc: Update to 6.0.1

* gnu/packages/virtualization.scm (lxc): Update to 6.0.1.
[source] Add patch lxc-no-static-bin.patch.
[build-system]: Change to meson-build-system.
[inputs]: Add apparmor and dbus.
[arguments]: Replace “--docdir=…” with “-Ddoc-path=…”.
Replace “--sysconfdir=/etc” with “-Ddistrosysconfdir=/etc”.
Remove “--localstatedir=/var”.
Add “-Dinit-script=sysvinit”.
Add “-Dinstall-state-dirs=false”.
Add “-Dinstall-init-files=false”.
Add “-Dspecfile=false”.
Add “-Db_lto=false”.
<#:phases>: No longer replace ‘install’.
* gnu/packages/patches/lxc-static-link.patch: Add patch.
* gnu/local.mk (dist_patch_DATA): Register it here.

Change-Id: I089d53611a996e44cb9a92986c2b8de9cb69634f
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
Jakob Kirsch 2024-09-19 11:54:55 +02:00 committed by Liliana Marie Prikler
parent b167ff4bc3
commit e9d903f146
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87
3 changed files with 73 additions and 19 deletions

View file

@ -1744,6 +1744,7 @@ dist_patch_DATA = \
%D%/packages/patches/lua-5.4-liblua-so.patch \
%D%/packages/patches/lugaru-fix-sound.patch \
%D%/packages/patches/luit-posix.patch \
%D%/packages/patches/lxc-no-static-bin.patch \
%D%/packages/patches/mactelnet-remove-init.patch \
%D%/packages/patches/mailutils-variable-lookup.patch \
%D%/packages/patches/make-impure-dirs.patch \

View file

@ -0,0 +1,58 @@
init.lxc.static is only used as a fallback and breaks strip-runpath,
so let's not build it.
Index: lxc-6.0.1/src/lxc/cmd/meson.build
===================================================================
--- lxc-6.0.1.orig/src/lxc/cmd/meson.build
+++ lxc-6.0.1/src/lxc/cmd/meson.build
@@ -62,19 +62,6 @@ cmd_lxc_update_config = configure_file(
output: 'lxc-update-config')
install_data(join_paths(project_build_root, 'src/lxc/cmd/lxc-update-config'), install_dir: bindir)
-if sanitize == 'none' and libcap_static_linkable
- cmd_programs += executable(
- 'init.lxc.static',
- cmd_lxc_init_sources,
- include_directories: liblxc_includes,
- link_with: [liblxc_static],
- link_args: ['-static'],
- c_args: ['-DNO_LXC_CONF'],
- dependencies: [libcap_static] + liblxc_dependency_headers,
- install_dir: sbindir,
- install: true)
-endif
-
cmd_programs += executable(
'init.lxc',
cmd_lxc_init_sources,
Index: lxc-6.0.1/meson.build
===================================================================
--- lxc-6.0.1.orig/meson.build
+++ lxc-6.0.1/meson.build
@@ -426,26 +426,11 @@ if want_capabilities
pkgconfig_libs += libcap
liblxc_dependencies += libcap
- libcap_static = dependency('libcap', required: false, static: true)
- if not libcap_static.found()
- # Compat with Ubuntu 14.04 which ships libcap w/o .pc file
- libcap_static = cc.find_library('cap', required: false, static: true)
- endif
-
code = '''
int main(int argc, char *argv[]) { return 0; };
'''
- if libcap_static.found()
- libcap_static_linkable = cc.links(code, args: '-static', dependencies: libcap_static)
- else
- libcap_static_linkable = false
- endif
- srcconf.set10('HAVE_STATIC_LIBCAP', libcap_static_linkable)
else
- libcap_static = []
- libcap_static_linkable = false
srcconf.set10('HAVE_LIBCAP', false)
- srcconf.set10('HAVE_STATIC_LIBCAP', false)
endif
libutil = cc.find_library('util', required: false)

View file

@ -36,6 +36,7 @@
;;; Copyright © 2024 Raven Hallsby <karl@hallsby.com>
;;; Copyright © 2024 jgart <jgart@dismail.de>
;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -56,6 +57,7 @@ (define-module (gnu packages virtualization)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin)
#:use-module (gnu packages apparmor)
#:use-module (gnu packages assembly)
#:use-module (gnu packages attr)
#:use-module (gnu packages autotools)
@ -1350,7 +1352,7 @@ (define-public libosinfo
(define-public lxc
(package
(name "lxc")
(version "4.0.12")
(version "6.0.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -1358,30 +1360,23 @@ (define-public lxc
version ".tar.gz"))
(sha256
(base32
"1vyk2j5w9gfyh23w3ar09cycyws16mxh3clbb33yhqzwcs1jy96v"))))
(build-system gnu-build-system)
"1q3p3zzm338pmc97z6ly8cjginkyljxqbk1c37l2xa46vfy8zcyc"))
(patches (search-patches "lxc-no-static-bin.patch"))))
(build-system meson-build-system)
(native-inputs
(list pkg-config docbook2x))
(inputs
(list gnutls libcap libseccomp libselinux))
(list apparmor dbus gnutls libcap libseccomp libselinux))
(arguments
(list #:configure-flags
#~(list (string-append "--docdir=" #$output "/share/doc/"
#~(list (string-append "-Ddoc-path=" #$output "/share/doc/"
#$name "-" #$version)
"--sysconfdir=/etc"
"--localstatedir=/var")
#:phases
#~(modify-phases %standard-phases
(replace 'install
(lambda _
(invoke "make" "install"
(string-append "bashcompdir=" #$output
"/etc/bash_completion.d")
;; Don't install files into /var and /etc.
"LXCPATH=/tmp/var/lib/lxc"
"localstatedir=/tmp/var"
"sysconfdir=/tmp/etc"
"sysconfigdir=/tmp/etc/default"))))))
"-Ddistrosysconfdir=/etc"
"-Dinit-script=sysvinit"
"-Dinstall-state-dirs=false"
"-Dinstall-init-files=false"
"-Dspecfile=false"
"-Db_lto=false")))
(synopsis "Linux container tools")
(home-page "https://linuxcontainers.org/")
(description