GNU bug report logs - #50283
HwInfo

Previous Next

Package: guix-patches;

Reported by: Raghav Gururajan <rg <at> raghavgururajan.name>

Date: Mon, 30 Aug 2021 19:32:01 UTC

Severity: normal

Tags: patch

Merged with 49934

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 50283 in the body.
You can then email your comments to 50283 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Mon, 30 Aug 2021 19:32:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Raghav Gururajan <rg <at> raghavgururajan.name>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 30 Aug 2021 19:32:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: guix-patches <at> gnu.org
Subject: HwInfo
Date: Mon, 30 Aug 2021 15:31:06 -0400
[Message part 1 (text/plain, inline)]

[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Mon, 30 Aug 2021 19:36:02 GMT) Full text and rfc822 format available.

Message #8 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 50283 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v1 1/2] gnu: Add libx86emu.
Date: Mon, 30 Aug 2021 15:35:24 -0400
* gnu/packages/virtualization.scm (libx86emu): New variable.
---
 gnu/packages/virtualization.scm | 52 +++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index e952c009b5..6dd5127bc6 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -130,6 +130,58 @@
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match))
 
+(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))
+       (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")))
+               ;; Remove unnecessary variables and
+               ;; correct the values of version and prefix.
+               (substitute* (find-files "." "Makefile")
+                 (("GIT2LOG.*=.*$") "")
+                 (("GITDEPS.*=.*$") "")
+                 (("VERSION.*=.*$")
+                  (string-append "VERSION := "
+                                 ,version "\n"))
+                 (("BRANCH.*=.*$") "")
+                 (("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 "ISA x86 emulation library")
+    (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.")
+    (license license:isc)))
+
 (define (qemu-patch commit file-name sha256-bv)
   "Return an origin for COMMIT."
   (origin
-- 
2.33.0





Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Mon, 30 Aug 2021 19:37:02 GMT) Full text and rfc822 format available.

Message #11 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 50283 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v1 2/2] gnu: Add hwinfo.
Date: Mon, 30 Aug 2021 15:35:25 -0400
* gnu/packages/hardware.scm (hwinfo): New variable.
---
 gnu/packages/hardware.scm | 85 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)

diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index ff21c9c724..d7be7bf3cb 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -49,6 +50,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages virtualization)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
@@ -66,6 +68,89 @@
 ;; This is a module for packages related to physical hardware that don't (yet)
 ;; have a more specific home like gps.scm, security-token.scm, &c.
 
+(define-public hwinfo
+  (package
+    (name "hwinfo")
+    (version "21.76")
+    (home-page "https://github.com/openSUSE/hwinfo")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url home-page)
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1910wzpdyp1ma1z2v0dripaljgrpl7vjq0f6b7qq9y220899hihb"))
+       (modules
+        '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Create version file.
+           (call-with-output-file "VERSION"
+             (lambda (port)
+               (format port ,version)))
+           #t))))
+    (build-system gnu-build-system)
+    (outputs '("out" "dev"))
+    (arguments
+     `(#:tests? #f                      ; no test-suite available
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (dev (assoc-ref outputs "dev"))
+                    (include (string-append dev "/include"))
+                    (lib (string-append dev "/lib"))
+                    (sbin (string-append out "/sbin"))
+                    (share (string-append out "/share")))
+               ;; Remove unnecessary variables and
+               ;; correct values for version and prefix.
+               (substitute* "Makefile"
+                 (("GIT2LOG.*\\:=.*$") "")
+                 (("GITDEPS.*\\:=.*$") "")
+                 (("BRANCH.*\\:=.*$") "")
+                 (("VERSION.*\\:=.*$")
+                  (string-append "VERSION := " ,version "\n"))
+                 (("LIBDIR.*\\?=.*$")
+                  (string-append "LIBDIR ?= " lib "\n"))
+                 (("/usr/include") include)
+                 (("/(usr|var)/(lib|lib64)") lib)
+                 (("/usr/sbin") sbin)
+                 (("/usr/share") share)
+                 (("\\$\\(DESTDIR\\)/sbin ") ""))
+               ;; Add output "dev" to the run-path.
+               (substitute* "Makefile.common"
+                 (("-Lsrc")
+                  (string-append "-Lsrc " "-Wl,-rpath=" lib)))
+               ;; Correct program name of the lexical analyzer.
+               (substitute* "src/isdn/cdb/Makefile"
+                 (("lex isdn_cdb.lex") "flex isdn_cdb.lex"))
+               ;; Patch pkgconfig file to point to output "dev".
+               (substitute* "hwinfo.pc.in"
+                 (("/usr") dev)))))
+         (delete 'configure)
+         (add-before 'build 'set-env
+           (lambda _
+             (setenv "CC" ,(cc-for-target))))
+         (replace 'build
+           (lambda _
+             (invoke "make" "shared"))))))
+    (native-inputs
+     `(("flex" ,flex)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libx86emu" ,libx86emu)
+       ("util-linux:lib" ,util-linux "lib")))
+    (synopsis "Hardware information tool")
+    (description "HwInfo is used to probe for the hardware present in the system.
+It can be used to generate a system overview log which can be later used for
+support.")
+    (license license:gpl2+)))
+
 (define-public ddcutil
   (package
     (name "ddcutil")
-- 
2.33.0





Merged 49934 50283. Request was from Raghav Gururajan <rg <at> raghavgururajan.name> to control <at> debbugs.gnu.org. (Mon, 30 Aug 2021 20:35:01 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Mon, 30 Aug 2021 22:28:02 GMT) Full text and rfc822 format available.

Message #16 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 50283 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, phodina <at> protonmail.com,
 Vincent Legoll <vincent.legoll <at> gmail.com>
Subject: [PATCH v2 1/2] gnu: Add libx86emu.
Date: Mon, 30 Aug 2021 18:27:11 -0400
* gnu/packages/virtualization.scm (libx86emu): New variable.

Co-authored-by: Petr Hodina <phodina <at> protonmail.com>
Co-authored-by: Vincent Legoll <vincent.legoll <at> gmail.com>
---
 gnu/packages/virtualization.scm | 71 +++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index e952c009b5..e1954ceb71 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -20,6 +20,9 @@
 ;;; Copyright © 2021 Leo Famulari <leo <at> famulari.name>
 ;;; Copyright © 2021 Pierre Langlois <pierre.langlois <at> gmx.com>
 ;;; Copyright © 2021 Dion Mendel <guix <at> dm9.info>
+;;; Copyright © 2021 Vincent Legoll <vincent.legoll <at> gmail.com>
+;;; Copyright © 2021 Petr Hodina <phodina <at> protonmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -130,6 +133,74 @@
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match))
 
+(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 provides 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:isc)))
+
 (define (qemu-patch commit file-name sha256-bv)
   "Return an origin for COMMIT."
   (origin
-- 
2.33.0





Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Mon, 30 Aug 2021 22:28:02 GMT) Full text and rfc822 format available.

Message #19 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 50283 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, phodina <at> protonmail.com
Subject: [PATCH v2 2/2] gnu: Add hwinfo.
Date: Mon, 30 Aug 2021 18:27:12 -0400
* gnu/packages/hardware.scm (hwinfo): New variable.

Co-authored-by: Petr Hodina <phodina <at> protonmail.com>
---
 gnu/packages/hardware.scm | 109 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 109 insertions(+)

diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index ff21c9c724..d000ab8ce6 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -5,6 +5,8 @@
 ;;; Copyright © 2021 Evgeny Pisemsky <evgeny <at> pisemsky.com>
 ;;; Copyright © 2021 Léo Le Bouter <lle-bout <at> zaclys.net>
 ;;; Copyright © 2021 Denis Carikli <GNUtoo <at> cyberdimension.org>
+;;; Copyright © 2021 Petr Hodina <phodina <at> protonmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +33,7 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -49,6 +52,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages virtualization)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
@@ -66,6 +70,111 @@
 ;; This is a module for packages related to physical hardware that don't (yet)
 ;; have a more specific home like gps.scm, security-token.scm, &c.
 
+(define-public hwinfo
+  (package
+    (name "hwinfo")
+    (version "21.76")
+    (home-page "https://github.com/openSUSE/hwinfo")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url home-page)
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1910wzpdyp1ma1z2v0dripaljgrpl7vjq0f6b7qq9y220899hihb"))
+       (modules
+        '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Remove git2log program file.
+           (delete-file "git2log")
+           ;; Remove variables that depends on git2log.
+           (substitute* "Makefile"
+             (("GIT2LOG.*\\:=.*$") "")
+             (("GITDEPS.*\\:=.*$") "")
+             (("BRANCH.*\\:=.*$") ""))
+           ;; Create version file.
+           (call-with-output-file "VERSION"
+             (lambda (port)
+               (format port ,version)))
+           #t))))
+    (build-system gnu-build-system)
+    (outputs '("out" "dev" "doc"))
+    (arguments
+     `(#:tests? #f                      ; no test-suite available
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (dev (assoc-ref outputs "dev"))
+                    (doc (assoc-ref outputs "doc"))
+                    (incl-dir (string-append dev "/include"))
+                    (lib-dir (string-append dev "/lib"))
+                    (sbin-dir (string-append out "/sbin"))
+                    (share-dir (string-append out "/share"))
+                    (doc-dir (string-append doc "/share/doc")))
+               ;; Generate HTML documentation in the output "doc".
+               (mkdir-p doc-dir)
+               (substitute* "doc/libhd.doxy"
+                 (("OUTPUT_DIRECTORY.*=.*libhd")
+                  (string-append "OUTPUT_DIRECTORY = " doc-dir "/libhd")))
+               ;; Correct values of the version and install directories.
+               (substitute* "Makefile"
+                 (("VERSION.*\\:=.*$")
+                  (string-append "VERSION := " ,version "\n"))
+                 (("LIBDIR.*\\?=.*$")
+                  (string-append "LIBDIR ?= " lib-dir "\n"))
+                 (("/usr/include") incl-dir)
+                 (("/(usr|var)/(lib|lib64)") lib-dir)
+                 (("/usr/sbin") sbin-dir)
+                 (("/usr/share") share-dir)
+                 (("\\$\\(DESTDIR\\)/sbin ") ""))
+               ;; Add output "dev" to the run-path.
+               (substitute* "Makefile.common"
+                 (("-Lsrc")
+                  (string-append "-Lsrc " "-Wl,-rpath=" lib-dir)))
+               ;; Correct program name of the lexical analyzer.
+               (substitute* "src/isdn/cdb/Makefile"
+                 (("lex isdn_cdb.lex") "flex isdn_cdb.lex"))
+               ;; Patch pkgconfig file to point to output "dev".
+               (substitute* "hwinfo.pc.in"
+                 (("/usr") dev)))))
+         (delete 'configure)
+         (replace 'build
+           (lambda _
+             (setenv "CC" ,(cc-for-target))
+             (invoke "make" "shared")
+             (invoke "make" "doc")))
+         (add-after 'install 'install-manpages
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (man-dir (string-append out "/share/man"))
+                    (man1-dir (string-append man-dir "/man1"))
+                    (man8-dir (string-append man-dir "/man8")))
+               (for-each
+                (lambda (x) (install-file x man1-dir))
+                (find-files "doc" "\\.1$"))
+               (for-each
+                (lambda (y) (install-file y man8-dir))
+                (find-files "doc" "\\.8$"))))))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("flex" ,flex)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libx86emu" ,libx86emu)
+       ("util-linux:lib" ,util-linux "lib")))
+    (synopsis "Hardware information tool")
+    (description "HwInfo is used to probe for the hardware present in the system.
+It can be used to generate a system overview log which can be later used for
+support.")
+    (license license:gpl2+)))
+
 (define-public ddcutil
   (package
     (name "ddcutil")
-- 
2.33.0





Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Mon, 30 Aug 2021 23:14:02 GMT) Full text and rfc822 format available.

Message #22 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 50283 <at> debbugs.gnu.org
Subject: Re: [bug#50283] [PATCH v1 1/2] gnu: Add libx86emu.
Date: Tue, 31 Aug 2021 01:13:23 +0200
Hi Raghav,

On Mon, Aug 30, 2021 at 03:35:24PM -0400, Raghav Gururajan via Guix-patches via wrote:
> * gnu/packages/virtualization.scm (libx86emu): New variable.
> […]
> +    (license license:isc)))

This is the third time someone submits libx86emu. :D

https://issues.guix.gnu.org/49934

https://issues.guix.gnu.org/45744.

Your patch looks good (I am not very familiar with packaging habits
and have not tested though), but isn’t this license:x11-style?

Regards,
Florian




Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Mon, 30 Aug 2021 23:28:02 GMT) Full text and rfc822 format available.

Message #25 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
Cc: 50283 <at> debbugs.gnu.org
Subject: Re: HwInfo
Date: Mon, 30 Aug 2021 19:27:33 -0400
[Message part 1 (text/plain, inline)]
Hi Florian!

> This is the third time someone submits libx86emu. :D
> 
> https://issues.guix.gnu.org/49934
> 
> https://issues.guix.gnu.org/45744.

Yeah, I was informed in IRC after I sent this patch-set.

I have combined the patches into one and sent v2 to this thread.

> Your patch looks good (I am not very familiar with packaging habits
> and have not tested though), but isn’t this license:x11-style?

The wordings coincide with ISC and expat. Should I mention non-copyleft 
instead?

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Mon, 30 Aug 2021 23:35:02 GMT) Full text and rfc822 format available.

Message #28 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 50283 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Petr Hodina <phodina <at> protonmail.com>
Subject: [PATCH v3 2/2] gnu: Add hwinfo.
Date: Mon, 30 Aug 2021 19:33:53 -0400
* gnu/packages/hardware.scm (hwinfo): New variable.

Co-authored-by: Petr Hodina <phodina <at> protonmail.com>
---
 gnu/packages/hardware.scm | 109 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 109 insertions(+)

diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index ff21c9c724..d000ab8ce6 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -5,6 +5,8 @@
 ;;; Copyright © 2021 Evgeny Pisemsky <evgeny <at> pisemsky.com>
 ;;; Copyright © 2021 Léo Le Bouter <lle-bout <at> zaclys.net>
 ;;; Copyright © 2021 Denis Carikli <GNUtoo <at> cyberdimension.org>
+;;; Copyright © 2021 Petr Hodina <phodina <at> protonmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +33,7 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -49,6 +52,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages virtualization)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
@@ -66,6 +70,111 @@
 ;; This is a module for packages related to physical hardware that don't (yet)
 ;; have a more specific home like gps.scm, security-token.scm, &c.
 
+(define-public hwinfo
+  (package
+    (name "hwinfo")
+    (version "21.76")
+    (home-page "https://github.com/openSUSE/hwinfo")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url home-page)
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1910wzpdyp1ma1z2v0dripaljgrpl7vjq0f6b7qq9y220899hihb"))
+       (modules
+        '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Remove git2log program file.
+           (delete-file "git2log")
+           ;; Remove variables that depends on git2log.
+           (substitute* "Makefile"
+             (("GIT2LOG.*\\:=.*$") "")
+             (("GITDEPS.*\\:=.*$") "")
+             (("BRANCH.*\\:=.*$") ""))
+           ;; Create version file.
+           (call-with-output-file "VERSION"
+             (lambda (port)
+               (format port ,version)))
+           #t))))
+    (build-system gnu-build-system)
+    (outputs '("out" "dev" "doc"))
+    (arguments
+     `(#:tests? #f                      ; no test-suite available
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (dev (assoc-ref outputs "dev"))
+                    (doc (assoc-ref outputs "doc"))
+                    (incl-dir (string-append dev "/include"))
+                    (lib-dir (string-append dev "/lib"))
+                    (sbin-dir (string-append out "/sbin"))
+                    (share-dir (string-append out "/share"))
+                    (doc-dir (string-append doc "/share/doc")))
+               ;; Generate HTML documentation in the output "doc".
+               (mkdir-p doc-dir)
+               (substitute* "doc/libhd.doxy"
+                 (("OUTPUT_DIRECTORY.*=.*libhd")
+                  (string-append "OUTPUT_DIRECTORY = " doc-dir "/libhd")))
+               ;; Correct values of the version and install directories.
+               (substitute* "Makefile"
+                 (("VERSION.*\\:=.*$")
+                  (string-append "VERSION := " ,version "\n"))
+                 (("LIBDIR.*\\?=.*$")
+                  (string-append "LIBDIR ?= " lib-dir "\n"))
+                 (("/usr/include") incl-dir)
+                 (("/(usr|var)/(lib|lib64)") lib-dir)
+                 (("/usr/sbin") sbin-dir)
+                 (("/usr/share") share-dir)
+                 (("\\$\\(DESTDIR\\)/sbin ") ""))
+               ;; Add output "dev" to the run-path.
+               (substitute* "Makefile.common"
+                 (("-Lsrc")
+                  (string-append "-Lsrc " "-Wl,-rpath=" lib-dir)))
+               ;; Correct program name of the lexical analyzer.
+               (substitute* "src/isdn/cdb/Makefile"
+                 (("lex isdn_cdb.lex") "flex isdn_cdb.lex"))
+               ;; Patch pkgconfig file to point to output "dev".
+               (substitute* "hwinfo.pc.in"
+                 (("/usr") dev)))))
+         (delete 'configure)
+         (replace 'build
+           (lambda _
+             (setenv "CC" ,(cc-for-target))
+             (invoke "make" "shared")
+             (invoke "make" "doc")))
+         (add-after 'install 'install-manpages
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (man-dir (string-append out "/share/man"))
+                    (man1-dir (string-append man-dir "/man1"))
+                    (man8-dir (string-append man-dir "/man8")))
+               (for-each
+                (lambda (x) (install-file x man1-dir))
+                (find-files "doc" "\\.1$"))
+               (for-each
+                (lambda (y) (install-file y man8-dir))
+                (find-files "doc" "\\.8$"))))))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("flex" ,flex)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libx86emu" ,libx86emu)
+       ("util-linux:lib" ,util-linux "lib")))
+    (synopsis "Hardware information tool")
+    (description "HwInfo is used to probe for the hardware present in the system.
+It can be used to generate a system overview log which can be later used for
+support.")
+    (license license:gpl2+)))
+
 (define-public ddcutil
   (package
     (name "ddcutil")
-- 
2.33.0





Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Mon, 30 Aug 2021 23:35:02 GMT) Full text and rfc822 format available.

Message #31 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 50283 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Petr Hodina <phodina <at> protonmail.com>,
 Vincent Legoll <vincent.legoll <at> gmail.com>
Subject: [PATCH v3 1/2] gnu: Add libx86emu.
Date: Mon, 30 Aug 2021 19:33:52 -0400
* gnu/packages/virtualization.scm (libx86emu): New variable.

Co-authored-by: Petr Hodina <phodina <at> protonmail.com>
Co-authored-by: Vincent Legoll <vincent.legoll <at> gmail.com>
---
 gnu/packages/virtualization.scm | 71 +++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index e952c009b5..5901524269 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -20,6 +20,9 @@
 ;;; Copyright © 2021 Leo Famulari <leo <at> famulari.name>
 ;;; Copyright © 2021 Pierre Langlois <pierre.langlois <at> gmx.com>
 ;;; Copyright © 2021 Dion Mendel <guix <at> dm9.info>
+;;; Copyright © 2021 Vincent Legoll <vincent.legoll <at> gmail.com>
+;;; Copyright © 2021 Petr Hodina <phodina <at> protonmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -130,6 +133,74 @@
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match))
 
