From 6c9dca5a9bc3aeab260bc125e8ddc08a5107ec4e Mon Sep 17 00:00:00 2001 From: Simon South Date: Mon, 1 Jun 2020 13:15:31 -0400 Subject: gnu: jamvm-1-bootstrap: Add aarch64-linux support. * gnu/packages/java.scm (jamvm-1-bootstrap)[source]: Add patch; update name of existing patch. [arguments]<#:phases>: Invoke autoreconf during bootstrap phase when building for aarch64. [native-inputs]: Include packages required for autoreconf when building for aarch64. * gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch: New file. * gnu/packages/patches/jamvm-arm.patch: Rename to "jamvm-1.5.1-armv7-support.patch". * gnu/local.mk (dist_patch_DATA): Add file; update filename. Signed-off-by: Efraim Flashner --- gnu/local.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 396629cc93..df098708e9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1114,8 +1114,9 @@ dist_patch_DATA = \ %D%/packages/patches/irrlicht-use-system-libs.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/jacal-fix-texinfo.patch \ + %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \ + %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ %D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \ - %D%/packages/patches/jamvm-arm.patch \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ -- cgit v1.2.3 From 2995be77e1f81ca3d90f18e0e819952ea02003ad Mon Sep 17 00:00:00 2001 From: Simon South Date: Mon, 1 Jun 2020 13:15:32 -0400 Subject: gnu: jamvm: Add aarch64-linux support. * gnu/packages/java.scm (classpath-devel)[source]: Add (existing) patch. (jamvm)[source]: Add patches. [arguments]: Inherit non-overridden arguments (particularly #:phases) from jamvm-1-bootstrap. * gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch: New file. * gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch: New file. * gnu/local.mk (dist_patch_DATA): Add files. Signed-off-by: Efraim Flashner --- gnu/local.mk | 2 + gnu/packages/java.scm | 14 +- .../patches/jamvm-2.0.0-aarch64-support.patch | 645 +++++++++++++++++++++ .../patches/jamvm-2.0.0-opcode-guard.patch | 35 ++ 4 files changed, 691 insertions(+), 5 deletions(-) create mode 100644 gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch create mode 100644 gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index df098708e9..4f0d8fb537 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1116,7 +1116,9 @@ dist_patch_DATA = \ %D%/packages/patches/jacal-fix-texinfo.patch \ %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \ %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ + %D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \ %D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \ + %D%/packages/patches/jamvm-2.0.0-opcode-guard.patch \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 27a6ebc437..8c4b591735 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -713,7 +713,8 @@ machine."))) (file-name (string-append "classpath-" version "-checkout")) (sha256 (base32 - "1v2rww76ww322mpg3s12a1kkc6gkp31bm9gcxs532h0wq285fiw4")))) + "1v2rww76ww322mpg3s12a1kkc6gkp31bm9gcxs532h0wq285fiw4")) + (patches (search-patches "classpath-aarch64-support.patch")))) (arguments `(#:make-flags ;; Ensure that the initial heap size is smaller than the maximum @@ -779,7 +780,9 @@ machine."))) (base32 "1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn")) (patches - (search-patches "jamvm-2.0.0-disable-branch-patching.patch")) + (search-patches "jamvm-2.0.0-disable-branch-patching.patch" + "jamvm-2.0.0-opcode-guard.patch" + "jamvm-2.0.0-aarch64-support.patch")) (snippet '(begin ;; Remove precompiled software. @@ -787,9 +790,10 @@ machine."))) #t)))) (build-system gnu-build-system) (arguments - `(#:configure-flags - (list (string-append "--with-classpath-install-dir=" - (assoc-ref %build-inputs "classpath"))))) + (substitute-keyword-arguments (package-arguments jamvm-1-bootstrap) + ((#:configure-flags _) + '(list (string-append "--with-classpath-install-dir=" + (assoc-ref %build-inputs "classpath")))))) (inputs `(("classpath" ,classpath-devel) ("ecj-javac-wrapper" ,ecj-javac-wrapper) diff --git a/gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch b/gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch new file mode 100644 index 0000000000..b67d8b4584 --- /dev/null +++ b/gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch @@ -0,0 +1,645 @@ +From a44154f7a18496cc3e5fc0b1b2ea69523ebc623a Mon Sep 17 00:00:00 2001 +From: Simon South +Date: Mon, 1 Jun 2020 07:09:34 -0400 +Subject: [PATCH] Add support for aarch64 on GNU/Linux + +--- + AUTHORS | 1 + + README | 2 +- + configure.ac | 7 +- + src/arch/Makefile.am | 2 +- + src/arch/aarch64.h | 147 +++++++++++++++++++++ + src/jam.c | 3 +- + src/os/linux/Makefile.am | 2 +- + src/os/linux/aarch64/Makefile.am | 28 ++++ + src/os/linux/aarch64/callNative.S | 212 ++++++++++++++++++++++++++++++ + src/os/linux/aarch64/dll_md.c | 59 +++++++++ + src/os/linux/aarch64/init.c | 51 +++++++ + 11 files changed, 508 insertions(+), 6 deletions(-) + create mode 100644 src/arch/aarch64.h + create mode 100644 src/os/linux/aarch64/Makefile.am + create mode 100644 src/os/linux/aarch64/callNative.S + create mode 100644 src/os/linux/aarch64/dll_md.c + create mode 100644 src/os/linux/aarch64/init.c + +diff --git a/AUTHORS b/AUTHORS +index e1334fe..6fd0eeb 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -1 +1,2 @@ + Robert Lougher ++Simon South +diff --git a/README b/README +index c9d80bb..0e93d00 100644 +--- a/README ++++ b/README +@@ -77,7 +77,7 @@ versions of JamVM also includes stubs for common method signatures. + The following platforms/architectures are recognised by configure. Those + marked with * must be configured to use libffi. + +-- Linux: x86, x86_64, ARM, PowerPC, PowerPC64(*), MIPS, HPPA ++- Linux: x86, x86_64, ARM, ARM64, PowerPC, PowerPC64(*), MIPS, HPPA + - FreeBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*) + - OpenBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*) + - Mac OS X/Darwin: x86, x86_64, ARM, PowerPC, PowerPC64 +diff --git a/configure.ac b/configure.ac +index 138b7e6..e7051d7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -46,6 +46,7 @@ x86_64-*-freebsd*) host_os=bsd libdl_needed=no ;; + arm*-*-linux*) host_cpu=arm host_os=linux interp_cflags=-marm ;; + arm*-*-openbsd*) host_cpu=arm host_os=bsd libdl_needed=no ;; + arm*-*-freebsd*) host_cpu=arm host_os=bsd libdl_needed=no ;; ++aarch64*-*-linux*) host_cpu=aarch64 host_os=linux ;; + powerpc*-*-linux*) host_cpu=powerpc host_os=linux ;; + powerpc*-*-openbsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;; + powerpc*-*-freebsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;; +@@ -155,10 +156,11 @@ AC_ARG_ENABLE(runtime-reloc-checks, + + AC_ARG_ENABLE(int-inlining, + [AS_HELP_STRING(--enable-int-inlining,enable inline threaded version of the interpreter +- (by default enabled on x86_64, i386, powerpc, mips and arm, ++ (by default enabled on x86_64, i386, powerpc, mips, arm and aarch64, + disabled otherwise))],, + [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = x86 -o \ +- "$host_cpu" = powerpc -o "$host_cpu" = arm -o "$host_cpu" = mips; then ++ "$host_cpu" = powerpc -o "$host_cpu" = arm -o "$host_cpu" = mips -o \ ++ "$host_cpu" = aarch64; then + enable_int_inlining=yes + else + enable_int_inlining=no +@@ -407,6 +409,7 @@ AC_CONFIG_FILES( + src/os/linux/x86_64/Makefile \ + src/os/linux/parisc/Makefile \ + src/os/linux/mips/Makefile \ ++ src/os/linux/aarch64/Makefile \ + src/os/darwin/i386/Makefile \ + src/os/darwin/arm/Makefile \ + src/os/darwin/powerpc/Makefile \ +diff --git a/src/arch/Makefile.am b/src/arch/Makefile.am +index 7580a1b..4e2a4f9 100644 +--- a/src/arch/Makefile.am ++++ b/src/arch/Makefile.am +@@ -19,4 +19,4 @@ + ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ## + +-EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h sparc.h ++EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h sparc.h aarch64.h +diff --git a/src/arch/aarch64.h b/src/arch/aarch64.h +new file mode 100644 +index 0000000..1912e79 +--- /dev/null ++++ b/src/arch/aarch64.h +@@ -0,0 +1,147 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include ++ ++#define OS_ARCH "aarch64" ++ ++#define HANDLER_TABLE_T static const void ++#define DOUBLE_1_BITS 0x3ff0000000000000LL ++ ++#define READ_DBL(v,p,l) v = ((u8)p[0]<<56)|((u8)p[1]<<48)|((u8)p[2]<<40) \ ++ |((u8)p[3]<<32)|((u8)p[4]<<24)|((u8)p[5]<<16) \ ++ |((u8)p[6]<<8)|(u8)p[7]; p+=8 ++ ++/* Needed for i386 -- empty here */ ++#define FPU_HACK ++ ++#define COMPARE_AND_SWAP_64(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: ldaxr %2, %1; \ ++ cmp %2, %3; \ ++ b.ne 2f; \ ++ stlxr %w0, %4, %1; \ ++ cmp %w0, wzr; \ ++ b.ne 1b; \ ++ 2: cset %w0, eq;" \ ++ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \ ++ : "r" (old_val), "r" (new_val) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP_32(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: ldaxr %w2, %1; \ ++ cmp %w2, %w3; \ ++ b.ne 2f; \ ++ stlxr %w0, %w4, %1; \ ++ cmp %w0, wzr; \ ++ b.ne 1b; \ ++ 2: cset %w0, eq;" \ ++ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \ ++ : "r" (old_val), "r" (new_val) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_64(addr, old_val, new_val) ++ ++#define LOCKWORD_READ(addr) \ ++({ \ ++ uintptr_t result; \ ++ __asm__ __volatile__ (" \ ++ ldar %0, %1;" \ ++ : "=r" (result) \ ++ : "Q" (*addr) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define LOCKWORD_WRITE(addr, value) \ ++({ \ ++ __asm__ __volatile__ (" \ ++ stlr %1, %0;" \ ++ : "=Q" (*addr) \ ++ : "r" (value) \ ++ : "cc"); \ ++}) ++ ++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_64(addr, old_val, new_val) ++ ++#define FLUSH_CACHE(addr, length) \ ++{ \ ++ uintptr_t start = (uintptr_t) (addr); \ ++ uintptr_t end = start + length; \ ++ uintptr_t i; \ ++ \ ++ for(i = start & aarch64_data_cache_line_mask; \ ++ i < end; \ ++ i += aarch64_data_cache_line_len) \ ++ __asm__ ("dc cvau, %0" :: "r" (i)); \ ++ \ ++ __asm__ ("dsb ish"); \ ++ \ ++ for(i = start & aarch64_instruction_cache_line_mask; \ ++ i < end; \ ++ i += aarch64_instruction_cache_line_len) \ ++ __asm__ ("ic ivau, %0" :: "r" (i)); \ ++ \ ++ __asm__ ("dsb ish; isb"); \ ++} ++ ++#define GEN_REL_JMP(target_addr, patch_addr, patch_size) \ ++({ \ ++ int patched = FALSE; \ ++ \ ++ if(patch_size >= 4) { \ ++ /* Guard against the pointer difference being \ ++ larger than the signed range */ \ ++ long long offset = (uintptr_t)(target_addr) - \ ++ (uintptr_t)(patch_addr); \ ++ \ ++ if(offset >= -1<<28 && offset < 1<<28) { \ ++ *(uint32_t*)(patch_addr) = offset>>2 & 0x03ffffff \ ++ | 0x14000000; \ ++ patched = TRUE; \ ++ } \ ++ } \ ++ patched; \ ++}) ++ ++#define MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define RMBARRIER() __asm__ ("dmb ishld" ::: "memory") ++#define WMBARRIER() __asm__ ("dmb ishst" ::: "memory") ++#define JMM_LOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define JMM_UNLOCK_MBARRIER() JMM_LOCK_MBARRIER() ++ ++/* Defined in src/os/linux/aarch64/init.c */ ++extern unsigned char aarch64_data_cache_line_len; ++extern uintptr_t aarch64_data_cache_line_mask; ++extern unsigned char aarch64_instruction_cache_line_len; ++extern uintptr_t aarch64_instruction_cache_line_mask; +diff --git a/src/jam.c b/src/jam.c +index 052f84a..c97524a 100644 +--- a/src/jam.c ++++ b/src/jam.c +@@ -98,7 +98,8 @@ void showUsage(char *name) { + void showVersionAndCopyright() { + printf("java version \"%s\"\n", JAVA_COMPAT_VERSION); + printf("JamVM version %s\n", VERSION); +- printf("Copyright (C) 2003-2014 Robert Lougher \n\n"); ++ printf("Copyright (C) 2003-2014 Robert Lougher \n"); ++ printf("Portions Copyright (C) 2020 Simon South \n\n"); + printf("This program is free software; you can redistribute it and/or\n"); + printf("modify it under the terms of the GNU General Public License\n"); + printf("as published by the Free Software Foundation; either version 2,\n"); +diff --git a/src/os/linux/Makefile.am b/src/os/linux/Makefile.am +index 542094e..83e7dfe 100644 +--- a/src/os/linux/Makefile.am ++++ b/src/os/linux/Makefile.am +@@ -20,7 +20,7 @@ + ## + + SUBDIRS = @arch@ +-DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips ++DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips aarch64 + + noinst_LTLIBRARIES = libos.la + libos_la_SOURCES = os.c +diff --git a/src/os/linux/aarch64/Makefile.am b/src/os/linux/aarch64/Makefile.am +new file mode 100644 +index 0000000..0e5134f +--- /dev/null ++++ b/src/os/linux/aarch64/Makefile.am +@@ -0,0 +1,28 @@ ++## ++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 ++## Robert Lougher . ++## ++## File added by Simon South . ++## ++## This file is part of JamVM. ++## ++## This program is free software; you can redistribute it and/or ++## modify it under the terms of the GNU General Public License ++## as published by the Free Software Foundation; either version 2, ++## or (at your option) any later version. ++## ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++## ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++## ++ ++noinst_LTLIBRARIES = libnative.la ++libnative_la_SOURCES = init.c dll_md.c callNative.S ++ ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src ++AM_CCASFLAGS = -I$(top_builddir)/src +diff --git a/src/os/linux/aarch64/callNative.S b/src/os/linux/aarch64/callNative.S +new file mode 100644 +index 0000000..e067c4f +--- /dev/null ++++ b/src/os/linux/aarch64/callNative.S +@@ -0,0 +1,212 @@ ++/* ++ * Copyright (C) 2008, 2009, 2011, 2012 Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "config.h" ++ ++#ifndef USE_FFI ++ .text ++ .arch armv8-a ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * x0 JNIEnv ++ * x1 class or NULL ++ * x2 sig ++ * w3 extra arg ++ * x4 ostack ++ * x5 function pntr ++ * w6 args count ++ */ ++ ++/* Register usage: ++ * ++ * x20 ostack ++ * x19 sig pntr ++ * x16 function pntr ++ * x15 ostack pntr ++ * x14 args pntr ++ * x13 float/double handler ++ * x12 int/long handler ++ * w11 fp regs remaining ++ * w10 int regs remaining ++ * x9 scratch ++ * x2-x7 outgoing int args ++ * x1 outgoing class or this pntr ++ * x0 outgoing JNIEnv (as passed in) ++ * ++ * d0 - d7 outgoing float args ++ */ ++ ++callJNIMethod: ++ stp x29, x30, [sp, #-32]! ++ mov x29, sp ++ stp x19, x20, [x29, #16] ++ ++ sub sp, sp, w3 /* allocate room for stacked args */ ++ mov x14, sp ++ ++ mov x20, x4 /* preserve ostack */ ++ add x19, x2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov x16, x5 /* save function pntr */ ++ mov x15, x20 /* init ostack pntr */ ++ ++ adr x13, fp_reg_handlers-8 ++ adr x12, int_reg_handlers-8 ++ ++ mov w11, #8 /* fp regs remaining */ ++ mov w10, #6 /* int regs remaining */ ++ ++ cbnz x1, scan_sig /* is method non-static? */ ++ ldr x1, [x15], #8 /* yes, load x1 with "this" */ ++ ++scan_sig: ++ ldrb w9, [x19], #1 /* get next sig char */ ++ ++ cmp w9, #41 /* ')' */ ++ b.eq done ++ ++ cmp w9, #74 /* 'J' */ ++ b.eq long ++ ++ cmp w9, #70 /* 'F' */ ++ b.eq float ++ ++ cmp w9, #68 /* 'D' */ ++ b.eq double ++ ++skip_brackets: ++ cmp w9, #91 /* '[' */ ++ b.ne 1f ++ ldrb w9, [x19], #1 ++ b skip_brackets ++1: ++ cmp w9, #76 /* 'L' */ ++ b.ne int ++ ++skip_ref: ++ ldrb w9, [x19], #1 ++ cmp w9, #59 /* ';' */ ++ b.ne skip_ref ++ ++int: ++ ldr x9, [x15], #8 ++ cbz w10, stack_push ++ ++load_int_reg: ++ sub w10, w10, #1 ++ add x12, x12, #8 ++ br x12 ++ ++int_reg_handlers: ++ mov x2, x9 ++ b scan_sig ++ mov x3, x9 ++ b scan_sig ++ mov x4, x9 ++ b scan_sig ++ mov x5, x9 ++ b scan_sig ++ mov x6, x9 ++ b scan_sig ++ mov x7, x9 ++ b scan_sig ++ ++long: ++ ldr x9, [x15], #16 ++ cbz w10, stack_push ++ b load_int_reg ++ ++float: ++ ldr w9, [x15], #8 ++ cbz w11, stack_push ++ b load_fp_reg ++ ++double: ++ ldr x9, [x15], #16 ++ cbz w11, stack_push ++ ++load_fp_reg: ++ sub w11, w11, #1 ++ add x13, x13, #8 ++ br x13 ++ ++fp_reg_handlers: ++ fmov d0, x9 ++ b scan_sig ++ fmov d1, x9 ++ b scan_sig ++ fmov d2, x9 ++ b scan_sig ++ fmov d3, x9 ++ b scan_sig ++ fmov d4, x9 ++ b scan_sig ++ fmov d5, x9 ++ b scan_sig ++ fmov d6, x9 ++ b scan_sig ++ fmov d7, x9 ++ b scan_sig ++ ++stack_push: ++ str x9, [x14], #8 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++ blr x16 ++ ++ mov sp, x29 /* Pop argument area */ ++ ++ ldrb w9, [x19] /* Return type */ ++ ++ cmp w9, #86 /* 'V' */ ++ b.eq return ++ ++ cmp w9, #68 /* 'D' */ ++ b.ne 2f ++ str d0, [x20], #16 ++ b return ++2: ++ cmp w9, #70 /* 'F' */ ++ b.ne 3f ++ str s0, [x20], #8 ++ b return ++3: ++ cmp w9, #74 /* 'J' */ ++ b.ne 4f ++ str x0, [x20], #16 ++ b return ++4: ++ str x0, [x20], #8 ++ ++return: ++ mov x0, x20 /* return ostack */ ++ ++ ldp x19, x20, [x29, #16] ++ ldp x29, x30, [sp], #32 ++ ret ++#endif +diff --git a/src/os/linux/aarch64/dll_md.c b/src/os/linux/aarch64/dll_md.c +new file mode 100644 +index 0000000..189f8a8 +--- /dev/null ++++ b/src/os/linux/aarch64/dll_md.c +@@ -0,0 +1,59 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "jam.h" ++ ++#ifndef USE_FFI ++ ++int nativeExtraArg(MethodBlock *mb) { ++ char *sig = mb->type; ++ int stack_args = 0; ++ int int_args = 6; ++ int fp_args = 8; ++ ++ while(*++sig != ')') ++ switch(*sig) { ++ case 'F': ++ case 'D': ++ if(fp_args == 0) ++ stack_args += 8; ++ else ++ fp_args--; ++ ++ default: ++ if(int_args == 0) ++ stack_args += 8; ++ else ++ int_args--; ++ ++ if(*sig == '[') ++ while(*++sig == '['); ++ if(*sig == 'L') ++ while(*++sig != ';'); ++ break; ++ } ++ ++ /* Ensure the stack remains 16 byte aligned. */ ++ return (stack_args + 15) & ~15; ++} ++ ++#endif +diff --git a/src/os/linux/aarch64/init.c b/src/os/linux/aarch64/init.c +new file mode 100644 +index 0000000..b21dc55 +--- /dev/null ++++ b/src/os/linux/aarch64/init.c +@@ -0,0 +1,51 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "arch/aarch64.h" ++ ++/* Length in bytes of the smallest line in the host system's data cache */ ++unsigned char aarch64_data_cache_line_len; ++ ++/* Mask used to align a virtual address to a line in the data cache */ ++uintptr_t aarch64_data_cache_line_mask; ++ ++/* Length in bytes of the smallest line in the host system's instruction ++ cache */ ++unsigned char aarch64_instruction_cache_line_len; ++ ++/* Mask used to align a virtual address to a line in the instruction cache */ ++uintptr_t aarch64_instruction_cache_line_mask; ++ ++void initialisePlatform() { ++ unsigned int cache_type; ++ ++ /* Extract information from the cache-type register, which describes aspects ++ of the host's cache configuration */ ++ __asm__ ("mrs %0, ctr_el0" : "=r" (cache_type)); ++ ++ aarch64_data_cache_line_len = 4 << ((cache_type >> 16) & 0x0f); ++ aarch64_data_cache_line_mask = ~(aarch64_data_cache_line_len - 1); ++ ++ aarch64_instruction_cache_line_len = 4 << (cache_type & 0x0f); ++ aarch64_instruction_cache_line_mask = ++ ~(aarch64_instruction_cache_line_len - 1); ++} +-- +2.26.2 + diff --git a/gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch b/gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch new file mode 100644 index 0000000000..5415c27a62 --- /dev/null +++ b/gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch @@ -0,0 +1,35 @@ +From ca11b53896365c948426974cb90e8f71c70d123b Mon Sep 17 00:00:00 2001 +From: Simon South +Date: Sun, 31 May 2020 20:36:43 -0400 +Subject: [PATCH] Guard floating-point opcodes with explicit memory barrier + +--- + src/interp/engine/interp-inlining.h | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/src/interp/engine/interp-inlining.h b/src/interp/engine/interp-inlining.h +index 3339b0e..4ee5c5a 100644 +--- a/src/interp/engine/interp-inlining.h ++++ b/src/interp/engine/interp-inlining.h +@@ -78,8 +78,17 @@ + 4.3, we need to insert a label, and ensure its address + is taken (to stop it being optimised out). However, + this reduces performance on PowerPC by approx 1 - 2%. ++ ++ With gcc 5 and newer an asm statement with a "memory" ++ clobber argument explicitly sets a memory barrier for the ++ compiler, preventing it from reordering memory accesses ++ in a way that breaks decaching. + */ +-#if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) ++#if (__GNUC__ > 4) ++#define DEF_GUARD_TABLE(level) /* none */ ++#define GUARD(opcode, level) __asm__("" ::: "memory"); ++#define GUARD_TBLS /* none */ ++#elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) + #define DEF_GUARD_TABLE(level) DEF_HANDLER_TABLE(level, GUARD) + #define GUARD(opcode, level) label(opcode, level, GUARD) + #define GUARD_TBLS , HNDLR_TBLS(GUARD) +-- +2.26.2 + -- cgit v1.2.3 From ca57048444b5a2d316818bb5bda35ae6e1fd2f61 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:43:37 +0200 Subject: gnu: libdrm: Update to 2.4.102. * gnu/packages/patches/libdrm-realpath-virtio.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/xdisorg.scm (libdrm): Update to 2.4.102. [source](patches): Remove. --- gnu/local.mk | 1 - gnu/packages/patches/libdrm-realpath-virtio.patch | 42 ----------------------- gnu/packages/xdisorg.scm | 5 ++- 3 files changed, 2 insertions(+), 46 deletions(-) delete mode 100644 gnu/packages/patches/libdrm-realpath-virtio.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 7f9ad1f97b..5fe33a8335 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1209,7 +1209,6 @@ dist_patch_DATA = \ %D%/packages/patches/libbase-use-own-logging.patch \ %D%/packages/patches/libbonobo-activation-test-race.patch \ %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \ - %D%/packages/patches/libdrm-realpath-virtio.patch \ %D%/packages/patches/libextractor-exiv2.patch \ %D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch \ %D%/packages/patches/libgit2-mtime-0.patch \ diff --git a/gnu/packages/patches/libdrm-realpath-virtio.patch b/gnu/packages/patches/libdrm-realpath-virtio.patch deleted file mode 100644 index b7d85160b4..0000000000 --- a/gnu/packages/patches/libdrm-realpath-virtio.patch +++ /dev/null @@ -1,42 +0,0 @@ -Only check for for relative path on virtio devices. Otherwise it could -break driver loading in some circumstances, notably the IceCat sandbox. - -https://gitlab.freedesktop.org/mesa/drm/-/issues/39 - -Taken from upstream: -https://gitlab.freedesktop.org/mesa/drm/-/commit/57df07572ce45a1b60bae6fb89770388d3abd6dd - -diff --git a/xf86drm.c b/xf86drm.c ---- a/xf86drm.c -+++ b/xf86drm.c -@@ -3103,15 +3103,18 @@ static int drmParseSubsystemType(int maj, int min) - int subsystem_type; - - snprintf(path, sizeof(path), "/sys/dev/char/%d:%d/device", maj, min); -- if (!realpath(path, real_path)) -- return -errno; -- snprintf(path, sizeof(path), "%s", real_path); - - subsystem_type = get_subsystem_type(path); -+ /* Try to get the parent (underlying) device type */ - if (subsystem_type == DRM_BUS_VIRTIO) { -+ /* Assume virtio-pci on error */ -+ if (!realpath(path, real_path)) -+ return DRM_BUS_VIRTIO; - strncat(path, "/..", PATH_MAX); - subsystem_type = get_subsystem_type(path); -- } -+ if (subsystem_type < 0) -+ return DRM_BUS_VIRTIO; -+ } - return subsystem_type; - #elif defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD__) - return DRM_BUS_PCI; -@@ -3920,6 +3923,7 @@ process_device(drmDevicePtr *device, const char *d_name, - - switch (subsystem_type) { - case DRM_BUS_PCI: -+ case DRM_BUS_VIRTIO: - return drmProcessPciDevice(device, node, node_type, maj, min, - fetch_deviceinfo, flags); - case DRM_BUS_USB: diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 20702c3a4f..98d52cc392 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -497,7 +497,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.101") + (version "2.4.102") (source (origin (method url-fetch) (uri (string-append @@ -505,8 +505,7 @@ rasterisation.") version ".tar.xz")) (sha256 (base32 - "19vqbhqljhln0lrpnv3s7y3lkhsdcp76dl8bhqj3cis9ism1pwyx")) - (patches (search-patches "libdrm-realpath-virtio.patch")))) + "0nx0bd9dhymdsd99v4ifib77yjirkvkxf5hzdkbr7qr8dhrzkjwb")))) (build-system meson-build-system) (arguments `(#:configure-flags -- cgit v1.2.3 From 62df18d305bc99a685f6621726b71572771fa09c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jul 2020 13:18:40 +0200 Subject: gnu: dconf: Update to 0.36.0. * gnu/packages/patches/dconf-meson-0.52.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/gnome.scm (dconf): Update to 0.36.0. [source](patches): Remove. --- gnu/local.mk | 1 - gnu/packages/gnome.scm | 5 ++--- gnu/packages/patches/dconf-meson-0.52.patch | 19 ------------------- 3 files changed, 2 insertions(+), 23 deletions(-) delete mode 100644 gnu/packages/patches/dconf-meson-0.52.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 5fe33a8335..4d04c322e7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -880,7 +880,6 @@ dist_patch_DATA = \ %D%/packages/patches/dbus-CVE-2020-12049.patch \ %D%/packages/patches/dbus-c++-gcc-compat.patch \ %D%/packages/patches/dbus-c++-threading-mutex.patch \ - %D%/packages/patches/dconf-meson-0.52.patch \ %D%/packages/patches/debops-constants-for-external-program-names.patch \ %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \ %D%/packages/patches/desmume-gcc6-fixes.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8afeb5ea58..f05af6be13 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3478,17 +3478,16 @@ and RDP protocols.") (define-public dconf (package (name "dconf") - (version "0.34.0") + (version "0.36.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) - (patches (search-patches "dconf-meson-0.52.patch")) (sha256 (base32 - "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll")))) + "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz")))) (build-system meson-build-system) (propagated-inputs ;; In Requires of dconf.pc. diff --git a/gnu/packages/patches/dconf-meson-0.52.patch b/gnu/packages/patches/dconf-meson-0.52.patch deleted file mode 100644 index c636edc108..0000000000 --- a/gnu/packages/patches/dconf-meson-0.52.patch +++ /dev/null @@ -1,19 +0,0 @@ -Fix build failure with Meson 0.52. - -Taken from upstream: -https://gitlab.gnome.org/GNOME/dconf/commit/7ad890fb7a2ec90a777a756a1fa20a615ec7245e -https://gitlab.gnome.org/GNOME/dconf/merge_requests/54 - -diff --git a/client/meson.build b/client/meson.build -index f3b7122cb05bfa7bb481c487e3cd052aa1ad58e5..de6387e2cac2aba12b83f2614c277bada434fd16 100644 ---- a/client/meson.build -+++ b/client/meson.build -@@ -28,7 +28,7 @@ libdconf_client = static_library( - - libdconf_client_dep = declare_dependency( - dependencies: gio_dep, -- link_whole: libdconf_client, -+ link_with: libdconf_client, - ) - - libdconf = shared_library( -- cgit v1.2.3 From 2ff8b5bafc80b559d4da94562371f69fe1d364aa Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Thu, 10 Sep 2020 17:25:33 +0200 Subject: gnu: Adapt Lisp packages to changes in asdf-build-system. * gnu/packages/patches/sbcl-graph-asdf-definitions.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/lisp-xyz.scm (sbcl-cl-ppcre)[arguments]: Add 'disable-ppcre-unicode' phase. (sbcl-cl-unicode-base): Remove variable and merge its content in ... (sbcl-cl-unicode): ... here. (sbcl-cl-ppcre-unicode)[arguments]: Add 'disable-ppcre' phase. (sbcl-cl-aa, sbcl-cl-paths, sbcl-cl-paths-ttf): Remove variables and merge their contents in ... (sbcl-cl-vectors): ... here. (sbcl-spatial-trees)[arguments]: Remove 'asd-file' keyword. (sbcl-clx-truetype)[inputs]: Remove 'cl-paths-ttf'. (sbcl-slynk-boot0, sbcl-slynk-arglists, sbcl-slynk-util, sbcl-slynk-fancy-inspector, sbcl-slynk-package-fu, sbcl-slynk-mrepl, sbcl-slynk-trace-dialog, sbcl-slynk-profiler, sbcl-slynk-stickers, sbcl-slynk-indentation, sbcl-slynk-retro, slynk-systems): Remove variables and merge their contents in ... (sbcl-slynk): ... here. (uglify-js)[arguments]: Fix ASDF initialization in Lisp script. (sbcl-cl-yacc)[arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. (sbcl-3bmd-ext-code-blocks): Remove variable and merge its content in ... (sbcl-3bmd): ... here. (sbcl-slime-swank, ecl-slime-swank): New variables. (sbcl-mgl-pax)[propagated-inputs]: Remove and move the content in ... [inputs]: ... here. Remove '3bmd-ext-code-blocks'. (sbcl-prove-asdf): Remove variable and merge its content in ... (sbcl-prove): ... here. (sbcl-proc-parse)[native-inputs]: Remove 'prove-asdf'. (sbcl-ascii-strings, sbcl-simple-scanf): Remove variables and merge their contents in ... (sbcl-cl-string-match): ... here. (sbcl-queues.simple-queue, sbcl-queues.simple-cqueue, sbcl-queues.priority-queue, sbcl-queues.priority-cqueue): Remove variables and merge their contents in ... (sbcl-queues): ... here. (sbcl-cffi-bootstrap, sbcl-cffi-toolchain, sbcl-cffi-libffi, sbcl-cffi-grovel, sbcl-cffi-uffi-compat): Remove variables and merge their contents in ... (sbcl-cffi): ... here. (ecl-cffi): New variable. (sbcl-cl-sqlite)[arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. (sbcl-cl-cffi-gtk-boot0, sbcl-cl-cffi-gtk-glib, sbcl-cl-cffi-gtk-gobject, sbcl-cl-cffi-gtk-gio, sbcl-cl-cffi-gtk-cairo, sbcl-cl-cffi-gtk-pango, sbcl-cl-cffi-gtk-gdk-pixbuf, sbcl-cl-cffi-gtk-gdk): Remove variables and merge their contents in ... (sbcl-cl-cffi-gtk): ... here. (sbcl-cl-webkit)[arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. (sbcl-usocket-boot0, sbcl-usocket-server): Remove variables and merge their contents in ... (sbcl-usocket): ... here. (sbcl-cl-annot)[arguments]: Remove. (sbcl-cl-syntax-annot, sbcl-cl-syntax-interpol): Remove variables and merge their contents in ... (sbcl-cl-syntax): ... here. (sbcl-cl-utilities)[arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. (sbcl-quri, sbcl-myway, sbcl-subseq, sbcl-smart-buffer)[native-inputs]: Remove 'prove-asdf'. (sbcl-fast-http)[native-inputs]: Remove 'prove-asdf' and 'cl-syntax-interpol'. Add 'cl-syntax'. (sbcl-static-vectors)[native-inputs]: Remove 'cffi-grovel'. Add 'cffi'. (sbcl-jonathan)[native-inputs]: Remove 'prove-asdf'. [inputs]: Remove 'cl-syntax-annot'. (sbcl-http-body)[native-inputs]: Remove 'prove-asdf'. (sbcl-lack-request, sbcl-lack-response, sbcl-lack-component, sbcl-lack-util, sbcl-lack-middleware-backtrace, sbcl-lack-middleware-static): Remove variables and merge their contents in ... (sbcl-lack): ... here. (sbcl-ningle)[native-inputs]: Remove 'prove-asdf'. [inputs]: Remove 'cl-syntax-annot', 'lack-request', 'lack-response' and 'lack-component'. Add 'lack'. (clack-commit, clack-revision, sbcl-clack-handler-fcgi, sbcl-clack-socket, sbcl-clack-handler-hunchentoot): Remove variables and merge their contents in ... (sbcl-clack): ... here. (sbcl-parse-declarations)[arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. (sbcl-burgled-batteries3)[inputs]: Remove 'cffi-grovel'. (sbcl-trivial-utf-8)[arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. (sbcl-iolib.asdf, sbcl-iolib.conf, sbcl-iolib.common-lisp, sbcl-iolib.base, sbcl-iolib.grovel, sbcl-iolib+syscalls, sbcl-iolib+multiplex, sbcl-iolib+streams, sbcl-iolib+sockets): Remove variables and merge their contents in ... (sbcl-iolib): ... here. (sbcl-cxml+xml, sbcl-cxml+dom, sbcl-cxml+klacks, sbcl-cxml+test): Remove variables and merge their contents in ... (sbcl-cxml): ... here. (sbcl-cl-cookie)[native-inputs]: Remove 'prove-asdf'. (sbcl-dexador)[native-inputs]: Remove 'prove-asdf' and 'lack-request'. Add 'lack". (sbcl-fare-quasiquote-optima, sbcl-fare-quasiquote-readtable, sbcl-fare-quasiquote-extras): Remove variables and merge their contents in ... (sbcl-fare-quasiquote): ... here. (sbcl-trivia.level0, sbcl-trivia.level1, sbcl-trivia.level2): Remove variables and merge their contents in ... (sbcl-trivia.trivial): ... here. (sbcl-trivia.balland2006, sbcl-trivia.ppcre, sbcl-trivia.quasiquote, sbcl-trivia.cffi): Remove variables and merge their contents in ... (sbcl-trivia): ... here. (sbcl-cl-str)[native-inputs]: Remove 'prove-asdf'. [arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. (sbcl-dbus): New variable. (sbcl-s-sysdeps)[inputs]: Remove 'usocket-server'. (sbcl-periods-series): Remove variable and merge its content in ... (sbcl-periods): ... here. (sbcl-fprog): Remove variable and merge its content in ... (sbcl-cambl): ... here. (sbcl-cl-ledger)[inputs]: Remove 'periods-series'. Add 'periods'. (sbcl-serapeum)[inputs]: Remove 'trivia.quasiquote' and 'fare-quasiquote-extras'. Add 'fare-quasiquote'. (sbcl-stefil)[native-inputs]: Remove. [inputs]: Add swank. (sbcl-graph-dot, sbcl-graph-json): Remove variables and merge their contents in ... (sbcl-graph): ... here. (sbcl-foreign-array, sbcl-physical-dimension, sbcl-science-data): Remove variables and merge their contents in ... (sbcl-antik-base): ... here. (sbcl-gsll)[inputs]: Remove 'cffi-grovel', 'cffi-libffi' and 'foreign-array'. Add 'antik-base' and 'cffi'. (sbcl-antik)[inputs]: Remove 'physical-dimension". Add 'antik-base'. [arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. Add 'fix-build' phase. (sbcl-symbol-munger-boot0): Remove variable and merge its content in ... (sbcl-symbol-munger): ... here. (sbcl-lisp-unit2-boot0): Remove variable and merge its content in ... (sbcl-lisp-unit2): ... here. (sbcl-cl-ana-boot0, sbcl-cl-ana.pathname-utils, sbcl-cl-ana.package-utils, sbcl-cl-ana.string-utils, sbcl-cl-ana.functional-utils, sbcl-cl-ana.list-utils, sbcl-cl-ana.generic-math, sbcl-cl-ana.math-functions, sbcl-cl-ana.calculus, sbcl-cl-ana.symbol-utils, sbcl-cl-ana.macro-utils, sbcl-cl-ana.binary-tree, sbcl-cl-ana.tensor, sbcl-cl-ana.error-propagation, sbcl-cl-ana.quantity, sbcl-cl-ana.table, sbcl-cl-ana.table-utils, sbcl-cl-ana.hdf-cffi, sbcl-cl-ana.int-char, sbcl-cl-ana.memoization, sbcl-cl-ana.typespec, sbcl-cl-ana.hdf-typespec, sbcl-cl-ana.hdf-utils, typed-table, sbcl-cl-ana.hdf-table, sbcl-cl-ana.gsl-cffi, sbcl-cl-ana.ntuple-table, sbcl-cl-ana.csv-table, sbcl-cl-ana.reusable-table, sbcl-cl-ana.linear-algebra, sbcl-cl-ana.lorentz, sbcl-cl-ana.clos-utils, sbcl-cl-ana.hash-table-utils, sbcl-cl-ana.map, sbcl-cl-ana.fitting, sbcl-cl-ana.histogram, sbcl-cl-ana.file-utils, sbcl-cl-ana.statistics, sbcl-cl-ana.gnuplot-interface, sbcl-cl-ana.plotting, sbcl-cl-ana.table-viewing, sbcl-cl-ana.serialization, sbcl-cl-ana.makeres, sbcl-cl-ana.makeres-macro, sbcl-cl-ana.makeres-block, sbcl-cl-ana.makeres-progress, sbcl-cl-ana.makeres-table, sbcl-cl-ana.makeres-graphviz, sbcl-cl-ana.makeres-branch, sbcl-cl-ana.utils, sbcl-cl-ana.statistical-learning): Remove variables and merge their contents in ... (sbcl-cl-ana): ... here. (sbcl-cl-libuv)[inputs]: Remove 'cffi-grovel'. (sbcl-cl-async-base, sbcl-cl-async-util, sbcl-cl-async-repl, sbcl-cl-async-ssl): Remove variables and merge their contents in ... (sbcl-cl-async): ... here. (sbcl-ltk-mw, sbcl-ltk-remote): Remove variables and merge their contents in ... (sbcl-ltk): ... here. [arguments]: Add 'fix-build' phase. (sbcl-hdf5-cffi)[inputs]: Remove 'cffi-grovel'. [arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. (sbcl-cl-randist, sbcl-float-features, sbcl-function-cache, sbcl-type-r, sbcl-trivialib-type-unify, sbcl-specialized-function, sbcl-constantfold, sbcl-gtype, sbcl-numcl)[arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. (sbcl-pzmq)[inputs]: Remove 'cffi-grovel'. (sbcl-simple-date, sbcl-cl-postgres, sbcl-simple-date-postgrs-glue, sbcl-s-sql): Remove variables and merge their contents in ... (sbcl-postmodern): ... here. (sbcl-dbd-mysql, sbcl-dbd-postgres, sbcl-dbd-sqlite3): Remove variables and merge their contents in ... (sbcl-dbi): ... here. (sbcl-clsql-uffi, sbcl-clsql-sqlite3, sbcl-clsql-postgresql, sbcl-clsql-postgresql-socket3, sbcl-clsql-mysql): Remove variables and merge their contents in ... (sbcl-clsql): ... here. (sbcl-sycamore)[arguments]: Remove 'asd-file' keyword and add 'asd-files' keyword. (sbcl-osicat)[native-inputs]: Remove 'cffi-grovel'. (sbcl-clx-xembed, sbcl-quantile-estimator): Remove 'asd-system-name' keyword and add 'asd-systems' keyword. (sbcl-prometheus.collectors.sbcl, sbcl-prometheus.collectors.process, sbcl-prometheus.formats.test, sbcl-prometheus.exposers.hunchentoot, sbcl-prometheus.pushgateway): Remove variables and merge their contents in ... (sbcl-prometheus): ... here. (sbcl-sxql)[native-inputs]: Remove 'prove-asdf'. [inputs]: Remove 'cl-syntax-annot'. Add 'cl-syntax'. (sbcl-1am)[arguments]: Remove 'asd-system-name' keyword and add 'asd-systems' keyword. (sbcl-cl-rdkafka)[inputs]: Remove 'cffi-grovel'. (sbcl-clump-2-3-tree, sbcl-clum-binary-tree): Remove variables and merge their contents in ... (sbcl-clump): ... here. (sbcl-cluffer-base, sbcl-cluffer-standard-line, sbcl-cluffer-standard-buffer, sbcl-cluffer-simple-line, sbcl-cluffer-simple-buffer): Remove variables and merge their contents in ... (sbcl-cluffer): ... here. (sbcl-cl-libsvm-format, sbcl-cl-online-learning, sbcl-cl-random-forest)[native-inputs]: Remove 'prove-asdf'. (sbcl-cl-freetype2)[inputs]: Remove 'cffi-grovel'. (sbcl-clim-lisp, sbcl-clim-basic, sbcl-clim-core, sbcl-esa-mcclim, sbcl-mcclim-fonts, sbcl-automaton, sbcl-persistent, sbcl-drei-mcclim, sbcl-clim, sbcl-mcclim-backend-common, sbcl-mcclim-clx, sbcl-mcclim-fonts-truetype, sbcl-mcclim-fonts-clx-truetype, sbcl-mcclim-clx-truetype, sbcl-mcclim-fontconfig, sbcl-mcclim-harfbuzz, sbcl-mcclim-fonts-clx-truetype, sbcl-mcclim-clx-freetype, sbcl-mcclim-render, sbcl-mcclim-clx-fb, xbcl-mcclim-null, sbcl-clim-postscript-font, sbcl-clim-postscript, sbcl-clim-pdf, sbcl-mcclim-looks, sbcl-mcclim-franz, sbcl-mcclim-bezier-core, sbcl-mcclim-bezier-clx, sbcl-mcclim-bezier, sbcl-mcclim-bitmaps, sbcl-conditional-commands, sbcl-mcclim-layouts-tab, sbcl-mcclim-extensions, sbcl-mcclim-test-util, sbcl-mcclim-raster-image, sbcl-clim-examples): Remove variables and merge their contents in ... (sbcl-mcclim): ... here. (sbcl-mito-core, sbcl-mito-migration, sbcl-lack-middleware-mito): Remove variables and merge their contents in ... (sbcl-mito): ... here. (sbcl-kebab)[native-inputs]: Remove 'prove-asdf'. (sbcl-datafly)[native-inputs]: Remove 'prove-asdf' and 'dbd-sqlite3'. [inputs]: Remove 'cl-syntax-annot'. Add 'cl-syntax'. (sbcl-caveman)[inputs]: Remove 'lack-request', 'lack-response' and 'cl-syntax-annot'. Add 'lack' and 'cl-syntax'. [arguments]: Remove 'asd-file' and 'asd-system-name' keywords and add 'asd-files' and 'asd-systems' keywords. * gnu/packages/wm.scm (stumpwm, sbcl-stumpwm-ttf-fontsn, sbcl-stumpwm-pass, sbcl-stumpwm-globalwindows, sbcl-stumpwm-swm-gaps, sbcl-stumpwm-net, sbcl-stumpwm-wifi, sbcl-stumpwm-stumptray, sbcl-stumpwm-kbd-layouts): Remove 'asd-system-name' keyword and add 'asd-systems' keyword. (stumpwm-with-slynk)[arguments]: Remove references to variables that don't exist anymore. --- gnu/local.mk | 1 - gnu/packages/lisp-xyz.scm | 6122 +++++--------------- .../patches/sbcl-graph-asdf-definitions.patch | 70 - gnu/packages/wm.scm | 29 +- 4 files changed, 1437 insertions(+), 4785 deletions(-) delete mode 100644 gnu/packages/patches/sbcl-graph-asdf-definitions.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 1baa8405c5..303f0d75f3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1555,7 +1555,6 @@ dist_patch_DATA = \ %D%/packages/patches/rust-reproducible-builds.patch \ %D%/packages/patches/rust-openssl-sys-no-vendor.patch \ %D%/packages/patches/rxvt-unicode-escape-sequences.patch \ - %D%/packages/patches/sbcl-graph-asdf-definitions.patch \ %D%/packages/patches/scalapack-blacs-mpi-deprecations.patch \ %D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scotch-build-parallelism.patch \ diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index f73709515f..d1dd6c111f 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -321,7 +321,18 @@ streams which are similar to string streams.") (sha256 (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi")))) (build-system asdf-build-system/sbcl) - (native-inputs `(("flexi-streams" ,sbcl-flexi-streams))) + (native-inputs + `(("flexi-streams" ,sbcl-flexi-streams))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-ppcre-unicode + ;; cl-ppcre and cl-ppcre-unicode are put in different packages + ;; to work around the circular dependency between edicl/cl-ppcre + ;; and edicl/cl-unicode. + (lambda _ + (delete-file "cl-ppcre-unicode.asd") + #t))))) (synopsis "Portable regular expression library for Common Lisp") (description "CL-PPCRE is a portable regular expression library for Common Lisp, which is compatible with perl. It is pretty fast, thread-safe, and @@ -335,9 +346,9 @@ compatible with ANSI-compliant Common Lisp implementations.") (define-public ecl-cl-ppcre (sbcl-package->ecl-package sbcl-cl-ppcre)) -(define sbcl-cl-unicode-base +(define-public sbcl-cl-unicode (package - (name "sbcl-cl-unicode-base") + (name "sbcl-cl-unicode") (version "0.1.6") (source (origin (method git-fetch) @@ -349,9 +360,8 @@ compatible with ANSI-compliant Common Lisp implementations.") (base32 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza")))) (build-system asdf-build-system/sbcl) - (arguments - '(#:asd-file "cl-unicode.asd" - #:asd-system-name "cl-unicode/base")) + (native-inputs + `(("flexi-streams" ,sbcl-flexi-streams))) (inputs `(("cl-ppcre" ,sbcl-cl-ppcre))) (home-page "http://weitz.de/cl-unicode/") @@ -361,23 +371,33 @@ is compatible with perl. It is pretty fast, thread-safe, and compatible with ANSI-compliant Common Lisp implementations.") (license license:bsd-2))) -(define-public sbcl-cl-unicode - (package - (inherit sbcl-cl-unicode-base) - (name "sbcl-cl-unicode") - (inputs - `(("cl-unicode/base" ,sbcl-cl-unicode-base) - ,@(package-inputs sbcl-cl-unicode-base))) - (native-inputs - `(("flexi-streams" ,sbcl-flexi-streams))) - (arguments '()))) - (define-public ecl-cl-unicode (sbcl-package->ecl-package sbcl-cl-unicode)) (define-public cl-unicode (sbcl-package->cl-source-package sbcl-cl-unicode)) +(define-public sbcl-cl-ppcre-unicode + (package (inherit sbcl-cl-ppcre) + (name "sbcl-cl-ppcre-unicode") + (inputs + `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre) + ("sbcl-cl-unicode" ,sbcl-cl-unicode))) + (arguments + `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-ppcre + ;; cl-ppcre and cl-ppcre-unicode are put in different packages + ;; to work around the circular dependency between edicl/cl-ppcre + ;; and edicl/cl-unicode. + (lambda _ + (delete-file "cl-ppcre.asd") + #t))))))) + +(define-public ecl-cl-ppcre-unicode + (sbcl-package->ecl-package sbcl-cl-ppcre-unicode)) + (define-public sbcl-zpb-ttf (package (name "sbcl-zpb-ttf") @@ -407,9 +427,9 @@ file.") (define-public cl-zpb-ttf (sbcl-package->cl-source-package sbcl-zpb-ttf)) -(define-public sbcl-cl-aa +(define-public sbcl-cl-vectors (package - (name "sbcl-cl-aa") + (name "sbcl-cl-vectors") (version "0.1.5") (source (origin @@ -420,67 +440,21 @@ file.") (base32 "04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh")))) (build-system asdf-build-system/sbcl) - (arguments '(#:asd-file "cl-aa.asd")) - (home-page "http://projects.tuxee.net/cl-vectors/") - (synopsis "Polygon rasterizer") - (description - "This is a Common Lisp library implementing the AA polygon rasterization -algorithm from the @url{http://antigrain.com, Antigrain} project.") - (license license:expat))) - -(define-public ecl-cl-aa - (sbcl-package->ecl-package sbcl-cl-aa)) - -(define-public cl-aa - (sbcl-package->cl-source-package sbcl-cl-aa)) - -(define-public sbcl-cl-paths - (package - (inherit sbcl-cl-aa) - (name "sbcl-cl-paths") - (arguments '(#:asd-file "cl-paths.asd")) - (synopsis "Facilities to create and manipulate vectorial paths") - (description - "This package provides facilities to create and manipulate vectorial -paths."))) - -(define-public ecl-cl-paths - (sbcl-package->ecl-package sbcl-cl-paths)) - -(define-public cl-paths - (sbcl-package->cl-source-package sbcl-cl-paths)) - -(define-public sbcl-cl-paths-ttf - (package - (inherit sbcl-cl-aa) - (name "sbcl-cl-paths-ttf") - (arguments '(#:asd-file "cl-paths-ttf.asd")) (inputs - `(("cl-paths" ,sbcl-cl-paths) - ("zpb-ttf" ,sbcl-zpb-ttf))) - (synopsis "Facilities to create and manipulate vectorial paths") - (description - "This package provides facilities to create and manipulate vectorial -paths."))) - -(define-public ecl-cl-paths-ttf - (sbcl-package->ecl-package sbcl-cl-paths-ttf)) - -(define-public cl-paths-ttf - (sbcl-package->cl-source-package sbcl-cl-paths-ttf)) - -(define-public sbcl-cl-vectors - (package - (inherit sbcl-cl-aa) - (name "sbcl-cl-vectors") - (arguments '(#:asd-file "cl-vectors.asd")) - (inputs - `(("cl-aa" ,sbcl-cl-aa) - ("cl-paths" ,sbcl-cl-paths))) + `(("zpb-ttf" ,sbcl-zpb-ttf))) + (arguments + '(#:asd-files '("cl-vectors.asd" + "cl-aa.asd" + "cl-paths.asd" + "cl-paths-ttf.asd") + #:asd-systems '("cl-vectors" + "cl-paths-ttf"))) + (home-page "http://projects.tuxee.net/cl-vectors/") (synopsis "Create, transform and render anti-aliased vectorial paths") (description "This is a pure Common Lisp library to create, transform and render -anti-aliased vectorial paths."))) +anti-aliased vectorial paths.") + (license license:expat))) (define-public ecl-cl-vectors (sbcl-package->ecl-package sbcl-cl-vectors)) @@ -508,7 +482,6 @@ anti-aliased vectorial paths."))) (build-system asdf-build-system/sbcl) (arguments '(#:tests? #f ; spatial-trees.test requires spatial-trees.nns - #:asd-file "spatial-trees.asd" #:test-asd-file "spatial-trees.test.asd")) (native-inputs `(("fiveam" ,sbcl-fiveam))) @@ -650,7 +623,6 @@ from other CLXes around the net.") `(("clx" ,sbcl-clx) ("zpb-ttf" ,sbcl-zpb-ttf) ("cl-vectors" ,sbcl-cl-vectors) - ("cl-paths-ttf" ,sbcl-cl-paths-ttf) ("cl-fad" ,sbcl-cl-fad) ("cl-store" ,sbcl-cl-store) ("trivial-features" ,sbcl-trivial-features))) @@ -660,30 +632,13 @@ from other CLXes around the net.") antialiased TrueType font rendering using CLX and XRender extension.") (license license:expat)))) -(define-public sbcl-cl-ppcre-unicode - (package (inherit sbcl-cl-ppcre) - (name "sbcl-cl-ppcre-unicode") - (arguments - `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found" - #:asd-file "cl-ppcre-unicode.asd")) - (inputs - `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre) - ("sbcl-cl-unicode" ,sbcl-cl-unicode))))) - -(define-public ecl-cl-ppcre-unicode - (sbcl-package->ecl-package sbcl-cl-ppcre-unicode)) - -;; The slynk that users expect to install includes all of slynk's contrib -;; modules. Therefore, we build the base module and all contribs first; then -;; we expose the union of these as `sbcl-slynk'. The following variable -;; describes the base module. -(define sbcl-slynk-boot0 +(define-public sbcl-slynk (let ((revision "3") ;; Update together with emacs-sly. (commit "6a2f543cb21f14104c2253af5a1427b884a987ae")) (package - (name "sbcl-slynk-boot0") - (version (string-append "1.0.0-beta-" revision "." (string-take commit 7))) + (name "sbcl-slynk") + (version (git-version "1.0.0-beta" revision commit)) (source (origin (method git-fetch) @@ -693,7 +648,7 @@ antialiased TrueType font rendering using CLX and XRender extension.") (commit commit))) (sha256 (base32 "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144")) - (file-name (string-append "slynk-" version "-checkout")) + (file-name (git-file-name "slynk" version)) (modules '((guix build utils) (ice-9 ftw))) (snippet @@ -724,9 +679,41 @@ antialiased TrueType font rendering using CLX and XRender extension.") (scandir "slynk")) #t)))) (build-system asdf-build-system/sbcl) + (outputs '("out" "image")) (arguments `(#:tests? #f ; No test suite - #:asd-system-name "slynk")) + #:asd-files '("slynk.asd") + #:asd-systems '("slynk" + "slynk/arglists" + "slynk/util" + "slynk/fancy-inspector" + "slynk/package-fu" + "slynk/mrepl" + "slynk/trace-dialog" + "slynk/profiler" + "slynk/stickers" + "slynk/indentation" + "slynk/retro") + #:phases + (modify-phases %standard-phases + (add-after 'create-asdf-configuration 'build-image + (lambda* (#:key outputs #:allow-other-keys) + (build-image (string-append + (assoc-ref %outputs "image") + "/bin/slynk") + %outputs + #:dependencies '("slynk" + "slynk/arglists" + "slynk/util" + "slynk/fancy-inspector" + "slynk/package-fu" + "slynk/mrepl" + "slynk/trace-dialog" + "slynk/profiler" + "slynk/stickers" + "slynk/indentation" + "slynk/retro")) + #t))))) (synopsis "Common Lisp IDE for Emacs") (description "SLY is a fork of SLIME, an IDE backend for Common Lisp. It also features a completely redesigned REPL based on Emacs's own @@ -739,193 +726,9 @@ multiple inspectors with independent history.") (define-public cl-slynk (package - (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0)) + (inherit (sbcl-package->cl-source-package sbcl-slynk)) (name "cl-slynk"))) -(define ecl-slynk-boot0 - (sbcl-package->ecl-package sbcl-slynk-boot0)) - -(define sbcl-slynk-arglists - (package - (inherit sbcl-slynk-boot0) - (name "sbcl-slynk-arglists") - (inputs `(("slynk" ,sbcl-slynk-boot0))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0) - ((#:asd-file _ "") "slynk.asd") - ((#:asd-system-name _ #f) "slynk/arglists"))))) - -(define ecl-slynk-arglists - (sbcl-package->ecl-package sbcl-slynk-arglists)) - -(define sbcl-slynk-util - (package - (inherit sbcl-slynk-boot0) - (name "sbcl-slynk-util") - (inputs `(("slynk" ,sbcl-slynk-boot0))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0) - ((#:asd-file _ "") "slynk.asd") - ((#:asd-system-name _ #f) "slynk/util"))))) - -(define ecl-slynk-util - (sbcl-package->ecl-package sbcl-slynk-util)) - -(define sbcl-slynk-fancy-inspector - (package - (inherit sbcl-slynk-arglists) - (name "sbcl-slynk-fancy-inspector") - (inputs `(("slynk-util" ,sbcl-slynk-util) - ,@(package-inputs sbcl-slynk-arglists))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists) - ((#:asd-system-name _ #f) "slynk/fancy-inspector"))))) - -(define ecl-slynk-fancy-inspector - (sbcl-package->ecl-package sbcl-slynk-fancy-inspector)) - -(define sbcl-slynk-package-fu - (package - (inherit sbcl-slynk-arglists) - (name "sbcl-slynk-package-fu") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists) - ((#:asd-system-name _ #f) "slynk/package-fu"))))) - -(define ecl-slynk-package-fu - (sbcl-package->ecl-package sbcl-slynk-package-fu)) - -(define sbcl-slynk-mrepl - (package - (inherit sbcl-slynk-fancy-inspector) - (name "sbcl-slynk-mrepl") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists) - ((#:asd-system-name _ #f) "slynk/mrepl"))))) - -(define ecl-slynk-mrepl - (sbcl-package->ecl-package sbcl-slynk-mrepl)) - -(define sbcl-slynk-trace-dialog - (package - (inherit sbcl-slynk-arglists) - (name "sbcl-slynk-trace-dialog") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists) - ((#:asd-system-name _ #f) "slynk/trace-dialog"))))) - -(define ecl-slynk-trace-dialog - (sbcl-package->ecl-package sbcl-slynk-trace-dialog)) - -(define sbcl-slynk-profiler - (package - (inherit sbcl-slynk-arglists) - (name "sbcl-slynk-profiler") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists) - ((#:asd-system-name _ #f) "slynk/profiler"))))) - -(define ecl-slynk-profiler - (sbcl-package->ecl-package sbcl-slynk-profiler)) - -(define sbcl-slynk-stickers - (package - (inherit sbcl-slynk-arglists) - (name "sbcl-slynk-stickers") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists) - ((#:asd-system-name _ #f) "slynk/stickers"))))) - -(define ecl-slynk-stickers - (sbcl-package->ecl-package sbcl-slynk-stickers)) - -(define sbcl-slynk-indentation - (package - (inherit sbcl-slynk-arglists) - (name "sbcl-slynk-indentation") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists) - ((#:asd-system-name _ #f) "slynk/indentation"))))) - -(define ecl-slynk-indentation - (sbcl-package->ecl-package sbcl-slynk-indentation)) - -(define sbcl-slynk-retro - (package - (inherit sbcl-slynk-arglists) - (name "sbcl-slynk-retro") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists) - ((#:asd-system-name _ #f) "slynk/retro"))))) - -(define ecl-slynk-retro - (sbcl-package->ecl-package sbcl-slynk-retro)) - -(define slynk-systems - '("slynk" - "slynk-util" - "slynk-arglists" - "slynk-fancy-inspector" - "slynk-package-fu" - "slynk-mrepl" - "slynk-profiler" - "slynk-trace-dialog" - "slynk-stickers" - "slynk-indentation" - "slynk-retro")) - -(define-public sbcl-slynk - (package - (inherit sbcl-slynk-boot0) - (name "sbcl-slynk") - (inputs - `(("slynk" ,sbcl-slynk-boot0) - ("slynk-util" ,sbcl-slynk-util) - ("slynk-arglists" ,sbcl-slynk-arglists) - ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector) - ("slynk-package-fu" ,sbcl-slynk-package-fu) - ("slynk-mrepl" ,sbcl-slynk-mrepl) - ("slynk-profiler" ,sbcl-slynk-profiler) - ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog) - ("slynk-stickers" ,sbcl-slynk-stickers) - ("slynk-indentation" ,sbcl-slynk-indentation) - ("slynk-retro" ,sbcl-slynk-retro))) - (native-inputs `(("sbcl" ,sbcl))) - (build-system trivial-build-system) - (source #f) - (outputs '("out" "image")) - (arguments - `(#:modules ((guix build union) - (guix build utils) - (guix build lisp-utils)) - #:builder - (begin - (use-modules (ice-9 match) - (srfi srfi-1) - (guix build union) - (guix build lisp-utils)) - - (union-build - (assoc-ref %outputs "out") - (filter-map - (match-lambda - ((name . path) - (if (string-prefix? "slynk" name) path #f))) - %build-inputs)) - - (prepend-to-source-registry - (string-append (assoc-ref %outputs "out") "//")) - - (parameterize ((%lisp-type "sbcl") - (%lisp (string-append (assoc-ref %build-inputs "sbcl") - "/bin/sbcl"))) - (build-image (string-append - (assoc-ref %outputs "image") - "/bin/slynk") - %outputs - #:dependencies ',slynk-systems)) - #t))))) - (define-public ecl-slynk (package (inherit sbcl-slynk) @@ -1095,9 +898,14 @@ compressor. It works on data produced by @code{parse-js} to generate a (with-output-to-file script (lambda _ (format #t "#!~a/bin/sbcl --script + (require :asdf) - (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)" + (asdf:initialize-source-registry + #p\"~a/etc/common-lisp/source-registry.conf.d/\") + (asdf:initialize-output-translations + #p\"~a/etc/common-lisp/asdf-output-translations.conf.d/\")" (assoc-ref %build-inputs "sbcl") + (assoc-ref %build-inputs "sbcl-cl-uglify-js") (assoc-ref %build-inputs "sbcl-cl-uglify-js")) ;; FIXME: cannot use progn here because otherwise it fails to ;; find cl-uglify-js. @@ -1293,8 +1101,8 @@ GNU libiconv, but completely written in Common Lisp.") (file-name (string-append "cl-yacc-" version "-checkout")))) (build-system asdf-build-system/sbcl) (arguments - `(#:asd-file "yacc.asd" - #:asd-system-name "yacc")) + `(#:asd-files '("yacc.asd") + #:asd-systems '("yacc"))) (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc") (description "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit @@ -1569,9 +1377,13 @@ C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.") (arguments ;; FIXME: We need to specify the name because the build-system thinks ;; "3" is a version marker. - `(#:asd-system-name "3bmd")) + `(#:asd-files '("3bmd.asd" + "3bmd-ext-code-blocks.asd") + #:asd-systems '("3bmd" + "3bmd-ext-code-blocks"))) (inputs - `(("esrap" ,sbcl-esrap) + `(("colorize" ,sbcl-colorize) + ("esrap" ,sbcl-esrap) ("split-sequence" ,sbcl-split-sequence))) (synopsis "Markdown processor in Command Lisp using esrap parser") (description @@ -1586,29 +1398,6 @@ parsing, and grammar based on @command{peg-markdown}.") (define-public ecl-3bmd (sbcl-package->ecl-package sbcl-3bmd)) -(define-public sbcl-3bmd-ext-code-blocks - (let ((commit "192ea13435b605a96ef607df51317056914cabbd")) - (package - (inherit sbcl-3bmd) - (name "sbcl-3bmd-ext-code-blocks") - (arguments - `(#:asd-system-name "3bmd-ext-code-blocks" - #:asd-file "3bmd-ext-code-blocks.asd")) - (inputs - `(("3bmd" ,sbcl-3bmd) - ("colorize" ,sbcl-colorize))) - (synopsis "3bmd extension which adds support for GitHub-style fenced -code blocks") - (description - "3bmd extension which adds support for GitHub-style fenced code blocks, -with @command{colorize} support.")))) - -(define-public cl-3bmd-ext-code-blocks - (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks)) - -(define-public ecl-3bmd-ext-code-blocks - (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks)) - (define-public sbcl-cl-fad (package (name "sbcl-cl-fad") @@ -1810,19 +1599,13 @@ writing code that contains string literals that contain code themselves.") (define-public ecl-pythonic-string-reader (sbcl-package->ecl-package sbcl-pythonic-string-reader)) -;; SLIME does not have a ASDF system definition to build all of Swank. As a -;; result, the asdf-build-system/sbcl will produce an almost empty package. -;; Some work was done to fix this at -;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged -;; and is now lagging behind. Building SBCL fasls might not be worth the -;; hassle, so let's just ship the source then. -(define-public cl-slime-swank +(define-public sbcl-slime-swank (package - (name "cl-slime-swank") + (name "sbcl-slime-swank") (version "2.24") (source (origin - (file-name (string-append name "-" version ".tar.gz")) + (file-name (git-file-name "slime-swank" version)) (method git-fetch) (uri (git-reference (url "https://github.com/slime/slime/") @@ -1830,7 +1613,10 @@ writing code that contains string literals that contain code themselves.") (sha256 (base32 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh")))) - (build-system asdf-build-system/source) + (build-system asdf-build-system/sbcl) + (arguments + '(#:asd-files '("swank.asd") + #:asd-systems '("swank"))) (home-page "https://github.com/slime/slime") (synopsis "Common Lisp Swank server") (description @@ -1839,8 +1625,11 @@ processes that doesn't run under Emacs. Lisp processes created by @command{M-x slime} automatically start the server.") (license (list license:gpl2+ license:public-domain)))) -(define-public sbcl-slime-swank - (deprecated-package "sbcl-slime-swank" cl-slime-swank)) +(define-public cl-slime-swank + (sbcl-package->cl-source-package sbcl-slime-swank)) + +(define-public ecl-slime-swank + (sbcl-package->ecl-package sbcl-slime-swank)) (define-public sbcl-mgl-pax (let ((commit "818448418d6b9de74620f606f5b23033c6082769")) @@ -1860,16 +1649,12 @@ processes that doesn't run under Emacs. Lisp processes created by (build-system asdf-build-system/sbcl) (inputs `(("3bmd" ,sbcl-3bmd) - ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks) ("babel" ,sbcl-babel) ("cl-fad" ,sbcl-cl-fad) ("ironclad" ,sbcl-ironclad) ("named-readtables" ,sbcl-named-readtables) - ("pythonic-string-reader" ,sbcl-pythonic-string-reader))) - (propagated-inputs - ;; Packages having mgl-pax as input complain that it can't find - ;; swank if we put it in inputs, so let's put it in propageted-inputs. - `(("swank" ,cl-slime-swank))) + ("pythonic-string-reader" ,sbcl-pythonic-string-reader) + ("swank" ,sbcl-slime-swank))) (synopsis "Exploratory programming environment and documentation generator") (description "PAX provides an extremely poor man's Explorable Programming @@ -2116,10 +1901,10 @@ named color.") (define-public ecl-cl-ansi-text (sbcl-package->ecl-package sbcl-cl-ansi-text)) -(define-public sbcl-prove-asdf +(define-public sbcl-prove (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0")) (package - (name "sbcl-prove-asdf") + (name "sbcl-prove") (version (git-version "1.0.0" "1" commit)) (source (origin @@ -2132,35 +1917,16 @@ named color.") "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc")) (file-name (git-file-name "prove" version)))) (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("cl-ansi-text" ,sbcl-cl-ansi-text))) (arguments - `(#:asd-file "prove-asdf.asd")) - (synopsis "Test requirement for the Common Lisp 'prove' library") + `(#:asd-files '("prove.asd" + "prove-asdf.asd"))) + (synopsis "Yet another unit testing framework for Common Lisp") (description - "Test requirement for the Common Lisp @command{prove} library.") - (home-page "https://github.com/fukamachi/prove") - (license license:expat)))) - -(define-public cl-prove-asdf - (sbcl-package->cl-source-package sbcl-prove-asdf)) - -(define-public ecl-prove-asdf - (sbcl-package->ecl-package sbcl-prove-asdf)) - -(define-public sbcl-prove - (package - (inherit sbcl-prove-asdf) - (name "sbcl-prove") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ppcre" ,sbcl-cl-ppcre) - ("cl-ansi-text" ,sbcl-cl-ansi-text))) - (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf))) - (arguments - `(#:asd-file "prove.asd")) - (synopsis "Yet another unit testing framework for Common Lisp") - (description - "This project was originally called @command{cl-test-more}. + "This project was originally called @command{cl-test-more}. @command{prove} is yet another unit testing framework for Common Lisp. The advantages of @command{prove} are: @@ -2170,7 +1936,9 @@ advantages of @command{prove} are: @item Extensible test reporters @item Colorizes the report if it's available (note for SLIME) @item Reports test durations -@end itemize\n"))) +@end itemize\n") + (home-page "https://github.com/fukamachi/prove") + (license license:expat)))) (define-public cl-prove (sbcl-package->cl-source-package sbcl-prove)) @@ -2198,8 +1966,7 @@ advantages of @command{prove} are: `(("alexandria" ,sbcl-alexandria) ("babel" ,sbcl-babel))) (native-inputs - `(("prove" ,sbcl-prove) - ("prove-asdf" ,sbcl-prove-asdf))) + `(("prove" ,sbcl-prove))) (arguments ;; TODO: Tests don't find "proc-parse-test", why? `(#:tests? #f)) @@ -2237,8 +2004,7 @@ pattern-matching-like, but a char-by-char procedural parser.") `(("alexandria" ,sbcl-alexandria) ("babel" ,sbcl-babel))) (native-inputs - `(("prove" ,sbcl-prove) - ("prove-asdf" ,sbcl-prove-asdf))) + `(("prove" ,sbcl-prove))) (arguments ;; TODO: Tests don't find "proc-parse-test", why? `(#:tests? #f)) @@ -2255,12 +2021,12 @@ values from a string in Common Lisp.") (define-public ecl-parse-float (sbcl-package->ecl-package sbcl-parse-float)) -(define-public sbcl-ascii-strings +(define-public sbcl-cl-string-match (let ((revision "1") (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97")) (package - (name "sbcl-ascii-strings") - (version (string-append "0-" revision "." (string-take changeset 7))) + (name "sbcl-cl-string-match") + (version (git-version "0" revision changeset)) (source (origin (method hg-fetch) @@ -2274,69 +2040,31 @@ values from a string in Common Lisp.") (build-system asdf-build-system/sbcl) (inputs `(("alexandria" ,sbcl-alexandria) - ("babel" ,sbcl-babel))) + ("babel" ,sbcl-babel) + ("iterate" ,sbcl-iterate) + ("jpl-queues" ,sbcl-jpl-queues) + ("jpl-util" ,sbcl-jpl-util) + ("mgl-pax" ,sbcl-mgl-pax) + ("parse-float" ,sbcl-parse-float) + ("proc-parse" ,sbcl-proc-parse) + ("yacc" ,sbcl-cl-yacc))) + ;; TODO: Tests are not evaluated properly. + (native-inputs + ;; For testing: + `(("lisp-unit" ,sbcl-lisp-unit))) (arguments - `(#:asd-file "ascii-strings.asd")) - (synopsis "Operations on ASCII strings") + `(#:tests? #f + #:asd-files '("cl-string-match.asd" + "ascii-strings.asd" + "simple-scanf.asd"))) + (synopsis "Set of utilities to manipulate strings in Common Lisp") (description - "Operations on ASCII strings. Essentially this can be any kind of -single-byte encoded strings.") + "@command{cl-strings} is a small, portable, dependency-free set of +utilities that make it even easier to manipulate text in Common Lisp. It has +100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.") (home-page "https://bitbucket.org/vityok/cl-string-match/") (license license:bsd-3)))) -(define-public cl-ascii-strings - (sbcl-package->cl-source-package sbcl-ascii-strings)) - -(define-public ecl-ascii-strings - (sbcl-package->ecl-package sbcl-ascii-strings)) - -(define-public sbcl-simple-scanf - (package - (inherit sbcl-ascii-strings) - (name "sbcl-simple-scanf") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("iterate" ,sbcl-iterate) - ("proc-parse" ,sbcl-proc-parse) - ("parse-float" ,sbcl-parse-float))) - (arguments - `(#:asd-file "simple-scanf.asd")) - (synopsis "Simple scanf-like functionality implementation") - (description - "A simple scanf-like functionality implementation."))) - -(define-public cl-simple-scanf - (sbcl-package->cl-source-package sbcl-simple-scanf)) - -(define-public ecl-simple-scanf - (sbcl-package->ecl-package sbcl-simple-scanf)) - -(define-public sbcl-cl-string-match - (package - (inherit sbcl-ascii-strings) - (name "sbcl-cl-string-match") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("ascii-strings" ,sbcl-ascii-strings) - ("yacc" ,sbcl-cl-yacc) - ("jpl-util" ,sbcl-jpl-util) - ("jpl-queues" ,sbcl-jpl-queues) - ("mgl-pax" ,sbcl-mgl-pax) - ("iterate" ,sbcl-iterate))) - ;; TODO: Tests are not evaluated properly. - (native-inputs - ;; For testing: - `(("lisp-unit" ,sbcl-lisp-unit) - ("simple-scanf" ,sbcl-simple-scanf))) - (arguments - `(#:tests? #f - #:asd-file "cl-string-match.asd")) - (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp") - (description - "@command{cl-strings} is a small, portable, dependency-free set of -utilities that make it even easier to manipulate text in Common Lisp. It has -100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp."))) - (define-public cl-string-match (sbcl-package->cl-source-package sbcl-cl-string-match)) @@ -2419,6 +2147,19 @@ Lisp programs. It parses URI according to the RFC 2396 specification.") (base32 "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv")))) (build-system asdf-build-system/sbcl) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads))) + (arguments + '(#:asd-files '("queues.asd" + "queues.simple-queue.asd" + "queues.simple-cqueue.asd" + "queues.priority-queue.asd" + "queues.priority-cqueue.asd") + #:asd-systems '("queues" + "queues.simple-queue" + "queues.simple-cqueue" + "queues.priority-queue" + "queues.priority-cqueue"))) (home-page "https://github.com/oconnore/queues") (synopsis "Common Lisp queue library") (description @@ -2432,93 +2173,9 @@ non-consing thread safe queues and fibonacci priority queues.") (define-public ecl-queues (sbcl-package->ecl-package sbcl-queues)) -(define-public sbcl-queues.simple-queue - (package - (inherit sbcl-queues) - (name "sbcl-queues.simple-queue") - (inputs - `(("sbcl-queues" ,sbcl-queues))) - (arguments - `(#:asd-file "queues.simple-queue.asd")) - (synopsis "Simple queue implementation") - (description - "This is a simple queue library for Common Lisp with features such as -non-consing thread safe queues and fibonacci priority queues.") - (license license:expat))) - -(define-public cl-queues.simple-queue - (sbcl-package->cl-source-package sbcl-queues.simple-queue)) - -(define-public ecl-queues.simple-queue - (sbcl-package->ecl-package sbcl-queues.simple-queue)) - -(define-public sbcl-queues.simple-cqueue - (package - (inherit sbcl-queues) - (name "sbcl-queues.simple-cqueue") - (inputs - `(("sbcl-queues" ,sbcl-queues) - ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue) - ("bordeaux-threads" ,sbcl-bordeaux-threads))) - (arguments - `(#:asd-file "queues.simple-cqueue.asd")) - (synopsis "Thread safe queue implementation") - (description - "This is a simple queue library for Common Lisp with features such as -non-consing thread safe queues and fibonacci priority queues.") - (license license:expat))) - -(define-public cl-queues.simple-cqueue - (sbcl-package->cl-source-package sbcl-queues.simple-cqueue)) - -(define-public ecl-queues.simple-cqueue - (sbcl-package->ecl-package sbcl-queues.simple-cqueue)) - -(define-public sbcl-queues.priority-queue - (package - (inherit sbcl-queues) - (name "sbcl-queues.priority-queue") - (inputs - `(("sbcl-queues" ,sbcl-queues))) - (arguments - `(#:asd-file "queues.priority-queue.asd")) - (synopsis "Priority queue (Fibonacci) implementation") - (description - "This is a simple queue library for Common Lisp with features such as -non-consing thread safe queues and fibonacci priority queues.") - (license license:expat))) - -(define-public cl-queues.priority-queue - (sbcl-package->cl-source-package sbcl-queues.priority-queue)) - -(define-public ecl-queues.priority-queue - (sbcl-package->ecl-package sbcl-queues.priority-queue)) - -(define-public sbcl-queues.priority-cqueue - (package - (inherit sbcl-queues) - (name "sbcl-queues.priority-cqueue") - (inputs - `(("sbcl-queues" ,sbcl-queues) - ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue) - ("bordeaux-threads" ,sbcl-bordeaux-threads))) - (arguments - `(#:asd-file "queues.priority-cqueue.asd")) - (synopsis "Thread safe fibonacci priority queue implementation") - (description - "This is a simple queue library for Common Lisp with features such as -non-consing thread safe queues and fibonacci priority queues.") - (license license:expat))) - -(define-public cl-queues.priority-cqueue - (sbcl-package->cl-source-package sbcl-queues.priority-cqueue)) - -(define-public ecl-queues.priority-cqueue - (sbcl-package->ecl-package sbcl-queues.priority-cqueue)) - -(define sbcl-cffi-bootstrap +(define-public sbcl-cffi (package - (name "sbcl-cffi-bootstrap") + (name "sbcl-cffi") (version "0.21.0") (source (origin @@ -2531,12 +2188,14 @@ non-consing thread safe queues and fibonacci priority queues.") (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk")))) (build-system asdf-build-system/sbcl) (inputs - `(("libffi" ,libffi) - ("alexandria" ,sbcl-alexandria) + `(("alexandria" ,sbcl-alexandria) ("babel" ,sbcl-babel) + ("libffi" ,libffi) ("trivial-features" ,sbcl-trivial-features))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("pkg-config" ,pkg-config) + ("rt" ,sbcl-rt))) (arguments '(#:phases (modify-phases %standard-phases @@ -2547,9 +2206,21 @@ non-consing thread safe queues and fibonacci priority queues.") (assoc-ref inputs "libffi") "/lib/" all))) (substitute* "toolchain/c-toolchain.lisp" - (("\"cc\"") (format #f "~S" (which "gcc"))))))) - #:asd-system-name "cffi" - #:tests? #f)) + (("\"cc\"") (format #f "~S" (which "gcc")))))) + (add-after 'build 'install-headers + (lambda* (#:key outputs #:allow-other-keys) + (install-file "grovel/common.h" + (string-append + (assoc-ref outputs "out") + "/include/grovel"))))) + #:asd-files '("cffi.asd" + "cffi-toolchain.asd" + "cffi-grovel.asd" + "cffi-libffi.asd" + "cffi-uffi-compat.asd") + #:asd-systems '("cffi" + "cffi-libffi" + "cffi-uffi-compat"))) (home-page "https://common-lisp.net/project/cffi/") (synopsis "Common Foreign Function Interface for Common Lisp") (description "The Common Foreign Function Interface (CFFI) @@ -2559,77 +2230,13 @@ in the CFFI-SYS package, and a portable frontend in the CFFI package.") (license license:expat))) -(define-public sbcl-cffi-toolchain - (package - (inherit sbcl-cffi-bootstrap) - (name "sbcl-cffi-toolchain") - (inputs - `(("libffi" ,libffi) - ("sbcl-cffi" ,sbcl-cffi-bootstrap))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap) - ((#:asd-system-name _) #f) - ((#:tests? _) #t))))) +(define-public cl-cffi + (sbcl-package->cl-source-package sbcl-cffi)) -(define-public sbcl-cffi-libffi - (package - (inherit sbcl-cffi-toolchain) - (name "sbcl-cffi-libffi") - (inputs - `(("cffi" ,sbcl-cffi-bootstrap) - ("cffi-grovel" ,sbcl-cffi-grovel) - ("trivial-features" ,sbcl-trivial-features) - ("libffi" ,libffi))))) +(define-public ecl-cffi + (sbcl-package->ecl-package sbcl-cffi)) -(define-public sbcl-cffi-grovel - (package - (inherit sbcl-cffi-toolchain) - (name "sbcl-cffi-grovel") - (inputs - `(("libffi" ,libffi) - ("cffi" ,sbcl-cffi-bootstrap) - ("cffi-toolchain" ,sbcl-cffi-toolchain) - ("alexandria" ,sbcl-alexandria))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'build 'install-headers - (lambda* (#:key outputs #:allow-other-keys) - (install-file "grovel/common.h" - (string-append - (assoc-ref outputs "out") - "/include/grovel")))))))))) - -(define-public sbcl-cffi - (package - (inherit sbcl-cffi-toolchain) - (name "sbcl-cffi") - (inputs (package-inputs sbcl-cffi-bootstrap)) - (native-inputs - `(("cffi-grovel" ,sbcl-cffi-grovel) - ("cffi-libffi" ,sbcl-cffi-libffi) - ("rt" ,sbcl-rt) - ("bordeaux-threads" ,sbcl-bordeaux-threads) - ,@(package-native-inputs sbcl-cffi-bootstrap))))) - -(define-public cl-cffi - (sbcl-package->cl-source-package sbcl-cffi)) - -(define-public sbcl-cffi-uffi-compat - (package - (inherit sbcl-cffi-toolchain) - (name "sbcl-cffi-uffi-compat") - (native-inputs - `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase - (inputs - `(("cffi" ,sbcl-cffi))) - (synopsis "UFFI Compatibility Layer for CFFI"))) - -(define-public cl-cffi-uffi-compat - (sbcl-package->cl-source-package sbcl-cffi-uffi-compat)) - -(define-public sbcl-cl-sqlite +(define-public sbcl-cl-sqlite (package (name "sbcl-cl-sqlite") (version "0.2.1") @@ -2652,8 +2259,8 @@ package.") `(("fiveam" ,sbcl-fiveam) ("bordeaux-threads" ,sbcl-bordeaux-threads))) (arguments - `(#:asd-file "sqlite.asd" - #:asd-system-name "sqlite" + `(#:asd-files '("sqlite.asd") + #:asd-systems '("sqlite") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-paths @@ -2856,10 +2463,10 @@ Lisp implementations.") (define-public ecl-closer-mop (sbcl-package->ecl-package sbcl-closer-mop)) -(define sbcl-cl-cffi-gtk-boot0 +(define-public sbcl-cl-cffi-gtk (let ((commit "412d17214e092220c65a5660f5cbbd9cb69b8fe4")) (package - (name "sbcl-cl-cffi-gtk-boot0") + (name "sbcl-cl-cffi-gtk") (version (git-version "0.11.2" "1" commit)) (source (origin @@ -2872,17 +2479,35 @@ Lisp implementations.") (base32 "0n997yhcnzk048nalx8ys62ja2ac8iv4mbn3mb55iapl0321hghn")))) (build-system asdf-build-system/sbcl) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) (inputs - `(("iterate" ,sbcl-iterate) + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cairo" ,cairo) ("cffi" ,sbcl-cffi) - ("trivial-features" ,sbcl-trivial-features) + ("closer-mop" ,sbcl-closer-mop) + ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib) - ("cairo" ,cairo) + ("gtk" ,gtk+) + ("iterate" ,sbcl-iterate) ("pango" ,pango) - ("gdk-pixbuf" ,gdk-pixbuf) - ("gtk" ,gtk+))) + ("trivial-features" ,sbcl-trivial-features) + ("trivial-garbage" ,sbcl-trivial-garbage))) (arguments - `(#:phases + `(#:asd-files '("gtk/cl-cffi-gtk.asd" + "glib/cl-cffi-gtk-glib.asd" + "gobject/cl-cffi-gtk-gobject.asd" + "gio/cl-cffi-gtk-gio.asd" + "cairo/cl-cffi-gtk-cairo.asd" + "pango/cl-cffi-gtk-pango.asd" + "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd" + "gdk/cl-cffi-gtk-gdk.asd") + #:asd-systems '("cl-cffi-gtk") + #:test-asd-file "test/cl-cffi-gtk-test.asd" + ;; TODO: Tests fail with memory fault. + ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24. + #:tests? #f + #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-paths (lambda* (#:key inputs #:allow-other-keys) @@ -2917,220 +2542,6 @@ Lisp implementations.") is a library for creating graphical user interfaces.") (license license:lgpl3)))) -(define-public sbcl-cl-cffi-gtk-glib - (package - (inherit sbcl-cl-cffi-gtk-boot0) - (name "sbcl-cl-cffi-gtk-glib") - (inputs - `(("bordeaux-threads" ,sbcl-bordeaux-threads) - ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0) - ((#:asd-file _ "") "glib/cl-cffi-gtk-glib.asd"))))) - -(define-public sbcl-cl-cffi-gtk-gobject - (package - (inherit sbcl-cl-cffi-gtk-boot0) - (name "sbcl-cl-cffi-gtk-gobject") - (inputs - `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) - ("trivial-garbage" ,sbcl-trivial-garbage) - ("bordeaux-threads" ,sbcl-bordeaux-threads) - ("closer-mop" ,sbcl-closer-mop) - ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0) - ((#:asd-file _ "") "gobject/cl-cffi-gtk-gobject.asd") - ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'link-source - ;; Since source is particularly heavy (16MiB+), let's reuse it - ;; across the different components of cl-ffi-gtk. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-glib")) - (out-source (string-append (assoc-ref outputs "out") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-gobject"))) - (delete-file-recursively out-source) - (symlink glib-source out-source) - #t))))))))) - -(define-public sbcl-cl-cffi-gtk-gio - (package - (inherit sbcl-cl-cffi-gtk-boot0) - (name "sbcl-cl-cffi-gtk-gio") - (inputs - `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) - ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject) - ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0) - ((#:asd-file _ "") "gio/cl-cffi-gtk-gio.asd") - ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'link-source - ;; Since source is particularly heavy (16MiB+), let's reuse it - ;; across the different components of cl-ffi-gtk. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-glib")) - (out-source (string-append (assoc-ref outputs "out") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-gio"))) - (delete-file-recursively out-source) - (symlink glib-source out-source) - #t))))))))) - -(define-public sbcl-cl-cffi-gtk-cairo - (package - (inherit sbcl-cl-cffi-gtk-boot0) - (name "sbcl-cl-cffi-gtk-cairo") - (inputs - `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) - ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0) - ((#:asd-file _ "") "cairo/cl-cffi-gtk-cairo.asd") - ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'link-source - ;; Since source is particularly heavy (16MiB+), let's reuse it - ;; across the different components of cl-ffi-gtk. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-glib")) - (out-source (string-append (assoc-ref outputs "out") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-cairo"))) - (delete-file-recursively out-source) - (symlink glib-source out-source) - #t))))))))) - -(define-public sbcl-cl-cffi-gtk-pango - (package - (inherit sbcl-cl-cffi-gtk-boot0) - (name "sbcl-cl-cffi-gtk-pango") - (inputs - `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) - ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject) - ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo) - ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0) - ((#:asd-file _ "") "pango/cl-cffi-gtk-pango.asd") - ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'link-source - ;; Since source is particularly heavy (16MiB+), let's reuse it - ;; across the different components of cl-ffi-gtk. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-glib")) - (out-source (string-append (assoc-ref outputs "out") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-pango"))) - (delete-file-recursively out-source) - (symlink glib-source out-source) - #t))))))))) - -(define-public sbcl-cl-cffi-gtk-gdk-pixbuf - (package - (inherit sbcl-cl-cffi-gtk-boot0) - (name "sbcl-cl-cffi-gtk-gdk-pixbuf") - (inputs - `(("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject) - ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) - ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0) - ((#:asd-file _ "") "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd") - ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'link-source - ;; Since source is particularly heavy (16MiB+), let's reuse it - ;; across the different components of cl-ffi-gtk. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-glib")) - (out-source (string-append (assoc-ref outputs "out") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-gdk-pixbuf"))) - (delete-file-recursively out-source) - (symlink glib-source out-source) - #t))))))))) - -(define-public sbcl-cl-cffi-gtk-gdk - (package - (inherit sbcl-cl-cffi-gtk-boot0) - (name "sbcl-cl-cffi-gtk-gdk") - (inputs - `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) - ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject) - ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio) - ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf) - ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo) - ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango) - ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0) - ((#:asd-file _ "") "gdk/cl-cffi-gtk-gdk.asd") - ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'link-source - ;; Since source is particularly heavy (16MiB+), let's reuse it - ;; across the different components of cl-ffi-gtk. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-glib")) - (out-source (string-append (assoc-ref outputs "out") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-gdk"))) - (delete-file-recursively out-source) - (symlink glib-source out-source) - #t))))))))) - -(define-public sbcl-cl-cffi-gtk - (package - (inherit sbcl-cl-cffi-gtk-boot0) - (name "sbcl-cl-cffi-gtk") - (inputs - `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) - ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject) - ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio) - ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk) - ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) - (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0) - ((#:asd-file _ "") "gtk/cl-cffi-gtk.asd") - ((#:test-asd-file _ "") "test/cl-cffi-gtk-test.asd") - ;; TODO: Tests fail with memory fault. - ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24. - ((#:tests? _ #f) #f) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'link-source - ;; Since source is particularly heavy (16MiB+), let's reuse it - ;; across the different components of cl-ffi-gtk. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk-glib")) - (out-source (string-append (assoc-ref outputs "out") - "/share/common-lisp/sbcl-source/" - "cl-cffi-gtk"))) - (delete-file-recursively out-source) - (symlink glib-source out-source) - #t))))))))) - (define-public cl-cffi-gtk (sbcl-package->cl-source-package sbcl-cl-cffi-gtk)) @@ -3155,8 +2566,8 @@ is a library for creating graphical user interfaces.") ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk) ("webkitgtk" ,webkitgtk))) (arguments - `(#:asd-file "webkit2/cl-webkit2.asd" - #:asd-system-name "cl-webkit2" + `(#:asd-files '("webkit2/cl-webkit2.asd") + #:asd-systems '("cl-webkit2") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-paths @@ -3328,14 +2739,12 @@ Lisp (from GBBopen project).") (define-public cl-portable-threads (sbcl-package->cl-source-package sbcl-portable-threads)) -(define-public ecl-portable-threada +(define-public ecl-portable-threads (sbcl-package->ecl-package sbcl-portable-threads)) -(define sbcl-usocket-boot0 - ;; usocket's test rely on usocket-server which depends on usocket itself. - ;; We break this cyclic dependency with -boot0 that packages usocket. +(define-public sbcl-usocket (package - (name "sbcl-usocket-boot0") + (name "sbcl-usocket") (version "0.8.3") (source (origin @@ -3348,48 +2757,25 @@ Lisp (from GBBopen project).") (base32 "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826")))) (build-system asdf-build-system/sbcl) + (native-inputs + `(("rt" ,sbcl-rt))) (inputs - `(("split-sequence" ,sbcl-split-sequence))) + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("split-sequence" ,sbcl-split-sequence))) (arguments - `(#:tests? #f - #:asd-system-name "usocket")) + `(#:tests? #f ; FIXME: Tests need network access? + #:asd-files '("usocket.asd" + "usocket-server.asd") + #:asd-systems '("usocket" + "usocket-server"))) (home-page "https://common-lisp.net/project/usocket/") - (synopsis "Universal socket library for Common Lisp (server side)") + (synopsis "Universal socket library for Common Lisp") (description "This library strives to provide a portable TCP/IP and UDP/IP socket interface for as many Common Lisp implementations as possible, while keeping the abstraction and portability layer as thin as possible.") (license license:expat))) -(define-public sbcl-usocket-server - (package - (inherit sbcl-usocket-boot0) - (name "sbcl-usocket-server") - (inputs - `(("bordeaux-threads" ,sbcl-bordeaux-threads) - ("usocket" ,sbcl-usocket-boot0))) - (arguments - '(#:asd-system-name "usocket-server")) - (synopsis "Universal socket library for Common Lisp (server side)"))) - -(define-public cl-usocket-server - (sbcl-package->cl-source-package sbcl-usocket-server)) - -(define-public ecl-socket-server - (sbcl-package->ecl-package sbcl-usocket-server)) - -(define-public sbcl-usocket - (package - (inherit sbcl-usocket-boot0) - (name "sbcl-usocket") - (arguments - ;; FIXME: Tests need network access? - `(#:tests? #f)) - (native-inputs - ;; Testing only. - `(("usocket-server" ,sbcl-usocket-server) - ("rt" ,sbcl-rt))))) - (define-public cl-usocket (sbcl-package->cl-source-package sbcl-usocket)) @@ -3924,34 +3310,6 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.") (define-public cl-trivial-types (sbcl-package->cl-source-package sbcl-trivial-types)) -(define-public sbcl-cl-syntax - (package - (name "sbcl-cl-syntax") - (version "0.0.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/m2ym/cl-syntax") - (commit "03f0c329bbd55b8622c37161e6278366525e2ccc"))) - (file-name (git-file-name "cl-syntax" version)) - (sha256 - (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y")))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:asd-file "cl-syntax.asd" - #:asd-system-name "cl-syntax")) - (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types) - ("sbcl-named-readtables" ,sbcl-named-readtables))) - (home-page "https://github.com/m2ym/cl-syntax") - (synopsis "Reader Syntax Coventions for Common Lisp and SLIME") - (description - "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.") - (license license:llgpl))) - -(define-public cl-syntax - (sbcl-package->cl-source-package sbcl-cl-syntax)) - (define-public sbcl-cl-annot (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d") (revision "1")) @@ -3968,9 +3326,6 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.") (sha256 (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n")))) (build-system asdf-build-system/sbcl) - (arguments - '(#:asd-file "cl-annot.asd" - #:asd-system-name "cl-annot")) (inputs `(("sbcl-alexandria" ,sbcl-alexandria))) (home-page "https://github.com/m2ym/cl-annot") @@ -3982,41 +3337,40 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.") (define-public cl-annot (sbcl-package->cl-source-package sbcl-cl-annot)) -(define-public sbcl-cl-syntax-annot - (package - (inherit sbcl-cl-syntax) - (name "sbcl-cl-syntax-annot") - (arguments - '(#:asd-file "cl-syntax-annot.asd" - #:asd-system-name "cl-syntax-annot")) - (inputs - `(("sbcl-cl-syntax" ,sbcl-cl-syntax) - ("sbcl-cl-annot" ,sbcl-cl-annot))) - (synopsis "Common Lisp reader Syntax for cl-annot") - (description - "CL-SYNTAX provides reader syntax coventions for Common Lisp and -@code{cl-annot}."))) - -(define-public cl-syntax-annot - (sbcl-package->cl-source-package sbcl-cl-syntax-annot)) - -(define-public sbcl-cl-syntax-interpol +(define-public sbcl-cl-syntax (package - (inherit sbcl-cl-syntax) - (name "sbcl-cl-syntax-interpol") - (arguments - '(#:asd-file "cl-syntax-interpol.asd" - #:asd-system-name "cl-syntax-interpol")) + (name "sbcl-cl-syntax") + (version "0.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/m2ym/cl-syntax") + (commit "03f0c329bbd55b8622c37161e6278366525e2ccc"))) + (file-name (git-file-name "cl-syntax" version)) + (sha256 + (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y")))) + (build-system asdf-build-system/sbcl) (inputs - `(("sbcl-cl-syntax" ,sbcl-cl-syntax) - ("sbcl-cl-interpol" ,sbcl-cl-interpol))) - (synopsis "Common Lisp reader Syntax for cl-interpol") + `(("cl-annot" ,sbcl-cl-annot) + ("cl-interpol" ,sbcl-cl-interpol) + ("named-readtables" ,sbcl-named-readtables) + ("trivial-types" ,sbcl-trivial-types))) + (arguments + '(#:asd-files '("cl-syntax.asd" + "cl-syntax-annot.asd" + "cl-syntax-interpol.asd") + #:asd-systems '("cl-syntax" + "cl-syntax-annot" + "cl-syntax-interpol"))) + (home-page "https://github.com/m2ym/cl-syntax") + (synopsis "Reader Syntax Coventions for Common Lisp and SLIME") (description - "CL-SYNTAX provides reader syntax coventions for Common Lisp and -@code{cl-interpol}."))) + "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.") + (license license:llgpl))) -(define-public cl-syntax-interpol - (sbcl-package->cl-source-package sbcl-cl-syntax-interpol)) +(define-public cl-syntax + (sbcl-package->cl-source-package sbcl-cl-syntax)) (define-public sbcl-cl-utilities (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b") @@ -4035,8 +3389,8 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.") (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2")))) (build-system asdf-build-system/sbcl) (arguments - '(#:asd-file "cl-utilities.asd" - #:asd-system-name "cl-utilities" + '(#:asd-files '("cl-utilities.asd") + #:asd-systems '("cl-utilities") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-paths @@ -4105,8 +3459,7 @@ addition, removal, and random selection.") ;; Tests fail with: Component QURI-ASD::QURI-TEST not found, ;; required by #. Why? '(#:tests? #f)) - (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf) - ("sbcl-prove" ,sbcl-prove))) + (native-inputs `(("sbcl-prove" ,sbcl-prove))) (inputs `(("sbcl-babel" ,sbcl-babel) ("sbcl-split-sequence" ,sbcl-split-sequence) ("sbcl-cl-utilities" ,sbcl-cl-utilities) @@ -4142,8 +3495,7 @@ Lisp. It is intended to be a replacement of PURI.") ;; by #. Why? '(#:tests? #f)) (native-inputs - `(("sbcl-prove-asdf" ,sbcl-prove-asdf) - ("sbcl-prove" ,sbcl-prove))) + `(("sbcl-prove" ,sbcl-prove))) (inputs `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre) ("sbcl-quri" ,sbcl-quri) @@ -4177,8 +3529,7 @@ Lisp. It is intended to be a replacement of PURI.") ;; required by #. Why? '(#:tests? #f)) (native-inputs - `(("sbcl-prove-asdf" ,sbcl-prove-asdf) - ("sbcl-prove" ,sbcl-prove))) + `(("sbcl-prove" ,sbcl-prove))) (home-page "https://github.com/fukamachi/xsubseq") (synopsis "Efficient way to use \"subseq\"s in Common Lisp") (description @@ -4210,8 +3561,7 @@ effieiently.") ;; found, required by #. Why? `(#:tests? #f)) (native-inputs - `(("sbcl-prove-asdf" ,sbcl-prove-asdf) - ("sbcl-prove" ,sbcl-prove))) + `(("sbcl-prove" ,sbcl-prove))) (inputs `(("sbcl-xsubseq" ,sbcl-xsubseq) ("sbcl-flexi-streams" ,sbcl-flexi-streams))) @@ -4246,9 +3596,8 @@ depending on content size.") ;; required by #. Why? `(#:tests? #f)) (native-inputs - `(("sbcl-prove-asdf" ,sbcl-prove-asdf) - ("sbcl-prove" ,sbcl-prove) - ("cl-syntax-interpol" ,sbcl-cl-syntax-interpol))) + `(("sbcl-prove" ,sbcl-prove) + ("cl-syntax" ,sbcl-cl-syntax))) (inputs `(("sbcl-alexandria" ,sbcl-alexandria) ("sbcl-proc-parse" ,sbcl-proc-parse) @@ -4282,8 +3631,7 @@ Lisp.") (native-inputs `(("sbcl-fiveam" ,sbcl-fiveam))) (inputs - `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel) - ("sbcl-cffi" ,sbcl-cffi))) + `(("sbcl-cffi" ,sbcl-cffi))) (build-system asdf-build-system/sbcl) (home-page "https://github.com/sionescu/static-vectors") (synopsis "Allocate SIMPLE-ARRAYs in static memory") @@ -4423,11 +3771,9 @@ streams (though primarily the former, while wrapping the latter).") ;; required by #. Why? `(#:tests? #f)) (native-inputs - `(("sbcl-prove-asdf" ,sbcl-prove-asdf) - ("sbcl-prove" ,sbcl-prove))) + `(("sbcl-prove" ,sbcl-prove))) (inputs `(("sbcl-cl-syntax" ,sbcl-cl-syntax) - ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot) ("sbcl-fast-io" ,sbcl-fast-io) ("sbcl-proc-parse" ,sbcl-proc-parse) ("sbcl-cl-ppcre" ,sbcl-cl-ppcre))) @@ -4463,8 +3809,7 @@ CCL.") ;; found, required by #. Why? `(#:tests? #f)) (native-inputs - `(("sbcl-prove-asdf" ,sbcl-prove-asdf) - ("sbcl-prove" ,sbcl-prove))) + `(("sbcl-prove" ,sbcl-prove))) (inputs `(("sbcl-fast-http" ,sbcl-fast-http) ("sbcl-jonathan" ,sbcl-jonathan) @@ -4514,46 +3859,60 @@ reset to 0 and you're able to read it again.") (define-public cl-circular-streams (sbcl-package->cl-source-package sbcl-circular-streams)) -(define-public sbcl-lack-request +(define-public sbcl-lack (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b") (revision "1")) (package - (name "sbcl-lack-request") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/lack") - (commit commit))) - (file-name (git-file-name "lack-request" version)) - (sha256 - (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:asd-file "lack-request.asd" - #:asd-system-name "lack-request" - #:test-asd-file "t-lack-request.asd" - ;; XXX: Component :CLACK-TEST not found - #:tests? #f)) - (native-inputs - `(("sbcl-prove-asdf" ,sbcl-prove-asdf) - ("sbcl-prove" ,sbcl-prove))) - (inputs - `(("sbcl-quri" ,sbcl-quri) - ("sbcl-http-body" ,sbcl-http-body) - ("sbcl-circular-streams" ,sbcl-circular-streams))) - (home-page "https://github.com/fukamachi/lack") - (synopsis "Lack, the core of Clack") - (description - "Lack is a Common Lisp library which allows web applications to be + (name "sbcl-lack") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fukamachi/lack") + (commit commit))) + (file-name (git-file-name "lack" version)) + (sha256 + (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("prove" ,sbcl-prove))) + (inputs + `(("circular-streams" ,sbcl-circular-streams) + ("http-body" ,sbcl-http-body) + ("ironclad" ,sbcl-ironclad) + ("local-time" ,sbcl-local-time) + ("quri" ,sbcl-quri) + ("trivial-mimes" ,sbcl-trivial-mimes))) + (arguments + '(#:asd-files '("lack.asd" + "lack-request.asd" + "lack-response.asd" + "lack-component.asd" + "lack-util.asd" + "lack-middleware-backtrace.asd" + "lack-middleware-static.asd") + #:asd-systems '("lack" + "lack-request" + "lack-response" + "lack-component" + "lack-util" + "lack-middleware-backtrace" + "lack-middleware-static") + #:test-asd-file "t-lack.asd" + ;; XXX: Component :CLACK not found + #:tests? #f)) + (home-page "https://github.com/fukamachi/lack") + (synopsis "Lack, the core of Clack") + (description + "Lack is a Common Lisp library which allows web applications to be constructed of modular components. It was originally a part of Clack, however it's going to be rewritten as an individual project since Clack v2 with performance and simplicity in mind.") - (license license:llgpl)))) + (license license:llgpl)))) -(define-public cl-lack-request - (sbcl-package->cl-source-package sbcl-lack-request)) +(define-public cl-lack + (sbcl-package->cl-source-package sbcl-lack)) (define-public sbcl-local-time (let ((commit "62792705245168d3fc2e04164b9a143477284142") @@ -4590,283 +3949,55 @@ Long Painful History of Time\".") (define-public cl-local-time (sbcl-package->cl-source-package sbcl-local-time)) -(define-public sbcl-lack-response - (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b") +(define-public sbcl-trivial-mimes + (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab") (revision "1")) (package - (name "sbcl-lack-response") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/lack") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:asd-file "lack-response.asd" - #:asd-system-name "lack-response" - ;; XXX: no tests for lack-response. - #:tests? #f)) - (native-inputs - `(("sbcl-prove-asdf" ,sbcl-prove-asdf) - ("sbcl-prove" ,sbcl-prove))) - (inputs - `(("sbcl-quri" ,sbcl-quri) - ("sbcl-http-body" ,sbcl-http-body) - ("sbcl-circular-streams" ,sbcl-circular-streams) - ("sbcl-local-time" ,sbcl-local-time))) - (home-page "https://github.com/fukamachi/lack") - (synopsis "Lack, the core of Clack") - (description - "Lack is a Common Lisp library which allows web applications to be -constructed of modular components. It was originally a part of Clack, however -it's going to be rewritten as an individual project since Clack v2 with -performance and simplicity in mind.") - (license license:llgpl)))) + (name "sbcl-trivial-mimes") + (version (git-version "1.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/trivial-mimes") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m")))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after + 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((anchor "#p\"/etc/mime.types\"")) + (substitute* "mime-types.lisp" + ((anchor all) + (string-append + anchor "\n" + "(asdf:system-relative-pathname :trivial-mimes " + "\"../../share/common-lisp/" (%lisp-type) + "-source/trivial-mimes/mime.types\")"))))))))) + (native-inputs + `(("stefil" ,sbcl-hu.dwim.stefil))) + (inputs + `(("sbcl-cl-fad" ,sbcl-cl-fad))) + (home-page "https://shinmera.github.io/trivial-mimes/") + (synopsis "Tiny Common Lisp library to detect mime types in files") + (description + "This is a teensy library that provides some functions to determine the +mime-type of a file.") + (license license:artistic2.0)))) -(define-public cl-lack-response - (sbcl-package->cl-source-package sbcl-lack-response)) +(define-public cl-trivial-mimes + (sbcl-package->cl-source-package sbcl-trivial-mimes)) -(define-public sbcl-lack-component - (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b") - (revision "1")) - (package - (name "sbcl-lack-component") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/lack") - (commit commit))) - (file-name (git-file-name "lack-component" version)) - (sha256 - (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:asd-file "lack-component.asd" - #:asd-system-name "lack-component" - #:test-asd-file "t-lack-component.asd" - ;; XXX: Component :LACK-TEST not found - #:tests? #f)) - (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf))) - (home-page "https://github.com/fukamachi/lack") - (synopsis "Lack, the core of Clack") - (description - "Lack is a Common Lisp library which allows web applications to be -constructed of modular components. It was originally a part of Clack, however -it's going to be rewritten as an individual project since Clack v2 with -performance and simplicity in mind.") - (license license:llgpl)))) - -(define-public cl-lack-component - (sbcl-package->cl-source-package sbcl-lack-component)) - -(define-public sbcl-lack-util - (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b") - (revision "1")) - (package - (name "sbcl-lack-util") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/lack") - (commit commit))) - (file-name (git-file-name "lack-util" version)) - (sha256 - (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:asd-file "lack-util.asd" - #:asd-system-name "lack-util" - #:test-asd-file "t-lack-util.asd" - ;; XXX: Component :LACK-TEST not found - #:tests? #f)) - (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf))) - (inputs - `(("sbcl-ironclad" ,sbcl-ironclad))) - (home-page "https://github.com/fukamachi/lack") - (synopsis "Lack, the core of Clack") - (description - "Lack is a Common Lisp library which allows web applications to be -constructed of modular components. It was originally a part of Clack, however -it's going to be rewritten as an individual project since Clack v2 with -performance and simplicity in mind.") - (license license:llgpl)))) - -(define-public cl-lack-util - (sbcl-package->cl-source-package sbcl-lack-util)) - -(define-public sbcl-lack-middleware-backtrace - (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b") - (revision "1")) - (package - (name "sbcl-lack-middleware-backtrace") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/lack") - (commit commit))) - (file-name (git-file-name "lack-middleware-backtrace" version)) - (sha256 - (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:asd-file "lack-middleware-backtrace.asd" - #:asd-system-name "lack-middleware-backtrace" - #:test-asd-file "t-lack-middleware-backtrace.asd" - ;; XXX: Component :LACK not found - #:tests? #f)) - (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf))) - (home-page "https://github.com/fukamachi/lack") - (synopsis "Lack, the core of Clack") - (description - "Lack is a Common Lisp library which allows web applications to be -constructed of modular components. It was originally a part of Clack, however -it's going to be rewritten as an individual project since Clack v2 with -performance and simplicity in mind.") - (license license:llgpl)))) - -(define-public cl-lack-middleware-backtrace - (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace)) - -(define-public sbcl-trivial-mimes - (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab") - (revision "1")) - (package - (name "sbcl-trivial-mimes") - (version (git-version "1.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Shinmera/trivial-mimes") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m")))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after - 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (let ((anchor "#p\"/etc/mime.types\"")) - (substitute* "mime-types.lisp" - ((anchor all) - (string-append - anchor "\n" - "(asdf:system-relative-pathname :trivial-mimes " - "\"../../share/common-lisp/" (%lisp-type) - "-source/trivial-mimes/mime.types\")"))))))))) - (native-inputs - `(("stefil" ,sbcl-hu.dwim.stefil))) - (inputs - `(("sbcl-cl-fad" ,sbcl-cl-fad))) - (home-page "https://shinmera.github.io/trivial-mimes/") - (synopsis "Tiny Common Lisp library to detect mime types in files") - (description - "This is a teensy library that provides some functions to determine the -mime-type of a file.") - (license license:artistic2.0)))) - -(define-public cl-trivial-mimes - (sbcl-package->cl-source-package sbcl-trivial-mimes)) - -(define-public ecl-trivial-mimes - (sbcl-package->ecl-package sbcl-trivial-mimes)) - -(define-public sbcl-lack-middleware-static - (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b") - (revision "1")) - (package - (name "sbcl-lack-middleware-static") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/lack") - (commit commit))) - (file-name (git-file-name "lack-middleware-static" version)) - (sha256 - (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:asd-file "lack-middleware-static.asd" - #:asd-system-name "lack-middleware-static" - #:test-asd-file "t-lack-middleware-static.asd" - ;; XXX: Component :LACK not found - #:tests? #f)) - (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf))) - (inputs - `(("sbcl-ironclad" ,sbcl-ironclad) - ("sbcl-trivial-mimes" ,sbcl-trivial-mimes) - ("sbcl-local-time" ,sbcl-local-time))) - (home-page "https://github.com/fukamachi/lack") - (synopsis "Lack, the core of Clack") - (description - "Lack is a Common Lisp library which allows web applications to be -constructed of modular components. It was originally a part of Clack, however -it's going to be rewritten as an individual project since Clack v2 with -performance and simplicity in mind.") - (license license:llgpl)))) - -(define-public cl-lack-middleware-static - (sbcl-package->cl-source-package sbcl-lack-middleware-static)) - -(define-public sbcl-lack - (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b") - (revision "1")) - (package - (name "sbcl-lack") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/lack") - (commit commit))) - (file-name (git-file-name "lack" version)) - (sha256 - (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:test-asd-file "t-lack.asd" - ;; XXX: Component :CLACK not found - #:tests? #f)) - (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf))) - (inputs - `(("sbcl-lack-component" ,sbcl-lack-component) - ("sbcl-lack-util" ,sbcl-lack-util))) - (home-page "https://github.com/fukamachi/lack") - (synopsis "Lack, the core of Clack") - (description - "Lack is a Common Lisp library which allows web applications to be -constructed of modular components. It was originally a part of Clack, however -it's going to be rewritten as an individual project since Clack v2 with -performance and simplicity in mind.") - (license license:llgpl)))) - -(define-public cl-lack - (sbcl-package->cl-source-package sbcl-lack)) - -(define-public sbcl-ningle - (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad") +(define-public ecl-trivial-mimes + (sbcl-package->ecl-package sbcl-trivial-mimes)) + +(define-public sbcl-ningle + (let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad") (revision "1")) (package (name "sbcl-ningle") @@ -4908,15 +4039,11 @@ performance and simplicity in mind.") fasl-files) #t))))) (native-inputs - `(("sbcl-prove-asdf" ,sbcl-prove-asdf) - ("sbcl-prove" ,sbcl-prove))) + `(("sbcl-prove" ,sbcl-prove))) (inputs `(("sbcl-cl-syntax" ,sbcl-cl-syntax) - ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot) ("sbcl-myway" ,sbcl-myway) - ("sbcl-lack-request" ,sbcl-lack-request) - ("sbcl-lack-response" ,sbcl-lack-response) - ("sbcl-lack-component" ,sbcl-lack-component) + ("sbcl-lack" ,sbcl-lack) ("sbcl-alexandria" ,sbcl-alexandria) ("sbcl-babel" ,sbcl-babel))) (home-page "https://8arrow.org/ningle/") @@ -4973,73 +4100,51 @@ mostly Common Lisp implementation.") (define-public ecl-cl-fastcgi (sbcl-package->ecl-package sbcl-cl-fastcgi)) -(define clack-commit "e3e032843bb1220ab96263c411aa7f2feb4746e0") -(define clack-revision "1") - (define-public sbcl-clack - (package - (name "sbcl-clack") - (version (git-version "2.0.0" clack-revision clack-commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/clack") - (commit clack-commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("sbcl-lack" ,sbcl-lack) - ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace) - ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads))) - (home-page "https://github.com/fukamachi/clack") - (synopsis "Web Application Environment for Common Lisp") - (description - "Clack is a web application environment for Common Lisp inspired by + (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0") + (revision "1")) + (package + (name "sbcl-clack") + (version (git-version "2.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fukamachi/clack") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cl-fastcgi" ,sbcl-cl-fastcgi) + ("flexi-streams" ,sbcl-flexi-streams) + ("hunchentoot" ,sbcl-hunchentoot) + ("lack" ,sbcl-lack) + ("split-sequence" ,sbcl-split-sequence) + ("usocket" ,sbcl-usocket) + ("quri" ,sbcl-quri))) + (arguments + '(#:asd-files '("clack.asd" + "clack-handler-fcgi.asd" + "clack-socket.asd" + "clack-handler-hunchentoot.asd") + #:asd-systems '("clack" + "clack-handler-fcgi" + "clack-socket" + "clack-handler-hunchentoot"))) + (home-page "https://github.com/fukamachi/clack") + (synopsis "Web Application Environment for Common Lisp") + (description + "Clack is a web application environment for Common Lisp inspired by Python's WSGI and Ruby's Rack.") - (license license:llgpl))) + (license license:llgpl)))) (define-public cl-clack (sbcl-package->cl-source-package sbcl-clack)) -(define-public sbcl-clack-handler-fcgi - (package - (inherit sbcl-clack) - (name "sbcl-clack-handler-fcgi") - (version (git-version "0.3.1" clack-revision clack-commit)) - (inputs - `(("cl-fastcgi" ,sbcl-cl-fastcgi) - ("alexandria" ,sbcl-alexandria) - ("flexi-streams" ,sbcl-flexi-streams) - ("usocket" ,sbcl-usocket) - ("quri" ,sbcl-quri))) - (synopsis "Web Application Environment for Common Lisp (FastCGI handler)"))) - -(define-public cl-clack-handler-fcgi - (sbcl-package->cl-source-package sbcl-clack-handler-fcgi)) - -(define sbcl-clack-socket - (package - (inherit sbcl-clack) - (name "sbcl-clack-socket") - (version (git-version "0.1" clack-revision clack-commit)))) - -(define-public sbcl-clack-handler-hunchentoot - (package - (inherit sbcl-clack) - (name "sbcl-clack-handler-hunchentoot") - (version (git-version "0.4.0" clack-revision clack-commit)) - (inputs - `(("hunchentoot" ,sbcl-hunchentoot) - ("clack-socket" ,sbcl-clack-socket) - ("flexi-streams" ,sbcl-flexi-streams) - ("bordeaux-threads" ,sbcl-bordeaux-threads) - ("split-sequence" ,sbcl-split-sequence) - ("alexandria" ,sbcl-alexandria))) - (synopsis "Web Application Environment for Common Lisp (Hunchentoot handler)"))) - (define-public sbcl-log4cl (let ((commit "611e094458504b938d49de904eab141285328c7c") (revision "1")) @@ -5218,8 +4323,8 @@ the CFFI approach used by burgled-batteries, but has the same goal.") (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd")))) (build-system asdf-build-system/sbcl) (arguments - `(#:asd-file "parse-declarations-1.0.asd" - #:asd-system-name "parse-declarations-1.0")) + `(#:asd-files '("parse-declarations-1.0.asd") + #:asd-systems '("parse-declarations-1.0"))) (home-page "https://common-lisp.net/project/parse-declarations/") (synopsis "Parse, filter, and build declarations") (description @@ -5263,7 +4368,7 @@ high-level way. This library provides such operators.") ;; MIT (license license:expat)))) -(define-public cl-cl-quickcheck +(define-public cl-quickcheck (sbcl-package->cl-source-package sbcl-cl-quickcheck)) (define-public ecl-cl-quickcheck @@ -5317,7 +4422,6 @@ high-level way. This library provides such operators.") (inputs `(("python" ,python) ("sbcl-cffi" ,sbcl-cffi) - ("sbcl-cffi-grovel" ,sbcl-cffi-grovel) ("sbcl-alexandria" , sbcl-alexandria) ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations) ("sbcl-trivial-garbage" ,sbcl-trivial-garbage))) @@ -5428,8 +4532,8 @@ basic everyday functions and macros.") (arguments ;; Guix incorrectly assumes the "8" is part of the version ;; number and lobs it off. - `(#:asd-file "trivial-utf-8.asd" - #:asd-system-name "trivial-utf-8")) + `(#:asd-files '("trivial-utf-8.asd") + #:asd-systems '("trivial-utf-8"))) (build-system asdf-build-system/sbcl) (synopsis "UTF-8 input/output library") (description @@ -5508,13 +4612,12 @@ formats.") (define-public ecl-swap-bytes (sbcl-package->ecl-package sbcl-swap-bytes)) -(define-public sbcl-iolib.asdf +(define-public sbcl-iolib ;; Latest release is from June 2017. (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021") (revision "2")) (package - (name "sbcl-iolib.asdf") - (build-system asdf-build-system/sbcl) + (name "sbcl-iolib") (version (git-version "0.8.3" revision commit)) (home-page "https://github.com/sionescu/iolib") (source @@ -5527,135 +4630,42 @@ formats.") (sha256 (base32 "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12")))) + (build-system asdf-build-system/sbcl) (inputs - `(("alexandria" ,sbcl-alexandria))) + `(("alexandria" ,sbcl-alexandria) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cffi" ,sbcl-cffi) + ("idna" ,sbcl-idna) + ("libfixposix" ,libfixposix) + ("split-sequence" ,sbcl-split-sequence) + ("swap-bytes" ,sbcl-swap-bytes))) (arguments - '(#:asd-file "iolib.asdf.asd")) - (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library") + '(#:asd-files '("iolib.asdf.asd" + "iolib.conf.asd" + "iolib.common-lisp.asd" + "iolib.base.asd" + "iolib.asd") + #:asd-systems '("iolib") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/syscalls/ffi-functions-unix.lisp" + (("\\(:default \"libfixposix\"\\)") + (string-append + "(:default \"" + (assoc-ref inputs "libfixposix") "/lib/libfixposix\")"))) + ;; Socket tests need Internet access, disable them. + (substitute* "iolib.asd" + (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)") + ""))))))) + (synopsis "Common Lisp I/O library") (description "IOlib is to be a better and more modern I/O library than the standard Common Lisp library. It contains a socket library, a DNS resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)} and @code{kqueue(2)}), a pathname library and file-system utilities.") (license license:expat)))) -(define-public sbcl-iolib.conf - (package - (inherit sbcl-iolib.asdf) - (name "sbcl-iolib.conf") - (inputs - `(("iolib.asdf" ,sbcl-iolib.asdf))) - (arguments - '(#:asd-file "iolib.conf.asd")) - (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library"))) - -(define-public sbcl-iolib.common-lisp - (package - (inherit sbcl-iolib.asdf) - (name "sbcl-iolib.common-lisp") - (inputs - `(("iolib.asdf" ,sbcl-iolib.asdf) - ("iolib.conf" ,sbcl-iolib.conf))) - (arguments - '(#:asd-file "iolib.common-lisp.asd")) - (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library"))) - -(define-public sbcl-iolib.base - (package - (inherit sbcl-iolib.asdf) - (name "sbcl-iolib.base") - (inputs - `(("iolib.asdf" ,sbcl-iolib.asdf) - ("iolib.conf" ,sbcl-iolib.conf) - ("iolib.common-lisp" ,sbcl-iolib.common-lisp) - ("split-sequence" ,sbcl-split-sequence))) - (arguments - '(#:asd-file "iolib.base.asd")) - (synopsis "Base package for IOLib, a Common Lisp I/O library"))) - -(define-public sbcl-iolib.grovel - (deprecated-package "sbcl-iolib.grovel" sbcl-cffi-grovel)) - -(define sbcl-iolib+syscalls - (package - (inherit sbcl-iolib.asdf) - (name "sbcl-iolib+syscalls") - (inputs - `(("iolib.asdf" ,sbcl-iolib.asdf) - ("iolib.conf" ,sbcl-iolib.conf) - ("cffi-grovel" ,sbcl-cffi-grovel) - ("iolib.base" ,sbcl-iolib.base) - ("bordeaux-threads" ,sbcl-bordeaux-threads) - ("idna" ,sbcl-idna) - ("swap-bytes" ,sbcl-swap-bytes) - ("libfixposix" ,libfixposix) - ("cffi" ,sbcl-cffi))) - (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (arguments - '(#:asd-file "iolib.asd" - #:asd-system-name "iolib/syscalls" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "src/syscalls/ffi-functions-unix.lisp" - (("\\(:default \"libfixposix\"\\)") - (string-append - "(:default \"" - (assoc-ref inputs "libfixposix") "/lib/libfixposix\")"))) - ;; Socket tests need Internet access, disable them. - (substitute* "iolib.asd" - (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)") - ""))))))) - (synopsis "Common Lisp I/O library"))) - -(define sbcl-iolib+multiplex - (package - (inherit sbcl-iolib+syscalls) - (name "sbcl-iolib+multiplex") - (inputs - `(("iolib+syscalls" ,sbcl-iolib+syscalls) - ,@(package-inputs sbcl-iolib+syscalls))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls) - ((#:asd-system-name _) "iolib/multiplex"))))) - -(define sbcl-iolib+streams - (package - (inherit sbcl-iolib+syscalls) - (name "sbcl-iolib+streams") - (inputs - `(("iolib+multiplex" ,sbcl-iolib+multiplex) - ,@(package-inputs sbcl-iolib+syscalls))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls) - ((#:asd-system-name _) "iolib/streams"))))) - -(define sbcl-iolib+sockets - (package - (inherit sbcl-iolib+syscalls) - (name "sbcl-iolib+sockets") - (inputs - `(("iolib+syscalls" ,sbcl-iolib+syscalls) - ("iolib+streams" ,sbcl-iolib+streams) - ,@(package-inputs sbcl-iolib+syscalls))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls) - ((#:asd-system-name _) "iolib/sockets"))))) - -(define-public sbcl-iolib - (package - (inherit sbcl-iolib+syscalls) - (name "sbcl-iolib") - (inputs - `(("iolib+multiplex" ,sbcl-iolib+multiplex) - ("iolib+streams" ,sbcl-iolib+streams) - ("iolib+sockets" ,sbcl-iolib+sockets) - ,@(package-inputs sbcl-iolib+syscalls))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls) - ((#:asd-system-name _) "iolib"))))) - (define-public cl-iolib (let ((parent (sbcl-package->cl-source-package sbcl-iolib))) (package @@ -5720,14 +4730,12 @@ Closure is a reference to the web browser it was originally written for.") ;; TODO: License? (license #f)))) -(define-public sbcl-cxml+xml +(define-public sbcl-cxml (let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf") (revision "1")) (package - (name "sbcl-cxml+xml") - (build-system asdf-build-system/sbcl) + (name "sbcl-cxml") (version (git-version "0.0.0" revision commit)) - (home-page "https://common-lisp.net/project/cxml/") (source (origin (method git-fetch) @@ -5738,77 +4746,26 @@ Closure is a reference to the web browser it was originally written for.") (sha256 (base32 "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37")))) - (inputs - `(("closure-common" ,sbcl-closure-common) - ("puri" ,sbcl-puri) - ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) - (arguments - `(#:asd-file "cxml.asd" - #:asd-system-name "cxml/xml")) - (synopsis "Common Lisp XML parser") - (description "CXML implements a namespace-aware, validating XML 1.0 -parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are -offered, one SAX-like, the other similar to StAX.") - (license license:llgpl)))) - -(define sbcl-cxml+dom - (package - (inherit sbcl-cxml+xml) - (name "sbcl-cxml+dom") - (inputs - `(("closure-common" ,sbcl-closure-common) - ("puri" ,sbcl-puri) - ("cxml+xml" ,sbcl-cxml+xml))) - (arguments - `(#:asd-file "cxml.asd" - #:asd-system-name "cxml/dom")))) - -(define sbcl-cxml+klacks - (package - (inherit sbcl-cxml+xml) - (name "sbcl-cxml+klacks") + (build-system asdf-build-system/sbcl) (inputs `(("closure-common" ,sbcl-closure-common) ("puri" ,sbcl-puri) - ("cxml+xml" ,sbcl-cxml+xml))) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) (arguments - `(#:asd-file "cxml.asd" - #:asd-system-name "cxml/klacks")))) - -(define sbcl-cxml+test - (package - (inherit sbcl-cxml+xml) - (name "sbcl-cxml+test") - (inputs - `(("closure-common" ,sbcl-closure-common) - ("puri" ,sbcl-puri) - ("cxml+xml" ,sbcl-cxml+xml))) - (arguments - `(#:asd-file "cxml.asd" - #:asd-system-name "cxml/test")))) - -(define-public sbcl-cxml - (package - (inherit sbcl-cxml+xml) - (name "sbcl-cxml") - (inputs - `(("closure-common" ,sbcl-closure-common) - ("puri" ,sbcl-puri) - ("trivial-gray-streams" ,sbcl-trivial-gray-streams) - ("cxml+dom" ,sbcl-cxml+dom) - ("cxml+klacks" ,sbcl-cxml+klacks) - ("cxml+test" ,sbcl-cxml+test))) - (arguments - `(#:asd-file "cxml.asd" - #:asd-system-name "cxml" - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'build 'install-dtd (lambda* (#:key outputs #:allow-other-keys) (install-file "catalog.dtd" (string-append (assoc-ref outputs "out") - "/lib/" (%lisp-type)))))))))) + "/lib/common-lisp/" (%lisp-type) "/cxml"))))))) + (synopsis "Common Lisp XML parser") + (description "CXML implements a namespace-aware, validating XML 1.0 +parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are +offered, one SAX-like, the other similar to StAX.") + (home-page "https://common-lisp.net/project/cxml/") + (license license:llgpl)))) (define-public cl-cxml (sbcl-package->cl-source-package sbcl-cxml)) @@ -5869,8 +4826,7 @@ cookie headers, cookie creation, cookie jar creation and more.") ("cl-ppcre" ,sbcl-cl-ppcre) ("local-time" ,sbcl-local-time))) (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf) - ("prove" ,sbcl-prove))) + `(("prove" ,sbcl-prove))) (arguments ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test. `(#:tests? #f)) @@ -5919,8 +4875,7 @@ cookie headers, cookie creation, cookie jar creation and more.") ("alexandria" ,sbcl-alexandria))) (native-inputs `(("prove" ,sbcl-prove) - ("prove-asdf" ,sbcl-prove-asdf) - ("lack-request" ,sbcl-lack-request) + ("lack" ,sbcl-lack) ("clack" ,sbcl-clack) ("babel" ,sbcl-babel) ("alexandria" ,sbcl-alexandria) @@ -6150,11 +5105,19 @@ optimizing techniques widely used in the functional programming world.") (sha256 (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg")))) (inputs - `(("fare-utils" ,sbcl-fare-utils))) + `(("fare-utils" ,sbcl-fare-utils) + ("named-readtables" ,sbcl-named-readtables) + ("optima" ,sbcl-optima))) (arguments ;; XXX: Circular dependencies: Tests depend on subsystems, ;; which depend on the main systems. `(#:tests? #f + #:asd-files '("fare-quasiquote.asd" + "fare-quasiquote-optima.asd" + "fare-quasiquote-readtable.asd" + "fare-quasiquote-extras.asd") + #:asd-systems '("fare-quasiquote" + "fare-quasiquote-extras") #:phases (modify-phases %standard-phases ;; XXX: Require 1.0.0 version of fare-utils, and we package some @@ -6164,7 +5127,11 @@ optimizing techniques widely used in the functional programming world.") (lambda _ (substitute* "fare-quasiquote.asd" (("\\(:version \"fare-utils\" \"1.0.0\"\\)") - "\"fare-utils\""))))))) + "\"fare-utils\"")) + (substitute* "fare-quasiquote-optima.asd" + (("\\(:version \"optima\" \"1\\.0\"\\)") + "\"optima\"")) + #t))))) (synopsis "Pattern-matching friendly implementation of quasiquote") (description "The main purpose of this n+2nd reimplementation of quasiquote is enable matching of quasiquoted patterns, using Optima or @@ -6174,218 +5141,91 @@ Trivia.") (define-public cl-fare-quasiquote (sbcl-package->cl-source-package sbcl-fare-quasiquote)) -(define-public sbcl-fare-quasiquote-optima - (package - (inherit sbcl-fare-quasiquote) - (name "sbcl-fare-quasiquote-optima") - (inputs - `(("optima" ,sbcl-optima) - ("fare-quasiquote" ,sbcl-fare-quasiquote))) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-requirement - (lambda _ - (substitute* "fare-quasiquote-optima.asd" - (("\\(:version \"optima\" \"1\\.0\"\\)") - "\"optima\"")) - #t))))))) - -(define-public cl-fare-quasiquote-optima - (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima)) - -(define-public sbcl-fare-quasiquote-readtable - (package - (inherit sbcl-fare-quasiquote) - (name "sbcl-fare-quasiquote-readtable") - (inputs - `(("fare-quasiquote" ,sbcl-fare-quasiquote) - ("named-readtables" ,sbcl-named-readtables))) - (description "The main purpose of this n+2nd reimplementation of -quasiquote is enable matching of quasiquoted patterns, using Optima or -Trivia. - -This package uses fare-quasiquote with named-readtable."))) - -(define-public cl-fare-quasiquote-readtable - (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable)) - -(define-public sbcl-fare-quasiquote-extras - (package - (inherit sbcl-fare-quasiquote) - (name "sbcl-fare-quasiquote-extras") - (build-system asdf-build-system/sbcl) - (inputs - `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima) - ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable))) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'build - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib/" (%lisp-type)))) - (mkdir-p lib) - (install-file "fare-quasiquote-extras.asd" lib) - (make-file-writable - (string-append lib "/fare-quasiquote-extras.asd")) - #t)))))) - (description "This library combines @code{fare-quasiquote-readtable} and -@code{fare-quasiquote-optima}."))) - -(define-public cl-fare-quasiquote-extras - (package - (inherit cl-fare-quasiquote) - (name "cl-fare-quasiquote-extras") - (build-system asdf-build-system/source) - (propagated-inputs - `(("fare-quasiquote" ,cl-fare-quasiquote) - ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima) - ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable))) - (description "This library combines @code{fare-quasiquote-readtable} and -@code{fare-quasiquote-optima}."))) - -(define-public sbcl-trivia.level0 +;;; Split the trivia package in two to work around the circular dependency +;;; between guicho271828/trivia and guicho271828/type-i. +(define-public sbcl-trivia.trivial (let ((commit "37698b47a14c2007630468de7a993694ef7bd475") (revision "2")) (package - (name "sbcl-trivia.level0") - (build-system asdf-build-system/sbcl) + (name "sbcl-trivia.trivial") (version (git-version "0.0.0" revision commit)) - (home-page "https://github.com/guicho271828/trivia") (source (origin (method git-fetch) (uri (git-reference - (url home-page) + (url "https://github.com/guicho271828/trivia") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "trivia" version)) (sha256 (base32 "0rsbwbw3ipxxgr6zzhci12nilq8zky475kmhz1rcxy4q8a85vn72")))) + (build-system asdf-build-system/sbcl) (inputs - `(("alexandria" ,sbcl-alexandria))) + `(("alexandria" ,sbcl-alexandria) + ("closer-mop" ,sbcl-closer-mop) + ("lisp-namespace" ,sbcl-lisp-namespace) + ("trivial-cltl2" ,sbcl-trivial-cltl2))) + (arguments + '(#:asd-files '("trivia.level0.asd" + "trivia.level1.asd" + "trivia.level2.asd" + "trivia.trivial.asd") + #:asd-systems '("trivia.trivial") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-build + (lambda _ + (for-each delete-file + '("trivia.balland2006.asd" + "trivia.ppcre.asd" + "trivia.quasiquote.asd" + "trivia.cffi.asd" + "trivia.asd" + "trivia.test.asd")) + #t))))) (synopsis "Pattern matching in Common Lisp") (description "Trivia is a pattern matching compiler that is compatible with Optima, another pattern matching library for Common Lisp. It is meant to be faster and more extensible than Optima.") + (home-page "https://github.com/guicho271828/trivia") (license license:llgpl)))) -(define-public sbcl-trivia.level1 - (package - (inherit sbcl-trivia.level0) - (name "sbcl-trivia.level1") - (inputs - `(("trivia.level0" ,sbcl-trivia.level0))) - (description "Trivia is a pattern matching compiler that is compatible -with Optima, another pattern matching library for Common Lisp. It is meant to -be faster and more extensible than Optima. - -This system contains the core patterns of Trivia."))) - -(define-public sbcl-trivia.level2 - (package - (inherit sbcl-trivia.level0) - (name "sbcl-trivia.level2") - (inputs - `(("trivia.level1" ,sbcl-trivia.level1) - ("lisp-namespace" ,sbcl-lisp-namespace) - ("trivial-cltl2" ,sbcl-trivial-cltl2) - ("closer-mop" ,sbcl-closer-mop))) - (description "Trivia is a pattern matching compiler that is compatible -with Optima, another pattern matching library for Common Lisp. It is meant to -be faster and more extensible than Optima. - -This system contains a non-optimized pattern matcher compatible with Optima, -with extensible optimizer interface."))) - -(define-public sbcl-trivia.trivial - (package - (inherit sbcl-trivia.level0) - (name "sbcl-trivia.trivial") - (inputs - `(("trivia.level2" ,sbcl-trivia.level2))) - (description "Trivia is a pattern matching compiler that is compatible -with Optima, another pattern matching library for Common Lisp. It is meant to -be faster and more extensible than Optima. - -This system contains the base level system of Trivia with a trivial optimizer."))) - -(define-public sbcl-trivia.balland2006 - (package - (inherit sbcl-trivia.level0) - (name "sbcl-trivia.balland2006") - (inputs - `(("trivia.trivial" ,sbcl-trivia.trivial) - ("iterate" ,sbcl-iterate) - ("type-i" ,sbcl-type-i) - ("alexandria" ,sbcl-alexandria))) - (arguments - ;; Tests are done in trivia itself. - `(#:tests? #f)) - (description "Trivia is a pattern matching compiler that is compatible -with Optima, another pattern matching library for Common Lisp. It is meant to -be faster and more extensible than Optima. - -This system contains the base level system of Trivia with a trivial optimizer."))) - -(define-public sbcl-trivia.ppcre - (package - (inherit sbcl-trivia.level0) - (name "sbcl-trivia.ppcre") - (inputs - `(("trivia.trivial" ,sbcl-trivia.trivial) - ("cl-ppcre" ,sbcl-cl-ppcre))) - (description "Trivia is a pattern matching compiler that is compatible -with Optima, another pattern matching library for Common Lisp. It is meant to -be faster and more extensible than Optima. - -This system contains the PPCRE extension."))) - -(define-public sbcl-trivia.quasiquote - (package - (inherit sbcl-trivia.level0) - (name "sbcl-trivia.quasiquote") - (inputs - `(("trivia.trivial" ,sbcl-trivia.trivial) - ("fare-quasiquote" ,sbcl-fare-quasiquote) - ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable))) - (description "Trivia is a pattern matching compiler that is compatible -with Optima, another pattern matching library for Common Lisp. It is meant to -be faster and more extensible than Optima. - -This system contains the fare-quasiquote extension."))) - -(define-public sbcl-trivia.cffi - (package - (inherit sbcl-trivia.level0) - (name "sbcl-trivia.cffi") - (inputs - `(("cffi" ,sbcl-cffi) - ("trivia.trivial" ,sbcl-trivia.trivial))) - (description "Trivia is a pattern matching compiler that is compatible -with Optima, another pattern matching library for Common Lisp. It is meant to -be faster and more extensible than Optima. - -This system contains the CFFI foreign slot access extension."))) - (define-public sbcl-trivia (package - (inherit sbcl-trivia.level0) + (inherit sbcl-trivia.trivial) (name "sbcl-trivia") - (inputs - `(("trivia.balland2006" ,sbcl-trivia.balland2006))) (native-inputs `(("fiveam" ,sbcl-fiveam) - ("trivia.ppcre" ,sbcl-trivia.ppcre) - ("trivia.quasiquote" ,sbcl-trivia.quasiquote) - ("trivia.cffi" ,sbcl-trivia.cffi) ("optima" ,sbcl-optima))) - (arguments - `(#:test-asd-file "trivia.test.asd")) - (description "Trivia is a pattern matching compiler that is compatible -with Optima, another pattern matching library for Common Lisp. It is meant to -be faster and more extensible than Optima."))) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cffi" ,sbcl-cffi) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("fare-quasiquote" ,sbcl-fare-quasiquote) + ("iterate" ,sbcl-iterate) + ("trivia.trivial" ,sbcl-trivia.trivial) + ("type-i" ,sbcl-type-i))) + (arguments + '(#:asd-files '("trivia.balland2006.asd" + "trivia.ppcre.asd" + "trivia.quasiquote.asd" + "trivia.cffi.asd" + "trivia.asd") + #:asd-systems '("trivia" + "trivia.ppcre" + "trivia.quasiquote" + "trivia.cffi") + #:test-asd-file "trivia.test.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-build + (lambda _ + (for-each delete-file + '("trivia.level0.asd" + "trivia.level1.asd" + "trivia.level2.asd" + "trivia.trivial.asd")) + #t))))))) (define-public cl-trivia (sbcl-package->cl-source-package sbcl-trivia)) @@ -6444,11 +5284,10 @@ various string metrics in Common Lisp: ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode) ("cl-change-case" ,sbcl-cl-change-case))) (native-inputs - `(("prove" ,sbcl-prove) - ("prove-asdf" ,sbcl-prove-asdf))) + `(("prove" ,sbcl-prove))) (arguments - `(#:asd-file "str.asd" - #:asd-system-name "str" + `(#:asd-files '("str.asd") + #:asd-systems '("str") #:test-asd-file "str.test.asd")) (synopsis "Modern, consistent and terse Common Lisp string manipulation library") (description "A modern and consistent Common Lisp string manipulation @@ -6495,15 +5334,11 @@ constructs can be used interchangeably with pattern matching, and the full power of CXML is available when necessary.") (license license:bsd-3)))) -;; TODO: dbus uses ASDF's package-inferred-system which is not supported by -;; asdf-build-system/sbcl as of 2019-08-02. We should fix -;; asdf-build-system/sbcl. -(define-public cl-dbus +(define-public sbcl-dbus (let ((commit "24b452df3a45ca5dc95015500f34baad175c981a") (revision "1")) (package - (name "cl-dbus") - (build-system asdf-build-system/source) + (name "sbcl-dbus") (version (git-version "20190408" revision commit)) (home-page "https://github.com/death/dbus") (source @@ -6516,9 +5351,8 @@ power of CXML is available when necessary.") (sha256 (base32 "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5")))) - ;; Inputs must be propagated or else packages depending on this won't - ;; have the necessary packages. - (propagated-inputs + (build-system asdf-build-system/sbcl) + (inputs `(("alexandria" ,sbcl-alexandria) ("trivial-garbage" ,sbcl-trivial-garbage) ("babel" ,sbcl-babel) @@ -6532,6 +5366,9 @@ power of CXML is available when necessary.") objects as well as send and notify other objects connected to a bus.") (license license:bsd-2)))) +(define-public cl-dbus + (sbcl-package->cl-source-package sbcl-dbus)) + (define-public sbcl-cl-hooks (let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7") (revision "1")) @@ -6616,8 +5453,7 @@ extension-points via the concept of hooks.") "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b")))) (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads) - ("usocket" ,sbcl-usocket) - ("usocket-server" ,sbcl-usocket-server))) + ("usocket" ,sbcl-usocket))) (synopsis "Common Lisp abstraction layer over platform dependent functionality") (description "@code{s-sysdeps} is an abstraction layer over platform dependent functionality. This simple package is used as a building block in a @@ -6731,7 +5567,13 @@ programming style and the efficiency of an iterative programming style.") "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga")))) (build-system asdf-build-system/sbcl) (inputs - `(("local-time" ,sbcl-local-time))) + `(("local-time" ,sbcl-local-time) + ("series" ,sbcl-series))) + (arguments + '(#:asd-files '("periods.asd" + "periods-series.asd") + #:asd-systems '("periods" + "periods-series"))) (synopsis "Common Lisp library for manipulating date/time objects") (description "Periods is a Common Lisp library providing a set of utilities for @@ -6746,26 +5588,6 @@ discontiguous ranges of time.") (define-public ecl-periods (sbcl-package->ecl-package sbcl-periods)) -(define-public sbcl-periods-series - (package - (inherit sbcl-periods) - (name "sbcl-periods-series") - (inputs - `(("periods" ,sbcl-periods) - ("series" ,sbcl-series))) - (arguments - '(#:asd-file "periods-series.asd" - #:asd-system-name "periods-series")) - (description - "Periods-series is an extension of the periods Common Lisp library -providing functions compatible with the series Common Lisp library."))) - -(define-public cl-periods-series - (sbcl-package->cl-source-package sbcl-periods-series)) - -(define-public ecl-periods-series - (sbcl-package->ecl-package sbcl-periods-series)) - (define-public sbcl-metatilities-base (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5") (revision "1")) @@ -6887,57 +5709,41 @@ on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.") (define-public ecl-xlunit (sbcl-package->ecl-package sbcl-xlunit)) -(define-public sbcl-fprog +(define-public sbcl-cambl (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636") (revision "1")) (package - (name "sbcl-fprog") - (version (git-version "1.0.0" revision commit)) + (name "sbcl-cambl") + (version (git-version "4.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/jwiegley/cambl") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "cambl" version)) (sha256 - (base32 - "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz")))) + (base32 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz")))) (build-system asdf-build-system/sbcl) - (synopsis "Functional programming utilities for Common Lisp") - (description - "@code{fprog} is a Common Lisp library allowing iteration over -immutable lists sharing identical sublists.") - (home-page "https://github.com/jwiegley/cambl") - (license license:bsd-3)))) - -(define-public cl-fprog - (sbcl-package->cl-source-package sbcl-fprog)) - -(define-public ecl-fprog - (sbcl-package->ecl-package sbcl-fprog)) - -(define-public sbcl-cambl - (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636") - (revision "1")) - (package - (inherit sbcl-fprog) - (name "sbcl-cambl") - (version (git-version "4.0.0" revision commit)) (native-inputs `(("xlunit" ,sbcl-xlunit))) (inputs `(("alexandria" ,sbcl-alexandria) ("cl-containers" ,sbcl-cl-containers) ("local-time" ,sbcl-local-time) - ("periods" ,sbcl-periods) - ("fprog" ,sbcl-fprog))) + ("periods" ,sbcl-periods))) + (arguments + '(#:asd-files '("fprog.asd" + "cambl.asd") + #:asd-systems '("cambl"))) (synopsis "Commoditized amounts and balances for Common Lisp") (description "CAMBL is a Common Lisp library providing a convenient facility for working with commoditized values. It does not allow compound units (and so is not suited for scientific operations) but does work rather nicely for the -purpose of financial calculations.")))) +purpose of financial calculations.") + (home-page "https://github.com/jwiegley/cambl") + (license license:bsd-3)))) (define-public cl-cambl (sbcl-package->cl-source-package sbcl-cambl)) @@ -6966,7 +5772,7 @@ purpose of financial calculations.")))) `(("cambl" ,sbcl-cambl) ("cl-ppcre" ,sbcl-cl-ppcre) ("local-time" ,sbcl-local-time) - ("periods-series" ,sbcl-periods-series))) + ("periods" ,sbcl-periods))) (arguments '(#:phases (modify-phases %standard-phases @@ -7380,14 +6186,13 @@ implementation specific equivalent.") (inputs `(("alexandria" ,sbcl-alexandria) ("trivia" ,sbcl-trivia) - ("trivia.quasiquote" ,sbcl-trivia.quasiquote) ("split-sequence" ,sbcl-split-sequence) ("string-case" ,sbcl-string-case) ("parse-number" ,sbcl-parse-number) ("trivial-garbage" ,sbcl-trivial-garbage) ("bordeaux-threads" ,sbcl-bordeaux-threads) ("named-readtables" ,sbcl-named-readtables) - ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras) + ("fare-quasiquote" ,sbcl-fare-quasiquote) ("parse-declarations-1.0" ,sbcl-parse-declarations) ("global-vars" ,sbcl-global-vars) ("trivial-file-size" ,sbcl-trivial-file-size) @@ -7593,11 +6398,8 @@ JSON interchange format.") (inputs `(("alexandria" ,sbcl-alexandria) ("iterate" ,sbcl-iterate) - ("metabang-bind" ,sbcl-metabang-bind))) - (propagated-inputs - ;; Swank doesn't have a pre-compiled package, therefore we must - ;; propagate its sources. - `(("swank" ,cl-slime-swank))) + ("metabang-bind" ,sbcl-metabang-bind) + ("swank" ,sbcl-slime-swank))) (arguments '(#:phases (modify-phases %standard-phases @@ -7632,19 +6434,23 @@ interactive development.") (file-name (git-file-name name version)) (sha256 (base32 - "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g")) - (patches (search-patches "sbcl-graph-asdf-definitions.patch")))) + "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g")))) (build-system asdf-build-system/sbcl) (native-inputs `(("stefil" ,sbcl-stefil))) (inputs `(("alexandria" ,sbcl-alexandria) ("cl-heap" ,sbcl-cl-heap) + ("cl-ppcre" ,sbcl-cl-ppcre) ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros) ("metabang-bind" ,sbcl-metabang-bind) - ("named-readtables" ,sbcl-named-readtables))) + ("named-readtables" ,sbcl-named-readtables) + ("yason" ,sbcl-yason))) (arguments - '(#:test-asd-file "graph-test.asd")) + '(#:asd-files '("graph.asd") + #:asd-systems '("graph" + "graph/dot" + "graph/json"))) (synopsis "Graph data structure and algorithms for Common Lisp") (description "The GRAPH Common Lisp library provides a data structures to represent @@ -7656,40 +6462,6 @@ path, maximum flow, minimum spanning tree, etc.).") (define-public cl-graph (sbcl-package->cl-source-package sbcl-graph)) -(define-public sbcl-graph-dot - (package - (inherit sbcl-graph) - (name "sbcl-graph-dot") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ppcre" ,sbcl-cl-ppcre) - ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros) - ("graph" ,sbcl-graph) - ("metabang-bind" ,sbcl-metabang-bind) - ("named-readtables" ,sbcl-named-readtables))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-graph) - ((#:asd-file _ "") "graph-dot.asd") - ((#:asd-system-name _ #f) "graph-dot"))) - (synopsis "Serialize graphs to and from DOT format"))) - -(define-public sbcl-graph-json - (package - (inherit sbcl-graph) - (name "sbcl-graph-json") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros) - ("graph" ,sbcl-graph) - ("metabang-bind" ,sbcl-metabang-bind) - ("named-readtables" ,sbcl-named-readtables) - ("yason" ,sbcl-yason))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-graph) - ((#:asd-file _ "") "graph-json.asd") - ((#:asd-system-name _ #f) "graph-json"))) - (synopsis "Serialize graphs to and from JSON format"))) - (define-public sbcl-trivial-indent (let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a") (revision "0")) @@ -7881,6 +6653,8 @@ your own classes.") (define-public cl-plump (sbcl-package->cl-source-package sbcl-plump)) +;;; Split the antik package in two to work around the circular dependency +;;; between antik/antik and antik/gsll. (define-public sbcl-antik-base (let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3") (revision "1")) @@ -7900,13 +6674,34 @@ your own classes.") (build-system asdf-build-system/sbcl) (inputs `(("alexandria" ,sbcl-alexandria) + ("cffi" ,sbcl-cffi) ("cl-ppcre" ,sbcl-cl-ppcre) + ("drakma" ,sbcl-drakma) + ("fare-utils" ,sbcl-fare-utils) ("iterate" ,sbcl-iterate) ("metabang-bind" ,sbcl-metabang-bind) ("named-readtables" ,sbcl-named-readtables) - ("split-sequence" ,sbcl-split-sequence))) + ("split-sequence" ,sbcl-split-sequence) + ("static-vectors" ,sbcl-static-vectors) + ("trivial-garbage" ,sbcl-trivial-garbage) + ("trivial-utf-8" ,sbcl-trivial-utf-8))) (native-inputs `(("lisp-unit" ,sbcl-lisp-unit))) + (arguments + '(#:asd-files '("antik-base.asd" + "foreign-array.asd" + "physical-dimension.asd" + "science-data.asd") + #:asd-systems '("antik-base" + "foreign-array" + "physical-dimension" + "science-data") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-build + (lambda _ + (delete-file "antik.asd") + #t))))) (synopsis "Scientific and engineering computation in Common Lisp") (description "Antik provides a foundation for scientific and engineering @@ -7919,68 +6714,6 @@ computer known.") (home-page "https://common-lisp.net/project/antik/") (license license:gpl3)))) -(define-public cl-antik-base - (sbcl-package->cl-source-package sbcl-antik-base)) - -(define-public ecl-antik-base - (sbcl-package->ecl-package sbcl-antik-base)) - -(define-public sbcl-foreign-array - (package - (inherit sbcl-antik-base) - (name "sbcl-foreign-array") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-antik-base) - ((#:asd-file _ "") "foreign-array.asd") - ((#:asd-system-name _ #f) "foreign-array"))) - (inputs - `(("antik-base" ,sbcl-antik-base) - ("cffi" ,sbcl-cffi) - ("trivial-garbage" ,sbcl-trivial-garbage) - ("static-vectors" ,sbcl-static-vectors))) - (synopsis "Common Lisp library providing access to foreign arrays"))) - -(define-public cl-foreign-array - (sbcl-package->cl-source-package sbcl-foreign-array)) - -(define-public ecl-foreign-array - (sbcl-package->ecl-package sbcl-foreign-array)) - -(define-public sbcl-physical-dimension - (package - (inherit sbcl-antik-base) - (name "sbcl-physical-dimension") - (inputs - `(("fare-utils" ,sbcl-fare-utils) - ("foreign-array" ,sbcl-foreign-array) - ("trivial-utf-8" ,sbcl-trivial-utf-8))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-antik-base) - ((#:asd-file _ "") "physical-dimension.asd") - ((#:asd-system-name _ #f) "physical-dimension"))) - (synopsis - "Common Lisp library providing computations with physical units"))) - -(define-public cl-physical-dimension - (sbcl-package->cl-source-package sbcl-physical-dimension)) - -(define-public sbcl-science-data - (package - (inherit sbcl-antik-base) - (name "sbcl-science-data") - (inputs - `(("physical-dimension" ,sbcl-physical-dimension) - ("drakma" ,sbcl-drakma))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-antik-base) - ((#:asd-file _ "") "science-data.asd") - ((#:asd-system-name _ #f) "science-data"))) - (synopsis - "Common Lisp library for scientific and engineering numerical data"))) - -(define-public cl-science-data - (sbcl-package->cl-source-package sbcl-science-data)) - (define-public sbcl-gsll (let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308") (revision "1")) @@ -8002,9 +6735,8 @@ computer known.") `(("lisp-unit" ,sbcl-lisp-unit))) (inputs `(("alexandria" ,sbcl-alexandria) - ("cffi-grovel" ,sbcl-cffi-grovel) - ("cffi-libffi" ,sbcl-cffi-libffi) - ("foreign-array" ,sbcl-foreign-array) + ("antik-base" ,sbcl-antik-base) + ("cffi" ,sbcl-cffi) ("gsl" ,gsl) ("metabang-bind" ,sbcl-metabang-bind) ("trivial-features" ,sbcl-trivial-features) @@ -8048,12 +6780,21 @@ intending to program in Lisp.") (inherit sbcl-antik-base) (name "sbcl-antik") (inputs - `(("gsll" ,sbcl-gsll) - ("physical-dimension" ,sbcl-physical-dimension))) + `(("antik-base" ,sbcl-antik-base) + ("gsll" ,sbcl-gsll))) (arguments - (substitute-keyword-arguments (package-arguments sbcl-antik-base) - ((#:asd-file _ "") "antik.asd") - ((#:asd-system-name _ #f) "antik"))))) + '(#:asd-files '("antik.asd") + #:asd-systems '("antik") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-build + (lambda _ + (for-each delete-file + '("antik-base.asd" + "foreign-array.asd" + "physical-dimension.asd" + "science-data.asd")) + #t))))))) (define-public cl-antik (sbcl-package->cl-source-package sbcl-antik)) @@ -8096,13 +6837,11 @@ doesn't support them.") (define-public ecl-cl-interpol (sbcl-package->ecl-package sbcl-cl-interpol)) -(define sbcl-symbol-munger-boot0 - ;; There is a cyclical dependency between symbol-munger and lisp-unit2. - ;; See https://github.com/AccelerationNet/symbol-munger/issues/4 - (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3") +(define-public sbcl-symbol-munger + (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416") (revision "1")) (package - (name "sbcl-symbol-munger-boot0") + (name "sbcl-symbol-munger") (version (git-version "0.0.1" revision commit)) (source (origin @@ -8113,16 +6852,15 @@ doesn't support them.") (file-name (git-file-name name version)) (sha256 (base32 - "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl")))) + "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km")))) (build-system asdf-build-system/sbcl) - (arguments - `(#:asd-file "symbol-munger.asd" - #:asd-system-name "symbol-munger")) (inputs - `(("iterate" ,sbcl-iterate) - ("alexandria" ,sbcl-alexandria))) - (native-inputs - `(("lisp-unit" ,sbcl-lisp-unit))) + `(("alexandria" ,sbcl-alexandria) + ("iterate" ,sbcl-iterate))) + (arguments + ;; There is a cyclical dependency between symbol-munger and lisp-unit2. + ;; See https://github.com/AccelerationNet/symbol-munger/issues/4 + '(#:tests? #f)) (synopsis "Capitalization and spacing conversion functions for Common Lisp") (description @@ -8135,13 +6873,19 @@ and camel-case rules.") ;; See https://github.com/AccelerationNet/symbol-munger/issues/5 (license license:expat)))) -(define sbcl-lisp-unit2-boot0 +(define-public cl-symbol-munger + (sbcl-package->cl-source-package sbcl-symbol-munger)) + +(define-public ecl-symbol-munger + (sbcl-package->ecl-package sbcl-symbol-munger)) + +(define-public sbcl-lisp-unit2 ;; There is a cyclical dependency between symbol-munger and lisp-unit2. ;; See https://github.com/AccelerationNet/symbol-munger/issues/4 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c") (revision "1")) (package - (name "sbcl-lisp-unit2-boot0") + (name "sbcl-lisp-unit2") (version (git-version "0.2.0" revision commit)) (source (origin @@ -8154,14 +6898,11 @@ and camel-case rules.") (base32 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp")))) (build-system asdf-build-system/sbcl) - (arguments - `(#:asd-file "lisp-unit2.asd" - #:asd-system-name "lisp-unit2")) (inputs `(("alexandria" ,sbcl-alexandria) ("cl-interpol" ,sbcl-cl-interpol) ("iterate" ,sbcl-iterate) - ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0))) + ("symbol-munger" ,sbcl-symbol-munger))) (synopsis "Test Framework for Common Lisp") (description "LISP-UNIT2 is a Common Lisp library that supports unit testing in the @@ -8170,56 +6911,6 @@ by Chris Riesbeck.") (home-page "https://github.com/AccelerationNet/lisp-unit2") (license license:expat)))) -(define-public sbcl-symbol-munger - (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416") - (revision "1")) - (package - (name "sbcl-symbol-munger") - (version (git-version "0.0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/AccelerationNet/symbol-munger") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("iterate" ,sbcl-iterate))) - (native-inputs - `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0))) - (synopsis - "Capitalization and spacing conversion functions for Common Lisp") - (description - "This is a Common Lisp library to change the capitalization and spacing -of a string or a symbol. It can convert to and from Lisp, english, underscore -and camel-case rules.") - (home-page "https://github.com/AccelerationNet/symbol-munger") - ;; The package declares a BSD license, but all of the license - ;; text is MIT. - ;; See https://github.com/AccelerationNet/symbol-munger/issues/5 - (license license:expat)))) - -(define-public cl-symbol-munger - (sbcl-package->cl-source-package sbcl-symbol-munger)) - -(define-public ecl-symbol-munger - (sbcl-package->ecl-package sbcl-symbol-munger)) - -(define-public sbcl-lisp-unit2 - (package - (inherit sbcl-lisp-unit2-boot0) - (name "sbcl-lisp-unit2") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-interpol" ,sbcl-cl-interpol) - ("iterate" ,sbcl-iterate) - ("symbol-munger" ,sbcl-symbol-munger))))) - (define-public cl-lisp-unit2 (sbcl-package->cl-source-package sbcl-lisp-unit2)) @@ -8301,11 +6992,11 @@ sacrificing much in the way of power.") (define-public ecl-external-program (sbcl-package->ecl-package sbcl-external-program)) -(define sbcl-cl-ana-boot0 +(define-public sbcl-cl-ana (let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9") (revision "1")) (package - (name "sbcl-cl-ana-boot0") + (name "sbcl-cl-ana") (version (git-version "0.0.0" revision commit)) (source (origin @@ -8315,9 +7006,90 @@ sacrificing much in the way of power.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 - "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh")))) + (base32 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh")))) (build-system asdf-build-system/sbcl) + (native-inputs + `(("cl-fad" ,sbcl-cl-fad))) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("antik" ,sbcl-antik) + ("cffi" ,sbcl-cffi) + ("cl-csv" ,sbcl-cl-csv) + ("closer-mop" ,sbcl-closer-mop) + ("external-program" ,sbcl-external-program) + ("gsl" ,gsl) + ("gsll" ,sbcl-gsll) + ("hdf5" ,hdf5-parallel-openmpi) + ("iterate" ,sbcl-iterate) + ("libffi" ,libffi) + ("split-sequence" ,sbcl-split-sequence))) + (arguments + `(#:asd-files '("cl-ana.asd" + "pathname-utils/cl-ana.pathname-utils.asd" + "package-utils/cl-ana.package-utils.asd" + "string-utils/cl-ana.string-utils.asd" + "functional-utils/cl-ana.functional-utils.asd" + "list-utils/cl-ana.list-utils.asd" + "generic-math/cl-ana.generic-math.asd" + "math-functions/cl-ana.math-functions.asd" + "calculus/cl-ana.calculus.asd" + "symbol-utils/cl-ana.symbol-utils.asd" + "macro-utils/cl-ana.macro-utils.asd" + "binary-tree/cl-ana.binary-tree.asd" + "tensor/cl-ana.tensor.asd" + "error-propogation/cl-ana.error-propogation.asd" + "quantity/cl-ana.quantity.asd" + "table/cl-ana.table.asd" + "table-utils/cl-ana.table-utils.asd" + "hdf-cffi/cl-ana.hdf-cffi.asd" + "int-char/cl-ana.int-char.asd" + "memoization/cl-ana.memoization.asd" + "typespec/cl-ana.typespec.asd" + "hdf-typespec/cl-ana.hdf-typespec.asd" + "hdf-utils/cl-ana.hdf-utils.asd" + "typed-table/cl-ana.typed-table.asd" + "hdf-table/cl-ana.hdf-table.asd" + "gsl-cffi/cl-ana.gsl-cffi.asd" + "ntuple-table/cl-ana.ntuple-table.asd" + "csv-table/cl-ana.csv-table.asd" + "reusable-table/cl-ana.reusable-table.asd" + "linear-algebra/cl-ana.linear-algebra.asd" + "lorentz/cl-ana.lorentz.asd" + "clos-utils/cl-ana.clos-utils.asd" + "hash-table-utils/cl-ana.hash-table-utils.asd" + "map/cl-ana.map.asd" + "fitting/cl-ana.fitting.asd" + "histogram/cl-ana.histogram.asd" + "file-utils/cl-ana.file-utils.asd" + "statistics/cl-ana.statistics.asd" + "gnuplot-interface/cl-ana.gnuplot-interface.asd" + "plotting/cl-ana.plotting.asd" + "table-viewing/cl-ana.table-viewing.asd" + "serialization/cl-ana.serialization.asd" + "makeres/cl-ana.makeres.asd" + "makeres-macro/cl-ana.makeres-macro.asd" + "makeres-block/cl-ana.makeres-block.asd" + "makeres-progress/cl-ana.makeres-progress.asd" + "makeres-table/cl-ana.makeres-table.asd" + "makeres-graphviz/cl-ana.makeres-graphviz.asd" + "makeres-branch/cl-ana.makeres-branch.asd" + "makeres-utils/cl-ana.makeres-utils.asd" + "statistical-learning/cl-ana.statistical-learning.asd") + #:asd-systems '("cl-ana") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "hdf-cffi/hdf-cffi.lisp" + (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so") + (string-append (assoc-ref inputs "hdf5") + "/lib/libhdf5.so"))) + (substitute* "gsl-cffi/gsl-cffi.lisp" + (("define-foreign-library gsl-cffi" all) + (string-append all " (:unix " + (assoc-ref inputs "gsl") + "/lib/libgsl.so)"))) + #t))))) (synopsis "Common Lisp data analysis library") (description "CL-ANA is a data analysis library in Common Lisp providing tabular and @@ -8326,1229 +7098,175 @@ visualization.") (home-page "https://github.com/ghollisjr/cl-ana") (license license:gpl3)))) -(define-public sbcl-cl-ana.pathname-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.pathname-utils") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.pathname-utils"))))) - -(define-public cl-ana.pathname-utils - (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils)) - -(define-public ecl-cl-ana.pathname-utils - (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils)) - -(define-public sbcl-cl-ana.package-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.package-utils") - (inputs - `(("alexandria" ,sbcl-alexandria))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.package-utils"))))) - -(define-public cl-ana.package-utils - (sbcl-package->cl-source-package sbcl-cl-ana.package-utils)) - -(define-public ecl-cl-ana.package-utils - (sbcl-package->ecl-package sbcl-cl-ana.package-utils)) - -(define-public sbcl-cl-ana.string-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.string-utils") - (inputs - `(("split-sequence" ,sbcl-split-sequence))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.string-utils"))))) - -(define-public cl-ana.string-utils - (sbcl-package->cl-source-package sbcl-cl-ana.string-utils)) - -(define-public ecl-cl-ana.string-utils - (sbcl-package->ecl-package sbcl-cl-ana.string-utils)) - -(define-public sbcl-cl-ana.functional-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.functional-utils") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.functional-utils"))))) - -(define-public cl-ana.functional-utils - (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils)) - -(define-public ecl-cl-ana.functional-utils - (sbcl-package->ecl-package sbcl-cl-ana.functional-utils)) - -(define-public sbcl-cl-ana.list-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.list-utils") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.list-utils"))))) - -(define-public cl-ana.list-utils - (sbcl-package->cl-source-package sbcl-cl-ana.list-utils)) - -(define-public ecl-cl-ana.list-utils - (sbcl-package->ecl-package sbcl-cl-ana.list-utils)) - -(define-public sbcl-cl-ana.generic-math - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.generic-math") - (inputs - `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd") - ((#:asd-system-name _ #f) "cl-ana.generic-math"))))) - -(define-public cl-ana.generic-math - (sbcl-package->cl-source-package sbcl-cl-ana.generic-math)) - -(define-public ecl-cl-ana.generic-math - (sbcl-package->ecl-package sbcl-cl-ana.generic-math)) - -(define-public sbcl-cl-ana.math-functions - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.math-functions") - (inputs - `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("gsll" ,sbcl-gsll))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd") - ((#:asd-system-name _ #f) "cl-ana.math-functions"))))) +(define-public cl-ana + (sbcl-package->cl-source-package sbcl-cl-ana)) -(define-public cl-ana.math-functions - (sbcl-package->cl-source-package sbcl-cl-ana.math-functions)) +(define-public sbcl-archive + (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc") + (revision "1")) + (package + (name "sbcl-archive") + (version (git-version "0.9" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sharplispers/archive") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cl-fad" ,sbcl-cl-fad) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) + (synopsis "Common Lisp library for tar and cpio archives") + (description + "This is a Common Lisp library to read and write disk-based file +archives such as those generated by the tar and cpio programs on Unix.") + (home-page "https://github.com/sharplispers/archive") + (license license:bsd-3)))) -(define-public sbcl-cl-ana.calculus - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.calculus") - (inputs - `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "calculus/cl-ana.calculus.asd") - ((#:asd-system-name _ #f) "cl-ana.calculus"))))) +(define-public cl-archive + (sbcl-package->cl-source-package sbcl-archive)) -(define-public cl-ana.calculus - (sbcl-package->cl-source-package sbcl-cl-ana.calculus)) +(define-public ecl-archive + (sbcl-package->ecl-package sbcl-archive)) -(define-public ecl-cl-ana.calculus - (sbcl-package->ecl-package sbcl-cl-ana.calculus)) +(define-public sbcl-misc-extensions + (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a") + (revision "1")) + (package + (name "sbcl-misc-extensions") + (version (git-version "3.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.common-lisp.net/misc-extensions/devel.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0")))) + (build-system asdf-build-system/sbcl) + (synopsis "Collection of small macros and extensions for Common Lisp") + (description + "This project is intended as a catchall for small, general-purpose +extensions to Common Lisp. It contains: -(define-public sbcl-cl-ana.symbol-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.symbol-utils") - (inputs - `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.symbol-utils"))))) +@itemize +@item @code{new-let}, a macro that combines and generalizes @code{let}, +@code{let*} and @code{multiple-value-bind}, +@item @code{gmap}, an iteration macro that generalizes @code{map}. +@end itemize\n") + (home-page "https://common-lisp.net/project/misc-extensions/") + (license license:public-domain)))) -(define-public cl-ana.symbol-utils - (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils)) +(define-public cl-misc-extensions + (sbcl-package->cl-source-package sbcl-misc-extensions)) -(define-public ecl-cl-ana.symbol-utils - (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils)) +(define-public ecl-misc-extensions + (sbcl-package->ecl-package sbcl-misc-extensions)) -(define-public sbcl-cl-ana.macro-utils +(define-public sbcl-mt19937 (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.macro-utils") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils) - ("split-sequence" ,sbcl-split-sequence))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.macro-utils"))))) + (name "sbcl-mt19937") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://common-lisp.net/project/asdf-packaging/" + "mt19937-latest.tar.gz")) + (sha256 + (base32 + "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv")))) + (build-system asdf-build-system/sbcl) + (synopsis "Mersenne Twister pseudo-random number generator") + (description + "MT19937 is a portable Mersenne Twister pseudo-random number generator +for Common Lisp.") + (home-page "https://www.cliki.net/mt19937") + (license license:public-domain))) -(define-public cl-ana.macro-utils - (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils)) +(define-public cl-mt19937 + (sbcl-package->cl-source-package sbcl-mt19937)) -(define-public ecl-cl-ana.macro-utils - (sbcl-package->ecl-package sbcl-cl-ana.macro-utils)) +(define-public ecl-mt19937 + (sbcl-package->ecl-package sbcl-mt19937)) -(define-public sbcl-cl-ana.binary-tree - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.binary-tree") - (inputs - `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd") - ((#:asd-system-name _ #f) "cl-ana.binary-tree"))))) +(define-public sbcl-fset + (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852") + (revision "1")) + (package + (name "sbcl-fset") + (version (git-version "1.3.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/slburson/fset") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy")) + (snippet '(begin + ;; Remove obsolete copy of system definition. + (delete-file "Code/fset.asd") + #t)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("misc-extensions" ,sbcl-misc-extensions) + ("mt19937" ,sbcl-mt19937) + ("named-readtables" ,sbcl-named-readtables))) + (synopsis "Functional set-theoretic collections library") + (description + "FSet is a functional set-theoretic collections library for Common Lisp. +Functional means that all update operations return a new collection rather than +modifying an existing one in place. Set-theoretic means that collections may +be nested arbitrarily with no additional programmer effort; for instance, sets +may contain sets, maps may be keyed by sets, etc.") + (home-page "https://common-lisp.net/project/fset/Site/index.html") + (license license:llgpl)))) -(define-public cl-ana.binary-tree - (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree)) +(define-public cl-fset + (sbcl-package->cl-source-package sbcl-fset)) -(define-public ecl-cl-ana.binary-tree - (sbcl-package->ecl-package sbcl-cl-ana.binary-tree)) +(define-public sbcl-cl-cont + (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a") + (revision "1")) + (package + (name "sbcl-cl-cont") + (version (git-version "0.3.8" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("closer-mop" ,sbcl-closer-mop))) + (native-inputs + `(("rt" ,sbcl-rt))) + (synopsis "Delimited continuations for Common Lisp") + (description + "This is a library that implements delimited continuations by +transforming Common Lisp code to continuation passing style.") + (home-page "https://common-lisp.net/project/cl-cont/") + (license license:llgpl)))) -(define-public sbcl-cl-ana.tensor - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.tensor") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "tensor/cl-ana.tensor.asd") - ((#:asd-system-name _ #f) "cl-ana.tensor"))))) +(define-public cl-cont + (sbcl-package->cl-source-package sbcl-cl-cont)) -(define-public cl-ana.tensor - (sbcl-package->cl-source-package sbcl-cl-ana.tensor)) - -(define-public ecl-cl-ana.tensor - (sbcl-package->ecl-package sbcl-cl-ana.tensor)) - -(define-public sbcl-cl-ana.error-propogation - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.error-propogation") - (inputs - `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd") - ((#:asd-system-name _ #f) "cl-ana.error-propogation"))))) - -(define-public cl-ana.error-propogation - (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation)) - -(define-public sbcl-cl-ana.quantity - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.quantity") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "quantity/cl-ana.quantity.asd") - ((#:asd-system-name _ #f) "cl-ana.quantity"))))) - -(define-public cl-ana.quantity - (sbcl-package->cl-source-package sbcl-cl-ana.quantity)) - -(define-public sbcl-cl-ana.table - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.table") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "table/cl-ana.table.asd") - ((#:asd-system-name _ #f) "cl-ana.table"))))) - -(define-public cl-ana.table - (sbcl-package->cl-source-package sbcl-cl-ana.table)) - -(define-public ecl-cl-ana.table - (sbcl-package->ecl-package sbcl-cl-ana.table)) - -(define-public sbcl-cl-ana.table-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.table-utils") - (inputs - `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils) - ("cl-ana.table" ,sbcl-cl-ana.table))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.table-utils"))))) - -(define-public cl-ana.table-utils - (sbcl-package->cl-source-package sbcl-cl-ana.table-utils)) - -(define-public ecl-cl-ana.table-utils - (sbcl-package->ecl-package sbcl-cl-ana.table-utils)) - -(define-public sbcl-cl-ana.hdf-cffi - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.hdf-cffi") - (inputs - `(("cffi" ,sbcl-cffi) - ("hdf5" ,hdf5-parallel-openmpi))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd") - ((#:asd-system-name _ #f) "cl-ana.hdf-cffi") - ((#:phases phases '%standard-phases) - `(modify-phases ,phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "hdf-cffi/hdf-cffi.lisp" - (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so") - (string-append - (assoc-ref inputs "hdf5") - "/lib/libhdf5.so"))))))))))) - -(define-public cl-ana.hdf-cffi - (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi)) - -(define-public ecl-cl-ana.hdf-cffi - (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi)) - -(define-public sbcl-cl-ana.int-char - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.int-char") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "int-char/cl-ana.int-char.asd") - ((#:asd-system-name _ #f) "cl-ana.int-char"))))) - -(define-public cl-ana.int-char - (sbcl-package->cl-source-package sbcl-cl-ana.int-char)) - -(define-public ecl-cl-ana.int-char - (sbcl-package->ecl-package sbcl-cl-ana.int-char)) - -(define-public sbcl-cl-ana.memoization - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.memoization") - (inputs - `(("alexandria" ,sbcl-alexandria))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "memoization/cl-ana.memoization.asd") - ((#:asd-system-name _ #f) "cl-ana.memoization"))))) - -(define-public cl-ana.memoization - (sbcl-package->cl-source-package sbcl-cl-ana.memoization)) - -(define-public ecl-cl-ana.memoization - (sbcl-package->ecl-package sbcl-cl-ana.memoization)) - -(define-public sbcl-cl-ana.typespec - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.typespec") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cffi" ,sbcl-cffi) - ("cl-ana.int-char" ,sbcl-cl-ana.int-char) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.memoization" ,sbcl-cl-ana.memoization) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils) - ("cl-ana.tensor" ,sbcl-cl-ana.tensor))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "typespec/cl-ana.typespec.asd") - ((#:asd-system-name _ #f) "cl-ana.typespec"))))) - -(define-public cl-ana.typespec - (sbcl-package->cl-source-package sbcl-cl-ana.typespec)) - -(define-public ecl-cl-ana.typespec - (sbcl-package->ecl-package sbcl-cl-ana.typespec)) - -(define-public sbcl-cl-ana.hdf-typespec - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.hdf-typespec") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cffi" ,sbcl-cffi) - ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.memoization" ,sbcl-cl-ana.memoization) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils) - ("cl-ana.typespec" ,sbcl-cl-ana.typespec))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd") - ((#:asd-system-name _ #f) "cl-ana.hdf-typespec"))))) - -(define-public cl-ana.hdf-typespec - (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec)) - -(define-public ecl-cl-ana.hdf-typespec - (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec)) - -(define-public sbcl-cl-ana.hdf-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.hdf-utils") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cffi" ,sbcl-cffi) - ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi) - ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.memoization" ,sbcl-cl-ana.memoization) - ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.typespec" ,sbcl-cl-ana.typespec))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.hdf-utils"))))) - -(define-public cl-ana.hdf-utils - (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils)) - -(define-public ecl-cl-ana.hdf-utils - (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils)) - -(define-public sbcl-cl-ana.typed-table - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.typed-table") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils) - ("cl-ana.table" ,sbcl-cl-ana.table) - ("cl-ana.typespec" ,sbcl-cl-ana.typespec))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd") - ((#:asd-system-name _ #f) "cl-ana.typed-table"))))) - -(define-public cl-ana.typed-table - (sbcl-package->cl-source-package sbcl-cl-ana.typed-table)) - -(define-public ecl-cl-ana.typed-table - (sbcl-package->ecl-package sbcl-cl-ana.typed-table)) - -(define-public sbcl-cl-ana.hdf-table - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.hdf-table") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree) - ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi) - ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec) - ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.memoization" ,sbcl-cl-ana.memoization) - ("cl-ana.table" ,sbcl-cl-ana.table) - ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table) - ("cl-ana.typespec" ,sbcl-cl-ana.typespec))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd") - ((#:asd-system-name _ #f) "cl-ana.hdf-table"))))) - -(define-public cl-ana.hdf-table - (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table)) - -(define-public ecl-cl-ana.hdf-table - (sbcl-package->ecl-package sbcl-cl-ana.hdf-table)) - -(define-public sbcl-cl-ana.gsl-cffi - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.gsl-cffi") - (inputs - `(("cffi" ,sbcl-cffi) - ("gsl" ,gsl))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd") - ((#:asd-system-name _ #f) "cl-ana.gsl-cffi") - ((#:phases phases '%standard-phases) - `(modify-phases ,phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "gsl-cffi/gsl-cffi.lisp" - (("define-foreign-library gsl-cffi" all) - (string-append all " (:unix " - (assoc-ref inputs "gsl") - "/lib/libgsl.so)"))))))))))) - -(define-public cl-ana.gsl-cffi - (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi)) - -(define-public ecl-cl-ana.gsl-cffi - (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi)) - -(define-public sbcl-cl-ana.ntuple-table - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.ntuple-table") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cffi" ,sbcl-cffi) - ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.table" ,sbcl-cl-ana.table) - ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table) - ("cl-ana.typespec" ,sbcl-cl-ana.typespec) - ("gsll" ,sbcl-gsll))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd") - ((#:asd-system-name _ #f) "cl-ana.ntuple-table"))))) - -(define-public cl-ana.ntuple-table - (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table)) - -(define-public sbcl-cl-ana.csv-table - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.csv-table") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("antik" ,sbcl-antik) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.table" ,sbcl-cl-ana.table) - ("cl-csv" ,sbcl-cl-csv) - ("iterate" ,sbcl-iterate))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd") - ((#:asd-system-name _ #f) "cl-ana.csv-table"))))) - -(define-public cl-ana.csv-table - (sbcl-package->cl-source-package sbcl-cl-ana.csv-table)) - -(define-public sbcl-cl-ana.reusable-table - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.reusable-table") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.table" ,sbcl-cl-ana.table))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd") - ((#:asd-system-name _ #f) "cl-ana.reusable-table"))))) - -(define-public cl-ana.reusable-table - (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table)) - -(define-public ecl-cl-ana.reusable-table - (sbcl-package->ecl-package sbcl-cl-ana.reusable-table)) - -(define-public sbcl-cl-ana.linear-algebra - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.linear-algebra") - (inputs - `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions) - ("cl-ana.tensor" ,sbcl-cl-ana.tensor) - ("gsll" ,sbcl-gsll))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd") - ((#:asd-system-name _ #f) "cl-ana.linear-algebra"))))) - -(define-public cl-ana.linear-algebra - (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra)) - -(define-public sbcl-cl-ana.lorentz - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.lorentz") - (inputs - `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra) - ("cl-ana.tensor" ,sbcl-cl-ana.tensor) - ("iterate" ,sbcl-iterate))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd") - ((#:asd-system-name _ #f) "cl-ana.lorentz"))))) - -(define-public cl-ana.lorentz - (sbcl-package->cl-source-package sbcl-cl-ana.lorentz)) - -(define-public sbcl-cl-ana.clos-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.clos-utils") - (inputs - `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils) - ("cl-ana.tensor" ,sbcl-cl-ana.tensor) - ("closer-mop" ,sbcl-closer-mop))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.clos-utils"))))) - -(define-public cl-ana.clos-utils - (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils)) - -(define-public ecl-cl-ana.clos-utils - (sbcl-package->ecl-package sbcl-cl-ana.clos-utils)) - -(define-public sbcl-cl-ana.hash-table-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.hash-table-utils") - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.hash-table-utils"))))) - -(define-public cl-ana.hash-table-utils - (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils)) - -(define-public ecl-cl-ana.hash-table-utils - (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils)) - -(define-public sbcl-cl-ana.map - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.map") - (inputs - `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "map/cl-ana.map.asd") - ((#:asd-system-name _ #f) "cl-ana.map"))))) - -(define-public cl-ana.map - (sbcl-package->cl-source-package sbcl-cl-ana.map)) - -(define-public ecl-cl-ana.map - (sbcl-package->ecl-package sbcl-cl-ana.map)) - -(define-public sbcl-cl-ana.fitting - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.fitting") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.map" ,sbcl-cl-ana.map) - ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions) - ("gsll" ,sbcl-gsll))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "fitting/cl-ana.fitting.asd") - ((#:asd-system-name _ #f) "cl-ana.fitting"))))) - -(define-public cl-ana.fitting - (sbcl-package->cl-source-package sbcl-cl-ana.fitting)) - -(define-public sbcl-cl-ana.histogram - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.histogram") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("iterate" ,sbcl-iterate) - ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree) - ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils) - ("cl-ana.fitting" ,sbcl-cl-ana.fitting) - ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.map" ,sbcl-cl-ana.map) - ("cl-ana.tensor" ,sbcl-cl-ana.tensor))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "histogram/cl-ana.histogram.asd") - ((#:asd-system-name _ #f) "cl-ana.histogram"))))) - -(define-public cl-ana.histogram - (sbcl-package->cl-source-package sbcl-cl-ana.histogram)) - -(define-public sbcl-cl-ana.file-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.file-utils") - (inputs - `(("external-program" ,sbcl-external-program) - ("split-sequence" ,sbcl-split-sequence))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.file-utils"))))) - -(define-public cl-ana.file-utils - (sbcl-package->cl-source-package sbcl-cl-ana.file-utils)) - -(define-public ecl-cl-ana.file-utils - (sbcl-package->ecl-package sbcl-cl-ana.file-utils)) - -(define-public sbcl-cl-ana.statistics - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.statistics") - (inputs - `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.histogram" ,sbcl-cl-ana.histogram) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.map" ,sbcl-cl-ana.map))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "statistics/cl-ana.statistics.asd") - ((#:asd-system-name _ #f) "cl-ana.statistics"))))) - -(define-public cl-ana.statistics - (sbcl-package->cl-source-package sbcl-cl-ana.statistics)) - -(define-public sbcl-cl-ana.gnuplot-interface - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.gnuplot-interface") - (inputs - `(("external-program" ,sbcl-external-program))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd") - ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface"))))) - -(define-public cl-ana.gnuplot-interface - (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface)) - -(define-public ecl-cl-ana.gnuplot-interface - (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface)) - -(define-public sbcl-cl-ana.plotting - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.plotting") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation) - ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface) - ("cl-ana.histogram" ,sbcl-cl-ana.histogram) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.map" ,sbcl-cl-ana.map) - ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions) - ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.tensor" ,sbcl-cl-ana.tensor) - ("external-program" ,sbcl-external-program) - ("split-sequence" ,sbcl-split-sequence))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "plotting/cl-ana.plotting.asd") - ((#:asd-system-name _ #f) "cl-ana.plotting"))))) - -(define-public cl-ana.plotting - (sbcl-package->cl-source-package sbcl-cl-ana.plotting)) - -(define-public sbcl-cl-ana.table-viewing - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.table-viewing") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.histogram" ,sbcl-cl-ana.histogram) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.plotting" ,sbcl-cl-ana.plotting) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.table" ,sbcl-cl-ana.table))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd") - ((#:asd-system-name _ #f) "cl-ana.table-viewing"))))) - -(define-public cl-ana.table-viewing - (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing)) - -(define-public sbcl-cl-ana.serialization - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.serialization") - (inputs - `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation) - ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils) - ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table) - ("cl-ana.histogram" ,sbcl-cl-ana.histogram) - ("cl-ana.int-char" ,sbcl-cl-ana.int-char) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.typespec" ,sbcl-cl-ana.typespec))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "serialization/cl-ana.serialization.asd") - ((#:asd-system-name _ #f) "cl-ana.serialization"))))) - -(define-public cl-ana.serialization - (sbcl-package->cl-source-package sbcl-cl-ana.serialization)) - -(define-public sbcl-cl-ana.makeres - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.makeres") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation) - ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils) - ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils) - ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils) - ("cl-ana.histogram" ,sbcl-cl-ana.histogram) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.map" ,sbcl-cl-ana.map) - ("cl-ana.memoization" ,sbcl-cl-ana.memoization) - ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils) - ("cl-ana.plotting" ,sbcl-cl-ana.plotting) - ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table) - ("cl-ana.serialization" ,sbcl-cl-ana.serialization) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils) - ("cl-ana.table" ,sbcl-cl-ana.table) - ("external-program" ,sbcl-external-program))) - (native-inputs - `(("cl-fad" ,sbcl-cl-fad))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "makeres/cl-ana.makeres.asd") - ((#:asd-system-name _ #f) "cl-ana.makeres"))))) - -(define-public cl-ana.makeres - (sbcl-package->cl-source-package sbcl-cl-ana.makeres)) - -(define-public sbcl-cl-ana.makeres-macro - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.makeres-macro") - (inputs - `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.makeres" ,sbcl-cl-ana.makeres))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd") - ((#:asd-system-name _ #f) "cl-ana.makeres-macro"))))) - -(define-public cl-ana.makeres-macro - (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro)) - -(define-public sbcl-cl-ana.makeres-block - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.makeres-block") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.makeres" ,sbcl-cl-ana.makeres))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd") - ((#:asd-system-name _ #f) "cl-ana.makeres-block"))))) - -(define-public cl-ana.makeres-block - (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block)) - -(define-public sbcl-cl-ana.makeres-progress - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.makeres-progress") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.makeres" ,sbcl-cl-ana.makeres))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd") - ((#:asd-system-name _ #f) "cl-ana.makeres-progress"))))) - -(define-public cl-ana.makeres-progress - (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress)) - -(define-public sbcl-cl-ana.makeres-table - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.makeres-table") - (inputs - `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table) - ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils) - ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table) - ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.makeres" ,sbcl-cl-ana.makeres) - ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro) - ("cl-ana.memoization" ,sbcl-cl-ana.memoization) - ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table) - ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.table" ,sbcl-cl-ana.table))) - (native-inputs - `(("cl-fad" ,sbcl-cl-fad))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd") - ((#:asd-system-name _ #f) "cl-ana.makeres-table"))))) - -(define-public cl-ana.makeres-table - (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table)) - -(define-public sbcl-cl-ana.makeres-graphviz - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.makeres-graphviz") - (inputs - `(("cl-ana.makeres" ,sbcl-cl-ana.makeres) - ("external-program" ,sbcl-external-program))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd") - ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz"))))) - -(define-public cl-ana.makeres-graphviz - (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz)) - -(define-public sbcl-cl-ana.makeres-branch - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.makeres-branch") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.map" ,sbcl-cl-ana.map) - ("cl-ana.makeres" ,sbcl-cl-ana.makeres))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd") - ((#:asd-system-name _ #f) "cl-ana.makeres-branch"))))) - -(define-public cl-ana.makeres-branch - (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch)) - -(define-public sbcl-cl-ana.makeres-utils - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.makeres-utils") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils) - ("cl-ana.fitting" ,sbcl-cl-ana.fitting) - ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.histogram" ,sbcl-cl-ana.histogram) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.makeres" ,sbcl-cl-ana.makeres) - ("cl-ana.map" ,sbcl-cl-ana.map) - ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils) - ("cl-ana.plotting" ,sbcl-cl-ana.plotting) - ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table) - ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils) - ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils) - ("cl-ana.table" ,sbcl-cl-ana.table))) - (native-inputs - `(("cl-fad" ,sbcl-cl-fad))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd") - ((#:asd-system-name _ #f) "cl-ana.makeres-utils"))))) - -(define-public cl-ana.makeres-utils - (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils)) - -(define-public sbcl-cl-ana.statistical-learning - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana.statistical-learning") - (inputs - `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils) - ("cl-ana.histogram" ,sbcl-cl-ana.histogram) - ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra) - ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils) - ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils) - ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions) - ("cl-ana.map" ,sbcl-cl-ana.map) - ("cl-ana.statistics" ,sbcl-cl-ana.statistics))) - (native-inputs - `(("cl-fad" ,sbcl-cl-fad))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") - "statistical-learning/cl-ana.statistical-learning.asd") - ((#:asd-system-name _ #f) "cl-ana.statistical-learning"))))) - -(define-public cl-ana.statistical-learning - (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning)) - -(define-public sbcl-cl-ana - (package - (inherit sbcl-cl-ana-boot0) - (name "sbcl-cl-ana") - (inputs - `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree) - ("cl-ana.calculus" ,sbcl-cl-ana.calculus) - ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils) - ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table) - ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation) - ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils) - ("cl-ana.fitting" ,sbcl-cl-ana.fitting) - ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math) - ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils) - ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table) - ("cl-ana.histogram" ,sbcl-cl-ana.histogram) - ("cl-ana.int-char" ,sbcl-cl-ana.int-char) - ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra) - ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz) - ("cl-ana.map" ,sbcl-cl-ana.map) - ("cl-ana.makeres" ,sbcl-cl-ana.makeres) - ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block) - ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch) - ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz) - ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro) - ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress) - ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table) - ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils) - ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions) - ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table) - ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils) - ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils) - ("cl-ana.plotting" ,sbcl-cl-ana.plotting) - ("cl-ana.quantity" ,sbcl-cl-ana.quantity) - ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table) - ("cl-ana.serialization" ,sbcl-cl-ana.serialization) - ("cl-ana.statistics" ,sbcl-cl-ana.statistics) - ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning) - ("cl-ana.table" ,sbcl-cl-ana.table) - ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils) - ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing) - ("cl-ana.tensor" ,sbcl-cl-ana.tensor) - ("libffi" ,libffi))) - (native-inputs - `(("cl-fad" ,sbcl-cl-fad))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0) - ((#:asd-file _ "") "cl-ana.asd") - ((#:asd-system-name _ #f) "cl-ana"))))) - -(define-public cl-ana - (sbcl-package->cl-source-package sbcl-cl-ana)) - -(define-public sbcl-archive - (let ((commit "631271c091ed02994bec3980cb288a2cf32c7cdc") - (revision "1")) - (package - (name "sbcl-archive") - (version (git-version "0.9" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sharplispers/archive") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("cl-fad" ,sbcl-cl-fad) - ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) - (synopsis "Common Lisp library for tar and cpio archives") - (description - "This is a Common Lisp library to read and write disk-based file -archives such as those generated by the tar and cpio programs on Unix.") - (home-page "https://github.com/sharplispers/archive") - (license license:bsd-3)))) - -(define-public cl-archive - (sbcl-package->cl-source-package sbcl-archive)) - -(define-public ecl-archive - (sbcl-package->ecl-package sbcl-archive)) - -(define-public sbcl-misc-extensions - (let ((commit "101c05112bf2f1e1bbf527396822d2f50ca6327a") - (revision "1")) - (package - (name "sbcl-misc-extensions") - (version (git-version "3.3" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.common-lisp.net/misc-extensions/devel.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0gz5f4p70qzilnxsnf5lih2n9m4wjcw8hlw4w8mpn9jyhyppyyv0")))) - (build-system asdf-build-system/sbcl) - (synopsis "Collection of small macros and extensions for Common Lisp") - (description - "This project is intended as a catchall for small, general-purpose -extensions to Common Lisp. It contains: - -@itemize -@item @code{new-let}, a macro that combines and generalizes @code{let}, -@code{let*} and @code{multiple-value-bind}, -@item @code{gmap}, an iteration macro that generalizes @code{map}. -@end itemize\n") - (home-page "https://common-lisp.net/project/misc-extensions/") - (license license:public-domain)))) - -(define-public cl-misc-extensions - (sbcl-package->cl-source-package sbcl-misc-extensions)) - -(define-public ecl-misc-extensions - (sbcl-package->ecl-package sbcl-misc-extensions)) - -(define-public sbcl-mt19937 - (package - (name "sbcl-mt19937") - (version "1.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://common-lisp.net/project/asdf-packaging/" - "mt19937-latest.tar.gz")) - (sha256 - (base32 - "1iw636b0iw5ygkv02y8i41lh7xj0acglv0hg5agryn0zzi2nf1xv")))) - (build-system asdf-build-system/sbcl) - (synopsis "Mersenne Twister pseudo-random number generator") - (description - "MT19937 is a portable Mersenne Twister pseudo-random number generator -for Common Lisp.") - (home-page "https://www.cliki.net/mt19937") - (license license:public-domain))) - -(define-public cl-mt19937 - (sbcl-package->cl-source-package sbcl-mt19937)) - -(define-public ecl-mt19937 - (sbcl-package->ecl-package sbcl-mt19937)) - -(define-public sbcl-fset - (let ((commit "6d2f9ded8934d2b42f2571a0ba5bda091037d852") - (revision "1")) - (package - (name "sbcl-fset") - (version (git-version "1.3.2" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/slburson/fset") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "127acblwrbqicx47h6sgvknz1cqyfn8p4xkhkn1m7hxh8w5gk1zy")) - (snippet '(begin - ;; Remove obsolete copy of system definition. - (delete-file "Code/fset.asd") - #t)))) - (build-system asdf-build-system/sbcl) - (inputs - `(("misc-extensions" ,sbcl-misc-extensions) - ("mt19937" ,sbcl-mt19937) - ("named-readtables" ,sbcl-named-readtables))) - (synopsis "Functional set-theoretic collections library") - (description - "FSet is a functional set-theoretic collections library for Common Lisp. -Functional means that all update operations return a new collection rather than -modifying an existing one in place. Set-theoretic means that collections may -be nested arbitrarily with no additional programmer effort; for instance, sets -may contain sets, maps may be keyed by sets, etc.") - (home-page "https://common-lisp.net/project/fset/Site/index.html") - (license license:llgpl)))) - -(define-public cl-fset - (sbcl-package->cl-source-package sbcl-fset)) - -(define-public sbcl-cl-cont - (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a") - (revision "1")) - (package - (name "sbcl-cl-cont") - (version (git-version "0.3.8" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.common-lisp.net/cl-cont/cl-cont.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("closer-mop" ,sbcl-closer-mop))) - (native-inputs - `(("rt" ,sbcl-rt))) - (synopsis "Delimited continuations for Common Lisp") - (description - "This is a library that implements delimited continuations by -transforming Common Lisp code to continuation passing style.") - (home-page "https://common-lisp.net/project/cl-cont/") - (license license:llgpl)))) - -(define-public cl-cont - (sbcl-package->cl-source-package sbcl-cl-cont)) - -(define-public ecl-cl-cont - (sbcl-package->ecl-package sbcl-cl-cont)) +(define-public ecl-cl-cont + (sbcl-package->ecl-package sbcl-cl-cont)) (define-public sbcl-cl-coroutine (let ((commit "de098f8d5debd8b14ef6864b5bdcbbf5ddbcfd72") @@ -9648,7 +7366,6 @@ has a small codebase that's easy to understand and use.") (inputs `(("alexandria" ,sbcl-alexandria) ("cffi" ,sbcl-cffi) - ("cffi-grovel" ,sbcl-cffi-grovel) ("libuv" ,libuv))) (arguments `(#:phases @@ -9678,11 +7395,11 @@ has a small codebase that's easy to understand and use.") (define-public ecl-cl-libuv (sbcl-package->ecl-package sbcl-cl-libuv)) -(define-public sbcl-cl-async-base +(define-public sbcl-cl-async (let ((commit "f6423e44404a44434d803605e0d2e17199158e28") (revision "1")) (package - (name "sbcl-cl-async-base") + (name "sbcl-cl-async") (version (git-version "0.6.1" revision commit)) (source (origin @@ -9696,98 +7413,26 @@ has a small codebase that's easy to understand and use.") "11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x")))) (build-system asdf-build-system/sbcl) (inputs - `(("bordeaux-threads" ,sbcl-bordeaux-threads) + `(("babel" ,sbcl-babel) + ("bordeaux-threads" ,sbcl-bordeaux-threads) ("cffi" ,sbcl-cffi) - ("cl-libuv" ,sbcl-cl-libuv))) + ("cl-libuv" ,sbcl-cl-libuv) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("fast-io" ,sbcl-fast-io) + ("openssl" ,openssl) + ("static-vectors" ,sbcl-static-vectors) + ("trivial-features" ,sbcl-trivial-features) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams) + ("vom" ,sbcl-vom))) (arguments - `(#:asd-file "cl-async.asd")) - (synopsis "Base system for cl-async") - (description - "Cl-async is a library for general purpose, non-blocking programming in -Common Lisp. It uses the libuv library as backend.") - (home-page "https://orthecreedence.github.io/cl-async/") - (license license:expat)))) - -(define-public cl-async-base - (sbcl-package->cl-source-package sbcl-cl-async-base)) - -(define-public ecl-cl-async-base - (sbcl-package->ecl-package sbcl-cl-async-base)) - -(define-public sbcl-cl-async-util - (package - (inherit sbcl-cl-async-base) - (name "sbcl-cl-async-util") - (inputs - `(("bordeaux-threads" ,sbcl-bordeaux-threads) - ("cffi" ,sbcl-cffi) - ("cl-async-base" ,sbcl-cl-async-base) - ("cl-libuv" ,sbcl-cl-libuv) - ("cl-ppcre" ,sbcl-cl-ppcre) - ("fast-io" ,sbcl-fast-io) - ("vom" ,sbcl-vom))) - (synopsis "Internal utilities for cl-async"))) - -(define-public cl-async-util - (sbcl-package->cl-source-package sbcl-cl-async-util)) - -(define-public ecl-cl-async-util - (sbcl-package->ecl-package sbcl-cl-async-util)) - -(define-public sbcl-cl-async - (package - (inherit sbcl-cl-async-base) - (name "sbcl-cl-async") - (inputs - `(("babel" ,sbcl-babel) - ("cffi" ,sbcl-cffi) - ("cl-async-base" ,sbcl-cl-async-base) - ("cl-async-util" ,sbcl-cl-async-util) - ("cl-libuv" ,sbcl-cl-libuv) - ("cl-ppcre" ,sbcl-cl-ppcre) - ("static-vectors" ,sbcl-static-vectors) - ("trivial-features" ,sbcl-trivial-features) - ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) - (synopsis "Asynchronous operations for Common Lisp"))) - -(define-public cl-async - (sbcl-package->cl-source-package sbcl-cl-async)) - -(define-public ecl-cl-async - (sbcl-package->ecl-package sbcl-cl-async)) - -(define-public sbcl-cl-async-repl - (package - (inherit sbcl-cl-async-base) - (name "sbcl-cl-async-repl") - (inputs - `(("bordeaux-threads" ,sbcl-bordeaux-threads) - ("cl-async" ,sbcl-cl-async))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-async-base) - ((#:asd-file _ "") "cl-async-repl.asd"))) - (synopsis "REPL integration for cl-async"))) - -(define-public cl-async-repl - (sbcl-package->cl-source-package sbcl-cl-async-repl)) - -(define-public ecl-cl-async-repl - (sbcl-package->ecl-package sbcl-cl-async-repl)) - -(define-public sbcl-cl-async-ssl - (package - (inherit sbcl-cl-async-base) - (name "sbcl-cl-async-ssl") - (inputs - `(("cffi" ,sbcl-cffi) - ("cl-async" ,sbcl-cl-async) - ("openssl" ,openssl) - ("vom" ,sbcl-vom))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-cl-async-base) - ((#:asd-file _ "") "cl-async-ssl.asd") - ((#:phases phases '%standard-phases) - `(modify-phases ,phases + `(#:asd-files '("cl-async.asd" + "cl-async-repl.asd" + "cl-async-ssl.asd") + #:asd-systems '("cl-async" + "cl-async-repl" + "cl-async-ssl") + #:phases + (modify-phases %standard-phases (add-after 'unpack 'fix-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/ssl/package.lisp" @@ -9797,14 +7442,19 @@ Common Lisp. It uses the libuv library as backend.") (("libssl\\.so") (string-append (assoc-ref inputs "openssl") "/lib/libssl.so"))) - #t)))))) - (synopsis "SSL wrapper around cl-async socket implementation"))) + #t))))) + (synopsis "Asynchronous operations for Common Lisp") + (description + "Cl-async is a library for general purpose, non-blocking programming in +Common Lisp. It uses the libuv library as backend.") + (home-page "https://orthecreedence.github.io/cl-async/") + (license license:expat)))) -(define-public cl-async-ssl - (sbcl-package->cl-source-package sbcl-cl-async-ssl)) +(define-public cl-async + (sbcl-package->cl-source-package sbcl-cl-async)) -(define-public ecl-cl-async-ssl - (sbcl-package->ecl-package sbcl-cl-async-ssl)) +(define-public ecl-cl-async + (sbcl-package->ecl-package sbcl-cl-async)) (define-public sbcl-blackbird (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8") @@ -10006,21 +7656,33 @@ ZeroMQ.") `(("imagemagick" ,imagemagick) ("tk" ,tk))) (arguments - `(#:asd-file "ltk/ltk.asd" + `(#:asd-files '("ltk/ltk.asd" + "ltk/ltk-mw.asd" + "ltk/ltk-remote.asd") + #:asd-systems '("ltk" + "ltk-mw" + "ltk-remote") #:tests? #f - #:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "ltk/ltk.lisp" - (("#-freebsd \"wish\"") - (string-append "#-freebsd \"" - (assoc-ref inputs "tk") - "/bin/wish\"")) - (("do-execute \"convert\"") - (string-append "do-execute \"" - (assoc-ref inputs "imagemagick") - "/bin/convert\""))) - #t))))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "ltk/ltk.lisp" + (("#-freebsd \"wish\"") + (string-append "#-freebsd \"" + (assoc-ref inputs "tk") + "/bin/wish\"")) + (("do-execute \"convert\"") + (string-append "do-execute \"" + (assoc-ref inputs "imagemagick") + "/bin/convert\""))) + #t)) + (add-after 'unpack 'fix-build + (lambda _ + (substitute* "ltk/ltk-remote.lisp" + (("\\(:export") + "(:shadow #:raise) (:export")) + #t))))) (synopsis "Common Lisp bindings for the Tk GUI toolkit") (description "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written @@ -10034,44 +7696,6 @@ in pure Common Lisp and does not require any Tk knowledge for its usage.") (define-public ecl-ltk (sbcl-package->ecl-package sbcl-ltk)) -(define-public sbcl-ltk-mw - (package - (inherit sbcl-ltk) - (name "sbcl-ltk-mw") - (inputs - `(("ltk" ,sbcl-ltk))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-ltk) - ((#:asd-file _) "ltk/ltk-mw.asd") - ((#:phases _) '%standard-phases))) - (synopsis "Extra widgets for LTK") - (description - "This is a collection of higher-level widgets built on top of LTK."))) - -(define-public cl-ltk-mw - (sbcl-package->cl-source-package sbcl-ltk-mw)) - -(define-public ecl-ltk-mw - (sbcl-package->ecl-package sbcl-ltk-mw)) - -(define-public sbcl-ltk-remote - (package - (inherit sbcl-ltk) - (name "sbcl-ltk-remote") - (inputs - `(("ltk" ,sbcl-ltk))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-ltk) - ((#:asd-file _) "ltk/ltk-remote.asd") - ((#:phases _) '%standard-phases))) - (synopsis "Remote GUI support for LTK") - (description - "This LTK extension allows the GUI to be displayed on a computer different -from the one running the Lisp program by using a TCP connection."))) - -(define-public cl-ltk-remote - (sbcl-package->cl-source-package sbcl-ltk-remote)) - (define-public sbcl-cl-lex (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b") (revision "1")) @@ -10400,13 +8024,12 @@ them as PNG files.") "/LICENSE"))) (inputs `(("cffi" ,sbcl-cffi) - ("cffi-grovel" ,sbcl-cffi-grovel) ("hdf5" ,hdf5-1.10))) (native-inputs `(("fiveam" ,sbcl-fiveam))) (arguments - `(#:asd-system-name "hdf5-cffi" - #:asd-file "hdf5-cffi.asd" + `(#:asd-systems '("hdf5-cffi") + #:asd-files '("hdf5-cffi.asd") #:test-asd-file "hdf5-cffi.test.asd" ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd, ;; I don't know if there is a way to tell asdf-build-system to load @@ -10458,8 +8081,8 @@ generation functions from the GSL library.") (home-page "https://github.com/lvaruzza/cl-randist") (license license:bsd-2) (arguments - `(#:asd-system-name "cl-randist" - #:asd-file "cl-randist.asd" + `(#:asd-systems '("cl-randist") + #:asd-files '("cl-randist.asd") #:tests? #f)))) (define-public cl-randist @@ -10492,8 +8115,8 @@ covered by the Common Lisp standard.") (inputs `(("documentation-utils" ,sbcl-documentation-utils))) (arguments - `(#:asd-system-name "float-features" - #:asd-file "float-features.asd" + `(#:asd-systems '("float-features") + #:asd-files '("float-features.asd") #:tests? #f)))) (define-public cl-float-features @@ -10532,8 +8155,8 @@ caching based on arguments (an expanded form of memoization).") ("symbol-munger" ,sbcl-symbol-munger) ("closer-mop" ,sbcl-closer-mop))) (arguments - `(#:asd-system-name "function-cache" - #:asd-file "function-cache.asd" + `(#:asd-systems '("function-cache") + #:asd-files '("function-cache.asd") #:tests? #f)))) (define-public cl-function-cache @@ -10572,8 +8195,8 @@ the elements in compound type specifier, e.g. @code{dimensions} in (native-inputs `(("fiveam" ,sbcl-fiveam))) (arguments - `(#:asd-system-name "type-r" - #:asd-file "type-r.asd" + `(#:asd-systems '("type-r") + #:asd-files '("type-r.asd") #:test-asd-file "type-r.test.asd"))))) (define-public cl-type-r @@ -10611,8 +8234,8 @@ correctly.") (native-inputs `(("fiveam" ,sbcl-fiveam))) (arguments - `(#:asd-system-name "trivialib.type-unify" - #:asd-file "trivialib.type-unify.asd" + `(#:asd-systems '("trivialib.type-unify") + #:asd-files '("trivialib.type-unify.asd") #:test-asd-file "trivialib.type-unify.test.asd"))))) (define-public cl-trivialib-type-unify @@ -10653,8 +8276,8 @@ code. The main target of this macro is speed.") (native-inputs `(("fiveam" ,sbcl-fiveam))) (arguments - `(#:asd-system-name "specialized-function" - #:asd-file "specialized-function.asd" + `(#:asd-systems '("specialized-function") + #:asd-files '("specialized-function.asd") #:test-asd-file "specialized-function.test.asd"))))) (define-public cl-specialized-function @@ -10691,8 +8314,8 @@ additional form that is considered as a candidate for a constant.") (native-inputs `(("fiveam" ,sbcl-fiveam))) (arguments - `(#:asd-system-name "constantfold" - #:asd-file "constantfold.asd" + `(#:asd-systems '("constantfold") + #:asd-files '("constantfold.asd") #:test-asd-file "constantfold.test.asd"))))) (define-public cl-constantfold @@ -10731,8 +8354,8 @@ type correctness in Common Lisp. It is based on CLtL2 extensions.") (native-inputs `(("fiveam" ,sbcl-fiveam))) (arguments - `(#:asd-system-name "gtype" - #:asd-file "gtype.asd" + `(#:asd-systems '("gtype") + #:asd-files '("gtype.asd") #:test-asd-file "gtype.test.asd"))))) (define-public cl-gtype @@ -10778,8 +8401,8 @@ and usefulness, not speed. Track the progress at (native-inputs `(("fiveam" ,sbcl-fiveam))) (arguments - `(#:asd-system-name "numcl" - #:asd-file "numcl.asd" + `(#:asd-systems '("numcl") + #:asd-files '("numcl.asd") #:test-asd-file "numcl.test.asd"))))) (define-public cl-numcl @@ -10807,7 +8430,6 @@ and usefulness, not speed. Track the progress at ("let-plus" ,sbcl-let-plus))) (inputs `(("cffi" ,sbcl-cffi) - ("cffi-grovel" ,sbcl-cffi-grovel) ("zeromq" ,zeromq))) (arguments `(#:phases (modify-phases %standard-phases @@ -10945,11 +8567,11 @@ approach to templating.") (define-public cl-mysql (sbcl-package->cl-source-package sbcl-cl-mysql)) -(define-public sbcl-simple-date +(define-public sbcl-postmodern (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a") (revision "1")) (package - (name "sbcl-simple-date") + (name "sbcl-postmodern") (version (git-version "1.19" revision commit)) (source (origin @@ -10963,108 +8585,27 @@ approach to templating.") (build-system asdf-build-system/sbcl) (native-inputs `(("fiveam" ,sbcl-fiveam))) - (synopsis "Basic date and time objects for Common Lisp") - (description - "@code{simple-date} is a very basic implementation of date and time -objects, used to support storing and retrieving time-related SQL types.") - (home-page "https://marijnhaverbeke.nl/postmodern/") - (license license:zlib)))) - -(define-public cl-simple-date - (sbcl-package->cl-source-package sbcl-simple-date)) - -(define-public ecl-simple-date - (sbcl-package->ecl-package sbcl-simple-date)) - -(define-public sbcl-cl-postgres - (package - (inherit sbcl-simple-date) - (name "sbcl-cl-postgres") - (native-inputs - `(("fiveam" ,sbcl-fiveam) - ("simple-date" ,sbcl-simple-date))) - (inputs - `(("md5" ,sbcl-md5) - ("split-sequence" ,sbcl-split-sequence) - ("usocket" ,sbcl-usocket))) - (arguments - `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency - (synopsis "Common Lisp interface for PostgreSQL") - (description - "@code{cl-postgres} is a low-level library used for interfacing with -a PostgreSQL server over a socket."))) - -(define-public cl-postgres - (sbcl-package->cl-source-package sbcl-cl-postgres)) - -(define-public ecl-cl-postgres - (package - (inherit (sbcl-package->ecl-package sbcl-cl-postgres)) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-ecl - (lambda _ - (substitute* "cl-postgres.asd" - (("\\) \"usocket\"") " :ecl) \"usocket\"")) - #t))) - #:tests? #f)))) - -(define-public sbcl-simple-date-postgres-glue - (package - (inherit sbcl-simple-date) - (name "sbcl-simple-date-postgres-glue") - (inputs - `(("cl-postgres" ,sbcl-cl-postgres) - ("simple-date" ,sbcl-simple-date))) - (arguments - `(#:asd-file "simple-date.asd" - #:asd-system-name "simple-date/postgres-glue")))) - -(define-public cl-simple-date-postgres-glue - (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue)) - -(define-public sbcl-s-sql - (package - (inherit sbcl-simple-date) - (name "sbcl-s-sql") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-postgres" ,sbcl-cl-postgres))) - (arguments - `(#:tests? #f)) ; TODO: Break postmodern circular dependency - (synopsis "Lispy DSL for SQL") - (description - "@code{s-sql} is a Common Lisp library that can be used to compile -s-expressions to strings of SQL code, escaping any Lisp values inside, and -doing as much as possible of the work at compile time."))) - -(define-public cl-s-sql - (sbcl-package->cl-source-package sbcl-s-sql)) - -(define-public sbcl-postmodern - (package - (inherit sbcl-simple-date) - (name "sbcl-postmodern") - (native-inputs - `(("fiveam" ,sbcl-fiveam) - ("simple-date" ,sbcl-simple-date) - ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue))) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("bordeaux-threads" ,sbcl-bordeaux-threads) - ("cl-postgres" ,sbcl-cl-postgres) - ("closer-mop" ,sbcl-closer-mop) - ("global-vars" ,sbcl-global-vars) - ("s-sql" ,sbcl-s-sql) - ("split-sequence" ,sbcl-split-sequence))) - (arguments - ;; TODO: Fix missing dependency errors for simple-date/postgres-glue, - ;; cl-postgres/tests and s-sql/tests. - `(#:tests? #f)) - (synopsis "Common Lisp library for interacting with PostgreSQL") - (description - "@code{postmodern} is a Common Lisp library for interacting with + (inputs + `(("alexandria" ,sbcl-alexandria) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("closer-mop" ,sbcl-closer-mop) + ("global-vars" ,sbcl-global-vars) + ("md5" ,sbcl-md5) + ("split-sequence" ,sbcl-split-sequence) + ("usocket" ,sbcl-usocket))) + (arguments + ;; TODO: Fix missing dependency errors for simple-date/postgres-glue, + ;; cl-postgres/tests and s-sql/tests. + `(#:tests? #f + #:asd-files '("postmodern.asd" + "simple-date.asd" + "cl-postgres.asd" + "s-sql.asd") + #:asd-systems '("postmodern" + "simple-date/postgres-glue"))) + (synopsis "Common Lisp library for interacting with PostgreSQL") + (description + "@code{postmodern} is a Common Lisp library for interacting with PostgreSQL databases. It provides the following features: @itemize @@ -11074,7 +8615,9 @@ foreign libraries. @item A syntax for mixing SQL and Lisp code. @item Convenient support for prepared statements and stored procedures. @item A metaclass for simple database-access objects. -@end itemize\n"))) +@end itemize\n") + (home-page "https://marijnhaverbeke.nl/postmodern/") + (license license:zlib)))) (define-public cl-postmodern (sbcl-package->cl-source-package sbcl-postmodern)) @@ -11097,12 +8640,27 @@ foreign libraries. (sha256 (base32 "0r3n4rw12qqxad0cryym2ibm4ddl49gbq4ra227afibsr43nw5k3")))) (build-system asdf-build-system/sbcl) + (native-inputs + `(("rove" ,sbcl-rove) + ("trivial-types" ,sbcl-trivial-types))) (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cl-mysql" ,sbcl-cl-mysql) + ("cl-sqlite" ,sbcl-cl-sqlite) ("closer-mop" ,sbcl-closer-mop) - ("split-sequence" ,sbcl-split-sequence))) + ("postmodern" ,sbcl-postmodern) + ("split-sequence" ,sbcl-split-sequence) + ("trivial-garbage" ,sbcl-trivial-garbage))) (arguments - `(#:tests? #f)) ; TODO: Break circular dependency with dbd-* + `(#:asd-files '("cl-dbi.asd" + "dbi.asd" + "dbd-mysql.asd" + "dbd-postgres.asd" + "dbd-sqlite3.asd") + #:asd-systems '("dbi" + "dbd-mysql" + "dbd-postgres" + "dbd-sqlite3"))) (synopsis "Database independent interface for Common Lisp") (description "@code{dbi} is a Common Lisp library providing a database independent @@ -11113,44 +8671,6 @@ interface for MySQL, PostgreSQL and SQLite.") (define-public cl-dbi (sbcl-package->cl-source-package sbcl-dbi)) -(define-public sbcl-dbd-mysql - (package - (inherit sbcl-dbi) - (name "sbcl-dbd-mysql") - (inputs - `(("cl-mysql" ,sbcl-cl-mysql) - ("dbi" ,sbcl-dbi))) - (synopsis "Database driver for MySQL"))) - -(define-public cl-dbd-mysql - (sbcl-package->cl-source-package sbcl-dbd-mysql)) - -(define-public sbcl-dbd-postgres - (package - (inherit sbcl-dbi) - (name "sbcl-dbd-postgres") - (inputs - `(("cl-postgres" ,sbcl-cl-postgres) - ("dbi" ,sbcl-dbi) - ("trivial-garbage" ,sbcl-trivial-garbage))) - (synopsis "Database driver for PostgreSQL"))) - -(define-public cl-dbd-postgres - (sbcl-package->cl-source-package sbcl-dbd-postgres)) - -(define-public sbcl-dbd-sqlite3 - (package - (inherit sbcl-dbi) - (name "sbcl-dbd-sqlite3") - (inputs - `(("cl-sqlite" ,sbcl-cl-sqlite) - ("dbi" ,sbcl-dbi) - ("trivial-garbage" ,sbcl-trivial-garbage))) - (synopsis "Database driver for SQLite3"))) - -(define-public cl-dbd-sqlite3 - (sbcl-package->cl-source-package sbcl-dbd-sqlite3)) - (define-public sbcl-uffi (package (name "sbcl-uffi") @@ -11215,175 +8735,113 @@ interface for MySQL, PostgreSQL and SQLite.") #t)))) (build-system asdf-build-system/sbcl) (native-inputs - `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat) - ("rt" ,sbcl-rt) - ("uffi" ,sbcl-uffi))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-permissions - (lambda _ - (make-file-writable "doc/html.tar.gz") - #t)) - (add-after 'unpack 'fix-tests - (lambda _ - (substitute* "clsql.asd" - (("clsql-tests :force t") - "clsql-tests")) - #t))))) - (synopsis "Common Lisp SQL Interface library") - (description - "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the -Xanalys CommonSQL interface for Lispworks. It provides low-level database -interfaces as well as a functional and an object oriented interface.") - (home-page "http://clsql.kpe.io/") - (license license:llgpl))) - -(define-public cl-clsql - (package - (inherit (sbcl-package->cl-source-package sbcl-clsql)) - (native-inputs - `(("rt" ,cl-rt))) + `(("rt" ,sbcl-rt))) (inputs - `(("mysql" ,mysql) + `(("cffi" ,sbcl-cffi) + ("md5" ,sbcl-md5) + ("mysql" ,mysql) ("postgresql" ,postgresql) + ("postmodern" ,sbcl-postmodern) ("sqlite" ,sqlite) + ("uffi" ,sbcl-uffi) ("zlib" ,zlib))) - (propagated-inputs - `(("cl-postgres" ,cl-postgres) - ("cffi-uffi-compat" ,cl-cffi-uffi-compat) - ("md5" ,cl-md5) - ("uffi" ,cl-uffi))) (arguments - `(#:phases - ;; asdf-build-system/source has its own phases and does not inherit - ;; from asdf-build-system/sbcl phases. - (modify-phases %standard-phases/source + `(#:asd-files '("clsql-cffi.asd" + "clsql.asd" + "clsql-uffi.asd" + "clsql-sqlite3.asd" + "clsql-postgresql.asd" + "clsql-postgresql-socket3.asd" + "clsql-mysql.asd") + #:asd-systems '("clsql" + "clsql-sqlite3" + ;; TODO: Find why postgresql-sql.lisp fails to compile. + ;;"clsql-postgresql" + "clsql-postgresql-socket3" + "clsql-mysql") + #:phases + (modify-phases %standard-phases (add-after 'unpack 'fix-permissions (lambda _ (make-file-writable "doc/html.tar.gz") - #t))))))) - -(define-public sbcl-clsql-uffi - (package - (inherit sbcl-clsql) - (name "sbcl-clsql-uffi") - (inputs - `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat) - ("clsql" ,sbcl-clsql) - ("uffi" ,sbcl-uffi))) - (synopsis "UFFI helper functions for Common Lisp SQL interface library"))) - -(define-public sbcl-clsql-sqlite3 - (package - (inherit sbcl-clsql) - (name "sbcl-clsql-sqlite3") - (inputs - `(("clsql" ,sbcl-clsql) - ("clsql-uffi" ,sbcl-clsql-uffi) - ("sqlite" ,sqlite))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-clsql) - ((#:phases phases '%standard-phases) - `(modify-phases ,phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "db-sqlite3/sqlite3-loader.lisp" - (("libsqlite3") - (string-append (assoc-ref inputs "sqlite") - "/lib/libsqlite3"))) - #t)))))) - (synopsis "SQLite3 driver for Common Lisp SQL interface library"))) - -(define-public sbcl-clsql-postgresql - (package - (inherit sbcl-clsql) - (name "sbcl-clsql-postgresql") - (inputs - `(("clsql" ,sbcl-clsql) - ("clsql-uffi" ,sbcl-clsql-uffi) - ("postgresql" ,postgresql))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-clsql) - ((#:phases phases '%standard-phases) - `(modify-phases ,phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "db-postgresql/postgresql-loader.lisp" - (("libpq") - (string-append (assoc-ref inputs "postgresql") - "/lib/libpq"))) - #t)))))) - (synopsis "PostgreSQL driver for Common Lisp SQL interface library"))) - -(define-public sbcl-clsql-postgresql-socket3 - (package - (inherit sbcl-clsql) - (name "sbcl-clsql-postgresql-socket3") - (inputs - `(("cl-postgres" ,sbcl-cl-postgres) - ("clsql" ,sbcl-clsql) - ("md5" ,sbcl-md5))) - (arguments - (substitute-keyword-arguments (package-arguments sbcl-clsql) - ((#:phases phases '%standard-phases) - `(modify-phases ,phases - (add-after 'create-asd-file 'fix-asd-file - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib/" (%lisp-type))) - (asd (string-append lib "/clsql-postgresql-socket3.asd"))) - (substitute* asd - (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::") - ""))) - #t)))))) - (synopsis "PostgreSQL driver for Common Lisp SQL interface library"))) + #t)) + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "db-sqlite3/sqlite3-loader.lisp" + (("libsqlite3") + (string-append (assoc-ref inputs "sqlite") + "/lib/libsqlite3"))) + (substitute* "db-postgresql/postgresql-loader.lisp" + (("libpq") + (string-append (assoc-ref inputs "postgresql") + "/lib/libpq"))) + (let ((lib (string-append "#p\"" + (assoc-ref outputs "out") + "/lib/\""))) + (substitute* "clsql-mysql.asd" + (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"") + lib)) + (substitute* "db-mysql/mysql-loader.lisp" + (("libmysqlclient" all) + (string-append (assoc-ref inputs "mysql") "/lib/" all)) + (("clsql-mysql-system::\\*library-file-dir\\*") + lib))) + #t)) + (add-before 'build 'build-helper-library + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((mysql (assoc-ref inputs "mysql")) + (inc-dir (string-append mysql "/include/mysql")) + (lib-dir (string-append mysql "/lib")) + (shared-lib-dir (string-append (assoc-ref outputs "out") + "/lib")) + (shared-lib (string-append shared-lib-dir + "/clsql_mysql.so"))) + (mkdir-p shared-lib-dir) + (invoke "gcc" "-fPIC" "-shared" + "-I" inc-dir + "db-mysql/clsql_mysql.c" + "-Wl,-soname=clsql_mysql" + "-L" lib-dir "-lmysqlclient" "-lz" + "-o" shared-lib) + #t))) + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "clsql.asd" + (("clsql-tests :force t") + "clsql-tests")) + #t))))) + (synopsis "Common Lisp SQL Interface library") + (description + "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the +Xanalys CommonSQL interface for Lispworks. It provides low-level database +interfaces as well as a functional and an object oriented interface.") + (home-page "http://clsql.kpe.io/") + (license license:llgpl))) -(define-public sbcl-clsql-mysql +(define-public cl-clsql (package - (inherit sbcl-clsql) - (name "sbcl-clsql-mysql") + (inherit (sbcl-package->cl-source-package sbcl-clsql)) + (native-inputs + `(("rt" ,cl-rt))) (inputs `(("mysql" ,mysql) - ("sbcl-clsql" ,sbcl-clsql) - ("sbcl-clsql-uffi" ,sbcl-clsql-uffi) + ("postgresql" ,postgresql) + ("sqlite" ,sqlite) ("zlib" ,zlib))) + (propagated-inputs + `(("cffi" ,cl-cffi) + ("md5" ,cl-md5) + ("postmodern" ,cl-postmodern) + ("uffi" ,cl-uffi))) (arguments - (substitute-keyword-arguments (package-arguments sbcl-clsql) - ((#:phases phases '%standard-phases) - `(modify-phases ,phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((lib (string-append "#p\"" - (assoc-ref outputs "out") - "/lib/\""))) - (substitute* "clsql-mysql.asd" - (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"") - lib)) - (substitute* "db-mysql/mysql-loader.lisp" - (("libmysqlclient" all) - (string-append (assoc-ref inputs "mysql") "/lib/" all)) - (("clsql-mysql-system::\\*library-file-dir\\*") - lib))) - #t)) - (add-before 'build 'build-helper-library - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((mysql (assoc-ref inputs "mysql")) - (inc-dir (string-append mysql "/include/mysql")) - (lib-dir (string-append mysql "/lib")) - (shared-lib-dir (string-append (assoc-ref outputs "out") - "/lib")) - (shared-lib (string-append shared-lib-dir - "/clsql_mysql.so"))) - (mkdir-p shared-lib-dir) - (invoke "gcc" "-fPIC" "-shared" - "-I" inc-dir - "db-mysql/clsql_mysql.c" - "-Wl,-soname=clsql_mysql" - "-L" lib-dir "-lmysqlclient" "-lz" - "-o" shared-lib) - #t))))))) - (synopsis "MySQL driver for Common Lisp SQL interface library"))) + `(#:phases + ;; asdf-build-system/source has its own phases and does not inherit + ;; from asdf-build-system/sbcl phases. + (modify-phases %standard-phases/source + (add-after 'unpack 'fix-permissions + (lambda _ + (make-file-writable "doc/html.tar.gz") + #t))))))) (define-public sbcl-sycamore (let ((commit "fd2820fec165ad514493426dea209728f64e6d18")) @@ -11401,7 +8859,7 @@ interfaces as well as a functional and an object oriented interface.") (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7")))) (build-system asdf-build-system/sbcl) (arguments - `(#:asd-file "src/sycamore.asd")) + `(#:asd-files '("src/sycamore.asd"))) (inputs `(("alexandria" ,sbcl-alexandria) ("cl-ppcre" ,sbcl-cl-ppcre))) @@ -11589,8 +9047,7 @@ MOP easier to use.") ("cffi" ,sbcl-cffi) ("trivial-features" ,sbcl-trivial-features))) (native-inputs - `(("cffi-grovel" ,sbcl-cffi-grovel) - ("rt" ,sbcl-rt))) + `(("rt" ,sbcl-rt))) (synopsis "Operating system interface for Common Lisp") (description "Osicat is a lightweight operating system interface for Common Lisp on @@ -11619,7 +9076,7 @@ accompaniment to the standard ANSI facilities.") (base32 "1abx4v36ycmfjdwpjk4hh8058ya8whwia7ds9vd96q2qsrs57f12")))) (build-system asdf-build-system/sbcl) (arguments - `(#:asd-system-name "xembed")) + `(#:asd-systems '("xembed"))) (inputs `(("sbcl-clx" ,sbcl-clx))) (synopsis "CL(x) xembed protocol implementation ") @@ -11649,7 +9106,7 @@ accompaniment to the standard ANSI facilities.") "0rlswkf0siaabsvvch3dgxmg45fw5w8pd9b7ri2w7a298aya52z9")))) (build-system asdf-build-system/sbcl) (arguments - '(#:asd-system-name "quantile-estimator")) + '(#:asd-systems '("quantile-estimator"))) (inputs `(("alexandria" ,sbcl-alexandria))) (home-page "https://github.com/deadtrickster/quantile-estimator.cl") @@ -11685,9 +9142,29 @@ Streams in ICDE’05.") (inputs `(("alexandria" ,sbcl-alexandria) ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cffi" ,sbcl-cffi) + ("cl-fad" ,sbcl-cl-fad) ("cl-ppcre" ,sbcl-cl-ppcre) + ("drakma" ,sbcl-drakma) + ("hunchentoot" ,sbcl-hunchentoot) ("local-time" ,sbcl-local-time) - ("quantile-estimator" ,sbcl-quantile-estimator))) + ("quantile-estimator" ,sbcl-quantile-estimator) + ("salza2" ,sbcl-salza2) + ("split-sequence" ,sbcl-split-sequence) + ("trivial-utf-8" ,sbcl-trivial-utf-8))) + (arguments + '(#:asd-files '("prometheus.asd" + "prometheus.collectors.sbcl.asd" + "prometheus.collectors.process.asd" + "prometheus.formats.text.asd" + "prometheus.exposers.hunchentoot.asd" + "prometheus.pushgateway.asd") + #:asd-systems '("prometheus" + "prometheus.collectors.sbcl" + "prometheus.collectors.process" + "prometheus.formats.text" + "prometheus.exposers.hunchentoot" + "prometheus.pushgateway"))) (home-page "https://github.com/deadtrickster/prometheus.cl") (synopsis "Prometheus.io Common Lisp client") (description "Prometheus.io Common Lisp client.") @@ -11699,85 +9176,6 @@ Streams in ICDE’05.") (define-public ecl-prometheus (sbcl-package->ecl-package sbcl-prometheus)) -(define-public sbcl-prometheus.collectors.sbcl - (package - (inherit sbcl-prometheus) - (name "sbcl-prometheus.collectors.sbcl") - (inputs `(("prometheus" ,sbcl-prometheus))) - (synopsis "Prometheus collector for SBCL metrics") - (description "Prometheus collector for SBCL metrics."))) - -(define-public cl-prometheus.collectors.sbcl - (sbcl-package->cl-source-package sbcl-prometheus.collectors.sbcl)) - -(define-public sbcl-prometheus.collectors.process - (package - (inherit sbcl-prometheus) - (name "sbcl-prometheus.collectors.process") - (inputs - `(("cffi" ,sbcl-cffi) - ("cffi-grovel" ,sbcl-cffi-grovel) - ("cl-fad" ,sbcl-cl-fad) - ("prometheus" ,sbcl-prometheus) - ("split-sequence" ,sbcl-split-sequence))) - (synopsis "Prometheus collector for process metrics") - (description "Prometheus collector for process metrics."))) - -(define-public cl-prometheus.collectors.process - (sbcl-package->cl-source-package sbcl-prometheus.collectors.process)) - -(define-public ecl-prometheus.collectors.process - (sbcl-package->ecl-package sbcl-prometheus.collectors.process)) - -(define-public sbcl-prometheus.formats.text - (package - (inherit sbcl-prometheus) - (name "sbcl-prometheus.formats.text") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("prometheus" ,sbcl-prometheus))) - (synopsis "Prometheus client text format") - (description "Prometheus client text format."))) - -(define-public cl-prometheus.formats.text - (sbcl-package->cl-source-package sbcl-prometheus.formats.text)) - -(define-public ecl-prometheus.formats.text - (sbcl-package->ecl-package sbcl-prometheus.formats.text)) - -(define-public sbcl-prometheus.exposers.hunchentoot - (package - (inherit sbcl-prometheus) - (name "sbcl-prometheus.exposers.hunchentoot") - (inputs - `(("hunchentoot" ,sbcl-hunchentoot) - ("prometheus" ,sbcl-prometheus) - ("prometheus.formats.text" ,sbcl-prometheus.formats.text) - ("salza2" ,sbcl-salza2) - ("trivial-utf-8" ,sbcl-trivial-utf-8))) - (synopsis "Prometheus collector for Hunchentoot metrics") - (description "Prometheus collector for Hunchentoot metrics"))) - -(define-public cl-prometheus.exposers.hunchentoot - (sbcl-package->cl-source-package sbcl-prometheus.exposers.hunchentoot)) - -(define-public sbcl-prometheus.pushgateway - (package - (inherit sbcl-prometheus) - (name "sbcl-prometheus.pushgateway") - (inputs - `(("drakma" ,sbcl-drakma) - ("prometheus" ,sbcl-prometheus) - ("prometheus.formats.text" ,sbcl-prometheus.formats.text))) - (synopsis "Prometheus Pushgateway client") - (description "Prometheus Pushgateway client."))) - -(define-public cl-prometheus.pushgateway - (sbcl-package->cl-source-package sbcl-prometheus.pushgateway)) - -(define-public ecl-prometheus.pushgateway - (sbcl-package->ecl-package sbcl-prometheus.pushgateway)) - (define-public sbcl-uuid (let ((commit "e7d6680c3138385c0708f7aaf0c96622eeb140e8")) (package @@ -11842,9 +9240,6 @@ and active restarts.") (define-public ecl-dissect (sbcl-package->ecl-package sbcl-dissect)) -;; TODO: Uses ASDF's package-inferred-system which is not supported by -;; asdf-build-system/sbcl as of 2020-05-21. We should fix -;; asdf-build-system/sbcl. (define-public sbcl-rove (package (name "sbcl-rove") @@ -11928,14 +9323,13 @@ learn about each of the parameters.") `(#:test-asd-file "sxql-test.asd")) (inputs `(("alexandria" ,sbcl-alexandria) - ("cl-syntax-annot" ,sbcl-cl-syntax-annot) + ("cl-syntax" ,sbcl-cl-syntax) ("iterate" ,sbcl-iterate) ("optima" ,sbcl-optima) ("split-sequence" ,sbcl-split-sequence) ("trivial-types" ,sbcl-trivial-types))) (native-inputs - `(("prove" ,sbcl-prove) - ("prove-asdf" ,sbcl-prove-asdf))) + `(("prove" ,sbcl-prove))) (home-page "https://github.com/fukamachi/sxql") (synopsis "SQL generator for Common Lisp") (description "SQL generator for Common Lisp.") @@ -11964,7 +9358,7 @@ learn about each of the parameters.") "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g")))) (build-system asdf-build-system/sbcl) (arguments - `(#:asd-system-name "1am")) + `(#:asd-systems '("1am"))) (home-page "https://github.com/lmj/1am") (synopsis "Minimal testing framework for Common Lisp") (description "A minimal testing framework for Common Lisp.") @@ -12041,7 +9435,6 @@ tables.") (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads) ("cffi" ,sbcl-cffi) - ("cffi-grovel" ,sbcl-cffi-grovel) ("librdkafka" ,librdkafka) ("lparallel" ,sbcl-lparallel) ("trivial-garbage" ,sbcl-trivial-garbage))) @@ -12083,10 +9476,10 @@ weight, temperature, names of physical quantitites, etc.") (define-public cl-acclimation (sbcl-package->cl-source-package sbcl-acclimation)) -(define-public sbcl-clump-2-3-tree +(define-public sbcl-clump (let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a")) (package - (name "sbcl-clump-2-3-tree") + (name "sbcl-clump") (version (git-version "0.0.0" "1" commit)) (source (origin @@ -12099,13 +9492,15 @@ weight, temperature, names of physical quantitites, etc.") (base32 "1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh")))) (arguments - '(#:asd-file "2-3-tree/clump-2-3-tree.asd" - #:asd-system-name "clump-2-3-tree")) + '(#:asd-files '("clump.asd" + "2-3-tree/clump-2-3-tree.asd" + "Binary-tree/clump-binary-tree.asd") + #:asd-systems '("clump"))) (inputs `(("acclimation" ,sbcl-acclimation))) (build-system asdf-build-system/sbcl) (home-page "https://github.com/robert-strandh/Clump") - (synopsis "Implementation of 2-3 trees for Common Lisp") + (synopsis "Collection of tree implementations for Common Lisp") (description "The purpose of this library is to provide a collection of implementations of trees. @@ -12119,34 +9514,13 @@ where the trees can be used as search trees or as trees that represent sequences of objects.") (license license:bsd-2)))) -(define-public sbcl-clump-binary-tree - (package - (inherit sbcl-clump-2-3-tree) - (name "sbcl-clump-binary-tree") - (arguments - '(#:asd-file "Binary-tree/clump-binary-tree.asd" - #:asd-system-name "clump-binary-tree")) - (synopsis "Implementation of binary trees for Common Lisp"))) - -(define-public sbcl-clump - (package - (inherit sbcl-clump-2-3-tree) - (name "sbcl-clump") - (arguments - '(#:asd-file "clump.asd" - #:asd-system-name "clump")) - (inputs - `(("clump-2-3-tree" ,sbcl-clump-2-3-tree) - ("clump-binary-tree" ,sbcl-clump-binary-tree))) - (synopsis "Collection of tree implementations for Common Lisp"))) - (define-public cl-clump (sbcl-package->cl-source-package sbcl-clump)) -(define-public sbcl-cluffer-base +(define-public sbcl-cluffer (let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a")) (package - (name "sbcl-cluffer-base") + (name "sbcl-cluffer") (version (git-version "0.0.0" "1" commit)) (source (origin @@ -12158,12 +9532,18 @@ sequences of objects.") (sha256 (base32 "1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj")))) - (arguments - '(#:asd-file "Base/cluffer-base.asd" - #:asd-system-name "cluffer-base")) - (inputs - `(("acclimation" ,sbcl-acclimation))) (build-system asdf-build-system/sbcl) + (inputs + `(("acclimation" ,sbcl-acclimation) + ("clump" ,sbcl-clump))) + (arguments + '(#:asd-files '("cluffer.asd" + "Base/cluffer-base.asd" + "Standard-line/cluffer-standard-line.asd" + "Standard-buffer/cluffer-standard-buffer.asd" + "Simple-line/cluffer-simple-line.asd" + "Simple-buffer/cluffer-simple-buffer.asd") + #:asd-systems '("cluffer"))) (home-page "https://github.com/robert-strandh/cluffer") (synopsis "Common Lisp library providing a protocol for text-editor buffers") (description "Cluffer is a library for representing the buffer of a text @@ -12172,61 +9552,6 @@ interact with the buffer contents in various ways, and it supplies different implementations of those protocols for different purposes.") (license license:bsd-2)))) -(define-public sbcl-cluffer-standard-line - (package - (inherit sbcl-cluffer-base) - (name "sbcl-cluffer-standard-line") - (arguments - '(#:asd-file "Standard-line/cluffer-standard-line.asd" - #:asd-system-name "cluffer-standard-line")) - (inputs - `(("cluffer-base" ,sbcl-cluffer-base))))) - -(define-public sbcl-cluffer-standard-buffer - (package - (inherit sbcl-cluffer-base) - (name "sbcl-cluffer-standard-buffer") - (arguments - '(#:asd-file "Standard-buffer/cluffer-standard-buffer.asd" - #:asd-system-name "cluffer-standard-buffer")) - (inputs - `(("cluffer-base" ,sbcl-cluffer-base) - ("clump" ,sbcl-clump))))) - -(define-public sbcl-cluffer-simple-line - (package - (inherit sbcl-cluffer-base) - (name "sbcl-cluffer-simple-line") - (arguments - '(#:asd-file "Simple-line/cluffer-simple-line.asd" - #:asd-system-name "cluffer-simple-line")) - (inputs - `(("cluffer-base" ,sbcl-cluffer-base))))) - -(define-public sbcl-cluffer-simple-buffer - (package - (inherit sbcl-cluffer-base) - (name "sbcl-cluffer-simple-buffer") - (arguments - '(#:asd-file "Simple-buffer/cluffer-simple-buffer.asd" - #:asd-system-name "cluffer-simple-buffer")) - (inputs - `(("cluffer-base" ,sbcl-cluffer-base))))) - -(define-public sbcl-cluffer - (package - (inherit sbcl-cluffer-base) - (name "sbcl-cluffer") - (arguments - '(#:asd-file "cluffer.asd" - #:asd-system-name "cluffer")) - (inputs - `(("cluffer-base" ,sbcl-cluffer-base) - ("cluffer-standard-line" ,sbcl-cluffer-standard-line) - ("cluffer-standard-buffer" ,sbcl-cluffer-standard-buffer) - ("cluffer-simple-line" ,sbcl-cluffer-simple-line) - ("cluffer-simple-buffer" ,sbcl-cluffer-simple-buffer))))) - (define-public cl-cluffer (sbcl-package->cl-source-package sbcl-cluffer)) @@ -12248,8 +9573,7 @@ implementations of those protocols for different purposes.") "0284aj84xszhkhlivaigf9qj855fxad3mzmv3zfr0qzb5k0nzwrg")))) (build-system asdf-build-system/sbcl) (native-inputs - `(("prove" ,sbcl-prove) - ("prove-asdf" ,sbcl-prove-asdf))) + `(("prove" ,sbcl-prove))) (inputs `(("alexandria" ,sbcl-alexandria))) (synopsis "LibSVM data format reader for Common Lisp") @@ -12283,8 +9607,7 @@ format.") "14x95rlg80ay5hv645ki57pqvy12v28hz4k1w0f6bsfi2rmpxchq")))) (build-system asdf-build-system/sbcl) (native-inputs - `(("prove" ,sbcl-prove) - ("prove-asdf" ,sbcl-prove-asdf))) + `(("prove" ,sbcl-prove))) (inputs `(("cl-libsvm-format" ,sbcl-cl-libsvm-format) ("cl-store" ,sbcl-cl-store))) @@ -12323,7 +9646,6 @@ online linear classification written in Common Lisp.") (build-system asdf-build-system/sbcl) (native-inputs `(("prove" ,sbcl-prove) - ("prove-asdf" ,sbcl-prove-asdf) ("trivial-garbage" ,sbcl-trivial-garbage))) (inputs `(("alexandria" ,sbcl-alexandria) @@ -12541,7 +9863,6 @@ wrappers of deflate streams. It currently does not handle compression.") (inputs `(("alexandria" ,sbcl-alexandria) ("cffi" ,sbcl-cffi) - ("cffi-grovel" ,sbcl-cffi-grovel) ("freetype" ,freetype) ("trivial-garbage" ,sbcl-trivial-garbage))) (arguments @@ -12636,861 +9957,310 @@ macros for the Opticl image processing library.") in the TIFF (Tagged Image File Format) format.") (license license:bsd-2)))) -(define-public cl-retrospectif - (sbcl-package->cl-source-package sbcl-retrospectiff)) - -(define-public ecl-retrospectiff - (sbcl-package->ecl-package sbcl-retrospectiff)) - -(define-public sbcl-mmap - (let ((commit "ba2e98c67e25f0fb8ff838238561120a23903ce7") - (revision "0")) - (package - (name "sbcl-mmap") - (version (git-version "1.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Shinmera/mmap") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0qd0xp20i1pcfn12kkapv9pirb6hd4ns7kz4zf1mmjwykpsln96q")))) - (build-system asdf-build-system/sbcl) - (native-inputs - `(("alexandria" ,sbcl-alexandria) - ("cffi" ,sbcl-cffi) - ("parachute" ,sbcl-parachute) - ("trivial-features" ,sbcl-trivial-features))) - (inputs - `(("cffi" ,sbcl-cffi) - ("documentation-utils" ,sbcl-documentation-utils))) - (home-page "https://shinmera.github.io/mmap/") - (synopsis "File memory mapping for Common Lisp") - (description - "This is a utility library providing access to the @emph{mmap} family of -functions in a portable way. It allows you to directly map a file into the -address space of your process without having to manually read it into memory -sequentially. Typically this is much more efficient for files that are larger -than a few Kb.") - (license license:zlib)))) - -(define-public cl-mmap - (sbcl-package->cl-source-package sbcl-mmap)) - -(define-public ecl-mmap - (sbcl-package->ecl-package sbcl-mmap)) - -(define-public sbcl-3bz - (let ((commit "d6119083b5e0b0a6dd3abc2877936c51f3f3deed") - (revision "0")) - (package - (name "sbcl-3bz") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/3b/3bz") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0fyxzyf2b6sc0w8d9g4nlva861565z6f3xszj0lw29x526dd9rhj")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("babel" ,sbcl-babel) - ("cffi" ,sbcl-cffi) - ("mmap" ,sbcl-mmap) - ("nibbles" ,sbcl-nibbles) - ("trivial-features" ,sbcl-trivial-features))) - (arguments - ;; FIXME: Without the following line, the build fails (see issue 41437). - `(#:asd-system-name "3bz")) - (home-page "https://github.com/3b/3bz") - (synopsis "Deflate decompression for Common Lisp") - (description - "3bz is an implementation of Deflate decompression (RFC 1951) optionally -with zlib (RFC 1950) or gzip (RFC 1952) wrappers, with support for reading from -foreign pointers (for use with mmap and similar, etc), and from CL octet -vectors and streams.") - (license license:expat)))) - -(define-public cl-3bz - (sbcl-package->cl-source-package sbcl-3bz)) - -(define-public ecl-3bz - (sbcl-package->ecl-package sbcl-3bz)) - -(define-public sbcl-zpb-exif - (package - (name "sbcl-zpb-exif") - (version "1.2.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xach/zpb-exif") - (commit (string-append "release-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "15s227jhby55cisz14xafb0p1ws2jmrg2rrbbd00lrb97im84hy6")))) - (build-system asdf-build-system/sbcl) - (home-page "https://xach.com/lisp/zpb-exif/") - (synopsis "EXIF information extractor for Common Lisp") - (description - "This is a Common Lisp library to extract EXIF information from image -files.") - (license license:bsd-2))) - -(define-public cl-zpb-exif - (sbcl-package->cl-source-package sbcl-zpb-exif)) - -(define-public ecl-zpb-exif - (sbcl-package->ecl-package sbcl-zpb-exif)) - -(define-public sbcl-pngload - (package - (name "sbcl-pngload") - (version "2.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bufferswap/pngload") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1ix8dd0fxlf8xm0bszh1s7sx83hn0vqq8b8c9gkrd5m310w8mpvh")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("3bz" ,sbcl-3bz) - ("alexandria" ,sbcl-alexandria) - ("cffi" ,sbcl-cffi) - ("mmap" ,sbcl-mmap) - ("parse-float" ,sbcl-parse-float) - ("static-vectors" ,sbcl-static-vectors) - ("swap-bytes" ,sbcl-swap-bytes) - ("zpb-exif" ,sbcl-zpb-exif))) - (arguments - ;; Test suite disabled because of a dependency cycle. - ;; pngload tests depend on opticl which depends on pngload. - '(#:tests? #f)) - (home-page "https://github.com/bufferswap/pngload") - (synopsis "PNG image decoder for Common Lisp") - (description - "This is a Common Lisp library to load images in the PNG image format, -both from files on disk, or streams in memory.") - (license license:expat))) - -(define-public cl-pngload - (sbcl-package->cl-source-package sbcl-pngload)) +(define-public cl-retrospectif + (sbcl-package->cl-source-package sbcl-retrospectiff)) -(define-public ecl-pngload - (sbcl-package->ecl-package sbcl-pngload)) +(define-public ecl-retrospectiff + (sbcl-package->ecl-package sbcl-retrospectiff)) -(define-public sbcl-opticl - (let ((commit "e8684416eca2e78e82a7b436d436ef2ea24c019d") +(define-public sbcl-mmap + (let ((commit "ba2e98c67e25f0fb8ff838238561120a23903ce7") (revision "0")) (package - (name "sbcl-opticl") - (version (git-version "0.0.0" revision commit)) + (name "sbcl-mmap") + (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/slyrus/opticl") + (url "https://github.com/Shinmera/mmap") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "03rirnnhhisjbimlmpi725h1d3x0cfv00r57988am873dyzawmm1")))) + (base32 "0qd0xp20i1pcfn12kkapv9pirb6hd4ns7kz4zf1mmjwykpsln96q")))) (build-system asdf-build-system/sbcl) (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (inputs `(("alexandria" ,sbcl-alexandria) - ("cl-jpeg" ,sbcl-cl-jpeg) - ("cl-tga" ,sbcl-cl-tga) - ("png-read" ,sbcl-png-read) - ("pngload" ,sbcl-pngload) - ("retrospectiff" ,sbcl-retrospectiff) - ("skippy" ,sbcl-skippy) - ("zpng" ,sbcl-zpng))) - (home-page "https://github.com/slyrus/opticl") - (synopsis "Image processing library for Common Lisp") + ("cffi" ,sbcl-cffi) + ("parachute" ,sbcl-parachute) + ("trivial-features" ,sbcl-trivial-features))) + (inputs + `(("cffi" ,sbcl-cffi) + ("documentation-utils" ,sbcl-documentation-utils))) + (home-page "https://shinmera.github.io/mmap/") + (synopsis "File memory mapping for Common Lisp") (description - "Opticl is a Common Lisp library for representing, processing, loading, -and saving 2-dimensional pixel-based images.") - (license license:bsd-2)))) + "This is a utility library providing access to the @emph{mmap} family of +functions in a portable way. It allows you to directly map a file into the +address space of your process without having to manually read it into memory +sequentially. Typically this is much more efficient for files that are larger +than a few Kb.") + (license license:zlib)))) -(define-public cl-opticl - (sbcl-package->cl-source-package sbcl-opticl)) +(define-public cl-mmap + (sbcl-package->cl-source-package sbcl-mmap)) -(define-public sbcl-clim-lisp - (let ((commit "27b4d7a667c9b3faa74cabcb57706b888314fff7") +(define-public ecl-mmap + (sbcl-package->ecl-package sbcl-mmap)) + +(define-public sbcl-3bz + (let ((commit "d6119083b5e0b0a6dd3abc2877936c51f3f3deed") (revision "0")) (package - (name "sbcl-clim-lisp") - (version (git-version "0.9.7" revision commit)) + (name "sbcl-3bz") + (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/mcclim/mcclim") + (url "https://github.com/3b/3bz") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0jijfgkwas6xnpp5wiii6slcx9pgsalngacb8zm29x6pamx2193h")))) + (base32 "0fyxzyf2b6sc0w8d9g4nlva861565z6f3xszj0lw29x526dd9rhj")))) (build-system asdf-build-system/sbcl) (inputs `(("alexandria" ,sbcl-alexandria) - ("closer-mop" ,sbcl-closer-mop) - ("log4cl" ,sbcl-log4cl) - ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) - (home-page "https://common-lisp.net/project/mcclim/") - (synopsis "Common Lisp GUI toolkit") + ("babel" ,sbcl-babel) + ("cffi" ,sbcl-cffi) + ("mmap" ,sbcl-mmap) + ("nibbles" ,sbcl-nibbles) + ("trivial-features" ,sbcl-trivial-features))) + (arguments + ;; FIXME: Without the following line, the build fails (see issue 41437). + `(#:asd-systems '("3bz"))) + (home-page "https://github.com/3b/3bz") + (synopsis "Deflate decompression for Common Lisp") (description - "McCLIM is an implementation of the @emph{Common Lisp Interface Manager -specification}, a toolkit for writing GUIs in Common Lisp.") - (license license:lgpl2.1+)))) - -(define-public sbcl-clim-basic - (package - (inherit sbcl-clim-lisp) - (name "sbcl-clim-basic") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("babel" ,sbcl-babel) - ("bordeaux-threads" ,sbcl-bordeaux-threads) - ("clim-lisp" ,sbcl-clim-lisp) - ("flexichain" ,sbcl-flexichain) - ("spatial-trees" ,sbcl-spatial-trees) - ("trivial-features" ,sbcl-trivial-features) - ("trivial-garbage" ,sbcl-trivial-garbage))) - (arguments - '(#:asd-file "Core/clim-basic/clim-basic.asd")))) - -(define-public sbcl-clim-core - (package - (inherit sbcl-clim-lisp) - (name "sbcl-clim-core") - (inputs - `(("clim-basic" ,sbcl-clim-basic))) - (arguments - '(#:asd-file "Core/clim-core/clim-core.asd")))) - -(define-public sbcl-esa-mcclim - (package - (inherit sbcl-clim-lisp) - (name "sbcl-esa-mcclim") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("clim-core" ,sbcl-clim-core))) - (arguments - '(#:asd-file "Libraries/ESA/esa-mcclim.asd")))) - -(define-public sbcl-mcclim-fonts - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-fonts") - (inputs - `(("clim-basic" ,sbcl-clim-basic))) - (arguments - '(#:asd-file "Extensions/fonts/mcclim-fonts.asd")))) - -(define-public sbcl-automaton - (package - (inherit sbcl-clim-lisp) - (name "sbcl-automaton") - (inputs - `()) - (arguments - '(#:asd-file "Libraries/Drei/cl-automaton/automaton.asd")))) - -(define-public sbcl-persistent - (package - (inherit sbcl-clim-lisp) - (name "sbcl-persistent") - (inputs - `()) - (arguments - '(#:asd-file "Libraries/Drei/Persistent/persistent.asd")))) - -(define-public sbcl-drei-mcclim - (package - (inherit sbcl-clim-lisp) - (name "sbcl-drei-mcclim") - (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (inputs - `(("automaton" ,sbcl-automaton) - ("clim-core" ,sbcl-clim-core) - ("esa-mcclim" ,sbcl-esa-mcclim) - ("flexichain" ,sbcl-flexichain) - ("mcclim-fonts" ,sbcl-mcclim-fonts) - ("persistent" ,sbcl-persistent) - ("swank" ,cl-slime-swank))) - (arguments - '(#:asd-file "Libraries/Drei/drei-mcclim.asd")))) - -(define-public sbcl-clim - (package - (inherit sbcl-clim-lisp) - (name "sbcl-clim") - (inputs - `(("clim-core" ,sbcl-clim-core) - ("drei-mcclim" ,sbcl-drei-mcclim) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Core/clim/clim.asd")))) - -(define-public sbcl-mcclim-backend-common - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-backend-common") - (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (inputs - `(("clim" ,sbcl-clim) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Backends/common/mcclim-backend-common.asd")))) - -(define-public sbcl-mcclim-clx - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-clx") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-unicode" ,sbcl-cl-unicode) - ("clx" ,sbcl-clx) - ("mcclim-backend-common" ,sbcl-mcclim-backend-common) - ("mcclim-fonts" ,sbcl-mcclim-fonts) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Backends/CLX/mcclim-clx.asd")))) - -(define-public sbcl-mcclim-fonts-truetype - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-fonts-truetype") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-aa" ,sbcl-cl-aa) - ("cl-paths-ttf" ,sbcl-cl-paths-ttf) - ("cl-vectors" ,sbcl-cl-vectors) - ("clim-basic" ,sbcl-clim-basic) - ("font-dejavu" ,font-dejavu) - ("zpb-ttf" ,sbcl-zpb-ttf))) - (arguments - '(#:asd-file "Extensions/fonts/mcclim-fonts.asd" - #:asd-system-name "mcclim-fonts/truetype" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - ;; mcclim-truetype uses DejaVu as default font and - ;; sets the path at build time. - (substitute* "Extensions/fonts/fontconfig.lisp" - (("/usr/share/fonts/truetype/dejavu/") - (string-append (assoc-ref inputs "font-dejavu") - "/share/fonts/truetype/"))) - #t))))))) - -(define-public sbcl-mcclim-fonts-clx-truetype - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-fonts-clx-truetype") - (inputs - `(("mcclim-clx" ,sbcl-mcclim-clx) - ("mcclim-fonts-truetype" ,sbcl-mcclim-fonts-truetype) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "./Extensions/fonts/mcclim-fonts.asd" - #:asd-system-name "mcclim-fonts/clx-truetype" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "Extensions/fonts/mcclim-fonts.asd" - ((":depends-on \\(#:mcclim-fonts/truetype") - ":depends-on (#:mcclim-fonts-truetype")) - #t))))))) - -(define-public sbcl-mcclim-clx-truetype - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-clx-truetype") - (inputs - `(("mcclim-clx" ,sbcl-mcclim-clx) - ("mcclim-fonts-clx-truetype" ,sbcl-mcclim-fonts-clx-truetype) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Backends/CLX/mcclim-clx.asd" - #:asd-system-name "mcclim-clx/truetype" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "Backends/CLX/mcclim-clx.asd" - (("mcclim-fonts/clx-truetype") - "mcclim-fonts-clx-truetype")) - #t))))))) - -(define-public sbcl-mcclim-fontconfig - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-fontconfig") - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cffi" ,sbcl-cffi) - ("cffi-grovel" ,sbcl-cffi-grovel) - ("fontconfig" ,fontconfig))) - (arguments - '(#:asd-file "Extensions/fontconfig/mcclim-fontconfig.asd" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Extensions/fontconfig/src/functions.lisp" - (("libfontconfig\\.so") - (string-append (assoc-ref inputs "fontconfig") - "/lib/libfontconfig.so"))) - #t)) - (add-after 'unpack 'fix-build - (lambda _ - ;; The cffi-grovel system does not get loaded automatically, - ;; so we load it explicitly. - (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd" - (("\\(asdf:defsystem #:mcclim-fontconfig" all) - (string-append "(asdf:load-system :cffi-grovel)\n" all))) - #t))))))) - -(define-public sbcl-mcclim-harfbuzz - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-harfbuzz") - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cffi" ,sbcl-cffi) - ("cffi-grovel" ,sbcl-cffi-grovel) - ("freetype" ,freetype) - ("harfbuzz" ,harfbuzz) - ("trivial-garbage" ,sbcl-trivial-garbage))) - (arguments - '(#:asd-file "Extensions/harfbuzz/mcclim-harfbuzz.asd" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Extensions/harfbuzz/src/functions.lisp" - (("libharfbuzz\\.so") - (string-append (assoc-ref inputs "harfbuzz") - "/lib/libharfbuzz.so"))) - #t)) - (add-after 'unpack 'fix-build - (lambda _ - ;; The cffi-grovel system does not get loaded automatically, - ;; so we load it explicitly. - (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd" - (("\\(asdf:defsystem #:mcclim-harfbuzz" all) - (string-append "(asdf:load-system :cffi-grovel)\n" all))) - #t))))))) - -(define-public sbcl-mcclim-fonts-clx-freetype - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-fonts-clx-freetype") - (inputs - `(("cl-freetype2" ,sbcl-cl-freetype2) - ("mcclim-clx" ,sbcl-mcclim-clx) - ("mcclim-fontconfig" ,sbcl-mcclim-fontconfig) - ("mcclim-fonts" ,sbcl-mcclim-fonts) - ("mcclim-harfbuzz" ,sbcl-mcclim-harfbuzz) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Extensions/fonts/mcclim-fonts.asd" - #:asd-system-name "mcclim-fonts/clx-freetype")))) - -(define-public sbcl-mcclim-clx-freetype - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-clx-freetype") - (inputs - `(("mcclim-clx" ,sbcl-mcclim-clx) - ("mcclim-fonts-clx-freetype" ,sbcl-mcclim-fonts-clx-freetype) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Backends/CLX/mcclim-clx.asd" - #:asd-system-name "mcclim-clx/freetype" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "Backends/CLX/mcclim-clx.asd" - (("mcclim-fonts/clx-freetype") - "mcclim-fonts-clx-freetype")) - #t))))))) - -(define-public sbcl-mcclim-render - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-render") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-vectors" ,sbcl-cl-vectors) - ("clim-basic" ,sbcl-clim-basic) - ("mcclim-backend-common" ,sbcl-mcclim-backend-common) - ("mcclim-fonts-truetype" ,sbcl-mcclim-fonts-truetype) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Extensions/render/mcclim-render.asd" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "Extensions/render/mcclim-render.asd" - (("mcclim-fonts/truetype") - "mcclim-fonts-truetype")) - #t))))))) - -(define-public sbcl-mcclim-clx-fb - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-clx-fb") - (inputs - `(("mcclim-backend-common" ,sbcl-mcclim-backend-common) - ("mcclim-clx" ,sbcl-mcclim-clx) - ("mcclim-render" ,sbcl-mcclim-render) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Backends/CLX-fb/mcclim-clx-fb.asd")))) - -(define-public sbcl-mcclim-null - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-null") - (inputs - `(("clim" ,sbcl-clim) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Backends/Null/mcclim-null.asd")))) - -(define-public sbcl-clim-postscript-font - (package - (inherit sbcl-clim-lisp) - (name "sbcl-clim-postscript-font") - (inputs - `(("clim-basic" ,sbcl-clim-basic) - ("mcclim-backend-common" ,sbcl-mcclim-backend-common) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Backends/PostScript/clim-postscript-font.asd")))) - -(define-public sbcl-clim-postscript - (package - (inherit sbcl-clim-lisp) - (name "sbcl-clim-postscript") - (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (inputs - `(("clim-basic" ,sbcl-clim-basic) - ("clim-postscript-font" ,sbcl-clim-postscript-font) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Backends/PostScript/clim-postscript.asd" - ;; Test suite disabled because of a dependency cycle. - ;; The tests depend on mcclim/test-util, which depends on mcclim, - ;; wich depends on mcclim/extensions, which depends on clim-postscript. - #:tests? #f)))) + "3bz is an implementation of Deflate decompression (RFC 1951) optionally +with zlib (RFC 1950) or gzip (RFC 1952) wrappers, with support for reading from +foreign pointers (for use with mmap and similar, etc), and from CL octet +vectors and streams.") + (license license:expat)))) -(define-public sbcl-clim-pdf - (package - (inherit sbcl-clim-lisp) - (name "sbcl-clim-pdf") - (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (inputs - `(("cl-pdf" ,sbcl-cl-pdf) - ("clim-basic" ,sbcl-clim-basic) - ("clim-postscript-font" ,sbcl-clim-postscript-font) - ("flexi-streams" ,sbcl-flexi-streams) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Backends/PDF/clim-pdf.asd" - ;; Test suite disabled because of a dependency cycle. - ;; The tests depend on mcclim/test-util, which depends on mcclim, - ;; wich depends on mcclim/extensions, which depends on clim-pdf. - #:tests? #f)))) +(define-public cl-3bz + (sbcl-package->cl-source-package sbcl-3bz)) -(define-public sbcl-mcclim-looks - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-looks") - (inputs - `(("clim" ,sbcl-clim) - ("mcclim-clx" ,sbcl-mcclim-clx) - ("mcclim-clx-fb" ,sbcl-mcclim-clx-fb) - ("mcclim-clx-freetype" ,sbcl-mcclim-clx-freetype) - ("mcclim-clx-truetype" ,sbcl-mcclim-clx-truetype) - ("mcclim-null" ,sbcl-mcclim-null) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "mcclim.asd" - #:asd-system-name "mcclim/looks" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "mcclim.asd" - (("mcclim-clx/truetype") - "mcclim-clx-truetype") - (("mcclim-clx/freetype") - "mcclim-clx-freetype")) - #t))))))) +(define-public ecl-3bz + (sbcl-package->ecl-package sbcl-3bz)) -(define-public sbcl-mcclim-franz +(define-public sbcl-zpb-exif (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-franz") - (inputs - `(("clim" ,sbcl-clim) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Extensions/Franz/mcclim-franz.asd")))) + (name "sbcl-zpb-exif") + (version "1.2.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xach/zpb-exif") + (commit (string-append "release-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15s227jhby55cisz14xafb0p1ws2jmrg2rrbbd00lrb97im84hy6")))) + (build-system asdf-build-system/sbcl) + (home-page "https://xach.com/lisp/zpb-exif/") + (synopsis "EXIF information extractor for Common Lisp") + (description + "This is a Common Lisp library to extract EXIF information from image +files.") + (license license:bsd-2))) -(define-public sbcl-mcclim-bezier-core - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-bezier-core") - (inputs - `(("clim" ,sbcl-clim) - ("clim-pdf" ,sbcl-clim-pdf) - ("clim-postscript" ,sbcl-clim-postscript) - ("mcclim-null" ,sbcl-mcclim-null) - ("mcclim-render" ,sbcl-mcclim-render) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Extensions/bezier/mcclim-bezier.asd" - #:asd-system-name "mcclim-bezier/core")))) +(define-public cl-zpb-exif + (sbcl-package->cl-source-package sbcl-zpb-exif)) -(define-public sbcl-mcclim-bezier-clx - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-bezier-clx") - (inputs - `(("clim" ,sbcl-clim) - ("mcclim-bezier/core" ,sbcl-mcclim-bezier-core) - ("mcclim-clx" ,sbcl-mcclim-clx) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Extensions/bezier/mcclim-bezier.asd" - #:asd-system-name "mcclim-bezier/clx" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "Extensions/bezier/mcclim-bezier.asd" - (("mcclim-bezier/core\\)") - "mcclim-bezier-core)")) - #t))))))) +(define-public ecl-zpb-exif + (sbcl-package->ecl-package sbcl-zpb-exif)) -(define-public sbcl-mcclim-bezier +(define-public sbcl-pngload (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-bezier") + (name "sbcl-pngload") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bufferswap/pngload") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ix8dd0fxlf8xm0bszh1s7sx83hn0vqq8b8c9gkrd5m310w8mpvh")))) + (build-system asdf-build-system/sbcl) (inputs - `(("mcclim-bezier/clx" ,sbcl-mcclim-bezier-clx) - ("mcclim-bezier/core" ,sbcl-mcclim-bezier-core) - ("swank" ,cl-slime-swank))) ; For drei-mcclim + `(("3bz" ,sbcl-3bz) + ("alexandria" ,sbcl-alexandria) + ("cffi" ,sbcl-cffi) + ("mmap" ,sbcl-mmap) + ("parse-float" ,sbcl-parse-float) + ("static-vectors" ,sbcl-static-vectors) + ("swap-bytes" ,sbcl-swap-bytes) + ("zpb-exif" ,sbcl-zpb-exif))) (arguments - '(#:asd-file "Extensions/bezier/mcclim-bezier.asd" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "Extensions/bezier/mcclim-bezier.asd" - (("\\(#:mcclim-bezier/core") - "(#:mcclim-bezier-core") - (("#:mcclim-bezier/clx\\)\\)") - "#:mcclim-bezier-clx))")) - #t))))))) + ;; Test suite disabled because of a dependency cycle. + ;; pngload tests depend on opticl which depends on pngload. + '(#:tests? #f)) + (home-page "https://github.com/bufferswap/pngload") + (synopsis "PNG image decoder for Common Lisp") + (description + "This is a Common Lisp library to load images in the PNG image format, +both from files on disk, or streams in memory.") + (license license:expat))) -(define-public sbcl-mcclim-bitmaps - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-bitmaps") - (inputs - `(("clim-basic" ,sbcl-clim-basic) - ("opticl" ,sbcl-opticl))) - (arguments - '(#:asd-file "Extensions/bitmap-formats/mcclim-bitmaps.asd")))) +(define-public cl-pngload + (sbcl-package->cl-source-package sbcl-pngload)) -(define-public sbcl-conditional-commands - (package - (inherit sbcl-clim-lisp) - (name "sbcl-conditional-commands") - (inputs - `(("clim-basic" ,sbcl-clim-basic))) - (arguments - '(#:asd-file "Extensions/conditional-commands/conditional-commands.asd")))) +(define-public ecl-pngload + (sbcl-package->ecl-package sbcl-pngload)) -(define-public sbcl-mcclim-layouts-tab - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-layouts-tab") - (inputs - `(("clim" ,sbcl-clim) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Extensions/layouts/mcclim-layouts.asd" - #:asd-system-name "mcclim-layouts/tab")))) +(define-public sbcl-opticl + (let ((commit "e8684416eca2e78e82a7b436d436ef2ea24c019d") + (revision "0")) + (package + (name "sbcl-opticl") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/slyrus/opticl") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03rirnnhhisjbimlmpi725h1d3x0cfv00r57988am873dyzawmm1")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-jpeg" ,sbcl-cl-jpeg) + ("cl-tga" ,sbcl-cl-tga) + ("png-read" ,sbcl-png-read) + ("pngload" ,sbcl-pngload) + ("retrospectiff" ,sbcl-retrospectiff) + ("skippy" ,sbcl-skippy) + ("zpng" ,sbcl-zpng))) + (home-page "https://github.com/slyrus/opticl") + (synopsis "Image processing library for Common Lisp") + (description + "Opticl is a Common Lisp library for representing, processing, loading, +and saving 2-dimensional pixel-based images.") + (license license:bsd-2)))) -(define-public sbcl-mcclim-extensions - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-extensions") - (inputs - `(("clim-pdf" ,sbcl-clim-pdf) - ("clim-postscript" ,sbcl-clim-postscript) - ("conditional-commands" ,sbcl-conditional-commands) - ("mcclim-bezier" ,sbcl-mcclim-bezier) - ("mcclim-bitmaps" ,sbcl-mcclim-bitmaps) - ("mcclim-franz" ,sbcl-mcclim-franz) - ("mcclim-layouts-tab" ,sbcl-mcclim-layouts-tab) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "mcclim.asd" - #:asd-system-name "mcclim/extensions" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "mcclim.asd" - (("mcclim-layouts/tab") - "mcclim-layouts-tab")) - #t))))))) +(define-public cl-opticl + (sbcl-package->cl-source-package sbcl-opticl)) (define-public sbcl-mcclim - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim") - (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (inputs - `(("mcclim-looks" ,sbcl-mcclim-looks) - ("mcclim-extensions" ,sbcl-mcclim-extensions) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "mcclim.asd" - ((":depends-on \\(\"mcclim/looks\" \"mcclim/extensions\"\\)") - ":depends-on (\"mcclim-looks\" \"mcclim-extensions\")")) - #t))) - ;; Test suite disabled because of a dependency cycle. - ;; The tests depend on mcclim/test-util, which depends on mcclim. - #:tests? #f)))) - -(define-public cl-mcclim - (let ((base (sbcl-package->cl-source-package sbcl-clim-lisp))) + (let ((commit "27b4d7a667c9b3faa74cabcb57706b888314fff7") + (revision "0")) (package - (inherit base) - (name "cl-mcclim") + (name "sbcl-mcclim") + (version (git-version "0.9.7" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mcclim/mcclim") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jijfgkwas6xnpp5wiii6slcx9pgsalngacb8zm29x6pamx2193h")))) + (build-system asdf-build-system/sbcl) (native-inputs - `(("fiveam" ,cl-fiveam) + `(("fiveam" ,sbcl-fiveam) ("pkg-config" ,pkg-config))) (inputs - `(("alexandria" ,cl-alexandria) - ("babel" ,cl-babel) - ("bordeaux-threads" ,cl-bordeaux-threads) - ("cffi" ,cl-cffi) - ("cl-aa" ,cl-aa) - ("cl-freetype2" ,cl-freetype2) - ("cl-paths-ttf" ,cl-paths-ttf) - ("cl-pdf" ,cl-pdf) - ("cl-unicode" ,cl-unicode) - ("cl-vectors" ,cl-vectors) - ("closer-mop" ,cl-closer-mop) - ("clx" ,cl-clx) - ("flexi-streams" ,cl-flexi-streams) - ("flexichain" ,cl-flexichain) + `(("alexandria" ,sbcl-alexandria) + ("babel" ,sbcl-babel) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cl-freetype2" ,sbcl-cl-freetype2) + ("cl-pdf" ,sbcl-cl-pdf) + ("cffi" ,sbcl-cffi) + ("cl-unicode" ,sbcl-cl-unicode) + ("cl-vectors" ,sbcl-cl-vectors) + ("closer-mop" ,sbcl-closer-mop) + ("clx" ,sbcl-clx) + ("flexi-streams" ,sbcl-flexi-streams) + ("flexichain" ,sbcl-flexichain) + ("font-dejavu" ,font-dejavu) ("fontconfig" ,fontconfig) ("freetype" ,freetype) ("harfbuzz" ,harfbuzz) - ("log4cl" ,cl-log4cl) - ("opticl" ,cl-opticl) - ("spatial-trees" ,cl-spatial-trees) - ("trivial-features" ,cl-trivial-features) - ("trivial-garbage" ,cl-trivial-garbage) - ("trivial-gray-streams" ,cl-trivial-gray-streams) - ("swank" ,cl-slime-swank) - ("zpb-ttf" ,cl-zpb-ttf)))))) - -(define-public sbcl-mcclim-test-util - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-test-util") - (inputs - `(("fiveam" ,sbcl-fiveam) - ("mcclim" ,sbcl-mcclim) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "mcclim.asd" - #:asd-system-name "mcclim/test-util")))) - -(define-public sbcl-mcclim-raster-image - (package - (inherit sbcl-clim-lisp) - (name "sbcl-mcclim-raster-image") - (native-inputs - `(("fiveam" ,sbcl-fiveam) - ("mcclim-test-util" ,sbcl-mcclim-test-util))) - (inputs - `(("clim-basic" ,sbcl-clim-basic) - ("mcclim-backend-common" ,sbcl-mcclim-backend-common) - ("mcclim-render" ,sbcl-mcclim-render) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Backends/RasterImage/mcclim-raster-image.asd" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "Backends/RasterImage/mcclim-raster-image.asd" - (("mcclim/test-util") - "mcclim-test-util")) - #t))))))) + ("log4cl" ,sbcl-log4cl) + ("opticl" ,sbcl-opticl) + ("spatial-trees" ,sbcl-spatial-trees) + ("swank" ,sbcl-slime-swank) + ("trivial-features" ,sbcl-trivial-features) + ("trivial-garbage" ,sbcl-trivial-garbage) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams) + ("zpb-ttf" ,sbcl-zpb-ttf))) + (arguments + '(#:asd-files '("mcclim.asd" + "clim-lisp.asd" + "Core/clim-basic/clim-basic.asd" + "Core/clim-core/clim-core.asd" + "Libraries/ESA/esa-mcclim.asd" + "Extensions/fonts/mcclim-fonts.asd" + "Libraries/Drei/cl-automaton/automaton.asd" + "Libraries/Drei/Persistent/persistent.asd" + "Libraries/Drei/drei-mcclim.asd" + "Core/clim/clim.asd" + "Backends/common/mcclim-backend-common.asd" + "Backends/CLX/mcclim-clx.asd" + "Extensions/fontconfig/mcclim-fontconfig.asd" + "Extensions/harfbuzz/mcclim-harfbuzz.asd" + "Extensions/render/mcclim-render.asd" + "Backends/CLX-fb/mcclim-clx-fb.asd" + "Backends/Null/mcclim-null.asd" + "Backends/PostScript/clim-postscript-font.asd" + "Backends/PostScript/clim-postscript.asd" + "Backends/PDF/clim-pdf.asd" + "Extensions/Franz/mcclim-franz.asd" + "Extensions/bezier/mcclim-bezier.asd" + "Extensions/bitmap-formats/mcclim-bitmaps.asd" + "Extensions/conditional-commands/conditional-commands.asd" + "Extensions/layouts/mcclim-layouts.asd" + "Backends/RasterImage/mcclim-raster-image.asd" + "Examples/clim-examples.asd") + #:asd-systems '("mcclim" + "clim-examples") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + ;; mcclim-truetype uses DejaVu as default font and + ;; sets the path at build time. + (substitute* "Extensions/fonts/fontconfig.lisp" + (("/usr/share/fonts/truetype/dejavu/") + (string-append (assoc-ref inputs "font-dejavu") + "/share/fonts/truetype/"))) + (substitute* "Extensions/fontconfig/src/functions.lisp" + (("libfontconfig\\.so") + (string-append (assoc-ref inputs "fontconfig") + "/lib/libfontconfig.so"))) + (substitute* "Extensions/harfbuzz/src/functions.lisp" + (("libharfbuzz\\.so") + (string-append (assoc-ref inputs "harfbuzz") + "/lib/libharfbuzz.so"))) + #t)) + (add-after 'unpack 'fix-build + (lambda _ + ;; The cffi-grovel system does not get loaded automatically, + ;; so we load it explicitly. + (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd" + (("\\(asdf:defsystem #:mcclim-fontconfig" all) + (string-append "(asdf:load-system :cffi-grovel)\n" all))) + (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd" + (("\\(asdf:defsystem #:mcclim-harfbuzz" all) + (string-append "(asdf:load-system :cffi-grovel)\n" all))) + #t))))) + (home-page "https://common-lisp.net/project/mcclim/") + (synopsis "Common Lisp GUI toolkit") + (description + "McCLIM is an implementation of the @emph{Common Lisp Interface Manager +specification}, a toolkit for writing GUIs in Common Lisp.") + (license license:lgpl2.1+)))) -(define-public sbcl-clim-examples - (package - (inherit sbcl-clim-lisp) - (name "sbcl-clim-examples") - (inputs - `(("alexandria" ,sbcl-alexandria) - ("closer-mop" ,sbcl-closer-mop) - ("mcclim" ,sbcl-mcclim) - ("mcclim-bezier" ,sbcl-mcclim-bezier) - ("mcclim-layouts-tab" ,sbcl-mcclim-layouts-tab) - ("mcclim-raster-image" ,sbcl-mcclim-raster-image) - ("swank" ,cl-slime-swank))) ; For drei-mcclim - (arguments - '(#:asd-file "Examples/clim-examples.asd" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-asd-system-names - (lambda _ - (substitute* "Examples/clim-examples.asd" - (("mcclim-layouts/tab") - "mcclim-layouts-tab")) - #t))))))) +(define-public cl-mcclim + (sbcl-package->cl-source-package sbcl-mcclim)) (define-public sbcl-cl-inflector (let ((commit "f1ab16919ccce3bd82a0042677d9616dde2034fe") @@ -13746,11 +10516,11 @@ can separate configuration system from an implementation.") (define-public ecl-envy (sbcl-package->ecl-package sbcl-envy)) -(define sbcl-mito-core +(define-public sbcl-mito (let ((commit "d3b9e375ef364a65692da2185085a08c969ac88a") (revision "1")) (package - (name "sbcl-mito-core") + (name "sbcl-mito") (version (git-version "0.1" revision commit)) (home-page "https://github.com/fukamachi/mito") (source @@ -13763,77 +10533,27 @@ can separate configuration system from an implementation.") (sha256 (base32 "08mncgzjnbbsf1a6am3l73iw4lyfvz5ldjg5g84awfaxml4p73mb")))) (build-system asdf-build-system/sbcl) + (native-inputs + `(("prove" ,sbcl-prove))) (inputs - `(("dbi" ,sbcl-dbi) - ("sxql" ,sbcl-sxql) + `(("alexandria" ,sbcl-alexandria) ("cl-ppcre" ,sbcl-cl-ppcre) + ("cl-reexport" ,sbcl-cl-reexport) ("closer-mop" ,sbcl-closer-mop) + ("dbi" ,sbcl-dbi) ("dissect" ,sbcl-dissect) - ("optima" ,sbcl-optima) - ("cl-reexport" ,sbcl-cl-reexport) + ("esrap" ,sbcl-esrap) ("local-time" ,sbcl-local-time) - ("uuid" ,sbcl-uuid) - ("alexandria" ,sbcl-alexandria))) - (synopsis "ORM for Common Lisp with migrations and relationships support") - (description "Mito is yet another object relational mapper, and it aims -to be a successor of Integral. - -@itemize -@item Support MySQL, PostgreSQL and SQLite3. -@item Add id (serial/uuid primary key), created_at and updated_at by default -like Ruby's ActiveRecord. -@item Migrations. -@item Database schema versioning. -@end itemize\n") - (license license:llgpl)))) - -(define sbcl-mito-migration - (package - (inherit sbcl-mito-core) - (name "sbcl-mito-migration") - (inputs - `(("mito-core" ,sbcl-mito-core) - ("dbi" ,sbcl-dbi) - ("sxql" ,sbcl-sxql) - ("closer-mop" ,sbcl-closer-mop) - ("cl-reexport" ,sbcl-cl-reexport) - ("uuid" ,sbcl-uuid) - ("alexandria" ,sbcl-alexandria) - ("esrap" ,sbcl-esrap))))) - -(define sbcl-lack-middleware-mito - (package - (inherit sbcl-mito-core) - (name "sbcl-lack-middleware-mito") - (inputs - `(("mito-core" ,sbcl-mito-core) - ("dbi" ,sbcl-dbi))) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-build - (lambda _ - (substitute* "lack-middleware-mito.asd" - (("cl-dbi") "dbi")) - #t))))))) - -(define-public sbcl-mito - (package - (inherit sbcl-mito-core) - (name "sbcl-mito") - (inputs - `(("mito-core" ,sbcl-mito-core) - ("mito-migration" ,sbcl-mito-migration) - ("lack-middleware-mito" ,sbcl-lack-middleware-mito) - ("cl-reexport" ,sbcl-cl-reexport))) - (native-inputs - `(("prove" ,sbcl-prove) - ("prove-asdf" ,sbcl-prove-asdf) - ("dbd-mysql" ,sbcl-dbd-mysql) - ("dbd-postgres" ,sbcl-dbd-postgres) - ("dbd-sqlite3" ,sbcl-dbd-sqlite3))) - (arguments - '(#:phases + ("optima" ,sbcl-optima) + ("sxql" ,sbcl-sxql) + ("uuid" ,sbcl-uuid))) + (arguments + '(#:asd-files '("mito.asd" + "mito-core.asd" + "mito-migration.asd" + "lack-middleware-mito.asd") + #:asd-systems '("mito") + #:phases (modify-phases %standard-phases (add-after 'unpack 'remove-non-functional-tests (lambda _ @@ -13852,7 +10572,19 @@ like Ruby's ActiveRecord. #t))) ;; TODO: While all enabled tests pass, the phase fails with: ;; Component MITO-ASD::MITO-TEST not found, required by # - #:tests? #f)))) + #:tests? #f)) + (synopsis "ORM for Common Lisp with migrations and relationships support") + (description "Mito is yet another object relational mapper, and it aims +to be a successor of Integral. + +@itemize +@item Support MySQL, PostgreSQL and SQLite3. +@item Add id (serial/uuid primary key), created_at and updated_at by default +like Ruby's ActiveRecord. +@item Migrations. +@item Database schema versioning. +@end itemize\n") + (license license:llgpl)))) (define-public cl-mito (sbcl-package->cl-source-package sbcl-mito)) @@ -13880,8 +10612,7 @@ like Ruby's ActiveRecord. ("cl-interpol" ,sbcl-cl-interpol) ("split-sequence" ,sbcl-split-sequence))) (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf) - ("prove" ,sbcl-prove))) + `(("prove" ,sbcl-prove))) (arguments ;; Tests passes but the phase fails with ;; Component KEBAB-ASD::KEBAB-TEST not found, required by #. @@ -13921,7 +10652,7 @@ camelCase, snake_case, kebab-case (lisp-case).") ("optima" ,sbcl-optima) ("trivial-types" ,sbcl-trivial-types) ("closer-mop" ,sbcl-closer-mop) - ("cl-syntax-annot" ,sbcl-cl-syntax-annot) + ("cl-syntax" ,sbcl-cl-syntax) ("sxql" ,sbcl-sxql) ("dbi" ,sbcl-dbi) ("babel" ,sbcl-babel) @@ -13931,9 +10662,7 @@ camelCase, snake_case, kebab-case (lisp-case).") ("kebab" ,sbcl-kebab) ("log4cl" ,sbcl-log4cl))) (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf) - ("prove" ,sbcl-prove) - ("dbd-sqlite3" ,sbcl-dbd-sqlite3))) + `(("prove" ,sbcl-prove))) (arguments ;; TODO: Tests fail with ;; While evaluating the form starting at line 22, column 0 @@ -14072,19 +10801,18 @@ can begin writing unit tests as soon as the project is generated.") (build-system asdf-build-system/sbcl) (inputs `(("ningle" ,cl-ningle) - ("lack-request" ,sbcl-lack-request) - ("lack-response" ,sbcl-lack-response) + ("lack" ,sbcl-lack) ("cl-project" ,sbcl-cl-project) ("dbi" ,sbcl-dbi) - ("cl-syntax-annot" ,sbcl-cl-syntax-annot) + ("cl-syntax" ,sbcl-cl-syntax) ("myway" ,sbcl-myway) ("quri" ,sbcl-quri))) (native-inputs `(("usocket" ,sbcl-usocket) ("dexador" ,sbcl-dexador))) (arguments - `(#:asd-file "caveman2.asd" - #:asd-system-name "caveman2" + `(#:asd-files '("caveman2.asd") + #:asd-systems '("caveman2") #:phases (modify-phases %standard-phases (add-after 'unpack 'remove-v1 diff --git a/gnu/packages/patches/sbcl-graph-asdf-definitions.patch b/gnu/packages/patches/sbcl-graph-asdf-definitions.patch deleted file mode 100644 index ec17949675..0000000000 --- a/gnu/packages/patches/sbcl-graph-asdf-definitions.patch +++ /dev/null @@ -1,70 +0,0 @@ -commit 52ebece1243ae6900e414b6248b5145a28348eef -Author: Guillaume Le Vaillant -Date: Fri Oct 18 15:41:23 2019 +0200 - - Use basic ASDF system definitions instead of package-inferred-system - -diff --git a/graph.asd b/graph.asd -index 193b6e3..56afc8f 100644 ---- a/graph.asd -+++ b/graph.asd -@@ -3,12 +3,10 @@ - :version "0.0.0" - :author ("Eric Schulte " "Thomas Dye") - :licence "GPL V3" -- :class :package-inferred-system -- :defsystem-depends-on (:asdf-package-system) -+ :in-order-to ((test-op (test-op graph-test))) - :depends-on (alexandria - metabang-bind - named-readtables - curry-compose-reader-macros -- graph/graph)) -- --(register-system-packages "femlisp-matlisp" '(:fl.matlisp)) -+ cl-heap) -+ :components ((:file "graph"))) -diff --git a/graph-dot.asd b/graph-dot.asd -new file mode 100644 -index 0000000..12aec7e ---- /dev/null -+++ b/graph-dot.asd -@@ -0,0 +1,8 @@ -+(defsystem :graph-dot -+ :depends-on (alexandria -+ metabang-bind -+ named-readtables -+ curry-compose-reader-macros -+ cl-ppcre -+ graph) -+ :components ((:file "dot"))) -diff --git a/graph-json.asd b/graph-json.asd -new file mode 100644 -index 0000000..e7d091f ---- /dev/null -+++ b/graph-json.asd -@@ -0,0 +1,8 @@ -+(defsystem :graph-json -+ :depends-on (alexandria -+ metabang-bind -+ named-readtables -+ curry-compose-reader-macros -+ yason -+ graph) -+ :components ((:file "json"))) -diff --git a/graph-test.asd b/graph-test.asd -new file mode 100644 -index 0000000..1e811e1 ---- /dev/null -+++ b/graph-test.asd -@@ -0,0 +1,10 @@ -+(defsystem :graph-test -+ :depends-on (alexandria -+ metabang-bind -+ named-readtables -+ curry-compose-reader-macros -+ graph -+ stefil) -+ :perform (test-op (o s) -+ (uiop:symbol-call :graph/test 'test)) -+ :components ((:file "test"))) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 15fbf43ec7..53cfa5c916 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -1598,10 +1598,10 @@ compositors that support the layer-shell protocol.") ("alexandria" ,sbcl-alexandria))) (outputs '("out" "lib")) (arguments - '(#:asd-system-name "stumpwm" + '(#:asd-systems '("stumpwm") #:phases (modify-phases %standard-phases - (add-after 'create-symlinks 'build-program + (add-after 'create-asdf-configuration 'build-program (lambda* (#:key outputs #:allow-other-keys) (build-program (string-append (assoc-ref outputs "out") "/bin/stumpwm") @@ -1670,20 +1670,15 @@ productive, customizable lisp based systems.") (program (string-append out "/bin/stumpwm"))) (build-program program outputs #:entry-program '((stumpwm:stumpwm) 0) - #:dependencies '("stumpwm" - ,@(@@ (gnu packages lisp-xyz) slynk-systems)) + #:dependencies '("stumpwm" "slynk") #:dependency-prefixes (map (lambda (input) (assoc-ref inputs input)) '("stumpwm" "slynk"))) - ;; Remove unneeded file. - (delete-file (string-append out "/bin/stumpwm-exec.fasl")) #t))) (delete 'copy-source) (delete 'build) (delete 'check) - (delete 'create-asd-file) - (delete 'cleanup) - (delete 'create-symlinks))))))) + (delete 'cleanup))))))) (define stumpwm-contrib (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d63") @@ -1745,7 +1740,7 @@ productive, customizable lisp based systems.") `(("stumpwm" ,stumpwm "lib") ("clx-truetype" ,sbcl-clx-truetype))) (arguments - '(#:asd-system-name "ttf-fonts" + '(#:asd-systems '("ttf-fonts") #:tests? #f #:phases (modify-phases %standard-phases @@ -1762,7 +1757,7 @@ rendering.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-pass") (arguments - '(#:asd-system-name "pass" + '(#:asd-systems '("pass") #:tests? #f #:phases (modify-phases %standard-phases @@ -1779,7 +1774,7 @@ password-store into StumpWM.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-globalwindows") (arguments - '(#:asd-system-name "globalwindows" + '(#:asd-systems '("globalwindows") #:tests? #f #:phases (modify-phases %standard-phases @@ -1796,7 +1791,7 @@ windows in the current X session.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-swm-gaps") (arguments - '(#:asd-system-name "swm-gaps" + '(#:asd-systems '("swm-gaps") #:tests? #f #:phases (modify-phases %standard-phases @@ -1813,7 +1808,7 @@ between windows.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-net") (arguments - '(#:asd-system-name "net" + '(#:asd-systems '("net") #:tests? #f #:phases (modify-phases %standard-phases @@ -1831,7 +1826,7 @@ between windows.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-wifi") (arguments - '(#:asd-system-name "wifi" + '(#:asd-systems '("wifi") #:tests? #f #:phases (modify-phases %standard-phases @@ -1849,7 +1844,7 @@ between windows.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-stumptray") (arguments - '(#:asd-system-name "stumptray" + '(#:asd-systems '("stumptray") #:tests? #f #:phases (modify-phases %standard-phases @@ -1871,7 +1866,7 @@ between windows.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-kbd-layouts") (arguments - '(#:asd-system-name "kbd-layouts" + '(#:asd-systems '("kbd-layouts") #:tests? #f #:phases (modify-phases %standard-phases -- cgit v1.2.3 From 525ebb8508655e7a5dd68073dc57fe1c686d8878 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 31 Aug 2020 13:35:19 +0200 Subject: gnu: MariaDB: Update to 10.5.6. * gnu/packages/patches/mariadb-client-test-32bit.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/databases.scm (mariadb): Update to 10.5.6. [source](patches): Remove. [source](snippet): Adapt unbundling for yassl->wolfssl migration. [arguments]: Remove fix-pcre-detection phase. Add phase to fix referenced directory names. Adjust substitution for renamed file. Disable four tests. Enable previously failing ones. Remove armhf workaround. [native-inputs]: On armhf-linux, remove GCC-5. [inputs]: Remove OPENSSL-1.0 and PCRE. Add OPENSSL and PCRE2. --- gnu/local.mk | 1 - gnu/packages/databases.scm | 102 +++++++++------------ .../patches/mariadb-client-test-32bit.patch | 37 -------- 3 files changed, 41 insertions(+), 99 deletions(-) delete mode 100644 gnu/packages/patches/mariadb-client-test-32bit.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 3bfd619dd1..c6671ca25c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1303,7 +1303,6 @@ dist_patch_DATA = \ %D%/packages/patches/lvm2-static-link.patch \ %D%/packages/patches/mailutils-fix-uninitialized-variable.patch \ %D%/packages/patches/make-impure-dirs.patch \ - %D%/packages/patches/mariadb-client-test-32bit.patch \ %D%/packages/patches/mars-install.patch \ %D%/packages/patches/mars-sfml-2.3.patch \ %D%/packages/patches/maxima-defsystem-mkdir.patch \ diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 0584fe111a..885e0614ef 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -716,7 +716,7 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.1.45") + (version "10.5.6") (source (origin (method url-fetch) (uri (string-append "https://downloads.mariadb.com/MariaDB" @@ -724,8 +724,7 @@ Language.") version ".tar.gz")) (sha256 (base32 - "1mfs0x4c0z7d306n128dxdawk3llk25vxif5zwl20fv1z5qhz3wx")) - (patches (search-patches "mariadb-client-test-32bit.patch")) + "1i257h0zdypdfj5wkg6ck9pxlkph0jvjs92k22pjr6gnx5lxs1gz")) (modules '((guix build utils))) (snippet '(begin @@ -743,8 +742,8 @@ Language.") (for-each (lambda (file) (unless (string-suffix? "CMakeLists.txt" file) (delete-file file))) - (append (find-files "extra/yassl") - (find-files "pcre") (find-files "zlib"))) + (append (find-files "extra/wolfssl") + (find-files "zlib"))) #t)))) (build-system cmake-build-system) (outputs '("out" "lib" "dev")) @@ -798,29 +797,20 @@ Language.") "-DINSTALL_SHAREDIR=share") #:phases (modify-phases %standard-phases - ,@(if (string-prefix? "arm" (%current-system)) - ;; XXX: Because of the GCC 5 input, we need to hide GCC 7 from - ;; CPLUS_INCLUDE_PATH so that its headers do not shadow GCC 5. - '((add-after 'set-paths 'hide-default-gcc - (lambda* (#:key inputs #:allow-other-keys) - (let ((gcc (assoc-ref inputs "gcc"))) - (setenv "CPLUS_INCLUDE_PATH" - (string-join - (delete (string-append gcc "/include/c++") - (string-split (getenv "CPLUS_INCLUDE_PATH") - #\:)) - ":")) - #t)))) - '()) - (add-after 'unpack 'fix-pcre-detection + (add-after 'unpack 'adjust-output-references (lambda _ - ;; The bundled PCRE in MariaDB has a patch that was upstreamed - ;; in version 8.34. Unfortunately the upstream patch behaves - ;; slightly differently and the build system fails to detect it. - ;; See . - ;; XXX: Consider patching PCRE instead. - (substitute* "cmake/pcre.cmake" - ((" OR NOT PCRE_STACK_SIZE_OK") "")) + ;; The build system invariably prepends $CMAKE_INSTALL_PREFIX + ;; to other variables such as $INSTALL_INCLUDEDIR, which does + ;; not work when the latter uses an absolute file name. + (substitute* "libmariadb/mariadb_config/mariadb_config.c.in" + (("@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@") + "@INSTALL_INCLUDEDIR@")) + (substitute* "libmariadb/mariadb_config/libmariadb.pc.in" + (("\\$\\{prefix\\}/@INSTALL_INCLUDEDIR@") + "@INSTALL_INCLUDEDIR@")) + (substitute* "include/CMakeLists.txt" + (("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_INCLUDEDIR\\}") + "${INSTALL_INCLUDEDIR}")) #t)) (add-after 'unpack 'adjust-tests (lambda _ @@ -828,6 +818,7 @@ Language.") '(;; These fail because root@hostname == root@localhost in ;; the build environment, causing a user count mismatch. ;; See . + "funcs_1.is_columns_mysql" "main.join_cache" "main.explain_non_select" "main.stat_tables" @@ -836,20 +827,7 @@ Language.") ;; This file contains a time bomb which makes it fail after ;; 2030-12-31. See for details. - "main.mysqldump" - - ;; FIXME: This test fails on i686: - ;; -myisampack: Can't create/write to file (Errcode: 17 "File exists") - ;; +myisampack: Can't create/write to file (Errcode: 17 "File exists) - ;; When running "myisampack --join=foo/t3 foo/t1 foo/t2" - ;; (all three tables must exist and be identical) - ;; in a loop it produces the same error around 1/240 times. - ;; montywi on #maria suggested removing the real_end check in - ;; "strings/my_vsnprintf.c" on line 503, yet it still does not - ;; reach the ending quote occasionally. Disable it for now. - "main.myisampack" - ;; FIXME: This test fails on armhf-linux: - "mroonga/storage.index_read_multiple_double")) + "main.mysqldump")) ;; This file contains a list of known-flaky tests for this ;; release. Append our own items. @@ -860,9 +838,10 @@ Language.") disabled-tests) (close-port unstable-tests) - ;; XXX: This test fails because it expects a latin1 charset and + ;; XXX: These fail because they expect a latin1 charset and ;; collation. See . - (substitute* "mysql-test/r/gis_notembedded.result" + (substitute* '("mysql-test/main/gis_notembedded.result" + "mysql-test/main/system_mysql_db.result") (("latin1_swedish_ci") "utf8_general_ci") (("\tlatin1") "\tutf8")) @@ -905,56 +884,57 @@ Language.") (dev (assoc-ref outputs "dev")) (lib (assoc-ref outputs "lib")) (openssl (assoc-ref inputs "openssl"))) - (substitute* (string-append out "/bin/mysql_install_db") + (substitute* (list (string-append out "/bin/mariadb-install-db") + (string-append out "/bin/mysql_install_db")) (("basedir=\"\"") - (string-append "basedir=\"" out "\""))) + (string-append "basedir=\"" out "\"")) + (("\\$basedir/share/mysql") + (string-append lib "/share/mysql"))) + ;; Remove unneeded files for testing. (with-directory-excursion lib (for-each delete-file-recursively - '("data" "mysql-test" "sql-bench")) + '("mysql-test" "sql-bench")) ;; And static libraries. (for-each delete-file (find-files "lib" "\\.a$"))) (with-directory-excursion out (delete-file "share/man/man1/mysql-test-run.pl.1") ;; Delete huge and unnecessary executables. - (for-each delete-file (find-files "bin" "(test|embedded)"))) + (for-each delete-file (find-files "bin" "test$"))) (mkdir-p (string-append dev "/share")) (mkdir-p (string-append dev "/bin")) + (rename-file (string-append lib "/bin/mariadbd") + (string-append out "/bin/mariadbd")) (rename-file (string-append lib "/bin/mysqld") (string-append out "/bin/mysqld")) - (rename-file (string-append lib "/share/pkgconfig") - (string-append dev "/share/pkgconfig")) + (mkdir-p (string-append dev "/lib")) + (rename-file (string-append lib "/lib/pkgconfig") + (string-append dev "/lib/pkgconfig")) + (rename-file (string-append lib "/bin/mariadb_config") + (string-append dev "/bin/mariadb_config")) (rename-file (string-append out "/bin/mysql_config") (string-append dev "/bin/mysql_config")) - - (substitute* (string-append out "/bin/mysql_install_db") - (("\\$basedir/share/mysql") - (string-append lib "/share/mysql"))) - ;; Embed an absolute reference to OpenSSL in mysql_config ;; and the pkg-config file to avoid propagation. + ;; XXX: how to do this for mariadb_config.c.in? (substitute* (list (string-append dev "/bin/mysql_config") - (string-append dev "/share/pkgconfig/mariadb.pc")) + (string-append dev "/lib/pkgconfig/mariadb.pc")) (("-lssl -lcrypto" all) (string-append "-L" openssl "/lib " all))) #t)))))) (native-inputs `(("bison" ,bison) - ;; XXX: On armhf, use GCC 5 to work around . - ,@(if (string-prefix? "armhf" (%current-system)) - `(("gcc@5" ,gcc-5)) - '()) ("perl" ,perl))) (inputs `(("jemalloc" ,jemalloc) ("libaio" ,libaio) ("libxml2" ,libxml2) ("ncurses" ,ncurses) - ("openssl" ,openssl-1.0) + ("openssl" ,openssl) ("pam" ,linux-pam) - ("pcre" ,pcre) + ("pcre2" ,pcre2) ("xz" ,xz) ("zlib" ,zlib))) ;; The test suite is very resource intensive and can take more than three diff --git a/gnu/packages/patches/mariadb-client-test-32bit.patch b/gnu/packages/patches/mariadb-client-test-32bit.patch deleted file mode 100644 index 02017e324d..0000000000 --- a/gnu/packages/patches/mariadb-client-test-32bit.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 93efa48a7b972fc463406603574a4d508eefe792 Mon Sep 17 00:00:00 2001 -From: Sergei Golubchik -Date: Sun, 13 May 2018 18:50:21 +0200 -Subject: [PATCH] fix failing main.mysql_client_test test on 32bit - -in `ulonglong=ulong*uint` multiplication -is done in ulong, wrapping around on 32bit. - -This became visible after C/C changed the -default charset to utf8, thus changing -mbmaxlem from 1 to 3. ---- - tests/mysql_client_fw.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/mysql_client_fw.c b/tests/mysql_client_fw.c -index f69eb28a2871..4d036887629a 100644 ---- a/tests/mysql_client_fw.c -+++ b/tests/mysql_client_fw.c -@@ -768,7 +768,7 @@ static void do_verify_prepare_field(MYSQL_RES *result, - { - MYSQL_FIELD *field; - CHARSET_INFO *cs; -- ulonglong expected_field_length; -+ ulonglong expected_field_length= length; - - if (!(field= mysql_fetch_field_direct(result, no))) - { -@@ -777,7 +777,7 @@ static void do_verify_prepare_field(MYSQL_RES *result, - } - cs= get_charset(field->charsetnr, 0); - DIE_UNLESS(cs); -- if ((expected_field_length= length * cs->mbmaxlen) > UINT_MAX32) -+ if ((expected_field_length*= cs->mbmaxlen) > UINT_MAX32) - expected_field_length= UINT_MAX32; - if (!opt_silent) - { -- cgit v1.2.3 From b6fc2054dc3303a9bda533a620e9cafbbb5e76d5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 13 Oct 2020 01:18:54 +0200 Subject: gnu: nss, nss-certs: Update to 3.57. * gnu/packages/patches/nss-pkgconfig.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/certs.scm (nss-certs): Update to 3.57. * gnu/packages/nss.scm (nss): Likewise. [source](patches): Replace nss-pkgconfig.patch with nss-3.56-pkgconfig.patch. (nss-3.57): Remove variable. * gnu/packages/gnuzilla.scm (icedove)[inputs]: Change from NSS-3.57 to NSS. --- gnu/local.mk | 1 - gnu/packages/certs.scm | 4 +- gnu/packages/gnuzilla.scm | 2 +- gnu/packages/nss.scm | 142 ++++--------------- gnu/packages/patches/nss-pkgconfig.patch | 228 ------------------------------- 5 files changed, 28 insertions(+), 349 deletions(-) delete mode 100644 gnu/packages/patches/nss-pkgconfig.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index c6671ca25c..72144bbf33 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1364,7 +1364,6 @@ dist_patch_DATA = \ %D%/packages/patches/network-manager-plugin-path.patch \ %D%/packages/patches/nsis-env-passthru.patch \ %D%/packages/patches/nss-increase-test-timeout.patch \ - %D%/packages/patches/nss-pkgconfig.patch \ %D%/packages/patches/nss-3.56-pkgconfig.patch \ %D%/packages/patches/ntfs-3g-CVE-2019-9755.patch \ %D%/packages/patches/nvi-assume-preserve-path.patch \ diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index b892c2a958..0cb20467ab 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -76,7 +76,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.55") + (version "3.57") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -87,7 +87,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "0100hm7n1xrp144xy665z46s0wf1jpkqkncc6bk2w22snhyjwsgw")))) + "10n3pncg6k81ikjz12la147rppwqn57bkrdl9gb820w6pq0nra2m")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 365626a62a..60ea610908 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -1426,7 +1426,7 @@ standards of the IceCat project.") ("mesa" ,mesa) ("mit-krb5" ,mit-krb5) ("nspr" ,nspr) - ("nss" ,nss-3.57) + ("nss" ,nss) ("pango" ,pango) ("pixman" ,pixman) ("pulseaudio" ,pulseaudio) diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm index 3675c5bb0e..6e2ca883e0 100644 --- a/gnu/packages/nss.scm +++ b/gnu/packages/nss.scm @@ -73,121 +73,6 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.55") - (source (origin - (method url-fetch) - (uri (let ((version-with-underscores - (string-join (string-split version #\.) "_"))) - (string-append - "https://ftp.mozilla.org/pub/mozilla.org/security/nss/" - "releases/NSS_" version-with-underscores "_RTM/src/" - "nss-" version ".tar.gz"))) - (sha256 - (base32 - "0100hm7n1xrp144xy665z46s0wf1jpkqkncc6bk2w22snhyjwsgw")) - ;; Create nss.pc and nss-config. - (patches (search-patches "nss-pkgconfig.patch" - "nss-increase-test-timeout.patch")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Delete the bundled copy of these libraries. - (delete-file-recursively "nss/lib/zlib") - (delete-file-recursively "nss/lib/sqlite") - #t)))) - (build-system gnu-build-system) - (outputs '("out" "bin")) - (arguments - `(#:parallel-build? #f ; not supported - #:make-flags - (let* ((out (assoc-ref %outputs "out")) - (nspr (string-append (assoc-ref %build-inputs "nspr"))) - (rpath (string-append "-Wl,-rpath=" out "/lib/nss"))) - (list "-C" "nss" (string-append "PREFIX=" out) - "NSDISTMODE=copy" - "NSS_USE_SYSTEM_SQLITE=1" - (string-append "NSPR_INCLUDE_DIR=" nspr "/include/nspr") - ;; Add $out/lib/nss to RPATH. - (string-append "RPATH=" rpath) - (string-append "LDFLAGS=" rpath) - "all")) - #:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 ftw) - (ice-9 match) - (srfi srfi-26)) - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda _ - (setenv "CC" "gcc") - ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system. - ,@(match (%current-system) - ((or "x86_64-linux" "aarch64-linux") - `((setenv "USE_64" "1"))) - (_ - '())) - #t)) - (replace 'check - (lambda _ - ;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing. - ;; The later requires a working DNS or /etc/hosts. - (setenv "DOMSUF" "localdomain") - (setenv "USE_IP" "TRUE") - (setenv "IP_ADDRESS" "127.0.0.1") - - ;; The "PayPalEE.cert" certificate expires every six months, - ;; leading to test failures: - ;; . To - ;; work around that, set the time to roughly the release date. - (invoke "faketime" "2020-07-01" "./nss/tests/all.sh"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append (assoc-ref outputs "bin") "/bin")) - (inc (string-append out "/include/nss")) - (lib (string-append out "/lib/nss")) - (obj (match (scandir "dist" (cut string-suffix? "OBJ" <>)) - ((obj) (string-append "dist/" obj))))) - ;; Install nss-config to $out/bin. - (install-file (string-append obj "/bin/nss-config") - (string-append out "/bin")) - (delete-file (string-append obj "/bin/nss-config")) - ;; Install nss.pc to $out/lib/pkgconfig. - (install-file (string-append obj "/lib/pkgconfig/nss.pc") - (string-append out "/lib/pkgconfig")) - (delete-file (string-append obj "/lib/pkgconfig/nss.pc")) - (rmdir (string-append obj "/lib/pkgconfig")) - ;; Install other files. - (copy-recursively "dist/public/nss" inc) - (copy-recursively (string-append obj "/bin") bin) - (copy-recursively (string-append obj "/lib") lib) - #t)))))) - (inputs - `(("sqlite" ,sqlite) - ("zlib" ,zlib))) - (propagated-inputs `(("nspr" ,nspr))) ; required by nss.pc. - (native-inputs `(("perl" ,perl) - ("libfaketime" ,libfaketime))) ;for tests - - ;; The NSS test suite takes around 48 hours on Loongson 3A (MIPS) when - ;; another build is happening concurrently on the same machine. - (properties '((timeout . 216000))) ; 60 hours - - (home-page - "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS") - (synopsis "Network Security Services") - (description - "Network Security Services (@dfn{NSS}) is a set of libraries designed to -support cross-platform development of security-enabled client and server -applications. Applications built with NSS can support SSL v2 and v3, TLS, -PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other -security standards.") - (license license:mpl2.0))) - -(define-public nss-3.57 - (package - (inherit nss) (version "3.57") (source (origin (method url-fetch) @@ -210,6 +95,8 @@ security standards.") (delete-file-recursively "nss/lib/zlib") (delete-file-recursively "nss/lib/sqlite") #t)))) + (build-system gnu-build-system) + (outputs '("out" "bin")) (arguments `(#:parallel-build? #f ; not supported #:make-flags @@ -252,7 +139,7 @@ security standards.") ;; leading to test failures: ;; . To ;; work around that, set the time to roughly the release date. - (invoke "faketime" "2020-02-01" "./nss/tests/all.sh"))) + (invoke "faketime" "2020-10-01" "./nss/tests/all.sh"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -274,4 +161,25 @@ security standards.") (copy-recursively "dist/public/nss" inc) (copy-recursively (string-append obj "/bin") bin) (copy-recursively (string-append obj "/lib") lib) - #t)))))))) + #t)))))) + (inputs + `(("sqlite" ,sqlite) + ("zlib" ,zlib))) + (propagated-inputs `(("nspr" ,nspr))) ; required by nss.pc. + (native-inputs `(("perl" ,perl) + ("libfaketime" ,libfaketime))) ;for tests + + ;; The NSS test suite takes around 48 hours on Loongson 3A (MIPS) when + ;; another build is happening concurrently on the same machine. + (properties '((timeout . 216000))) ; 60 hours + + (home-page + "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS") + (synopsis "Network Security Services") + (description + "Network Security Services (@dfn{NSS}) is a set of libraries designed to +support cross-platform development of security-enabled client and server +applications. Applications built with NSS can support SSL v2 and v3, TLS, +PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other +security standards.") + (license license:mpl2.0))) diff --git a/gnu/packages/patches/nss-pkgconfig.patch b/gnu/packages/patches/nss-pkgconfig.patch deleted file mode 100644 index 4b9e0506f2..0000000000 --- a/gnu/packages/patches/nss-pkgconfig.patch +++ /dev/null @@ -1,228 +0,0 @@ -Description: Create nss.pc and nss-config -Author: Lars Wendler -Source: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/nss/files/nss-3.17.1-gentoo-fixups.patch - -Modifications: - Change libdir from ${prefix}/lib64 to ${prefix}/lib/nss. - Remove optional patching in nss/Makefile. - Include -L$libdir in output from "nss-config --libs". - -Later adapted to apply cleanly to nss-3.21. - ---- nss-3.21/nss/config/Makefile -+++ nss-3.21/nss/config/Makefile -@@ -0,0 +1,40 @@ -+CORE_DEPTH = .. -+DEPTH = .. -+ -+include $(CORE_DEPTH)/coreconf/config.mk -+ -+NSS_MAJOR_VERSION = `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}'` -+NSS_MINOR_VERSION = `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}'` -+NSS_PATCH_VERSION = `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}'` -+PREFIX = /usr -+ -+all: export libs -+ -+export: -+ # Create the nss.pc file -+ mkdir -p $(DIST)/lib/pkgconfig -+ sed -e "s,@prefix@,$(PREFIX)," \ -+ -e "s,@exec_prefix@,\$${prefix}," \ -+ -e "s,@libdir@,\$${prefix}/lib/nss," \ -+ -e "s,@includedir@,\$${prefix}/include/nss," \ -+ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \ -+ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ -+ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ -+ nss.pc.in > nss.pc -+ chmod 0644 nss.pc -+ cp nss.pc $(DIST)/lib/pkgconfig -+ -+ # Create the nss-config script -+ mkdir -p $(DIST)/bin -+ sed -e "s,@prefix@,$(PREFIX)," \ -+ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \ -+ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ -+ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ -+ nss-config.in > nss-config -+ chmod 0755 nss-config -+ cp nss-config $(DIST)/bin -+ -+libs: -+ -+dummy: all export libs -+ ---- nss-3.21/nss/config/nss-config.in -+++ nss-3.21/nss/config/nss-config.in -@@ -0,0 +1,145 @@ -+#!/bin/sh -+ -+prefix=@prefix@ -+ -+major_version=@NSS_MAJOR_VERSION@ -+minor_version=@NSS_MINOR_VERSION@ -+patch_version=@NSS_PATCH_VERSION@ -+ -+usage() -+{ -+ cat <&2 -+fi -+ -+lib_ssl=yes -+lib_smime=yes -+lib_nss=yes -+lib_nssutil=yes -+ -+while test $# -gt 0; do -+ case "$1" in -+ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; -+ *) optarg= ;; -+ esac -+ -+ case $1 in -+ --prefix=*) -+ prefix=$optarg -+ ;; -+ --prefix) -+ echo_prefix=yes -+ ;; -+ --exec-prefix=*) -+ exec_prefix=$optarg -+ ;; -+ --exec-prefix) -+ echo_exec_prefix=yes -+ ;; -+ --includedir=*) -+ includedir=$optarg -+ ;; -+ --includedir) -+ echo_includedir=yes -+ ;; -+ --libdir=*) -+ libdir=$optarg -+ ;; -+ --libdir) -+ echo_libdir=yes -+ ;; -+ --version) -+ echo ${major_version}.${minor_version}.${patch_version} -+ ;; -+ --cflags) -+ echo_cflags=yes -+ ;; -+ --libs) -+ echo_libs=yes -+ ;; -+ ssl) -+ lib_ssl=yes -+ ;; -+ smime) -+ lib_smime=yes -+ ;; -+ nss) -+ lib_nss=yes -+ ;; -+ nssutil) -+ lib_nssutil=yes -+ ;; -+ *) -+ usage 1 1>&2 -+ ;; -+ esac -+ shift -+done -+ -+# Set variables that may be dependent upon other variables -+if test -z "$exec_prefix"; then -+ exec_prefix=`pkg-config --variable=exec_prefix nss` -+fi -+if test -z "$includedir"; then -+ includedir=`pkg-config --variable=includedir nss` -+fi -+if test -z "$libdir"; then -+ libdir=`pkg-config --variable=libdir nss` -+fi -+ -+if test "$echo_prefix" = "yes"; then -+ echo $prefix -+fi -+ -+if test "$echo_exec_prefix" = "yes"; then -+ echo $exec_prefix -+fi -+ -+if test "$echo_includedir" = "yes"; then -+ echo $includedir -+fi -+ -+if test "$echo_libdir" = "yes"; then -+ echo $libdir -+fi -+ -+if test "$echo_cflags" = "yes"; then -+ echo -I$includedir -+fi -+ -+if test "$echo_libs" = "yes"; then -+ libdirs=-L$libdir -+ if test -n "$lib_ssl"; then -+ libdirs="$libdirs -lssl${major_version}" -+ fi -+ if test -n "$lib_smime"; then -+ libdirs="$libdirs -lsmime${major_version}" -+ fi -+ if test -n "$lib_nss"; then -+ libdirs="$libdirs -lnss${major_version}" -+ fi -+ if test -n "$lib_nssutil"; then -+ libdirs="$libdirs -lnssutil${major_version}" -+ fi -+ echo $libdirs -+fi -+ ---- nss-3.21/nss/config/nss.pc.in -+++ nss-3.21/nss/config/nss.pc.in -@@ -0,0 +1,12 @@ -+prefix=@prefix@ -+exec_prefix=@exec_prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: NSS -+Description: Network Security Services -+Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@ -+Requires: nspr >= 4.8 -+Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3 -+Cflags: -I${includedir} -+ ---- nss-3.21/nss/manifest.mn -+++ nss-3.21/nss/manifest.mn -@@ -10,7 +10,7 @@ - - RELEASE = nss - --DIRS = coreconf lib cmd cpputil gtests -+DIRS = coreconf lib cmd cpputil gtests config - - lib: coreconf - cmd: lib -- cgit v1.2.3 From 0caf236b3b5c9b19ee8709865ae7df9c59e7fe9b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 11 Oct 2020 16:44:00 +0200 Subject: gnu: libcyaml: Fix build with libyaml 0.2.5. * gnu/packages/patches/libcyaml-libyaml-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/web.scm (libcyaml)[source](patches): New field. --- gnu/local.mk | 1 + gnu/packages/patches/libcyaml-libyaml-compat.patch | 51 ++++++++++++++++++++++ gnu/packages/web.scm | 1 + 3 files changed, 53 insertions(+) create mode 100644 gnu/packages/patches/libcyaml-libyaml-compat.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 72144bbf33..396c0adf5d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1230,6 +1230,7 @@ dist_patch_DATA = \ %D%/packages/patches/libbonobo-activation-test-race.patch \ %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \ %D%/packages/patches/libcanberra-wayland-crash.patch \ + %D%/packages/patches/libcyaml-libyaml-compat.patch \ %D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch \ %D%/packages/patches/libgit2-mtime-0.patch \ %D%/packages/patches/libgnome-encoding.patch \ diff --git a/gnu/packages/patches/libcyaml-libyaml-compat.patch b/gnu/packages/patches/libcyaml-libyaml-compat.patch new file mode 100644 index 0000000000..dcb8cb51b8 --- /dev/null +++ b/gnu/packages/patches/libcyaml-libyaml-compat.patch @@ -0,0 +1,51 @@ +Fix build against libyaml 0.2.5. + +Taken from upstream: +https://github.com/tlsa/libcyaml/commit/0e947264b947f51f7ea785068637c4bfce5d4171 + +diff --git a/test/units/save.c b/test/units/save.c +--- a/test/units/save.c ++++ b/test/units/save.c +@@ -3476,7 +3476,7 @@ static bool test_save_sequence_null_values_int( + ttest_report_ctx_t *report, + const cyaml_config_t *config) + { +- static const unsigned char ref[] = ++ static const unsigned char ref1[] = + "---\n" + "- 7\n" + "- 6\n" +@@ -3487,6 +3487,18 @@ static bool test_save_sequence_null_values_int( + "- \n" + "- 0\n" + "...\n"; ++ /* As of libyaml 0.2.5, trailing spaces are not emitted. */ ++ static const unsigned char ref2[] = ++ "---\n" ++ "- 7\n" ++ "- 6\n" ++ "- 5\n" ++ "-\n" ++ "- 3\n" ++ "- 2\n" ++ "-\n" ++ "- 0\n" ++ "...\n"; + static const int d[] = { 7, 6, 5, 4, 3, 2, 1, 0 }; + static const int *data[] = { d + 0, d + 1, d + 2, NULL, + d + 4, d + 5, NULL, d + 7, }; +@@ -3515,11 +3527,12 @@ static bool test_save_sequence_null_values_int( + return ttest_fail(&tc, cyaml_strerror(err)); + } + +- if (len != YAML_LEN(ref) || memcmp(ref, buffer, len) != 0) { ++ if ((len != YAML_LEN(ref1) || memcmp(ref1, buffer, len) != 0) && ++ (len != YAML_LEN(ref2) || memcmp(ref2, buffer, len) != 0)) { + return ttest_fail(&tc, "Bad data:\n" + "EXPECTED (%zu):\n\n%.*s\n\n" + "GOT (%zu):\n\n%.*s\n", +- YAML_LEN(ref), YAML_LEN(ref), ref, ++ YAML_LEN(ref1), YAML_LEN(ref1), ref1, + len, len, buffer); + } + diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ced6dc2eee..0229a8c6f4 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5081,6 +5081,7 @@ written in C. It is developed as part of the NetSurf project.") (url "https://github.com/tlsa/libcyaml") (commit (string-append "v" version)))) (file-name (git-file-name name version)) + (patches (search-patches "libcyaml-yaml-compat.patch")) (sha256 (base32 "0428p0rwq71nhh5nzcbapsbrjxa0x5l6h6ns32nxv7j624f0zd93")))) (build-system gnu-build-system) -- cgit v1.2.3 From bb7c3d5aa3fceb08b0cc6403908bf8731d163745 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 11 Oct 2020 16:46:19 +0200 Subject: gnu: gstreamer: Update to 1.18.0. * gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/gstreamer.scm (gstreamer-docs): New public variable. (gstreamer): Update to 1.18.0. [outputs]: Remove. [arguments]: Remove 'move-docs' phase. [native-inputs]: Remove GTK-DOC. (gst-plugins-base): Update to 1.18.0. [arguments]: Remove "-Ddoc=false" from #:configure-flags. (gst-plugins-good, gst-plugins-ugly): Update to 1.18.0. [arguments]: Remove 'patch-docbook-xml' phase. [native-inputs]: Remove DOCBOOK-XML-4.1.2. (gst-plugins-bad): Update to 1.18.0. [arguments]: Add workarounds for known test failures. [native-inputs]: Add GST-PLUGINS-GOOD. (gst-libav): Update to 1.18.0. [source](snippet): Remove. [arguments]: Remove 'patch-docbook-xml' phase. [native-inputs]: Remove DOCBOOK-XML-4.1.2. (gst-editing-services): Update to 1.18.0. [source](uri): Adjust. (python-gst): Update to 1.18.0. [source](patches): Remove. --- gnu/local.mk | 1 - gnu/packages/gstreamer.scm | 180 +++++++++++---------- .../python-gst-fix-build-with-python-3.8.patch | 36 ----- 3 files changed, 92 insertions(+), 125 deletions(-) delete mode 100644 gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 396c0adf5d..d490613064 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1496,7 +1496,6 @@ dist_patch_DATA = \ %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \ %D%/packages/patches/python-configobj-setuptools.patch \ %D%/packages/patches/python-flask-restful-werkzeug-compat.patch \ - %D%/packages/patches/python-gst-fix-build-with-python-3.8.patch \ %D%/packages/patches/python-keras-integration-test.patch \ %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \ %D%/packages/patches/python-pyfakefs-remove-bad-test.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 01474e29a7..0ab93e3a65 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -33,6 +33,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) + #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages audio) @@ -42,7 +43,6 @@ #:use-module (gnu packages cdrom) #:use-module (gnu packages curl) #:use-module (gnu packages compression) - #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages elf) #:use-module (gnu packages flex) @@ -394,6 +394,58 @@ arrays of data.") ;; under the 3-clause BSD license, the rest is under 2-clause BSD license. (license (list license:bsd-2 license:bsd-3)))) +(define-public gstreamer-docs + (package + (name "gstreamer-docs") + (version "1.18.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://gstreamer.freedesktop.org/src/gstreamer-docs" + "/gstreamer-docs-" version ".tar.xz")) + (sha256 + (base32 + "0x6ix6dj3ndc1y133xidb21a4bamdfjh88mxxxld05d78wd1ayda")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules ((guix build utils))) + (let* ((source (assoc-ref %build-inputs "source")) + (tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz")) + (out (assoc-ref %outputs "out")) + (books (string-append out "/share/devhelp/books"))) + (setenv "PATH" (string-append xz "/bin")) + (mkdir-p books) + (with-directory-excursion books + (invoke (string-append tar "/bin/tar") "-xvf" source + "--strip-components=3" + (string-append ,name "-" ,version + "/devhelp/books/GStreamer"))) + #t)))) + (native-inputs + `(("tar" ,tar) + ("xz" ,xz))) + (home-page "https://gstreamer.freedesktop.org/") + (synopsis "Developer documentation for GStreamer") + (description + "This package contains manuals, tutorials, and API reference for +the GStreamer multimedia framework.") + ;; The documentation is covered by multiple licenses. Anything not + ;; explicitly mentioned below is LGPL2.1+. See README.md for details. + (license (list + ;; The tutorial code can be used with either of these licenses, + ;; at the users option. + license:lgpl2.1+ license:bsd-2 license:expat + ;; The developer manual and plugin writer guide carries + ;; the Open Publication License v1.0. + (license:fsf-free "https://opencontent.org/openpub/" + "The Open Publication License v1.0") + ;; Tutorials are covered by CC-BY-SA 4.0. + license:cc-by-sa4.0)))) + ;; Increase the test timeouts to accommodate slow or busy machines. (define %common-gstreamer-phases '((add-after 'unpack 'increase-test-timeout @@ -408,7 +460,7 @@ arrays of data.") (define-public gstreamer (package (name "gstreamer") - (version "1.16.2") + (version "1.18.0") (source (origin (method url-fetch) @@ -417,9 +469,8 @@ arrays of data.") version ".tar.xz")) (sha256 (base32 - "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73")))) + "01bq1k0gj603zyhq975zl09q4zla12mxqvhmk9fyn2kcn12r5w0g")))) (build-system meson-build-system) - (outputs '("out" "doc")) (arguments `(#:phases (modify-phases %standard-phases @@ -437,23 +488,13 @@ arrays of data.") (("tcase_add_test \\(tc_chain, test_stress_reschedule.*") "")) #t))) - '()) - (add-after 'install 'move-docs - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (mkdir-p (string-append doc "/share")) - (copy-recursively (string-append out "/share/gtk-doc") - (string-append doc "/share/gtk-doc")) - (delete-file-recursively (string-append out "/share/gtk-doc")) - #t)))))) + '())))) (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc. (native-inputs `(("bison" ,bison) ("flex" ,flex) ("glib" ,glib "bin") ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc) ("perl" ,perl) ("pkg-config" ,pkg-config) ("python-wrapper" ,python-wrapper))) @@ -479,7 +520,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.16.2") + (version "1.18.0") (source (origin (method url-fetch) @@ -487,7 +528,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi")))) + "15vqvcy842vhbic3w7l4yvannzazdgwggzv2x8f9m02hm78vsakn")))) (build-system meson-build-system) (propagated-inputs `(("glib" ,glib) ;required by gstreamer-sdp-1.0.pc @@ -522,10 +563,7 @@ This package provides the core library and elements.") ("gobject-introspection" ,gobject-introspection) ("python-wrapper" ,python-wrapper))) (arguments - `(#:configure-flags '("-Dgl=disabled" - ;; FIXME: Documentation fails to build without - ;; enabling GL above, which causes other problems. - "-Ddoc=false") + `(#:configure-flags '("-Dgl=disabled") #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases @@ -544,7 +582,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.16.2") + (version "1.18.0") (source (origin (method url-fetch) @@ -553,22 +591,13 @@ for the GStreamer multimedia library.") "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0")))) + (base32 "1b4b3a6fm2wyqpnx300pg1sz01m9qhfajadk3b7sbzisg8vvqab3")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-docbook-xml - (lambda* (#:key inputs #:allow-other-keys) - (with-directory-excursion "docs" - (substitute* "plugins/gst-plugins-good-plugins-docs.sgml" - (("http://www.oasis-open.org/docbook/xml/4.1.2/") - (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook/")))) - #t)) - (add-before - 'check 'pre-check + (add-before 'check 'pre-check (lambda _ ;; Tests require a running X server. (system "Xvfb :1 +extension GLX &") @@ -581,8 +610,7 @@ for the GStreamer multimedia library.") (setenv "DBUS_FATAL_WARNINGS" "0") #t))))) (native-inputs - `(("docbook-xml" ,docbook-xml-4.1.2) - ("gettext" ,gettext-minimal) + `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) @@ -643,14 +671,14 @@ model to base your own plug-in on, here it is.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.16.2") + (version "1.18.0") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi")))) + "0pqqq5bs9fjwcmbwgsgxs2dx6gznhxs7ii5pmjkslr6xmlfap0pk")))) (build-system meson-build-system) (arguments `(#:phases @@ -667,20 +695,26 @@ model to base your own plug-in on, here it is.") "")) #t))) '()) - (add-after 'unpack 'disable-failing-test - (lambda _ - ;; FIXME: Why is this failing. - (substitute* "tests/check/meson.build" - ((".*elements/dash_mpd\\.c.*") - "")) - #t))))) + (add-after 'unpack 'adjust-tests + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (let ((gst-plugins-good (assoc-ref (or native-inputs inputs) + "gst-plugins-good"))) + (substitute* "tests/check/meson.build" + ;; Make gst-plugin-good available for tests, see + ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1426 + (("'GST_PLUGIN_SYSTEM_PATH_1_0', ''") + (string-append "'GST_PLUGIN_SYSTEM_PATH_1_0', '" + gst-plugins-good "/lib/gstreamer-1.0'")) + ;; This test occasionally times out, see + ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412 + ((".*elements/dtls\\.c.*") "")) + #t)))))) (propagated-inputs `(("gst-plugins-base" ,gst-plugins-base))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc. ("gobject-introspection" ,gobject-introspection) - ;; TODO: Enable documentation for 1.18. - ;;("gtk-doc" ,gtk-doc) + ("gst-plugins-good" ,gst-plugins-good) ;for tests ("pkg-config" ,pkg-config) ("python" ,python))) (inputs @@ -737,7 +771,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.16.2") + (version "1.18.0") (source (origin (method url-fetch) @@ -745,22 +779,13 @@ par compared to the rest.") (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m")))) + (base32 "10p0nyzighvkciaspxnhlr7d7n4acrv96lf483i8l988bvj48rk8")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-docbook-xml - (lambda* (#:key inputs #:allow-other-keys) - (with-directory-excursion "docs" - (substitute* "plugins/gst-plugins-ugly-plugins-docs.sgml" - (("http://www.oasis-open.org/docbook/xml/4.1.2/") - (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook/")))) - #t)) - (add-before - 'check 'pre-check + (add-before 'check 'pre-check (lambda _ ;; Tests require a running X server. (system "Xvfb :1 +extension GLX &") @@ -773,8 +798,7 @@ par compared to the rest.") (setenv "DBUS_FATAL_WARNINGS" "0") #t))))) (native-inputs - `(("docbook-xml" ,docbook-xml-4.1.2) - ("gettext" ,gettext-minimal) + `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) @@ -805,7 +829,7 @@ think twice about shipping them.") (define-public gst-libav (package (name "gst-libav") - (version "1.16.2") + (version "1.18.0") (source (origin (method url-fetch) @@ -814,28 +838,10 @@ think twice about shipping them.") "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Drop bundled ffmpeg. - (delete-file-recursively "gst-libs/ext/libav") - #t)))) + (base32 "0sm0sfdlalimpkf7a7rk7whvyvmmfi2kly2z3q2j5z53x5f3zya2")))) (build-system meson-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-docbook-xml - (lambda* (#:key inputs #:allow-other-keys) - (with-directory-excursion "docs" - (substitute* "plugins/gst-libav-plugins-docs.sgml" - (("http://www.oasis-open.org/docbook/xml/4.1.2/") - (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook/")))) - #t))))) (native-inputs - `(("docbook-xml" ,docbook-xml-4.1.2) - ("perl" ,perl) + `(("perl" ,perl) ("pkg-config" ,pkg-config) ("python" ,python-wrapper) ("ruby" ,ruby))) @@ -853,15 +859,15 @@ decoders, muxers, and demuxers provided by FFmpeg.") (define-public gst-editing-services (package (name "gst-editing-services") - (version "1.16.2") + (version "1.18.0") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" - "gstreamer-editing-services-" version ".tar.xz")) + "gst-editing-services-" version ".tar.xz")) (sha256 (base32 - "05hcf3prna8ajjnqd53221gj9syarrrjbgvjcbhicv0c38csc1hf")))) + "1a00f07v0yjqz1hydhgkjjarm4rk99yjicbz5wkfl5alhzag1bjd")))) (build-system meson-build-system) (arguments ;; FIXME: 16/22 failing tests. @@ -888,7 +894,7 @@ non-linear editors.") (define-public python-gst (package (name "python-gst") - (version "1.16.2") + (version "1.18.0") (source (origin (method url-fetch) (uri (string-append @@ -896,9 +902,7 @@ non-linear editors.") "gst-python-" version ".tar.xz")) (sha256 (base32 - "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390")) - (patches - (search-patches "python-gst-fix-build-with-python-3.8.patch")))) + "0ifx2s2j24sj2w5jm7cxyg1kinnhbxiz4x0qp3gnsjlwbawfigvn")))) (build-system meson-build-system) (arguments `(#:modules ((guix build meson-build-system) diff --git a/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch b/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch deleted file mode 100644 index affa0e1317..0000000000 --- a/gnu/packages/patches/python-gst-fix-build-with-python-3.8.patch +++ /dev/null @@ -1,36 +0,0 @@ -Fix build with Python 3.8 by also checking for python-3.X-embed.pc. Since -Python 3.8 the normal checks don't include the Python libraries anymore and -linking of the gst-python module would fail. - -See also https://github.com/mesonbuild/meson/issues/5629 -Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/issues/28 - -Patch based on upstream commit: - -https://gitlab.freedesktop.org/gstreamer/gst-python/-/commit/10707f437f2fc3632067c6a0efa4432f7ebaf362 - -diff --git a/meson.build b/meson.build -index 5f13b48..d7c7e66 100644 ---- a/meson.build -+++ b/meson.build -@@ -23,7 +23,17 @@ pygobject_dep = dependency('pygobject-3.0', fallback: ['pygobject', 'pygobject_d - - pymod = import('python') - python = pymod.find_installation(get_option('python')) --python_dep = python.dependency(required : true) -+pythonver = python.language_version() -+if pythonver.version_compare('<3.0') -+ error('Python2 is not supported anymore, please port your code to python3 (@0@ specified)'.format(python.language_version())) -+endif -+ -+# Workaround for https://github.com/mesonbuild/meson/issues/5629 -+# https://gitlab.freedesktop.org/gstreamer/gst-python/issues/28 -+python_dep = dependency('python-@0@-embed'.format(pythonver), version: '>=3', required: false) -+if not python_dep.found() -+ python_dep = python.dependency(required : true) -+endif - - python_abi_flags = python.get_variable('ABIFLAGS', '') - pylib_loc = get_option('libpython-dir') --- -2.26.2 -- cgit v1.2.3 From 171c1f5ab339502e50caf0cdf56e89342aef661e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 11 Oct 2020 22:22:37 +0200 Subject: gnu: libsndfile: Remove graft for 1.0.30. * gnu/packages/patches/libsndfile-CVE-2017-12562.patch, gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch, gnu/packages/patches/libsndfile-CVE-2017-8362.patch, gnu/packages/patches/libsndfile-armhf-type-checks.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/pulseaudio.scm (libsndfile): Update to 1.0.30. [replacement]: Remove. [source](uri): Adjust for new URL. [source](patches): Remove. [source](modules, snippet): Incorporate from LIBSNDFILE-1.0.30. [native-inputs]: Add PYTHON. (libsndfile-1.0.30): Remove variable. --- gnu/local.mk | 4 - .../patches/libsndfile-CVE-2017-12562.patch | 97 ---------------------- .../libsndfile-CVE-2017-8361-8363-8365.patch | 77 ----------------- .../patches/libsndfile-CVE-2017-8362.patch | 61 -------------- .../patches/libsndfile-armhf-type-checks.patch | 42 ---------- gnu/packages/pulseaudio.scm | 62 +++++--------- 6 files changed, 21 insertions(+), 322 deletions(-) delete mode 100644 gnu/packages/patches/libsndfile-CVE-2017-12562.patch delete mode 100644 gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch delete mode 100644 gnu/packages/patches/libsndfile-CVE-2017-8362.patch delete mode 100644 gnu/packages/patches/libsndfile-armhf-type-checks.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index d490613064..8351e7a62e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1254,10 +1254,6 @@ dist_patch_DATA = \ %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \ %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \ %D%/packages/patches/libquicktime-ffmpeg.patch \ - %D%/packages/patches/libsndfile-armhf-type-checks.patch \ - %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ - %D%/packages/patches/libsndfile-CVE-2017-8362.patch \ - %D%/packages/patches/libsndfile-CVE-2017-12562.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtgvoip-disable-sse2.patch \ %D%/packages/patches/libtgvoip-disable-webrtc.patch \ diff --git a/gnu/packages/patches/libsndfile-CVE-2017-12562.patch b/gnu/packages/patches/libsndfile-CVE-2017-12562.patch deleted file mode 100644 index 58cb242b10..0000000000 --- a/gnu/packages/patches/libsndfile-CVE-2017-12562.patch +++ /dev/null @@ -1,97 +0,0 @@ -Fix CVE-2017-12562: - -https://github.com/erikd/libsndfile/issues/292 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12562 - -Patch copied from upstream source repository: - -https://github.com/erikd/libsndfile/commit/cf7a8182c2642c50f1cf90dddea9ce96a8bad2e8 - -From cf7a8182c2642c50f1cf90dddea9ce96a8bad2e8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rn=20Heusipp?= -Date: Wed, 14 Jun 2017 12:25:40 +0200 -Subject: [PATCH] src/common.c: Fix heap buffer overflows when writing strings - in binheader - -Fixes the following problems: - 1. Case 's' only enlarges the buffer by 16 bytes instead of size bytes. - 2. psf_binheader_writef() enlarges the header buffer (if needed) prior to the - big switch statement by an amount (16 bytes) which is enough for all cases - where only a single value gets added. Cases 's', 'S', 'p' however - additionally write an arbitrary length block of data and again enlarge the - buffer to the required amount. However, the required space calculation does - not take into account the size of the length field which gets output before - the data. - 3. Buffer size requirement calculation in case 'S' does not account for the - padding byte ("size += (size & 1) ;" happens after the calculation which - uses "size"). - 4. Case 'S' can overrun the header buffer by 1 byte when no padding is - involved - ("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ;" while - the buffer is only guaranteed to have "size" space available). - 5. "psf->header.ptr [psf->header.indx] = 0 ;" in case 'S' always writes 1 byte - beyond the space which is guaranteed to be allocated in the header buffer. - 6. Case 's' can overrun the provided source string by 1 byte if padding is - involved ("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;" - where "size" is "strlen (strptr) + 1" (which includes the 0 terminator, - plus optionally another 1 which is padding and not guaranteed to be - readable via the source string pointer). - -Closes: https://github.com/erikd/libsndfile/issues/292 ---- - src/common.c | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - -diff --git a/src/common.c b/src/common.c -index 1a6204ca..6b2a2ee9 100644 ---- a/src/common.c -+++ b/src/common.c -@@ -681,16 +681,16 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...) - /* Write a C string (guaranteed to have a zero terminator). */ - strptr = va_arg (argptr, char *) ; - size = strlen (strptr) + 1 ; -- size += (size & 1) ; - -- if (psf->header.indx + (sf_count_t) size >= psf->header.len && psf_bump_header_allocation (psf, 16)) -+ if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1))) - return count ; - - if (psf->rwf_endian == SF_ENDIAN_BIG) -- header_put_be_int (psf, size) ; -+ header_put_be_int (psf, size + (size & 1)) ; - else -- header_put_le_int (psf, size) ; -+ header_put_le_int (psf, size + (size & 1)) ; - memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ; -+ size += (size & 1) ; - psf->header.indx += size ; - psf->header.ptr [psf->header.indx - 1] = 0 ; - count += 4 + size ; -@@ -703,16 +703,15 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...) - */ - strptr = va_arg (argptr, char *) ; - size = strlen (strptr) ; -- if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size)) -+ if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1))) - return count ; - if (psf->rwf_endian == SF_ENDIAN_BIG) - header_put_be_int (psf, size) ; - else - header_put_le_int (psf, size) ; -- memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ; -+ memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + (size & 1)) ; - size += (size & 1) ; - psf->header.indx += size ; -- psf->header.ptr [psf->header.indx] = 0 ; - count += 4 + size ; - break ; - -@@ -724,7 +723,7 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...) - size = (size & 1) ? size : size + 1 ; - size = (size > 254) ? 254 : size ; - -- if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size)) -+ if (psf->header.indx + 1 + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, 1 + size)) - return count ; - - header_put_byte (psf, size) ; diff --git a/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch b/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch deleted file mode 100644 index 5f63231af0..0000000000 --- a/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch +++ /dev/null @@ -1,77 +0,0 @@ -Fix CVE-2017-{8361,8363,8365}: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8361 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8363 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8365 - -Patch copied from upstream source repository: - -https://github.com/erikd/libsndfile/commit/fd0484aba8e51d16af1e3a880f9b8b857b385eb3 - -From fd0484aba8e51d16af1e3a880f9b8b857b385eb3 Mon Sep 17 00:00:00 2001 -From: Erik de Castro Lopo -Date: Wed, 12 Apr 2017 19:45:30 +1000 -Subject: [PATCH] FLAC: Fix a buffer read overrun - -Buffer read overrun occurs when reading a FLAC file that switches -from 2 channels to one channel mid-stream. Only option is to -abort the read. - -Closes: https://github.com/erikd/libsndfile/issues/230 ---- - src/common.h | 1 + - src/flac.c | 13 +++++++++++++ - src/sndfile.c | 1 + - 3 files changed, 15 insertions(+) - -diff --git a/src/common.h b/src/common.h -index 0bd810c3..e2669b6a 100644 ---- a/src/common.h -+++ b/src/common.h -@@ -725,6 +725,7 @@ enum - SFE_FLAC_INIT_DECODER, - SFE_FLAC_LOST_SYNC, - SFE_FLAC_BAD_SAMPLE_RATE, -+ SFE_FLAC_CHANNEL_COUNT_CHANGED, - SFE_FLAC_UNKOWN_ERROR, - - SFE_WVE_NOT_WVE, -diff --git a/src/flac.c b/src/flac.c -index 84de0e26..986a7b8f 100644 ---- a/src/flac.c -+++ b/src/flac.c -@@ -434,6 +434,19 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_ - - switch (metadata->type) - { case FLAC__METADATA_TYPE_STREAMINFO : -+ if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels) -+ { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n" -+ "Nothing to be but to error out.\n" , -+ psf->sf.channels, metadata->data.stream_info.channels) ; -+ psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; -+ return ; -+ } ; -+ -+ if (psf->sf.channels > 0 && psf->sf.samplerate != (int) metadata->data.stream_info.sample_rate) -+ { psf_log_printf (psf, "Warning: FLAC stream changed sample rates from %d to %d.\n" -+ "Carrying on as if nothing happened.", -+ psf->sf.samplerate, metadata->data.stream_info.sample_rate) ; -+ } ; - psf->sf.channels = metadata->data.stream_info.channels ; - psf->sf.samplerate = metadata->data.stream_info.sample_rate ; - psf->sf.frames = metadata->data.stream_info.total_samples ; -diff --git a/src/sndfile.c b/src/sndfile.c -index 41875610..e2a87be8 100644 ---- a/src/sndfile.c -+++ b/src/sndfile.c -@@ -245,6 +245,7 @@ ErrorStruct SndfileErrors [] = - { SFE_FLAC_INIT_DECODER , "Error : problem with initialization of the flac decoder." }, - { SFE_FLAC_LOST_SYNC , "Error : flac decoder lost sync." }, - { SFE_FLAC_BAD_SAMPLE_RATE, "Error : flac does not support this sample rate." }, -+ { SFE_FLAC_CHANNEL_COUNT_CHANGED, "Error : flac channel changed mid stream." }, - { SFE_FLAC_UNKOWN_ERROR , "Error : unknown error in flac decoder." }, - - { SFE_WVE_NOT_WVE , "Error : not a WVE file." }, --- -2.12.2 - diff --git a/gnu/packages/patches/libsndfile-CVE-2017-8362.patch b/gnu/packages/patches/libsndfile-CVE-2017-8362.patch deleted file mode 100644 index 5fc52a377a..0000000000 --- a/gnu/packages/patches/libsndfile-CVE-2017-8362.patch +++ /dev/null @@ -1,61 +0,0 @@ -Fix CVE-2017-8362: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8362 - -Patch copied from upstream source repository: - -https://github.com/erikd/libsndfile/commit/ef1dbb2df1c0e741486646de40bd638a9c4cd808 - -From ef1dbb2df1c0e741486646de40bd638a9c4cd808 Mon Sep 17 00:00:00 2001 -From: Erik de Castro Lopo -Date: Fri, 14 Apr 2017 15:19:16 +1000 -Subject: [PATCH] src/flac.c: Fix a buffer read overflow - -A file (generated by a fuzzer) which increased the number of channels -from one frame to the next could cause a read beyond the end of the -buffer provided by libFLAC. Only option is to abort the read. - -Closes: https://github.com/erikd/libsndfile/issues/231 ---- - src/flac.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/src/flac.c b/src/flac.c -index 5a4f8c21..e4f9aaa0 100644 ---- a/src/flac.c -+++ b/src/flac.c -@@ -169,6 +169,14 @@ flac_buffer_copy (SF_PRIVATE *psf) - const int32_t* const *buffer = pflac->wbuffer ; - unsigned i = 0, j, offset, channels, len ; - -+ if (psf->sf.channels != (int) frame->header.channels) -+ { psf_log_printf (psf, "Error: FLAC frame changed from %d to %d channels\n" -+ "Nothing to do but to error out.\n" , -+ psf->sf.channels, frame->header.channels) ; -+ psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; -+ return 0 ; -+ } ; -+ - /* - ** frame->header.blocksize is variable and we're using a constant blocksize - ** of FLAC__MAX_BLOCK_SIZE. -@@ -202,7 +210,6 @@ flac_buffer_copy (SF_PRIVATE *psf) - return 0 ; - } ; - -- - len = SF_MIN (pflac->len, frame->header.blocksize) ; - - if (pflac->remain % channels != 0) -@@ -436,7 +443,7 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_ - { case FLAC__METADATA_TYPE_STREAMINFO : - if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels) - { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n" -- "Nothing to be but to error out.\n" , -+ "Nothing to do but to error out.\n" , - psf->sf.channels, metadata->data.stream_info.channels) ; - psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; - return ; --- -2.12.2 - diff --git a/gnu/packages/patches/libsndfile-armhf-type-checks.patch b/gnu/packages/patches/libsndfile-armhf-type-checks.patch deleted file mode 100644 index 7e0c71c3f6..0000000000 --- a/gnu/packages/patches/libsndfile-armhf-type-checks.patch +++ /dev/null @@ -1,42 +0,0 @@ -This is a regression in 1.0.28 that causes a test failure on armhf. - -Upstream bug URL: - -https://github.com/erikd/libsndfile/issues/229 - -Patch copied from upstream source repository: - -https://github.com/erikd/libsndfile/commit/9d470ee5577d3ccedb1c28c7e0a7295ba17feaf5 - -From 9d470ee5577d3ccedb1c28c7e0a7295ba17feaf5 Mon Sep 17 00:00:00 2001 -From: Erik de Castro Lopo -Date: Sun, 16 Apr 2017 17:54:17 +1000 -Subject: [PATCH] src/rf64.c: Fix varargs related bug - -C's functionality isn't type checked so that passing an -`sf_count_t` (64 bits) by mistake in place of a `unit32_t` can cause -errors. This would be fine if it was an error on every architecture -and platform, but its not. This particular problem only manifested -on armhf and some other Arm architectures. It was not an issue on -32 bit x86. - -I have now fixed variants of this same bug several times. - -Closes: https://github.com/erikd/libsndfile/issues/229 ---- - src/rf64.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/rf64.c b/src/rf64.c -index b3d637f..02dd904 100644 ---- a/src/rf64.c -+++ b/src/rf64.c -@@ -742,7 +742,7 @@ rf64_write_header (SF_PRIVATE *psf, int calc_length) - - pad_size = psf->dataoffset - 16 - psf->header.indx ; - if (pad_size >= 0) -- psf_binheader_writef (psf, "m4z", PAD_MARKER, pad_size, make_size_t (pad_size)) ; -+ psf_binheader_writef (psf, "m4z", PAD_MARKER, (unsigned int) pad_size, make_size_t (pad_size)) ; - - if (wpriv->rf64_downgrade && (psf->filelength < RIFF_DOWNGRADE_BYTES)) - psf_binheader_writef (psf, "tm8", data_MARKER, psf->datalength) ; diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index d5c24c264a..d9e9488484 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -71,45 +71,6 @@ (define-public libsndfile (package (name "libsndfile") - (version "1.0.28") - (replacement libsndfile-1.0.30) - (source (origin - (method url-fetch) - (uri (string-append "http://www.mega-nerd.com/libsndfile/files/libsndfile-" - version ".tar.gz")) - (patches (search-patches "libsndfile-armhf-type-checks.patch" - "libsndfile-CVE-2017-8361-8363-8365.patch" - "libsndfile-CVE-2017-8362.patch" - "libsndfile-CVE-2017-12562.patch")) - (sha256 - (base32 - "1afzm7jx34jhqn32clc5xghyjglccam2728yxlx37yj2y0lkkwqz")))) - (build-system gnu-build-system) - (inputs - `(("libvorbis" ,libvorbis) - ("libogg" ,libogg) - ("flac" ,flac))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (home-page "http://www.mega-nerd.com/libsndfile/") - (synopsis "Reading and writing files containing sampled sound") - (description - "Libsndfile is a C library for reading and writing files containing -sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through -one standard library interface. - -It was designed to handle both little-endian (such as WAV) and -big-endian (such as AIFF) data, and to compile and run correctly on -little-endian (such as Intel and DEC/Compaq Alpha) processor systems as well -as big-endian processor systems such as Motorola 68k, Power PC, MIPS and -SPARC. Hopefully the design of the library will also make it easy to extend -for reading and writing new sound file formats.") - (license l:gpl2+))) - -;; Replacement package to fix multiple security vulnerabilities. -(define libsndfile-1.0.30 - (package - (inherit libsndfile) (version "1.0.30") (source (origin (method url-fetch) @@ -137,9 +98,28 @@ for reading and writing new sound file formats.") (substitute* "tests/test_wrapper.sh.in" (("^/usr/bin/env") "env")) #t)))) + (build-system gnu-build-system) + (inputs + `(("libvorbis" ,libvorbis) + ("libogg" ,libogg) + ("flac" ,flac))) (native-inputs - `(("python" ,python) - ,@(package-native-inputs libsndfile))))) + `(("pkg-config" ,pkg-config) + ("python" ,python))) + (home-page "http://www.mega-nerd.com/libsndfile/") + (synopsis "Reading and writing files containing sampled sound") + (description + "Libsndfile is a C library for reading and writing files containing +sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through +one standard library interface. + +It was designed to handle both little-endian (such as WAV) and +big-endian (such as AIFF) data, and to compile and run correctly on +little-endian (such as Intel and DEC/Compaq Alpha) processor systems as well +as big-endian processor systems such as Motorola 68k, Power PC, MIPS and +SPARC. Hopefully the design of the library will also make it easy to extend +for reading and writing new sound file formats.") + (license l:gpl2+))) (define-public libsamplerate (package -- cgit v1.2.3 From 7d26b017d89293822e30e899753fb3df4979c57f Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 26 Sep 2020 21:41:56 +0200 Subject: gnu: Add java-tunnelvisionlabs-antlr4-runtime-annotations. * gnu/packages/java.scm (java-tunnelvisionlabs-antlr4-runtime-annotations): New variable. * gnu/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/java.scm | 38 ++++++++++ ...ava-tunnelvisionlabs-antlr-code-too-large.patch | 87 ++++++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 gnu/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 8351e7a62e..8b09cb39ef 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1168,6 +1168,7 @@ dist_patch_DATA = \ %D%/packages/patches/jamvm-2.0.0-opcode-guard.patch \ %D%/packages/patches/java-antlr4-Add-standalone-generator.patch \ %D%/packages/patches/java-antlr4-fix-code-too-large.java \ + %D%/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index bddf84d150..0da7e59f4e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -8517,6 +8517,44 @@ parse trees."))) "java-antlr4-runtime" (list java-antlr4-runtime-4.1) (package-inputs antlr4))))) +(define-public java-tunnelvisionlabs-antlr4-runtime-annotations + (package + (inherit java-antlr4-runtime) + (name "java-tunnelvisionlabs-antlr4-runtime-annotations") + (version "4.7.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tunnelvisionlabs/antlr4") + (commit (string-append version "-opt")))) + (file-name (git-file-name "java-tunnelvisionlabs-antlr4" version)) + (sha256 + (base32 + "1mf2lvvsszpialsk23ma83pwp50nd32lrbjpa847zlm5gmranbr8")) + (patches + (search-patches "java-antlr4-Add-standalone-generator.patch" + "java-tunnelvisionlabs-antlr-code-too-large.patch")))) + (arguments + `(#:jar-name "java-antlr4-runtime-annotations.jar" + #:source-dir "runtime/JavaAnnotations/src" + #:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (add-after 'build 'copy-resources + (lambda _ + (copy-recursively "runtime/JavaAnnotations/resources" + "build/classes") + #t)) + (add-after 'copy-resources 'rebuild-jar + (lambda _ + (invoke "ant" "jar") + #t))))) + (inputs '()) + (native-inputs '()) + (synopsis "Annotations for ANTLR's runtime library") + (description "This package contains annotations used during the build of +the runtime library of ANTLR."))) + (define-public java-commons-cli-1.2 ;; This is a bootstrap dependency for Maven2. (package diff --git a/gnu/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch b/gnu/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch new file mode 100644 index 0000000000..7bdf05eb9c --- /dev/null +++ b/gnu/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch @@ -0,0 +1,87 @@ +From 56ae699a27eca52cc0bb14cbc9944b62136be52b Mon Sep 17 00:00:00 2001 +From: Julien Lepiller +Date: Sun, 20 Sep 2020 21:07:29 +0200 +Subject: [PATCH] Separate addPropertyAliases in two methods + +The quantity of data used to generate addPropertyAliases creates a big +method, that is too big for java and results in "error: code too large". +This is most likely due to added data between the expected version of +icu and the actual version of icu in Guix. +--- + .../org/antlr/v4/tool/templates/unicodedata.st | 15 ++++++++++++--- + .../unicode/UnicodeDataTemplateController.java | 18 ++++++++++-------- + 2 files changed, 22 insertions(+), 11 deletions(-) + +diff --git a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st +index f5052b7..125d15b 100644 +--- a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st ++++ b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st +@@ -1,4 +1,4 @@ +-unicodedata(propertyCodePointRanges, propertyAliases) ::= << ++unicodedata(propertyCodePointRanges, propertyAliasesA, propertyAliasesB) ::= << + package org.antlr.v4.unicode; + + import java.util.Arrays; +@@ -17,7 +17,7 @@ public enum UnicodeData { + ; + + private static final Map\ propertyCodePointRanges = new HashMap\(); +- private static final Map\ propertyAliases = new HashMap\(); ++ private static final Map\ propertyAliases = new HashMap\( + ); + + // Work around Java 64k bytecode method limit by splitting up static + // initialization into one method per Unicode property +@@ -33,8 +33,17 @@ static private void addProperty() { + \}}; separator="\n\n"> + + // Property aliases ++ static private void addPropertyAliasesA() { ++ ".toLowerCase(Locale.US), "".toLowerCase(Locale.US)); }; separator="\n"> ++ } ++ ++ static private void addPropertyAliasesB() { ++ ".toLowerCase(Locale.US), "".toLowerCase(Locale.US)); }; separator="\n"> ++ } ++ + static private void addPropertyAliases() { +- ".toLowerCase(Locale.US), "".toLowerCase(Locale.US)); }; separator="\n"> ++ addPropertyAliasesA(); ++ addPropertyAliasesB(); + } + + // Put it all together +diff --git a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java +index 570190c..692cee0 100644 +--- a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java ++++ b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java +@@ -74,17 +74,19 @@ public abstract class UnicodeDataTemplateController { + addTR35ExtendedPictographicPropertyCodesToCodePointRanges(propertyCodePointRanges); + addEmojiPresentationPropertyCodesToCodePointRanges(propertyCodePointRanges); + +- Map propertyAliases = new LinkedHashMap(); +- addUnicodeCategoryCodesToNames(propertyAliases); +- addUnicodeBinaryPropertyCodesToNames(propertyAliases); +- addUnicodeScriptCodesToNames(propertyAliases); +- addUnicodeBlocksToNames(propertyAliases); +- addUnicodeIntPropertyCodesToNames(propertyAliases); +- propertyAliases.put("EP", "Extended_Pictographic"); ++ Map propertyAliasesA = new LinkedHashMap(); ++ Map propertyAliasesB = new LinkedHashMap(); ++ addUnicodeCategoryCodesToNames(propertyAliasesA); ++ addUnicodeBinaryPropertyCodesToNames(propertyAliasesA); ++ addUnicodeScriptCodesToNames(propertyAliasesA); ++ addUnicodeBlocksToNames(propertyAliasesB); ++ addUnicodeIntPropertyCodesToNames(propertyAliasesB); ++ propertyAliasesB.put("EP", "Extended_Pictographic"); + + Map properties = new LinkedHashMap(); + properties.put("propertyCodePointRanges", propertyCodePointRanges); +- properties.put("propertyAliases", propertyAliases); ++ properties.put("propertyAliasesA", propertyAliasesA); ++ properties.put("propertyAliasesB", propertyAliasesB); + return properties; + } + +-- +2.28.0 + -- cgit v1.2.3 From dc3c27554be14c0fbf3c4668d1eb1a3b25d5ac00 Mon Sep 17 00:00:00 2001 From: Simon South Date: Mon, 15 Jun 2020 11:22:52 -0400 Subject: gnu: icedtea-6: Remove obsolete, architecture-dependent patch. * gnu/packages/java.scm (icedtea-6)[arguments]<#:phases>: Remove special handling of "hotspot-src" input during "unpack" phase. [native-inputs]: Remove patch to "hotspot-src". * gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. Signed-off-by: Efraim Flashner --- gnu/local.mk | 1 - gnu/packages/java.scm | 9 ++--- ...icedtea-6-hotspot-gcc-segfault-workaround.patch | 42 ---------------------- 3 files changed, 2 insertions(+), 50 deletions(-) delete mode 100644 gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 91b7c3a14c..4402c9bc7c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1145,7 +1145,6 @@ dist_patch_DATA = \ %D%/packages/patches/icecat-use-older-reveal-hidden-html.patch \ %D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch \ %D%/packages/patches/icecat-use-system-media-libs.patch \ - %D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch \ %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \ %D%/packages/patches/icu4c-CVE-2020-10531.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1d6d957eff..8432fa3452 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -889,11 +889,8 @@ machine."))) (assoc-ref inputs (string-append part "-src")) part)) - '("jdk" "corba" + '("jdk" "hotspot" "corba" "langtools" "jaxp" "jaxws"))) - (with-directory-excursion "openjdk" - (invoke "tar" "xvf" (assoc-ref inputs "hotspot-src")) - (rename-file "hg-checkout" "hotspot")) (substitute* "patches/freetypeversion.patch" (("REQUIRED_FREETYPE_VERSION = 2.2.1") "REQUIRED_FREETYPE_VERSION = 2.10.1")) @@ -1119,9 +1116,7 @@ machine."))) (changeset "jdk6-b41"))) (sha256 (base32 - "07lc1z4k5dj9nrc1wvwmpvxr3xgxrdkdh53xb95skk5ij49yagfd")) - (patches - (search-patches "icedtea-6-hotspot-gcc-segfault-workaround.patch")))) + "07lc1z4k5dj9nrc1wvwmpvxr3xgxrdkdh53xb95skk5ij49yagfd")))) ("corba-src" ,(origin (method hg-fetch) diff --git a/gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch b/gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch deleted file mode 100644 index ef090e0ec9..0000000000 --- a/gnu/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch +++ /dev/null @@ -1,42 +0,0 @@ -# HG changeset patch -# User Gábor Boskovits -# Date 1530519413 -7200 -# Mon Jul 02 10:16:53 2018 +0200 -# Node ID 77e5bc9e238a28d17e097647badc04ed67a6a452 -# Parent 1ae05a34e052d1672b4a7894ddf5fc2f662eb861 -Fix gcc segfault. - -diff -r 1ae05a34e052 -r 77e5bc9e238a src/share/vm/opto/output.cpp ---- a/src/share/vm/opto/output.cpp Sun Dec 25 23:52:13 2016 +0000 -+++ b/src/share/vm/opto/output.cpp Mon Jul 02 10:16:53 2018 +0200 -@@ -1758,6 +1758,8 @@ - - // Initializer for class Scheduling - -+volatile const void *eePointer = Pipeline_Use::elaborated_elements; -+ - Scheduling::Scheduling(Arena *arena, Compile &compile) - : _arena(arena), - _cfg(compile.cfg()), -@@ -1802,8 +1804,8 @@ - - // Clear the bundling information - memcpy(_bundle_use_elements, -- Pipeline_Use::elaborated_elements, -- sizeof(Pipeline_Use::elaborated_elements)); -+ (void *)eePointer, -+ 11*sizeof(Pipeline_Use_Element)); - - // Get the last node - Block *bb = _cfg->_blocks[_cfg->_blocks.size()-1]; -@@ -1854,8 +1856,8 @@ - _bundle_use.reset(); - - memcpy(_bundle_use_elements, -- Pipeline_Use::elaborated_elements, -- sizeof(Pipeline_Use::elaborated_elements)); -+ (void *)eePointer, -+ 11*sizeof(Pipeline_Use_Element)); - } - - //------------------------------ScheduleAndBundle------------------------------ -- cgit v1.2.3 From 2fab54f3976a1c4099a30b21e06e725b06914a21 Mon Sep 17 00:00:00 2001 From: Simon South Date: Mon, 15 Jun 2020 11:22:53 -0400 Subject: gnu: icedtea-6: Fix build on aarch64-linux. * gnu/packages/java.scm (icedtea-6)[source]: Add patch. * gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Efraim Flashner --- gnu/local.mk | 1 + gnu/packages/java.scm | 2 + .../icedtea-6-extend-hotspot-aarch64-support.patch | 1831 ++++++++++++++++++++ 3 files changed, 1834 insertions(+) create mode 100644 gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 4402c9bc7c..ff6d64bd66 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1145,6 +1145,7 @@ dist_patch_DATA = \ %D%/packages/patches/icecat-use-older-reveal-hidden-html.patch \ %D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch \ %D%/packages/patches/icecat-use-system-media-libs.patch \ + %D%/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch \ %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \ %D%/packages/patches/icu4c-CVE-2020-10531.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8432fa3452..8c1fabb6e2 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -827,6 +827,8 @@ machine."))) (sha256 (base32 "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg")) + (patches (search-patches + "icedtea-6-extend-hotspot-aarch64-support.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch b/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch new file mode 100644 index 0000000000..9dc112a344 --- /dev/null +++ b/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch @@ -0,0 +1,1831 @@ +From d51cb8c0f7966ac0b870e90e421cc8a796d98abf Mon Sep 17 00:00:00 2001 +From: Simon South +Date: Tue, 9 Jun 2020 13:48:42 -0400 +Subject: [PATCH] Extend AArch64 support + +This adds to IcedTea 6 a patch that extends the support for AArch64 in +its version of HotSpot, allowing the portable Zero virtual machine to +be built for that platform. + +The patch added is a backport of the one prepared for JDK 9 by the +OpenJDK AArch64 Porting Project, available (as of 11 June 2020) for +download from https://openjdk.java.net/jeps/237. +--- + Makefile.am | 3 +- + Makefile.in | 12 +- + .../hs23/aarch64-extended-support.patch | 1766 +++++++++++++++++ + 3 files changed, 1775 insertions(+), 6 deletions(-) + create mode 100644 patches/hotspot/hs23/aarch64-extended-support.patch + +diff --git a/Makefile.am b/Makefile.am +index 97dac85..f5c917b 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -621,7 +621,8 @@ ICEDTEA_PATCHES = \ + patches/openjdk/6260348-pr3068.patch \ + patches/openjdk/6961123-pr2975.patch \ + patches/pr2800-missing_resources.patch \ +- patches/pr3213-conditional_arm32jit.patch ++ patches/pr3213-conditional_arm32jit.patch \ ++ patches/hotspot/hs23/aarch64-extended-support.patch + + if WITH_RHINO + ICEDTEA_PATCHES += \ +diff --git a/Makefile.in b/Makefile.in +index aced7c2..e3545ee 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -1049,11 +1049,13 @@ ICEDTEA_PATCHES = $(DROP_PATCHES) $(SECURITY_PATCHES) \ + patches/openjdk/6260348-pr3068.patch \ + patches/openjdk/6961123-pr2975.patch \ + patches/pr2800-missing_resources.patch \ +- patches/pr3213-conditional_arm32jit.patch $(am__append_21) \ +- $(am__append_22) $(am__append_23) $(am__append_24) \ +- $(am__append_25) $(am__append_26) $(am__append_27) \ +- $(am__append_28) $(am__append_29) $(am__append_30) \ +- $(am__append_31) $(am__append_32) $(DISTRIBUTION_PATCHES) ++ patches/pr3213-conditional_arm32jit.patch \ ++ patches/hotspot/hs23/aarch64-extended-support.patch \ ++ $(am__append_21) $(am__append_22) $(am__append_23) \ ++ $(am__append_24) $(am__append_25) $(am__append_26) \ ++ $(am__append_27) $(am__append_28) $(am__append_29) \ ++ $(am__append_30) $(am__append_31) $(am__append_32) \ ++ $(DISTRIBUTION_PATCHES) + @ENABLE_NSS_FALSE@NSS_PATCHES = patches/nss-not-enabled-config.patch + @ENABLE_NSS_TRUE@NSS_PATCHES = patches/nss-config.patch + +diff --git a/patches/hotspot/hs23/aarch64-extended-support.patch b/patches/hotspot/hs23/aarch64-extended-support.patch +new file mode 100644 +index 0000000..7817f4d +--- /dev/null ++++ b/patches/hotspot/hs23/aarch64-extended-support.patch +@@ -0,0 +1,1766 @@ ++diff --git openjdk.orig/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c ++index 5771fdd..b23cc17 100644 ++--- openjdk.orig/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c +++++ openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c ++@@ -304,6 +304,9 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo ++ #ifdef amd64 ++ #define NPRGREG sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_NPRGREG ++ #endif +++#ifdef aarch64 +++#define NPRGREG 32 +++#endif ++ #if defined(sparc) || defined(sparcv9) ++ #define NPRGREG sun_jvm_hotspot_debugger_sparc_SPARCThreadContext_NPRGREG ++ #endif ++@@ -406,6 +409,12 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo ++ regs[REG_INDEX(R_O7)] = gregs.u_regs[14]; ++ #endif /* sparc */ ++ +++#if defined(aarch64) +++ +++#define REG_INDEX(reg) sun_jvm_hotspot_debugger_aarch64_AARCH64ThreadContext_##reg +++ +++#endif /* aarch64 */ +++ ++ ++ (*env)->ReleaseLongArrayElements(env, array, regs, JNI_COMMIT); ++ return array; ++diff --git openjdk.orig/hotspot/agent/src/os/linux/libproc.h openjdk/hotspot/agent/src/os/linux/libproc.h ++index e4d77f7..c02b841 100644 ++--- openjdk.orig/hotspot/agent/src/os/linux/libproc.h +++++ openjdk/hotspot/agent/src/os/linux/libproc.h ++@@ -54,6 +54,10 @@ struct pt_regs { ++ ++ #endif //sparc or sparcv9 ++ +++#if defined(aarch64) +++#include "asm/ptrace.h" +++#endif +++ ++ /************************************************************************************ ++ ++ 0. This is very minimal subset of Solaris libproc just enough for current application. ++@@ -97,6 +101,9 @@ unsigned long regs[IA64_REG_COUNT]; /* integer and fp regs */ ++ #if defined(sparc) || defined(sparcv9) ++ #define user_regs_struct pt_regs ++ #endif +++#if defined(aarch64) +++#define user_regs_struct user_pt_regs +++#endif ++ ++ // This C bool type must be int for compatibility with Linux calls and ++ // it would be a mistake to equivalence it to C++ bool on many platforms ++diff --git openjdk.orig/hotspot/make/defs.make openjdk/hotspot/make/defs.make ++index 44f21f8..4e8d00b 100644 ++--- openjdk.orig/hotspot/make/defs.make +++++ openjdk/hotspot/make/defs.make ++@@ -232,7 +232,7 @@ ifneq ($(OSNAME),windows) ++ ++ # Use uname output for SRCARCH, but deal with platform differences. If ARCH ++ # is not explicitly listed below, it is treated as x86. ++- SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc zero,$(ARCH))) +++ SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc aarch64 zero,$(ARCH))) ++ ARCH/ = x86 ++ ARCH/sparc = sparc ++ ARCH/sparc64= sparc ++@@ -242,6 +242,7 @@ ifneq ($(OSNAME),windows) ++ ARCH/ppc64 = ppc ++ ARCH/ppc = ppc ++ ARCH/arm = arm +++ ARCH/aarch64= aarch64 ++ ARCH/zero = zero ++ ++ # BUILDARCH is usually the same as SRCARCH, except for sparcv9 ++@@ -267,11 +268,12 @@ ifneq ($(OSNAME),windows) ++ LIBARCH/sparcv9 = sparcv9 ++ LIBARCH/ia64 = ia64 ++ LIBARCH/ppc64 = ppc +++ LIBARCH/aarch64 = aarch64 ++ LIBARCH/ppc = ppc ++ LIBARCH/arm = arm ++ LIBARCH/zero = $(ZERO_LIBARCH) ++ ++- LP64_ARCH = sparcv9 amd64 ia64 zero +++ LP64_ARCH = sparcv9 amd64 ia64 aarch64 zero ++ endif ++ ++ # Required make macro settings for all platforms ++diff --git openjdk.orig/hotspot/make/linux/makefiles/buildtree.make openjdk/hotspot/make/linux/makefiles/buildtree.make ++index 7c3d4f9..3bc7e8a 100644 ++--- openjdk.orig/hotspot/make/linux/makefiles/buildtree.make +++++ openjdk/hotspot/make/linux/makefiles/buildtree.make ++@@ -385,6 +385,7 @@ DATA_MODE/sparc = 32 ++ DATA_MODE/sparcv9 = 64 ++ DATA_MODE/amd64 = 64 ++ DATA_MODE/ia64 = 64 +++DATA_MODE/aarch64 = 64 ++ DATA_MODE/zero = $(ARCH_DATA_MODEL) ++ ++ JAVA_FLAG/32 = -d32 ++diff --git openjdk.orig/hotspot/make/linux/makefiles/defs.make openjdk/hotspot/make/linux/makefiles/defs.make ++index 7bb3149..39ffda4 100644 ++--- openjdk.orig/hotspot/make/linux/makefiles/defs.make +++++ openjdk/hotspot/make/linux/makefiles/defs.make ++@@ -118,6 +118,15 @@ ifeq ($(ARCH), ppc) ++ HS_ARCH = ppc ++ endif ++ +++# AARCH64 +++ifeq ($(ARCH), aarch64) +++ ARCH_DATA_MODEL = 64 +++ MAKE_ARGS += LP64=1 +++ PLATFORM = linux-aarch64 +++ VM_PLATFORM = linux_aarch64 +++ HS_ARCH = aarch64 +++endif +++ ++ # determine if HotSpot is being built in JDK6 or earlier version ++ JDK6_OR_EARLIER=0 ++ ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1" ++diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make ++index 897e3a6..44f1673 100644 ++--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make +++++ openjdk/hotspot/make/linux/makefiles/gcc.make ++@@ -104,6 +104,7 @@ endif ++ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH)) ++ ARCHFLAG/i486 = -m32 -march=i586 ++ ARCHFLAG/amd64 = -m64 +++ARCHFLAG/aarch64 = ++ ARCHFLAG/ia64 = ++ ARCHFLAG/sparc = -m32 -mcpu=v9 ++ ARCHFLAG/sparcv9 = -m64 -mcpu=v9 ++diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp ++index c1b0e5c..9f7cda0 100644 ++--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp +++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp ++@@ -296,6 +296,8 @@ static char cpu_arch[] = "sparcv9"; ++ # else ++ static char cpu_arch[] = "sparc"; ++ # endif +++#elif defined(AARCH64) +++static char cpu_arch[] = "aarch64"; ++ #else ++ #error Add appropriate cpu_arch setting ++ #endif ++@@ -1442,7 +1444,7 @@ void os::Linux::clock_init() { ++ #ifndef SYS_clock_getres ++ ++ #if defined(IA32) || defined(AMD64) ++-#define SYS_clock_getres IA32_ONLY(266) AMD64_ONLY(229) +++#define SYS_clock_getres IA32_ONLY(266) AMD64_ONLY(229) AARCH64_ONLY(114) ++ #define sys_clock_getres(x,y) ::syscall(SYS_clock_getres, x, y) ++ #else ++ #warning "SYS_clock_getres not defined for this platform, disabling fast_thread_cpu_time" ++@@ -1930,7 +1932,7 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen) ++ static Elf32_Half running_arch_code=EM_AARCH64; ++ #else ++ #error Method os::dll_load requires that one of following is defined:\ ++- IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH +++ IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH, AARCH64 ++ #endif ++ ++ // Identify compatability class for VM's architecture and library's architecture ++@@ -3056,7 +3058,7 @@ void os::large_page_init() { ++ ++ #ifndef ZERO ++ _large_page_size = IA32_ONLY(4 * M) AMD64_ONLY(2 * M) IA64_ONLY(256 * M) SPARC_ONLY(4 * M) ++- ARM_ONLY(2 * M) PPC_ONLY(4 * M); +++ ARM_ONLY(2 * M) PPC_ONLY(4 * M) AARCH64_ONLY(2 * M); ++ #endif // ZERO ++ ++ FILE *fp = fopen("/proc/meminfo", "r"); ++@@ -5378,11 +5380,11 @@ void Parker::unpark() { ++ extern char** environ; ++ ++ #ifndef __NR_fork ++-#define __NR_fork IA32_ONLY(2) IA64_ONLY(not defined) AMD64_ONLY(57) +++#define __NR_fork IA32_ONLY(2) IA64_ONLY(not defined) AMD64_ONLY(57) AARCH64_ONLY(1079) ++ #endif ++ ++ #ifndef __NR_execve ++-#define __NR_execve IA32_ONLY(11) IA64_ONLY(1033) AMD64_ONLY(59) +++#define __NR_execve IA32_ONLY(11) IA64_ONLY(1033) AMD64_ONLY(59) AARCH64_ONLY(221) ++ #endif ++ ++ // Run the specified command in a separate process. Return its exit value, ++diff --git openjdk.orig/hotspot/src/share/vm/adlc/main.cpp openjdk/hotspot/src/share/vm/adlc/main.cpp ++index 47e207a..b93504e 100644 ++--- openjdk.orig/hotspot/src/share/vm/adlc/main.cpp +++++ openjdk/hotspot/src/share/vm/adlc/main.cpp ++@@ -244,6 +244,11 @@ int main(int argc, char *argv[]) ++ AD.addInclude(AD._CPP_file, "assembler_arm.inline.hpp"); ++ AD.addInclude(AD._CPP_file, "nativeInst_arm.hpp"); ++ AD.addInclude(AD._CPP_file, "vmreg_arm.inline.hpp"); +++#endif +++#ifdef TARGET_ARCH_aarch64 +++ AD.addInclude(AD._CPP_file, "assembler_aarch64.inline.hpp"); +++ AD.addInclude(AD._CPP_file, "nativeInst_aarch64.hpp"); +++ AD.addInclude(AD._CPP_file, "vmreg_aarch64.inline.hpp"); ++ #endif ++ AD.addInclude(AD._HPP_file, "memory/allocation.hpp"); ++ AD.addInclude(AD._HPP_file, "opto/machnode.hpp"); ++diff --git openjdk.orig/hotspot/src/share/vm/asm/assembler.cpp openjdk/hotspot/src/share/vm/asm/assembler.cpp ++index 2bcdcbc..57787ac 100644 ++--- openjdk.orig/hotspot/src/share/vm/asm/assembler.cpp +++++ openjdk/hotspot/src/share/vm/asm/assembler.cpp ++@@ -43,6 +43,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "assembler_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "assembler_aarch64.inline.hpp" +++#endif ++ ++ ++ // Implementation of AbstractAssembler ++diff --git openjdk.orig/hotspot/src/share/vm/asm/assembler.hpp openjdk/hotspot/src/share/vm/asm/assembler.hpp ++index c25aa3f..4f77825 100644 ++--- openjdk.orig/hotspot/src/share/vm/asm/assembler.hpp +++++ openjdk/hotspot/src/share/vm/asm/assembler.hpp ++@@ -51,6 +51,10 @@ ++ # include "register_ppc.hpp" ++ # include "vm_version_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "register_aarch64.hpp" +++# include "vm_version_aarch64.hpp" +++#endif ++ ++ // This file contains platform-independent assembler declarations. ++ ++@@ -459,6 +463,9 @@ class AbstractAssembler : public ResourceObj { ++ #ifdef TARGET_ARCH_ppc ++ # include "assembler_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "assembler_aarch64.hpp" +++#endif ++ ++ ++ #endif // SHARE_VM_ASM_ASSEMBLER_HPP ++diff --git openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.hpp openjdk/hotspot/src/share/vm/asm/codeBuffer.hpp ++index 685297a..002faef 100644 ++--- openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.hpp +++++ openjdk/hotspot/src/share/vm/asm/codeBuffer.hpp ++@@ -573,6 +573,9 @@ class CodeBuffer: public StackObj { ++ #ifdef TARGET_ARCH_ppc ++ # include "codeBuffer_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "codeBuffer_aarch64.hpp" +++#endif ++ ++ }; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp openjdk/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp ++index c95a23c..2ec31e5 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp +++++ openjdk/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp ++@@ -877,6 +877,13 @@ static bool match(UnsafeRawOp* x, ++ return false; ++ } ++ +++// AARCH64 cannot handle shifts which are not either 0, or log2 of the type size +++#ifdef AARCH64 +++ if (*log2_scale != 0 && +++ (1 << *log2_scale) != type2aelembytes(x->basic_type(), true)) +++ return false; +++#endif +++ ++ // If the value is pinned then it will be always be computed so ++ // there's no profit to reshaping the expression. ++ return !root->is_pinned(); ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Defs.hpp openjdk/hotspot/src/share/vm/c1/c1_Defs.hpp ++index bebb3b0..ddaceb7 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Defs.hpp +++++ openjdk/hotspot/src/share/vm/c1/c1_Defs.hpp ++@@ -41,6 +41,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "register_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "register_aarch64.hpp" +++#endif ++ ++ // set frame size and return address offset to these values in blobs ++ // (if the compiled frame uses ebp as link pointer on IA; otherwise, ++@@ -62,6 +65,9 @@ enum { ++ #ifdef TARGET_ARCH_ppc ++ # include "c1_Defs_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "c1_Defs_aarch64.hpp" +++#endif ++ ++ ++ // native word offsets from memory address ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp openjdk/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp ++index a1e4c38..491b064 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp +++++ openjdk/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp ++@@ -44,6 +44,9 @@ class FpuStackSim; ++ #ifdef TARGET_ARCH_ppc ++ # include "c1_FpuStackSim_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "c1_FpuStackSim_aarch64.hpp" +++#endif ++ ++ ++ #endif // SHARE_VM_C1_C1_FPUSTACKSIM_HPP ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.cpp openjdk/hotspot/src/share/vm/c1/c1_FrameMap.cpp ++index ea50b27..6a3dc63 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.cpp +++++ openjdk/hotspot/src/share/vm/c1/c1_FrameMap.cpp ++@@ -41,6 +41,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "vmreg_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "vmreg_aarch64.inline.hpp" +++#endif ++ ++ ++ ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.hpp openjdk/hotspot/src/share/vm/c1/c1_FrameMap.hpp ++index 288fc5c..e9a0250 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.hpp +++++ openjdk/hotspot/src/share/vm/c1/c1_FrameMap.hpp ++@@ -93,6 +93,9 @@ class FrameMap : public CompilationResourceObj { ++ #endif ++ #ifdef TARGET_ARCH_ppc ++ # include "c1_FrameMap_ppc.hpp" +++#endif +++#ifdef TARGET_ARCH_aarch64 +++# include "c1_FrameMap_aarch64.hpp" ++ #endif ++ ++ ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.cpp openjdk/hotspot/src/share/vm/c1/c1_LIR.cpp ++index 776a6a3..6e1a362 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.cpp +++++ openjdk/hotspot/src/share/vm/c1/c1_LIR.cpp ++@@ -67,7 +67,7 @@ FloatRegister LIR_OprDesc::as_double_reg() const { ++ ++ #endif ++ ++-#ifdef ARM +++#if defined(ARM) || defined (TARGET_ARCH_aarch64) ++ ++ FloatRegister LIR_OprDesc::as_float_reg() const { ++ return as_FloatRegister(fpu_regnr()); ++@@ -147,7 +147,11 @@ void LIR_Address::verify() const { ++ #endif ++ #ifdef _LP64 ++ assert(base()->is_cpu_register(), "wrong base operand"); +++#ifndef TARGET_ARCH_aarch64 ++ assert(index()->is_illegal() || index()->is_double_cpu(), "wrong index operand"); +++#else +++ assert(index()->is_illegal() || index()->is_double_cpu() || index()->is_single_cpu(), "wrong index operand"); +++#endif ++ assert(base()->type() == T_OBJECT || base()->type() == T_LONG, ++ "wrong type for addresses"); ++ #else ++@@ -545,7 +549,7 @@ void LIR_OpVisitState::visit(LIR_Op* op) { ++ assert(opConvert->_info == NULL, "must be"); ++ if (opConvert->_opr->is_valid()) do_input(opConvert->_opr); ++ if (opConvert->_result->is_valid()) do_output(opConvert->_result); ++-#ifdef PPC +++#if defined(PPC) || defined(TARGET_ARCH_aarch64) ++ if (opConvert->_tmp1->is_valid()) do_temp(opConvert->_tmp1); ++ if (opConvert->_tmp2->is_valid()) do_temp(opConvert->_tmp2); ++ #endif ++@@ -1468,6 +1472,11 @@ void LIR_OprDesc::print(outputStream* out) const { ++ out->print("fpu%d", fpu_regnr()); ++ } else if (is_double_fpu()) { ++ out->print("fpu%d", fpu_regnrLo()); +++#elif defined(AARCH64) +++ } else if (is_single_fpu()) { +++ out->print("fpu%d", fpu_regnr()); +++ } else if (is_double_fpu()) { +++ out->print("fpu%d", fpu_regnrLo()); ++ #elif defined(ARM) ++ } else if (is_single_fpu()) { ++ out->print("s%d", fpu_regnr()); ++@@ -1836,7 +1845,7 @@ void LIR_OpConvert::print_instr(outputStream* out) const { ++ print_bytecode(out, bytecode()); ++ in_opr()->print(out); out->print(" "); ++ result_opr()->print(out); out->print(" "); ++-#ifdef PPC +++#if defined(PPC) || defined(TARGET_ARCH_aarch64) ++ if(tmp1()->is_valid()) { ++ tmp1()->print(out); out->print(" "); ++ tmp2()->print(out); out->print(" "); ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.hpp openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp ++index f8589c3..eb3383f 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.hpp +++++ openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp ++@@ -437,8 +437,8 @@ class LIR_OprDesc: public CompilationResourceObj { ++ XMMRegister as_xmm_double_reg() const; ++ // for compatibility with RInfo ++ int fpu () const { return lo_reg_half(); } ++-#endif // X86 ++-#if defined(SPARC) || defined(ARM) || defined(PPC) +++#endif +++#if defined(SPARC) || defined(ARM) || defined(PPC) || defined(AARCH64) ++ FloatRegister as_float_reg () const; ++ FloatRegister as_double_reg () const; ++ #endif ++@@ -526,7 +526,7 @@ class LIR_Address: public LIR_OprPtr { ++ , _type(type) ++ , _disp(0) { verify(); } ++ ++-#if defined(X86) || defined(ARM) +++#if defined(X86) || defined(ARM) || defined(AARCH64) ++ LIR_Address(LIR_Opr base, LIR_Opr index, Scale scale, intx disp, BasicType type): ++ _base(base) ++ , _index(index) ++@@ -601,7 +601,7 @@ class LIR_OprFact: public AllStatic { ++ LIR_OprDesc::fpu_register | ++ LIR_OprDesc::double_size); } ++ #endif ++-#ifdef X86 +++#if defined(X86) || defined(AARCH64) ++ static LIR_Opr double_fpu(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | ++ (reg << LIR_OprDesc::reg2_shift) | ++ LIR_OprDesc::double_type | ++@@ -1398,7 +1398,7 @@ class LIR_OpConvert: public LIR_Op1 { ++ private: ++ Bytecodes::Code _bytecode; ++ ConversionStub* _stub; ++-#ifdef PPC +++#if defined(PPC) || defined(TARGET_ARCH_aarch64) ++ LIR_Opr _tmp1; ++ LIR_Opr _tmp2; ++ #endif ++@@ -1413,7 +1413,7 @@ class LIR_OpConvert: public LIR_Op1 { ++ #endif ++ , _bytecode(code) {} ++ ++-#ifdef PPC +++#if defined(PPC) || defined(TARGET_ARCH_aarch64) ++ LIR_OpConvert(Bytecodes::Code code, LIR_Opr opr, LIR_Opr result, ConversionStub* stub ++ ,LIR_Opr tmp1, LIR_Opr tmp2) ++ : LIR_Op1(lir_convert, opr, result) ++@@ -1425,7 +1425,7 @@ class LIR_OpConvert: public LIR_Op1 { ++ ++ Bytecodes::Code bytecode() const { return _bytecode; } ++ ConversionStub* stub() const { return _stub; } ++-#ifdef PPC +++#if defined(PPC) || defined(TARGET_ARCH_aarch64) ++ LIR_Opr tmp1() const { return _tmp1; } ++ LIR_Opr tmp2() const { return _tmp2; } ++ #endif ++@@ -1973,7 +1973,14 @@ class LIR_List: public CompilationResourceObj { ++ #ifdef PPC ++ void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_OpConvert(code, left, dst, NULL, tmp1, tmp2)); } ++ #endif +++#if defined (TARGET_ARCH_aarch64) +++ void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, +++ ConversionStub* stub = NULL, LIR_Opr tmp1 = LIR_OprDesc::illegalOpr()) { +++ append(new LIR_OpConvert(code, left, dst, stub, tmp1, LIR_OprDesc::illegalOpr())); +++ } +++#else ++ void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, ConversionStub* stub = NULL/*, bool is_32bit = false*/) { append(new LIR_OpConvert(code, left, dst, stub)); } +++#endif ++ ++ void logical_and (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_and, left, right, dst)); } ++ void logical_or (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_or, left, right, dst)); } ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp ++index 528f21e..4d83fca 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp +++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp ++@@ -50,6 +50,10 @@ ++ # include "nativeInst_ppc.hpp" ++ # include "vmreg_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "nativeInst_aarch64.hpp" +++# include "vmreg_aarch64.inline.hpp" +++#endif ++ ++ ++ void LIR_Assembler::patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info) { ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp ++index 58adf59..f4a49b3 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp +++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp ++@@ -261,6 +261,9 @@ class LIR_Assembler: public CompilationResourceObj { ++ #ifdef TARGET_ARCH_ppc ++ # include "c1_LIRAssembler_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "c1_LIRAssembler_aarch64.hpp" +++#endif ++ ++ }; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.cpp openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp ++index aaae71d..93f9f5f 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.cpp +++++ openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp ++@@ -47,6 +47,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "vmreg_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "vmreg_aarch64.inline.hpp" +++#endif ++ ++ ++ #ifndef PRODUCT ++@@ -2190,7 +2193,7 @@ LIR_Opr LinearScan::color_lir_opr(LIR_Opr opr, int op_id, LIR_OpVisitState::OprM ++ ++ LIR_Opr res = operand_for_interval(interval); ++ ++-#ifdef X86 +++#if defined(X86) || defined(AARCH64) ++ // new semantic for is_last_use: not only set on definite end of interval, ++ // but also before hole ++ // This may still miss some cases (e.g. for dead values), but it is not necessary that the ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.hpp openjdk/hotspot/src/share/vm/c1/c1_LinearScan.hpp ++index 0c06f1b..a152328 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.hpp +++++ openjdk/hotspot/src/share/vm/c1/c1_LinearScan.hpp ++@@ -985,6 +985,9 @@ class LinearScanTimers : public StackObj { ++ #ifdef TARGET_ARCH_ppc ++ # include "c1_LinearScan_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "c1_LinearScan_aarch64.hpp" +++#endif ++ ++ ++ #endif // SHARE_VM_C1_C1_LINEARSCAN_HPP ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp openjdk/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp ++index 55d9803..eda2174 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp +++++ openjdk/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp ++@@ -41,6 +41,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "assembler_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "assembler_aarch64.inline.hpp" +++#endif ++ ++ class CodeEmitInfo; ++ ++@@ -73,6 +76,9 @@ class C1_MacroAssembler: public MacroAssembler { ++ #ifdef TARGET_ARCH_ppc ++ # include "c1_MacroAssembler_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "c1_MacroAssembler_aarch64.hpp" +++#endif ++ ++ }; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.cpp openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp ++index 765dec4..f0b3aae 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.cpp +++++ openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp ++@@ -1103,6 +1103,7 @@ JRT_END ++ // completes we can check for deoptimization. This simplifies the ++ // assembly code in the cpu directories. ++ // +++#ifndef TARGET_ARCH_aarch64 ++ int Runtime1::move_klass_patching(JavaThread* thread) { ++ // ++ // NOTE: we are still in Java ++@@ -1150,6 +1151,7 @@ int Runtime1::access_field_patching(JavaThread* thread) { ++ ++ return caller_is_deopted(); ++ JRT_END +++#endif ++ ++ ++ JRT_LEAF(void, Runtime1::trace_block_entry(jint block_id)) ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.hpp openjdk/hotspot/src/share/vm/c1/c1_Runtime1.hpp ++index 2032564..19261be 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.hpp +++++ openjdk/hotspot/src/share/vm/c1/c1_Runtime1.hpp ++@@ -159,6 +159,9 @@ class Runtime1: public AllStatic { ++ static int move_klass_patching(JavaThread* thread); ++ ++ static void patch_code(JavaThread* thread, StubID stub_id); +++#ifdef TARGET_ARCH_aarch64 +++ static void patch_code_aarch64(JavaThread* thread, StubID stub_id); +++#endif ++ ++ public: ++ // initialization ++diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_globals.hpp openjdk/hotspot/src/share/vm/c1/c1_globals.hpp ++index 15f3cc1..4143a87 100644 ++--- openjdk.orig/hotspot/src/share/vm/c1/c1_globals.hpp +++++ openjdk/hotspot/src/share/vm/c1/c1_globals.hpp ++@@ -38,6 +38,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "c1_globals_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "c1_globals_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_FAMILY_linux ++ # include "c1_globals_linux.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/classfile/classFileStream.hpp openjdk/hotspot/src/share/vm/classfile/classFileStream.hpp ++index cf6f0e5..b128b3a 100644 ++--- openjdk.orig/hotspot/src/share/vm/classfile/classFileStream.hpp +++++ openjdk/hotspot/src/share/vm/classfile/classFileStream.hpp ++@@ -41,6 +41,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ ++ // Input stream for reading .class file ++ // ++diff --git openjdk.orig/hotspot/src/share/vm/classfile/stackMapTable.hpp openjdk/hotspot/src/share/vm/classfile/stackMapTable.hpp ++index f876029..ac415b6 100644 ++--- openjdk.orig/hotspot/src/share/vm/classfile/stackMapTable.hpp +++++ openjdk/hotspot/src/share/vm/classfile/stackMapTable.hpp ++@@ -46,6 +46,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ ++ class StackMapReader; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/classfile/verifier.cpp openjdk/hotspot/src/share/vm/classfile/verifier.cpp ++index c5c5e11..9c22a21 100644 ++--- openjdk.orig/hotspot/src/share/vm/classfile/verifier.cpp +++++ openjdk/hotspot/src/share/vm/classfile/verifier.cpp ++@@ -60,6 +60,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ ++ #define NOFAILOVER_MAJOR_VERSION 51 ++ ++diff --git openjdk.orig/hotspot/src/share/vm/code/codeBlob.cpp openjdk/hotspot/src/share/vm/code/codeBlob.cpp ++index 244c320..429e0be 100644 ++--- openjdk.orig/hotspot/src/share/vm/code/codeBlob.cpp +++++ openjdk/hotspot/src/share/vm/code/codeBlob.cpp ++@@ -54,6 +54,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "nativeInst_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "nativeInst_aarch64.hpp" +++#endif ++ #ifdef COMPILER1 ++ #include "c1/c1_Runtime1.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/code/compiledIC.hpp openjdk/hotspot/src/share/vm/code/compiledIC.hpp ++index fe1cfb3..c9f6a2e 100644 ++--- openjdk.orig/hotspot/src/share/vm/code/compiledIC.hpp +++++ openjdk/hotspot/src/share/vm/code/compiledIC.hpp ++@@ -44,6 +44,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "nativeInst_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "nativeInst_aarch64.hpp" +++#endif ++ ++ //----------------------------------------------------------------------------- ++ // The CompiledIC represents a compiled inline cache. ++diff --git openjdk.orig/hotspot/src/share/vm/code/icBuffer.cpp openjdk/hotspot/src/share/vm/code/icBuffer.cpp ++index ed70457..d022482 100644 ++--- openjdk.orig/hotspot/src/share/vm/code/icBuffer.cpp +++++ openjdk/hotspot/src/share/vm/code/icBuffer.cpp ++@@ -52,6 +52,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "assembler_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "assembler_aarch64.inline.hpp" +++#endif ++ ++ ++ DEF_STUB_INTERFACE(ICStub); ++diff --git openjdk.orig/hotspot/src/share/vm/code/relocInfo.cpp openjdk/hotspot/src/share/vm/code/relocInfo.cpp ++index 4fd82df..78310e6 100644 ++--- openjdk.orig/hotspot/src/share/vm/code/relocInfo.cpp +++++ openjdk/hotspot/src/share/vm/code/relocInfo.cpp ++@@ -49,6 +49,10 @@ ++ # include "assembler_ppc.inline.hpp" ++ # include "nativeInst_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "assembler_aarch64.inline.hpp" +++# include "nativeInst_aarch64.hpp" +++#endif ++ ++ ++ const RelocationHolder RelocationHolder::none; // its type is relocInfo::none ++diff --git openjdk.orig/hotspot/src/share/vm/code/relocInfo.hpp openjdk/hotspot/src/share/vm/code/relocInfo.hpp ++index 1d14b44..3823889 100644 ++--- openjdk.orig/hotspot/src/share/vm/code/relocInfo.hpp +++++ openjdk/hotspot/src/share/vm/code/relocInfo.hpp ++@@ -435,6 +435,9 @@ class relocInfo VALUE_OBJ_CLASS_SPEC { ++ #endif ++ #ifdef TARGET_ARCH_ppc ++ # include "relocInfo_ppc.hpp" +++#endif +++#ifdef TARGET_ARCH_aarch64 +++# include "relocInfo_aarch64.hpp" ++ #endif ++ ++ ++diff --git openjdk.orig/hotspot/src/share/vm/code/vmreg.hpp openjdk/hotspot/src/share/vm/code/vmreg.hpp ++index d57e6f8..1c18e47 100644 ++--- openjdk.orig/hotspot/src/share/vm/code/vmreg.hpp +++++ openjdk/hotspot/src/share/vm/code/vmreg.hpp ++@@ -42,6 +42,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "register_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "register_aarch64.hpp" +++#endif ++ #ifdef COMPILER2 ++ #include "opto/adlcVMDeps.hpp" ++ #include "utilities/ostream.hpp" ++@@ -63,6 +66,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/adGlobals_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/adGlobals_aarch64.hpp" +++#endif ++ #endif ++ ++ //------------------------------VMReg------------------------------------------ ++@@ -182,6 +188,9 @@ public: ++ #ifdef TARGET_ARCH_ppc ++ # include "vmreg_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "vmreg_aarch64.hpp" +++#endif ++ ++ ++ }; ++diff --git openjdk.orig/hotspot/src/share/vm/compiler/disassembler.cpp openjdk/hotspot/src/share/vm/compiler/disassembler.cpp ++index 9603e86..3a67259 100644 ++--- openjdk.orig/hotspot/src/share/vm/compiler/disassembler.cpp +++++ openjdk/hotspot/src/share/vm/compiler/disassembler.cpp ++@@ -47,6 +47,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "depChecker_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "depChecker_aarch64.hpp" +++#endif ++ #ifdef SHARK ++ #include "shark/sharkEntry.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/compiler/disassembler.hpp openjdk/hotspot/src/share/vm/compiler/disassembler.hpp ++index a70b8cc..4c90c9a 100644 ++--- openjdk.orig/hotspot/src/share/vm/compiler/disassembler.hpp +++++ openjdk/hotspot/src/share/vm/compiler/disassembler.hpp ++@@ -78,6 +78,9 @@ class Disassembler { ++ #endif ++ #ifdef TARGET_ARCH_ppc ++ # include "disassembler_ppc.hpp" +++#endif +++#ifdef TARGET_ARCH_aarch64 +++# include "disassembler_aarch64.hpp" ++ #endif ++ ++ ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp ++index d23f37a..24ca30e 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp ++@@ -44,6 +44,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "interp_masm_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "interp_masm_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_FAMILY_linux ++ # include "thread_linux.inline.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecode.hpp openjdk/hotspot/src/share/vm/interpreter/bytecode.hpp ++index 107161a..205d0f7 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecode.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/bytecode.hpp ++@@ -43,6 +43,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ ++ class ciBytecodeStream; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp ++index e637414..308ad3b 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp ++@@ -47,6 +47,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ ++ #ifdef CC_INTERP ++ ++@@ -618,6 +621,9 @@ void print(); ++ #ifdef TARGET_ARCH_ppc ++ # include "bytecodeInterpreter_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytecodeInterpreter_aarch64.hpp" +++#endif ++ ++ ++ }; // BytecodeInterpreter ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp ++index 3715a52..0d6a8aa 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp ++@@ -58,6 +58,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytecodeInterpreter_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytecodeInterpreter_aarch64.inline.hpp" +++#endif ++ ++ #endif // CC_INTERP ++ ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeStream.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeStream.hpp ++index 6106eac..f3dee0a 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeStream.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeStream.hpp ++@@ -43,6 +43,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ ++ // A BytecodeStream is used for fast iteration over the bytecodes ++ // of a methodOop. ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodes.cpp openjdk/hotspot/src/share/vm/interpreter/bytecodes.cpp ++index 04f3f64..48ef30e 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodes.cpp +++++ openjdk/hotspot/src/share/vm/interpreter/bytecodes.cpp ++@@ -41,6 +41,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ ++ ++ #if defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER < 1600)) ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/cppInterpreter.hpp ++index e3a9f2e..8347473 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreter.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/cppInterpreter.hpp ++@@ -101,6 +101,9 @@ class CppInterpreter: public AbstractInterpreter { ++ #ifdef TARGET_ARCH_ppc ++ # include "cppInterpreter_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "cppInterpreter_aarch64.hpp" +++#endif ++ ++ ++ }; ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp ++index c27805e..272f6e8 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp ++@@ -59,6 +59,9 @@ class CppInterpreterGenerator: public AbstractInterpreterGenerator { ++ #ifdef TARGET_ARCH_ppc ++ # include "cppInterpreterGenerator_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "cppInterpreterGenerator_aarch64.hpp" +++#endif ++ ++ }; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreter.hpp openjdk/hotspot/src/share/vm/interpreter/interpreter.hpp ++index 0ab0be7..6a6822f 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreter.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/interpreter.hpp ++@@ -158,6 +158,9 @@ class Interpreter: public CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateI ++ #ifdef TARGET_ARCH_ppc ++ # include "interpreter_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "interpreter_aarch64.hpp" +++#endif ++ ++ }; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp ++index 7bc43ec..0434ca3 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp ++@@ -56,6 +56,9 @@ InterpreterGenerator(StubQueue* _code); ++ #ifdef TARGET_ARCH_ppc ++ # include "interpreterGenerator_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "interpreterGenerator_aarch64.hpp" +++#endif ++ ++ ++ }; ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp ++index e451c04..37700fb 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp +++++ openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp ++@@ -71,6 +71,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "vm_version_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "vm_version_aarch64.hpp" +++#endif ++ #ifdef COMPILER2 ++ #include "opto/runtime.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp ++index 93c1a9e..425400e 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp ++@@ -164,6 +164,9 @@ class InterpreterRuntime: AllStatic { ++ #endif ++ #ifdef TARGET_ARCH_ppc ++ # include "interpreterRT_ppc.hpp" +++#endif +++#ifdef TARGET_ARCH_aarch64 +++# include "interpreterRT_aarch64.hpp" ++ #endif ++ ++ ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/templateInterpreter.hpp ++index 25d74f7..f78a16e 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreter.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/templateInterpreter.hpp ++@@ -198,6 +198,9 @@ class TemplateInterpreter: public AbstractInterpreter { ++ #ifdef TARGET_ARCH_ppc ++ # include "templateInterpreter_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "templateInterpreter_aarch64.hpp" +++#endif ++ ++ ++ }; ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp ++index fb7bdc5..6007630 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp ++@@ -101,6 +101,9 @@ class TemplateInterpreterGenerator: public AbstractInterpreterGenerator { ++ #ifdef TARGET_ARCH_ppc ++ # include "templateInterpreterGenerator_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "templateInterpreterGenerator_aarch64.hpp" +++#endif ++ ++ ++ }; ++diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateTable.hpp openjdk/hotspot/src/share/vm/interpreter/templateTable.hpp ++index 5d2a7e8..c5e0f0a 100644 ++--- openjdk.orig/hotspot/src/share/vm/interpreter/templateTable.hpp +++++ openjdk/hotspot/src/share/vm/interpreter/templateTable.hpp ++@@ -43,6 +43,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "interp_masm_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "interp_masm_aarch64.hpp" +++#endif ++ ++ #ifndef CC_INTERP ++ // All the necessary definitions used for (bytecode) template generation. Instead of ++@@ -373,6 +376,9 @@ class TemplateTable: AllStatic { ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "templateTable_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "templateTable_aarch64.hpp" +++#endif ++ ++ }; ++ #endif /* !CC_INTERP */ ++diff --git openjdk.orig/hotspot/src/share/vm/oops/constantPoolOop.hpp openjdk/hotspot/src/share/vm/oops/constantPoolOop.hpp ++index c2f985d..3d0d0fc 100644 ++--- openjdk.orig/hotspot/src/share/vm/oops/constantPoolOop.hpp +++++ openjdk/hotspot/src/share/vm/oops/constantPoolOop.hpp ++@@ -45,6 +45,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ ++ // A constantPool is an array containing class constants as described in the ++ // class file. ++diff --git openjdk.orig/hotspot/src/share/vm/oops/oop.inline.hpp openjdk/hotspot/src/share/vm/oops/oop.inline.hpp ++index db14b2e..c8b326f 100644 ++--- openjdk.orig/hotspot/src/share/vm/oops/oop.inline.hpp +++++ openjdk/hotspot/src/share/vm/oops/oop.inline.hpp ++@@ -58,6 +58,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ ++ // Implementation of all inlined member functions defined in oop.hpp ++ // We need a separate file to avoid circular references ++diff --git openjdk.orig/hotspot/src/share/vm/opto/buildOopMap.cpp openjdk/hotspot/src/share/vm/opto/buildOopMap.cpp ++index fc73160..2c5ec41 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/buildOopMap.cpp +++++ openjdk/hotspot/src/share/vm/opto/buildOopMap.cpp ++@@ -47,6 +47,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "vmreg_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "vmreg_aarch64.inline.hpp" +++#endif ++ ++ // The functions in this file builds OopMaps after all scheduling is done. ++ // ++diff --git openjdk.orig/hotspot/src/share/vm/opto/c2_globals.hpp openjdk/hotspot/src/share/vm/opto/c2_globals.hpp ++index f73dcbd..462c875 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/c2_globals.hpp +++++ openjdk/hotspot/src/share/vm/opto/c2_globals.hpp ++@@ -35,6 +35,9 @@ ++ #ifdef TARGET_ARCH_arm ++ # include "c2_globals_arm.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "c2_globals_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_FAMILY_linux ++ # include "c2_globals_linux.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/opto/c2compiler.cpp openjdk/hotspot/src/share/vm/opto/c2compiler.cpp ++index 713e3f1..948e447 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/c2compiler.cpp +++++ openjdk/hotspot/src/share/vm/opto/c2compiler.cpp ++@@ -43,6 +43,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/ad_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/ad_aarch64.hpp" +++#endif ++ ++ ++ volatile int C2Compiler::_runtimes = uninitialized; ++diff --git openjdk.orig/hotspot/src/share/vm/opto/compile.cpp openjdk/hotspot/src/share/vm/opto/compile.cpp ++index a7ee07a..91dc290 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/compile.cpp +++++ openjdk/hotspot/src/share/vm/opto/compile.cpp ++@@ -80,6 +80,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/ad_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/ad_aarch64.hpp" +++#endif ++ ++ ++ // -------------------- Compile::mach_constant_base_node ----------------------- ++diff --git openjdk.orig/hotspot/src/share/vm/opto/gcm.cpp openjdk/hotspot/src/share/vm/opto/gcm.cpp ++index 8b8f311..4deb0b4 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/gcm.cpp +++++ openjdk/hotspot/src/share/vm/opto/gcm.cpp ++@@ -53,6 +53,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/ad_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/ad_aarch64.hpp" +++#endif ++ ++ // Portions of code courtesy of Clifford Click ++ ++diff --git openjdk.orig/hotspot/src/share/vm/opto/lcm.cpp openjdk/hotspot/src/share/vm/opto/lcm.cpp ++index aee6123..4b9aaed 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/lcm.cpp +++++ openjdk/hotspot/src/share/vm/opto/lcm.cpp ++@@ -48,6 +48,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/ad_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/ad_aarch64.hpp" +++#endif ++ ++ // Optimization - Graph Style ++ ++diff --git openjdk.orig/hotspot/src/share/vm/opto/locknode.hpp openjdk/hotspot/src/share/vm/opto/locknode.hpp ++index 91b99bc..665594f 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/locknode.hpp +++++ openjdk/hotspot/src/share/vm/opto/locknode.hpp ++@@ -46,6 +46,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/ad_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/ad_aarch64.hpp" +++#endif ++ ++ //------------------------------BoxLockNode------------------------------------ ++ class BoxLockNode : public Node { ++diff --git openjdk.orig/hotspot/src/share/vm/opto/matcher.cpp openjdk/hotspot/src/share/vm/opto/matcher.cpp ++index ca2d4e3..d0f55c5 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/matcher.cpp +++++ openjdk/hotspot/src/share/vm/opto/matcher.cpp ++@@ -55,6 +55,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/ad_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/ad_aarch64.hpp" +++#endif ++ ++ OptoReg::Name OptoReg::c_frame_pointer; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/opto/output.hpp openjdk/hotspot/src/share/vm/opto/output.hpp ++index 50b6e76..6a920b2 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/output.hpp +++++ openjdk/hotspot/src/share/vm/opto/output.hpp ++@@ -45,6 +45,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/ad_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/ad_aarch64.hpp" +++#endif ++ ++ class Arena; ++ class Bundle; ++diff --git openjdk.orig/hotspot/src/share/vm/opto/regmask.cpp openjdk/hotspot/src/share/vm/opto/regmask.cpp ++index ce220f0..20c6028 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/regmask.cpp +++++ openjdk/hotspot/src/share/vm/opto/regmask.cpp ++@@ -43,6 +43,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/ad_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/ad_aarch64.hpp" +++#endif ++ ++ #define RM_SIZE _RM_SIZE /* a constant private to the class RegMask */ ++ ++diff --git openjdk.orig/hotspot/src/share/vm/opto/regmask.hpp openjdk/hotspot/src/share/vm/opto/regmask.hpp ++index e50ff84..26c6854 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/regmask.hpp +++++ openjdk/hotspot/src/share/vm/opto/regmask.hpp ++@@ -46,6 +46,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/adGlobals_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/adGlobals_aarch64.hpp" +++#endif ++ ++ // Some fun naming (textual) substitutions: ++ // ++diff --git openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp openjdk/hotspot/src/share/vm/opto/runtime.cpp ++index d315f10..11a58b1 100644 ++--- openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp +++++ openjdk/hotspot/src/share/vm/opto/runtime.cpp ++@@ -86,6 +86,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/ad_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/ad_aarch64.hpp" +++#endif ++ ++ ++ // For debugging purposes: ++diff --git openjdk.orig/hotspot/src/share/vm/prims/jniCheck.cpp openjdk/hotspot/src/share/vm/prims/jniCheck.cpp ++index 3bf4ecd..2ad9014 100644 ++--- openjdk.orig/hotspot/src/share/vm/prims/jniCheck.cpp +++++ openjdk/hotspot/src/share/vm/prims/jniCheck.cpp ++@@ -51,6 +51,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "jniTypes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "jniTypes_aarch64.hpp" +++#endif ++ ++ ++ // Heap objects are allowed to be directly referenced only in VM code, ++diff --git openjdk.orig/hotspot/src/share/vm/prims/jni_md.h openjdk/hotspot/src/share/vm/prims/jni_md.h ++index 7fa5829..3bd4e31 100644 ++--- openjdk.orig/hotspot/src/share/vm/prims/jni_md.h +++++ openjdk/hotspot/src/share/vm/prims/jni_md.h ++@@ -39,6 +39,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "jni_ppc.h" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "jni_aarch64.h" +++#endif ++ ++ ++ /* ++diff --git openjdk.orig/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp openjdk/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp ++index 97dd154..fd1fa43 100644 ++--- openjdk.orig/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp +++++ openjdk/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp ++@@ -43,6 +43,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ // FIXME: add Deprecated, LVTT attributes ++ // FIXME: fix Synthetic attribute ++ // FIXME: per Serguei, add error return handling for constantPoolOopDesc::copy_cpool_bytes() ++diff --git openjdk.orig/hotspot/src/share/vm/prims/methodHandles.hpp openjdk/hotspot/src/share/vm/prims/methodHandles.hpp ++index 514ba6a..ea747d0 100644 ++--- openjdk.orig/hotspot/src/share/vm/prims/methodHandles.hpp +++++ openjdk/hotspot/src/share/vm/prims/methodHandles.hpp ++@@ -738,6 +738,9 @@ public: ++ #ifdef TARGET_ARCH_ppc ++ # include "methodHandles_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "methodHandles_aarch64.hpp" +++#endif ++ }; ++ ++ ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/atomic.cpp openjdk/hotspot/src/share/vm/runtime/atomic.cpp ++index 80780d7..5a34f15 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/atomic.cpp +++++ openjdk/hotspot/src/share/vm/runtime/atomic.cpp ++@@ -60,6 +60,9 @@ ++ #ifdef TARGET_OS_ARCH_linux_ppc ++ # include "atomic_linux_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_OS_ARCH_linux_aarch64 +++# include "atomic_linux_aarch64.inline.hpp" +++#endif ++ #ifdef TARGET_OS_ARCH_bsd_x86 ++ # include "atomic_bsd_x86.inline.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp ++index 4735588..4e7958a 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp +++++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp ++@@ -65,6 +65,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "vmreg_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "vmreg_aarch64.inline.hpp" +++#endif ++ #ifdef COMPILER2 ++ #ifdef TARGET_ARCH_MODEL_x86_32 ++ # include "adfiles/ad_x86_32.hpp" ++@@ -84,6 +87,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/ad_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/ad_aarch64.hpp" +++#endif ++ #endif ++ ++ bool DeoptimizationMarker::_is_active = false; ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/dtraceJSDT.hpp openjdk/hotspot/src/share/vm/runtime/dtraceJSDT.hpp ++index bff4310..1129cd6 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/dtraceJSDT.hpp +++++ openjdk/hotspot/src/share/vm/runtime/dtraceJSDT.hpp ++@@ -41,6 +41,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "nativeInst_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "nativeInst_aarch64.hpp" +++#endif ++ ++ class RegisteredProbes; ++ typedef jlong OpaqueProbes; ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.cpp openjdk/hotspot/src/share/vm/runtime/frame.cpp ++index 7ae9aa8..6654714 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/frame.cpp +++++ openjdk/hotspot/src/share/vm/runtime/frame.cpp ++@@ -59,6 +59,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "nativeInst_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "nativeInst_aarch64.hpp" +++#endif ++ ++ RegisterMap::RegisterMap(JavaThread *thread, bool update_map) { ++ _thread = thread; ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.hpp openjdk/hotspot/src/share/vm/runtime/frame.hpp ++index c55380e..c13caae 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/frame.hpp +++++ openjdk/hotspot/src/share/vm/runtime/frame.hpp ++@@ -50,6 +50,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/adGlobals_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/adGlobals_aarch64.hpp" +++#endif ++ #endif ++ #ifdef ZERO ++ #ifdef TARGET_ARCH_zero ++@@ -491,6 +494,9 @@ class frame VALUE_OBJ_CLASS_SPEC { ++ #ifdef TARGET_ARCH_ppc ++ # include "frame_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "frame_aarch64.hpp" +++#endif ++ ++ }; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.inline.hpp openjdk/hotspot/src/share/vm/runtime/frame.inline.hpp ++index b80b042..f6e1b0e 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/frame.inline.hpp +++++ openjdk/hotspot/src/share/vm/runtime/frame.inline.hpp ++@@ -46,6 +46,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "jniTypes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "jniTypes_aarch64.hpp" +++#endif ++ #ifdef ZERO ++ #ifdef TARGET_ARCH_zero ++ # include "entryFrame_zero.hpp" ++@@ -100,6 +103,9 @@ inline bool frame::is_first_frame() const { ++ #ifdef TARGET_ARCH_ppc ++ # include "frame_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "frame_aarch64.inline.hpp" +++#endif ++ ++ ++ #endif // SHARE_VM_RUNTIME_FRAME_INLINE_HPP ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp openjdk/hotspot/src/share/vm/runtime/globals.hpp ++index 10d74cd..4cc5dfb 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp +++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp ++@@ -52,6 +52,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "globals_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "globals_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_FAMILY_linux ++ # include "globals_linux.hpp" ++ #endif ++@@ -88,6 +91,9 @@ ++ #ifdef TARGET_OS_ARCH_linux_ppc ++ # include "globals_linux_ppc.hpp" ++ #endif +++#ifdef TARGET_OS_ARCH_linux_aarch64 +++# include "globals_linux_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_ARCH_bsd_x86 ++ # include "globals_bsd_x86.hpp" ++ #endif ++@@ -107,6 +113,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "c1_globals_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "c1_globals_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_FAMILY_linux ++ # include "c1_globals_linux.hpp" ++ #endif ++@@ -130,6 +139,9 @@ ++ #ifdef TARGET_ARCH_arm ++ # include "c2_globals_arm.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "c2_globals_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_FAMILY_linux ++ # include "c2_globals_linux.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/icache.hpp openjdk/hotspot/src/share/vm/runtime/icache.hpp ++index d460a0f..9a3b9c8 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/icache.hpp +++++ openjdk/hotspot/src/share/vm/runtime/icache.hpp ++@@ -83,6 +83,9 @@ class AbstractICache : AllStatic { ++ #ifdef TARGET_ARCH_ppc ++ # include "icache_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "icache_aarch64.hpp" +++#endif ++ ++ ++ ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/java.cpp openjdk/hotspot/src/share/vm/runtime/java.cpp ++index fc3b67a..46794b0 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/java.cpp +++++ openjdk/hotspot/src/share/vm/runtime/java.cpp ++@@ -78,6 +78,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "vm_version_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "vm_version_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_FAMILY_linux ++ # include "thread_linux.inline.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/javaCalls.hpp openjdk/hotspot/src/share/vm/runtime/javaCalls.hpp ++index d4f8595..bc2ca9b 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/javaCalls.hpp +++++ openjdk/hotspot/src/share/vm/runtime/javaCalls.hpp ++@@ -45,6 +45,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "jniTypes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "jniTypes_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_FAMILY_linux ++ # include "thread_linux.inline.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp openjdk/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp ++index 8374aa2..6be5f79 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp +++++ openjdk/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp ++@@ -47,6 +47,9 @@ ++ #ifdef TARGET_OS_ARCH_linux_arm ++ # include "orderAccess_linux_arm.inline.hpp" ++ #endif +++#ifdef TARGET_OS_ARCH_linux_aarch64 +++# include "orderAccess_linux_aarch64.inline.hpp" +++#endif ++ #ifdef TARGET_OS_ARCH_linux_ppc ++ # include "orderAccess_linux_ppc.inline.hpp" ++ #endif ++@@ -121,6 +124,9 @@ friend class JavaCallWrapper; ++ #ifdef TARGET_ARCH_ppc ++ # include "javaFrameAnchor_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "javaFrameAnchor_aarch64.hpp" +++#endif ++ ++ ++ public: ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.hpp openjdk/hotspot/src/share/vm/runtime/os.hpp ++index 5867deb..0f1fbb4 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/os.hpp +++++ openjdk/hotspot/src/share/vm/runtime/os.hpp ++@@ -719,6 +719,9 @@ class os: AllStatic { ++ #ifdef TARGET_OS_ARCH_linux_ppc ++ # include "os_linux_ppc.hpp" ++ #endif +++#ifdef TARGET_OS_ARCH_linux_aarch64 +++# include "os_linux_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_ARCH_bsd_x86 ++ # include "os_bsd_x86.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/registerMap.hpp openjdk/hotspot/src/share/vm/runtime/registerMap.hpp ++index 5dd677a..7bd425f 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/registerMap.hpp +++++ openjdk/hotspot/src/share/vm/runtime/registerMap.hpp ++@@ -42,6 +42,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "register_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "register_aarch64.hpp" +++#endif ++ ++ class JavaThread; ++ ++@@ -150,6 +153,9 @@ class RegisterMap : public StackObj { ++ #ifdef TARGET_ARCH_ppc ++ # include "registerMap_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "registerMap_aarch64.hpp" +++#endif ++ ++ }; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/relocator.hpp openjdk/hotspot/src/share/vm/runtime/relocator.hpp ++index c34866f..790bd80 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/relocator.hpp +++++ openjdk/hotspot/src/share/vm/runtime/relocator.hpp ++@@ -42,6 +42,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "bytes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "bytes_aarch64.hpp" +++#endif ++ ++ // This code has been converted from the 1.1E java virtual machine ++ // Thanks to the JavaTopics group for using the code ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/safepoint.cpp openjdk/hotspot/src/share/vm/runtime/safepoint.cpp ++index c29d257..a842bb3 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/safepoint.cpp +++++ openjdk/hotspot/src/share/vm/runtime/safepoint.cpp ++@@ -70,6 +70,10 @@ ++ # include "nativeInst_ppc.hpp" ++ # include "vmreg_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "nativeInst_aarch64.hpp" +++# include "vmreg_aarch64.inline.hpp" +++#endif ++ #ifdef TARGET_OS_FAMILY_linux ++ # include "thread_linux.inline.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp ++index c25dcfe..aa7caff 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++++ openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp ++@@ -76,6 +76,10 @@ ++ # include "nativeInst_ppc.hpp" ++ # include "vmreg_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "nativeInst_aarch64.hpp" +++# include "vmreg_aarch64.inline.hpp" +++#endif ++ #ifdef COMPILER1 ++ #include "c1/c1_Runtime1.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/stackValueCollection.cpp openjdk/hotspot/src/share/vm/runtime/stackValueCollection.cpp ++index 110f712..779f994 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/stackValueCollection.cpp +++++ openjdk/hotspot/src/share/vm/runtime/stackValueCollection.cpp ++@@ -39,6 +39,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "jniTypes_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "jniTypes_aarch64.hpp" +++#endif ++ ++ jint StackValueCollection::int_at(int slot) const { ++ intptr_t val = at(slot)->get_int(); ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/statSampler.cpp openjdk/hotspot/src/share/vm/runtime/statSampler.cpp ++index 0b24def..c82a214 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/statSampler.cpp +++++ openjdk/hotspot/src/share/vm/runtime/statSampler.cpp ++@@ -48,6 +48,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "vm_version_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "vm_version_aarch64.hpp" +++#endif ++ ++ // -------------------------------------------------------- ++ // StatSamplerTask ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp ++index b6068a5..4ef7e38 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp +++++ openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp ++@@ -42,6 +42,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "assembler_ppc.inline.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "assembler_aarch64.inline.hpp" +++#endif ++ ++ ++ // Implementation of StubCodeDesc ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubRoutines.hpp openjdk/hotspot/src/share/vm/runtime/stubRoutines.hpp ++index 8481dce..f233b56 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/stubRoutines.hpp +++++ openjdk/hotspot/src/share/vm/runtime/stubRoutines.hpp ++@@ -46,6 +46,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "nativeInst_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "nativeInst_aarch64.hpp" +++#endif ++ ++ // StubRoutines provides entry points to assembly routines used by ++ // compiled code and the run-time system. Platform-specific entry ++@@ -116,6 +119,9 @@ class StubRoutines: AllStatic { ++ #endif ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "stubRoutines_ppc.hpp" +++#endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "stubRoutines_aarch64.hpp" ++ #endif ++ ++ ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/thread.hpp openjdk/hotspot/src/share/vm/runtime/thread.hpp ++index 7846cc0..6964c22 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/thread.hpp +++++ openjdk/hotspot/src/share/vm/runtime/thread.hpp ++@@ -1651,6 +1651,9 @@ public: ++ #ifdef TARGET_OS_ARCH_linux_ppc ++ # include "thread_linux_ppc.hpp" ++ #endif +++#ifdef TARGET_OS_ARCH_linux_aarch64 +++# include "thread_linux_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_ARCH_bsd_x86 ++ # include "thread_bsd_x86.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/threadLocalStorage.hpp openjdk/hotspot/src/share/vm/runtime/threadLocalStorage.hpp ++index c2f7a9e..26ef559 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/threadLocalStorage.hpp +++++ openjdk/hotspot/src/share/vm/runtime/threadLocalStorage.hpp ++@@ -68,6 +68,9 @@ class ThreadLocalStorage : AllStatic { ++ #ifdef TARGET_OS_ARCH_linux_ppc ++ # include "threadLS_linux_ppc.hpp" ++ #endif +++#ifdef TARGET_OS_ARCH_linux_aarch64 +++# include "threadLS_linux_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_ARCH_bsd_x86 ++ # include "threadLS_bsd_x86.hpp" ++ #endif ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp ++index 8afd933..359f9fc 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp +++++ openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp ++@@ -125,6 +125,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "vmStructs_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "vmStructs_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_FAMILY_linux ++ # include "thread_linux.inline.hpp" ++ #endif ++@@ -161,6 +164,9 @@ ++ #ifdef TARGET_OS_ARCH_linux_ppc ++ # include "vmStructs_linux_ppc.hpp" ++ #endif +++#ifdef TARGET_OS_ARCH_linux_aarch64 +++# include "vmStructs_linux_aarch64.hpp" +++#endif ++ #ifdef TARGET_OS_ARCH_bsd_x86 ++ # include "vmStructs_bsd_x86.hpp" ++ #endif ++@@ -221,6 +227,9 @@ ++ #ifdef TARGET_ARCH_MODEL_ppc ++ # include "adfiles/adGlobals_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_MODEL_aarch64 +++# include "adfiles/adGlobals_aarch64.hpp" +++#endif ++ #endif ++ ++ // Note: the cross-product of (c1, c2, product, nonproduct, ...), ++diff --git openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp openjdk/hotspot/src/share/vm/runtime/vm_version.cpp ++index 2d51b67..bba9b01 100644 ++--- openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp +++++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp ++@@ -41,6 +41,9 @@ ++ #ifdef TARGET_ARCH_ppc ++ # include "vm_version_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "vm_version_aarch64.hpp" +++#endif ++ ++ const char* Abstract_VM_Version::_s_vm_release = Abstract_VM_Version::vm_release(); ++ const char* Abstract_VM_Version::_s_internal_vm_info_string = Abstract_VM_Version::internal_vm_info_string(); ++@@ -185,6 +188,7 @@ const char* Abstract_VM_Version::jre_release_version() { ++ AMD64_ONLY("amd64") \ ++ ARM_ONLY("arm") \ ++ PPC_ONLY("ppc") \ +++ AARCH64_ONLY("aarch64") \ ++ SPARC_ONLY("sparc") ++ #endif // ZERO ++ ++diff --git openjdk.orig/hotspot/src/share/vm/utilities/copy.hpp openjdk/hotspot/src/share/vm/utilities/copy.hpp ++index 3dcbfee..198590f 100644 ++--- openjdk.orig/hotspot/src/share/vm/utilities/copy.hpp +++++ openjdk/hotspot/src/share/vm/utilities/copy.hpp ++@@ -337,6 +337,9 @@ class Copy : AllStatic { ++ #ifdef TARGET_ARCH_ppc ++ # include "copy_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "copy_aarch64.hpp" +++#endif ++ ++ }; ++ ++diff --git openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp ++index b55b0ac..5d11e26 100644 ++--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp +++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp ++@@ -346,6 +346,9 @@ extern int LogMinObjAlignmentInBytes; ++ #ifdef TARGET_ARCH_ppc ++ # include "globalDefinitions_ppc.hpp" ++ #endif +++#ifdef TARGET_ARCH_aarch64 +++# include "globalDefinitions_aarch64.hpp" +++#endif ++ ++ ++ // The byte alignment to be used by Arena::Amalloc. See bugid 4169348. ++diff --git openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp openjdk/hotspot/src/share/vm/utilities/macros.hpp ++index 003f2af..2aa7f87 100644 ++--- openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp +++++ openjdk/hotspot/src/share/vm/utilities/macros.hpp ++@@ -261,6 +261,14 @@ ++ #define NOT_ARM(code) code ++ #endif ++ +++#ifdef AARCH64 +++#define AARCH64_ONLY(code) code +++#define NOT_AARCH64(code) +++#else +++#define AARCH64_ONLY(code) +++#define NOT_AARCH64(code) code +++#endif +++ ++ #ifdef JAVASE_EMBEDDED ++ #define EMBEDDED_ONLY(code) code ++ #define NOT_EMBEDDED(code) +-- +2.26.2 + -- cgit v1.2.3 From 672ac09586e4bbeae962b115a739a231d715d797 Mon Sep 17 00:00:00 2001 From: Simon South Date: Mon, 15 Jun 2020 11:22:55 -0400 Subject: gnu: icedtea-7: Fix build on aarch64-linux. * gnu/packages/java.scm (icedtea-7)[native-inputs]: Remove obsolete, architecture-dependent patch to "hotspot-drop"; replace with patch to fix build on aarch64-linux. * gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Efraim Flashner --- gnu/local.mk | 1 + gnu/packages/java.scm | 2 +- .../icedtea-7-hotspot-aarch64-use-c++98.patch | 33 ++++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index ff6d64bd66..85de4e4995 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1146,6 +1146,7 @@ dist_patch_DATA = \ %D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch \ %D%/packages/patches/icecat-use-system-media-libs.patch \ %D%/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch \ + %D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch \ %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \ %D%/packages/patches/icu4c-CVE-2020-10531.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 9e4e3586bf..38cc43d507 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1659,7 +1659,7 @@ bootstrapping purposes.") (base32 "17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws")) (patches (search-patches - "icedtea-7-hotspot-gcc-segfault-workaround.patch")))) + "icedtea-7-hotspot-aarch64-use-c++98.patch")))) ("ant" ,ant-bootstrap) ("attr" ,attr) ("coreutils" ,coreutils) diff --git a/gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch b/gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch new file mode 100644 index 0000000000..7ad215f975 --- /dev/null +++ b/gnu/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch @@ -0,0 +1,33 @@ +From 919dd016be1abd213b3a7d0e9a3b79e3286ef6ad Mon Sep 17 00:00:00 2001 +From: Simon South +Date: Wed, 10 Jun 2020 13:02:09 -0400 +Subject: [PATCH] aarch64: Use only C++98 + +This patch removes an unneeded C++ template that causes the build to +fail for aarch64 using gcc 7.5.0 and its default support for only the +C++98 standard. + +It is based on original work by Severin Gehwolf . +See: https://bugzilla.redhat.com/show_bug.cgi?id=1307224 +--- + src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp +index 0bc0a2b..6f73ca0 100644 +--- a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp ++++ b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp +@@ -194,10 +194,6 @@ static int reg2offset_out(VMReg r) { + return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) * VMRegImpl::stack_slot_size; + } + +-template static const T& min (const T& a, const T& b) { +- return (a > b) ? b : a; +-} +- + // --------------------------------------------------------------------------- + // Read the array of BasicTypes from a signature, and compute where the + // arguments should go. Values in the VMRegPair regs array refer to 4-byte +-- +2.26.2 + -- cgit v1.2.3 From 0569a832683e686b1ec949bcc3e3e4069929cb95 Mon Sep 17 00:00:00 2001 From: Simon South Date: Mon, 15 Jun 2020 11:22:57 -0400 Subject: gnu: icedtea-8: Fix build on aarch64-linux. * gnu/packages/java.scm (icedtea-8)[native-inputs]: Remove obsolete, architecture-dependent patch to "hotspot-drop". * gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. Signed-off-by: Efraim Flashner --- gnu/local.mk | 1 - gnu/packages/java.scm | 12 +----- ...icedtea-7-hotspot-gcc-segfault-workaround.patch | 45 ---------------------- 3 files changed, 2 insertions(+), 56 deletions(-) delete mode 100644 gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 85de4e4995..04f577399f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1147,7 +1147,6 @@ dist_patch_DATA = \ %D%/packages/patches/icecat-use-system-media-libs.patch \ %D%/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch \ %D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch \ - %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \ %D%/packages/patches/icu4c-CVE-2020-10531.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/id3lib-UTF16-writing-bug.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 921526eb02..9ced80cecf 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1855,16 +1855,8 @@ new Date();")) ,(drop "langtools" "15wizy123vhk40chl1b4p552jf2pw2hdww0myf11qab425axz4nw")) ("hotspot-drop" - ,(origin - (method url-fetch) - (uri (string-append - "http://icedtea.classpath.org/download/drops" - "/icedtea8/" version "/hotspot.tar.xz")) - (sha256 - (base32 - "1ciz1w9j0kz7s1dxdhyqq71nla9icyz6qvn0b9z2zgkklqa98qmm")) - (patches (search-patches - "icedtea-7-hotspot-gcc-segfault-workaround.patch")))) + ,(drop "hotspot" + "1ciz1w9j0kz7s1dxdhyqq71nla9icyz6qvn0b9z2zgkklqa98qmm")) ("nashorn-drop" ,(drop "nashorn" "19pzl3ppaw8j6r5cnyp8qiw3hxijh3hdc46l39g5yfhdl4pr4hpa")) diff --git a/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch b/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch deleted file mode 100644 index 35cfe38152..0000000000 --- a/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 2f0ef2c69e99e1096a2a72c7a29025a736b044b4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= -Date: Mon, 2 Jul 2018 23:37:25 +0200 -Subject: [PATCH] Fix gcc segfault. - ---- - src/share/vm/opto/output.cpp | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/share/vm/opto/output.cpp b/src/share/vm/opto/output.cpp -index d46cb87..0eb9eda 100644 ---- a/src/share/vm/opto/output.cpp -+++ b/src/share/vm/opto/output.cpp -@@ -1787,6 +1787,8 @@ uint Scheduling::_total_instructions_per_bundle[Pipeline::_max_instrs_per_cycle+ - - // Initializer for class Scheduling - -+volatile const void *eePointer = Pipeline_Use::elaborated_elements; -+ - Scheduling::Scheduling(Arena *arena, Compile &compile) - : _arena(arena), - _cfg(compile.cfg()), -@@ -1829,7 +1831,7 @@ Scheduling::Scheduling(Arena *arena, Compile &compile) - memset(_current_latency, 0, node_max * sizeof(unsigned short)); - - // Clear the bundling information -- memcpy(_bundle_use_elements, Pipeline_Use::elaborated_elements, sizeof(Pipeline_Use::elaborated_elements)); -+ memcpy(_bundle_use_elements, (void *)eePointer, 11*sizeof(Pipeline_Use_Element)); - - // Get the last node - Block* block = _cfg->get_block(_cfg->number_of_blocks() - 1); -@@ -1880,8 +1882,8 @@ void Scheduling::step_and_clear() { - _bundle_use.reset(); - - memcpy(_bundle_use_elements, -- Pipeline_Use::elaborated_elements, -- sizeof(Pipeline_Use::elaborated_elements)); -+ (void *)eePointer, -+ 11*sizeof(Pipeline_Use_Element)); - } - - // Perform instruction scheduling and bundling over the sequence of --- -2.18.0 - -- cgit v1.2.3 From 9b4a497e38f1845ba85c507af7f3937f1cd25122 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 8 Nov 2020 00:22:21 +0100 Subject: gnu: gdb@9.2: Restore 'gdb-hurd.patch'. This patch got lost when e33c4286ebcc0dcc79985a32c6c2d5ad623d1fbe was merged (commit 32787d652460871a79f99b63230f92759e2e0de2), but was still required on the 'staging' branch. * gnu/packages/patches/gdb-hurd.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. --- gnu/local.mk | 1 + gnu/packages/patches/gdb-hurd.patch | 69 +++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 gnu/packages/patches/gdb-hurd.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 697863ae02..ac6eeba935 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1032,6 +1032,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-8-strmov-store-file-names.patch \ %D%/packages/patches/gcc-9-asan-fix-limits-include.patch \ %D%/packages/patches/gcc-9-strmov-store-file-names.patch \ + %D%/packages/patches/gdb-hurd.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-brect-bounds.patch \ %D%/packages/patches/gdm-default-session.patch \ diff --git a/gnu/packages/patches/gdb-hurd.patch b/gnu/packages/patches/gdb-hurd.patch new file mode 100644 index 0000000000..0af8d4dc28 --- /dev/null +++ b/gnu/packages/patches/gdb-hurd.patch @@ -0,0 +1,69 @@ +Taken from upstream, removed ChangeLog. + +From 6930bffe3373690b3431d6291f9f7c116d6a1ec4 Mon Sep 17 00:00:00 2001 +From: Samuel Thibault +Date: Sat, 30 May 2020 18:35:59 +0000 +Subject: [PATCH] hurd: fix gnu_debug_flag type +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes + +../../gdb/gnu-nat.c:96:6: error: conflicting declaration ‘bool gnu_debug_flag’ + 96 | bool gnu_debug_flag = false; +../../gdb/gnu-nat.c: In function ‘void _initialize_gnu_nat()’: +../../gdb/gnu-nat.c:3511:7: error: cannot + +gdb/ChangeLog: + + * gnu-nat.h (gnu_debug_flag): Set type to bool. +--- + gdb/ChangeLog | 4 ++++ + gdb/gnu-nat.h | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/gdb/gnu-nat.h b/gdb/gnu-nat.h +index 77c57817b2..766f716587 100644 +--- a/gdb/gnu-nat.h ++++ b/gdb/gnu-nat.h +@@ -111,7 +111,7 @@ extern char *proc_string (struct proc *proc); + __proc_pid (__proc), __proc->tid, \ + host_address_to_string (__proc) , ##args); } while (0) + +-extern int gnu_debug_flag; ++extern bool gnu_debug_flag; + + #define debug(msg, args...) \ + do { if (gnu_debug_flag) \ +-- +Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org +Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com + +commit 366f550a593c7e6bae3699a4b6d65fe937af5603 +Author: Samuel Thibault +Date: Sat May 30 18:41:30 2020 +0000 + + hurd: add missing include + + Fixes + + ../../gdb/gnu-nat.c:2522:14: error: ‘target_gdbarch’ was not declared in this scope; did you mean ‘target_detach’? + 2522 | paddress (target_gdbarch (), memaddr), pulongest (len), + + gdb/Changelog: + + * gnu-nat.c: Include "gdbarch.h". + +diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c +index 3b438a9a43..9b93488b41 100644 +--- a/gdb/gnu-nat.c ++++ b/gdb/gnu-nat.c +@@ -64,6 +64,7 @@ extern "C" + #include "language.h" + #include "target.h" + #include "gdbsupport/gdb_wait.h" ++#include "gdbarch.h" + #include "gdbcmd.h" + #include "gdbcore.h" + #include "gdbthread.h" -- cgit v1.2.3 From 02b4b10568c248d03268be550146d14d8e19c217 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 19 Nov 2020 23:59:20 +0100 Subject: gnu: grim: Remove obsolete patch. * gnu/packages/patches/grim-revert-output-rotation.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/image.scm (grim)[source](patches): Remove. --- gnu/local.mk | 1 - gnu/packages/image.scm | 3 +-- .../patches/grim-revert-output-rotation.patch | 27 ---------------------- 3 files changed, 1 insertion(+), 30 deletions(-) delete mode 100644 gnu/packages/patches/grim-revert-output-rotation.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index cf85fa737e..42a0e09e47 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1105,7 +1105,6 @@ dist_patch_DATA = \ %D%/packages/patches/gpsbabel-qstring.patch \ %D%/packages/patches/grantlee-merge-theme-dirs.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ - %D%/packages/patches/grim-revert-output-rotation.patch \ %D%/packages/patches/grocsvs-dont-use-admiral.patch \ %D%/packages/patches/gromacs-tinyxml2.patch \ %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 5044a527ce..2027441bf5 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1913,8 +1913,7 @@ identical visual appearance.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0fjmjq0ws9rlblkcqxxw2lv7zvvyi618jqzlnz5z9zb477jwdfib")) - (patches (search-patches "grim-revert-output-rotation.patch")))) + (base32 "0fjmjq0ws9rlblkcqxxw2lv7zvvyi618jqzlnz5z9zb477jwdfib")))) (build-system meson-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("scdoc" ,scdoc))) diff --git a/gnu/packages/patches/grim-revert-output-rotation.patch b/gnu/packages/patches/grim-revert-output-rotation.patch deleted file mode 100644 index cbf0a86502..0000000000 --- a/gnu/packages/patches/grim-revert-output-rotation.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 80b17ceaff90b81b28b44004d2aca4cc40f365be Mon Sep 17 00:00:00 2001 -From: Tobias Geerinckx-Rice -Date: Fri, 2 Oct 2020 00:07:30 +0200 -Subject: [PATCH] Revert "Correct interpretation of output rotation" - -This reverts commit 8f9d60885ce2f9bd66cd93d3378dcb6866d4588a. -It is incompatible with the current Sway version (1.4) in Guix. ---- - render.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/render.c b/render.c -index 8f31e7e..a6b0b12 100644 ---- a/render.c -+++ b/render.c -@@ -104,7 +104,7 @@ cairo_surface_t *render(struct grim_state *state, struct grim_box *geometry, - cairo_matrix_translate(&matrix, - (double)output->geometry.width / 2, - (double)output->geometry.height / 2); -- cairo_matrix_rotate(&matrix, get_output_rotation(output->transform)); -+ cairo_matrix_rotate(&matrix, -get_output_rotation(output->transform)); - cairo_matrix_scale(&matrix, - (double)raw_output_width / output_width * output_flipped_x, - (double)raw_output_height / output_height * output_flipped_y); --- -2.28.0 - -- cgit v1.2.3