mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 19:21:04 +00:00
lxc: 5.0.3 -> 6.0.0, pin to lts, move/format
This commit is contained in:
parent
f171f4ffd4
commit
7e73ead5d0
78
pkgs/by-name/lx/lxc/4428.diff
Normal file
78
pkgs/by-name/lx/lxc/4428.diff
Normal file
|
@ -0,0 +1,78 @@
|
|||
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
|
||||
index 92d6f01c3d..d2b67d8d6f 100644
|
||||
--- a/.github/workflows/build.yml
|
||||
+++ b/.github/workflows/build.yml
|
||||
@@ -50,6 +50,7 @@ jobs:
|
||||
meson setup build \
|
||||
-Dtests=true \
|
||||
-Dpam-cgroup=true \
|
||||
+ -Dtools-multicall=true \
|
||||
-Dwerror=true \
|
||||
-Db_lto_mode=default
|
||||
ninja -C build
|
||||
diff --git a/src/lxc/cmd/meson.build b/src/lxc/cmd/meson.build
|
||||
index 3ed3670e4b..edfb986622 100644
|
||||
--- a/src/lxc/cmd/meson.build
|
||||
+++ b/src/lxc/cmd/meson.build
|
||||
@@ -46,7 +46,7 @@ cmd_lxc_init_static_sources = files(
|
||||
'../string_utils.c',
|
||||
'../string_utils.h') + include_sources
|
||||
|
||||
-cmd_lxc_monitord_sources = files('lxc_monitord.c') + include_sources + netns_ifaddrs_sources
|
||||
+cmd_lxc_monitord_sources = files('lxc_monitord.c')
|
||||
cmd_lxc_user_nic_sources = files('lxc_user_nic.c') + cmd_common_sources + netns_ifaddrs_sources
|
||||
cmd_lxc_usernsexec_sources = files('lxc_usernsexec.c') + cmd_common_sources + netns_ifaddrs_sources
|
||||
|
||||
@@ -88,8 +88,8 @@ cmd_programs += executable(
|
||||
'lxc-monitord',
|
||||
cmd_lxc_monitord_sources,
|
||||
include_directories: liblxc_includes,
|
||||
- dependencies: liblxc_dep,
|
||||
- link_with: [liblxc_static],
|
||||
+ dependencies: liblxc_dependencies,
|
||||
+ link_whole: [liblxc_static],
|
||||
install: true,
|
||||
install_dir: lxclibexec)
|
||||
|
||||
diff --git a/src/lxc/tools/meson.build b/src/lxc/tools/meson.build
|
||||
index 00a863d936..6d317fc80b 100644
|
||||
--- a/src/lxc/tools/meson.build
|
||||
+++ b/src/lxc/tools/meson.build
|
||||
@@ -1,6 +1,7 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1+
|
||||
|
||||
-tools_common_sources = files('arguments.c', 'arguments.h') + include_sources + netns_ifaddrs_sources
|
||||
+tools_common_sources = files('arguments.c', 'arguments.h') + include_sources
|
||||
+tools_common_sources_for_dynamic_link = tools_common_sources + netns_ifaddrs_sources
|
||||
|
||||
tools_commands_dynamic_link = ['attach', 'autostart', 'cgroup', 'checkpoint', 'config',
|
||||
'console', 'copy', 'create', 'destroy', 'device', 'execute', 'freeze',
|
||||
@@ -15,7 +16,7 @@ if want_tools
|
||||
foreach cmd : tools_commands_dynamic_link
|
||||
public_programs += executable(
|
||||
'lxc-' + cmd,
|
||||
- files('lxc_' + cmd + '.c') + tools_common_sources + liblxc_ext_sources,
|
||||
+ files('lxc_' + cmd + '.c') + tools_common_sources_for_dynamic_link + liblxc_ext_sources,
|
||||
dependencies: liblxc_dependencies,
|
||||
include_directories: liblxc_includes,
|
||||
c_args: ['-DNO_LXC_CONF'],
|
||||
@@ -26,16 +27,16 @@ if want_tools
|
||||
foreach cmd : tools_commands_static_link
|
||||
public_programs += executable(
|
||||
'lxc-' + cmd,
|
||||
- files('lxc_' + cmd + '.c') + tools_common_sources,
|
||||
+ files('lxc_' + cmd + '.c') + files('arguments.c', 'arguments.h'),
|
||||
dependencies: liblxc_dependencies,
|
||||
include_directories: liblxc_includes,
|
||||
- link_with: [liblxc_static],
|
||||
+ link_whole: [liblxc_static],
|
||||
install: true)
|
||||
endforeach
|
||||
endif
|
||||
|
||||
if want_tools_multicall
|
||||
- tools_all_sources = files('lxc_multicall.c') + tools_common_sources
|
||||
+ tools_all_sources = files('lxc_multicall.c') + tools_common_sources_for_dynamic_link
|
||||
foreach cmd : tools_commands
|
||||
tools_all_sources += files('lxc_' + cmd + '.c')
|
||||
endforeach
|
|
@ -2,6 +2,7 @@
|
|||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
dbus,
|
||||
docbook2x,
|
||||
libapparmor,
|
||||
libcap,
|
||||
|
@ -9,22 +10,22 @@
|
|||
libselinux,
|
||||
meson,
|
||||
ninja,
|
||||
nix-update-script,
|
||||
nixosTests,
|
||||
openssl,
|
||||
pkg-config,
|
||||
systemd,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lxc";
|
||||
version = "5.0.3";
|
||||
version = "6.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lxc";
|
||||
repo = "lxc";
|
||||
rev = "refs/tags/lxc-${version}";
|
||||
hash = "sha256-lnLmLgWXt3pI2S+4OeHRlPP5gui7S7ZXXClFt+n/8sY=";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
hash = "sha256-D994gekFgW/1Q4iVFM/3Zi0JXKn9Ghfd3UcjckVfoFY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -35,6 +36,7 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
buildInputs = [
|
||||
dbus
|
||||
libapparmor
|
||||
libcap
|
||||
libseccomp
|
||||
|
@ -44,17 +46,19 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
patches = [
|
||||
# make build more nix compatible
|
||||
./add-meson-options.patch
|
||||
|
||||
# fix docbook2man version detection
|
||||
./docbook-hack.patch
|
||||
|
||||
# fix linking
|
||||
./4428.diff
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dinstall-init-files=false"
|
||||
"-Dinstall-state-dirs=false"
|
||||
"-Dspecfile=false"
|
||||
# re-enable when fixed https://github.com/lxc/lxc/issues/4427
|
||||
# "-Dtools-multicall=true"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -65,11 +69,13 @@ stdenv.mkDerivation rec {
|
|||
tests = {
|
||||
incus-legacy-init = nixosTests.incus.container-legacy-init;
|
||||
incus-systemd-init = nixosTests.incus.container-systemd-init;
|
||||
lxd = nixosTests.lxd.container;
|
||||
};
|
||||
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [
|
||||
"-vr"
|
||||
"lxc-(.*)"
|
||||
"--version-regex"
|
||||
"v(6.0.*)"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
@ -88,4 +94,4 @@ stdenv.mkDerivation rec {
|
|||
platforms = lib.platforms.linux;
|
||||
maintainers = lib.teams.lxc.members;
|
||||
};
|
||||
}
|
||||
})
|
|
@ -1,153 +0,0 @@
|
|||
diff --git a/meson.build b/meson.build
|
||||
index 21a8705d0..f12b81442 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -50,7 +50,7 @@ rootfsmount = get_option('rootfs-mount-path')
|
||||
user_network_db_opt = get_option('usernet-db-path')
|
||||
user_network_conf_opt = get_option('usernet-config-path')
|
||||
|
||||
-bashcompletiondir = join_paths('/', 'usr', 'share', 'bash-completion', 'completions')
|
||||
+bashcompletiondir = join_paths(prefixdir, get_option('datadir'), 'bash-completion', 'completions')
|
||||
bindir = join_paths(prefixdir, get_option('bindir'))
|
||||
datadir = join_paths(prefixdir, get_option('datadir'))
|
||||
mandir = join_paths(prefixdir, get_option('mandir'))
|
||||
@@ -123,22 +123,6 @@ conf.set('PACKAGE_VERSION', meson.project_version())
|
||||
conf.set('RUNTIME_PATH', runtimepath)
|
||||
conf.set('SYSCONFDIR', sysconfdir)
|
||||
|
||||
-# Set sysconfdir
|
||||
-fs = import('fs')
|
||||
-distrosysconfdir = get_option('distrosysconfdir')
|
||||
-if distrosysconfdir != ''
|
||||
- distrosysconfdir = join_paths(sysconfdir, distrosysconfdir)
|
||||
- conf.set('LXC_DISTRO_SYSCONF', distrosysconfdir)
|
||||
-elif fs.is_dir('/etc/sysconfig')
|
||||
- distrosysconfdir = join_paths(sysconfdir, 'sysconfig')
|
||||
- conf.set('LXC_DISTRO_SYSCONF', distrosysconfdir)
|
||||
-elif fs.is_dir('/etc/default')
|
||||
- distrosysconfdir = join_paths(sysconfdir, 'default')
|
||||
- conf.set('LXC_DISTRO_SYSCONF', distrosysconfdir)
|
||||
-else
|
||||
- error('"distrosysconfdir" is not set')
|
||||
-endif
|
||||
-
|
||||
# Cross-compile on Android.
|
||||
srcconf.set10('IS_BIONIC', host_machine.system() == 'android')
|
||||
|
||||
@@ -148,6 +132,7 @@ coverity = get_option('coverity-build')
|
||||
init_script = get_option('init-script')
|
||||
sanitize = get_option('b_sanitize')
|
||||
want_examples = get_option('examples')
|
||||
+want_install_init = get_option('install-init-files')
|
||||
want_io_uring = get_option('io-uring-event-loop')
|
||||
want_pam_cgroup = get_option('pam-cgroup')
|
||||
want_mans = get_option('man')
|
||||
@@ -160,10 +145,30 @@ want_openssl = get_option('openssl')
|
||||
want_selinux = get_option('selinux')
|
||||
want_oss_fuzz = get_option('oss-fuzz')
|
||||
want_seccomp = get_option('seccomp')
|
||||
+want_spec = get_option('specfile')
|
||||
+want_state_dirs = get_option('install-state-dirs')
|
||||
want_thread_safety = get_option('thread-safety')
|
||||
want_memfd_rexec = get_option('memfd-rexec')
|
||||
want_sd_bus = get_option('sd-bus')
|
||||
|
||||
+# Set sysconfdir
|
||||
+fs = import('fs')
|
||||
+if want_install_init
|
||||
+ distrosysconfdir = get_option('distrosysconfdir')
|
||||
+ if distrosysconfdir != ''
|
||||
+ distrosysconfdir = join_paths(sysconfdir, distrosysconfdir)
|
||||
+ conf.set('LXC_DISTRO_SYSCONF', distrosysconfdir)
|
||||
+ elif fs.is_dir('/etc/sysconfig')
|
||||
+ distrosysconfdir = join_paths(sysconfdir, 'sysconfig')
|
||||
+ conf.set('LXC_DISTRO_SYSCONF', distrosysconfdir)
|
||||
+ elif fs.is_dir('/etc/default')
|
||||
+ distrosysconfdir = join_paths(sysconfdir, 'default')
|
||||
+ conf.set('LXC_DISTRO_SYSCONF', distrosysconfdir)
|
||||
+ else
|
||||
+ error('"distrosysconfdir" is not set')
|
||||
+ endif
|
||||
+endif
|
||||
+
|
||||
srcconf.set_quoted('DEFAULT_CGROUP_PATTERN', cgrouppattern)
|
||||
if coverity
|
||||
srcconf.set('ENABLE_COVERITY_BUILD', 1)
|
||||
@@ -926,14 +931,16 @@ if want_apparmor
|
||||
endif
|
||||
subdir('config/bash')
|
||||
subdir('config/etc')
|
||||
-subdir('config/init/common')
|
||||
-subdir('config/init/systemd')
|
||||
-subdir('config/init/sysvinit')
|
||||
-subdir('config/init/upstart')
|
||||
+if want_install_init
|
||||
+ subdir('config/init/common')
|
||||
+ subdir('config/init/systemd')
|
||||
+ subdir('config/init/sysvinit')
|
||||
+ subdir('config/init/upstart')
|
||||
+ subdir('config/sysconfig')
|
||||
+endif
|
||||
if want_selinux
|
||||
subdir('config/selinux')
|
||||
endif
|
||||
-subdir('config/sysconfig')
|
||||
subdir('config/templates')
|
||||
subdir('config/templates/common.conf.d')
|
||||
subdir('config/yum')
|
||||
@@ -963,21 +970,25 @@ pkg_config_file = pkgconfig.generate(liblxc,
|
||||
)
|
||||
|
||||
# Empty dirs.
|
||||
-install_emptydir(join_paths(localstatedir, 'cache', 'lxc'))
|
||||
-install_emptydir(join_paths(localstatedir, 'lib', 'lxc'))
|
||||
+if want_state_dirs
|
||||
+ install_emptydir(join_paths(localstatedir, 'cache', 'lxc'))
|
||||
+ install_emptydir(join_paths(localstatedir, 'lib', 'lxc'))
|
||||
+endif
|
||||
|
||||
# RPM spec file.
|
||||
-specconf = configuration_data()
|
||||
-specconf.set('LXC_VERSION_BASE', meson.project_version())
|
||||
-specconf.set('LXC_VERSION_BETA', version_data.get('LXC_VERSION_BETA'))
|
||||
-specconf.set('PACKAGE', meson.project_name())
|
||||
-specconf.set('LXC_DISTRO_SYSCONF', conf.get('LXC_DISTRO_SYSCONF'))
|
||||
-
|
||||
-configure_file(
|
||||
- configuration: specconf,
|
||||
- input: 'lxc.spec.in',
|
||||
- output: 'lxc.spec',
|
||||
- install: false)
|
||||
+if want_spec
|
||||
+ specconf = configuration_data()
|
||||
+ specconf.set('LXC_VERSION_BASE', meson.project_version())
|
||||
+ specconf.set('LXC_VERSION_BETA', version_data.get('LXC_VERSION_BETA'))
|
||||
+ specconf.set('PACKAGE', meson.project_name())
|
||||
+ specconf.set('LXC_DISTRO_SYSCONF', conf.get('LXC_DISTRO_SYSCONF'))
|
||||
+
|
||||
+ configure_file(
|
||||
+ configuration: specconf,
|
||||
+ input: 'lxc.spec.in',
|
||||
+ output: 'lxc.spec',
|
||||
+ install: false)
|
||||
+endif
|
||||
|
||||
# Build overview.
|
||||
status = [
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 9803473d2..84a6d45b5 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -120,3 +120,12 @@ option('memfd-rexec', type : 'boolean', value : 'true',
|
||||
|
||||
option('distrosysconfdir', type : 'string', value: '',
|
||||
description: 'relative path to sysconfdir for distro default configuration')
|
||||
+
|
||||
+option('specfile', type : 'boolean', value: true,
|
||||
+ description: 'whether to prepare RPM spec')
|
||||
+
|
||||
+option('install-init-files', type : 'boolean', value: true,
|
||||
+ description: 'whether to install init files for local init (e.g. systemd, sysvinit)')
|
||||
+
|
||||
+option('install-state-dirs', type : 'boolean', value: true,
|
||||
+ description: 'whether to create state directories on install')
|
|
@ -10551,8 +10551,6 @@ with pkgs;
|
|||
|
||||
lwc = callPackage ../tools/misc/lwc { };
|
||||
|
||||
lxc = callPackage ../os-specific/linux/lxc { };
|
||||
|
||||
lxd-image-server = callPackage ../tools/virtualization/lxd-image-server { };
|
||||
|
||||
lzfse = callPackage ../tools/compression/lzfse { };
|
||||
|
|
Loading…
Reference in a new issue