Date: Monday, May 30, 2016 @ 21:33:11
Author: eworm
Revision: 268754
upgpkg: lvm2 2.02.154-3
apply 'liblvm: allow config settings to be read without full lvm cmd' FS#49483
Added:
lvm2/trunk/01-lvm2-make-sockets-static.patch
(from rev 268753, lvm2/trunk/lvm2-make-sockets-static.patch)
lvm2/trunk/02-liblvm_config_settings.patch
lvm2/trunk/03-lvm2_activation_generator.patch
(from rev 268753, lvm2/trunk/lvm2_activation_generator.patch)
Modified:
lvm2/trunk/PKGBUILD
Deleted:
lvm2/trunk/lvm2-make-sockets-static.patch
lvm2/trunk/lvm2_activation_generator.patch
+
01-lvm2-make-sockets-static.patch | 20 +
02-liblvm_config_settings.patch| 134 +++
03-lvm2_activation_generator.patch | 43 +++
PKGBUILD | 15 ++-
lvm2-make-sockets-static.patch | 20 -
lvm2_activation_generator.patch| 43 ---
6 files changed, 206 insertions(+), 69 deletions(-)
Copied: lvm2/trunk/01-lvm2-make-sockets-static.patch (from rev 268753,
lvm2/trunk/lvm2-make-sockets-static.patch)
===
--- 01-lvm2-make-sockets-static.patch (rev 0)
+++ 01-lvm2-make-sockets-static.patch 2016-05-30 19:33:11 UTC (rev 268754)
@@ -0,0 +1,20 @@
+diff -Nur LVM2.2.02.106.orig/scripts/dm_event_systemd_red_hat.socket.in
LVM2.2.02.106/scripts/dm_event_systemd_red_hat.socket.in
+--- LVM2.2.02.106.orig/scripts/dm_event_systemd_red_hat.socket.in
2014-04-10 17:38:46.0 +0200
LVM2.2.02.106/scripts/dm_event_systemd_red_hat.socket.in 2014-04-26
14:21:10.097269315 +0200
+@@ -8,6 +8,3 @@
+ ListenFIFO=@DEFAULT_DM_RUN_DIR@/dmeventd-client
+ SocketMode=0600
+ RemoveOnStop=true
+-
+-[Install]
+-WantedBy=sockets.target
+diff -Nur LVM2.2.02.106.orig/scripts/lvm2_lvmetad_systemd_red_hat.socket.in
LVM2.2.02.106/scripts/lvm2_lvmetad_systemd_red_hat.socket.in
+--- LVM2.2.02.106.orig/scripts/lvm2_lvmetad_systemd_red_hat.socket.in
2014-04-10 17:38:46.0 +0200
LVM2.2.02.106/scripts/lvm2_lvmetad_systemd_red_hat.socket.in
2014-04-26 14:21:15.287156152 +0200
+@@ -7,6 +7,3 @@
+ ListenStream=@DEFAULT_RUN_DIR@/lvmetad.socket
+ SocketMode=0600
+ RemoveOnStop=true
+-
+-[Install]
+-WantedBy=sysinit.target
Added: 02-liblvm_config_settings.patch
===
--- 02-liblvm_config_settings.patch (rev 0)
+++ 02-liblvm_config_settings.patch 2016-05-30 19:33:11 UTC (rev 268754)
@@ -0,0 +1,134 @@
+From 7fd4119d24eee55323e888dd78c70257d7c97a15 Mon Sep 17 00:00:00 2001
+From: David Teigland
+Date: Tue, 17 May 2016 11:54:13 -0500
+Subject: liblvm: allow config settings to be read without full lvm cmd
+
+A program may be using liblvm2app for simply checking a config
+setting in lvm.conf. In this case, a full lvm context is not
+needed, only cmd->cft (which are the config settings read from
+lvm.conf).
+
+lvm_config_find_bool() can now be passed a NULL lvm context
+in which case it will only create cmd->cft, check the config
+setting asked for, and destroy the cmd.
+---
+ lib/commands/toolcontext.c | 43 +++
+ lib/commands/toolcontext.h | 8
+ liblvm/lvm_base.c | 23 ---
+ 3 files changed, 71 insertions(+), 3 deletions(-)
+
+diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
+index 90e5d5a..1e3f14a 100644
+--- a/lib/commands/toolcontext.c
b/lib/commands/toolcontext.c
+@@ -1776,6 +1776,49 @@ bad:
+ return 0;
+ }
+
++void destroy_config_context(struct cmd_context *cmd)
++{
++ _destroy_config(cmd);
++
++ if (cmd->mem)
++ dm_pool_destroy(cmd->mem);
++ if (cmd->libmem)
++ dm_pool_destroy(cmd->libmem);
++
++ dm_free(cmd);
++}
++
++/*
++ * A "config context" is a very light weight toolcontext that
++ * is only used for reading config settings from lvm.conf.
++ */
++struct cmd_context *create_config_context(void)
++{
++ struct cmd_context *cmd;
++
++ if (!(cmd = dm_zalloc(sizeof(*cmd
++ goto_out;
++
++ strcpy(cmd->system_dir, DEFAULT_SYS_DIR);
++
++ if (!_get_env_vars(cmd))
++ goto_out;
++
++ if (!(cmd->libmem = dm_pool_create("library", 4 * 1024)))
++ goto_out;
++
++ dm_list_init(>config_files);
++
++ if (!_init_lvm_conf(cmd))
++ goto_out;
++
++ return cmd;
++out:
++ if (cmd)
++ destroy_config_context(cmd);
++ return NULL;
++}
++
+ /* Entry point */
+ struct cmd_context *create_toolcontext(unsigned is_long_lived,
+ const char *system_dir,
+diff --git a/lib/commands/toolcontext.h b/lib/commands/toolcontext.h
+index c3b9b2e..2cecf27 100644
+--- a/lib/commands/toolcontext.h
b/lib/commands/toolcontext.h
+@@