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 |