diff options
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r-- | gnu/packages/patches/alure-dumb-2.patch | 30 | ||||
-rw-r--r-- | gnu/packages/patches/enblend-enfuse-reproducible.patch | 44 | ||||
-rw-r--r-- | gnu/packages/patches/evdi-fix-build-with-linux-6.2.patch | 72 | ||||
-rw-r--r-- | gnu/packages/patches/glibc-hurd-getauxval.patch | 34 | ||||
-rw-r--r-- | gnu/packages/patches/gnome-dictionary-meson-i18n.patch | 52 | ||||
-rw-r--r-- | gnu/packages/patches/hdf4-architectures.patch | 632 | ||||
-rw-r--r-- | gnu/packages/patches/hdf4-tirpc.patch | 33 | ||||
-rw-r--r-- | gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch | 89 | ||||
-rw-r--r-- | gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch | 39 | ||||
-rw-r--r-- | gnu/packages/patches/nanosvg-prusa-slicer.patch | 248 | ||||
-rw-r--r-- | gnu/packages/patches/openjdk-21-fix-rpath.patch | 16 | ||||
-rw-r--r-- | gnu/packages/patches/tensorflow-lite-unbundle.patch | 27 |
12 files changed, 579 insertions, 737 deletions
diff --git a/gnu/packages/patches/alure-dumb-2.patch b/gnu/packages/patches/alure-dumb-2.patch new file mode 100644 index 0000000000..60d18f8570 --- /dev/null +++ b/gnu/packages/patches/alure-dumb-2.patch @@ -0,0 +1,30 @@ +Source: https://gitlab.archlinux.org/archlinux/packaging/packages/alure/-/blob/main/dumb-2.patch + +diff -Naur a/src/codec_dumb.cpp b/src/codec_dumb.cpp +--- a/src/codec_dumb.cpp 2011-07-29 09:37:48.000000000 +0100 ++++ b/src/codec_dumb.cpp 2020-05-10 15:59:48.502632496 +0100 +@@ -272,7 +272,11 @@ + + private: + // DUMBFILE iostream callbacks ++#if DUMB_VERSION >= 2*10000 ++ static int skip(void *user_data, dumb_off_t offset) ++#else + static int skip(void *user_data, long offset) ++#endif + { + std::istream *stream = static_cast<dumbStream*>(user_data)->fstream; + stream->clear(); +@@ -282,7 +286,11 @@ + return -1; + } + ++#if DUMB_VERSION >= 2*10000 ++ static dumb_ssize_t read(char *ptr, size_t size, void *user_data) ++#else + static long read(char *ptr, long size, void *user_data) ++#endif + { + std::istream *stream = static_cast<dumbStream*>(user_data)->fstream; + stream->clear(); + diff --git a/gnu/packages/patches/enblend-enfuse-reproducible.patch b/gnu/packages/patches/enblend-enfuse-reproducible.patch new file mode 100644 index 0000000000..8bd6a3aeda --- /dev/null +++ b/gnu/packages/patches/enblend-enfuse-reproducible.patch @@ -0,0 +1,44 @@ +# HG changeset patch +# User Bernhard M. Wiedemann <bwiedemann@suse.de> +# Date 1502609999 -7200 +# Sun Aug 13 09:39:59 2017 +0200 +# Node ID a98e00eed893f62dd8349fc2894abca3aff4b33a +# Parent 41ce01b7d413b3654211da0147857e7d6a1495de +Facilitate reproducible builds +by allowing to externally hold constant the build date and time. +See + https://reproducible-builds.org/specs/source-date-epoch/ + +Backport asap. + +diff -r 41ce01b7d413 -r a98e00eed893 NEWS +--- a/NEWS Sun Aug 13 09:39:56 2017 +0200 ++++ b/NEWS Sun Aug 13 09:39:59 2017 +0200 +@@ -48,6 +48,12 @@ + https://github.com/akrzemi1/Optional + where only "optional.hpp" is needed. + ++- The environment variable SOURCE_DATE_EPOCH overrides the build ++ timestamp as recorded by the signatures. See ++ https://reproducible-builds.org/specs/source-date-epoch/ ++ for details. ++ ++ + + * Version 4.2 "Compressor Road" + +diff -r 41ce01b7d413 -r a98e00eed893 src/DefaultSig.pm +--- a/src/DefaultSig.pm Sun Aug 13 09:39:56 2017 +0200 ++++ b/src/DefaultSig.pm Sun Aug 13 09:39:59 2017 +0200 +@@ -109,9 +109,10 @@ + sub update_date_and_time { + my $self = shift; + ++ my $now = $ENV{SOURCE_DATE_EPOCH} || time; + my ($second, $minute, $hour, + $day_of_month, $month, $year, +- $day_of_week) = $self->is_using_gmt() ? gmtime : localtime; ++ $day_of_week) = $self->is_using_gmt() ? gmtime($now) : localtime($now); + + $self->{DATE} = $self->format_date($day_of_month, $month, $year + 1900, $day_of_week, + $self->weekdays->[$day_of_week], diff --git a/gnu/packages/patches/evdi-fix-build-with-linux-6.2.patch b/gnu/packages/patches/evdi-fix-build-with-linux-6.2.patch deleted file mode 100644 index 0c53cd2ef7..0000000000 --- a/gnu/packages/patches/evdi-fix-build-with-linux-6.2.patch +++ /dev/null @@ -1,72 +0,0 @@ -Fix the build with Linux 6.2: - -https://github.com/DisplayLink/evdi/issues/402 - -Patch copied from upstream pull request: - -https://github.com/DisplayLink/evdi/pull/401 - -From a90ecd5f0f09e976e4b8784fa16b92804138b1bd Mon Sep 17 00:00:00 2001 -From: listout <listout@protonmail.com> -Date: Wed, 22 Feb 2023 13:09:40 +0530 -Subject: [PATCH] Original patch was suggested by Crashdummyy. - -Since commit 9877d8f6bc374912b08dfe862cddbb78b395a5ef -feild fbdev has been renamed to info in struct drm_fb_helper. - -Fixes: https://github.com/DisplayLink/evdi/issues/402 -Fixes: https://github.com/DisplayLink/evdi/issues/394 -Fixes: https://github.com/DisplayLink/evdi/issues/384 -Signed-off-by: listout <listout@protonmail.com> ---- - module/evdi_fb.c | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/module/evdi_fb.c b/module/evdi_fb.c -index 6b367fe8..f5de81f1 100644 ---- a/module/evdi_fb.c -+++ b/module/evdi_fb.c -@@ -405,7 +405,11 @@ static int evdifb_create(struct drm_fb_helper *helper, - fb = &efbdev->efb.base; - - efbdev->helper.fb = fb; -+#if KERNEL_VERSION(6, 2, 0) <= LINUX_VERSION_CODE -+ efbdev->helper.info = info; -+#else - efbdev->helper.fbdev = info; -+#endif - - strcpy(info->fix.id, "evdidrmfb"); - -@@ -459,8 +463,13 @@ static void evdi_fbdev_destroy(__always_unused struct drm_device *dev, - { - struct fb_info *info; - -+#if KERNEL_VERSION(6, 2, 0) <= LINUX_VERSION_CODE -+ if (efbdev->helper.info) { -+ info = efbdev->helper.info; -+#else - if (efbdev->helper.fbdev) { - info = efbdev->helper.fbdev; -+#endif - unregister_framebuffer(info); - if (info->cmap.len) - fb_dealloc_cmap(&info->cmap); -@@ -537,10 +546,17 @@ void evdi_fbdev_unplug(struct drm_device *dev) - return; - - efbdev = evdi->fbdev; -+#if KERNEL_VERSION(6, 2, 0) <= LINUX_VERSION_CODE -+ if (efbdev->helper.info) { -+ struct fb_info *info; -+ -+ info = efbdev->helper.info; -+#else - if (efbdev->helper.fbdev) { - struct fb_info *info; - - info = efbdev->helper.fbdev; -+#endif - #if KERNEL_VERSION(5, 6, 0) <= LINUX_VERSION_CODE || defined(EL8) - unregister_framebuffer(info); - #else diff --git a/gnu/packages/patches/glibc-hurd-getauxval.patch b/gnu/packages/patches/glibc-hurd-getauxval.patch new file mode 100644 index 0000000000..815371b2d0 --- /dev/null +++ b/gnu/packages/patches/glibc-hurd-getauxval.patch @@ -0,0 +1,34 @@ +Taken from https://salsa.debian.org/glibc-team/glibc/-/blob/5af8e3701c63ad202b652b5051bec592b8385820/debian/patches/hurd-i386/unsubmitted-getaux_at_secure.diff + +This fixes gdk-pixbuf, gobject-introspection. + +FIXME: sysdeps/mach/hurd/i386/init-first.c should instead pass an auxv +to __libc_start_main + +Index: glibc-2.33/misc/getauxval.c +=================================================================== +--- glibc-2.33.orig/misc/getauxval.c ++++ glibc-2.33/misc/getauxval.c +@@ -19,6 +19,7 @@ + #include <errno.h> + #include <ldsodefs.h> + #include <stdbool.h> ++#include <unistd.h> + + bool + __getauxval2 (unsigned long int type, unsigned long int *result) +@@ -27,6 +28,14 @@ __getauxval2 (unsigned long int type, un + ElfW(auxv_t) *p; + #endif + ++#ifdef AT_SECURE ++ if (type == AT_SECURE) ++ { ++ *result = __libc_enable_secure; ++ return true; ++ } ++#endif ++ + if (type == AT_HWCAP) + { + *result = GLRO(dl_hwcap); diff --git a/gnu/packages/patches/gnome-dictionary-meson-i18n.patch b/gnu/packages/patches/gnome-dictionary-meson-i18n.patch new file mode 100644 index 0000000000..fea45af69a --- /dev/null +++ b/gnu/packages/patches/gnome-dictionary-meson-i18n.patch @@ -0,0 +1,52 @@ +From 71933f6586475b36c70ef325373fe6d50c7a034f Mon Sep 17 00:00:00 2001 +From: Jan Beich <jbeich@FreeBSD.org> +Date: Mon, 24 Jan 2022 11:13:54 +0000 +Subject: [PATCH] meson: drop unused argument for i18n.merge_file() + +Ignored in Meson < 0.60.0, deprecated since 0.60.1 and fatal since 0.61.0. + +data/appdata/meson.build:3:5: ERROR: Function does not take positional arguments. +data/meson.build:6:5: ERROR: Function does not take positional arguments. +data/meson.build:49:5: ERROR: Function does not take positional arguments. +--- + data/appdata/meson.build | 2 +- + data/meson.build | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/data/appdata/meson.build b/data/appdata/meson.build +index 1dc4ed7..e44a58e 100644 +--- a/data/appdata/meson.build ++++ b/data/appdata/meson.build +@@ -1,6 +1,6 @@ + appdata_conf = configuration_data() + appdata_conf.set('application_id', application_id) +-i18n.merge_file('appdata', ++appdata_file = i18n.merge_file( + input: configure_file( + input: 'org.gnome.Dictionary.appdata.xml.in.in', + output: 'org.gnome.Dictionary.appdata.xml.in', +diff --git a/data/meson.build b/data/meson.build +index 660e6b8..7ec7251 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -3,7 +3,7 @@ subdir('appdata') + desktop_conf = configuration_data() + desktop_conf.set('icon', application_id) + desktop_conf.set('application_id', application_id) +-i18n.merge_file('desktop', ++desktop_file = i18n.merge_file( + input: configure_file( + input: 'org.gnome.Dictionary.desktop.in.in', + output: 'org.gnome.Dictionary.desktop.in', +@@ -45,7 +45,7 @@ sources = [ + ] + + foreach s: sources +- i18n.merge_file('sources', ++ i18n.merge_file( + input: '@0@.in'.format(s), + output: s, + install: true, +-- +2.41.0 + diff --git a/gnu/packages/patches/hdf4-architectures.patch b/gnu/packages/patches/hdf4-architectures.patch deleted file mode 100644 index aa71d5a383..0000000000 --- a/gnu/packages/patches/hdf4-architectures.patch +++ /dev/null @@ -1,632 +0,0 @@ -Copied from Debian. - -Description: Support additional architectures. -Author: Francesco Paolo Lovergine <frankie@debian.org> - ---- a/hdf/src/hdfi.h -+++ b/hdf/src/hdfi.h -@@ -48,6 +48,7 @@ - /* 8 - Cray IEEE */ - /* (i.e. Big-Endian, all 64-bit architecture w/IEEE Floats) */ - /*--------------------------------------------------------------------------*/ -+#define DFMT_S390 0x1111 - #define DFMT_SUN 0x1111 - #define DFMT_SUN_INTEL 0x4441 - #define DFMT_ALLIANT 0x1111 -@@ -62,6 +63,7 @@ - #define DFMT_CTSS 0x3331 - #define DFMT_VAX 0x2221 - #define DFMT_MIPSEL 0x4441 -+#define DFMT_MIPSEB 0x1111 - #define DFMT_PC 0x4441 - #define DFMT_APPLE 0x1111 - #define DFMT_APPLE_INTEL 0x4441 -@@ -75,6 +77,13 @@ - #define DFMT_IA64 0x4441 - #define DFMT_LINUX64 0x4441 - #define DFMT_POWERPC64 0x1111 -+#define DFMT_POWERPC64LE 0x4441 -+#define DFMT_ARMV4L 0x4441 -+#define DFMT_AARCH64 0x4441 -+#define DFMT_X86_64 0x4441 -+#define DFMT_SH 0x4441 -+#define DFMT_SHEB 0x1111 -+#define DFMT_RISCV64 0x4441 - - /* I/O library constants */ - #define UNIXUNBUFIO 1 -@@ -288,7 +297,7 @@ typedef int hdf_pint_t; - - #endif /* IBM6000 */ - --#if defined(HP9000) || (!defined(__convexc__) && (defined(hpux) || defined(__hpux))) -+#if defined(HP9000) || (!defined(__convexc__) && (defined(hpux) || defined(__hpux) || defined(__hppa__))) - - #ifndef HP9000 - #define HP9000 -@@ -347,6 +356,10 @@ typedef int hdf_pint_t; - /* what each does */ - #define JMEMSYS MEM_ANSI - -+#ifdef __linux__ -+#define FNAME_POST_UNDERSCORE -+#endif -+ - #endif /* HP9000 */ - - -@@ -670,6 +683,462 @@ typedef int hdf_pint_t; - #endif /* !(defined(__APPLE__)) */ - - /*-----------------------------------------------------*/ -+#if defined (__linux__) && defined (__mc68000__) -+ -+#ifdef GOT_MACHINE -+If you get an error on this line more than one machine type has been defined. -+Please check your Makefile. -+#endif -+#define GOT_MACHINE 1 -+ -+#include <fcntl.h> -+#include <sys/types.h> /* for unbuffered file I/O */ -+#include <sys/stat.h> -+#include <unistd.h> -+#include <ctype.h> /* for character macros */ -+ -+#define DF_MT DFMT_MOTOROLA -+ -+#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */ -+typedef void VOID; -+#endif /* end VOID */ -+typedef void * VOIDP; -+typedef char * _fcd; -+typedef char char8; -+typedef unsigned char uchar8; -+typedef char int8; -+typedef unsigned char uint8; -+typedef short int int16; -+typedef unsigned short int uint16; -+typedef long int int32; -+typedef unsigned long int uint32; -+typedef int intn; -+typedef unsigned int uintn; -+typedef float float32; -+typedef double float64; -+typedef long intf; /* size of INTEGERs in Fortran compiler */ -+typedef int hdf_pint_t; /* an integer the same size as a pointer */ -+#define FNAME_POST_UNDERSCORE -+#define _fcdtocp(desc) (desc) -+ -+#ifdef HAVE_FMPOOL -+#define FILELIB PAGEBUFIO /* enable page buffering */ -+#else -+#define FILELIB UNIXBUFIO -+#endif -+ -+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */ -+ -+/* Determine the memory manager we are going to use. Valid values are: */ -+/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ -+/* what each does */ -+#define JMEMSYS MEM_ANSI -+#define HAVE_STDC -+#define INCLUDES_ARE_ANSI -+ -+#endif /* Linux/m68k */ -+ -+#if defined (__linux__) && defined (__sparc__) -+ -+#ifdef GOT_MACHINE -+If you get an error on this line more than one machine type has been defined. -+Please check your Makefile. -+#endif -+#define GOT_MACHINE 1 -+ -+#include <fcntl.h> -+#include <sys/types.h> /* for unbuffered file I/O */ -+#include <sys/stat.h> -+#include <unistd.h> -+#include <ctype.h> /* for character macros */ -+ -+#define DF_MT DFMT_SUN -+ -+#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */ -+typedef void VOID; -+#endif /* end VOID */ -+typedef void * VOIDP; -+typedef char * _fcd; -+typedef char char8; -+typedef unsigned char uchar8; -+typedef char int8; -+typedef unsigned char uint8; -+typedef short int int16; -+typedef unsigned short int uint16; -+#ifdef _LP64 /* 64-bit environment */ -+typedef int int32; -+typedef unsigned int uint32; -+#else /* 32-bit environment */ -+typedef long int int32; -+typedef unsigned long int uint32; -+#endif -+typedef int intn; -+typedef unsigned int uintn; -+typedef float float32; -+typedef double float64; -+typedef long intf; /* size of INTEGERs in Fortran compiler */ -+#ifdef _LP64 /* 64-bit environment */ -+typedef long hdf_pint_t; /* an integer the same size as a pointer */ -+#else /* 32-bit environment */ -+typedef int hdf_pint_t; /* an integer the same size as a pointer */ -+#endif -+#define FNAME_POST_UNDERSCORE -+#define _fcdtocp(desc) (desc) -+ -+#ifdef HAVE_FMPOOL -+#define FILELIB PAGEBUFIO /* enable page buffering */ -+#else -+#define FILELIB UNIXBUFIO -+#endif -+ -+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */ -+ -+/* Determine the memory manager we are going to use. Valid values are: */ -+/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ -+/* what each does */ -+#define JMEMSYS MEM_ANSI -+#define HAVE_STDC -+#define INCLUDES_ARE_ANSI -+ -+#endif /* Linux/Sparc */ -+ -+#if defined (__linux__) && defined (__powerpc__) && !defined(__powerpc64__) -+ -+#ifdef GOT_MACHINE -+If you get an error on this line more than one machine type has been defined. -+Please check your Makefile. -+#endif -+#define GOT_MACHINE 1 -+ -+#include <fcntl.h> -+#include <sys/types.h> /* for unbuffered file I/O */ -+#include <sys/stat.h> -+#include <unistd.h> -+#include <ctype.h> /* for character macros */ -+ -+#define DF_MT DFMT_MOTOROLA -+ -+#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */ -+typedef void VOID; -+#endif /* end VOID */ -+typedef void * VOIDP; -+typedef char * _fcd; -+typedef char char8; -+typedef unsigned char uchar8; -+typedef signed char int8; -+typedef unsigned char uint8; -+typedef short int int16; -+typedef unsigned short int uint16; -+typedef long int int32; -+typedef unsigned long int uint32; -+typedef int intn; -+typedef unsigned int uintn; -+typedef float float32; -+typedef double float64; -+typedef long intf; /* size of INTEGERs in Fortran compiler */ -+typedef int hdf_pint_t; /* an integer the same size as a pointer */ -+#define FNAME_POST_UNDERSCORE -+#define _fcdtocp(desc) (desc) -+ -+#ifdef HAVE_FMPOOL -+#define FILELIB PAGEBUFIO /* enable page buffering */ -+#else -+#define FILELIB UNIXBUFIO -+#endif -+ -+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */ -+ -+/* Determine the memory manager we are going to use. Valid values are: */ -+/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ -+/* what each does */ -+#define JMEMSYS MEM_ANSI -+#define HAVE_STDC -+#define INCLUDES_ARE_ANSI -+ -+#endif /* Linux/powerpc */ -+ -+#if defined (__linux__) && defined (__s390__) -+ -+#ifdef GOT_MACHINE -+If you get an error on this line more than one machine type has been defined. -+Please check your Makefile. -+#endif -+#define GOT_MACHINE 1 -+ -+#include <fcntl.h> -+#include <sys/types.h> /* for unbuffered file I/O */ -+#include <sys/stat.h> -+#include <unistd.h> -+#include <ctype.h> /* for character macros */ -+ -+#define DF_MT DFMT_S390 -+ -+#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */ -+typedef void VOID; -+#endif /* end VOID */ -+typedef void * VOIDP; -+typedef char * _fcd; -+typedef char char8; -+typedef unsigned char uchar8; -+typedef signed char int8; -+typedef unsigned char uint8; -+typedef short int int16; -+typedef unsigned short int uint16; -+#ifdef _LP64 /* 64-bit environment */ -+typedef int int32; -+typedef unsigned int uint32; -+#else /* 32-bit environment */ -+typedef long int int32; -+typedef unsigned long int uint32; -+#endif -+typedef int intn; -+typedef unsigned int uintn; -+typedef float float32; -+typedef double float64; -+typedef long intf; /* size of INTEGERs in Fortran compiler */ -+#ifdef _LP64 /* 64-bit environment */ -+typedef long hdf_pint_t; /* an integer the same size as a pointer */ -+#else /* 32-bit environment */ -+typedef int hdf_pint_t; /* an integer the same size as a pointer */ -+#endif -+#define FNAME_POST_UNDERSCORE -+#define _fcdtocp(desc) (desc) -+ -+#ifdef HAVE_FMPOOL -+#define FILELIB PAGEBUFIO /* enable page buffering */ -+#else -+#define FILELIB UNIXBUFIO -+#endif -+ -+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */ -+ -+/* Determine the memory manager we are going to use. Valid values are: */ -+/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ -+/* what each does */ -+#define JMEMSYS MEM_ANSI -+#define HAVE_STDC -+#define INCLUDES_ARE_ANSI -+ -+#endif /* Linux/s390 */ -+ -+#if defined (__linux__) && (defined (__MIPSEB__) || defined(__MIPSEL__)) -+ -+#ifdef GOT_MACHINE -+If you get an error on this line more than one machine type has been defined. -+Please check your Makefile. -+#endif -+#define GOT_MACHINE 1 -+ -+#include <fcntl.h> -+#include <sys/types.h> /* for unbuffered file I/O */ -+#include <sys/stat.h> -+#include <unistd.h> -+#include <ctype.h> /* for character macros */ -+ -+#if defined (__MIPSEB__) -+#define DF_MT DFMT_MIPSEB -+#elif defined(__MIPSEL__) -+#define DF_MT DFMT_MIPSEL -+#endif -+ -+#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */ -+typedef void VOID; -+#endif /* end VOID */ -+typedef void * VOIDP; -+typedef char * _fcd; -+typedef char char8; -+typedef unsigned char uchar8; -+typedef signed char int8; -+typedef unsigned char uint8; -+typedef short int int16; -+typedef unsigned short int uint16; -+typedef int int32; -+typedef unsigned int uint32; -+typedef int intn; -+typedef unsigned int uintn; -+typedef float float32; -+typedef double float64; -+typedef long intf; /* size of INTEGERs in Fortran compiler */ -+typedef long int hdf_pint_t; /* an integer the same size as a pointer */ -+#define FNAME_POST_UNDERSCORE -+#define _fcdtocp(desc) (desc) -+ -+#ifdef HAVE_FMPOOL -+#define FILELIB PAGEBUFIO /* enable page buffering */ -+#else -+#define FILELIB UNIXBUFIO -+#endif -+ -+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */ -+ -+/* Determine the memory manager we are going to use. Valid values are: */ -+/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ -+/* what each does */ -+#define JMEMSYS MEM_ANSI -+#define HAVE_STDC -+#define INCLUDES_ARE_ANSI -+ -+#endif /* Linux/mips */ -+ -+#if defined (__linux__) && defined (__arm__) -+ -+#ifdef GOT_MACHINE -+If you get an error on this line more than one machine type has been defined. -+Please check your Makefile. -+#endif -+#define GOT_MACHINE 1 -+ -+#include <fcntl.h> -+#include <sys/types.h> /* for unbuffered file I/O */ -+#include <sys/stat.h> -+#include <unistd.h> -+#include <ctype.h> /* for character macros */ -+ -+#define DF_MT DFMT_ARMV4L -+ -+#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */ -+typedef void VOID; -+#endif /* end VOID */ -+typedef void * VOIDP; -+typedef char * _fcd; -+typedef char char8; -+typedef unsigned char uchar8; -+typedef signed char int8; -+typedef unsigned char uint8; -+typedef short int int16; -+typedef unsigned short int uint16; -+typedef int int32; -+typedef unsigned int uint32; -+typedef int intn; -+typedef unsigned int uintn; -+typedef float float32; -+typedef double float64; -+typedef long intf; /* size of INTEGERs in Fortran compiler */ -+typedef long hdf_pint_t; /* an integer the same size as a pointer */ -+#define FNAME_POST_UNDERSCORE -+#define _fcdtocp(desc) (desc) -+ -+#ifdef HAVE_FMPOOL -+#define FILELIB PAGEBUFIO /* enable page buffering */ -+#else -+#define FILELIB UNIXBUFIO -+#endif -+ -+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */ -+ -+/* Determine the memory manager we are going to use. Valid values are: */ -+/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ -+/* what each does */ -+#define JMEMSYS MEM_ANSI -+#define HAVE_STDC -+#define INCLUDES_ARE_ANSI -+ -+#endif /* Linux/arm */ -+ -+#if defined (__linux__) && defined (__aarch64__) -+ -+#ifdef GOT_MACHINE -+If you get an error on this line more than one machine type has been defined. -+Please check your Makefile. -+#endif -+#define GOT_MACHINE 1 -+ -+#include <fcntl.h> -+#include <sys/types.h> /* for unbuffered file I/O */ -+#include <sys/stat.h> -+#include <unistd.h> -+#include <ctype.h> /* for character macros */ -+ -+#define DF_MT DFMT_AARCH64 -+ -+typedef void VOID; -+typedef void * VOIDP; -+typedef char * _fcd; -+typedef char char8; -+typedef unsigned char uchar8; -+typedef signed char int8; -+typedef unsigned char uint8; -+typedef short int int16; -+typedef unsigned short int uint16; -+typedef int int32; -+typedef unsigned int uint32; -+typedef int intn; -+typedef unsigned int uintn; -+typedef float float32; -+typedef double float64; -+typedef int intf; /* size of INTEGERs in Fortran compiler */ -+typedef long hdf_pint_t; /* an integer the same size as a pointer */ -+#define FNAME_POST_UNDERSCORE -+#define _fcdtocp(desc) (desc) -+#define FILELIB UNIXBUFIO -+ -+#ifndef BIG_LONGS -+#define BIG_LONGS -+#endif -+ -+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */ -+ -+/* Determine the memory manager we are going to use. Valid values are: */ -+/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ -+/* what each does */ -+#define JMEMSYS MEM_ANSI -+#define HAVE_STDC -+#define INCLUDES_ARE_ANSI -+ -+#endif /* Linux/aarch64 */ -+ -+#if defined (__linux__) && defined (__riscv) && (__riscv_xlen == 64) -+ -+#ifdef GOT_MACHINE -+If you get an error on this line more than one machine type has been defined. -+Please check your Makefile. -+#endif -+#define GOT_MACHINE 1 -+ -+#include <fcntl.h> -+#include <sys/types.h> /* for unbuffered file I/O */ -+#include <sys/stat.h> -+#include <unistd.h> -+#include <ctype.h> /* for character macros */ -+ -+#define DF_MT DFMT_RISCV64 -+ -+typedef void VOID; -+typedef void * VOIDP; -+typedef char * _fcd; -+typedef char char8; -+typedef unsigned char uchar8; -+typedef signed char int8; -+typedef unsigned char uint8; -+typedef short int int16; -+typedef unsigned short int uint16; -+typedef int int32; -+typedef unsigned int uint32; -+typedef int intn; -+typedef unsigned int uintn; -+typedef float float32; -+typedef double float64; -+typedef int intf; /* size of INTEGERs in Fortran compiler */ -+typedef long hdf_pint_t; /* an integer the same size as a pointer */ -+#define FNAME_POST_UNDERSCORE -+#define _fcdtocp(desc) (desc) -+#define FILELIB UNIXBUFIO -+ -+#ifndef BIG_LONGS -+#define BIG_LONGS -+#endif -+ -+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */ -+ -+/* Determine the memory manager we are going to use. Valid values are: */ -+/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ -+/* what each does */ -+#define JMEMSYS MEM_ANSI -+#define HAVE_STDC -+#define INCLUDES_ARE_ANSI -+ -+#endif /* Linux/riscv64 */ -+ - #if defined(NEXT) || defined(NeXT) - - #ifndef NEXT -@@ -932,7 +1401,11 @@ Please check your Makefile. - - #include <sys/file.h> /* for unbuffered i/o stuff */ - #include <sys/stat.h> --#define DF_MT DFMT_POWERPC64 -+#ifdef __LITTLE_ENDIAN__ -+#define DF_MT DFMT_POWERPC64LE -+#else -+#define DF_MT DFMT_POWERPC64 -+#endif - typedef void VOID; - typedef void *VOIDP; - typedef char *_fcd; -@@ -956,6 +1429,11 @@ typedef long hdf_pint_t; - #define _fcdtocp(desc) (desc) - #define FILELIB UNIXBUFIO - -+#ifndef BIG_LONGS -+#define BIG_LONGS -+#endif -+ -+ - /* JPEG #define's - Look in the JPEG docs before changing - (Q) */ - - /* Determine the memory manager we are going to use. Valid values are: */ -@@ -1101,6 +1579,8 @@ typedef long hdf_pint_t; - #define _fcdtocp(desc) (desc) - #define FILELIB UNIXBUFIO - -+#define BIG_LONGS -+ - /* JPEG #define's - Look in the JPEG docs before changing - (Q) */ - - /* Determine the memory manager we are going to use. Valid values are: */ -@@ -1115,6 +1595,66 @@ typedef long hdf_pint_t; - - #endif /* IA64 */ - -+/* Renesas SuperH SH3(little/big)/SH4(little/big) */ -+#if defined (__linux__) && defined(__sh__) -+ -+#ifdef GOT_MACHINE -+If you get an error on this line more than one machine type has been defined. -+Please check your Makefile. -+#endif -+#define GOT_MACHINE 1 -+ -+#include <fcntl.h> -+#include <sys/types.h> /* for unbuffered file I/O */ -+#include <sys/stat.h> -+#include <unistd.h> -+#include <ctype.h> /* for character macros */ -+ -+#if defined (__LITTLE_ENDIAN__) -+#define DF_MT DFMT_SH -+#elif defined(__BIG_ENDIAN__) -+#define DF_MT DFMT_SHEB -+#endif -+ -+#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */ -+typedef void VOID; -+#endif /* end VOID */ -+ -+typedef void * VOIDP; -+typedef char * _fcd; -+typedef char char8; -+typedef unsigned char uchar8; -+typedef signed char int8; -+typedef unsigned char uint8; -+typedef short int int16; -+typedef unsigned short int uint16; -+typedef long int int32; -+typedef unsigned long int uint32; -+typedef int intn; -+typedef unsigned int uintn; -+typedef float float32; -+typedef double float64; -+typedef long intf; -+typedef int hdf_pint_t; -+#define FNAME_POST_UNDERSCORE -+#define _fcdtocp(desc) (desc) -+ -+#ifdef HAVE_FMPOOL -+#define FILELIB PAGEBUFIO /* enable page buffering */ -+#else -+#define FILELIB UNIXBUFIO -+#endif -+ -+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */ -+/* Determine the memory manager we are going to use. Valid values are: */ -+/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */ -+/* what each does */ -+#define JMEMSYS MEM_ANSI -+#define HAVE_STDC -+#define INCLUDES_ARE_ANSI -+ -+#endif /* Linux/sh */ -+ - #ifndef GOT_MACHINE - No machine type has been defined. Your Makefile needs to have someing like - -DSUN or -DUNICOS in order for the HDF internal structures to be defined ---- a/hdf/src/hconv.h -+++ b/hdf/src/hconv.h -@@ -59,7 +59,7 @@ - /* CONSTANT DEFINITIONS */ - /*****************************************************************************/ - /* Generally Big-Endian machines */ --#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) -+#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !(defined(__powerpc__) && defined(__LITTLE_ENDIAN__)) && !defined(__aarch64__) && !defined(__ARM_EABI__) && !defined(__riscv) - # define UI8_IN DFKnb1b /* Unsigned Integer, 8 bits */ - # define UI8_OUT DFKnb1b - # define SI16_IN DFKnb2b /* S = Signed */ diff --git a/gnu/packages/patches/hdf4-tirpc.patch b/gnu/packages/patches/hdf4-tirpc.patch deleted file mode 100644 index 3f436e3887..0000000000 --- a/gnu/packages/patches/hdf4-tirpc.patch +++ /dev/null @@ -1,33 +0,0 @@ -Build with libtirpc on all architectures because glibc no longer provides -SunRPC support. - -diff --git a/configure b/configure ---- a/configure -+++ b/configure -@@ -23635,10 +23635,13 @@ - *-pc-cygwin*) - LIBS="$LIBS -ltirpc" - CPPFLAGS="$CPPFLAGS -I/usr/include/tirpc" ;; -+ *-linux-gnu) -+ LIBS="$LIBS -ltirpc" -+ CPPFLAGS="$CPPFLAGS" ;; - *) ;; - esac - --if test "X$BUILD_XDR" != "Xyes"; then -+if test "X$BUILD_XDR" = "Xyes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -@@ -23693,9 +23696,9 @@ - ## but we need to make sure that it is present on the system. Do that here, - ## The SunRPC of the glibc has been replaced by a TI-RPC (Transport Independent RPC) library for IPv6 support - case "$host" in -- *-pc-cygwin*) -+ *) - HAVE_RPC="yes" -- ac_fn_c_check_header_mongrel "$LINENO" "rpc.h" "ac_cv_header_rpc_h" "$ac_includes_default" -+ ac_fn_c_check_header_mongrel "$LINENO" "rpc/rpc.h" "ac_cv_header_rpc_h" "$ac_includes_default" - if test "x$ac_cv_header_rpc_h" = xyes; then : - : - else diff --git a/gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch b/gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch new file mode 100644 index 0000000000..8f67553138 --- /dev/null +++ b/gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch @@ -0,0 +1,89 @@ +origin patch from nixos. + +see https://github.com/NixOS/nixpkgs/blob/2457551a54ffbd93b7d8f84af8b8fb3aac5cbdd5/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch + +--- + src/guix_utils.h | 41 +++++++++++++++++++++++++++++++++++++++++ + src/service_utils.h | 4 +++- + src/waylandwindow.cpp | 5 ++++- + 3 files changed, 48 insertions(+), 2 deletions(-) + create mode 100644 src/guix_utils.h + +diff a/src/guix_utils.h b/src/guix_utils.h +new file mode 100644 +index 0000000..726065d +--- /dev/null ++++ b/src/guix_utils.h +@@ -0,0 +1,24 @@ ++#ifndef GUIX_UTILS_H ++#define GUIX_UTILS_H ++ ++// kwin ++#include <kwinglobals.h> ++ ++namespace KWin ++{ ++ ++static QString unwrapExecutablePath(const QString &in_executablePath) ++{ ++ QString executablePath(in_executablePath); ++ ++ while (executablePath.endsWith("-real") && executablePath[executablePath.lastIndexOf("/")+1] == QChar('.')) { ++ executablePath.remove(executablePath.length() - 5, 5); ++ executablePath.remove(executablePath.lastIndexOf("/")+1, 1); ++ } ++ ++ return executablePath; ++} ++ ++}// namespace ++ ++#endif // GUIX_UTILS_H +diff a/src/utils/serviceutils.h b/src/utils/serviceutils.h +index 8a70c1f..475b15d 100644 +--- a/src/utils/serviceutils.h ++++ b/src/utils/serviceutils.h +@@ -19,6 +19,7 @@ + #include <QLoggingCategory> + //KF + #include <KApplicationTrader> ++#include "guix_utils.h" + + namespace KWin + { +@@ -26,8 +27,9 @@ namespace KWin + const static QString s_waylandInterfaceName = QStringLiteral("X-KDE-Wayland-Interfaces"); + const static QString s_dbusRestrictedInterfaceName = QStringLiteral("X-KDE-DBUS-Restricted-Interfaces"); + +-static QStringList fetchProcessServiceField(const QString &executablePath, const QString &fieldName) ++static QStringList fetchProcessServiceField(const QString &in_executablePath, const QString &fieldName) + { ++ const QString executablePath = unwrapExecutablePath(in_executablePath); + // needed to be able to use the logging category in a header static function + static QLoggingCategory KWIN_UTILS ("KWIN_UTILS", QtWarningMsg); + const auto servicesFound = KApplicationTrader::query([&executablePath] (const KService::Ptr &service) { +diff a/src/waylandwindow.cpp b/src/waylandwindow.cpp +index fd2c0c1..ae8cf96 100644 +--- a/src/waylandwindow.cpp ++++ b/src/waylandwindow.cpp +@@ -10,6 +10,7 @@ + #include "screens.h" + #include "wayland_server.h" + #include "workspace.h" ++#include "guix_utils.h" + + #include <KWaylandServer/display.h> + #include <KWaylandServer/clientbuffer.h> +@@ -173,7 +174,9 @@ void WaylandWindow::updateIcon() + + void WaylandWindow::updateResourceName() + { +- const QFileInfo fileInfo(surface()->client()->executablePath()); ++ const QString in_path = surface()->client()->executablePath(); ++ const QString path = unwrapExecutablePath(in_path); ++ const QFileInfo fileInfo(path); + if (fileInfo.exists()) { + const QByteArray executableFileName = fileInfo.fileName().toUtf8(); + setResourceClass(executableFileName, executableFileName); +-- +2.32.0
\ No newline at end of file diff --git a/gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch b/gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch new file mode 100644 index 0000000000..0a81cceb26 --- /dev/null +++ b/gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch @@ -0,0 +1,39 @@ +commit cdb28383402d248dbc6062f4391b038375c52385 +Author: Fabrice Fontaine <fontaine.fabrice@gmail.com> +Date: Fri Jul 17 21:25:03 2020 +0200 + + CMakeLists.txt: fix paths when FTDIPP is set + + Use the same project name (i.e. libftdi1 and not libftdipp1) when FTDIPP + is enabled as suggested by Aurelien Jarno in + http://developer.intra2net.com/mailarchive/html/libftdi/2020/msg00044.html + + Without this change, the libftdi1.pc config file defines the include + path as /usr/local/include/libftdipp1 while the ftdi.h file is actually + installed in /usr/local/include/libftdi1 + + This is an issue for example for libsigrok which will fail on: + + In file included from src/hardware/asix-sigma/protocol.c:27: + src/hardware/asix-sigma/protocol.h:28:10: fatal error: ftdi.h: No such file or directory + 28 | #include <ftdi.h> + | ^~~~~~~~ + + Fixes: + - http://autobuild.buildroot.org/results/1427f44e36752c337791597fab47a1889552a2fe + + Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5aecafc..3b0b87c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -136,7 +136,7 @@ endif () + + add_subdirectory(src) + if ( FTDIPP ) +- project(libftdipp1 C CXX) ++ project(libftdi1 C CXX) + add_subdirectory(ftdipp) + endif () + if ( PYTHON_BINDINGS ) diff --git a/gnu/packages/patches/nanosvg-prusa-slicer.patch b/gnu/packages/patches/nanosvg-prusa-slicer.patch new file mode 100644 index 0000000000..dc11e9365c --- /dev/null +++ b/gnu/packages/patches/nanosvg-prusa-slicer.patch @@ -0,0 +1,248 @@ +From abcd277ea45e9098bed752cf9c6875b533c0892f Mon Sep 17 00:00:00 2001 +From: AlbrechtS <AlbrechtS.svn@fltk.example.org> +Date: Sun, 4 Feb 2018 23:47:38 +0100 +Subject: [PATCH] Modify rasterizer to support non-square X,Y axes scaling. + +Add new function nsvgRasterizeXY() similar to nsvgRasterize() but with +separate scaling factors for x-axis and y-axis. +--- + src/nanosvgrast.h | 78 +++++++++++++++++++++++++++++++---------------- + 1 file changed, 51 insertions(+), 27 deletions(-) + +diff --git a/src/nanosvgrast.h b/src/nanosvgrast.h +index 17ba3b0..a83db27 100644 +--- a/src/nanosvgrast.h ++++ b/src/nanosvgrast.h +@@ -22,6 +22,12 @@ + * + */ + ++/* Modified by FLTK to support non-square X,Y axes scaling. ++ * ++ * Added: nsvgRasterizeXY() ++*/ ++ ++ + #ifndef NANOSVGRAST_H + #define NANOSVGRAST_H + +@@ -46,6 +52,9 @@ typedef struct NSVGrasterizer NSVGrasterizer; + unsigned char* img = malloc(w*h*4); + // Rasterize + nsvgRasterize(rast, image, 0,0,1, img, w, h, w*4); ++ ++ // For non-square X,Y scaling, use ++ nsvgRasterizeXY(rast, image, 0,0,1,1, img, w, h, w*4); + */ + + // Allocated rasterizer context. +@@ -55,7 +64,7 @@ NSVGrasterizer* nsvgCreateRasterizer(void); + // r - pointer to rasterizer context + // image - pointer to image to rasterize + // tx,ty - image offset (applied after scaling) +-// scale - image scale ++// scale - image scale (assumes square aspect ratio) + // dst - pointer to destination image data, 4 bytes per pixel (RGBA) + // w - width of the image to render + // h - height of the image to render +@@ -64,6 +73,12 @@ void nsvgRasterize(NSVGrasterizer* r, + NSVGimage* image, float tx, float ty, float scale, + unsigned char* dst, int w, int h, int stride); + ++// As above, but allow X and Y axes to scale independently for non-square aspects ++void nsvgRasterizeXY(NSVGrasterizer* r, ++ NSVGimage* image, float tx, float ty, ++ float sx, float sy, ++ unsigned char* dst, int w, int h, int stride); ++ + // Deletes rasterizer context. + void nsvgDeleteRasterizer(NSVGrasterizer*); + +@@ -370,7 +385,7 @@ static void nsvg__flattenCubicBez(NSVGrasterizer* r, + nsvg__flattenCubicBez(r, x1234,y1234, x234,y234, x34,y34, x4,y4, level+1, type); + } + +-static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float scale) ++static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float sx, float sy) + { + int i, j; + NSVGpath* path; +@@ -378,13 +393,13 @@ static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float scale) + for (path = shape->paths; path != NULL; path = path->next) { + r->npoints = 0; + // Flatten path +- nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0); ++ nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, 0); + for (i = 0; i < path->npts-1; i += 3) { + float* p = &path->pts[i*2]; +- nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, 0); ++ nsvg__flattenCubicBez(r, p[0]*sx,p[1]*sy, p[2]*sx,p[3]*sy, p[4]*sx,p[5]*sy, p[6]*sx,p[7]*sy, 0, 0); + } + // Close path +- nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0); ++ nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, 0); + // Build edges + for (i = 0, j = r->npoints-1; i < r->npoints; j = i++) + nsvg__addEdge(r, r->points[j].x, r->points[j].y, r->points[i].x, r->points[i].y); +@@ -734,7 +749,7 @@ static void nsvg__prepareStroke(NSVGrasterizer* r, float miterLimit, int lineJoi + } + } + +-static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float scale) ++static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float sx, float sy) + { + int i, j, closed; + NSVGpath* path; +@@ -742,15 +757,16 @@ static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float + float miterLimit = shape->miterLimit; + int lineJoin = shape->strokeLineJoin; + int lineCap = shape->strokeLineCap; +- float lineWidth = shape->strokeWidth * scale; ++ const float sw = (sx + sy) / 2; // average scaling factor ++ const float lineWidth = shape->strokeWidth * sw; // FIXME (?) + + for (path = shape->paths; path != NULL; path = path->next) { + // Flatten path + r->npoints = 0; +- nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, NSVG_PT_CORNER); ++ nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, NSVG_PT_CORNER); + for (i = 0; i < path->npts-1; i += 3) { + float* p = &path->pts[i*2]; +- nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, NSVG_PT_CORNER); ++ nsvg__flattenCubicBez(r, p[0]*sx,p[1]*sy, p[2]*sx,p[3]*sy, p[4]*sx,p[5]*sy, p[6]*sx,p[7]*sy, 0, NSVG_PT_CORNER); + } + if (r->npoints < 2) + continue; +@@ -796,7 +812,7 @@ static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float + dashOffset -= shape->strokeDashArray[idash]; + idash = (idash + 1) % shape->strokeDashCount; + } +- dashLen = (shape->strokeDashArray[idash] - dashOffset) * scale; ++ dashLen = (shape->strokeDashArray[idash] - dashOffset) * sw; + + for (j = 1; j < r->npoints2; ) { + float dx = r->points2[j].x - cur.x; +@@ -818,7 +834,7 @@ static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float + // Advance dash pattern + dashState = !dashState; + idash = (idash+1) % shape->strokeDashCount; +- dashLen = shape->strokeDashArray[idash] * scale; ++ dashLen = shape->strokeDashArray[idash] * sw; + // Restart + cur.x = x; + cur.y = y; +@@ -987,7 +1003,7 @@ static inline int nsvg__div255(int x) + } + + static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* cover, int x, int y, +- float tx, float ty, float scale, NSVGcachedPaint* cache) ++ float tx, float ty, float sx, float sy, NSVGcachedPaint* cache) + { + + if (cache->type == NSVG_PAINT_COLOR) { +@@ -1028,9 +1044,9 @@ static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* co + int i, cr, cg, cb, ca; + unsigned int c; + +- fx = ((float)x - tx) / scale; +- fy = ((float)y - ty) / scale; +- dx = 1.0f / scale; ++ fx = ((float)x - tx) / sx; ++ fy = ((float)y - ty) / sy; ++ dx = 1.0f / sx; + + for (i = 0; i < count; i++) { + int r,g,b,a,ia; +@@ -1073,9 +1089,9 @@ static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* co + int i, cr, cg, cb, ca; + unsigned int c; + +- fx = ((float)x - tx) / scale; +- fy = ((float)y - ty) / scale; +- dx = 1.0f / scale; ++ fx = ((float)x - tx) / sx; ++ fy = ((float)y - ty) / sy; ++ dx = 1.0f / sx; + + for (i = 0; i < count; i++) { + int r,g,b,a,ia; +@@ -1114,7 +1130,7 @@ static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* co + } + } + +-static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, float scale, NSVGcachedPaint* cache, char fillRule) ++static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, float sx, float sy, NSVGcachedPaint* cache, char fillRule) + { + NSVGactiveEdge *active = NULL; + int y, s; +@@ -1196,7 +1212,7 @@ static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, fl + if (xmin < 0) xmin = 0; + if (xmax > r->width-1) xmax = r->width-1; + if (xmin <= xmax) { +- nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty, scale, cache); ++ nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty, sx, sy, cache); + } + } + +@@ -1364,8 +1380,9 @@ static void dumpEdges(NSVGrasterizer* r, const char* name) + } + */ + +-void nsvgRasterize(NSVGrasterizer* r, +- NSVGimage* image, float tx, float ty, float scale, ++void nsvgRasterizeXY(NSVGrasterizer* r, ++ NSVGimage* image, float tx, float ty, ++ float sx, float sy, + unsigned char* dst, int w, int h, int stride) + { + NSVGshape *shape = NULL; +@@ -1396,7 +1413,7 @@ void nsvgRasterize(NSVGrasterizer* r, + r->freelist = NULL; + r->nedges = 0; + +- nsvg__flattenShape(r, shape, scale); ++ nsvg__flattenShape(r, shape, sx, sy); + + // Scale and translate edges + for (i = 0; i < r->nedges; i++) { +@@ -1414,14 +1431,14 @@ void nsvgRasterize(NSVGrasterizer* r, + // now, traverse the scanlines and find the intersections on each scanline, use non-zero rule + nsvg__initPaint(&cache, &shape->fill, shape->opacity); + +- nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, shape->fillRule); ++ nsvg__rasterizeSortedEdges(r, tx,ty, sx, sy, &cache, shape->fillRule); + } +- if (shape->stroke.type != NSVG_PAINT_NONE && (shape->strokeWidth * scale) > 0.01f) { ++ if (shape->stroke.type != NSVG_PAINT_NONE && (shape->strokeWidth * sx) > 0.01f) { + nsvg__resetPool(r); + r->freelist = NULL; + r->nedges = 0; + +- nsvg__flattenShapeStroke(r, shape, scale); ++ nsvg__flattenShapeStroke(r, shape, sx, sy); + + // dumpEdges(r, "edge.svg"); + +@@ -1441,7 +1458,7 @@ void nsvgRasterize(NSVGrasterizer* r, + // now, traverse the scanlines and find the intersections on each scanline, use non-zero rule + nsvg__initPaint(&cache, &shape->stroke, shape->opacity); + +- nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, NSVG_FILLRULE_NONZERO); ++ nsvg__rasterizeSortedEdges(r, tx,ty,sx, sy, &cache, NSVG_FILLRULE_NONZERO); + } + } + +@@ -1453,6 +1470,13 @@ void nsvgRasterize(NSVGrasterizer* r, + r->stride = 0; + } + ++void nsvgRasterize(NSVGrasterizer* r, ++ NSVGimage* image, float tx, float ty, float scale, ++ unsigned char* dst, int w, int h, int stride) ++{ ++ nsvgRasterizeXY(r,image, tx, ty, scale, scale, dst, w, h, stride); ++} ++ + #endif // NANOSVGRAST_IMPLEMENTATION + + #endif // NANOSVGRAST_H diff --git a/gnu/packages/patches/openjdk-21-fix-rpath.patch b/gnu/packages/patches/openjdk-21-fix-rpath.patch new file mode 100644 index 0000000000..62e2a50a52 --- /dev/null +++ b/gnu/packages/patches/openjdk-21-fix-rpath.patch @@ -0,0 +1,16 @@ +Author: Danny Milosavljevic <dannym@scratchpost.org> +Date: 2023-09-20 + +diff -ru openjdk-21/make/modules/jdk.internal.le/Lib.gmk.orig openjdk-21.drv-4/source/make/modules/jdk.internal.le/Lib.gmk +--- openjdk-21/make/modules/jdk.internal.le/Lib.gmk.orig 1970-01-01 01:00:01.000000000 +0100 ++++ openjdk-21/make/modules/jdk.internal.le/Lib.gmk 2023-09-20 21:42:04.626821839 +0200 +@@ -34,7 +34,8 @@ + TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CXXFLAGS_JDKLIB), \ +- LDFLAGS := $(LDFLAGS_JDKLIB), \ ++ LDFLAGS := $(LDFLAGS_JDKLIB) \ ++ $(call SET_SHARED_LIBRARY_ORIGIN), \ + LIBS_unix := $(JDKLIB_LIBS) $(LIBCXX), \ + LIBS_windows := $(JDKLIB_LIBS) user32.lib, \ + )) diff --git a/gnu/packages/patches/tensorflow-lite-unbundle.patch b/gnu/packages/patches/tensorflow-lite-unbundle.patch new file mode 100644 index 0000000000..efd7d5bbc6 --- /dev/null +++ b/gnu/packages/patches/tensorflow-lite-unbundle.patch @@ -0,0 +1,27 @@ +Disable local CMake build code for bundled 3rdparty components. + +diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt +index 0476170e075..90abea00e8c 100644 +--- a/tensorflow/lite/CMakeLists.txt ++++ b/tensorflow/lite/CMakeLists.txt +@@ -564,7 +564,7 @@ set(_ALL_TFLITE_HDRS ${_ALL_TFLITE_SRCS}) + list(FILTER _ALL_TFLITE_HDRS INCLUDE REGEX ".*\\.h$") + target_include_directories(tensorflow-lite + PUBLIC $<BUILD_INTERFACE:${TENSORFLOW_SOURCE_DIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> +- ${CMAKE_BINARY_DIR}/gemmlowp ++ ${gemmlowp_ROOT}/include/gemmlowp + ) + target_link_libraries(tensorflow-lite + PUBLIC +diff --git a/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake b/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake +index 70331ad0a69..a9bd8a0f3bd 100644 +--- a/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake ++++ b/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake +@@ -18,7 +18,6 @@ + include(gemmlowp) + if(gemmlowp_POPULATED) + set(GEMMLOWP_FOUND TRUE) +- get_target_property(GEMMLOWP_INCLUDE_DIRS gemmlowp INTERFACE_DIRECTORIES) + set(GEMMLOWP_LIBRARIES + gemmlowp + gemmlowp_fixedpoint |