From 33ec536b90549488379a3dc80b5e23337cc9fac2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 16 May 2017 15:09:57 +0200 Subject: gnu: guix: Update snapshot. * gnu/packages/package-management.scm (guix): Update to ce92d26. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 8ebf6b0578..ceaf51b676 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -73,8 +73,8 @@ (define-public guix ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.12.0") - (commit "ba2260dbbc5a3c915e2cbd54d93f2f3af2a864c3") - (revision 10)) + (commit "ce92d269fea0a2bfac0ac20414f77127d2f07500") + (revision 11)) (package (name "guix") @@ -90,7 +90,7 @@ (define-public guix (commit commit))) (sha256 (base32 - "0nkwbblsnl7kv2n8jf8c6rl3a7dynaqxizhhni18vbnmvza35c79")) + "17l9r2mdzzv8vfxb3bc5zkdqkl472q979iwsarp7lcqss1jxys7w")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From ed5e3ab8abe994d584465afdfe9102fc74ef7e85 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 16 May 2017 22:26:22 +0300 Subject: gnu: tor: Update to 0.3.0.7. * gnu/packages/tor.scm (tor): Update to 0.3.0.7. --- gnu/packages/tor.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 83e49a1536..b31b58a26f 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Eric Bavier @@ -43,14 +43,14 @@ (define-module (gnu packages tor) (define-public tor (package (name "tor") - (version "0.3.0.6") + (version "0.3.0.7") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "057vq8wagppmrlg85dgbsrk1v67yqpbi9n87s8gn0mdm7kli5rd3")))) + "00kxa83bn0axh7479fynp6r8znq5wy26kvb8ghixgjpkir2c8h4n")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-expensive-hardening" -- cgit v1.2.3 From 5d6e38a6c37eced3f545a5afdcba3db20ec95869 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 21:59:18 +0200 Subject: gnu: glibc/hurd: Use modify-phases syntax. * gnu/packages/base.scm (glibc/hurd)[arguments]: Use modify-phases syntax. --- gnu/packages/base.scm | 56 +++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 59a9acd67e..8a48cadf7b 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -778,35 +778,33 @@ (define-public glibc/hurd ((#:phases original-phases) ;; Add libmachuser.so and libhurduser.so to libc.so's search path. ;; See . - `(alist-cons-after - 'install 'augment-libc.so - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (substitute* (string-append out "/lib/libc.so") - (("/[^ ]+/lib/libc.so.0.3") - (string-append out "/lib/libc.so.0.3" " libmachuser.so" " libhurduser.so")))) - #t) - (alist-cons-after - 'pre-configure 'pre-configure-set-pwd - (lambda _ - ;; Use the right 'pwd'. - (substitute* "configure" - (("/bin/pwd") "pwd"))) - (alist-replace - 'build - (lambda _ - ;; Force mach/hurd/libpthread subdirs to build first in order to avoid - ;; linking errors. - ;; See - (let ((-j (list "-j" (number->string (parallel-job-count))))) - (let-syntax ((make (syntax-rules () - ((_ target) - (zero? (apply system* "make" target -j)))))) - (and (make "mach/subdir_lib") - (make "hurd/subdir_lib") - (make "libpthread/subdir_lib") - (zero? (apply system* "make" -j)))))) - ,original-phases)))) + `(modify-phases ,original-phases + (add-after 'install 'augment-libc.so + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/lib/libc.so") + (("/[^ ]+/lib/libc.so.0.3") + (string-append out "/lib/libc.so.0.3" " libmachuser.so" " libhurduser.so")))) + #t)) + (add-after 'pre-configure 'pre-configure-set-pwd + (lambda _ + ;; Use the right 'pwd'. + (substitute* "configure" + (("/bin/pwd") "pwd")) + #t)) + (replace 'build + (lambda _ + ;; Force mach/hurd/libpthread subdirs to build first in order to avoid + ;; linking errors. + ;; See + (let ((-j (list "-j" (number->string (parallel-job-count))))) + (let-syntax ((make (syntax-rules () + ((_ target) + (zero? (apply system* "make" target -j)))))) + (and (make "mach/subdir_lib") + (make "hurd/subdir_lib") + (make "libpthread/subdir_lib") + (zero? (apply system* "make" -j))))))))) ((#:configure-flags original-configure-flags) `(append (list "--host=i586-pc-gnu" -- cgit v1.2.3 From d03b34cf190b5790ee1884ae551634f5f736f4f1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 22:11:41 +0200 Subject: gnu: glibc/hurd: Do not apply i686 patch. This is a follow-up to commit c2e4f14ac8cd3e1ce7f46a192ad0c9acc084b210. * gnu/packages/base.scm (glibc/hurd)[arguments]: Override pre-configure phase with a copy that does not include the patch application. --- gnu/packages/base.scm | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 8a48cadf7b..d135a18bf8 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -779,6 +779,71 @@ (define-public glibc/hurd ;; Add libmachuser.so and libhurduser.so to libc.so's search path. ;; See . `(modify-phases ,original-phases + ;; TODO: This is almost an exact copy of the phase of the same name + ;; in glibc/linux. The only difference is that the i686 patch is + ;; not applied here. In the next update cycle the patch moves to + ;; the patches field and this overwritten phase won't be needed any + ;; more. + (replace 'pre-configure + (lambda* (#:key inputs native-inputs outputs + #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + ;; FIXME: Normally we would look it up only in INPUTS + ;; but cross-base uses it as a native input. + (bash (or (assoc-ref inputs "static-bash") + (assoc-ref native-inputs "static-bash")))) + ;; Install the rpc data base file under `$out/etc/rpc'. + ;; FIXME: Use installFlags = [ "sysconfdir=$(out)/etc" ]; + (substitute* "sunrpc/Makefile" + (("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix) + (string-append out "/etc/rpc" suffix "\n")) + (("^install-others =.*$") + (string-append "install-others = " out "/etc/rpc\n"))) + + (substitute* "Makeconfig" + ;; According to + ;; , + ;; linking against libgcc_s is not needed with GCC + ;; 4.7.1. + ((" -lgcc_s") "")) + + ;; Have `system' use that Bash. + (substitute* "sysdeps/posix/system.c" + (("#define[[:blank:]]+SHELL_PATH.*$") + (format #f "#define SHELL_PATH \"~a/bin/bash\"\n" + bash))) + + ;; Same for `popen'. + (substitute* "libio/iopopen.c" + (("/bin/sh") + (string-append bash "/bin/sh"))) + + ;; Same for the shell used by the 'exec' functions for + ;; scripts that lack a shebang. + (substitute* (find-files "." "^paths\\.h$") + (("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$") + (string-append "#define _PATH_BSHELL \"" + bash "/bin/sh\"\n"))) + + ;; Nscd uses __DATE__ and __TIME__ to create a string to + ;; make sure the client and server come from the same + ;; libc. Use something deterministic instead. + (substitute* "nscd/nscd_stat.c" + (("static const char compilation\\[21\\] =.*$") + (string-append + "static const char compilation[21] = \"" + (string-take (basename out) 20) "\";\n"))) + + ;; Make sure we don't retain a reference to the + ;; bootstrap Perl. + (substitute* "malloc/mtrace.pl" + (("^#!.*") + ;; The shebang can be omitted, because there's the + ;; "bilingual" eval/exec magic at the top of the file. + "") + (("exec @PERL@") + "exec perl"))))) (add-after 'install 'augment-libc.so (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) -- cgit v1.2.3 From c90fd5564cf67f75e28276129d37a0d9128cadda Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 May 2017 07:28:09 -0400 Subject: gnu: qemu: Fix CVE-2017-7493. * gnu/packages/patches/qemu-CVE-2017-7493.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/qemu.scm (qemu)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/patches/qemu-CVE-2017-7493.patch | 182 ++++++++++++++++++++++++++ gnu/packages/qemu.scm | 1 + 3 files changed, 184 insertions(+) create mode 100644 gnu/packages/patches/qemu-CVE-2017-7493.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index c560c71725..2da002b379 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -939,6 +939,7 @@ dist_patch_DATA = \ %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ %D%/packages/patches/python2-subprocess32-disable-input-test.patch \ + %D%/packages/patches/qemu-CVE-2017-7493.patch \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/rapicorn-isnan.patch \ diff --git a/gnu/packages/patches/qemu-CVE-2017-7493.patch b/gnu/packages/patches/qemu-CVE-2017-7493.patch new file mode 100644 index 0000000000..67b26fad81 --- /dev/null +++ b/gnu/packages/patches/qemu-CVE-2017-7493.patch @@ -0,0 +1,182 @@ +Fix CVE-2017-7493: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7493 + +Patch copied from upstream source repository: + +http://git.qemu.org/?p=qemu.git;a=commit;h=7a95434e0ca8a037fd8aa1a2e2461f92585eb77b + +From 7a95434e0ca8a037fd8aa1a2e2461f92585eb77b Mon Sep 17 00:00:00 2001 +From: Greg Kurz +Date: Fri, 5 May 2017 14:48:08 +0200 +Subject: [PATCH] 9pfs: local: forbid client access to metadata (CVE-2017-7493) + +When using the mapped-file security mode, we shouldn't let the client mess +with the metadata. The current code already tries to hide the metadata dir +from the client by skipping it in local_readdir(). But the client can still +access or modify it through several other operations. This can be used to +escalate privileges in the guest. + +Affected backend operations are: +- local_mknod() +- local_mkdir() +- local_open2() +- local_symlink() +- local_link() +- local_unlinkat() +- local_renameat() +- local_rename() +- local_name_to_path() + +Other operations are safe because they are only passed a fid path, which +is computed internally in local_name_to_path(). + +This patch converts all the functions listed above to fail and return +EINVAL when being passed the name of the metadata dir. This may look +like a poor choice for errno, but there's no such thing as an illegal +path name on Linux and I could not think of anything better. + +This fixes CVE-2017-7493. + +Reported-by: Leo Gaspard +Signed-off-by: Greg Kurz +Reviewed-by: Eric Blake +--- + hw/9pfs/9p-local.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 56 insertions(+), 2 deletions(-) + +diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c +index f3ebca4f7a..a2486566af 100644 +--- a/hw/9pfs/9p-local.c ++++ b/hw/9pfs/9p-local.c +@@ -452,6 +452,11 @@ static off_t local_telldir(FsContext *ctx, V9fsFidOpenState *fs) + return telldir(fs->dir.stream); + } + ++static bool local_is_mapped_file_metadata(FsContext *fs_ctx, const char *name) ++{ ++ return !strcmp(name, VIRTFS_META_DIR); ++} ++ + static struct dirent *local_readdir(FsContext *ctx, V9fsFidOpenState *fs) + { + struct dirent *entry; +@@ -465,8 +470,8 @@ again: + if (ctx->export_flags & V9FS_SM_MAPPED) { + entry->d_type = DT_UNKNOWN; + } else if (ctx->export_flags & V9FS_SM_MAPPED_FILE) { +- if (!strcmp(entry->d_name, VIRTFS_META_DIR)) { +- /* skp the meta data directory */ ++ if (local_is_mapped_file_metadata(ctx, entry->d_name)) { ++ /* skip the meta data directory */ + goto again; + } + entry->d_type = DT_UNKNOWN; +@@ -559,6 +564,12 @@ static int local_mknod(FsContext *fs_ctx, V9fsPath *dir_path, + int err = -1; + int dirfd; + ++ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(fs_ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + dirfd = local_opendir_nofollow(fs_ctx, dir_path->data); + if (dirfd == -1) { + return -1; +@@ -605,6 +616,12 @@ static int local_mkdir(FsContext *fs_ctx, V9fsPath *dir_path, + int err = -1; + int dirfd; + ++ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(fs_ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + dirfd = local_opendir_nofollow(fs_ctx, dir_path->data); + if (dirfd == -1) { + return -1; +@@ -694,6 +711,12 @@ static int local_open2(FsContext *fs_ctx, V9fsPath *dir_path, const char *name, + int err = -1; + int dirfd; + ++ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(fs_ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + /* + * Mark all the open to not follow symlinks + */ +@@ -752,6 +775,12 @@ static int local_symlink(FsContext *fs_ctx, const char *oldpath, + int err = -1; + int dirfd; + ++ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(fs_ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + dirfd = local_opendir_nofollow(fs_ctx, dir_path->data); + if (dirfd == -1) { + return -1; +@@ -826,6 +855,12 @@ static int local_link(FsContext *ctx, V9fsPath *oldpath, + int ret = -1; + int odirfd, ndirfd; + ++ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + odirfd = local_opendir_nofollow(ctx, odirpath); + if (odirfd == -1) { + goto out; +@@ -1096,6 +1131,12 @@ static int local_lremovexattr(FsContext *ctx, V9fsPath *fs_path, + static int local_name_to_path(FsContext *ctx, V9fsPath *dir_path, + const char *name, V9fsPath *target) + { ++ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + if (dir_path) { + v9fs_path_sprintf(target, "%s/%s", dir_path->data, name); + } else if (strcmp(name, "/")) { +@@ -1116,6 +1157,13 @@ static int local_renameat(FsContext *ctx, V9fsPath *olddir, + int ret; + int odirfd, ndirfd; + ++ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ (local_is_mapped_file_metadata(ctx, old_name) || ++ local_is_mapped_file_metadata(ctx, new_name))) { ++ errno = EINVAL; ++ return -1; ++ } ++ + odirfd = local_opendir_nofollow(ctx, olddir->data); + if (odirfd == -1) { + return -1; +@@ -1206,6 +1254,12 @@ static int local_unlinkat(FsContext *ctx, V9fsPath *dir, + int ret; + int dirfd; + ++ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && ++ local_is_mapped_file_metadata(ctx, name)) { ++ errno = EINVAL; ++ return -1; ++ } ++ + dirfd = local_opendir_nofollow(ctx, dir->data); + if (dirfd == -1) { + return -1; +-- +2.13.0 + diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index 30b9908aa0..0734b6d0f7 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -74,6 +74,7 @@ (define-public qemu (method url-fetch) (uri (string-append "http://wiki.qemu-project.org/download/qemu-" version ".tar.xz")) + (patches (search-patches "qemu-CVE-2017-7493.patch")) (sha256 (base32 "08mhfs0ndbkyqgw7fjaa9vjxf4dinrly656f6hjzvmaz7hzc677h")))) -- cgit v1.2.3 From 56a03975eb287796128e80feb6799bc07f4b8185 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 17 May 2017 16:10:48 +0200 Subject: gnu: aspell: 'dict-dir' set to ~/.guix-profile/lib/aspell or $ASPELL_DICT_DIR. See for background. * gnu/packages/patches/aspell-default-dict-dir.patch: New file. * gnu/packages/aspell.scm (aspell)[source](patches): New field. [native-search-paths]: New field. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/aspell.scm | 18 +++++++++++++++--- gnu/packages/patches/aspell-default-dict-dir.patch | 20 ++++++++++++++++++++ 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/aspell-default-dict-dir.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 2da002b379..ca26bcd812 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -499,6 +499,7 @@ dist_patch_DATA = \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/artanis-fix-Makefile.in.patch \ + %D%/packages/patches/aspell-default-dict-dir.patch \ %D%/packages/patches/ath9k-htc-firmware-binutils.patch \ %D%/packages/patches/ath9k-htc-firmware-gcc.patch \ %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \ diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 06ba2ce472..509d428f64 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès ;;; Copyright © 2015, 2016 Alex Kost ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016 Efraim Flashner @@ -26,6 +26,7 @@ (define-module (gnu packages aspell) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix licenses) + #:use-module (gnu packages) #:use-module (gnu packages perl) #:use-module (gnu packages base)) @@ -40,7 +41,8 @@ (define-public aspell version ".tar.gz")) (sha256 (base32 - "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm")))) + "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm")) + (patches (search-patches "aspell-default-dict-dir.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -53,6 +55,15 @@ (define-public aspell '("ASPELL_CONF" "" = ("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}"))))))))) (inputs `(("perl" ,perl))) + + (native-search-paths + ;; This is a Guix-specific environment variable that takes a single + ;; entry, not an actual search path. + (list (search-path-specification + (variable "ASPELL_DICT_DIR") + (separator #f) + (files '("lib/aspell"))))) + (home-page "http://aspell.net/") (synopsis "Spell checker") (description @@ -66,7 +77,8 @@ (define-public aspell ;;; Dictionaries. ;;; ;;; Use 'export ASPELL_CONF="dict-dir $HOME/.guix-profile/lib/aspell"' to use -;;; them. +;;; them, or set the Guix-specific 'ASPELL_DICT_DIR', or just do nothing (as +;;; long as 'HOME' is set, that's fine!). ;;; (define* (aspell-dictionary dict-name full-name diff --git a/gnu/packages/patches/aspell-default-dict-dir.patch b/gnu/packages/patches/aspell-default-dict-dir.patch new file mode 100644 index 0000000000..17a6ff606f --- /dev/null +++ b/gnu/packages/patches/aspell-default-dict-dir.patch @@ -0,0 +1,20 @@ +This patch changes the default value of 'dict-dir' to correspond +to ~/.guix-profile/lib/aspell rather than $prefix/lib/aspell-X.Y. + +This is not strictly necessary for the 'aspell' program itself since +one can simply set "ASPELL_CONF=dict-dir $HOME/.guix-profile/lib/aspell". +However it is necessary for applications that use libaspell since +'ASPELL_CONF' is not honored in this case. See . + +--- a/common/config.cpp ++++ b/common/config.cpp +@@ -1349,6 +1349,9 @@ namespace acommon { + # define REPL ".aspell..prepl" + #endif + ++#undef DICT_DIR ++#define DICT_DIR "<$ASPELL_DICT_DIR|home-dir/.guix-profile/lib/aspell>" ++ + static const KeyInfo config_keys[] = { + // the description should be under 50 chars + {"actual-dict-dir", KeyInfoString, "", 0} -- cgit v1.2.3 From a6c642ef63012508f755a1329aa66e4b09da72b5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 13 May 2017 20:44:36 -0400 Subject: maint: The 'release' target builds a VM image. * gnu/system/examples/vm-image.tmpl: New file. * Makefile.am (GUIXSD_VM_SYSTEMS, GUIXSD_VM_IMAGE_BASE, GUIXSD_VM_IMAGE_SIZE): New variables. (release): Add logic to build a VM image. (EXAMPLES): Add 'gnu/system/examples/vm-image.tmpl'. * doc/guix.texi (Running GuixSD in a VM, Installing GuixSD in a VM): Mention the pre-built VM image. --- Makefile.am | 27 +++++++++++++++++++- doc/guix.texi | 29 +++++++++++++-------- gnu/system/examples/vm-image.tmpl | 53 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 gnu/system/examples/vm-image.tmpl (limited to 'gnu') diff --git a/Makefile.am b/Makefile.am index b90f419b14..c2fc2642a7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5,6 +5,7 @@ # Copyright © 2016 Mathieu Lirzin # Copyright © 2016, 2017 Mark H Weaver # Copyright © 2017 Mathieu Othacehe +# Copyright © 2017 Leo Famulari # # This file is part of GNU Guix. # @@ -224,7 +225,8 @@ AUX_FILES = \ EXAMPLES = \ gnu/system/examples/bare-bones.tmpl \ gnu/system/examples/desktop.tmpl \ - gnu/system/examples/lightweight-desktop.tmpl + gnu/system/examples/lightweight-desktop.tmpl \ + gnu/system/examples/vm-image.tmpl GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go) @@ -572,12 +574,21 @@ BINARY_TARBALLS = \ # Systems supported by GuixSD. GUIXSD_SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux +# Systems for which we build GuixSD VMs. +GUIXSD_VM_SYSTEMS ?= x86_64-linux + # Prefix of the GuixSD installation image file name. GUIXSD_IMAGE_BASE = guixsd-usb-install-$(PACKAGE_VERSION) +# Prefix of the GuixSD VM image file name. +GUIXSD_VM_IMAGE_BASE = guixsd-vm-image-$(PACKAGE_VERSION) + # Size of the installation image (for x86_64 typically). GUIXSD_INSTALLATION_IMAGE_SIZE ?= 950MiB +# Size of the VM image (for x86_64 typically). +GUIXSD_VM_IMAGE_SIZE ?= 2GiB + # The release process works in several phases: # # 0. We assume the developer created a 'vX.Y' tag. @@ -632,6 +643,20 @@ release: dist mv "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz.tmp" \ "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz" ; \ done + for system in $(GUIXSD_VM_SYSTEMS) ; do \ + image=`$(top_builddir)/pre-inst-env \ + guix system vm-image \ + --system=$$system \ + --image-size=$(GUIXSD_VM_IMAGE_SIZE) \ + gnu/system/examples/vm-image.tmpl` ; \ + if [ ! -f "$$image" ] ; then \ + echo "failed to produced GuixSD VM image for $$system" >&2 ; \ + exit 1 ; \ + fi ; \ + xz < "$$image" > "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz.tmp" ; \ + mv "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz.tmp" \ + "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz" ; \ + done @echo @echo "Congratulations! All the release files are now in $(releasedir)." @echo diff --git a/doc/guix.texi b/doc/guix.texi index 7baf6ee38a..3523937030 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7634,8 +7634,11 @@ good. @subsection Installing GuixSD in a Virtual Machine @cindex virtual machine, GuixSD installation -If you'd like to install GuixSD in a virtual machine (VM) rather than on -your beloved machine, this section is for you. +@cindex virtual private server (VPS) +@cindex VPS (virtual private server) +If you'd like to install GuixSD in a virtual machine (VM) or on a +virtual private server (VPS) rather than on your beloved machine, this +section is for you. To boot a @uref{http://qemu.org/,QEMU} VM for installing GuixSD in a disk image, follow these steps: @@ -15693,17 +15696,21 @@ example graph. @subsection Running GuixSD in a Virtual Machine @cindex virtual machine -One way to run GuixSD in a virtual machine (VM) is to build a GuixSD -virtual machine image using @command{guix system vm-image} -(@pxref{Invoking guix system}). The returned image is in qcow2 format, -which the @uref{http://qemu.org/, QEMU emulator} can efficiently use. +To run GuixSD in a virtual machine (VM), one can either use the +pre-built GuixSD VM image distributed at +@indicateurl{ftp://alpha.gnu.org/guix/guixsd-vm-image-@value{VERSION}.@var{system}.tar.xz} +, or build their own virtual machine image using @command{guix system +vm-image} (@pxref{Invoking guix system}). The returned image is in +qcow2 format, which the @uref{http://qemu.org/, QEMU emulator} can +efficiently use. @cindex QEMU -To run the image in QEMU, copy it out of the store (@pxref{The Store}) -and give yourself permission to write to the copy. When invoking QEMU, -you must choose a system emulator that is suitable for your hardware -platform. Here is a minimal QEMU invocation that will boot the result -of @command{guix system vm-image} on x86_64 hardware: +If you built your own image, you must copy it out of the store +(@pxref{The Store}) and give yourself permission to write to the copy +before you can use it. When invoking QEMU, you must choose a system +emulator that is suitable for your hardware platform. Here is a minimal +QEMU invocation that will boot the result of @command{guix system +vm-image} on x86_64 hardware: @example $ qemu-system-x86_64 \ diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl new file mode 100644 index 0000000000..57ac71c535 --- /dev/null +++ b/gnu/system/examples/vm-image.tmpl @@ -0,0 +1,53 @@ +;;; This is an operating system configuration template for a "bare-bones" setup, +;;; suitable for booting in a virtualized environment, including virtual private +;;; servers (VPS). + +(use-modules (gnu)) +(use-package-modules bootloaders disk nvi) + +(define vm-image-motd (plain-file "motd" " +This is the GNU system. Welcome! + +This instance of GuixSD is a bare-bones template for virtualized environments. + +You will probably want to do these things first if you booted in a virtual +private server (VPS): + +* Set a password for 'root'. +* Set up networking. +* Expand the root partition to fill the space available by 0) deleting and +recreating the partition with fdisk, 1) reloading the partition table with +partprobe, and then 2) resizing the filesystem with resize2fs.\n")) + +(operating-system + (host-name "gnu") + (timezone "Etc/UTC") + (locale "en_US.utf8") + + ;; Assuming /dev/sdX is the target hard disk, and "my-root" is + ;; the label of the target root file system. + (bootloader (grub-configuration (device "/dev/sda") + (terminal-outputs '(console)))) + (file-systems (cons (file-system + (device "my-root") + (title 'label) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + + ;; This is where user accounts are specified. The "root" + ;; account is implicit, and is initially created with the + ;; empty password. + (users %base-user-accounts) + + ;; Globally-installed packages. + (packages (cons* nvi fdisk + grub ; mostly so xrefs to its manual work + parted ; partprobe + %base-packages)) + + (services (modify-services %base-services + (login-service-type config => + (login-configuration + (inherit config) + (motd vm-image-motd)))))) -- cgit v1.2.3 From e13b55ae797c8da2b06811d25e21abd173295b8d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 17 May 2017 13:36:17 +0200 Subject: services: openssh: Don't depend on networking. * gnu/services/ssh.scm (openssh-shepherd-service): Drop requirement. --- gnu/services/ssh.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 9917c311c7..2a6c8d45c2 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -385,7 +385,7 @@ (define openssh-command (list (shepherd-service (documentation "OpenSSH server.") - (requirement '(networking syslogd)) + (requirement '(syslogd)) (provision '(ssh-daemon)) (start #~(make-forkexec-constructor #$openssh-command #:pid-file #$pid-file)) -- cgit v1.2.3 From f3f8938fe0c07d221ebccdf5a9a0029fda01f036 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 17 Apr 2017 22:49:23 +0200 Subject: install: Enable SSH in installation image. * gnu/system/install.scm (%installation-services): Add OPENSSH-SERVICE-TYPE. * doc/guix.texi (Preparing for Installation)[Networking]: Document it. --- doc/guix.texi | 14 +++++++++++++- gnu/system/install.scm | 12 ++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/doc/guix.texi b/doc/guix.texi index 3523937030..12fc806e17 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -36,7 +36,8 @@ Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* -Copyright @copyright{} 2017 Christopher Allan Webber +Copyright @copyright{} 2017 Christopher Allan Webber@* +Copyright @copyright{} 2017 Marius Bakke Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -7452,6 +7453,17 @@ ping -c 3 gnu.org Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed. +@cindex installing over SSH +If you want to, you can continue the installation remotely by starting +an SSH server: + +@example +herd start ssh-daemon +@end example + +Make sure to either set a password with @command{passwd}, or configure +OpenSSH public key authentication before logging in. + @subsubsection Disk Partitioning Unless this has already been done, the next step is to partition, and diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 191ccf1680..9a6febfeba 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Andreas Enge +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ (define-module (gnu system install) #:use-module (guix monads) #:use-module ((guix store) #:select (%store-prefix)) #:use-module (gnu services shepherd) + #:use-module (gnu services ssh) #:use-module (gnu packages admin) #:use-module (gnu packages bash) #:use-module (gnu packages bootloaders) @@ -262,6 +264,16 @@ (define (normal-tty tty) ;; To facilitate copy/paste. (gpm-service) + ;; Add an SSH server to facilitate remote installs. + (service openssh-service-type + (openssh-configuration + (port-number 22) + (permit-root-login #t) + ;; The root account is passwordless, so make sure + ;; a password is set before allowing logins. + (allow-empty-passwords? #f) + (password-authentication? #t))) + ;; Since this is running on a USB stick with a unionfs as the root ;; file system, use an appropriate cache configuration. (nscd-service (nscd-configuration -- cgit v1.2.3 From 51fe9cd38d4d64b5fade8a899d5323da0e217d5c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 18 May 2017 10:08:55 +0200 Subject: services: user-homes: Do not create home directories marked as no-create. Fixes a bug whereby GuixSD would create the /nonexistent directory, from user 'nobody', even though it has 'create-home-directory?' set to #f. * gnu/build/activation.scm (activate-users+groups): Add comment for \#:create-home?. (activate-user-home)[ensure-user-home]: Skip when CREATE-HOME? is #f or SYSTEM? is #t. * gnu/tests/base.scm (run-basic-test)["no extra home directories"]: New tests. --- gnu/build/activation.scm | 9 ++++++++- gnu/tests/base.scm | 22 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index beee56d437..a1d2a9cc7d 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -227,7 +227,11 @@ (define activate-user #:supplementary-groups supplementary-groups #:comment comment #:home home + + ;; Home directories of non-system accounts are created by + ;; 'activate-user-home'. #:create-home? (and create-home? system?) + #:shell shell #:password password) @@ -282,7 +286,10 @@ (define ensure-user-home (match-lambda ((name uid group supplementary-groups comment home create-home? shell password system?) - (unless (or (not home) (directory-exists? home)) + ;; The home directories of system accounts are created during + ;; activation, not here. + (unless (or (not home) (not create-home?) system? + (directory-exists? home)) (let* ((pw (getpwnam name)) (uid (passwd:uid pw)) (gid (passwd:gid pw))) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 37aab8ef67..e5ac320b74 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -199,6 +199,28 @@ (define (user-owned? file) ',users+homes)) marionette))) + (test-equal "no extra home directories" + '() + + ;; Make sure the home directories that are not supposed to be + ;; created are indeed not created. + (let ((nonexistent + '#$(filter-map (lambda (user) + (and (not + (user-account-create-home-directory? + user)) + (user-account-home-directory user))) + (operating-system-user-accounts os)))) + (marionette-eval + `(begin + (use-modules (srfi srfi-1)) + + ;; Note: Do not flag "/var/empty". + (filter file-exists? + ',(remove (cut string-prefix? "/var/" <>) + nonexistent))) + marionette))) + (test-equal "login on tty1" "root\n" (begin -- cgit v1.2.3 From c383dc520f4b71bcb99115768bfafa00df85f9d1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 19 May 2017 10:50:20 +0200 Subject: gnu: guile-ssh: Fix potential double-free/use-after-free issue. Fixes . Reported by Mark H Weaver . * gnu/packages/patches/guile-ssh-double-free.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/ssh.scm (guile-ssh)[source](patches): Add it. --- gnu/local.mk | 1 + gnu/packages/patches/guile-ssh-double-free.patch | 37 ++++++++++++++++++++++++ gnu/packages/ssh.scm | 3 +- 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/guile-ssh-double-free.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index ca26bcd812..f1a3cf6dba 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -651,6 +651,7 @@ dist_patch_DATA = \ %D%/packages/patches/guile-relocatable.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ %D%/packages/patches/guile-ssh-rexec-bug.patch \ + %D%/packages/patches/guile-ssh-double-free.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-theme-paths.patch \ diff --git a/gnu/packages/patches/guile-ssh-double-free.patch b/gnu/packages/patches/guile-ssh-double-free.patch new file mode 100644 index 0000000000..9692b81d39 --- /dev/null +++ b/gnu/packages/patches/guile-ssh-double-free.patch @@ -0,0 +1,37 @@ +Fix a double-free or use-after-free issue with Guile-SSH used +with Guile 2.2. See . + +diff --git a/libguile-ssh/channel-type.c b/libguile-ssh/channel-type.c +index 3dd641f..0839854 100644 +--- a/libguile-ssh/channel-type.c ++++ b/libguile-ssh/channel-type.c +@@ -229,10 +229,11 @@ ptob_close (SCM channel) + ssh_channel_free (ch->ssh_channel); + } + ++ SCM_SETSTREAM (channel, NULL); ++ + #if USING_GUILE_BEFORE_2_2 + scm_gc_free (pt->write_buf, pt->write_buf_size, "port write buffer"); + scm_gc_free (pt->read_buf, pt->read_buf_size, "port read buffer"); +- SCM_SETSTREAM (channel, NULL); + + return 0; + #endif +diff --git a/libguile-ssh/sftp-file-type.c b/libguile-ssh/sftp-file-type.c +index 8879924..f87cf03 100644 +--- a/libguile-ssh/sftp-file-type.c ++++ b/libguile-ssh/sftp-file-type.c +@@ -224,10 +224,11 @@ ptob_close (SCM sftp_file) + sftp_close (fd->file); + } + ++ SCM_SETSTREAM (sftp_file, NULL); ++ + #if USING_GUILE_BEFORE_2_2 + scm_gc_free (pt->write_buf, pt->write_buf_size, "port write buffer"); + scm_gc_free (pt->read_buf, pt->read_buf_size, "port read buffer"); +- SCM_SETSTREAM (sftp_file, NULL); + + return 1; + #endif diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 6a074d10fa..bb1898774b 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -226,7 +226,8 @@ (define-public guile-ssh (sha256 (base32 "0r261i8kc3avbmbwgyzak2vnqwssjlgz37g2y2fwm80w9bmn2m7j")) - (patches (search-patches "guile-ssh-rexec-bug.patch")) + (patches (search-patches "guile-ssh-rexec-bug.patch" + "guile-ssh-double-free.patch")) (modules '((guix build utils))) (snippet ;; 'configure.ac' mistakenly tries to link files from examples/ -- cgit v1.2.3 From fd5a30ab7b999f9b1095426054b5fcdfdacddc6f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 11 Apr 2017 10:47:38 +0200 Subject: vm: Support arbitrary partition flags. * gnu/build/vm.scm (): Change BOOTABLE? to FLAGS. (initialize-partition-table): Pass each flag to parted. (initialize-hard-disk): Locate boot partition. * gnu/system/vm.scm (qemu-image): Adjust partition flags. --- gnu/build/vm.scm | 17 ++++++++++++----- gnu/system/vm.scm | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'gnu') diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 1eb9a4c45e..00d625c946 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,7 +42,7 @@ (define-module (gnu build vm) partition-size partition-file-system partition-label - partition-bootable? + partition-flags partition-initializer root-partition-initializer @@ -141,7 +142,7 @@ (define-record-type* partition make-partition (size partition-size) (file-system partition-file-system (default "ext4")) (label partition-label (default #f)) - (bootable? partition-bootable? (default #f)) + (flags partition-flags (default '())) (initializer partition-initializer (default (const #t)))) (define (fold2 proc seed1 seed2 lst) ;TODO: factorize @@ -168,9 +169,10 @@ (define (partition-options part offset index) (cons* "mkpart" "primary" "ext2" (format #f "~aB" offset) (format #f "~aB" (+ offset (partition-size part))) - (if (partition-bootable? part) - `("set" ,(number->string index) "boot" "on") - '()))) + (append-map (lambda (flag) + (list "set" (number->string index) + (symbol->string flag) "on")) + (partition-flags part)))) (define (options partitions offset) (let loop ((partitions partitions) @@ -300,6 +302,11 @@ (define* (initialize-hard-disk device Each partition is initialized by calling its 'initializer' procedure, passing it a directory name where it is mounted." + + (define (partition-bootable? partition) + "Return the first partition found with the boot flag set." + (member 'boot (partition-flags partition))) + (let* ((partitions (initialize-partition-table device partitions)) (root (find partition-bootable? partitions)) (target "/fs")) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 2c8b954c80..71bc55d7d8 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -229,7 +229,7 @@ (define* (qemu-image #:key (* 10 (expt 2 20)))) (label #$file-system-label) (file-system #$file-system-type) - (bootable? #t) + (flags '(boot)) (initializer initialize))))) (initialize-hard-disk "/dev/vda" #:partitions partitions -- cgit v1.2.3 From 03119da21172c0c969b23596bec72b8383f7584e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 6 May 2017 22:53:58 +0200 Subject: vm: Support creating FAT partitions. * gnu/build/vm.scm (create-ext-file-system, create-fat-file-system): New procedures. (format-partition): Use them. Error for unknown file systems. * gnu/system/vm.scm (qemu-image): Include DOSFSTOOLS. * gnu/system/linux-initrd.scm (base-initrd): Always add nls_is8859-1.ko. --- gnu/build/vm.scm | 30 ++++++++++++++++++++++++++---- gnu/system/linux-initrd.scm | 4 +--- gnu/system/vm.scm | 2 +- 3 files changed, 28 insertions(+), 8 deletions(-) (limited to 'gnu') diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 00d625c946..ef8dcc315f 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -213,10 +213,10 @@ (define (options partitions offset) (define MS_BIND 4096) ; again! -(define* (format-partition partition type - #:key label) - "Create a file system TYPE on PARTITION. If LABEL is true, use that as the -volume name." +(define* (create-ext-file-system partition type + #:key label) + "Create an ext-family filesystem of TYPE on PARTITION. If LABEL is true, +use that as the volume name." (format #t "creating ~a partition...\n" type) (unless (zero? (apply system* (string-append "mkfs." type) "-F" partition @@ -225,6 +225,28 @@ (define* (format-partition partition type '()))) (error "failed to create partition"))) +(define* (create-fat-file-system partition + #:key label) + "Create a FAT filesystem on PARTITION. The number of File Allocation Tables +will be determined based on filesystem size. If LABEL is true, use that as the +volume name." + (format #t "creating FAT partition...\n") + (unless (zero? (apply system* "mkfs.fat" partition + (if label + `("-n" ,label) + '()))) + (error "failed to create FAT partition"))) + +(define* (format-partition partition type + #:key label) + "Create a file system TYPE on PARTITION. If LABEL is true, use that as the +volume name." + (cond ((string-prefix? "ext" type) + (create-ext-file-system partition type #:label label)) + ((or (string-prefix? "fat" type) (string= "vfat" type)) + (create-fat-file-system partition #:label label)) + (else (error "Unsupported file system.")))) + (define (initialize-partition partition) "Format PARTITION, a object with a non-#f 'device' field, mount it, run its initializer, and unmount it." diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index dfe198e43e..3a5e76034a 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -268,6 +268,7 @@ (define linux-modules "usbhid" "hid-generic" "hid-apple" ;keyboards during early boot "dm-crypt" "xts" "serpent_generic" "wp512" ;for encrypted root partitions "nvme" ;for new SSD NVMe devices + "nls_iso8859-1" ;for `mkfs.fat`, et.al ,@(if (string-match "^(x86_64|i[3-6]86)-" (%current-system)) '("pata_acpi" "pata_atiixp" ;for ATA controllers "isci") ;for SAS controllers like Intel C602 @@ -281,9 +282,6 @@ (define linux-modules ,@(if (find (file-system-type-predicate "9p") file-systems) virtio-9p-modules '()) - ,@(if (find (file-system-type-predicate "vfat") file-systems) - '("nls_iso8859-1") - '()) ,@(if (find (file-system-type-predicate "btrfs") file-systems) '("btrfs") '()) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 71bc55d7d8..2110ce68bb 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -201,7 +201,7 @@ (define* (qemu-image #:key (guix build utils)) (let ((inputs - '#$(append (list qemu parted grub e2fsprogs) + '#$(append (list qemu parted grub e2fsprogs dosfstools) (map canonical-package (list sed grep coreutils findutils gawk)) (if register-closures? (list guix) '()))) -- cgit v1.2.3 From 6520904b3e79a5f59bd681931d0ae72783e43eee Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 7 May 2017 15:31:30 +0200 Subject: vm: Add UEFI loader to disk images. * gnu/build/vm.scm (install-efi): New procedure. (initialize-hard-disk): Generate EFI blob when ESP is present. * gnu/system/vm.scm (qemu-image): Append 40MiB EFI System Partition. (cherry picked from commit ecf5d5376979fadd971559367bf553df89fcc62b) --- gnu/build/vm.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ gnu/system/vm.scm | 20 ++++++++++++++++--- 2 files changed, 77 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index ef8dcc315f..7147ce1993 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -27,6 +27,7 @@ (define-module (gnu build vm) #:use-module (gnu build linux-boot) #:use-module (gnu build install) #:use-module (guix records) + #:use-module (ice-9 format) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (srfi srfi-1) @@ -315,9 +316,38 @@ (define (register-grub.cfg-root target bootcfg) (mkdir-p directory) (symlink bootcfg (string-append directory "/grub.cfg")))) +(define (install-efi grub esp config-file) + "Write a self-contained GRUB EFI loader to the mounted ESP using CONFIG-FILE." + (let* ((system %host-type) + ;; Hard code the output location to a well-known path recognized by + ;; compliant firmware. See "3.5.1.1 Removable Media Boot Behaviour": + ;; http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf + (grub-mkstandalone (string-append grub "/bin/grub-mkstandalone")) + (efi-directory (string-append esp "/EFI/BOOT")) + ;; Map grub target names to boot file names. + (efi-targets (cond ((string-prefix? "x86_64" system) + '("x86_64-efi" . "BOOTX64.EFI")) + ((string-prefix? "i686" system) + '("i386-efi" . "BOOTIA32.EFI")) + ((string-prefix? "armhf" system) + '("arm-efi" . "BOOTARM.EFI")) + ((string-prefix? "aarch64" system) + '("arm64-efi" . "BOOTAA64.EFI"))))) + ;; grub-mkstandalone requires a TMPDIR to prepare the firmware image. + (setenv "TMPDIR" esp) + + (mkdir-p efi-directory) + (unless (zero? (system* grub-mkstandalone "-O" (car efi-targets) + "-o" (string-append efi-directory "/" + (cdr efi-targets)) + ;; Graft the configuration file onto the image. + (string-append "boot/grub/grub.cfg=" config-file))) + (error "failed to create GRUB EFI image")))) + (define* (initialize-hard-disk device #:key grub.cfg + (grub-efi #f) (partitions '())) "Initialize DEVICE as a disk containing all the objects listed in PARTITIONS, and using BOOTCFG as its bootloader configuration file. @@ -329,8 +359,13 @@ (define (partition-bootable? partition) "Return the first partition found with the boot flag set." (member 'boot (partition-flags partition))) + (define (partition-esp? partition) + "Return the first EFI System Partition." + (member 'esp (partition-flags partition))) + (let* ((partitions (initialize-partition-table device partitions)) (root (find partition-bootable? partitions)) + (esp (find partition-esp? partitions)) (target "/fs")) (unless root (error "no bootable partition specified" partitions)) @@ -342,6 +377,31 @@ (define (partition-bootable? partition) (mount (partition-device root) target (partition-file-system root)) (install-grub grub.cfg device target) + (when esp + ;; Mount the ESP somewhere and install GRUB UEFI image. + (let ((mount-point (string-append target "/boot/efi")) + (grub-config (string-append target "/tmp/grub-standalone.cfg"))) + (display "mounting EFI system partition...\n") + (mkdir-p mount-point) + (mount (partition-device esp) mount-point + (partition-file-system esp)) + + ;; Create a tiny configuration file telling the embedded grub + ;; where to load the real thing. + (call-with-output-file grub-config + (lambda (port) + (format port + "insmod part_msdos~@ + search --set=root --label gnu-disk-image~@ + configfile /boot/grub/grub.cfg~%"))) + + (display "creating EFI firmware image...") + (install-efi grub-efi mount-point grub-config) + (display "done.\n") + + (delete-file grub-config) + (umount mount-point))) + ;; Register GRUB.CFG as a GC root. (register-grub.cfg-root target grub.cfg) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 2110ce68bb..c40bb4c436 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -226,14 +227,27 @@ (define* (qemu-image #:key #:system-directory #$os-derivation)) (partitions (list (partition (size #$(- disk-image-size - (* 10 (expt 2 20)))) + (* 50 (expt 2 20)))) (label #$file-system-label) (file-system #$file-system-type) (flags '(boot)) - (initializer initialize))))) + (initializer initialize)) + ;; Append a small EFI System Partition for + ;; use with UEFI bootloaders. + (partition + ;; The standalone grub image is about 10MiB, but + ;; leave some room for custom or multiple images. + (size (* 40 (expt 2 20))) + (label "GNU-ESP") ;cosmetic only + ;; Use "vfat" here since this property is used + ;; when mounting. The actual FAT-ness is based + ;; on filesystem size (16 in this case). + (file-system "vfat") + (flags '(esp)))))) (initialize-hard-disk "/dev/vda" #:partitions partitions - #:grub.cfg #$grub-configuration) + #:grub.cfg #$grub-configuration + #:grub-efi #$grub-efi) (reboot))))) #:system system #:make-disk-image? #t -- cgit v1.2.3 From 429046e9dd38a8cd9e569172f2f23dce3d61cbf3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 19 May 2017 23:36:56 +0200 Subject: system: Use Guile 2.2 rather than 2.0 in %BASE-PACKAGES. * gnu/system.scm (%base-packages): Change GUILE-2.0 to GUILE-2.2. --- gnu/system.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system.scm b/gnu/system.scm index f9a0da9a75..2fab394d23 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -494,7 +494,7 @@ (define %base-packages ;; The packages below are also in %FINAL-INPUTS, so take them from ;; there to avoid duplication. (map canonical-package - (list guile-2.0 bash coreutils-8.27 findutils grep sed + (list guile-2.2 bash coreutils-8.27 findutils grep sed diffutils patch gawk tar gzip bzip2 xz lzip)))) (define %default-issue -- cgit v1.2.3 From 6a9defd7474f0e8b0f9030de60b1241a551ad403 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 19 May 2017 20:26:58 -0400 Subject: gnu: dropbear: Update to 2017.75 [fixes CVE-2017-{9078,9079}]. * gnu/packages/ssh.scm (dropbear): Update to 2017.75. --- gnu/packages/ssh.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index bb1898774b..b01a94f871 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -380,7 +380,7 @@ (define-public mosh (define-public dropbear (package (name "dropbear") - (version "2016.74") + (version "2017.75") (source (origin (method url-fetch) (uri (string-append @@ -388,7 +388,7 @@ (define-public dropbear name "-" version ".tar.bz2")) (sha256 (base32 - "14c8f4gzixf0j9fkx68jgl85q7b05852kk0vf09gi6h0xmafl817")))) + "1309cm2aw62n9m3h38prvgsqr8bj85hfasgnvwkd42cp3k5ivg3c")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; There is no "make check" or anything similar (inputs `(("zlib" ,zlib))) -- cgit v1.2.3 From 7dccad95b62871af048dd2d337579424f07595f2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 19 May 2017 18:31:48 -0400 Subject: gnu: icedtea@2: Update to 2.6.10 [security fixes]. Fixes CVE-2017-{3509,3511,3512,3514,3526,3533,3539,3544}. * gnu/packages/java.scm (icedtea-7): Update to 2.6.10. --- gnu/packages/java.scm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4a381b6a1c..85f2bb975f 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -341,12 +341,12 @@ (define-public ant (license license:asl2.0))) (define-public icedtea-7 - (let* ((version "2.6.9") + (let* ((version "2.6.10") (drop (lambda (name hash) (origin (method url-fetch) (uri (string-append - "http://icedtea.classpath.org/download/drops/" + "http://icedtea.classpath.org/download/drops" "/icedtea7/" version "/" name ".tar.bz2")) (sha256 (base32 hash)))))) (package @@ -359,7 +359,7 @@ (define-public icedtea-7 version ".tar.xz")) (sha256 (base32 - "1slmajiakq7sk137vgqq9c93r5s620a46lw2jwbnzxhysjw3wkwf")) + "0am945k2zqrka2xn7lb5grmkad4lwncnhnwk8iq6f269birzsj8w")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -770,25 +770,25 @@ (define (import-cert cert) (native-inputs `(("openjdk-src" ,(drop "openjdk" - "08a4d1sg5m9l99lc7gafc7dmzmf4d8jvij5pffxv8rf6pk7psk24")) + "02klsxp9hlf5sial6mxpiq53hmrhlrg6x774j7bjjfhb7hpdvadh")) ("corba-drop" ,(drop "corba" - "12br49cfrqgvms0bnaij7fvnakvb6q8dlpqja64rg5q5r3x4gps8")) + "1vbly6khri241xda05gnwkpf2fk41d96ls96ximi084mx0a3w5rd")) ("jaxp-drop" ,(drop "jaxp" - "07v2y3pll6z2wma94qilgffwyn2n4jna01mrhqwkb27whfpjfkmz")) + "0s8zln64vdwdxwlw1vpfzm8xbpyhgsv3nqjmnv7y36qpsszg27a5")) ("jaxws-drop" ,(drop "jaxws" - "18rw64jjpq14v56d0q1xvz8knl0kf02rcday7fvlaxrbbj19km55")) + "0myd66bv8ib8krzgqv754bc564rd8xwpwabvf7my1apyb86vap3n")) ("jdk-drop" ,(drop "jdk" - "1ig7xipi3vzm6cphy5fdraxi72p27xsg2qb51yqx9qwsmlrv1zj4")) + "10b4lfv10vba07zblw0wii7mhrfhf32pf7410x5nz2q0smgszl2h")) ("langtools-drop" ,(drop "langtools" - "0sn9qv9nnhaan2smbhrv54lfhwsjhgd3b3h736p5d2hzpw8kicry")) + "0lvncxb5qzrlqkflrnd0l8vwy155cwj1jb07rkq10z2vx0bq7lq2")) ("hotspot-drop" ,(drop "hotspot" - "16ijxy8br8dla339m4i90wr9xpf7s8z3nrhfyxm7jahr8injpzyl")) + "0q6mdgbbd3681y3n0z1v783irdjhhi73z6sn5csczpyhjm318axb")) ("ant" ,ant) ("attr" ,attr) ("autoconf" ,autoconf) -- cgit v1.2.3 From a588e34e0defcb5fde48570cf3a304cb942bf743 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 20 May 2017 21:28:20 +0200 Subject: vm: Increase default disk size to account for ESP partition. Fixes a test regression introduced by ecf5d5376979fadd971559367bf553df89fcc62b. * gnu/system/vm.scm (system-qemu-image/shared-store-script): 30MiB -> 70MiB. --- gnu/system/vm.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index c40bb4c436..f01f68fbd3 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -485,7 +485,7 @@ (define* (system-qemu-image/shared-store-script os (mappings '()) full-boot? (disk-image-size - (* (if full-boot? 500 30) + (* (if full-boot? 500 70) (expt 2 20)))) "Return a derivation that builds a script to run a virtual machine image of OS that shares its store with the host. -- cgit v1.2.3 From 324499184a13e8f27d9805d5db2b133380e69bfe Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 21 May 2017 01:07:17 +0200 Subject: gnu: unionfs-fuse-static: Remove 'unionfsctl' executable. This avoids pulling in glibc & co. Fixes a regression introduced in 2f861edf5cf5118ad560737343312c9a5efe5b2f (the 'unionfsctl' executable did not exist in unionfs-fuse 0.26). * gnu/packages/linux.scm (unionfs-fuse/static)[arguments] : Remove 'unionfsctl' binary. --- gnu/packages/linux.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7bb26c72f5..cd2c833e39 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1568,7 +1568,12 @@ (define-public unionfs-fuse/static (exe (string-append out "/bin/unionfs"))) ;; By default, 'unionfs' keeps references to ;; $glibc/share/locale and similar stuff. Remove them. - (remove-store-references exe))) + (remove-store-references exe) + + ;; 'unionfsctl' has references to glibc as well. Since + ;; we don't need it, remove it. + (delete-file (string-append out "/bin/unionfsctl")) + #t)) %standard-phases))) (inputs `(("fuse" ,fuse-static))))) -- cgit v1.2.3 From 9d0c24d1be393d14bddd031e910b1d0e51156f58 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 21 May 2017 11:56:29 +0200 Subject: tests: ssh: Use 'guile2.0-ssh'. Fixes a regression introduced in 4d8806c3d662c74e6d48d0f0d6ce423fce9a3a08. * gnu/tests/ssh.scm (run-ssh-test): Use GUILE2.0-SSH instead of GUILE-SSH. --- gnu/tests/ssh.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm index 02931e982a..5f06151081 100644 --- a/gnu/tests/ssh.scm +++ b/gnu/tests/ssh.scm @@ -51,7 +51,7 @@ (define test (eval-when (expand load eval) ;; Prepare to use Guile-SSH. (set! %load-path - (cons (string-append #$guile-ssh "/share/guile/site/" + (cons (string-append #+guile2.0-ssh "/share/guile/site/" (effective-version)) %load-path))) -- cgit v1.2.3 From a6d728b7aaee09892b0b420d07ed2dbb7de5e63f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 21 May 2017 16:58:53 +0200 Subject: gnu: guix: Update to 0.13.0. --- gnu/packages/package-management.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index ceaf51b676..76dc9adf2e 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -72,9 +72,9 @@ (define-public guix ;; Latest version of Guix, which may or may not correspond to a release. ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. - (let ((version "0.12.0") - (commit "ce92d269fea0a2bfac0ac20414f77127d2f07500") - (revision 11)) + (let ((version "0.13.0") + (commit "df671177f854da26bb171d9d5e9a6990024107a0") + (revision 0)) (package (name "guix") @@ -90,7 +90,7 @@ (define-public guix (commit commit))) (sha256 (base32 - "17l9r2mdzzv8vfxb3bc5zkdqkl472q979iwsarp7lcqss1jxys7w")) + "1j4b2aki7sc28bl7nahcmb02dmj4wa5g6myvc68p03rgv25cqw1d")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From e9c53359e71f23e24acbb0637b58c70a73289c61 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 21 May 2017 16:59:04 +0200 Subject: gnu: guix: Update to a6d728b. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 76dc9adf2e..246d2539d6 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -73,8 +73,8 @@ (define-public guix ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.13.0") - (commit "df671177f854da26bb171d9d5e9a6990024107a0") - (revision 0)) + (commit "a6d728b7aaee09892b0b420d07ed2dbb7de5e63f") + (revision 1)) (package (name "guix") @@ -90,7 +90,7 @@ (define-public guix (commit commit))) (sha256 (base32 - "1j4b2aki7sc28bl7nahcmb02dmj4wa5g6myvc68p03rgv25cqw1d")) + "1nrskyk8z6w5i9cdfh5zxfgsrqf744sb30ssqi2g5xhijwagr1yq")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From f2da7c861b9b91d2c3952ff1d1481f026d53af0d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 May 2017 13:06:16 +0000 Subject: gnu: vte: Update to 0.48.3. * gnu/packages/gnome.scm (vte): Update to 0.48.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 47dcc91dcd..c38a59cbb3 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1871,7 +1871,7 @@ (define-public vala (define-public vte (package (name "vte") - (version "0.48.2") + (version "0.48.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1879,7 +1879,7 @@ (define-public vte name "-" version ".tar.xz")) (sha256 (base32 - "14060d5rmjjmxaknrabhnsjwxni5wa3crg61mqxv8f7yxl0v6y62")))) + "1hsqc7238862mqnva5qqdfxnhpwq3ak6zx6kbjj95cs04wcgpad3")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From e6a36cf2f31b6783ba52a1c8300affb82e514f3a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 May 2017 13:08:40 +0000 Subject: gnu: aisleriot: Update to 3.22.2. * gnu/packages/gnome.scm (aisleriot): Update to 3.22.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c38a59cbb3..907506ed67 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2853,7 +2853,7 @@ (define-public totem-pl-parser (define-public aisleriot (package (name "aisleriot") - (version "3.22.1") + (version "3.22.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2861,7 +2861,7 @@ (define-public aisleriot name "-" version ".tar.xz")) (sha256 (base32 - "01ydq39kk8xvv8nbqqbh458gpmvx676sms71r1iix42z40a13caj")))) + "0a8cir7vgi67sncl0m7cypq11amardm7r68gr3q52a11l8ajycdx")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 123e81681675c4d9df76cfa50d3f7fa6837b3b46 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 May 2017 13:10:11 +0000 Subject: gnu: dconf-editor: Update to 3.22.3. * gnu/packages/gnome.scm (dconf-editor): Update to 3.22.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 907506ed67..0cec924b36 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5351,7 +5351,7 @@ (define-public gnome-screenshot (define-public dconf-editor (package (name "dconf-editor") - (version "3.22.1") + (version "3.22.3") (source (origin (method url-fetch) @@ -5360,7 +5360,7 @@ (define-public dconf-editor name "-" version ".tar.xz")) (sha256 (base32 - "09n1ljryjgkmxwly542zb2dh9j7h76chc0br2bbhrhkwvjjmc3ha")))) + "1939yq3fl55c2dqkc6nzp6cbpxq9sli74gdj0rj7c50pwvbngwam")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases -- cgit v1.2.3 From b7c0c756da9e5ef8a52e399c0c7b7e186ed9fe06 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 May 2017 13:11:19 +0000 Subject: gnu: gexiv2: Update to 0.10.6. * gnu/packages/gnome.scm (gexiv2): Update to 0.10.6. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0cec924b36..51672919fd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3984,7 +3984,7 @@ (define-public libgee (define-public gexiv2 (package (name "gexiv2") - (version "0.10.4") + (version "0.10.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3992,7 +3992,7 @@ (define-public gexiv2 name "-" version ".tar.xz")) (sha256 (base32 - "190www3b61spfgwx42jw8h5hsz2996jcxky48k63468avjpk33dd")))) + "09aqsnpah71p9gx0ap2px2dyanrs7jmkkar6q114n9b7js8qh9qk")))) (build-system gnu-build-system) (native-inputs `(("glib" ,glib "bin") -- cgit v1.2.3 From 52d2a2be1fda52991a19519bc260f25655bfb1ab Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 May 2017 15:28:59 +0200 Subject: gnu: vte-ng: Update to 0.48.3.a. * gnu/packages/gnome.scm (vte-ng): Update to 0.48.3.a. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 51672919fd..e81a3f0883 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1906,7 +1906,7 @@ (define-public vte-ng (package (inherit vte) (name "vte-ng") - (version "0.48.2.a") + (version "0.48.3.a") (native-inputs `(("gtk-doc" ,gtk-doc) ("gperf" ,gperf) @@ -1921,7 +1921,7 @@ (define-public vte-ng (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0m0bqcppa9vzysxizbymwifpii1lgg1cjy7yphvb1ivxz1pk7bal")))) + "1wdkf090zclqy11hxdjgy8f6fgzajl0xzzirajikhbaiill7f8zh")))) (arguments `(#:configure-flags '("CXXFLAGS=-Wformat=0") #:phases (modify-phases %standard-phases -- cgit v1.2.3 From d4b83651d1331ebe5327d0d448567f3084bdd8b5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 17 May 2017 16:36:35 +0200 Subject: gnu: Add r-aroma-light. * gnu/packages/bioinformatics.scm (r-aroma-light): New variable. --- gnu/packages/bioinformatics.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 9b4afbfcfb..a372b163cf 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -8994,6 +8994,33 @@ (define-public r-seurat discovery of differentially expressed genes and markers.") (license license:gpl3)))) +(define-public r-aroma-light + (package + (name "r-aroma-light") + (version "3.6.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "aroma.light" version)) + (sha256 + (base32 + "10snykmmx36qaymyf5s1n1km8hsscyzpykcpf0mzsrcv8ml9rp8a")))) + (properties `((upstream-name . "aroma.light"))) + (build-system r-build-system) + (propagated-inputs + `(("r-matrixstats" ,r-matrixstats) + ("r-r-methodss3" ,r-r-methodss3) + ("r-r-oo" ,r-r-oo) + ("r-r-utils" ,r-r-utils))) + (home-page "https://github.com/HenrikBengtsson/aroma.light") + (synopsis "Methods for normalization and visualization of microarray data") + (description + "This package provides methods for microarray analysis that take basic +data types such as matrices and lists of vectors. These methods can be used +standalone, be utilized in other packages, or be wrapped up in higher-level +classes.") + (license license:gpl2+))) + (define htslib-for-sambamba (let ((commit "2f3c3ea7b301f9b45737a793c0b2dcf0240e5ee5")) (package -- cgit v1.2.3 From 7b46532779ddc6b01f99989be0eda91149809ce4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 17 May 2017 16:36:57 +0200 Subject: gnu: Add r-deseq. * gnu/packages/bioinformatics.scm (r-deseq): New variable. --- gnu/packages/bioinformatics.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index a372b163cf..55c076ca1b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9021,6 +9021,37 @@ (define-public r-aroma-light classes.") (license license:gpl2+))) +(define-public r-deseq + (package + (name "r-deseq") + (version "1.28.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "DESeq" version)) + (sha256 + (base32 + "0j3dgcxd64m9qknmlcbdzvg4xhp981xd6nbwsvnqjfn6yypslgyw")))) + (properties `((upstream-name . "DESeq"))) + (build-system r-build-system) + (propagated-inputs + `(("r-biobase" ,r-biobase) + ("r-biocgenerics" ,r-biocgenerics) + ("r-genefilter" ,r-genefilter) + ("r-geneplotter" ,r-geneplotter) + ("r-lattice" ,r-lattice) + ("r-locfit" ,r-locfit) + ("r-mass" ,r-mass) + ("r-rcolorbrewer" ,r-rcolorbrewer))) + (home-page "http://www-huber.embl.de/users/anders/DESeq") + (synopsis "Differential gene expression analysis") + (description + "This package provides tools for estimating variance-mean dependence in +count data from high-throughput genetic sequencing assays and for testing for +differential expression based on a model using the negative binomial +distribution.") + (license license:gpl3+))) + (define htslib-for-sambamba (let ((commit "2f3c3ea7b301f9b45737a793c0b2dcf0240e5ee5")) (package -- cgit v1.2.3 From 296b3c631c2e8cf42f5a0920cd11c424daec9ea4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 17 May 2017 16:38:17 +0200 Subject: gnu: Add r-edaseq. * gnu/packages/bioinformatics.scm (r-edaseq): New variable. --- gnu/packages/bioinformatics.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 55c076ca1b..21bf2d409a 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9052,6 +9052,44 @@ (define-public r-deseq distribution.") (license license:gpl3+))) +(define-public r-edaseq + (package + (name "r-edaseq") + (version "2.10.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "EDASeq" version)) + (sha256 + (base32 + "0f25dfc8hdii9fjm3bf89vy9jkxv23sa62fkcga5b4gkipwrvm9a")))) + (properties `((upstream-name . "EDASeq"))) + (build-system r-build-system) + (propagated-inputs + `(("r-annotationdbi" ,r-annotationdbi) + ("r-aroma-light" ,r-aroma-light) + ("r-biobase" ,r-biobase) + ("r-biocgenerics" ,r-biocgenerics) + ("r-biomart" ,r-biomart) + ("r-biostrings" ,r-biostrings) + ("r-deseq" ,r-deseq) + ("r-genomicfeatures" ,r-genomicfeatures) + ("r-genomicranges" ,r-genomicranges) + ("r-iranges" ,r-iranges) + ("r-rsamtools" ,r-rsamtools) + ("r-shortread" ,r-shortread))) + (home-page "https://github.com/drisso/EDASeq") + (synopsis "Exploratory data analysis and normalization for RNA-Seq") + (description + "This package provides support for numerical and graphical summaries of +RNA-Seq genomic read data. Provided within-lane normalization procedures to +adjust for GC-content effect (or other gene-level effects) on read counts: +loess robust local regression, global-scaling, and full-quantile +normalization. Between-lane normalization procedures to adjust for +distributional differences between lanes (e.g., sequencing depth): +global-scaling and full-quantile normalization.") + (license license:artistic2.0))) + (define htslib-for-sambamba (let ((commit "2f3c3ea7b301f9b45737a793c0b2dcf0240e5ee5")) (package -- cgit v1.2.3 From e1ae3587d26336251d24bed10a9172a9d9fb2f57 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 8 May 2017 15:34:15 +0200 Subject: gnu: Add jikes. * gnu/packages/java.scm (jikes): New variable. --- gnu/packages/java.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e86c904e71..6dc97fede7 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -60,6 +60,50 @@ (define-module (gnu packages java) #:use-module (srfi srfi-11) #:use-module (ice-9 match)) + +;;; +;;; Java bootstrap toolchain. +;;; + +;; The Java bootstrap begins with Jikes, a Java compiler written in C++. We +;; use it to build the SableVM standard library and virtual machine, which are +;; written in a simpler dialect of Java and C, respectively. This is +;; sufficient to build an older version of Ant, which is needed to build an +;; older version of ECJ, an incremental Java compiler, both of which are +;; written in Java. +;; +;; ECJ is needed to build the latest release of GNU Classpath (0.99). +;; Classpath (> 0.98) is a requirement for JamVM, a more modern implementation +;; of the Java virtual machine. +;; +;; With JamVM we can build the latest development version of GNU Classpath, +;; which has much more support for Java 1.6 than the latest release. Since +;; the previous build of JamVM is limited by the use of GNU Classpath 0.99 we +;; rebuild it with the latest development version of GNU Classpath. +;; +;; Finally, we use the bootstrap toolchain to build the OpenJDK with the +;; Icedtea 1.x build framework. We then build the more recent JDKs Icedtea +;; 2.x and Icedtea 3.x. + +(define jikes + (package + (name "jikes") + (version "1.22") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/jikes/Jikes/" + version "/jikes-" version ".tar.bz2")) + (sha256 + (base32 + "1qqldrp74pzpy5ly421srqn30qppmm9cvjiqdngk8hf47dv2rc0c")))) + (build-system gnu-build-system) + (home-page "http://jikes.sourceforge.net/") + (synopsis "Compiler for the Java language") + (description "Jikes is a compiler that translates Java source files as +defined in The Java Language Specification into the bytecoded instruction set +and binary format defined in The Java Virtual Machine Specification.") + (license license:ibmpl1.0))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 2551fee8a0255bd40b142389ae39f3ea5dd54082 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 8 May 2017 16:53:37 +0200 Subject: gnu: Add sablevm-classpath. * gnu/packages/java.scm (sablevm-classpath): New variable. --- gnu/packages/java.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 6dc97fede7..18004ccf8e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -104,6 +104,45 @@ (define jikes and binary format defined in The Java Virtual Machine Specification.") (license license:ibmpl1.0))) +(define sablevm-classpath + (package + (name "sablevm-classpath") + (version "1.13") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/sablevm/sablevm/" + version "/sablevm-classpath-" version ".tar.gz")) + (sha256 + (base32 + "1qyhyfz8idghxdam16hdgpa24r2x4xbg9z8c8asa3chnd79h3zw2")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--with-jikes" + "--disable-Werror" + "--disable-gmp" + "--disable-gtk-peer" + "--disable-plugin" + "--disable-dssi" + "--disable-alsa" + "--disable-gjdoc"))) + (inputs + `(("gconf" ,gconf) + ("gtk+" ,gtk+-2))) + (native-inputs + `(("jikes" ,jikes) + ("fastjar" ,fastjar) + ("pkg-config" ,pkg-config))) + (home-page "http://sablevm.org/") + (synopsis "Java Virtual Machine") + (description "SableVM is a clean-room, highly portable and efficient Java +virtual machine. Its goals are to be reasonably small, fast, and compliant +with the various specifications (JVM specification, JNI, invocation interface, +etc.). SableVM is no longer maintained. + +This package provides the classpath library.") + (license license:lgpl2.1+))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 57f6c50db1d955b40ff2bcd919745c6bc0ce518a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 13 May 2017 07:27:23 +0200 Subject: gnu: Add sablevm. * gnu/packages/java.scm (sablevm): New variable. --- gnu/packages/java.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 18004ccf8e..0931fc0b22 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -143,6 +143,51 @@ (define sablevm-classpath This package provides the classpath library.") (license license:lgpl2.1+))) +(define sablevm + (package + (name "sablevm") + (version "1.13") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/sablevm/sablevm/" + version "/sablevm-" version ".tar.gz")) + (sha256 + (base32 + "1jyg4bsym6igz94wps5443c7wiwlzinqzkchcw972nz4kf1cql6g")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-path-to-classpath + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile.in" + (("@datadir@/sablevm-classpath") + (string-append (assoc-ref inputs "classpath") + "/share/sablevm-classpath"))) + (substitute* "src/libsablevm/Makefile.in" + (("\\$\\(libdir\\)/sablevm-classpath") + (string-append (assoc-ref inputs "classpath") + "/lib/sablevm-classpath")) + (("\\$\\(datadir\\)/sablevm-classpath") + (string-append (assoc-ref inputs "classpath") + "/share/sablevm-classpath"))) + #t))))) + (inputs + `(("classpath" ,sablevm-classpath) + ("jikes" ,jikes) + ("zlib" ,zlib))) + (native-inputs + `(("libltdl" ,libltdl))) + (home-page "http://sablevm.org/") + (synopsis "Java Virtual Machine") + (description "SableVM is a clean-room, highly portable and efficient Java +virtual machine. Its goals are to be reasonably small, fast, and compliant +with the various specifications (JVM specification, JNI, invocation interface, +etc.). SableVM is no longer maintained. + +This package provides the virtual machine.") + (license license:lgpl2.1+))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 5783bd77300d51f9e5a29d7fe77ab2ce4e69b58f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 13 May 2017 07:30:25 +0200 Subject: gnu: Add ant-bootstrap. * gnu/packages/java.scm (ant-bootstrap): New variable. --- gnu/packages/java.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 0931fc0b22..41dd822bb7 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -188,6 +188,66 @@ (define sablevm This package provides the virtual machine.") (license license:lgpl2.1+))) +(define ant-bootstrap + (package + (name "ant-bootstrap") + ;; The 1.10.x series requires Java 8. 1.9.0 and later use generics, which + ;; are not supported. The 1.8.x series is the last to use only features + ;; supported by Jikes, but it cannot seem to be built with sablevm. + (version "1.7.1") + (source (origin + (method url-fetch) + (uri (string-append "http://archive.apache.org/dist/" + "ant/source/apache-ant-" + version "-src.tar.bz2")) + (sha256 + (base32 + "19pvqvgkxgpgsqm4lvbki5sm0z84kxmykdqicvfad47gc1r9mi2d")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no "check" target + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (setenv "JAVA_HOME" + (string-append (assoc-ref inputs "sablevm") + "/lib/sablevm")) + (setenv "JAVACMD" + (string-append (assoc-ref inputs "sablevm") + "/bin/java-sablevm")) + (setenv "JAVAC" + (string-append (assoc-ref inputs "sablevm") + "/bin/javac-sablevm")) + + ;; Use jikes instead of javac for tags in build.xml + (setenv "ANT_OPTS" "-Dbuild.compiler=jikes") + + ;; jikes produces lots of warnings, but they are not very + ;; interesting, so we silence them. + (setenv "$BOOTJAVAC_OPTS" "-nowarn") + + ;; Disable tests because we are bootstrapping and thus don't have + ;; any of the dependencies required to build and run the tests. + (substitute* "build.xml" + (("depends=\"jars,test-jar\"") "depends=\"jars\"")) + (zero? (system* "bash" "bootstrap.sh" + (string-append "-Ddist.dir=" + (assoc-ref %outputs "out")))))) + (delete 'install)))) + (native-inputs + `(("jikes" ,jikes) + ("sablevm" ,sablevm))) + (home-page "http://ant.apache.org") + (synopsis "Build tool for Java") + (description + "Ant is a platform-independent build tool for Java. It is similar to +make but is implemented using the Java language, requires the Java platform, +and is best suited to building Java projects. Ant uses XML to describe the +build process and its dependencies, whereas Make uses Makefile format.") + (license license:asl2.0))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 5461721fa06028cb32e1cb84498b60869c9d7b98 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 13 May 2017 07:31:30 +0200 Subject: gnu: Add ecj-bootstrap. * gnu/packages/java.scm (ecj-bootstrap): New variable. --- gnu/packages/java.scm | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 41dd822bb7..c71e770126 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -248,6 +248,75 @@ (define ant-bootstrap build process and its dependencies, whereas Make uses Makefile format.") (license license:asl2.0))) +;; Version 3.2.2 is the last version without a dependency on a full-fledged +;; compiler for Java 1.5. +(define ecj-bootstrap + (package + (name "ecj-bootstrap") + (version "3.2.2") + (source (origin + (method url-fetch) + (uri (string-append "http://archive.eclipse.org/eclipse/" + "downloads/drops/R-" version + "-200702121330/ecjsrc.zip")) + (sha256 + (base32 + "05hj82kxd23qaglsjkaqcj944riisjha7acf7h3ljhrjyljx8307")))) + ;; It would be so much easier if we could use the ant-build-system, but we + ;; cannot as we don't have ant at this point. We use ecj for + ;; bootstrapping the JDK. + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CLASSPATH" + (string-join + (find-files (string-append (assoc-ref inputs "ant-bootstrap") + "/lib") + "\\.jar$") + ":")) + #t)) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + ;; The unpack phase enters the "org" directory by mistake. + (chdir "..") + + ;; Create a simple manifest to make ecj executable. + (with-output-to-file "manifest" + (lambda _ + (display "Manifest-Version: 1.0 +Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"))) + + ;; Compile it all! + (and (zero? (apply system* "javac-sablevm" + (find-files "." "\\.java$"))) + (zero? (system* "fastjar" "cvfm" + "ecj-bootstrap.jar" "manifest" "."))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((share (string-append (assoc-ref outputs "out") + "/share/java/"))) + (mkdir-p share) + (install-file "ecj-bootstrap.jar" share) + #t)))))) + (native-inputs + `(("ant-bootstrap" ,ant-bootstrap) + ("unzip" ,unzip) + ("sablevm" ,sablevm) + ("fastjar" ,fastjar))) + (home-page "https://eclipse.org") + (synopsis "Eclipse Java development tools core batch compiler") + (description "This package provides the Eclipse Java core batch compiler +for bootstrapping purposes. The @dfn{Eclipse compiler for Java} (ecj) is a +requirement for all GNU Classpath releases after version 0.93.") + (license license:epl1.0))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 6a5829d995bc5e955722cab4b698aa52b7fab428 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 13 May 2017 07:32:19 +0200 Subject: gnu: Add ecj-javac-wrapper. * gnu/packages/java.scm (ecj-javac-wrapper): New variable. --- gnu/packages/java.scm | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c71e770126..a976f1437b 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -28,6 +28,7 @@ (define-module (gnu packages java) #:use-module (guix utils) #:use-module (guix build-system ant) #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) @@ -45,6 +46,7 @@ (define-module (gnu packages java) #:use-module (gnu packages ghostscript) ;lcms #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages linux) ;alsa @@ -317,6 +319,91 @@ (define ecj-bootstrap requirement for all GNU Classpath releases after version 0.93.") (license license:epl1.0))) +(define ecj-javac-wrapper + (package (inherit ecj-bootstrap) + (name "ecj-javac-wrapper") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (let ((backend 'sablevm)) + (use-modules (guix build utils)) + (let* ((bin (string-append (assoc-ref %outputs "out") "/bin")) + (target (string-append bin "/javac")) + (guile (string-append (assoc-ref %build-inputs "guile") + "/bin/guile")) + (ecj (string-append (assoc-ref %build-inputs "ecj-bootstrap") + "/share/java/ecj-bootstrap.jar")) + (java (case backend + ((sablevm) + (string-append (assoc-ref %build-inputs "sablevm") + "/lib/sablevm/bin/java")) + ((jamvm) + (string-append (assoc-ref %build-inputs "jamvm") + "/bin/jamvm")))) + (bootcp (case backend + ((sablevm) + (let ((jvmlib (string-append + (assoc-ref %build-inputs "sablevm-classpath") + "/lib/sablevm"))) + (string-append jvmlib "/jre/lib/rt.jar"))) + ((jamvm) + (let ((jvmlib (string-append (assoc-ref %build-inputs "classpath") + "/share/classpath"))) + (string-append jvmlib "/lib/glibj.zip:" + jvmlib "/lib/tools.zip")))))) + (mkdir-p bin) + (with-output-to-file target + (lambda _ + (format #t "#!~a --no-auto-compile\n!#\n" guile) + (write + `(begin (use-modules (ice-9 match) + (ice-9 receive) + (ice-9 hash-table) + (srfi srfi-1) + (srfi srfi-26)) + (define defaults + '(("-bootclasspath" ,bootcp) + ("-source" "1.5") + ("-target" "1.5") + ("-cp" "."))) + (define (main args) + (let ((classpath (getenv "CLASSPATH"))) + (setenv "CLASSPATH" + (string-append ,ecj + (if classpath + (string-append ":" classpath) + "")))) + (receive (vm-args other-args) + ;; Separate VM arguments from arguments to ECJ. + (partition (cut string-prefix? "-J" <>) + (fold (lambda (default acc) + (if (member (first default) acc) + acc (append default acc))) + args defaults)) + (apply system* ,java + (append + ;; Remove "-J" prefix + (map (cut string-drop <> 2) vm-args) + '("org.eclipse.jdt.internal.compiler.batch.Main") + (cons "-nowarn" other-args))))) + ;; Entry point + (let ((args (cdr (command-line)))) + (if (null? args) + (format (current-error-port) "javac: no arguments given!\n") + (main args))))))) + (chmod target #o755) + #t)))) + (native-inputs + `(("guile" ,guile-2.2) + ("ecj-bootstrap" ,ecj-bootstrap) + ("sablevm" ,sablevm) + ("sablevm-classpath" ,sablevm-classpath))) + (description "This package provides a wrapper around the @dfn{Eclipse +compiler for Java} (ecj) with a command line interface that is compatible with +the standard javac executable."))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From d3551e861ead525a968f150ef34c64ea70a55ad2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 13 May 2017 07:33:15 +0200 Subject: gnu: Add classpath. * gnu/packages/java.scm (classpath): New variable. --- gnu/packages/java.scm | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a976f1437b..b6d74c2bce 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -404,6 +404,64 @@ (define (main args) compiler for Java} (ecj) with a command line interface that is compatible with the standard javac executable."))) +;; Note: All the tool wrappers (e.g. for javah, javac, etc) fail with +;; java.lang.UnsupportedClassVersionError. They simply won't run on the old +;; sablevm. We use Classpath 0.99 to build JamVM, on which the Classpath +;; tools do run. Using these Classpath tools on JamVM we can then build the +;; development version of GNU Classpath. +(define classpath-on-sablevm + (package + (name "classpath") + (version "0.99") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/classpath/classpath-" + version ".tar.gz")) + (sha256 + (base32 + "1j7cby4k66f1nvckm48xcmh352b1d1b33qk7l6hi7dp9i9zjjagr")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-ecj-jar=" + (assoc-ref %build-inputs "ecj-bootstrap") + "/share/java/ecj-bootstrap.jar") + (string-append "JAVAC=" + (assoc-ref %build-inputs "ecj-javac-wrapper") + "/bin/javac") + (string-append "JAVA=" + (assoc-ref %build-inputs "sablevm") + "/bin/java-sablevm") + "GCJ_JAVAC_TRUE=no" + "ac_cv_prog_java_works=yes" ; trust me + "--disable-Werror" + "--disable-gmp" + "--disable-gtk-peer" + "--disable-gconf-peer" + "--disable-plugin" + "--disable-dssi" + "--disable-alsa" + "--disable-gjdoc") + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-data + (lambda _ (zero? (system* "make" "install-data"))))))) + (native-inputs + `(("ecj-bootstrap" ,ecj-bootstrap) + ("ecj-javac-wrapper" ,ecj-javac-wrapper) + ("fastjar" ,fastjar) + ("sablevm" ,sablevm) + ("sablevm-classpath" ,sablevm-classpath) + ("libltdl" ,libltdl) + ("pkg-config" ,pkg-config))) + (home-page "https://www.gnu.org/software/classpath/") + (synopsis "Essential libraries for Java") + (description "GNU Classpath is a project to create core class libraries +for use with runtimes, compilers and tools for the Java programming +language.") + ;; GPLv2 or later, with special linking exception. + (license license:gpl2+))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 5f4402c7a374956e6e8a1e2dee0228916ccd2d7b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 11 May 2017 10:15:44 +0200 Subject: gnu: Add jamvm-bootstrap. * gnu/packages/java.scm (jamvm-bootstrap): New variable. --- gnu/packages/java.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b6d74c2bce..0faf2bd296 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -462,6 +462,35 @@ (define classpath-on-sablevm ;; GPLv2 or later, with special linking exception. (license license:gpl2+))) +(define jamvm-bootstrap + (package + (name "jamvm") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/jamvm/jamvm/" + "JamVM%20" version "/jamvm-" + version ".tar.gz")) + (sha256 + (base32 + "1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-classpath-install-dir=" + (assoc-ref %build-inputs "classpath"))))) + (inputs + `(("classpath" ,classpath-on-sablevm) + ("ecj-javac-wrapper" ,ecj-javac-wrapper) + ("zlib" ,zlib))) + (home-page "http://jamvm.sourceforge.net/") + (synopsis "Small Java Virtual Machine") + (description "JamVM is a Java Virtual Machine conforming to the JVM +specification edition 2 (blue book). It is extremely small. However, unlike +other small VMs it supports the full spec, including object finalisation and +JNI.") + (license license:gpl2+))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 04d7cae2c4bc425a8cafac6cae2456ca929cecab Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 14 May 2017 00:30:18 +0200 Subject: gnu: Add classpath-jamvm-wrappers. * gnu/packages/java.scm (classpath-jamvm-wrappers): New variable. --- gnu/packages/java.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 0faf2bd296..7d1c027394 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -491,6 +491,51 @@ (define jamvm-bootstrap JNI.") (license license:gpl2+))) +;; We need this because the tools provided by the latest release of GNU +;; Classpath don't actually work with sablevm. +(define classpath-jamvm-wrappers + (package (inherit classpath-on-sablevm) + (name "classpath-jamvm-wrappers") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((bash (assoc-ref %build-inputs "bash")) + (jamvm (assoc-ref %build-inputs "jamvm")) + (classpath (assoc-ref %build-inputs "classpath")) + (bin (string-append (assoc-ref %outputs "out") + "/bin/"))) + (mkdir-p bin) + (for-each (lambda (tool) + (with-output-to-file (string-append bin tool) + (lambda _ + (format #t "#!~a/bin/sh +~a/bin/jamvm -classpath ~a/share/classpath/tools.zip \ +gnu.classpath.tools.~a.~a $@" + bash jamvm classpath tool + (if (string=? "native2ascii" tool) + "Native2ASCII" "Main")))) + (chmod (string-append bin tool) #o755)) + (list "javah" + "rmic" + "rmid" + "orbd" + "rmiregistry" + "native2ascii")) + #t)))) + (native-inputs + `(("bash" ,bash) + ("jamvm" ,jamvm-bootstrap) + ("classpath" ,classpath-on-sablevm))) + (inputs '()) + (synopsis "Executables from GNU Classpath") + (description "This package provides wrappers around the tools provided by +the GNU Classpath library. They are executed by the JamVM virtual +machine."))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 7292d6941958167aec92d42063335a5336dbbffb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 14 May 2017 00:31:02 +0200 Subject: gnu: Add ecj-javac-on-jamvm-wrapper. * gnu/packages/java.scm (ecj-javac-on-jamvm-wrapper): New variable. --- gnu/packages/java.scm | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7d1c027394..b0f81be9a2 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -536,6 +536,92 @@ (define classpath-jamvm-wrappers the GNU Classpath library. They are executed by the JamVM virtual machine."))) +(define ecj-javac-on-jamvm-wrapper + (package (inherit ecj-javac-wrapper) + (name "ecj-javac-on-jamvm-wrapper") + (arguments + `(#:modules ((guix build utils)) + #:builder + ;; TODO: This builder is exactly the same as in ecj-javac-wrapper, + ;; except that the backend is 'jamvm here. Can we reuse the same + ;; builder somehow? + (let ((backend 'jamvm)) + (use-modules (guix build utils)) + (let* ((bin (string-append (assoc-ref %outputs "out") "/bin")) + (target (string-append bin "/javac")) + (guile (string-append (assoc-ref %build-inputs "guile") + "/bin/guile")) + (ecj (string-append (assoc-ref %build-inputs "ecj-bootstrap") + "/share/java/ecj-bootstrap.jar")) + (java (case backend + ((sablevm) + (string-append (assoc-ref %build-inputs "sablevm") + "/lib/sablevm/bin/java")) + ((jamvm) + (string-append (assoc-ref %build-inputs "jamvm") + "/bin/jamvm")))) + (bootcp (case backend + ((sablevm) + (let ((jvmlib (string-append + (assoc-ref %build-inputs "sablevm-classpath") + "/lib/sablevm"))) + (string-append jvmlib "/jre/lib/rt.jar"))) + ((jamvm) + (let ((jvmlib (string-append (assoc-ref %build-inputs "classpath") + "/share/classpath"))) + (string-append jvmlib "/lib/glibj.zip:" + jvmlib "/lib/tools.zip")))))) + (mkdir-p bin) + (with-output-to-file target + (lambda _ + (format #t "#!~a --no-auto-compile\n!#\n" guile) + (write + `(begin (use-modules (ice-9 match) + (ice-9 receive) + (ice-9 hash-table) + (srfi srfi-1) + (srfi srfi-26)) + (define defaults + '(("-bootclasspath" ,bootcp) + ("-source" "1.5") + ("-target" "1.5") + ("-cp" "."))) + (define (main args) + (let ((classpath (getenv "CLASSPATH"))) + (setenv "CLASSPATH" + (string-append ,ecj + (if classpath + (string-append ":" classpath) + "")))) + (receive (vm-args other-args) + ;; Separate VM arguments from arguments to ECJ. + (partition (cut string-prefix? "-J" <>) + (fold (lambda (default acc) + (if (member (first default) acc) + acc (append default acc))) + args defaults)) + (apply system* ,java + (append + ;; Remove "-J" prefix + (map (cut string-drop <> 2) vm-args) + '("org.eclipse.jdt.internal.compiler.batch.Main") + (cons "-nowarn" other-args))))) + ;; Entry point + (let ((args (cdr (command-line)))) + (if (null? args) + (format (current-error-port) "javac: no arguments given!\n") + (main args))))))) + (chmod target #o755) + #t)))) + (native-inputs + `(("guile" ,guile-2.2) + ("ecj-bootstrap" ,ecj-bootstrap) + ("jamvm" ,jamvm-bootstrap) + ("classpath" ,classpath-on-sablevm))) + (description "This package provides a wrapper around the @dfn{Eclipse +compiler for Java} (ecj) with a command line interface that is compatible with +the standard javac executable. The tool runs on JamVM instead of SableVM."))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 72885a4c8f92bc08d7d612dc74d6b9ec60a83e7d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 14:32:20 +0200 Subject: gnu: Add classpath-devel. * gnu/packages/java.scm (classpath-devel): New variable. --- gnu/packages/java.scm | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b0f81be9a2..fe3243c539 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -25,6 +25,7 @@ (define-module (gnu packages java) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix hg-download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system ant) #:use-module (guix build-system gnu) @@ -40,6 +41,7 @@ (define-module (gnu packages java) #:use-module (gnu packages compression) #:use-module (gnu packages fontutils) #:use-module (gnu packages gawk) + #:use-module (gnu packages gettext) #:use-module (gnu packages gcc) #:use-module (gnu packages gl) #:use-module (gnu packages gnuzilla) ;nss @@ -622,6 +624,68 @@ (define (main args) compiler for Java} (ecj) with a command line interface that is compatible with the standard javac executable. The tool runs on JamVM instead of SableVM."))) +;; The last release of GNU Classpath is 0.99 and it happened in 2012. Since +;; then Classpath has gained much more support for Java 1.6. +(define-public classpath-devel + (let ((commit "e7c13ee0cf2005206fbec0eca677f8cf66d5a103") + (revision "1")) + (package (inherit classpath-on-sablevm) + (version (string-append "0.99-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.savannah.gnu.org/classpath.git") + (commit commit))) + (sha256 + (base32 + "1v2rww76ww322mpg3s12a1kkc6gkp31bm9gcxs532h0wq285fiw4")))) + (arguments + `(#:configure-flags + (list (string-append "--with-ecj-jar=" + (assoc-ref %build-inputs "ecj-bootstrap") + "/share/java/ecj-bootstrap.jar") + (string-append "JAVAC=" + (assoc-ref %build-inputs "ecj-javac-wrapper") + "/bin/javac") + (string-append "JAVA=" + (assoc-ref %build-inputs "jamvm") + "/bin/jamvm") + "GCJ_JAVAC_TRUE=no" + "ac_cv_prog_java_works=yes" ; trust me + "--disable-Werror" + "--disable-gmp" + "--disable-gtk-peer" + "--disable-gconf-peer" + "--disable-plugin" + "--disable-dssi" + "--disable-alsa" + "--disable-gjdoc") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vif")))) + (add-after 'unpack 'remove-unsupported-annotations + (lambda _ + (substitute* (find-files "java" "\\.java$") + (("@Override") "")) + #t)) + (add-after 'install 'install-data + (lambda _ (zero? (system* "make" "install-data"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("gettext" ,gettext-minimal) + ("texinfo" ,texinfo) + ("classpath-jamvm-wrappers" ,classpath-jamvm-wrappers) ; for javah + ("ecj-bootstrap" ,ecj-bootstrap) + ("ecj-javac-wrapper" ,ecj-javac-on-jamvm-wrapper) + ("fastjar" ,fastjar) + ("jamvm" ,jamvm-bootstrap) + ("libltdl" ,libltdl) + ("pkg-config" ,pkg-config)))))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 8c6091e3a67790863d2bcbe747bed3a97a8df5b7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 14:33:08 +0200 Subject: gnu: Add jamvm. * gnu/packages/java.scm (jamvm): New variable. --- gnu/packages/java.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index fe3243c539..9d2d1e4637 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -686,6 +686,13 @@ (define-public classpath-devel ("libltdl" ,libltdl) ("pkg-config" ,pkg-config)))))) +(define-public jamvm + (package (inherit jamvm-bootstrap) + (inputs + `(("classpath" ,classpath-devel) + ("ecj-javac-wrapper" ,ecj-javac-on-jamvm-wrapper) + ("zlib" ,zlib))))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 1bf56c7233d83c75da3fea886aecddb31b8295b6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 14:34:46 +0200 Subject: gnu: Add ecj-javac-on-jamvm-wrapper-final. * gnu/packages/java.scm (ecj-javac-on-jamvm-wrapper-final): New variable. --- gnu/packages/java.scm | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 9d2d1e4637..47d432cbc9 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -693,6 +693,14 @@ (define-public jamvm ("ecj-javac-wrapper" ,ecj-javac-on-jamvm-wrapper) ("zlib" ,zlib))))) +(define ecj-javac-on-jamvm-wrapper-final + (package (inherit ecj-javac-on-jamvm-wrapper) + (native-inputs + `(("guile" ,guile-2.2) + ("ecj-bootstrap" ,ecj-bootstrap) + ("jamvm" ,jamvm) + ("classpath" ,classpath-devel))))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From 984193166833f7fb7910d7795a162a3c063b033c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 14:37:18 +0200 Subject: gnu: Add icedtea-6. * gnu/packages/java.scm (icedtea-6): New variable. --- gnu/packages/java.scm | 340 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 340 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 47d432cbc9..2f81db1eab 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -981,6 +981,346 @@ (define-public ant build process and its dependencies, whereas Make uses Makefile format.") (license license:asl2.0))) +;; The bootstrap JDK consisting of jamvm, classpath-devel, +;; ecj-javac-on-jamvm-wrapper-final cannot build Icedtea 2.x directly, because +;; it's written in Java 7. It can, however, build the unmaintained Icedtea +;; 1.x, which uses Java 6 only. +(define-public icedtea-6 + (package + (name "icedtea") + (version "1.13.13") + (source (origin + (method url-fetch) + (uri (string-append + "http://icedtea.wildebeest.org/download/source/icedtea6-" + version ".tar.xz")) + (sha256 + (base32 + "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg")) + (modules '((guix build utils))) + (snippet + '(substitute* "Makefile.in" + ;; do not leak information about the build host + (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") + "DISTRIBUTION_ID=\"\\\"guix\\\"\""))))) + (build-system gnu-build-system) + (outputs '("out" ; Java Runtime Environment + "jdk" ; Java Development Kit + "doc")) ; all documentation + (arguments + `(;; There are many failing tests and many are known to fail upstream. + #:tests? #f + + ;; The DSOs use $ORIGIN to refer to each other, but (guix build + ;; gremlin) doesn't support it yet, so skip this phase. + #:validate-runpath? #f + + #:modules ((guix build utils) + (guix build gnu-build-system) + (srfi srfi-19)) + + #:configure-flags + `("--enable-bootstrap" + "--enable-nss" + "--without-rhino" + "--with-parallel-jobs" + "--disable-downloading" + "--disable-tests" + ,(string-append "--with-ecj=" + (assoc-ref %build-inputs "ecj") + "/share/java/ecj-bootstrap.jar") + ,(string-append "--with-jar=" + (assoc-ref %build-inputs "fastjar") + "/bin/fastjar") + ,(string-append "--with-jdk-home=" + (assoc-ref %build-inputs "classpath")) + ,(string-append "--with-java=" + (assoc-ref %build-inputs "jamvm") + "/bin/jamvm")) + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source inputs #:allow-other-keys) + (and (zero? (system* "tar" "xvf" source)) + (begin + (chdir (string-append "icedtea6-" ,version)) + (mkdir "openjdk") + (copy-recursively (assoc-ref inputs "openjdk-src") "openjdk") + ;; The convenient OpenJDK source bundle is no longer + ;; available for download, so we have to take the sources + ;; from the Mercurial repositories and change the Makefile + ;; to avoid tests for the OpenJDK zip archive. + (with-directory-excursion "openjdk" + (for-each (lambda (part) + (mkdir part) + (copy-recursively + (assoc-ref inputs + (string-append part "-src")) + part)) + '("jdk" "hotspot" "corba" + "langtools" "jaxp" "jaxws"))) + (substitute* "Makefile.in" + (("echo \"ERROR: No up-to-date OpenJDK zip available\"; exit -1;") + "echo \"trust me\";") + ;; The contents of the bootstrap directory must be + ;; writeable but when copying from the store they are + ;; not. + (("mkdir -p lib/rt" line) + (string-append line "; chmod -R u+w $(BOOT_DIR)"))) + (zero? (system* "chmod" "-R" "u+w" "openjdk")) + #t)))) + (add-after 'unpack 'use-classpath + (lambda* (#:key inputs #:allow-other-keys) + (let ((jvmlib (assoc-ref inputs "classpath"))) + ;; Classpath does not provide rt.jar. + (substitute* "Makefile.in" + (("\\$\\(SYSTEM_JDK_DIR\\)/jre/lib/rt.jar") + (string-append jvmlib "/share/classpath/glibj.zip"))) + ;; Make sure we can find all classes. + (setenv "CLASSPATH" + (string-append jvmlib "/share/classpath/glibj.zip:" + jvmlib "/share/classpath/tools.zip")) + (setenv "JAVACFLAGS" + (string-append "-cp " + jvmlib "/share/classpath/glibj.zip:" + jvmlib "/share/classpath/tools.zip"))) + #t)) + (add-after 'unpack 'patch-patches + (lambda _ + ;; shebang in patches so that they apply cleanly + (substitute* '("patches/jtreg-jrunscript.patch" + "patches/hotspot/hs23/drop_unlicensed_test.patch") + (("#!/bin/sh") (string-append "#!" (which "sh")))) + #t)) + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + ;; buildtree.make generates shell scripts, so we need to replace + ;; the generated shebang + (substitute* '("openjdk/hotspot/make/linux/makefiles/buildtree.make") + (("/bin/sh") (which "bash"))) + + (let ((corebin (string-append + (assoc-ref inputs "coreutils") "/bin/")) + (binbin (string-append + (assoc-ref inputs "binutils") "/bin/")) + (grepbin (string-append + (assoc-ref inputs "grep") "/bin/"))) + (substitute* '("openjdk/jdk/make/common/shared/Defs-linux.gmk" + "openjdk/corba/make/common/shared/Defs-linux.gmk") + (("UNIXCOMMAND_PATH = /bin/") + (string-append "UNIXCOMMAND_PATH = " corebin)) + (("USRBIN_PATH = /usr/bin/") + (string-append "USRBIN_PATH = " corebin)) + (("DEVTOOLS_PATH *= */usr/bin/") + (string-append "DEVTOOLS_PATH = " corebin)) + (("COMPILER_PATH *= */usr/bin/") + (string-append "COMPILER_PATH = " + (assoc-ref inputs "gcc") "/bin/")) + (("DEF_OBJCOPY *=.*objcopy") + (string-append "DEF_OBJCOPY = " (which "objcopy")))) + + ;; fix path to alsa header + (substitute* "openjdk/jdk/make/common/shared/Sanity.gmk" + (("ALSA_INCLUDE=/usr/include/alsa/version.h") + (string-append "ALSA_INCLUDE=" + (assoc-ref inputs "alsa-lib") + "/include/alsa/version.h"))) + + ;; fix hard-coded utility paths + (substitute* '("openjdk/jdk/make/common/shared/Defs-utils.gmk" + "openjdk/corba/make/common/shared/Defs-utils.gmk") + (("ECHO *=.*echo") + (string-append "ECHO = " (which "echo"))) + (("^GREP *=.*grep") + (string-append "GREP = " (which "grep"))) + (("EGREP *=.*egrep") + (string-append "EGREP = " (which "egrep"))) + (("CPIO *=.*cpio") + (string-append "CPIO = " (which "cpio"))) + (("READELF *=.*readelf") + (string-append "READELF = " (which "readelf"))) + (("^ *AR *=.*ar") + (string-append "AR = " (which "ar"))) + (("^ *TAR *=.*tar") + (string-append "TAR = " (which "tar"))) + (("AS *=.*as") + (string-append "AS = " (which "as"))) + (("LD *=.*ld") + (string-append "LD = " (which "ld"))) + (("STRIP *=.*strip") + (string-append "STRIP = " (which "strip"))) + (("NM *=.*nm") + (string-append "NM = " (which "nm"))) + (("^SH *=.*sh") + (string-append "SH = " (which "bash"))) + (("^FIND *=.*find") + (string-append "FIND = " (which "find"))) + (("LDD *=.*ldd") + (string-append "LDD = " (which "ldd"))) + (("NAWK *=.*(n|g)awk") + (string-append "NAWK = " (which "gawk"))) + (("XARGS *=.*xargs") + (string-append "XARGS = " (which "xargs"))) + (("UNZIP *=.*unzip") + (string-append "UNZIP = " (which "unzip"))) + (("ZIPEXE *=.*zip") + (string-append "ZIPEXE = " (which "zip"))) + (("SED *=.*sed") + (string-append "SED = " (which "sed")))) + + ;; Some of these timestamps cause problems as they are more than + ;; 10 years ago, failing the build process. + (substitute* + "openjdk/jdk/src/share/classes/java/util/CurrencyData.properties" + (("AZ=AZM;2005-12-31-20-00-00;AZN") "AZ=AZN") + (("MZ=MZM;2006-06-30-22-00-00;MZN") "MZ=MZN") + (("RO=ROL;2005-06-30-21-00-00;RON") "RO=RON") + (("TR=TRL;2004-12-31-22-00-00;TRY") "TR=TRY")) + #t))) + (add-before 'configure 'set-additional-paths + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CPATH" + (string-append (assoc-ref inputs "libxrender") + "/include/X11/extensions" ":" + (assoc-ref inputs "libxtst") + "/include/X11/extensions" ":" + (assoc-ref inputs "libxinerama") + "/include/X11/extensions" ":" + (or (getenv "CPATH") ""))) + (setenv "ALT_CUPS_HEADERS_PATH" + (string-append (assoc-ref inputs "cups") + "/include")) + (setenv "ALT_FREETYPE_HEADERS_PATH" + (string-append (assoc-ref inputs "freetype") + "/include")) + (setenv "ALT_FREETYPE_LIB_PATH" + (string-append (assoc-ref inputs "freetype") + "/lib")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "doc") + "/share/doc/icedtea")) + (jre (assoc-ref outputs "out")) + (jdk (assoc-ref outputs "jdk"))) + (copy-recursively "openjdk.build/docs" doc) + (copy-recursively "openjdk.build/j2re-image" jre) + (copy-recursively "openjdk.build/j2sdk-image" jdk)) + #t))))) + (native-inputs + `(("ant" ,ant-bootstrap) + ("alsa-lib" ,alsa-lib) + ("attr" ,attr) + ("classpath" ,classpath-devel) + ("coreutils" ,coreutils) + ("cpio" ,cpio) + ("cups" ,cups) + ("ecj" ,ecj-bootstrap) + ("ecj-javac" ,ecj-javac-on-jamvm-wrapper-final) + ("fastjar" ,fastjar) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("gtk" ,gtk+-2) + ("gawk" ,gawk) + ("giflib" ,giflib) + ("grep" ,grep) + ("jamvm" ,jamvm) + ("lcms" ,lcms) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libtool" ,libtool) + ("libx11" ,libx11) + ("libxcomposite" ,libxcomposite) + ("libxi" ,libxi) + ("libxinerama" ,libxinerama) + ("libxrender" ,libxrender) + ("libxslt" ,libxslt) ;for xsltproc + ("libxt" ,libxt) + ("libxtst" ,libxtst) + ("mit-krb5" ,mit-krb5) + ("nss" ,nss) + ("nss-certs" ,nss-certs) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("procps" ,procps) ;for "free", even though I'm not sure we should use it + ("unzip" ,unzip) + ("wget" ,wget) + ("which" ,which) + ("zip" ,zip) + ("zlib" ,zlib) + ("openjdk-src" + ,(origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.openjdk.java.net/jdk6/jdk6/") + (changeset "jdk6-b41"))) + (sha256 + (base32 + "14q47yfg586fs64w30g8mk92m5dkxsvr36zzh0ra99xk5x0x96mv")))) + ("jdk-src" + ,(origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.openjdk.java.net/jdk6/jdk6/jdk/") + (changeset "jdk6-b41"))) + (sha256 + (base32 + "165824nhg1k1dx6zs9dny0j49rmk35jw5b13dmz8c77jfajml4v9")))) + ("hotspot-src" + ,(origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.openjdk.java.net/jdk6/jdk6/hotspot/") + (changeset "jdk6-b41"))) + (sha256 + (base32 + "07lc1z4k5dj9nrc1wvwmpvxr3xgxrdkdh53xb95skk5ij49yagfd")))) + ("corba-src" + ,(origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.openjdk.java.net/jdk6/jdk6/corba/") + (changeset "jdk6-b41"))) + (sha256 + (base32 + "1p9g1r9dnax2iwp7yb59qx7m4nmshqhwmrb2b8jj8zgbd9dl2i3q")))) + ("langtools-src" + ,(origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.openjdk.java.net/jdk6/jdk6/langtools/") + (changeset "jdk6-b41"))) + (sha256 + (base32 + "1x52wd67fynbbd9ild6fb4wvba3f5hhwk03qdjfazd0a1qr37z3d")))) + ("jaxp-src" + ,(origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.openjdk.java.net/jdk6/jdk6/jaxp/") + (changeset "jdk6-b41"))) + (sha256 + (base32 + "0shlqrvzpr4nrkmv215lbxnby63s3yvbdh1yxcayznsyqwa4nlxm")))) + ("jaxws-src" + ,(origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.openjdk.java.net/jdk6/jdk6/jaxws/") + (changeset "jdk6-b41"))) + (sha256 + (base32 + "0835lkw8vib1xhp8lxnybhlvzdh699hbi4mclxanydjk63zbpxk0")))))) + (home-page "http://icedtea.classpath.org") + (synopsis "Java development kit") + (description + "This package provides the OpenJDK built with the IcedTea build harness. +This version of the OpenJDK is no longer maintained and is only used for +bootstrapping purposes.") + ;; IcedTea is released under the GPL2 + Classpath exception, which is the + ;; same license as both GNU Classpath and OpenJDK. + (license license:gpl2+))) + (define-public icedtea-7 (let* ((version "2.6.10") (drop (lambda (name hash) -- cgit v1.2.3 From e2098e2d580e30b6f39e4cd6f4c7199e1224c9b3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 15 May 2017 19:44:12 +0200 Subject: gnu: icedtea-7: Use icedtea-6 for bootstrapping. * gnu/packages/java.scm (icedtea-7)[source]: Remove Makefile.in patch to link with GCJ libs. [arguments]: Remove (ice-9 rdelim) module; adjust configure flags; do not add GCJ headers to CPATH in build phase "set-additional-paths". [native-inputs]: Remove gcj and ant; add icedtea-6 and ant-bootstrap. Remove autoconf and automake. (icedtea-8)[native-inputs]: Delete "icedtea" from the inherited inputs, not "gcj". --- gnu/packages/java.scm | 100 ++++++++++++++++++++------------------------------ 1 file changed, 40 insertions(+), 60 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 2f81db1eab..ee3336ad9f 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1344,9 +1344,6 @@ (define-public icedtea-7 (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" - ;; link against libgcj to avoid linker error - (("-o native-ecj") - "-lgcj -o native-ecj") ;; do not leak information about the build host (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") "DISTRIBUTION_ID=\"\\\"guix\\\"\""))))) @@ -1376,29 +1373,21 @@ (define-public icedtea-7 (guix build gnu-build-system) (ice-9 match) (ice-9 popen) - (ice-9 rdelim) (srfi srfi-19) (srfi srfi-26)) #:configure-flags - (let* ((gcjdir (assoc-ref %build-inputs "gcj")) - (ecj (string-append gcjdir "/share/java/ecj.jar")) - (jdk (string-append gcjdir "/lib/jvm/")) - (gcj (string-append gcjdir "/bin/gcj"))) - ;; TODO: package pcsc and sctp, and add to inputs - `("--disable-system-pcsc" - "--disable-system-sctp" - "--enable-bootstrap" - "--enable-nss" - "--without-rhino" - "--disable-downloading" - "--disable-tests" ;they are run in the check phase instead - "--with-openjdk-src-dir=./openjdk.src" - ,(string-append "--with-javac=" jdk "/bin/javac") - ,(string-append "--with-ecj-jar=" ecj) - ,(string-append "--with-gcj=" gcj) - ,(string-append "--with-jdk-home=" jdk) - ,(string-append "--with-java=" jdk "/bin/java"))) + ;; TODO: package pcsc and sctp, and add to inputs + `("--disable-system-pcsc" + "--disable-system-sctp" + "--enable-bootstrap" + "--enable-nss" + "--without-rhino" + "--disable-downloading" + "--disable-tests" ;they are run in the check phase instead + "--with-openjdk-src-dir=./openjdk.src" + ,(string-append "--with-jdk-home=" + (assoc-ref %build-inputs "jdk"))) #:phases (modify-phases %standard-phases @@ -1527,39 +1516,32 @@ (define-public icedtea-7 #t)) (add-before 'configure 'set-additional-paths (lambda* (#:key inputs #:allow-other-keys) - (let ( ;; Get target-specific include directory so that - ;; libgcj-config.h is found when compiling hotspot. - (gcjinclude (let* ((port (open-input-pipe "gcj -print-file-name=include")) - (str (read-line port))) - (close-pipe port) - str))) - (substitute* "openjdk.src/jdk/make/common/shared/Sanity.gmk" - (("ALSA_INCLUDE=/usr/include/alsa/version.h") - (string-append "ALSA_INCLUDE=" - (assoc-ref inputs "alsa-lib") - "/include/alsa/version.h"))) - (setenv "CC" "gcc") - (setenv "CPATH" - (string-append gcjinclude ":" - (assoc-ref inputs "libxcomposite") - "/include/X11/extensions" ":" - (assoc-ref inputs "libxrender") - "/include/X11/extensions" ":" - (assoc-ref inputs "libxtst") - "/include/X11/extensions" ":" - (assoc-ref inputs "libxinerama") - "/include/X11/extensions" ":" - (or (getenv "CPATH") ""))) - (setenv "ALT_OBJCOPY" (which "objcopy")) - (setenv "ALT_CUPS_HEADERS_PATH" - (string-append (assoc-ref inputs "cups") - "/include")) - (setenv "ALT_FREETYPE_HEADERS_PATH" - (string-append (assoc-ref inputs "freetype") - "/include")) - (setenv "ALT_FREETYPE_LIB_PATH" - (string-append (assoc-ref inputs "freetype") - "/lib"))) + (substitute* "openjdk.src/jdk/make/common/shared/Sanity.gmk" + (("ALSA_INCLUDE=/usr/include/alsa/version.h") + (string-append "ALSA_INCLUDE=" + (assoc-ref inputs "alsa-lib") + "/include/alsa/version.h"))) + (setenv "CC" "gcc") + (setenv "CPATH" + (string-append (assoc-ref inputs "libxcomposite") + "/include/X11/extensions" ":" + (assoc-ref inputs "libxrender") + "/include/X11/extensions" ":" + (assoc-ref inputs "libxtst") + "/include/X11/extensions" ":" + (assoc-ref inputs "libxinerama") + "/include/X11/extensions" ":" + (or (getenv "CPATH") ""))) + (setenv "ALT_OBJCOPY" (which "objcopy")) + (setenv "ALT_CUPS_HEADERS_PATH" + (string-append (assoc-ref inputs "cups") + "/include")) + (setenv "ALT_FREETYPE_HEADERS_PATH" + (string-append (assoc-ref inputs "freetype") + "/include")) + (setenv "ALT_FREETYPE_LIB_PATH" + (string-append (assoc-ref inputs "freetype") + "/lib")) #t)) (add-before 'check 'fix-test-framework (lambda _ @@ -1770,10 +1752,8 @@ (define (import-cert cert) ("hotspot-drop" ,(drop "hotspot" "0q6mdgbbd3681y3n0z1v783irdjhhi73z6sn5csczpyhjm318axb")) - ("ant" ,ant) + ("ant" ,ant-bootstrap) ("attr" ,attr) - ("autoconf" ,autoconf) - ("automake" ,automake) ("coreutils" ,coreutils) ("diffutils" ,diffutils) ;for tests ("gawk" ,gawk) @@ -1790,7 +1770,7 @@ (define (import-cert cert) ("nss-certs" ,nss-certs) ("perl" ,perl) ("procps" ,procps) ;for "free", even though I'm not sure we should use it - ("gcj" ,gcj))) + ("jdk" ,icedtea-6 "jdk"))) (inputs `(("alsa-lib" ,alsa-lib) ("cups" ,cups) @@ -1939,7 +1919,7 @@ (define-public icedtea-8 ,(drop "shenandoah" "0fpxl8zlii1hpm777r875ys2cr5ih3gb6p1nm9jfa6krjrccrxv1")) ,@(fold alist-delete (package-native-inputs icedtea-7) - '("gcj" "openjdk-src" "corba-drop" "jaxp-drop" "jaxws-drop" + '("jdk" "openjdk-src" "corba-drop" "jaxp-drop" "jaxws-drop" "jdk-drop" "langtools-drop" "hotspot-drop"))))))) (define-public icedtea icedtea-7) -- cgit v1.2.3 From 5490480c42f3d94246889ee8c9b08604cb7f5f1b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 21:21:19 +0200 Subject: gnu: java-swt: Move below the bootstrap packages. * gnu/packages/java.scm (java-swt): Move the package. --- gnu/packages/java.scm | 173 +++++++++++++++++++++++++------------------------- 1 file changed, 87 insertions(+), 86 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ee3336ad9f..ddda98c70e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -701,92 +701,6 @@ (define ecj-javac-on-jamvm-wrapper-final ("jamvm" ,jamvm) ("classpath" ,classpath-devel))))) -(define-public java-swt - (package - (name "java-swt") - (version "4.6") - (source - ;; The types of many variables and procedures differ in the sources - ;; dependent on whether the target architecture is a 32-bit system or a - ;; 64-bit system. Instead of patching the sources on demand in a build - ;; phase we download either the 32-bit archive (which mostly uses "int" - ;; types) or the 64-bit archive (which mostly uses "long" types). - (let ((hash32 "0jmx1h65wqxsyjzs64i2z6ryiynllxzm13cq90fky2qrzagcw1ir") - (hash64 "0wnd01xssdq9pgx5xqh5lfiy3dmk60dzzqdxzdzf883h13692lgy") - (file32 "x86") - (file64 "x86_64")) - (let-values (((hash file) - (match (or (%current-target-system) (%current-system)) - ("x86_64-linux" (values hash64 file64)) - (_ (values hash32 file32))))) - (origin - (method url-fetch) - (uri (string-append - "http://ftp-stud.fht-esslingen.de/pub/Mirrors/" - "eclipse/eclipse/downloads/drops4/R-" version - "-201606061100/swt-" version "-gtk-linux-" file ".zip")) - (sha256 (base32 hash)))))) - (build-system ant-build-system) - (arguments - `(#:jar-name "swt.jar" - #:tests? #f ; no "check" target - #:phases - (modify-phases %standard-phases - (replace 'unpack - (lambda* (#:key source #:allow-other-keys) - (and (mkdir "swt") - (zero? (system* "unzip" source "-d" "swt")) - (chdir "swt") - (mkdir "src") - (zero? (system* "unzip" "src.zip" "-d" "src"))))) - ;; The classpath contains invalid icecat jars. Since we don't need - ;; anything other than the JDK on the classpath, we can simply unset - ;; it. - (add-after 'configure 'unset-classpath - (lambda _ (unsetenv "CLASSPATH") #t)) - (add-before 'build 'build-native - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) - ;; Build shared libraries. Users of SWT have to set the system - ;; property swt.library.path to the "lib" directory of this - ;; package output. - (mkdir-p lib) - (setenv "OUTPUT_DIR" lib) - (with-directory-excursion "src" - (zero? (system* "bash" "build.sh")))))) - (add-after 'install 'install-native - (lambda* (#:key outputs #:allow-other-keys) - (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) - (for-each (lambda (file) - (install-file file lib)) - (find-files "." "\\.so$")) - #t)))))) - (inputs - `(("xulrunner" ,icecat) - ("gtk" ,gtk+-2) - ("libxtst" ,libxtst) - ("libxt" ,libxt) - ("mesa" ,mesa) - ("glu" ,glu))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("unzip" ,unzip))) - (home-page "https://www.eclipse.org/swt/") - (synopsis "Widget toolkit for Java") - (description - "SWT is a widget toolkit for Java designed to provide efficient, portable -access to the user-interface facilities of the operating systems on which it -is implemented.") - ;; SWT code is licensed under EPL1.0 - ;; Gnome and Gtk+ bindings contain code licensed under LGPLv2.1 - ;; Cairo bindings contain code under MPL1.1 - ;; XULRunner 1.9 bindings contain code under MPL2.0 - (license (list - license:epl1.0 - license:mpl1.1 - license:mpl2.0 - license:lgpl2.1+)))) - (define-public clojure (let* ((remove-archives '(begin (for-each delete-file @@ -1924,6 +1838,93 @@ (define-public icedtea-8 (define-public icedtea icedtea-7) + +(define-public java-swt + (package + (name "java-swt") + (version "4.6") + (source + ;; The types of many variables and procedures differ in the sources + ;; dependent on whether the target architecture is a 32-bit system or a + ;; 64-bit system. Instead of patching the sources on demand in a build + ;; phase we download either the 32-bit archive (which mostly uses "int" + ;; types) or the 64-bit archive (which mostly uses "long" types). + (let ((hash32 "0jmx1h65wqxsyjzs64i2z6ryiynllxzm13cq90fky2qrzagcw1ir") + (hash64 "0wnd01xssdq9pgx5xqh5lfiy3dmk60dzzqdxzdzf883h13692lgy") + (file32 "x86") + (file64 "x86_64")) + (let-values (((hash file) + (match (or (%current-target-system) (%current-system)) + ("x86_64-linux" (values hash64 file64)) + (_ (values hash32 file32))))) + (origin + (method url-fetch) + (uri (string-append + "http://ftp-stud.fht-esslingen.de/pub/Mirrors/" + "eclipse/eclipse/downloads/drops4/R-" version + "-201606061100/swt-" version "-gtk-linux-" file ".zip")) + (sha256 (base32 hash)))))) + (build-system ant-build-system) + (arguments + `(#:jar-name "swt.jar" + #:tests? #f ; no "check" target + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (and (mkdir "swt") + (zero? (system* "unzip" source "-d" "swt")) + (chdir "swt") + (mkdir "src") + (zero? (system* "unzip" "src.zip" "-d" "src"))))) + ;; The classpath contains invalid icecat jars. Since we don't need + ;; anything other than the JDK on the classpath, we can simply unset + ;; it. + (add-after 'configure 'unset-classpath + (lambda _ (unsetenv "CLASSPATH") #t)) + (add-before 'build 'build-native + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) + ;; Build shared libraries. Users of SWT have to set the system + ;; property swt.library.path to the "lib" directory of this + ;; package output. + (mkdir-p lib) + (setenv "OUTPUT_DIR" lib) + (with-directory-excursion "src" + (zero? (system* "bash" "build.sh")))))) + (add-after 'install 'install-native + (lambda* (#:key outputs #:allow-other-keys) + (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) + (for-each (lambda (file) + (install-file file lib)) + (find-files "." "\\.so$")) + #t)))))) + (inputs + `(("xulrunner" ,icecat) + ("gtk" ,gtk+-2) + ("libxtst" ,libxtst) + ("libxt" ,libxt) + ("mesa" ,mesa) + ("glu" ,glu))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("unzip" ,unzip))) + (home-page "https://www.eclipse.org/swt/") + (synopsis "Widget toolkit for Java") + (description + "SWT is a widget toolkit for Java designed to provide efficient, portable +access to the user-interface facilities of the operating systems on which it +is implemented.") + ;; SWT code is licensed under EPL1.0 + ;; Gnome and Gtk+ bindings contain code licensed under LGPLv2.1 + ;; Cairo bindings contain code under MPL1.1 + ;; XULRunner 1.9 bindings contain code under MPL2.0 + (license (list + license:epl1.0 + license:mpl1.1 + license:mpl2.0 + license:lgpl2.1+)))) + (define-public java-xz (package (name "java-xz") -- cgit v1.2.3 From fc6e27271dbae902cea388bccadf13fa4bdb0b2c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 16 May 2017 21:23:38 +0200 Subject: gnu: clojure: Move below bootstrap packages. * gnu/packages/java.scm (clojure): Move package. --- gnu/packages/java.scm | 282 +++++++++++++++++++++++++------------------------- 1 file changed, 141 insertions(+), 141 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ddda98c70e..0e3ce9cbf9 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -701,147 +701,6 @@ (define ecj-javac-on-jamvm-wrapper-final ("jamvm" ,jamvm) ("classpath" ,classpath-devel))))) -(define-public clojure - (let* ((remove-archives '(begin - (for-each delete-file - (find-files "." ".*\\.(jar|zip)")) - #t)) - (submodule (lambda (prefix version hash) - (origin - (method url-fetch) - (uri (string-append "https://github.com/clojure/" - prefix version ".tar.gz")) - (sha256 (base32 hash)) - (modules '((guix build utils))) - (snippet remove-archives))))) - (package - (name "clojure") - (version "1.8.0") - (source - (origin - (method url-fetch) - (uri - (string-append "http://repo1.maven.org/maven2/org/clojure/clojure/" - version "/clojure-" version ".zip")) - (sha256 - (base32 "1nip095fz5c492sw15skril60i1vd21ibg6szin4jcvyy3xr6cym")) - (modules '((guix build utils))) - (snippet remove-archives))) - (build-system ant-build-system) - (arguments - `(#:modules ((guix build ant-build-system) - (guix build utils) - (ice-9 ftw) - (ice-9 regex) - (srfi srfi-1) - (srfi srfi-26)) - #:test-target "test" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-submodule-sources - (lambda* (#:key inputs #:allow-other-keys) - (for-each - (lambda (name) - (mkdir-p name) - (with-directory-excursion name - (or (zero? (system* "tar" - ;; Use xz for repacked tarball. - "--xz" - "--extract" - "--verbose" - "--file" (assoc-ref inputs name) - "--strip-components=1")) - (error "failed to unpack tarball" name))) - (copy-recursively (string-append name "/src/main/clojure/") - "src/clj/")) - '("data-generators-src" - "java-classpath-src" - "test-check-src" - "test-generative-src" - "tools-namespace-src" - "tools-reader-src")) - #t)) - ;; The javadoc target is not built by default. - (add-after 'build 'build-doc - (lambda _ - (zero? (system* "ant" "javadoc")))) - ;; Needed since no install target is provided. - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((java-dir (string-append (assoc-ref outputs "out") - "/share/java/"))) - ;; Install versioned to avoid collisions. - (install-file (string-append "clojure-" ,version ".jar") - java-dir) - #t))) - ;; Needed since no install-doc target is provided. - (add-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let ((doc-dir (string-append (assoc-ref outputs "out") - "/share/doc/clojure-" - ,version "/"))) - (copy-recursively "doc/clojure" doc-dir) - (copy-recursively "target/javadoc/" - (string-append doc-dir "javadoc/")) - (for-each (cut install-file <> doc-dir) - (filter (cut string-match - ".*\\.(html|markdown|md|txt)" - <>) - (scandir "./"))) - #t)))))) - ;; The native-inputs below are needed to run the tests. - (native-inputs - `(("data-generators-src" - ,(submodule "data.generators/archive/data.generators-" - "0.1.2" - "0kki093jp4ckwxzfnw8ylflrfqs8b1i1wi9iapmwcsy328dmgzp1")) - ("java-classpath-src" - ,(submodule "java.classpath/archive/java.classpath-" - "0.2.3" - "0sjymly9xh1lkvwn5ygygpsfwz4dabblnlq0c9bx76rkvq62fyng")) - ("test-check-src" - ,(submodule "test.check/archive/test.check-" - "0.9.0" - "0p0mnyhr442bzkz0s4k5ra3i6l5lc7kp6ajaqkkyh4c2k5yck1md")) - ("test-generative-src" - ,(submodule "test.generative/archive/test.generative-" - "0.5.2" - "1pjafy1i7yblc7ixmcpfq1lfbyf3jaljvkgrajn70sws9xs7a9f8")) - ("tools-namespace-src" - ,(submodule "tools.namespace/archive/tools.namespace-" - "0.2.11" - "10baak8v0hnwz2hr33bavshm7y49mmn9zsyyms1dwjz45p5ymhy0")) - ("tools-reader-src" - ,(submodule "tools.reader/archive/tools.reader-" - "0.10.0" - "09i3lzbhr608h76mhdjm3932gg9xi8sflscla3c5f0v1nkc28cnr")))) - (home-page "https://clojure.org/") - (synopsis "Lisp dialect running on the JVM") - (description "Clojure is a dynamic, general-purpose programming language, -combining the approachability and interactive development of a scripting -language with an efficient and robust infrastructure for multithreaded -programming. Clojure is a compiled language, yet remains completely dynamic -– every feature supported by Clojure is supported at runtime. Clojure -provides easy access to the Java frameworks, with optional type hints and type -inference, to ensure that calls to Java can avoid reflection. - -Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy -and a powerful macro system. Clojure is predominantly a functional programming -language, and features a rich set of immutable, persistent data structures. -When mutable state is needed, Clojure offers a software transactional memory -system and reactive Agent system that ensure clean, correct, multithreaded -designs.") - ;; Clojure is licensed under EPL1.0 - ;; ASM bytecode manipulation library is licensed under BSD-3 - ;; Guava Murmur3 hash implementation is licensed under APL2.0 - ;; src/clj/repl.clj is licensed under CPL1.0 - ;; - ;; See readme.html or readme.txt for details. - (license (list license:epl1.0 - license:bsd-3 - license:asl2.0 - license:cpl1.0))))) - (define-public ant (package (name "ant") @@ -1839,6 +1698,147 @@ (define-public icedtea-8 (define-public icedtea icedtea-7) +(define-public clojure + (let* ((remove-archives '(begin + (for-each delete-file + (find-files "." ".*\\.(jar|zip)")) + #t)) + (submodule (lambda (prefix version hash) + (origin + (method url-fetch) + (uri (string-append "https://github.com/clojure/" + prefix version ".tar.gz")) + (sha256 (base32 hash)) + (modules '((guix build utils))) + (snippet remove-archives))))) + (package + (name "clojure") + (version "1.8.0") + (source + (origin + (method url-fetch) + (uri + (string-append "http://repo1.maven.org/maven2/org/clojure/clojure/" + version "/clojure-" version ".zip")) + (sha256 + (base32 "1nip095fz5c492sw15skril60i1vd21ibg6szin4jcvyy3xr6cym")) + (modules '((guix build utils))) + (snippet remove-archives))) + (build-system ant-build-system) + (arguments + `(#:modules ((guix build ant-build-system) + (guix build utils) + (ice-9 ftw) + (ice-9 regex) + (srfi srfi-1) + (srfi srfi-26)) + #:test-target "test" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (for-each + (lambda (name) + (mkdir-p name) + (with-directory-excursion name + (or (zero? (system* "tar" + ;; Use xz for repacked tarball. + "--xz" + "--extract" + "--verbose" + "--file" (assoc-ref inputs name) + "--strip-components=1")) + (error "failed to unpack tarball" name))) + (copy-recursively (string-append name "/src/main/clojure/") + "src/clj/")) + '("data-generators-src" + "java-classpath-src" + "test-check-src" + "test-generative-src" + "tools-namespace-src" + "tools-reader-src")) + #t)) + ;; The javadoc target is not built by default. + (add-after 'build 'build-doc + (lambda _ + (zero? (system* "ant" "javadoc")))) + ;; Needed since no install target is provided. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((java-dir (string-append (assoc-ref outputs "out") + "/share/java/"))) + ;; Install versioned to avoid collisions. + (install-file (string-append "clojure-" ,version ".jar") + java-dir) + #t))) + ;; Needed since no install-doc target is provided. + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc-dir (string-append (assoc-ref outputs "out") + "/share/doc/clojure-" + ,version "/"))) + (copy-recursively "doc/clojure" doc-dir) + (copy-recursively "target/javadoc/" + (string-append doc-dir "javadoc/")) + (for-each (cut install-file <> doc-dir) + (filter (cut string-match + ".*\\.(html|markdown|md|txt)" + <>) + (scandir "./"))) + #t)))))) + ;; The native-inputs below are needed to run the tests. + (native-inputs + `(("data-generators-src" + ,(submodule "data.generators/archive/data.generators-" + "0.1.2" + "0kki093jp4ckwxzfnw8ylflrfqs8b1i1wi9iapmwcsy328dmgzp1")) + ("java-classpath-src" + ,(submodule "java.classpath/archive/java.classpath-" + "0.2.3" + "0sjymly9xh1lkvwn5ygygpsfwz4dabblnlq0c9bx76rkvq62fyng")) + ("test-check-src" + ,(submodule "test.check/archive/test.check-" + "0.9.0" + "0p0mnyhr442bzkz0s4k5ra3i6l5lc7kp6ajaqkkyh4c2k5yck1md")) + ("test-generative-src" + ,(submodule "test.generative/archive/test.generative-" + "0.5.2" + "1pjafy1i7yblc7ixmcpfq1lfbyf3jaljvkgrajn70sws9xs7a9f8")) + ("tools-namespace-src" + ,(submodule "tools.namespace/archive/tools.namespace-" + "0.2.11" + "10baak8v0hnwz2hr33bavshm7y49mmn9zsyyms1dwjz45p5ymhy0")) + ("tools-reader-src" + ,(submodule "tools.reader/archive/tools.reader-" + "0.10.0" + "09i3lzbhr608h76mhdjm3932gg9xi8sflscla3c5f0v1nkc28cnr")))) + (home-page "https://clojure.org/") + (synopsis "Lisp dialect running on the JVM") + (description "Clojure is a dynamic, general-purpose programming language, +combining the approachability and interactive development of a scripting +language with an efficient and robust infrastructure for multithreaded +programming. Clojure is a compiled language, yet remains completely dynamic +– every feature supported by Clojure is supported at runtime. Clojure +provides easy access to the Java frameworks, with optional type hints and type +inference, to ensure that calls to Java can avoid reflection. + +Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy +and a powerful macro system. Clojure is predominantly a functional programming +language, and features a rich set of immutable, persistent data structures. +When mutable state is needed, Clojure offers a software transactional memory +system and reactive Agent system that ensure clean, correct, multithreaded +designs.") + ;; Clojure is licensed under EPL1.0 + ;; ASM bytecode manipulation library is licensed under BSD-3 + ;; Guava Murmur3 hash implementation is licensed under APL2.0 + ;; src/clj/repl.clj is licensed under CPL1.0 + ;; + ;; See readme.html or readme.txt for details. + (license (list license:epl1.0 + license:bsd-3 + license:asl2.0 + license:cpl1.0))))) + (define-public java-swt (package (name "java-swt") -- cgit v1.2.3 From fded0c69ddb71562ba83043e76eda39594af1ac1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 13 May 2017 07:34:17 +0200 Subject: gnu: ant: Inherit from ant-bootstrap. * gnu/packages/java.scm (ant)[build-system] [home-page][synopsis][description][license]: Remove fields. [arguments]: Adapt arguments of ant-bootstrap package. --- gnu/packages/java.scm | 64 +++++++++++++++++++++------------------------------ 1 file changed, 26 insertions(+), 38 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 0e3ce9cbf9..0e70514d33 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -702,7 +702,7 @@ (define ecj-javac-on-jamvm-wrapper-final ("classpath" ,classpath-devel))))) (define-public ant - (package + (package (inherit ant-bootstrap) (name "ant") ;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x ;; series requires Java 8. @@ -714,45 +714,33 @@ (define-public ant (sha256 (base32 "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")))) - (build-system gnu-build-system) (arguments - `(#:tests? #f ; no "check" target - #:phases - (alist-cons-after - 'unpack 'remove-scripts - ;; Remove bat / cmd scripts for DOS as well as the antRun and runant - ;; wrappers. - (lambda _ - (for-each delete-file - (find-files "src/script" - "(.*\\.(bat|cmd)|runant.*|antRun.*)"))) - (alist-replace - 'build - (lambda _ - (setenv "JAVA_HOME" (string-append (assoc-ref %build-inputs "gcj") - "/lib/jvm")) - ;; Disable tests to avoid dependency on hamcrest-core, which needs - ;; Ant to build. This is necessary in addition to disabling the - ;; "check" phase, because the dependency on "test-jar" would always - ;; result in the tests to be run. - (substitute* "build.xml" - (("depends=\"jars,test-jar\"") "depends=\"jars\"")) - (zero? (system* "bash" "bootstrap.sh" - (string-append "-Ddist.dir=" - (assoc-ref %outputs "out"))))) - (alist-delete - 'configure - (alist-delete 'install %standard-phases)))))) + (substitute-keyword-arguments (package-arguments ant-bootstrap) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'remove-scripts + ;; Remove bat / cmd scripts for DOS as well as the antRun and runant + ;; wrappers. + (lambda _ + (for-each delete-file + (find-files "src/script" + "(.*\\.(bat|cmd)|runant.*|antRun.*)")) + #t)) + (replace 'build + (lambda _ + (setenv "JAVA_HOME" (string-append (assoc-ref %build-inputs "gcj") + "/lib/jvm")) + ;; Disable tests to avoid dependency on hamcrest-core, which needs + ;; Ant to build. This is necessary in addition to disabling the + ;; "check" phase, because the dependency on "test-jar" would always + ;; result in the tests to be run. + (substitute* "build.xml" + (("depends=\"jars,test-jar\"") "depends=\"jars\"")) + (zero? (system* "bash" "bootstrap.sh" + (string-append "-Ddist.dir=" + (assoc-ref %outputs "out")))))))))) (native-inputs - `(("gcj" ,gcj))) - (home-page "http://ant.apache.org") - (synopsis "Build tool for Java") - (description - "Ant is a platform-independent build tool for Java. It is similar to -make but is implemented using the Java language, requires the Java platform, -and is best suited to building Java projects. Ant uses XML to describe the -build process and its dependencies, whereas Make uses Makefile format.") - (license license:asl2.0))) + `(("gcj" ,gcj))))) ;; The bootstrap JDK consisting of jamvm, classpath-devel, ;; ecj-javac-on-jamvm-wrapper-final cannot build Icedtea 2.x directly, because -- cgit v1.2.3 From e7a5d73ea9fb0eee5c7e116674e347849711f863 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 14 May 2017 00:07:33 +0200 Subject: gnu: ant: Delete bundled jars. * gnu/packages/java.scm (ant)[source]: Delete bundled jars in a snippet. --- gnu/packages/java.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 0e70514d33..238841aa9d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -713,7 +713,13 @@ (define-public ant version "-src.tar.gz")) (sha256 (base32 - "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")))) + "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file + (find-files "lib/optional" "\\.jar$")) + #t)))) (arguments (substitute-keyword-arguments (package-arguments ant-bootstrap) ((#:phases phases) -- cgit v1.2.3 From 5c7952fbf4b56684412b4c5e0751e4076e4f23da Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 18 May 2017 23:36:05 +0200 Subject: gnu: ant: Move after bootstrap packages. * gnu/packages/java.scm (ant): Move package. --- gnu/packages/java.scm | 94 +++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 238841aa9d..abb2f62add 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -701,53 +701,6 @@ (define ecj-javac-on-jamvm-wrapper-final ("jamvm" ,jamvm) ("classpath" ,classpath-devel))))) -(define-public ant - (package (inherit ant-bootstrap) - (name "ant") - ;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x - ;; series requires Java 8. - (version "1.9.9") - (source (origin - (method url-fetch) - (uri (string-append "mirror://apache/ant/source/apache-ant-" - version "-src.tar.gz")) - (sha256 - (base32 - "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")) - (modules '((guix build utils))) - (snippet - '(begin - (for-each delete-file - (find-files "lib/optional" "\\.jar$")) - #t)))) - (arguments - (substitute-keyword-arguments (package-arguments ant-bootstrap) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'remove-scripts - ;; Remove bat / cmd scripts for DOS as well as the antRun and runant - ;; wrappers. - (lambda _ - (for-each delete-file - (find-files "src/script" - "(.*\\.(bat|cmd)|runant.*|antRun.*)")) - #t)) - (replace 'build - (lambda _ - (setenv "JAVA_HOME" (string-append (assoc-ref %build-inputs "gcj") - "/lib/jvm")) - ;; Disable tests to avoid dependency on hamcrest-core, which needs - ;; Ant to build. This is necessary in addition to disabling the - ;; "check" phase, because the dependency on "test-jar" would always - ;; result in the tests to be run. - (substitute* "build.xml" - (("depends=\"jars,test-jar\"") "depends=\"jars\"")) - (zero? (system* "bash" "bootstrap.sh" - (string-append "-Ddist.dir=" - (assoc-ref %outputs "out")))))))))) - (native-inputs - `(("gcj" ,gcj))))) - ;; The bootstrap JDK consisting of jamvm, classpath-devel, ;; ecj-javac-on-jamvm-wrapper-final cannot build Icedtea 2.x directly, because ;; it's written in Java 7. It can, however, build the unmaintained Icedtea @@ -1692,6 +1645,53 @@ (define-public icedtea-8 (define-public icedtea icedtea-7) +(define-public ant + (package (inherit ant-bootstrap) + (name "ant") + ;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x + ;; series requires Java 8. + (version "1.9.9") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/ant/source/apache-ant-" + version "-src.tar.gz")) + (sha256 + (base32 + "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file + (find-files "lib/optional" "\\.jar$")) + #t)))) + (arguments + (substitute-keyword-arguments (package-arguments ant-bootstrap) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'remove-scripts + ;; Remove bat / cmd scripts for DOS as well as the antRun and runant + ;; wrappers. + (lambda _ + (for-each delete-file + (find-files "src/script" + "(.*\\.(bat|cmd)|runant.*|antRun.*)")) + #t)) + (replace 'build + (lambda _ + (setenv "JAVA_HOME" (string-append (assoc-ref %build-inputs "gcj") + "/lib/jvm")) + ;; Disable tests to avoid dependency on hamcrest-core, which needs + ;; Ant to build. This is necessary in addition to disabling the + ;; "check" phase, because the dependency on "test-jar" would always + ;; result in the tests to be run. + (substitute* "build.xml" + (("depends=\"jars,test-jar\"") "depends=\"jars\"")) + (zero? (system* "bash" "bootstrap.sh" + (string-append "-Ddist.dir=" + (assoc-ref %outputs "out")))))))))) + (native-inputs + `(("gcj" ,gcj))))) + (define-public clojure (let* ((remove-archives '(begin (for-each delete-file -- cgit v1.2.3 From 8bbd0408408c43af6d40cb4935878985321077c7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 18 May 2017 23:28:17 +0200 Subject: gnu: Add ant/java8. * gnu/packages/java.scm (ant/java8): New variable. --- gnu/packages/java.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index abb2f62add..19d8d67e52 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1692,6 +1692,51 @@ (define-public ant (native-inputs `(("gcj" ,gcj))))) +(define-public ant/java8 + (package (inherit ant-bootstrap) + (name "ant") + (version "1.10.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/ant/source/apache-ant-" + version "-src.tar.gz")) + (sha256 + (base32 + "10p3dh77lkzzzcy32dk9azljixzadp46fggjfbvgkl8mmb8cxxv8")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file + (find-files "lib/optional" "\\.jar$")) + #t)))) + (arguments + (substitute-keyword-arguments (package-arguments ant-bootstrap) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'remove-scripts + ;; Remove bat / cmd scripts for DOS as well as the antRun and runant + ;; wrappers. + (lambda _ + (for-each delete-file + (find-files "src/script" + "(.*\\.(bat|cmd)|runant.*|antRun.*)")) + #t)) + (replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "JAVA_HOME" (assoc-ref inputs "jdk")) + + ;; Disable tests to avoid dependency on hamcrest-core, which needs + ;; Ant to build. This is necessary in addition to disabling the + ;; "check" phase, because the dependency on "test-jar" would always + ;; result in the tests to be run. + (substitute* "build.xml" + (("depends=\"jars,test-jar\"") "depends=\"jars\"")) + (zero? (system* "bash" "bootstrap.sh" + (string-append "-Ddist.dir=" + (assoc-ref outputs "out")))))))))) + (native-inputs + `(("jdk" ,icedtea-8 "jdk"))))) + (define-public clojure (let* ((remove-archives '(begin (for-each delete-file -- cgit v1.2.3 From e441fc564bf3192b677289e4e16c6845c5c4f043 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 18 May 2017 22:28:07 +0200 Subject: gnu: ant: Implement in terms of ant/java8. * gnu/packages/java.scm (ant): Inherit from ant/java8. --- gnu/packages/java.scm | 62 +++++++++++++-------------------------------------- 1 file changed, 15 insertions(+), 47 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 19d8d67e52..b422a1effe 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1645,53 +1645,6 @@ (define-public icedtea-8 (define-public icedtea icedtea-7) -(define-public ant - (package (inherit ant-bootstrap) - (name "ant") - ;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x - ;; series requires Java 8. - (version "1.9.9") - (source (origin - (method url-fetch) - (uri (string-append "mirror://apache/ant/source/apache-ant-" - version "-src.tar.gz")) - (sha256 - (base32 - "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")) - (modules '((guix build utils))) - (snippet - '(begin - (for-each delete-file - (find-files "lib/optional" "\\.jar$")) - #t)))) - (arguments - (substitute-keyword-arguments (package-arguments ant-bootstrap) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'remove-scripts - ;; Remove bat / cmd scripts for DOS as well as the antRun and runant - ;; wrappers. - (lambda _ - (for-each delete-file - (find-files "src/script" - "(.*\\.(bat|cmd)|runant.*|antRun.*)")) - #t)) - (replace 'build - (lambda _ - (setenv "JAVA_HOME" (string-append (assoc-ref %build-inputs "gcj") - "/lib/jvm")) - ;; Disable tests to avoid dependency on hamcrest-core, which needs - ;; Ant to build. This is necessary in addition to disabling the - ;; "check" phase, because the dependency on "test-jar" would always - ;; result in the tests to be run. - (substitute* "build.xml" - (("depends=\"jars,test-jar\"") "depends=\"jars\"")) - (zero? (system* "bash" "bootstrap.sh" - (string-append "-Ddist.dir=" - (assoc-ref %outputs "out")))))))))) - (native-inputs - `(("gcj" ,gcj))))) - (define-public ant/java8 (package (inherit ant-bootstrap) (name "ant") @@ -1737,6 +1690,21 @@ (define-public ant/java8 (native-inputs `(("jdk" ,icedtea-8 "jdk"))))) +;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x series +;; requires Java 8. +(define-public ant + (package (inherit ant/java8) + (version "1.9.9") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/ant/source/apache-ant-" + version "-src.tar.gz")) + (sha256 + (base32 + "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")))) + (native-inputs + `(("jdk" ,icedtea-7 "jdk"))))) + (define-public clojure (let* ((remove-archives '(begin (for-each delete-file -- cgit v1.2.3 From 9117448e7601b10b84106771bd0c6c1f60e645df Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 17 May 2017 13:26:13 +0200 Subject: gnu: Remove GCJ. * gnu/packages/patches/gcj-arm-mode.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Delete it. * gnu/packages/gcc.scm (javac.in, gcj, ecj-bootstrap): Remove variables. --- gnu/local.mk | 1 - gnu/packages/gcc.scm | 136 +------------------------------- gnu/packages/patches/gcj-arm-mode.patch | 36 --------- 3 files changed, 1 insertion(+), 172 deletions(-) delete mode 100644 gnu/packages/patches/gcj-arm-mode.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 3ca546913c..16b80fde9d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -607,7 +607,6 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-5-source-date-epoch-2.patch \ %D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ - %D%/packages/patches/gcj-arm-mode.patch \ %D%/packages/patches/gdk-pixbuf-list-dir.patch \ %D%/packages/patches/gd-fix-gd2-read-test.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 5d1a4ea754..866f8478ff 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus +;;; Copyright © 2014, 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2016 Carlos Sánchez de La Lama @@ -559,140 +559,6 @@ (define-public gccgo-4.9 ;; a cyclic dependency. #:separate-lib-output? #f)) -(define javac.in - (origin - (method url-fetch) - (uri (string-append "http://sources.gentoo.org/cgi-bin/viewvc.cgi/" - "gentoo-x86/dev-java/gcj-jdk/files/javac.in?revision=1.1")) - (file-name "javac.in") - (sha256 (base32 - "1c3dk4z5yfj6ic2fn3lyxs27n6pmn2wy9k0r1s17lnkf1bzkrciv")))) - -(define-public gcj - (package (inherit gcc) - (name "gcj") - (version (package-version gcc)) - (inputs - `(("fastjar" ,fastjar) - ("perl" ,perl) - ("javac.in" ,javac.in) - ("ecj-bootstrap" ,ecj-bootstrap) - ,@(package-inputs gcc))) - (native-inputs - `(("dejagnu" ,dejagnu) - ,@(if (string-prefix? "armhf" (or (%current-system) - (%current-target-system))) - `(("arm-patch" ,(origin - (method url-fetch) - (uri (search-patch "gcj-arm-mode.patch")) - (sha256 - (base32 - "1z15xs5yx6qinnb572swzxrn9f668sw7ga5280q3gznj1jyrynfn"))))) - '()) - ,@(package-native-inputs gcc))) - (native-search-paths %generic-search-paths) - - ;; Suppress the separate "lib" output, because otherwise the - ;; "lib" and "out" outputs would refer to each other, creating - ;; a cyclic dependency. - (outputs - (delete "lib" (package-outputs gcc))) - (arguments - (substitute-keyword-arguments `(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 regex) - (srfi srfi-1) - (srfi srfi-26)) - #:test-target "check-target-libjava" - ,@(package-arguments gcc)) - ((#:tests? _) #t) - ((#:configure-flags flags) - `(let ((ecj (assoc-ref %build-inputs "ecj-bootstrap"))) - `("--enable-java-home" - "--enable-gjdoc" - ,(string-append "--with-ecj-jar=" ecj) - "--enable-languages=java" - ,@(remove (cut string-match "--enable-languages.*" <>) - ,flags)))) - ((#:phases phases) - `(modify-phases ,phases - ;; Conditionally add phase to apply patch - ,@(if (string-prefix? "armhf" (or (%current-system) - (%current-target-system))) - `((add-after 'unpack 'apply-arm-patch - (lambda* (#:key inputs #:allow-other-keys) - (zero? (system* "patch" "-p1" - "-i" (assoc-ref inputs "arm-patch")))))) - '()) - (add-after - 'unpack 'add-lib-output-to-rpath - (lambda _ - (substitute* "libjava/Makefile.in" - (("libgcj_bc_dummy_LINK = .* -shared" line) - (string-append line " -Wl,-rpath=$(libdir)")) - (("libgcj(_bc)?_la_LDFLAGS =" ldflags _) - (string-append ldflags " -Wl,-rpath=$(libdir)"))))) - (add-after - 'unpack 'patch-testsuite - ;; dejagnu-1.6 removes the 'absolute' command - (lambda _ - ;; This test fails on armhf. It seems harmless enough to disable it. - (for-each delete-file '("libjava/testsuite/libjava.lang/Throw_2.java" - "libjava/testsuite/libjava.lang/Throw_2.out" - "libjava/testsuite/libjava.lang/Throw_2.jar")) - (substitute* "libjava/testsuite/lib/libjava.exp" - (("absolute") "file normalize")) - #t)) - (add-after - 'install 'install-javac-and-javap-wrappers - (lambda _ - (let* ((javac (assoc-ref %build-inputs "javac.in")) - (ecj (assoc-ref %build-inputs "ecj-bootstrap")) - (gcj (assoc-ref %outputs "out")) - (gcjbin (string-append gcj "/bin/")) - (jvm (string-append gcj "/lib/jvm/")) - (target (string-append jvm "/bin/javac"))) - - (symlink (string-append gcjbin "jcf-dump") - (string-append jvm "/bin/javap")) - - (copy-file ecj (string-append gcj "/share/java/ecj.jar")) - - ;; Create javac wrapper from the template javac.in by - ;; replacing the @VARIABLES@ with paths. - (copy-file javac target) - (patch-shebang target) - (substitute* target - (("@JAVA@") - (string-append jvm "/bin/java")) - (("@ECJ_JAR@") - (string-append gcj "/share/java/ecj.jar")) - (("@RT_JAR@") - (string-append jvm "/jre/lib/rt.jar")) - (("@TOOLS_JAR@") - (string-append jvm "/lib/tools.jar"))) - (chmod target #o755) - #t))) - (add-after - 'install 'remove-broken-or-conflicting-files - (lambda _ - (let ((out (assoc-ref %outputs "out"))) - (for-each - delete-file - (append (find-files (string-append out "/lib/jvm/jre/lib") - "libjawt.so") - (find-files (string-append out "/bin") - ".*(c\\+\\+|cpp|g\\+\\+|gcc.*)")))) - #t)))))))) - -(define ecj-bootstrap - (origin - (method url-fetch) - (uri "ftp://sourceware.org/pub/java/ecj-4.9.jar") - (sha256 - (base32 - "1k9lgm3qamf6zy534pa2zwskr8mpiqrngbv1vw9j4y1ghrdyf1lm")))) - (define-public gcc-objc-4.8 (custom-gcc gcc-4.8 "gcc-objc" '("objc") (list (search-path-specification diff --git a/gnu/packages/patches/gcj-arm-mode.patch b/gnu/packages/patches/gcj-arm-mode.patch deleted file mode 100644 index a3f999f7e9..0000000000 --- a/gnu/packages/patches/gcj-arm-mode.patch +++ /dev/null @@ -1,36 +0,0 @@ -Taken from -https://sources.debian.net/data/main/g/gcc-4.9/4.9.2-10/debian/patches/gcj-arm-mode.diff - -# DP: For armhf, force arm mode instead of thumb mode - ---- a/libjava/configure.host -+++ b/libjava/configure.host -@@ -66,6 +66,9 @@ - ;; - esac - -+# on armhf force arm mode -+libgcj_flags="${libgcj_flags} -marm" -+ - AM_RUNTESTFLAGS= - - # Set any host dependent compiler flags. ---- a/gcc/java/lang-specs.h -+++ b/gcc/java/lang-specs.h -@@ -47,7 +47,7 @@ - %{.class|.zip|.jar|!fsyntax-only:jc1 \ - %{.java|fsaw-java-file:%U.jar -fsource-filename=%i % Date: Mon, 22 May 2017 21:17:32 +0100 Subject: gnu: diamond: Update to 0.9.1. * gnu/packages/bioinformatics.scm (diamond): Update to 0.9.1. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 21bf2d409a..e4cc520868 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2093,7 +2093,7 @@ (define-public deeptools (define-public diamond (package (name "diamond") - (version "0.9.0") + (version "0.9.1") (source (origin (method url-fetch) (uri (string-append @@ -2102,7 +2102,7 @@ (define-public diamond (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "19lvz661mmgikbry0nvnsjc01fdxqbw9rl2868dvjfraxbcx9ras")))) + "062943yk3mp23jpcawamkh1zawx9br95l7w178v0kyr863v4p5a1")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no "check" target -- cgit v1.2.3 From 0dc4a498a33eac046f9448f852949da61d8ded4d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 May 2017 22:22:02 +0200 Subject: install: Add 'passwd' to installation image. * gnu/system/install.scm (installation-os): Add SHADOW in package list. --- gnu/system/install.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu') diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 9a6febfeba..0a78d030dd 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -341,6 +341,7 @@ (define installation-os (base-pam-services #:allow-empty-passwords? #t)) (packages (cons* (canonical-package glibc) ;for 'tzselect' & co. + shadow ;'passwd', for easy SSH access parted gptfdisk ddrescue grub ;mostly so xrefs to its manual work cryptsetup -- cgit v1.2.3 From e8cefe11034aa7883e30b3542c1b18484f17bfa6 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 26 Apr 2017 19:33:42 +0530 Subject: gnu: emacs-slime: Add arguments to work with new `install' phase. * gnu/packages/emacs.scm (emacs-slime)[arguments]: Add #:include and #:exclude arguments. --- gnu/packages/emacs.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4a0d20c9f1..9f5395b694 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2327,7 +2327,10 @@ (define-public emacs-slime (native-inputs `(("texinfo" ,texinfo))) (arguments - `(#:phases + `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib") + #:exclude '("^slime-tests.el" "^contrib/test/" + "^contrib/Makefile$" "^contrib/README.md$") + #:phases (modify-phases %standard-phases (add-before 'install 'configure (lambda* _ -- cgit v1.2.3 From b1d32ec0e23bfec1dab4c56909228a494b2b0d60 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 26 Apr 2017 19:34:59 +0530 Subject: gnu: emacs-auctex: Add arguments to work with new `install' phase. * gnu/packages/emacs.scm (emacs-auctex)[arguments]: Add #:include and #:exclude arguments. --- gnu/packages/emacs.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9f5395b694..a59a4ca698 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1191,7 +1191,10 @@ (define-public emacs-auctex (build-system emacs-build-system) ;; We use 'emacs' because AUCTeX requires dbus at compile time ;; ('emacs-minimal' does not provide dbus). - (arguments `(#:emacs ,emacs)) + (arguments + `(#:emacs ,emacs + #:include '("\\.el$" "^images/" "^latex/" "\\.info$") + #:exclude '("^tests/" "^latex/README"))) (native-inputs `(("perl" ,perl))) (home-page "https://www.gnu.org/software/auctex/") -- cgit v1.2.3 From a7a7186ce61d552ebbcb886f907a653cf67dc251 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 16 May 2017 17:55:29 +0200 Subject: gnu: Add MuseScore. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/music.scm (musescore): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/music.scm | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index d4a72df1d8..5c0be39c27 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Rodger Fox +;;; Copyright © 2017 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,6 +50,7 @@ (define-module (gnu packages music) #:use-module (gnu packages cdrom) #:use-module (gnu packages code) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) @@ -2990,3 +2992,91 @@ (define-public lmms melodies and beats and for mixing and arranging songs. LMMS includes instruments based on audio samples and various soft sythesizers. It can receive input from a MIDI keyboard.") (license license:gpl2+))) + +(define-public musescore + (package + (name "musescore") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/musescore/MuseScore/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0irwsq6ihfz3y3b943cwqy29g3si7gqbgxdscgw53vwv9vfvi085")) + (modules '((guix build utils))) + (snippet + ;; Un-bundle OpenSSL and remove unused libraries. + '(begin + (substitute* "thirdparty/kQOAuth/CMakeLists.txt" + (("-I \\$\\{PROJECT_SOURCE_DIR\\}/thirdparty/openssl/include ") + "")) + (substitute* "thirdparty/kQOAuth/kqoauthutils.cpp" + (("#include Date: Mon, 22 May 2017 20:03:20 +0200 Subject: gnu: node: Update to 7.10.0. * gnu/packages/node.scm (node): Update to 7.10.0. (node)[arguments]: Disabled more tests. * gnu/packages/patches/node-9077.patch: Delete incompatible patch file. Recreate patch file from node pull request 9077. Signed-off-by: Marius Bakke --- gnu/packages/node.scm | 8 +++++--- gnu/packages/patches/node-9077.patch | 25 +++++++++++++------------ 2 files changed, 18 insertions(+), 15 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index cb57415161..40c2b04ab3 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -38,14 +38,14 @@ (define-module (gnu packages node) (define-public node (package (name "node") - (version "7.8.0") + (version "7.10.0") (source (origin (method url-fetch) (uri (string-append "http://nodejs.org/dist/v" version "/node-v" version ".tar.gz")) (sha256 (base32 - "1nkngdjbsm81nn3v0w0c2aqx9nb7mwy3z49ynq4wwcrzfr9ap8ka")) + "00vdmb0z8b2sd547bkksgy9dfq5gi5xfd9b3f0rc4ngvpzl3z164")) ;; https://github.com/nodejs/node/pull/9077 (patches (search-patches "node-9077.patch")))) (build-system gnu-build-system) @@ -86,7 +86,9 @@ (define-public node "test/parallel/test-cluster-master-error.js" "test/parallel/test-cluster-master-kill.js" "test/parallel/test-npm-install.js" - "test/sequential/test-child-process-emfile.js")) + "test/sequential/test-child-process-emfile.js" + "test/sequential/test-benchmark-child-process.js" + "test/sequential/test-http-regr-gh-2928.js")) #t)) (replace 'configure ;; Node's configure script is actually a python script, so we can't diff --git a/gnu/packages/patches/node-9077.patch b/gnu/packages/patches/node-9077.patch index e57f5caac7..6b71d48c0e 100644 --- a/gnu/packages/patches/node-9077.patch +++ b/gnu/packages/patches/node-9077.patch @@ -12,19 +12,20 @@ zlib. Using a shared zlib results in build breakage: ^ ~~~~~~~~~~~~~~~~~ 1 error generated. --- - node.gyp | 2 ++ - 1 file changed, 2 insertions(+) + node.gyp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/node.gyp b/node.gyp -index fa98547..d799ba1 100644 +index 272dc98..667c260 100644 --- a/node.gyp +++ b/node.gyp -@@ -480,6 +480,8 @@ - }], - [ 'node_shared_zlib=="false"', { - 'dependencies': [ 'deps/zlib/zlib.gyp:zlib' ], -+ }, { -+ 'defines': [ 'ZLIB_CONST' ], - }], - - [ 'node_shared_http_parser=="false"', { +@@ -653,7 +653,8 @@ + [ 'node_shared_zlib=="false"', { + 'dependencies': [ + 'deps/zlib/zlib.gyp:zlib', +- ] ++ ]}, { ++ 'defines': [ 'ZLIB_CONST' ], + }], + [ 'node_shared_openssl=="false"', { + 'dependencies': [ -- cgit v1.2.3 From ea584538ac8dc3ad7877b82a67fc3619f105ad70 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Mon, 22 May 2017 20:03:21 +0200 Subject: gnu: node: Use unbundled dependencies. * gnu/packages/node.scm (node)[inputs]: Add c-ares and http-parser. [arguments]: Add configure flags for using system libraries. Signed-off-by: Marius Bakke --- gnu/packages/node.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 40c2b04ab3..69bd928833 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -26,6 +26,7 @@ (define-module (gnu packages node) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages adns) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages gcc) @@ -33,7 +34,8 @@ (define-module (gnu packages node) #:use-module (gnu packages linux) #:use-module (gnu packages perl) #:use-module (gnu packages python) - #:use-module (gnu packages tls)) + #:use-module (gnu packages tls) + #:use-module (gnu packages web)) (define-public node (package @@ -50,10 +52,12 @@ (define-public node (patches (search-patches "node-9077.patch")))) (build-system gnu-build-system) (arguments - ;; TODO: Package http_parser and add --shared-http-parser. + ;; TODO: Purge the bundled copies from the source. '(#:configure-flags '("--shared-openssl" "--shared-zlib" "--shared-libuv" + "--shared-cares" + "--shared-http-parser" "--without-snapshot") #:phases (modify-phases %standard-phases @@ -123,7 +127,9 @@ (define-public node ("util-linux" ,util-linux) ("which" ,which))) (inputs - `(("libuv" ,libuv) + `(("c-ares" ,c-ares) + ("http-parser" ,http-parser) + ("libuv" ,libuv) ("openssl" ,openssl) ("zlib" ,zlib))) (synopsis "Evented I/O for V8 JavaScript") -- cgit v1.2.3 From ae548434337cddf9677a4cd52b9370810b2cc9b6 Mon Sep 17 00:00:00 2001 From: nee Date: Mon, 22 May 2017 23:34:22 +0200 Subject: gnu: Add crawl-tiles. * gnu/packages/games.scm (crawl-tiles): New variable. Signed-off-by: Arun Isaac --- gnu/packages/games.scm | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index fc1e3dcf37..4c297005dc 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3979,8 +3979,6 @@ (define-public crawl (list (string-append "SQLITE_INCLUDE_DIR=" sqlite "/include") (string-append "prefix=" out) "SAVEDIR=~/.crawl" - ;; TODO: build graphical client - "TILES=" ;; don't build any bundled dependencies "BUILD_LUA=" "BUILD_SQLITE=" @@ -3999,7 +3997,8 @@ (define-public crawl (setenv "TERM" "xterm-256color") (zero? (apply system* "make" "debug" "test" (format #f "-j~d" (parallel-job-count)) - make-flags))))))) + ;; Force command line build for test cases. + (append make-flags '("GAME=crawl" "TILES="))))))))) (synopsis "Roguelike dungeon crawler game") (description "Dungeon Crawl Stone Soup is a roguelike adventure through dungeons filled with dangerous monsters in a quest to find the mystifyingly @@ -4013,6 +4012,39 @@ (define-public crawl license:zlib license:asl2.0)))) +(define-public crawl-tiles + (package + (inherit crawl) + (name "crawl-tiles") + (arguments + (substitute-keyword-arguments + (package-arguments crawl) + ((#:make-flags flags) + `(let ((dejavu (assoc-ref %build-inputs "font-dejavu"))) + (cons* + (string-append "PROPORTIONAL_FONT=" dejavu + "/share/fonts/truetype/DejaVuSans.ttf") + (string-append "MONOSPACED_FONT=" dejavu + "/share/fonts/truetype/DejaVuSansMono.ttf") + "TILES=y" + ;; Rename the executable to allow parallel installation with crawl. + "GAME=crawl-tiles" + ,flags))))) + (inputs + `(,@(package-inputs crawl) + ("font-dejavu" ,font-dejavu) + ("freetype6" ,freetype) + ("glu" ,glu) + ("libpng" ,libpng) + ("sdl2" ,sdl2) + ("sdl2-image" ,sdl2-image) + ("sdl2-mixer" ,sdl2-mixer))) + (native-inputs + `(,@(package-native-inputs crawl) + ;; TODO: Add advpng or pngcrush for additional PNG optimization. + ("which" ,which))) + (synopsis "Graphical roguelike dungeon crawler game"))) + (define-public lugaru (package (name "lugaru") -- cgit v1.2.3 From 3015d4556f18e9f3b79b8079f6cfef17ebe22ec9 Mon Sep 17 00:00:00 2001 From: José Miguel Sánchez García Date: Tue, 23 May 2017 17:53:11 +0200 Subject: gnu: python-cairocffi: Update source and home-page URIs. * gnu/packages/python.scm (python-cairocffi)[source]: Update URI. [home-page]: Update URI. Signed-off-by: Arun Isaac --- gnu/packages/python.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 54dc493904..ecb037f338 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -39,6 +39,7 @@ ;;; Copyright © 2017 Adriano Peluso ;;; Copyright © 2017 Ben Sturmfels ;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017 José Miguel Sánchez García ;;; ;;; This file is part of GNU Guix. ;;; @@ -4772,7 +4773,7 @@ (define-public python-cairocffi (origin (method url-fetch) ;; The archive on pypi is missing the 'utils' directory! - (uri (string-append "https://github.com/SimonSapin/cairocffi/archive/v" + (uri (string-append "https://github.com/Kozea/cairocffi/archive/v" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 @@ -4811,7 +4812,7 @@ (define-public python-cairocffi (system* "python" "setup.py" "build_sphinx") (copy-recursively "docs/_build/html" html) #t)))))) - (home-page "https://github.com/SimonSapin/cairocffi") + (home-page "https://github.com/Kozea/cairocffi") (synopsis "Python bindings and object-oriented API for Cairo") (description "Cairocffi is a CFFI-based drop-in replacement for Pycairo, a set of -- cgit v1.2.3 From 80f78e8f6fbe23d2b824a075db7e8d08999189e4 Mon Sep 17 00:00:00 2001 From: José Miguel Sánchez García Date: Tue, 23 May 2017 17:56:15 +0200 Subject: gnu: python-cairocffi: Update to 0.8.0. * gnu/packages/python.scm (python-cairocffi): Update to 0.8.0. Signed-off-by: Arun Isaac --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ecb037f338..d29a14c18a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4768,7 +4768,7 @@ (define-public python2-xcffib (define-public python-cairocffi (package (name "python-cairocffi") - (version "0.6") + (version "0.8.0") (source (origin (method url-fetch) @@ -4778,7 +4778,7 @@ (define-public python-cairocffi (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "03w5p62sp3nqiccx864sbq0jvh7946277jqx3rcc3dch5xwfvv51")))) + "1rk2dvy3fxrga6bvvxc2fi5lbaynm5h4a0w0aaxyn3bc77rszjg9")))) (build-system python-build-system) (outputs '("out" "doc")) (inputs -- cgit v1.2.3 From c4ec1ae010955e29c8a8dcdb99104b9239406610 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 24 May 2017 15:55:47 +0200 Subject: gnu: samba: Update to 4.6.4 [security fixes]. Fixes CVE-2017-7494. * gnu/packages/samba.scm (samba): Update to 4.6.4. --- gnu/packages/samba.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 623ef93a4e..b7f298d2be 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -147,14 +147,14 @@ (define (copy dir) (define-public samba (package (name "samba") - (version "4.5.8") + (version "4.6.4") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 (base32 - "1w41pxszv5z6gjclg6zymn47mk8n51lnpgcx1k2q18i3i1nnafzn")))) + "0qcsinhcq3frlqp7bfav5mdc9xn1h4xy4l6vfpf8cmcfs4lp7ija")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit v1.2.3 From 460e72c7b7d8cfe866e3275f6c8e463d0ed6e55b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 23 May 2017 18:44:44 +0200 Subject: gnu: slop: Update to 5.3.38. * gnu/packages/xdisorg.scm (slop): Update to 5.3.38. --- gnu/packages/xdisorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 8d7f2195c2..73479581bb 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -441,7 +441,7 @@ (define-public scrot (define-public slop (package (name "slop") - (version "5.3.37") + (version "5.3.38") (source (origin (method url-fetch) (uri (string-append @@ -450,7 +450,7 @@ (define-public slop (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1p2ih123zkj8rxz8acsxpaim1kq57f4rbq7zqsibafn5rkw5c5is")))) + "1gvsxzl4y4l7d5gvx24i0yxk3jxc1gnb48bjwvqmrh34gx974wn7")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no "check" target -- cgit v1.2.3 From 2133f193787c7ca0f5e18aee96657756c5fb1384 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 02:59:24 +0200 Subject: gnu: maim: Update to 5.4.62. * gnu/packages/xdisorg.scm (maim): Update to 5.4.62. --- gnu/packages/xdisorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 73479581bb..980b6e8022 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -472,7 +472,7 @@ (define-public slop (define-public maim (package (name "maim") - (version "4.4.62") + (version "5.4.62") (source (origin (method url-fetch) (uri (string-append @@ -481,7 +481,7 @@ (define-public maim (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "08lnbsl9ialqik1ris6piz1g0fgq4r3767ycr4nziphw3kz89vr1")))) + "084czvwcicl8apjlv729inxx8rpycra76ignfjmcbaq0hhn6ip6w")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no "check" target -- cgit v1.2.3 From 3c74a74ea2814bca25257f8211b8084a3cc1a3b9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 17:45:05 +0200 Subject: gnu: glog: Update to 0.3.5. * gnu/packages/logging.scm (glog): Update to 0.3.5. [source]: Switch to tarball download. --- gnu/packages/logging.scm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index 7501f1e5db..b2b0582aee 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -55,17 +55,15 @@ (define-public log4cpp (define-public glog (package (name "glog") - (version "0.3.4") + (version "0.3.5") (home-page "https://github.com/google/glog") (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) + (method url-fetch) + (uri (string-append home-page "/archive/v" version ".tar.gz")) (sha256 (base32 - "0ym5g15m7c8kjfr2c3zq6bz08ghin2d1r1nb6v2vnkfh1vn945x1")) - (file-name (string-append name "-" version "-checkout")) + "1q6ihk2asbx95a56kmyqwysq1x3grrw9jwqllafaidf0l84f903m")) + (file-name (string-append name "-" version ".tar.gz")) (patches (search-patches "glog-gcc-5-demangling.patch")))) (build-system gnu-build-system) (native-inputs -- cgit v1.2.3 From 47b93ae5bf6cc47d8fecbe56f54018d61c7b10ec Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 19:56:19 +0200 Subject: gnu: libgnomekbd: Update to 3.22.0.1. * gnu/packages/gnome.scm (libgnomekbd): Update to 3.22.0.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e81a3f0883..e2397d6da5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5824,7 +5824,7 @@ (define-public gfbgraph (define-public libgnomekbd (package (name "libgnomekbd") - (version "3.22.0") + (version "3.22.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5832,7 +5832,7 @@ (define-public libgnomekbd name "-" version ".tar.xz")) (sha256 (base32 - "1pvpbljvxc0riamraiflnm05dpb6i4vlmqqgdh74xggbpzd302rl")))) + "1plkkack6s8b21gcmmly0lapgcjz53dmw2vixnn4rw4jxjwbdzaf")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From 4063a40a4b0d50061798c783edac29b2548f37c8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 19:53:45 +0200 Subject: gnu: gnome-autoar: Update to 0.2.2. * gnu/packages/gnome.scm (gnome-autoar): Update to 0.2.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e2397d6da5..df01c70671 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5124,7 +5124,7 @@ (define-public gtk-vnc (define-public gnome-autoar (package (name "gnome-autoar") - (version "0.1.1") + (version "0.2.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5132,7 +5132,7 @@ (define-public gnome-autoar name "-" version ".tar.xz")) (sha256 (base32 - "1jcs6jgysg9n3zi3d1l4iqddzmczfdcvz7vkxn607p32nl8bhp7n")))) + "0qnafiwgajsaryh669lfclb4f6z5n1r9r4zhig1ha0ykxq32rzp1")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gnome-common" ,gnome-common) -- cgit v1.2.3 From 0ef48cd99e79054c987e04e8fb9c8c4fefb6fbc0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 19:54:09 +0200 Subject: gnu: tracker: Update to 1.12.0. * gnu/packages/gnome.scm (tracker): Update to 1.12.0. [inputs]: Add JSON-GLIB and LIBSOUP. --- gnu/packages/gnome.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index df01c70671..94ea921b92 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5153,7 +5153,7 @@ (define-public gnome-autoar (define-public tracker (package (name "tracker") - (version "1.10.3") + (version "1.12.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5161,7 +5161,7 @@ (define-public tracker name "-" version ".tar.xz")) (sha256 (base32 - "03ch3ndmxghfr9wnw9hfmpkjfa7k5v5cwwf3y1ja6ihk3c5avgbb")))) + "0vsrzzkcfvmylhpk1ww6xdx8z9sgjs0gn74gz82qngjyq3c3s6c3")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gnome-common" ,gnome-common) @@ -5188,13 +5188,14 @@ (define-public tracker ("exempi" ,exempi) ("libxml2" ,libxml2) ("upower" ,upower) - ("libgee" ,libgee) ("libunistring" ,libunistring) ("giflib" ,giflib) + ("json-glib" ,json-glib) ("openjpeg" ,openjpeg-1) ("libosinfo" ,libosinfo) ("libcue" ,libcue) ("libseccomp" ,libseccomp) + ("libsoup" ,libsoup) ("libuuid" ,util-linux))) (arguments `(#:tests? #f)) ; XXX FIXME enable tests (some fail) (synopsis "Metadata database, indexer and search tool") -- cgit v1.2.3 From 6206db897b6a4baacadc9d2ddd18bb6f13fb9d3f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 19:46:31 +0200 Subject: gnu: libgtop: Update to 2.36.0. * gnu/packages/gnome.scm (libgtop): Update to 2.36.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 94ea921b92..bda4cab239 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4872,7 +4872,7 @@ (define-public gdm (define-public libgtop (package (name "libgtop") - (version "2.34.1") + (version "2.36.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4880,7 +4880,7 @@ (define-public libgtop name "-" version ".tar.xz")) (sha256 (base32 - "1qh9srg8pqmrsl12mwnclncs7agmjjvx3q6v5qwqvcb2cskpi6f8")))) + "0ax17c7nplghxgsf8zl92nmhkbnggj62wwzl7nq00aqb2m6f7gqk")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) -- cgit v1.2.3 From afd8e16b150d0d0f6f78e42e48e5cd33be125a32 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 19:43:32 +0200 Subject: gnu: libgee: Update to 0.20.0. * gnu/packages/gnome.scm (libgee): Update to 0.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index bda4cab239..2ad22748ce 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3947,7 +3947,7 @@ (define-public yelp-tools (define-public libgee (package (name "libgee") - (version "0.18.1") + (version "0.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3955,7 +3955,7 @@ (define-public libgee name "-" version ".tar.xz")) (sha256 (base32 - "18ir5264bhdg76kcjn8i5bfs1vz89qqn2py20aavm2cwbaz6ns4r")))) + "1fy24dr8imrjlmsqj1syn0gi139gba6hwk3j5vd6sr3pxniqnc11")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 356f0cef4bf231266d51108a3740b1d2b4ecd675 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 19:41:18 +0200 Subject: gnu: libchamplain: Update to 0.12.15. * gnu/packages/gnome.scm (libchamplain): Update to 0.12.15. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2ad22748ce..bc81cf2e50 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3100,7 +3100,7 @@ (define-public clutter-gst (define-public libchamplain (package (name "libchamplain") - (version "0.12.14") + (version "0.12.15") (source (origin (method url-fetch) (uri (string-append @@ -3108,7 +3108,7 @@ (define-public libchamplain version ".tar.xz")) (sha256 (base32 - "13snnka1jqc5qrgij8bm22xy02pncf3dn5ij3jh4rrpzq7g1sqpi")))) + "0x5qa1aw1y59lzkmf4j4szspn49341a87vcja4ydgxny1chilwjl")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-vala"))) (native-inputs -- cgit v1.2.3 From 6a88e4ee64433386dcd5ee9bf8ca00e0e1a9e87e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 19:40:28 +0200 Subject: gnu: clutter: Update to 1.26.2. * gnu/packages/gnome.scm (clutter): Update to 1.26.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index bc81cf2e50..936d03745e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2985,7 +2985,7 @@ (define-public cogl (define-public clutter (package (name "clutter") - (version "1.26.0") + (version "1.26.2") (source (origin (method url-fetch) @@ -2994,7 +2994,7 @@ (define-public clutter name "-" version ".tar.xz")) (sha256 (base32 - "01nfjd4k7j2n3agpx2d9ncff86nfsqv4n23465rb9zmk4iw4wlb7")))) + "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7")))) ;; NOTE: mutter exports a bundled fork of clutter, so when making changes ;; to clutter, corresponding changes may be appropriate in mutter as well. (build-system gnu-build-system) -- cgit v1.2.3 From 8773600542b6bb86e194010a7daf4c540858e5fb Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 19:40:49 +0200 Subject: gnu: clutter-gst: Update to 3.0.24. * gnu/packages/gnome.scm (clutter-gst): Update to 3.0.24. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 936d03745e..973b08b215 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3069,7 +3069,7 @@ (define-public clutter-gtk (define-public clutter-gst (package (name "clutter-gst") - (version "3.0.22") + (version "3.0.24") (source (origin (method url-fetch) @@ -3078,7 +3078,7 @@ (define-public clutter-gst name "-" version ".tar.xz")) (sha256 (base32 - "1m6zwc7xr7lmbwiqav961g7jhc7gp5gb73dm6j93szpa6bxmgz7i")))) + "0v6cg0syh4vx7y7ni47jsvr2r57q0j3h1f1gjlp0ciscixywiwg9")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums -- cgit v1.2.3 From 0b7b8fb0456475374de24b6302a6ce3cc5921ed0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 24 May 2017 19:36:24 +0200 Subject: gnu: gnome-themes-standard: Update to 3.22.3. * gnu/packages/gnome.scm (gnome-themes-standard): Update to 3.22.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 973b08b215..68183eb553 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1757,7 +1757,7 @@ (define-public gnumeric (define-public gnome-themes-standard (package (name "gnome-themes-standard") - (version "3.22.2") + (version "3.22.3") (source (origin (method url-fetch) @@ -1766,7 +1766,7 @@ (define-public gnome-themes-standard version ".tar.xz")) (sha256 (base32 - "19bxw69ms46px5xgvwbjlhq2vkmrqfx2az49q63w2wxqb76icidk")))) + "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3