+(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 provides 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:non-copyleft "file:///LICENSE"))))
+
 (define (qemu-patch commit file-name sha256-bv)
   "Return an origin for COMMIT."
   (origin
-- 
2.33.0





Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Tue, 31 Aug 2021 09:36:01 GMT) Full text and rfc822 format available.

Message #34 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 50283 <at> debbugs.gnu.org
Subject: Re: HwInfo
Date: Tue, 31 Aug 2021 11:35:36 +0200
Thank you for merging the others’ patches.

Could you change the grammar of the description as I wrote at
<https://issues.guix.gnu.org/49934#5>?

On Mon, Aug 30, 2021 at 07:27:33PM -0400, Raghav Gururajan wrote:
> > but isn’t this license:x11-style?
> The wordings coincide with ISC and expat. Should I mention non-copyleft
> instead?

The wording is the same as
<https://directory.fsf.org/wiki/License:Modified_X11> except for the
licensor’s name, so I thought it best be specified as x11-style.

Regards,
Florian




Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Tue, 31 Aug 2021 09:42:01 GMT) Full text and rfc822 format available.

Message #37 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 50283 <at> debbugs.gnu.org
Subject: Re: HwInfo
Date: Tue, 31 Aug 2021 11:41:36 +0200
On Tue, Aug 31, 2021 at 11:35:44AM +0200, pelzflorian (Florian Pelz) wrote:
> Thank you for merging the others’ patches.
> 
> Could you change the grammar of the description as I wrote at
> <https://issues.guix.gnu.org/49934#5>?

