;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix packages)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (gnu packages compression)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages base))
(define-public pciutils
(package
(name "pciutils")
- (version "3.3.1")
+ (version "3.6.2")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://kernel.org/software/utils/pciutils/pciutils-"
- version
- ".tar.xz"))
+ version ".tar.xz"))
(sha256
(base32
- "1ag3skny1bamqil46dlppw8j1fp08spqa60fjygbxkg4fzdknjji"))))
+ "1wwkpglvvr1sdj2gxz9khq507y02c4px48njy25divzdhv4jwifv"))))
(build-system gnu-build-system)
(arguments
- '(#:phases (alist-replace
- 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- ;; There's no 'configure' script, just a raw makefile.
- (substitute* "Makefile"
- (("^PREFIX=.*$")
- (string-append "PREFIX := " (assoc-ref outputs "out")
- "\n"))
- (("^MANDIR:=.*$")
- ;; By default the thing tries to automatically
- ;; determine whether to use $prefix/man or
- ;; $prefix/share/man, and wrongly so.
- (string-append "MANDIR := " (assoc-ref outputs "out")
- "/share/man\n"))
- (("^SHARED=.*$")
- ;; Build libpciutils.so.
- "SHARED := yes\n")
- (("^ZLIB=.*$")
- ;; Ask for zlib support.
- "ZLIB := yes\n")))
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; There's no 'configure' script, just a raw makefile.
+ (substitute* "Makefile"
+ ,@(if (%current-target-system)
+ `((("^CROSS_COMPILE=.*$")
+ (string-append "CROSS_COMPILE="
+ ,(%current-target-system) "-"
+ "\n"))
+ (("^HOST=.*$")
+ (string-append "HOST="
+ ,(gnu-triplet->nix-system
+ (%current-target-system)) "\n"))
+ ;; Disable 'install' strip option, that would fail when
+ ;; we are cross-compiling.
+ (("^STRIP=.*$")
+ "STRIP=\n"))
+ '())
+ (("^PREFIX=.*$")
+ (string-append "PREFIX := " (assoc-ref outputs "out")
+ "\n"))
+ (("^MANDIR:=.*$")
+ ;; By default the thing tries to automatically
+ ;; determine whether to use $prefix/man or
+ ;; $prefix/share/man, and wrongly so.
+ (string-append "MANDIR := " (assoc-ref outputs "out")
+ "/share/man\n"))
- (alist-replace
- 'install
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Install the commands, library, and .pc files.
- (zero? (system* "make" "install" "install-lib")))
- %standard-phases))
+ (("^SHARED=.*$")
+ ;; Build libpciutils.so.
+ "SHARED := yes\n")
+ (("^ZLIB=.*$")
+ ;; Ask for zlib support, for 'pci.ids.gz' decompression.
+ "ZLIB := yes\n")
+
+ (("^IDSDIR=.*$")
+ ;; Installation directory of 'pci.ids.gz'.
+ "IDSDIR = $(SHAREDIR)/hwdata\n"))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Install the commands, library, and .pc files.
+ (invoke "make" "install" "install-lib"))))
;; Make sure programs have an RPATH so they can find libpciutils.so.
#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
`(("which" ,which)
("pkg-config" ,pkg-config)))
(inputs
- ;; TODO: Add dependency on Linux libkmod.
- `(("zlib" ,zlib)))
- (home-page "http://mj.ucw.cz/sw/pciutils/")
+ `(("kmod" ,kmod)
+ ("zlib" ,zlib)))
+ (home-page "https://mj.ucw.cz/sw/pciutils/")
(synopsis "Programs for inspecting and manipulating PCI devices")
(description
"The PCI Utilities are a collection of programs for inspecting and
manipulating configuration of PCI devices, all based on a common portable
library libpci which offers access to the PCI configuration space on a variety
-of operating systems. This includes the 'lspci' and 'setpci' commands.")
+of operating systems. This includes the @command{lspci} and @command{setpci}
+commands.")
(license license:gpl2+)))