mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
gnu: Add hivex.
* gnu/packages/virtualization.scm (hivex): New variable. Change-Id: I9828d267d5c6f24dc5039ea3b1849248cd9d23fb Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
923fac07db
commit
5fd8d9dc06
1 changed files with 111 additions and 0 deletions
|
@ -37,6 +37,7 @@
|
||||||
;;; Copyright © 2024 jgart <jgart@dismail.de>
|
;;; Copyright © 2024 jgart <jgart@dismail.de>
|
||||||
;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se>
|
;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se>
|
||||||
;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
|
;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
|
||||||
|
;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -114,6 +115,7 @@ (define-module (gnu packages virtualization)
|
||||||
#:use-module (gnu packages nettle)
|
#:use-module (gnu packages nettle)
|
||||||
#:use-module (gnu packages networking)
|
#:use-module (gnu packages networking)
|
||||||
#:use-module (gnu packages ninja)
|
#:use-module (gnu packages ninja)
|
||||||
|
#:use-module (gnu packages ocaml)
|
||||||
#:use-module (gnu packages onc-rpc)
|
#:use-module (gnu packages onc-rpc)
|
||||||
#:use-module (gnu packages package-management)
|
#:use-module (gnu packages package-management)
|
||||||
#:use-module (gnu packages pciutils)
|
#:use-module (gnu packages pciutils)
|
||||||
|
@ -2900,3 +2902,112 @@ (define-public riscv-pk
|
||||||
supervisor execution environment for tethered RISC-V systems. It is designed
|
supervisor execution environment for tethered RISC-V systems. It is designed
|
||||||
to host the RISC-V Linux port.")
|
to host the RISC-V Linux port.")
|
||||||
(license license:bsd-3)))
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
(define-public hivex
|
||||||
|
(package
|
||||||
|
(name "hivex")
|
||||||
|
(version "1.3.24")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://libguestfs.org/download/"
|
||||||
|
name "/" name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0g0rib62qg81fda8lxsaa7a1ykqy4rl5sq185pdqm9y9xifa8bx5"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs (list automake
|
||||||
|
autoconf
|
||||||
|
gettext-minimal
|
||||||
|
libtool
|
||||||
|
ocaml
|
||||||
|
pkg-config
|
||||||
|
perl-io-stringy
|
||||||
|
python-wrapper
|
||||||
|
ruby
|
||||||
|
ruby-rake
|
||||||
|
ruby-rdoc))
|
||||||
|
(inputs
|
||||||
|
(list bash-minimal
|
||||||
|
libxml2
|
||||||
|
perl
|
||||||
|
readline))
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:configure-flags
|
||||||
|
#~(list "--disable-static" "--with-readline" "--disable-rpath"
|
||||||
|
(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'patch-makefiles
|
||||||
|
(lambda _
|
||||||
|
(let* ((current-system (or #$(%current-target-system)
|
||||||
|
#$(%current-system)))
|
||||||
|
(ocamllib
|
||||||
|
(string-append #$output "/lib/ocaml/"
|
||||||
|
#$(package-version
|
||||||
|
(this-package-native-input "ocaml")) "/site-lib"))
|
||||||
|
(python-installdir
|
||||||
|
(string-append #$output "/lib/python"
|
||||||
|
#$(version-major+minor
|
||||||
|
(package-version
|
||||||
|
(this-package-native-input
|
||||||
|
"python-wrapper")))
|
||||||
|
"/site-packages"))
|
||||||
|
(ruby-version
|
||||||
|
#$(package-version
|
||||||
|
(this-package-native-input "ruby")))
|
||||||
|
(ruby-libdir
|
||||||
|
(string-append #$output
|
||||||
|
"/lib/ruby/site_ruby/"
|
||||||
|
ruby-version))
|
||||||
|
(ruby-archdir
|
||||||
|
(string-append ruby-libdir "/" current-system)))
|
||||||
|
(substitute* "lib/Makefile.am"
|
||||||
|
(((string-append "\\$\\(VERSION_SCRIPT_FLAGS\\)"
|
||||||
|
"\\$\\(srcdir\\)/hivex\\.syms"))
|
||||||
|
""))
|
||||||
|
(substitute* "python/Makefile.am"
|
||||||
|
(("\\$\\(PYTHON_INSTALLDIR\\)")
|
||||||
|
python-installdir))
|
||||||
|
(substitute* "ocaml/Makefile.am"
|
||||||
|
(("\\$\\(DESTDIR\\)\\$\\(OCAMLLIB\\)")
|
||||||
|
ocamllib))
|
||||||
|
(substitute* "ruby/Makefile.am"
|
||||||
|
(("\\$\\(DESTDIR\\)\\$\\(RUBY_ARCHDIR\\)")
|
||||||
|
ruby-archdir)
|
||||||
|
(("\\$\\(DESTDIR\\)\\$\\(RUBY_LIBDIR\\)")
|
||||||
|
ruby-libdir))
|
||||||
|
;; The ‘validate-runpath’ phase fails to find libhivex.so.0.
|
||||||
|
(substitute* "perl/Makefile.PL.in"
|
||||||
|
(("CCFLAGS => \\$Config\\{ccflags\\} \\. ' @CFLAGS@',")
|
||||||
|
(string-append "CCFLAGS => $Config{ccflags} . ' @CFLAGS@',
|
||||||
|
LDDLFLAGS => $Config{lddlflags} . ' -Wl,-rpath," #$output "/lib',")))
|
||||||
|
(substitute* "ruby/ext/hivex/extconf.rb"
|
||||||
|
(("create_header")
|
||||||
|
(string-append "
|
||||||
|
$LDFLAGS += \" -Wl,-rpath=" #$output "/lib \"
|
||||||
|
create_header"))))))
|
||||||
|
(add-after 'install 'wrap-binaries
|
||||||
|
(lambda _
|
||||||
|
(let ((hivexregedit
|
||||||
|
(string-append #$output "/bin/hivexregedit"))
|
||||||
|
(hivexml
|
||||||
|
(string-append #$output "/bin/hivexml")))
|
||||||
|
(wrap-program hivexregedit
|
||||||
|
`("PERL5LIB" ":" prefix
|
||||||
|
(,(string-append #$output "/lib/perl5/site_perl")))
|
||||||
|
`("PATH" ":" prefix
|
||||||
|
(,(string-append #$output "/bin"))))
|
||||||
|
(wrap-program hivexml
|
||||||
|
`("PATH" ":" prefix
|
||||||
|
(,(string-append #$output "/bin"))))))))))
|
||||||
|
(home-page "https://github.com/libguestfs/hivex")
|
||||||
|
(synopsis "Windows registry hive extraction library")
|
||||||
|
(description
|
||||||
|
"This package provides a self-contained library for reading and writing
|
||||||
|
Windows Registry \"hive\" binary files. Unlike many other tools in this area,
|
||||||
|
it doesn't use the textual @code{.REG} format for output, because parsing that
|
||||||
|
is as much trouble as parsing the original binary format. Instead it makes the
|
||||||
|
file available through a C API, or through a separate program to export the
|
||||||
|
hive as XML.")
|
||||||
|
(license license:lgpl2.1)))
|
||||||
|
|
Loading…
Reference in a new issue