Oh you did, sorry.  It looks good to me except I did not notice maybe
instead of

You can,
@enumerate
[…]
@item provides a hook yo run after each instruction

it should be

You can  <--- no comma
@enumerate
[…]
@item add a hook yo run after each instruction


Regards,
Florian




Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Tue, 31 Aug 2021 09:49:02 GMT) Full text and rfc822 format available.

Message #40 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 50283 <at> debbugs.gnu.org
Subject: Re: [bug#50283] HwInfo
Date: Tue, 31 Aug 2021 11:48:30 +0200
On Tue, Aug 31, 2021 at 11:41:36AM +0200, pelzflorian (Florian Pelz) wrote:
> @item add a hook yo run after each instruction

Oops I made a typo “to run” not “yo run”.  Funny typo of mine.  You
did not mistype.  Yo would be in the wrong language register.

Regards,
Florian




Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Tue, 31 Aug 2021 11:20:02 GMT) Full text and rfc822 format available.

Message #43 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 50283 <at> debbugs.gnu.org
Subject: Re: [PATCH v3 2/2] gnu: Add hwinfo.
Date: Tue, 31 Aug 2021 11:18:59 +0000
Hi Raghav,

thanks for the patches!

Just what about hw-probe package? Should I create a new version of the patch?

PH





Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Wed, 01 Sep 2021 01:29:01 GMT) Full text and rfc822 format available.

