summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-11-22 21:38:40 +0100
committerLudovic Courtès <ludo@gnu.org>2016-11-22 22:59:31 +0100
commit01f94cca19ebd843d6a518530f8acc4fc61b116b (patch)
treeea64e64d75da4ccb29ed5eeda79bcc03657d9d91 /gnu
parent10da75dff8cac41658b6a2eaf8cfeae691242a28 (diff)
gnu: Add 'lvm2-static'.
* gnu/packages/patches/lvm2-static-link.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/linux.scm (lvm2)[source](patches): New field. (lvm2-static): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/linux.scm19
-rw-r--r--gnu/packages/patches/lvm2-static-link.patch14
3 files changed, 33 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 7c6306b5f6..49137277f1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -705,6 +705,7 @@ dist_patch_DATA = \
%D%/packages/patches/luajit-no_ldconfig.patch \
%D%/packages/patches/luajit-symlinks.patch \
%D%/packages/patches/luit-posix.patch \
+ %D%/packages/patches/lvm2-static-link.patch \
%D%/packages/patches/make-impure-dirs.patch \
%D%/packages/patches/mars-install.patch \
%D%/packages/patches/mars-sfml-2.3.patch \
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 94b9315085..5870723baf 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1683,7 +1683,8 @@ time.")
(("confdir = .*$")
"confdir = @sysconfdir@\n")
(("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@")
- "DEFAULT_SYS_DIR = @sysconfdir@"))))))
+ "DEFAULT_SYS_DIR = @sysconfdir@"))))
+ (patches (search-patches "lvm2-static-link.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -1738,6 +1739,22 @@ mapper. Kernel components are part of Linux-libre.")
;; Command-line tools are GPLv2.
(license (list license:gpl2 license:lgpl2.1))))
+(define-public lvm2-static
+ (package
+ (inherit lvm2)
+ (name "lvm2-static")
+
+ ;; Propagate udev because libdevmapper.a depends on libudev.
+ (inputs (alist-delete "udev" (package-inputs lvm2)))
+ (propagated-inputs `(("udev" ,eudev)))
+
+ (arguments
+ (substitute-keyword-arguments (package-arguments lvm2)
+ ((#:configure-flags flags '())
+ ;; LVM2 doesn't use Libtool, hence the custom option.
+ `(cons "--enable-static_link" ,flags))))
+ (synopsis "Logical volume management for Linux (statically linked)")))
+
(define-public wireless-tools
(package
(name "wireless-tools")
diff --git a/gnu/packages/patches/lvm2-static-link.patch b/gnu/packages/patches/lvm2-static-link.patch
new file mode 100644
index 0000000000..b4b1dd92e1
--- /dev/null
+++ b/gnu/packages/patches/lvm2-static-link.patch
@@ -0,0 +1,14 @@
+Fix static linking of 'lvm.static', which indirectly depend on libpthread
+via libdevmapper.a.
+
+--- LVM2.2.02.166/tools/Makefile.in 2016-11-22 21:31:15.521045149 +0100
++++ LVM2.2.02.166/tools/Makefile.in 2016-11-22 21:31:24.085082767 +0100
+@@ -148,7 +148,7 @@ endif
+
+ lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a $(interfacebuilddir)/libdevmapper.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \
+- $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS)
++ $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) $(PTHREAD_LIBS)
+
+ liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o
+ cat $(top_builddir)/lib/liblvm-internal.a > $@