guix-more/more/packages/virtualbox.scm

virtualbox.scm

1
;;; GNU Guix --- Functional package management for GNU
2
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
3
;;;
4
;;; This file is part of GNU Guix.
5
;;;
6
;;; GNU Guix is free software; you can redistribute it and/or modify it
7
;;; under the terms of the GNU General Public License as published by
8
;;; the Free Software Foundation; either version 3 of the License, or (at
9
;;; your option) any later version.
10
;;;
11
;;; GNU Guix is distributed in the hope that it will be useful, but
12
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
;;; GNU General Public License for more details.
15
;;;
16
;;; You should have received a copy of the GNU General Public License
17
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
18
19
(define-module (more packages virtualbox)
20
  #:use-module ((guix licenses) #:prefix license:)
21
  #:use-module (guix packages)
22
  #:use-module (guix download)
23
  #:use-module (guix build-system gnu)
24
  #:use-module (gnu packages)
25
  #:use-module (gnu packages autotools)
26
  #:use-module (gnu packages base)
27
  #:use-module (gnu packages bison)
28
  #:use-module (more packages cdrom)
29
  #:use-module (gnu packages flex)
30
  #:use-module (gnu packages linux)
31
  #:use-module (gnu packages m4)
32
  #:use-module (gnu packages perl)
33
  #:use-module (gnu packages texinfo)
34
  #:use-module (gnu packages xml))
35
36
(define-public kbuild
37
  (package
38
    (name "kbuild")
39
    (version "0.1.5-p2")
40
    (source (origin
41
              (method url-fetch)
42
              (uri (string-append "ftp://ftp.netlabs.org/pub/kbuild/kBuild-"
43
                                  version "-src.tar.gz"))
44
              (sha256
45
               (base32
46
                "19j2sswdqqjzjzmg0xam8nmwmxg422iii0fl9cwzcznjfigdn1c2"))))
47
    (build-system gnu-build-system)
48
    (native-inputs
49
     `(("autoconf" ,autoconf)
50
       ("automake" ,automake)
51
       ("bison" ,bison)
52
       ("flex" ,flex)
53
       ("perl" ,perl)
54
       ("texinfo" ,texinfo)))
55
    (arguments
56
     `(#:tests? #f
57
       #:phases
58
       (modify-phases %standard-phases
59
         (delete 'configure)
60
         (add-before 'patch-generated-file-shebangs 'reconfigure
61
           (lambda _
62
             (chdir "src/kmk")
63
             (system* "autoreconf" "-fiv")
64
             (chdir "../..")))
65
         (add-before 'build 'fix-binaries
66
           (lambda _
67
             (substitute* "Config.kmk"
68
               (("\\+= rt") "+= rt pthread"))
69
             (substitute* "src/ash/output.h"
70
               (("dprintf") "debugprintf"))
71
             (substitute* "src/ash/output.c"
72
               (("dprintf") "debugprintf"))
73
             (substitute* "bootstrap.gmk"
74
               ((" /bin/sh") (string-append " " (which "sh")))
75
               ((" /bin/echo") (string-append " " (which "echo"))))
76
             (substitute* "kBuild/env.sh"
77
               (("/bin/pwd") (which "pwd")))))
78
         (replace 'build
79
           (lambda _
80
             (zero? (system* "kBuild/env.sh" "--full" "make" "-f" "bootstrap.gmk"
81
                             "AUTORECONF=true"
82
                             (string-append "CONFIG_SHELL=" (which "sh"))
83
                             (string-append "AR=" (which "ar"))))))
84
         (replace 'install
85
           (lambda* (#:key outputs #:allow-other-keys)
86
             (zero? (system* "kBuild/env.sh" "kmk" "PATH_INS=/"
87
                             (string-append "NIX_INSTALL_DIR="
88
                                            (assoc-ref outputs "out")))))))))
89
    (home-page "http://trac.netlabs.org/kbuild/wiki")
90
    (synopsis "Makefile framework")
91
    (description "kBuild is a makefile framework for writing simple makefiles
92
for complex tasks.")
93
    (license license:gpl3+)))
94
95
(define-public acpica-unix
96
  (package
97
    (name "acpica-unix")
98
    (version "20170303")
99
    (home-page "https://www.acpica.org")
100
    (source (origin
101
              (method url-fetch)
102
              (uri (string-append
103
                     "https://acpica.org/sites/acpica/files/acpica-unix-"
104
                     version ".tar.gz"))
105
              (sha256
106
               (base32
107
                "1dc933rr11gv1nlaf5j8ih1chdakbjbjkn34jgbm330zppmck4y0"))))
108
    (build-system gnu-build-system)
109
    (native-inputs
110
     `(("m4" ,m4)
111
       ("bison" ,bison)
112
       ("flex" ,flex)))
113
    (arguments
114
     `(#:tests? #f; no check target
115
       #:make-flags
116
       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
117
       #:phases
118
       (modify-phases %standard-phases
119
         (delete 'configure)
120
         (add-before 'build 'goto-dir
121
           (lambda _
122
             (chdir "generate/unix")
123
             (zero? (system* "make" "clean")))))))
124
    (synopsis "")
125
    (description "")
126
    (license license:gpl2+)))
127
128
(define-public virtualbox
129
  (package
130
    (name "virtualbox")
131
    (version "5.1.14")
132
    (source (origin
133
              (method url-fetch)
134
              (uri (string-append
135
                    "http://download.virtualbox.org/virtualbox/" version
136
                    "/VirtualBox-" version ".tar.bz2"))
137
              (file-name (string-append name "-" version ".tar.bz2"))
138
              (sha256
139
               (base32
140
                "12i2kyn7svy2kd6j40fzzhy7173xfq884ygb6x9fbihpcw1bnrw2"))))
141
    (build-system gnu-build-system)
142
    (native-inputs
143
     `(("kbuild" ,kbuild)
144
       ("which" ,which)))
145
    (inputs
146
     `(("acpica-unix" ,acpica-unix); for iasl
147
       ("cdrtools" ,cdrtools)
148
       ("libxslt" ,libxslt)))
149
    (arguments
150
     `(#:phases
151
       (modify-phases %standard-phases
152
         (add-before 'configure 'remove-binaries
153
           (lambda* _
154
             (substitute* "configure"
155
               (("bin/\\$OS.\\$BUILD_MACHINE") "bin"))
156
             (delete-file-recursively "tools")
157
             (delete-file-recursively "kBuild/bin")))
158
         (replace 'configure
159
           (lambda* (#:key outputs inputs #:allow-other-keys)
160
             (zero? (system* "./configure" "--disable-java" "--disable-pulse"
161
                             "--disable-vmmraw"
162
                             (string-append "--with-kbuild="
163
                                            (assoc-ref inputs "kbuild")))))))))
164
    (home-page "https://www.virtualbox.org")
165
    (synopsis "Virtual Machine manager")
166
    (description
167
     "VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for
168
enterprise as well as home use.")
169
    (license license:gpl2+)))
170