Message #46 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: phodina <phodina <at> protonmail.com>
Cc: 50283 <at> debbugs.gnu.org
Subject: Re: [PATCH v3 2/2] gnu: Add hwinfo.
Date: Tue, 31 Aug 2021 21:28:25 -0400
[Message part 1 (text/plain, inline)]
Hi Petr!

> thanks for the patches!

:)

> Just what about hw-probe package? Should I create a new version of the patch?

I have the hw-probe package in my local machine, which requires some 
refinement. Once libx86emu and hwinfo are merged, we'll focus on hw-probe.

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Sat, 18 Sep 2021 13:01:01 GMT) Full text and rfc822 format available.

Message #49 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "50283 <at> debbugs.gnu.org" <50283 <at> debbugs.gnu.org>
Subject: Patch status
Date: Sat, 18 Sep 2021 12:59:55 +0000
[Message part 1 (text/plain, inline)]
Hi Raghav!

Could I be of any assistance?
[Message part 2 (text/html, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Fri, 01 Oct 2021 23:31:01 GMT) Full text and rfc822 format available.

Message #52 received at 50283 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 50283 <at> debbugs.gnu.org
Subject: Re: HwInfo
Date: Fri, 1 Oct 2021 19:30:28 -0400
[Message part 1 (text/plain, inline)]
libx86emu and hwinfo are now merged to master.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Thu, 23 Jun 2022 15:36:03 GMT) Full text and rfc822 format available.

