nixpkgs/pkgs/by-name/hw/hwinfo/package.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

86 lines
2.3 KiB
Nix
Raw Normal View History

{
lib,
stdenv,
fetchFromGitHub,
flex,
libuuid,
libx86emu,
perl,
kmod,
systemdMinimal,
2024-08-19 19:46:51 +00:00
testers,
binutils,
writeText,
runCommand,
2021-11-28 10:58:58 +00:00
}:
2015-04-20 11:55:04 +00:00
2024-08-19 19:09:52 +00:00
stdenv.mkDerivation (finalAttrs: {
pname = "hwinfo";
2023-07-23 07:50:41 +00:00
version = "23.2";
2015-04-20 11:55:04 +00:00
2017-03-01 02:38:22 +00:00
src = fetchFromGitHub {
owner = "opensuse";
repo = "hwinfo";
2024-08-19 19:09:52 +00:00
rev = finalAttrs.version;
2023-07-23 07:50:41 +00:00
hash = "sha256-YAhsnE1DJ5UlYAuhDxS/5IpfIJB6DrhCT3E0YiKENjU=";
2015-04-20 11:55:04 +00:00
};
2024-08-19 19:06:29 +00:00
nativeBuildInputs = [ flex ];
2021-11-28 10:58:58 +00:00
buildInputs = [
libuuid
libx86emu
perl
];
2021-04-28 14:48:00 +00:00
postPatch = ''
substituteInPlace Makefile \
--replace-fail "/sbin" "/bin" \
--replace-fail "/usr/" "/"
substituteInPlace src/isdn/cdb/Makefile \
--replace-fail "lex isdn_cdb.lex" "flex isdn_cdb.lex"
substituteInPlace hwinfo.pc.in \
--replace-fail "prefix=/usr" "prefix=$out"
substituteInPlace src/isdn/cdb/cdb_hwdb.h \
--replace-fail "/usr/share" "$out/share"
# replace absolute paths with relative, we will prefix PATH later
substituteInPlace src/hd/hd_int.h \
--replace-fail "/sbin/modprobe" "${kmod}/bin/modprobe" \
--replace-fail "/sbin/rmmod" "${kmod}/bin/rmmod" \
--replace-fail "/usr/bin/udevinfo" "${systemdMinimal}/bin/udevinfo" \
--replace-fail "/usr/bin/udevadm" "${systemdMinimal}/bin/udevadm"
2015-04-20 11:55:04 +00:00
'';
makeFlags = [
"LIBDIR=/lib"
"HWINFO_VERSION=${finalAttrs.version}"
];
2015-04-20 11:55:04 +00:00
installFlags = [ "DESTDIR=$(out)" ];
2015-04-20 11:55:04 +00:00
2024-08-19 19:46:51 +00:00
passthru.tests = {
version = testers.testVersion { package = finalAttrs.finalPackage; };
no-usr = testers.testEqualContents {
assertion = "There should be no /usr/ paths in the binaries";
# There is a bash script that refers to lshal, which is deprecated and not available in Nixpkgs.
# We'll allow this line, but nothing else.
expected = writeText "expected" ''
if [ -x /usr/bin/lshal ] ; then
'';
actual = runCommand "actual" { nativeBuildInputs = [ binutils ]; } ''
strings ${finalAttrs.finalPackage}/bin/* | grep /usr/ > $out
'';
};
2024-08-19 19:46:51 +00:00
};
meta = with lib; {
2015-04-20 11:55:04 +00:00
description = "Hardware detection tool from openSUSE";
2021-04-28 14:48:00 +00:00
license = licenses.gpl2Only;
2020-03-29 20:22:56 +00:00
homepage = "https://github.com/openSUSE/hwinfo";
2019-12-26 21:28:10 +00:00
maintainers = with maintainers; [ bobvanderlinden ];
2017-04-08 03:01:39 +00:00
platforms = platforms.linux;
2024-08-19 19:30:21 +00:00
mainProgram = "hwinfo";
2015-04-20 11:55:04 +00:00
};
2024-08-19 19:09:52 +00:00
})