mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
gnu: Add libguestfs-minimal.
* gnu/packages/virtualization.scm (libguestfs-minimal): New variable. * gnu/packages/patches/libguestfs-syms.patch: Add file. * gnu/local.mk: Add it. Change-Id: Ide22707724ecd41145243c9f41adc3f5557c593e Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
5fd8d9dc06
commit
91d2e0b567
3 changed files with 172 additions and 0 deletions
|
@ -1605,6 +1605,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch \
|
||||
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch \
|
||||
%D%/packages/patches/libgeotiff-fix-tests-on-i386.patch \
|
||||
%D%/packages/patches/libguestfs-syms.patch \
|
||||
%D%/packages/patches/libobjc2-unbundle-robin-map.patch \
|
||||
%D%/packages/patches/libvirt-add-install-prefix.patch \
|
||||
%D%/packages/patches/libziparchive-add-includes.patch \
|
||||
|
|
44
gnu/packages/patches/libguestfs-syms.patch
Normal file
44
gnu/packages/patches/libguestfs-syms.patch
Normal file
|
@ -0,0 +1,44 @@
|
|||
diff -urN a/lib/Makefile.am b/lib/Makefile.am
|
||||
|
||||
Without this patch the build phase fails during linking with:
|
||||
|
||||
ld:./libguestfs.syms: file format not recognized; treating as linker script
|
||||
ld:./libguestfs.syms:23: syntax error
|
||||
collect2: error: ld returned 1 exit status
|
||||
make[3]: *** [Makefile:1252: libguestfs.la] Error 1
|
||||
make[3]: *** Waiting for unfinished jobs....
|
||||
Wide character in print at /tmp/guix-build-libguestfs-1.53.6.drv-0/libguestfs-1.50.1/podwrapper.pl line 633.
|
||||
touch stamp-guestfs.pod
|
||||
make[3]: Leaving directory '/tmp/guix-build-libguestfs-1.53.6.drv-0/libguestfs-1.50.1/lib'
|
||||
make[2]: *** [Makefile:1161: all] Error 2
|
||||
make[2]: Leaving directory '/tmp/guix-build-libguestfs-1.53.6.drv-0/libguestfs-1.50.1/lib'
|
||||
make[1]: *** [Makefile:1083: all-recursive] Error 1
|
||||
make[1]: Leaving directory '/tmp/guix-build-libguestfs-1.53.6.drv-0/libguestfs-1.50.1'
|
||||
make: *** [Makefile:989: all] Error 2
|
||||
error: in phase 'build': uncaught exception:
|
||||
|
||||
--- a/lib/Makefile.am 2023-07-20 17:35:16.489080853 +0200
|
||||
+++ b/lib/Makefile.am 2023-07-20 17:35:47.305793499 +0200
|
||||
@@ -160,8 +160,7 @@
|
||||
# Force libtool to name the library 'libguestfs.so.0.$(MAX_PROC_NR).0'.
|
||||
# Include the version script to limit which symbols are exported.
|
||||
libguestfs_la_LDFLAGS = \
|
||||
- -version-info $(MAX_PROC_NR):0:$(MAX_PROC_NR) \
|
||||
- $(VERSION_SCRIPT_FLAGS)$(srcdir)/libguestfs.syms
|
||||
+ -version-info $(MAX_PROC_NR):0:$(MAX_PROC_NR)
|
||||
|
||||
if HAVE_FUSE
|
||||
# XXX Unfortunately FUSE_CFLAGS defines _FILE_OFFSET_BITS=64.
|
||||
diff -urN a/lib/Makefile.in b/lib/Makefile.in
|
||||
--- a/lib/Makefile.in 2023-07-20 17:35:16.489080853 +0200
|
||||
+++ b/lib/Makefile.in 2023-07-20 17:36:05.474213641 +0200
|
||||
@@ -1109,8 +1109,7 @@
|
||||
# Force libtool to name the library 'libguestfs.so.0.$(MAX_PROC_NR).0'.
|
||||
# Include the version script to limit which symbols are exported.
|
||||
libguestfs_la_LDFLAGS = \
|
||||
- -version-info $(MAX_PROC_NR):0:$(MAX_PROC_NR) \
|
||||
- $(VERSION_SCRIPT_FLAGS)$(srcdir)/libguestfs.syms
|
||||
+ -version-info $(MAX_PROC_NR):0:$(MAX_PROC_NR)
|
||||
|
||||
@HAVE_LIBVIRT_TRUE@libvirt_is_version_SOURCES = libvirt-is-version.c
|
||||
@HAVE_LIBVIRT_TRUE@libvirt_is_version_LDADD = \
|
|
@ -61,6 +61,7 @@ (define-module (gnu packages virtualization)
|
|||
#:use-module (gnu packages apparmor)
|
||||
#:use-module (gnu packages assembly)
|
||||
#:use-module (gnu packages attr)
|
||||
#:use-module (gnu packages augeas)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages backup)
|
||||
#:use-module (gnu packages base)
|
||||
|
@ -68,11 +69,13 @@ (define-module (gnu packages virtualization)
|
|||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages bootloaders)
|
||||
#:use-module (gnu packages build-tools)
|
||||
#:use-module (gnu packages cdrom)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages cluster)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages containers)
|
||||
#:use-module (gnu packages cpio)
|
||||
#:use-module (gnu packages cross-base)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages cryptsetup)
|
||||
|
@ -84,6 +87,7 @@ (define-module (gnu packages virtualization)
|
|||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages figlet)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages firmware)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages fonts)
|
||||
|
@ -96,6 +100,7 @@ (define-module (gnu packages virtualization)
|
|||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages golang)
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages graphviz)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages haskell)
|
||||
|
@ -3011,3 +3016,125 @@ (define-public hivex
|
|||
file available through a C API, or through a separate program to export the
|
||||
hive as XML.")
|
||||
(license license:lgpl2.1)))
|
||||
|
||||
(define-public libguestfs-minimal
|
||||
(package
|
||||
(name "libguestfs-minimal")
|
||||
(version "1.53.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://libguestfs.org/download/"
|
||||
(version-major+minor version)
|
||||
"-stable/libguestfs-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vssarc3n4kv26fyjmkrrcvh55v41fhycba43pij3rc2izl72s2y"))
|
||||
(patches
|
||||
(search-patches "libguestfs-syms.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:configure-flags
|
||||
#~(list "--disable-appliance"
|
||||
"--disable-daemon"
|
||||
"--disable-static"
|
||||
"--disable-erlang"
|
||||
"--disable-golang"
|
||||
"--disable-haskell"
|
||||
"--disable-java"
|
||||
"--disable-lua"
|
||||
;; FIXME: Perl bindings have wrong rpath and break the
|
||||
;; validate-runpath phase. Temporarily disable them until
|
||||
;; a way is found to correctly patch perl/Build.PL.in.
|
||||
"--disable-perl"
|
||||
"--disable-php"
|
||||
"--with-distro=\"Guix System\""
|
||||
"--with-readline"
|
||||
(string-append "LDFLAGS=-Wl,-rpath," %output "/lib"))
|
||||
#:make-flags #~`("REALLY_INSTALL=yes")
|
||||
#:phases
|
||||
#~(let* ((lib (string-append #$output "/lib"))
|
||||
(lib/ocaml (string-append lib "/ocaml")))
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-makefiles
|
||||
(lambda _
|
||||
(for-each patch-shebang
|
||||
(find-files "."))
|
||||
(substitute* "ocaml/Makefile.in"
|
||||
(("\\$\\(DESTDIR\\)\\$\\(OCAMLLIB\\)")
|
||||
lib/ocaml))
|
||||
;; FIXME: Perl bindings have broken runpath,
|
||||
;; this substitution doesn't seem to work.
|
||||
(substitute* "perl/Build.PL.in"
|
||||
(("extra_linker_flags => \\[")
|
||||
(string-append "extra_linker_flags => [
|
||||
'-L" #$output "/lib',")))))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? make-flags #:allow-other-keys)
|
||||
(when tests?
|
||||
(apply invoke `("make" ,@make-flags "check-direct")))))
|
||||
(replace 'install
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(mkdir-p "temp-build-dir")
|
||||
(apply invoke `("make" ,@make-flags "INSTALLDIRS=vendor"
|
||||
"install"))))
|
||||
(add-after 'install 'wrap-binaries
|
||||
(lambda _
|
||||
(let ((bin (string-append #$output "/bin")))
|
||||
(for-each
|
||||
(lambda (binary)
|
||||
(use-modules (srfi srfi-1))
|
||||
(wrap-program binary
|
||||
`("PERL5LIB" ":" prefix
|
||||
(,(string-append #$output
|
||||
"/lib/perl5/site_perl")))
|
||||
`("PATH" ":" prefix
|
||||
,(search-path-as-list
|
||||
'("bin")
|
||||
(map second
|
||||
'#$(package-inputs this-package))))))
|
||||
(find-files bin)))))
|
||||
(replace 'validate-documentation-location
|
||||
(lambda _
|
||||
(let ((man-dir
|
||||
(string-append #$output "/man"))
|
||||
(info-dir
|
||||
(string-append #$output "/info")))
|
||||
(for-each (lambda (d)
|
||||
(invoke "rm" "-rf" d))
|
||||
(list man-dir info-dir)))))))))
|
||||
(native-inputs (list augeas
|
||||
bison
|
||||
cpio
|
||||
flex
|
||||
gettext-minimal
|
||||
gperf
|
||||
libtool
|
||||
ocaml
|
||||
ocaml-findlib
|
||||
ncurses
|
||||
perl
|
||||
perl-getopt-long
|
||||
perl-module-build
|
||||
pkg-config
|
||||
po4a
|
||||
xorriso
|
||||
xz
|
||||
zstd))
|
||||
(inputs
|
||||
(list file
|
||||
fuse
|
||||
jansson
|
||||
hivex
|
||||
libtirpc
|
||||
pcre2
|
||||
readline
|
||||
qemu))
|
||||
(home-page "https://libguestfs.org/")
|
||||
(synopsis "Access and modify virtual machine disk images")
|
||||
(description
|
||||
"@code{libguestfs} is a set of tools for accessing and modifying virtual
|
||||
machine (VM) disk images. You can use this for viewing and editing files inside
|
||||
guests, scripting changes to VMs, monitoring disk used/free statistics, creating
|
||||
guests, P2V, V2V, performing backups, cloning VMs, building VMs, formatting
|
||||
disks, resizing disks, and much more.")
|
||||
(license (list license:gpl2+ license:lgpl2.1+))))
|
||||
|
|
Loading…
Reference in a new issue