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 @@ ;; 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 @@ (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-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 @@ with the Linux kernel.") ((#: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 @@ with the Linux kernel.") ;; 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 @@ (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 @@ #: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 @@ 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 @@ '("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 @@ dictionaries, including personal ones.") ;;; 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 @@ The other options should be self-descriptive." (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 @@ #: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 @@ You have been warned. Thanks for being so brave. ;; 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 @@ numeric gid or #f." #: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 @@ they already exist." (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 @@ info --version") ',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 @@ Additionally, various channel-specific options can be negotiated.") (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 @@ partition-size partition-file-system partition-label - partition-bootable? + partition-flags partition-initializer root-partition-initializer @@ -141,7 +142,7 @@ the #:references-graphs parameter of 'derivation'." (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 @@ actual /dev name based on DEVICE." (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 @@ in PARTITIONS, and using BOOTCFG as its bootloader configuration file. 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 @@ the image." (* 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 @@ actual /dev name based on DEVICE." (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 @@ volume name." '()))) (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 @@ loaded at boot time in the order in which they appear." "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 @@ loaded at boot time in the order in which they appear." ,@(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 @@ the image." (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 @@ #: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 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." (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 @@ passing it a directory name where it is mounted." "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 @@ passing it a directory name where it is mounted." (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 @@ the image." #: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 @@ explicitly appear in OS." ;; 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 @@ especially over Wi-Fi, cellular, and long-distance links.") (define-public dropbear (package (name "dropbear") - (version "2016.74") + (version "2017.75") (source (origin (method url-fetch) (uri (string-append @@ -388,7 +388,7 @@ especially over Wi-Fi, cellular, and long-distance links.") 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 @@ build process and its dependencies, whereas Make uses Makefile format.") (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 @@ build process and its dependencies, whereas Make uses Makefile format.") version ".tar.xz")) (sha256 (base32 - "1slmajiakq7sk137vgqq9c93r5s620a46lw2jwbnzxhysjw3wkwf")) + "0am945k2zqrka2xn7lb5grmkad4lwncnhnwk8iq6f269birzsj8w")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -770,25 +770,25 @@ build process and its dependencies, whereas Make uses Makefile format.") (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 @@ with '-virtfs' options for the host file systems listed in SHARED-FS." (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 @@ UnionFS-FUSE additionally supports copy-on-write.") (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 @@ When SFTP? is true, run an SFTP server 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 @@ ;; 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 @@ (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 @@ ;; 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 @@ (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 @@ libraries written in C.") (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 @@ libraries written in C.") 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 @@ playlists in a variety of formats.") (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 @@ playlists in a variety of formats.") 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 @@ beautifying border effects.") (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 @@ beautifying border effects.") 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 @@ classes for commonly used data structures.") (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 @@ classes for commonly used data structures.") 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 @@ editors, IDEs, etc.") (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 @@ editors, IDEs, etc.") (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 @@ algorithms; density clustering, hierarchical clustering, k-means, and the 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 @@ standalone, be utilized in other packages, or be wrapped up in higher-level 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 @@ differential expression based on a model using the negative binomial 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 @@ #: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 @@ 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 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 @@ etc.). SableVM is no longer maintained. 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 @@ etc.). SableVM is no longer maintained. 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 @@ 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))) +;; 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 @@ #: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 @@ #: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 @@ 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 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 @@ requirement for all GNU Classpath releases after version 0.93.") 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 @@ language.") ;; 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 @@ other small VMs it supports the full spec, including object finalisation and 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 @@ gnu.classpath.tools.~a.~a $@" 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 @@ #: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 @@ #: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 @@ machine."))) 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 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ("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 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ("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 @@ 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))) +;; 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 @@ bootstrapping purposes.") (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 @@ bootstrapping purposes.") (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 @@ bootstrapping purposes.") #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 @@ bootstrapping purposes.") ("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 @@ bootstrapping purposes.") ("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 @@ IcedTea build harness.") ,(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 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ("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 @@ IcedTea build harness.") (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 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ("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 @@ IcedTea build harness.") (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 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ("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 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) (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 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) 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 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) ("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 @@ IcedTea build harness.") (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 @@ IcedTea build harness.") (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 @@ IcedTea build harness.") (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 @@ IcedTea build harness.") (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 @@ as the 'native-search-paths' field." ;; 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 @@ identify enrichments with functional annotations of the genome.") (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 @@ identify enrichments with functional annotations of the genome.") (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 @@ Use Alt-F2 for documentation. (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 @@ in @code{html-mode}.") (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 @@ as a library for other Emacs packages.") (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 @@ #: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 @@ are a C compiler and glib. Full API documentation and examples are included.") 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-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 @@ "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 @@ #: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 @@ #: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 @@ (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 @@ ("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 @@ fish. The whole game is accompanied by quiet, comforting music.") (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 @@ fish. The whole game is accompanied by quiet, comforting music.") (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 @@ fabulous Orb of Zot.") 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 @@ support for Python 3 and PyPy. It is based on cffi.") (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 @@ support for Python 3 and PyPy. It is based on cffi.") (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 @@ support for Python 3 and PyPy. It is based on cffi.") (define-public python-cairocffi (package (name "python-cairocffi") - (version "0.6") + (version "0.8.0") (source (origin (method url-fetch) @@ -4778,7 +4778,7 @@ support for Python 3 and PyPy. It is based on cffi.") (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 @@ anywhere.") (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 @@ of the screen selected by mouse.") (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 @@ of the screen selected by mouse.") (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 @@ selection's dimensions to stdout.") (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 @@ selection's dimensions to stdout.") (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 @@ staying as close to their API as is reasonable.") (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 @@ GLib/GObject code.") (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 @@ GLib/GObject code.") 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 @@ as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.") (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 @@ as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.") 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 @@ easy, safe, and automatic.") (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 @@ easy, safe, and automatic.") 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 @@ easy, safe, and automatic.") ("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 @@ providing graphical log-ins and managing local and remote displays.") (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 @@ providing graphical log-ins and managing local and remote displays.") 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 @@ wraps things up in a developer-friendly way.") (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 @@ wraps things up in a developer-friendly way.") 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 @@ GL based interactive canvas library.") (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 @@ GL based interactive canvas library.") 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 @@ without stepping on each others toes.") (define-public clutter (package (name "clutter") - (version "1.26.0") + (version "1.26.2") (source (origin (method url-fetch) @@ -2994,7 +2994,7 @@ without stepping on each others toes.") 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 @@ presentations, kiosk style applications and so on.") (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 @@ presentations, kiosk style applications and so on.") 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 @@ engineering.") (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 @@ engineering.") version ".tar.xz")) (sha256 (base32 - "19bxw69ms46px5xgvwbjlhq2vkmrqfx2az49q63w2wxqb76icidk")))) + "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3