guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 4/5] gnu: Add syslinux.


From: Marius Bakke
Subject: Re: [PATCH 4/5] gnu: Add syslinux.
Date: Fri, 10 Feb 2017 02:18:05 +0100
User-agent: Notmuch/0.23.5 (https://notmuchmail.org) Emacs/25.1.1 (x86_64-unknown-linux-gnu)

David Craven <address@hidden> writes:

> * gnu/packages/grub.scm (syslinux): New variable.
> ---
>  gnu/packages/grub.scm | 54 
> +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 54 insertions(+)
>
> diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
> index 4da01ceb9..2e692a100 100644
> --- a/gnu/packages/grub.scm
> +++ b/gnu/packages/grub.scm
> @@ -36,6 +36,7 @@
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages fontutils)
>    #:use-module (gnu packages linux)
> +  #:use-module (gnu packages perl)
>    #:use-module (gnu packages python)
>    #:use-module (gnu packages qemu)
>    #:use-module (gnu packages man)
> @@ -270,3 +271,56 @@ use of coreboot.")
>      (description "OVMF is an EDK II based project to enable UEFI support for
>  Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
>      (license license:expat)))
> +
> +(define-public syslinux
> +  (let ((commit "bb41e935cc83c6242de24d2271e067d76af3585c"))
> +    (package
> +      (name "syslinux")
> +      (version (git-version "6.04-pre" "1" commit))

I think the most common convention is to use the latest upstream
release, and adding revisions on top of it. But no strong opinion.

I tried packaging 6.03 a while back and it was very difficult. Most if
the problems seems to be solved here, so thanks for doing this.

> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/geneC/syslinux";)
> +                      (commit commit)))
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                  "0k8dvafd6410kqxf3kyr4y8jzmpmrih6wbjqg6gklak7945yflrc"))))
> +      (build-system gnu-build-system)
> +      (native-inputs
> +       `(("nasm" ,nasm)
> +         ("perl" ,perl)
> +         ("python-2" ,python-2)))
> +      (inputs
> +       `(("libuuid" ,util-linux)))
> +      (arguments
> +       `(#:tests? #f
> +         #:test-target "unittest"

This is unfortunate. The "unittest" target is applied recursively, and
fails with "no such target" in one of the folders.

However, I was able to successfully run the tests by calling the
"unittest" target "manually" for some reason, like so:

           (replace 'check
             (lambda _
               (setenv "CC" "gcc")
               (substitute* "tests/unittest/include/unittest/unittest.h"
                 ;; Don't look up headers under /usr.
                 (("/usr/include/") ""))
               (zero? (system* "make" "unittest"))))

> +         #:parallel-build? #f
> +         #:make-flags
> +         (list (string-append "BINDIR=" %output "/bin")
> +               (string-append "SBINDIR=" %output "/sbin")
> +               (string-append "LIBDIR=" %output "/lib")
> +               (string-append "INCDIR=" %output "/include")
> +               (string-append "DATADIR=" %output "/share")
> +               (string-append "MANDIR=" %output "/share/man")
> +               "PERL=perl"
> +               "bios")
> +         #:phases
> +         (modify-phases %standard-phases
> +           (add-after 'unpack 'patch-files
> +             (lambda _
> +               (substitute* (find-files "." "Makefile.*|ppmtolss16")
> +                 (("/bin/pwd") (which "pwd"))
> +                 (("/bin/echo") (which "echo"))
> +                 (("/usr/bin/perl") (which "perl")))
> +               #t))
> +           (delete 'configure)
> +           (add-before 'build 'set-permissions
> +             (lambda _
> +               ;; Is read only because it's checked out with git.
> +               (zero? (system* "chmod" "a+w" "utils/isohybrid.in")))))))
> +      (home-page "http://www.syslinux.org";)
> +      (synopsis "Lightweight Linux bootloader")
> +      (description "Syslinux is a lightweight Linux bootloader.")
> +      (license license:gpl2+))))

This software bundles some third-party code in the "com32" folder.
address@hidden, zlib, and others. Their licenses should be mentioned
here. Preferably they would be scrubbed from the source in favor of
system versions, but that looks to be difficult.

Otherwise this LGTM. Thank you!

> -- 
> 2.11.0

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]