Message #55 received at 50283-done <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: Ricardo Wurmus <rekado <at> elephly.net>, 49934-done <at> debbugs.gnu.org,
 50283-done <at> debbugs.gnu.org
Subject: Re: bug#50283: HwInfo
Date: Thu, 23 Jun 2022 11:35:04 -0400
Hi,

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> Hi Ricardo!
>
>> --8<---------------cut here---------------start------------->8---
>> (substitute* "hw-probe.pl"
>>    (("Cmd\\(\"([^\"]+)" _ command)
>>     (string-append "Cmd(\"" (which command))))
>> --8<---------------cut here---------------end--------------->8---
>
> Thanks for the snippet and explanation.
>
> I am wondering these,
> [1] Does require import of specific modules?

No.  `which', the Scheme procedure, is part of (guix build utils).

> [2] If `(which command)`'s output is empty, will it return #f?

Yes, and I agree that's a problem.

Fortunately, the recently added search-input-file more usefully raises
an error when the file it is looking for doesn't exist, so I used that.

It was a bit painful to hunt all the commands but in the end it works
beautifully!  I pushed the result as
3611f99affc4d2edcf4141e3022dd0d2a0b04068.

Closing, thanks!

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#50283; Package guix-patches. (Fri, 24 Jun 2022 08:33:02 GMT) Full text and rfc822 format available.

Message #58 received at 50283-done <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: Ricardo Wurmus <rekado <at> elephly.net>, 49934-done <at> debbugs.gnu.org,
 50283-done <at> debbugs.gnu.org
Subject: Re: bug#50283: HwInfo
Date: Fri, 24 Jun 2022 04:31:50 -0400
[Message part 1 (text/plain, inline)]
Maxim,

> Yes, and I agree that's a problem.
> 
> Fortunately, the recently added search-input-file more usefully raises
> an error when the file it is looking for doesn't exist, so I used that.
> 
> It was a bit painful to hunt all the commands but in the end it works
> beautifully!  I pushed the result as
> 3611f99affc4d2edcf4141e3022dd0d2a0b04068.
> 
> Closing, thanks!

Thank a lot.

Regards,
RG.
[OpenPGP_signature (application/pgp-signature, attachment)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 22 Jul 2022 11:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 279 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.