gnu: Add libx86emu.
* gnu/packages/virtualization.scm (libx86emu): New variable. Co-authored-by: Petr Hodina <phodina@protonmail.com> Co-authored-by: Vincent Legoll <vincent.legoll@gmail.com>master
parent
8e70421a88
commit
66df86a273
|
@ -21,6 +21,9 @@
|
||||||
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
|
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
|
||||||
;;; Copyright © 2021 Dion Mendel <guix@dm9.info>
|
;;; Copyright © 2021 Dion Mendel <guix@dm9.info>
|
||||||
;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
|
;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
|
||||||
|
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
|
||||||
|
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
|
||||||
|
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -437,6 +440,74 @@ server and embedded PowerPC, and S390 guests.")
|
||||||
((arch kernel) arch)
|
((arch kernel) arch)
|
||||||
(_ system))))))
|
(_ system))))))
|
||||||
|
|
||||||
|
(define-public libx86emu
|
||||||
|
(package
|
||||||
|
(name "libx86emu")
|
||||||
|
(version "3.1")
|
||||||
|
(home-page "https://github.com/wfeldt/libx86emu")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri
|
||||||
|
(git-reference
|
||||||
|
(url home-page)
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(modules
|
||||||
|
'((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
`(begin
|
||||||
|
;; Remove git2log program file.
|
||||||
|
(delete-file "git2log")
|
||||||
|
;; Remove variables that depends on git2log.
|
||||||
|
(substitute* "Makefile"
|
||||||
|
(("GIT2LOG.*=.*$") "")
|
||||||
|
(("GITDEPS.*=.*$") "")
|
||||||
|
(("BRANCH.*=.*$") ""))
|
||||||
|
#t))
|
||||||
|
(sha256
|
||||||
|
(base32 "104xqc6nj9rpi7knl3dfqvasf087hlz2n5yndb1iycw35a6j509b"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:test-target "test"
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'patch
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(include (string-append out "/include"))
|
||||||
|
(lib (string-append out "/lib")))
|
||||||
|
;; Correct the values of version and install directories.
|
||||||
|
(substitute* "Makefile"
|
||||||
|
(("VERSION.*=.*$")
|
||||||
|
(string-append "VERSION := "
|
||||||
|
,version "\n"))
|
||||||
|
(("PREFIX.*=.*$")
|
||||||
|
(string-append "PREFIX := " out "\n"))
|
||||||
|
(("MAJOR_VERSION.*=.*$")
|
||||||
|
(string-append "MAJOR_VERSION := "
|
||||||
|
,(version-major version) "\n"))
|
||||||
|
(("LIBDIR.*=.*$")
|
||||||
|
(string-append "LIBDIR = " lib "\n"))
|
||||||
|
(("/usr/include") include)))))
|
||||||
|
(delete 'configure)))) ; no configure script
|
||||||
|
(native-inputs
|
||||||
|
`(("nasm" ,nasm)
|
||||||
|
("perl" ,perl)))
|
||||||
|
(synopsis "Library for x86 emulation")
|
||||||
|
(description "Libx86emu is a small library to emulate x86 instructions. The
|
||||||
|
focus here is not a complete emulation but to cover enough for typical
|
||||||
|
firmware blobs. You can
|
||||||
|
@enumerate
|
||||||
|
@item intercept any memory access or directly map real memory ranges
|
||||||
|
@item intercept any i/o access, map real i/o ports, or block any real i/o
|
||||||
|
@item intercept any interrupt
|
||||||
|
@item add a hook to run after each instruction
|
||||||
|
@item recognize a special x86 instruction that can trigger logging
|
||||||
|
@item use integrated logging
|
||||||
|
@end enumerate")
|
||||||
|
(license license:x11-style)))
|
||||||
|
|
||||||
(define-public ganeti
|
(define-public ganeti
|
||||||
(package
|
(package
|
||||||
(name "ganeti")
|
(name "ganeti")
|
||||||
|
|
Reference in New Issue