diff options
author | Marius Bakke <mbakke@fastmail.com> | 2017-09-20 18:49:26 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2017-09-20 18:49:26 +0200 |
commit | 58366883f2f1516a4a02f5b4e2a70e86481827b5 (patch) | |
tree | fa67d714c4596164b341118132728a48135f4759 /gnu/packages/bootloaders.scm | |
parent | f40aef6b3b56e1e5fb6e6ac29bd372000e13982f (diff) | |
parent | 9a1c4a981bdd7eeca76aaf73a57d6841918821c2 (diff) | |
download | guix-58366883f2f1516a4a02f5b4e2a70e86481827b5.tar.gz |
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/bootloaders.scm')
-rw-r--r-- | gnu/packages/bootloaders.scm | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index f66d0bb3f4..613537a5d1 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -395,3 +395,72 @@ also initializes the boards (RAM etc).") (define-public u-boot-odroid-c2 (make-u-boot-package "odroid-c2" "aarch64-linux-gnu")) + +(define-public os-prober + (package + (name "os-prober") + (version "1.76") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://debian/pool/main/o/os-prober/os-prober_" + version ".tar.xz")) + (sha256 + (base32 + "1vb45i76bqivlghrq7m3n07qfmmq4wxrkplqx8gywj011rhq19fk")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 regex) ; for string-match + (srfi srfi-26)) ; for cut + #:make-flags (list "CC=gcc") + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* (find-files ".") + (("/usr") (assoc-ref outputs "out"))) + (substitute* (find-files "." "50mounted-tests$") + (("mkdir") "mkdir -p")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (define (find-files-non-recursive directory) + (find-files directory + (lambda (file stat) + (string-match (string-append "^" directory "/[^/]*$") + file)) + #:directories? #t)) + + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib")) + (share (string-append out "/share"))) + (for-each (cut install-file <> bin) + (list "linux-boot-prober" "os-prober")) + (install-file "newns" (string-append lib "/os-prober")) + (install-file "common.sh" (string-append share "/os-prober")) + (install-file "os-probes/mounted/powerpc/20macosx" + (string-append lib "/os-probes/mounted")) + (for-each + (lambda (directory) + (for-each + (lambda (file) + (let ((destination (string-append lib "/" directory + "/" (basename file)))) + (mkdir-p (dirname destination)) + (copy-recursively file destination))) + (append (find-files-non-recursive (string-append directory "/common")) + (find-files-non-recursive (string-append directory "/x86"))))) + (list "os-probes" "os-probes/mounted" "os-probes/init" + "linux-boot-probes" "linux-boot-probes/mounted")) + #t)))))) + (home-page "https://joeyh.name/code/os-prober") + (synopsis "Detect other operating systems") + (description "os-prober probes disks on the system for other operating +systems so that they can be added to the bootloader. It also works out how to +boot existing GNU/Linux systems and detects what distribution is installed in +order to add a suitable bootloader menu entry.") + (license license:gpl2+))) |