biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / misc / os-prober / default.nix
blobf48aae8e6df5e3f85d40c547151d43c27737776f
1 { lib, stdenv, fetchFromGitLab, makeWrapper, nixosTests,
2 # optional dependencies, the command(s) they provide
3 coreutils,  # mktemp
4 grub2,      # grub-mount and grub-probe
5 cryptsetup, # cryptsetup
6 libuuid,    # blkid and blockdev
7 systemd,    # udevadm
8 ntfs3g,     # ntfs3g
9 dmraid,     # dmraid
10 lvm2        # lvs
13 stdenv.mkDerivation rec {
14   version = "1.81";
15   pname = "os-prober";
16   src = fetchFromGitLab {
17     domain = "salsa.debian.org";
18     owner = "installer-team";
19     repo = pname;
20     rev = version;
21     sha256 = "sha256-3FXfGadIcmKp4qn6ZDcOSQHYsUNP2ObL1cJesNle+8A=";
22   };
24   nativeBuildInputs = [ makeWrapper ];
25   installPhase = ''
26     # executables
27     install -Dt $out/bin os-prober linux-boot-prober
28     install -Dt $out/lib newns
29     install -Dt $out/share common.sh
31     # probes
32     case "${stdenv.hostPlatform.system}" in
33         i686*|x86_64*) ARCH=x86;;
34         powerpc*) ARCH=powerpc;;
35         arm*) ARCH=arm;;
36         *) ARCH=other;;
37     esac;
38     for probes in os-probes os-probes/mounted os-probes/init linux-boot-probes linux-boot-probes/mounted; do
39       install -Dt $out/lib/$probes $probes/common/*;
40       if [ -e "$probes/$ARCH" ]; then
41         mkdir -p $out/lib/$probes
42         cp -r $probes/$ARCH/* $out/lib/$probes;
43       fi;
44     done
45     if [ $ARCH = "x86" ]; then
46         cp -r os-probes/mounted/powerpc/20macosx $out/lib/os-probes/mounted;
47     fi;
48   '';
49   postFixup = ''
50     for file in $(find $out  -type f ! -name newns) ; do
51       substituteInPlace $file \
52         --replace /usr/share/os-prober/ $out/share/ \
53         --replace /usr/lib/os-probes/ $out/lib/os-probes/ \
54         --replace /usr/lib/linux-boot-probes/ $out/lib/linux-boot-probes/ \
55         --replace /usr/lib/os-prober/ $out/lib/
56     done;
57     for file in $out/bin/*; do
58       wrapProgram $file \
59         --suffix PATH : ${lib.makeBinPath [ grub2 systemd coreutils cryptsetup libuuid ntfs3g lvm2 dmraid ]} \
60         --run "[ -d /var/lib/os-prober ] || mkdir /var/lib/os-prober"
61     done;
62   '';
64   passthru.tests = {
65     os-prober = nixosTests.os-prober;
66   };
67   meta = with lib; {
68     description = "Utility to detect other OSs on a set of drives";
69     homepage = "http://packages.debian.org/source/sid/os-prober";
70     license = licenses.gpl2Plus;
71     mainProgram = "os-prober";
72     maintainers = with maintainers; [ symphorien ];
73     platforms = platforms.linux;
74   };