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 Ashish SHUKLA <ashish.is@lostca.se>
|
||||
;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
|
||||
;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; 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 networking)
|
||||
#:use-module (gnu packages ninja)
|
||||
#:use-module (gnu packages ocaml)
|
||||
#:use-module (gnu packages onc-rpc)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module (gnu packages pciutils)
|
||||
|
@ -2900,3 +2902,112 @@ (define-public riscv-pk
|
|||
supervisor execution environment for tethered RISC-V systems. It is designed
|
||||
to host the RISC-V Linux port.")
|
||||
(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