mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
Merge pull request #2459 from MilhouseVH/le90_package_bumps_2018v1
Package Updates: various
This commit is contained in:
commit
161ae076c9
@ -0,0 +1,63 @@
|
||||
From 01239c23f57e74ec40c92144d22fe153ee65f4ff Mon Sep 17 00:00:00 2001
|
||||
From: Tanu Kaskinen <tanuk@iki.fi>
|
||||
Date: Wed, 24 Jan 2018 03:51:49 +0200
|
||||
Subject: [PATCH] memfd-wrappers: only define memfd_create() if not already
|
||||
defined
|
||||
|
||||
glibc 2.27 is to be released soon, and it will provide memfd_create().
|
||||
If glibc provides the function, we must not define it ourselves,
|
||||
otherwise building fails due to conflict between the two implementations
|
||||
of the same function.
|
||||
|
||||
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=104733
|
||||
---
|
||||
configure.ac | 3 +++
|
||||
src/pulsecore/memfd-wrappers.h | 7 ++++---
|
||||
2 files changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 013918f1a..1095ae8cb 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -607,6 +607,9 @@ AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"],
|
||||
[AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory.
|
||||
*** Use linux v3.17 or higher for such a feature.])])
|
||||
|
||||
+AS_IF([test "x$HAVE_MEMFD" = "x1"],
|
||||
+ AC_CHECK_FUNCS([memfd_create]))
|
||||
+
|
||||
AC_SUBST(HAVE_MEMFD)
|
||||
AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1])
|
||||
AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.]))
|
||||
diff --git a/src/pulsecore/memfd-wrappers.h b/src/pulsecore/memfd-wrappers.h
|
||||
index 3bed9b2b1..c7aadfd3c 100644
|
||||
--- a/src/pulsecore/memfd-wrappers.h
|
||||
+++ b/src/pulsecore/memfd-wrappers.h
|
||||
@@ -20,13 +20,14 @@
|
||||
License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
-#ifdef HAVE_MEMFD
|
||||
+#if defined(HAVE_MEMFD) && !defined(HAVE_MEMFD_CREATE)
|
||||
|
||||
#include <sys/syscall.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
/*
|
||||
- * No glibc wrappers exist for memfd_create(2), so provide our own.
|
||||
+ * Before glibc version 2.27 there was no wrapper for memfd_create(2),
|
||||
+ * so we have to provide our own.
|
||||
*
|
||||
* Also define memfd fcntl sealing macros. While they are already
|
||||
* defined in the kernel header file <linux/fcntl.h>, that file as
|
||||
@@ -63,6 +64,6 @@ static inline int memfd_create(const char *name, unsigned int flags) {
|
||||
#define F_SEAL_WRITE 0x0008 /* prevent writes */
|
||||
#endif
|
||||
|
||||
-#endif /* HAVE_MEMFD */
|
||||
+#endif /* HAVE_MEMFD && !HAVE_MEMFD_CREATE */
|
||||
|
||||
#endif
|
||||
--
|
||||
2.15.1
|
||||
|
@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sqlite"
|
||||
PKG_VERSION="autoconf-3200000"
|
||||
PKG_SHA256="3814c6f629ff93968b2b37a70497cfe98b366bf587a2261a56a5f750af6ae6a0"
|
||||
PKG_VERSION="autoconf-3220000"
|
||||
PKG_SHA256="2824ab1238b706bc66127320afbdffb096361130e23291f26928a027b885c612"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PublicDomain"
|
||||
PKG_SITE="https://www.sqlite.org/"
|
||||
PKG_URL="https://www.sqlite.org/2017/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="https://www.sqlite.org/2018/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_SECTION="database"
|
||||
PKG_SHORTDESC="sqlite: An Embeddable SQL Database Engine"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gdb"
|
||||
PKG_VERSION="7.12.1"
|
||||
PKG_SHA256="4607680b973d3ec92c30ad029f1b7dbde3876869e6b3a117d8a7e90081113186"
|
||||
PKG_VERSION="8.1"
|
||||
PKG_SHA256="af61a0263858e69c5dce51eab26662ff3d2ad9aa68da9583e8143b5426be4b34"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.gnu.org/software/gdb/"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="autoconf-archive"
|
||||
PKG_VERSION="2015.09.25"
|
||||
PKG_SHA256="7c0467a5dbd2340153bca5a477bd92fbc951d9ee3cbed92f16f6bf08ac0c350a"
|
||||
PKG_VERSION="2017.09.28"
|
||||
PKG_SHA256="5c9fb5845b38b28982a3ef12836f76b35f46799ef4a2e46b48e2bd3c6182fa01"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://www.gnu.org/software/autoconf-archive/"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="binutils"
|
||||
PKG_VERSION="2.29"
|
||||
PKG_SHA256="172e8c89472cf52712fd23a9f14e9bca6182727fb45b0f8f482652a83d5a11b4"
|
||||
PKG_VERSION="2.30"
|
||||
PKG_SHA256="8c3850195d1c093d290a716e20ebcaa72eda32abf5e3d8611154b39cff79e9ea"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.gnu.org/software/binutils/"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="ccache"
|
||||
PKG_VERSION="3.3.4"
|
||||
PKG_SHA256="fa9d7f38367431bc86b19ad107d709ca7ecf1574fdacca01698bdf0a47cd8567"
|
||||
PKG_VERSION="3.3.6"
|
||||
PKG_SHA256="eac8d2a5055014bebae1434d9b7c66c25d64323800808c27a4534cee167e6bea"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://ccache.samba.org/"
|
||||
|
@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="fribidi"
|
||||
PKG_VERSION="0.19.7"
|
||||
PKG_SHA256="08222a6212bbc2276a2d55c3bf370109ae4a35b689acbc66571ad2a670595a8e"
|
||||
PKG_VERSION="1.0.1"
|
||||
PKG_SHA256="c1b182d70590b6cdb5545bab8149de33b966800f27f2d9365c68917ed5a174e4"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://fribidi.freedesktop.org/"
|
||||
PKG_URL="http://fribidi.freedesktop.org/download/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="https://github.com/fribidi/fribidi/releases/download/v$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_SECTION="devel"
|
||||
PKG_SHORTDESC="fribidi: The Bidirectional Algorithm library"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="glibc"
|
||||
PKG_VERSION="2.26"
|
||||
PKG_SHA256="e54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd"
|
||||
PKG_VERSION="2.27"
|
||||
PKG_SHA256="5172de54318ec0b7f2735e5a91d908afe1c9ca291fec16b5374d9faadfc1fc72"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.gnu.org/software/libc/"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="ncurses"
|
||||
PKG_VERSION="6.0-20171007"
|
||||
PKG_SHA256="d74ce1f651824b6254a6d913d312e4ab32874812bb066288ef87b0b0482c4db5"
|
||||
PKG_VERSION="6.1-20180203"
|
||||
PKG_SHA256="fac9db9460f271ee632af386a5b502d43a25d7cf14138e3d3166d4bedc4f6cb0"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="http://www.gnu.org/software/ncurses/"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libjpeg-turbo"
|
||||
PKG_VERSION="1.5.1"
|
||||
PKG_SHA256="41429d3d253017433f66e3d472b8c7d998491d2f41caa7306b8d9a6f2a2c666c"
|
||||
PKG_VERSION="1.5.3"
|
||||
PKG_SHA256="b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://libjpeg-turbo.virtualgl.org/"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libraw"
|
||||
PKG_VERSION="0.18.2"
|
||||
PKG_SHA256="ce366bb38c1144130737eb16e919038937b4dc1ab165179a225d5e847af2abc6"
|
||||
PKG_VERSION="0.18.7"
|
||||
PKG_SHA256="87e347c261a8e87935d9a23afd750d27676b99f540e8552314d40db0ea315771"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://www.libraw.org/"
|
||||
|
340
packages/graphics/libraw/patches/libraw-01-fix-glibc-2.27.patch
Normal file
340
packages/graphics/libraw/patches/libraw-01-fix-glibc-2.27.patch
Normal file
@ -0,0 +1,340 @@
|
||||
From 158398653a14e8b5884d744ec711ba31a8ceafdc Mon Sep 17 00:00:00 2001
|
||||
From: Alex Tutubalin <lexa@lexa.ru>
|
||||
Date: Fri, 2 Feb 2018 08:31:47 +0300
|
||||
Subject: [PATCH] powf64=>libraw_powf64
|
||||
|
||||
---
|
||||
internal/dcraw_common.cpp | 98 +++++++++++++++++++++++------------------------
|
||||
2 files changed, 98 insertions(+), 98 deletions(-)
|
||||
|
||||
diff --git a/internal/dcraw_common.cpp b/internal/dcraw_common.cpp
|
||||
index a9b45db0..66eb08e4 100644
|
||||
--- a/internal/dcraw_common.cpp
|
||||
+++ b/internal/dcraw_common.cpp
|
||||
@@ -5849,7 +5849,7 @@ static float powf_lim(float a, float b, float limup)
|
||||
{
|
||||
return (b>limup || b < -limup)?0.f:powf(a,b);
|
||||
}
|
||||
-static float powf64(float a, float b)
|
||||
+static float libraw_powf64(float a, float b)
|
||||
{
|
||||
return powf_lim(a,b,64.f);
|
||||
}
|
||||
@@ -5873,7 +5873,7 @@ static float my_roundf(float x) {
|
||||
static float _CanonConvertAperture(ushort in)
|
||||
{
|
||||
if ((in == (ushort)0xffe0) || (in == (ushort)0x7fff)) return 0.0f;
|
||||
- return powf64(2.0, in/64.0);
|
||||
+ return libraw_powf64(2.0, in/64.0);
|
||||
}
|
||||
|
||||
static float _CanonConvertEV (short in)
|
||||
@@ -6336,21 +6336,21 @@ void CLASS processNikonLensData (uchar *LensData, unsigned len)
|
||||
if (fabsf(imgdata.lens.makernotes.MinFocal) < 1.1f)
|
||||
{
|
||||
if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 2])
|
||||
- imgdata.lens.makernotes.MinFocal = 5.0f * powf64(2.0f, (float)LensData[i + 2] / 24.0f);
|
||||
+ imgdata.lens.makernotes.MinFocal = 5.0f * libraw_powf64(2.0f, (float)LensData[i + 2] / 24.0f);
|
||||
if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 3])
|
||||
- imgdata.lens.makernotes.MaxFocal = 5.0f * powf64(2.0f, (float)LensData[i + 3] / 24.0f);
|
||||
+ imgdata.lens.makernotes.MaxFocal = 5.0f * libraw_powf64(2.0f, (float)LensData[i + 3] / 24.0f);
|
||||
if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 4])
|
||||
- imgdata.lens.makernotes.MaxAp4MinFocal = powf64(2.0f, (float)LensData[i + 4] / 24.0f);
|
||||
+ imgdata.lens.makernotes.MaxAp4MinFocal = libraw_powf64(2.0f, (float)LensData[i + 4] / 24.0f);
|
||||
if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 5])
|
||||
- imgdata.lens.makernotes.MaxAp4MaxFocal = powf64(2.0f, (float)LensData[i + 5] / 24.0f);
|
||||
+ imgdata.lens.makernotes.MaxAp4MaxFocal = libraw_powf64(2.0f, (float)LensData[i + 5] / 24.0f);
|
||||
}
|
||||
imgdata.lens.nikon.NikonMCUVersion = LensData[i + 6];
|
||||
if (i != 2)
|
||||
{
|
||||
if ((LensData[i - 1]) &&
|
||||
(fabsf(imgdata.lens.makernotes.CurFocal) < 1.1f))
|
||||
- imgdata.lens.makernotes.CurFocal = 5.0f * powf64(2.0f, (float)LensData[i - 1] / 24.0f);
|
||||
- if (LensData[i + 7]) imgdata.lens.nikon.NikonEffectiveMaxAp = powf64(2.0f, (float)LensData[i + 7] / 24.0f);
|
||||
+ imgdata.lens.makernotes.CurFocal = 5.0f * libraw_powf64(2.0f, (float)LensData[i - 1] / 24.0f);
|
||||
+ if (LensData[i + 7]) imgdata.lens.nikon.NikonEffectiveMaxAp = libraw_powf64(2.0f, (float)LensData[i + 7] / 24.0f);
|
||||
}
|
||||
imgdata.lens.makernotes.LensID =
|
||||
(unsigned long long) LensData[i] << 56 |
|
||||
@@ -6827,13 +6827,13 @@ void CLASS PentaxLensInfo (unsigned id, unsigned len) // tag 0x0207
|
||||
if (table_buf[iLensData+9] &&
|
||||
(fabs(imgdata.lens.makernotes.CurFocal) < 0.1f))
|
||||
imgdata.lens.makernotes.CurFocal =
|
||||
- 10*(table_buf[iLensData+9]>>2) * powf64(4, (table_buf[iLensData+9] & 0x03)-2);
|
||||
+ 10*(table_buf[iLensData+9]>>2) * libraw_powf64(4, (table_buf[iLensData+9] & 0x03)-2);
|
||||
if (table_buf[iLensData+10] & 0xf0)
|
||||
imgdata.lens.makernotes.MaxAp4CurFocal =
|
||||
- powf64(2.0f, (float)((table_buf[iLensData+10] & 0xf0) >>4)/4.0f);
|
||||
+ libraw_powf64(2.0f, (float)((table_buf[iLensData+10] & 0xf0) >>4)/4.0f);
|
||||
if (table_buf[iLensData+10] & 0x0f)
|
||||
imgdata.lens.makernotes.MinAp4CurFocal =
|
||||
- powf64(2.0f, (float)((table_buf[iLensData+10] & 0x0f) + 10)/4.0f);
|
||||
+ libraw_powf64(2.0f, (float)((table_buf[iLensData+10] & 0x0f) + 10)/4.0f);
|
||||
|
||||
if (iLensData != 12)
|
||||
{
|
||||
@@ -6854,14 +6854,14 @@ void CLASS PentaxLensInfo (unsigned id, unsigned len) // tag 0x0207
|
||||
if ((table_buf[iLensData+14] > 1) &&
|
||||
(fabs(imgdata.lens.makernotes.MaxAp4CurFocal) < 0.7f))
|
||||
imgdata.lens.makernotes.MaxAp4CurFocal =
|
||||
- powf64(2.0f, (float)((table_buf[iLensData+14] & 0x7f) -1)/32.0f);
|
||||
+ libraw_powf64(2.0f, (float)((table_buf[iLensData+14] & 0x7f) -1)/32.0f);
|
||||
}
|
||||
else if ((id != 0x12e76) && // K-5
|
||||
(table_buf[iLensData+15] > 1) &&
|
||||
(fabs(imgdata.lens.makernotes.MaxAp4CurFocal) < 0.7f))
|
||||
{
|
||||
imgdata.lens.makernotes.MaxAp4CurFocal =
|
||||
- powf64(2.0f, (float)((table_buf[iLensData+15] & 0x7f) -1)/32.0f);
|
||||
+ libraw_powf64(2.0f, (float)((table_buf[iLensData+15] & 0x7f) -1)/32.0f);
|
||||
}
|
||||
}
|
||||
free(table_buf);
|
||||
@@ -7349,11 +7349,11 @@ void CLASS process_Sony_0x9050 (uchar * buf, unsigned id)
|
||||
{
|
||||
if (buf[0])
|
||||
imgdata.lens.makernotes.MaxAp4CurFocal =
|
||||
- my_roundf(powf64(2.0f, ((float)SonySubstitution[buf[0]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f;
|
||||
+ my_roundf(libraw_powf64(2.0f, ((float)SonySubstitution[buf[0]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f;
|
||||
|
||||
if (buf[1])
|
||||
imgdata.lens.makernotes.MinAp4CurFocal =
|
||||
- my_roundf(powf64(2.0f, ((float)SonySubstitution[buf[1]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f;
|
||||
+ my_roundf(libraw_powf64(2.0f, ((float)SonySubstitution[buf[1]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f;
|
||||
}
|
||||
|
||||
if (imgdata.lens.makernotes.CameraMount != LIBRAW_MOUNT_FixedLens)
|
||||
@@ -7363,7 +7363,7 @@ void CLASS process_Sony_0x9050 (uchar * buf, unsigned id)
|
||||
lid = SonySubstitution[buf[0x3d]] << 8 |
|
||||
SonySubstitution[buf[0x3c]];
|
||||
imgdata.lens.makernotes.CurAp =
|
||||
- powf64(2.0f, ((float)lid/256.0f - 16.0f) / 2.0f);
|
||||
+ libraw_powf64(2.0f, ((float)lid/256.0f - 16.0f) / 2.0f);
|
||||
}
|
||||
if (buf[0x105] &&
|
||||
(imgdata.lens.makernotes.LensMount != LIBRAW_MOUNT_Canon_EF) &&
|
||||
@@ -7749,7 +7749,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer)
|
||||
{
|
||||
unsigned char cc;
|
||||
fread(&cc, 1, 1, ifp);
|
||||
- iso_speed = (int)(100.0 * powf64(2.0, (double)(cc) / 12.0 - 5.0));
|
||||
+ iso_speed = (int)(100.0 * libraw_powf64(2.0, (double)(cc) / 12.0 - 5.0));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -7794,7 +7794,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer)
|
||||
}
|
||||
break;
|
||||
case 0x1002:
|
||||
- imgdata.lens.makernotes.CurAp = powf64(2.0f, getreal(type)/2);
|
||||
+ imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, getreal(type)/2);
|
||||
break;
|
||||
case 0x20100102:
|
||||
stmread(imgdata.shootinginfo.InternalBodySerial, len, ifp);
|
||||
@@ -7821,10 +7821,10 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer)
|
||||
stmread(imgdata.lens.makernotes.Lens,len, ifp);
|
||||
break;
|
||||
case 0x20100205:
|
||||
- imgdata.lens.makernotes.MaxAp4MinFocal = powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
+ imgdata.lens.makernotes.MaxAp4MinFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
break;
|
||||
case 0x20100206:
|
||||
- imgdata.lens.makernotes.MaxAp4MaxFocal = powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
+ imgdata.lens.makernotes.MaxAp4MaxFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
break;
|
||||
case 0x20100207:
|
||||
imgdata.lens.makernotes.MinFocal = (float)get2();
|
||||
@@ -7835,7 +7835,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer)
|
||||
imgdata.lens.makernotes.MaxFocal = imgdata.lens.makernotes.MinFocal;
|
||||
break;
|
||||
case 0x2010020a:
|
||||
- imgdata.lens.makernotes.MaxAp4CurFocal = powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
+ imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
break;
|
||||
case 0x20100301:
|
||||
imgdata.lens.makernotes.TeleconverterID = fgetc(ifp) << 8;
|
||||
@@ -8144,7 +8144,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer)
|
||||
lid = (((ushort)table_buf[2])<<8) |
|
||||
((ushort)table_buf[3]);
|
||||
imgdata.lens.makernotes.CurAp =
|
||||
- powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f);
|
||||
+ libraw_powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f);
|
||||
}
|
||||
break;
|
||||
case 1536:
|
||||
@@ -8675,7 +8675,7 @@ void CLASS parse_makernote (int base, int uptag)
|
||||
}
|
||||
break;
|
||||
case 0x1002:
|
||||
- imgdata.lens.makernotes.CurAp = powf64(2.0f, getreal(type)/2);
|
||||
+ imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, getreal(type)/2);
|
||||
break;
|
||||
case 0x20401112:
|
||||
imgdata.makernotes.olympus.OlympusCropID = get2();
|
||||
@@ -8709,10 +8709,10 @@ void CLASS parse_makernote (int base, int uptag)
|
||||
stmread(imgdata.lens.makernotes.Lens, len, ifp);
|
||||
break;
|
||||
case 0x20100205:
|
||||
- imgdata.lens.makernotes.MaxAp4MinFocal = powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
+ imgdata.lens.makernotes.MaxAp4MinFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
break;
|
||||
case 0x20100206:
|
||||
- imgdata.lens.makernotes.MaxAp4MaxFocal = powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
+ imgdata.lens.makernotes.MaxAp4MaxFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
break;
|
||||
case 0x20100207:
|
||||
imgdata.lens.makernotes.MinFocal = (float)get2();
|
||||
@@ -8723,7 +8723,7 @@ void CLASS parse_makernote (int base, int uptag)
|
||||
imgdata.lens.makernotes.MaxFocal = imgdata.lens.makernotes.MinFocal;
|
||||
break;
|
||||
case 0x2010020a:
|
||||
- imgdata.lens.makernotes.MaxAp4CurFocal = powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
+ imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
|
||||
break;
|
||||
case 0x20100301:
|
||||
imgdata.lens.makernotes.TeleconverterID = fgetc(ifp) << 8;
|
||||
@@ -9150,7 +9150,7 @@ void CLASS parse_makernote (int base, int uptag)
|
||||
lid = (((ushort)table_buf[2])<<8) |
|
||||
((ushort)table_buf[3]);
|
||||
imgdata.lens.makernotes.CurAp =
|
||||
- powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f);
|
||||
+ libraw_powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f);
|
||||
}
|
||||
break;
|
||||
case 1536:
|
||||
@@ -9248,19 +9248,19 @@ void CLASS parse_makernote (int base, int uptag)
|
||||
{
|
||||
unsigned char cc;
|
||||
fread(&cc,1,1,ifp);
|
||||
- iso_speed = int(100.0 * powf64(2.0f,float(cc)/12.0-5.0));
|
||||
+ iso_speed = int(100.0 * libraw_powf64(2.0f,float(cc)/12.0-5.0));
|
||||
}
|
||||
if (tag == 4 && len > 26 && len < 35) {
|
||||
if ((i=(get4(),get2())) != 0x7fff && (!iso_speed || iso_speed == 65535))
|
||||
- iso_speed = 50 * powf64(2.0, i/32.0 - 4);
|
||||
+ iso_speed = 50 * libraw_powf64(2.0, i/32.0 - 4);
|
||||
#ifdef LIBRAW_LIBRARY_BUILD
|
||||
get4();
|
||||
#else
|
||||
if ((i=(get2(),get2())) != 0x7fff && !aperture)
|
||||
- aperture = powf64(2.0, i/64.0);
|
||||
+ aperture = libraw_powf64(2.0, i/64.0);
|
||||
#endif
|
||||
if ((i=get2()) != 0xffff && !shutter)
|
||||
- shutter = powf64(2.0, (short) i/-32.0);
|
||||
+ shutter = libraw_powf64(2.0, (short) i/-32.0);
|
||||
wbi = (get2(),get2());
|
||||
shot_order = (get2(),get2());
|
||||
}
|
||||
@@ -9854,7 +9854,7 @@ void CLASS parse_exif (int base)
|
||||
imgdata.lens.Lens[0] = 0;
|
||||
break;
|
||||
case 0x9205:
|
||||
- imgdata.lens.EXIF_MaxAp = powf64(2.0f, (getreal(type) / 2.0f));
|
||||
+ imgdata.lens.EXIF_MaxAp = libraw_powf64(2.0f, (getreal(type) / 2.0f));
|
||||
break;
|
||||
#endif
|
||||
case 33434: tiff_ifd[tiff_nifds-1].t_shutter =
|
||||
@@ -9869,11 +9869,11 @@ void CLASS parse_exif (int base)
|
||||
case 36868: get_timestamp(0); break;
|
||||
case 37377: if ((expo = -getreal(type)) < 128 && shutter == 0.)
|
||||
tiff_ifd[tiff_nifds-1].t_shutter =
|
||||
- shutter = powf64(2.0, expo);
|
||||
+ shutter = libraw_powf64(2.0, expo);
|
||||
break;
|
||||
case 37378: // 0x9202 ApertureValue
|
||||
if ((fabs(ape = getreal(type))<256.0) && (!aperture))
|
||||
- aperture = powf64(2.0, ape/2);
|
||||
+ aperture = libraw_powf64(2.0, ape/2);
|
||||
break;
|
||||
case 37385: flash_used = getreal(type); break;
|
||||
case 37386: focal_len = getreal(type); break;
|
||||
@@ -10769,7 +10769,7 @@ int CLASS parse_tiff_ifd (int base)
|
||||
imgdata.lens.Lens[0] = 0;
|
||||
break;
|
||||
case 0x9205:
|
||||
- imgdata.lens.EXIF_MaxAp = powf64(2.0f, (getreal(type) / 2.0f));
|
||||
+ imgdata.lens.EXIF_MaxAp = libraw_powf64(2.0f, (getreal(type) / 2.0f));
|
||||
break;
|
||||
// IB end
|
||||
#endif
|
||||
@@ -11804,22 +11804,22 @@ void CLASS parse_ciff (int offset, int length, int depth)
|
||||
thumb_length = len;
|
||||
}
|
||||
if (type == 0x1818) {
|
||||
- shutter = powf64(2.0f, -int_to_float((get4(),get4())));
|
||||
- aperture = powf64(2.0f, int_to_float(get4())/2);
|
||||
+ shutter = libraw_powf64(2.0f, -int_to_float((get4(),get4())));
|
||||
+ aperture = libraw_powf64(2.0f, int_to_float(get4())/2);
|
||||
#ifdef LIBRAW_LIBRARY_BUILD
|
||||
imgdata.lens.makernotes.CurAp = aperture;
|
||||
#endif
|
||||
}
|
||||
if (type == 0x102a) {
|
||||
// iso_speed = pow (2.0, (get4(),get2())/32.0 - 4) * 50;
|
||||
- iso_speed = powf64(2.0f, ((get2(),get2()) + get2())/32.0f - 5.0f) * 100.0f;
|
||||
+ iso_speed = libraw_powf64(2.0f, ((get2(),get2()) + get2())/32.0f - 5.0f) * 100.0f;
|
||||
#ifdef LIBRAW_LIBRARY_BUILD
|
||||
aperture = _CanonConvertAperture((get2(),get2()));
|
||||
imgdata.lens.makernotes.CurAp = aperture;
|
||||
#else
|
||||
- aperture = powf64(2.0, (get2(),(short)get2())/64.0);
|
||||
+ aperture = libraw_powf64(2.0, (get2(),(short)get2())/64.0);
|
||||
#endif
|
||||
- shutter = powf64(2.0,-((short)get2())/32.0);
|
||||
+ shutter = libraw_powf64(2.0,-((short)get2())/32.0);
|
||||
wbi = (get2(),get2());
|
||||
if (wbi > 17) wbi = 0;
|
||||
fseek (ifp, 32, SEEK_CUR);
|
||||
@@ -12024,8 +12024,8 @@ void CLASS parse_phase_one (int base)
|
||||
setPhaseOneFeatures(unique_id);
|
||||
break;
|
||||
case 0x0401:
|
||||
- if (type == 4) imgdata.lens.makernotes.CurAp = powf64(2.0f, (int_to_float(data)/2.0f));
|
||||
- else imgdata.lens.makernotes.CurAp = powf64(2.0f, (getreal(type)/2.0f));
|
||||
+ if (type == 4) imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, (int_to_float(data)/2.0f));
|
||||
+ else imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, (getreal(type)/2.0f));
|
||||
break;
|
||||
case 0x0403:
|
||||
if (type == 4) imgdata.lens.makernotes.CurFocal = int_to_float(data);
|
||||
@@ -12039,16 +12039,16 @@ void CLASS parse_phase_one (int base)
|
||||
break;
|
||||
case 0x0414:
|
||||
if (type == 4) {
|
||||
- imgdata.lens.makernotes.MaxAp4CurFocal = powf64(2.0f, (int_to_float(data)/2.0f));
|
||||
+ imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(2.0f, (int_to_float(data)/2.0f));
|
||||
} else {
|
||||
- imgdata.lens.makernotes.MaxAp4CurFocal = powf64(2.0f, (getreal(type) / 2.0f));
|
||||
+ imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(2.0f, (getreal(type) / 2.0f));
|
||||
}
|
||||
break;
|
||||
case 0x0415:
|
||||
if (type == 4) {
|
||||
- imgdata.lens.makernotes.MinAp4CurFocal = powf64(2.0f, (int_to_float(data)/2.0f));
|
||||
+ imgdata.lens.makernotes.MinAp4CurFocal = libraw_powf64(2.0f, (int_to_float(data)/2.0f));
|
||||
} else {
|
||||
- imgdata.lens.makernotes.MinAp4CurFocal = powf64(2.0f, (getreal(type) / 2.0f));
|
||||
+ imgdata.lens.makernotes.MinAp4CurFocal = libraw_powf64(2.0f, (getreal(type) / 2.0f));
|
||||
}
|
||||
break;
|
||||
case 0x0416:
|
||||
@@ -14237,15 +14237,15 @@ void CLASS identify()
|
||||
case 18: iso_speed = 320; break;
|
||||
case 19: iso_speed = 400; break;
|
||||
}
|
||||
- shutter = powf64(2.0f, (((float)get4())/8.0f)) / 16000.0f;
|
||||
+ shutter = libraw_powf64(2.0f, (((float)get4())/8.0f)) / 16000.0f;
|
||||
FORC4 cam_mul[c ^ (c >> 1)] = get4();
|
||||
fseek (ifp, 88, SEEK_SET);
|
||||
- aperture = powf64(2.0f, ((float)get4())/16.0f);
|
||||
+ aperture = libraw_powf64(2.0f, ((float)get4())/16.0f);
|
||||
fseek (ifp, 112, SEEK_SET);
|
||||
focal_len = get4();
|
||||
#ifdef LIBRAW_LIBRARY_BUILD
|
||||
fseek (ifp, 104, SEEK_SET);
|
||||
- imgdata.lens.makernotes.MaxAp4CurFocal = powf64(2.0f, ((float)get4())/16.0f);
|
||||
+ imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(2.0f, ((float)get4())/16.0f);
|
||||
fseek (ifp, 124, SEEK_SET);
|
||||
stmread(imgdata.lens.makernotes.Lens, 32, ifp);
|
||||
imgdata.lens.makernotes.CameraMount = LIBRAW_MOUNT_Contax_N;
|
@ -0,0 +1,30 @@
|
||||
From bc746413e07c504535873cf860a8f2c38862896e Mon Sep 17 00:00:00 2001
|
||||
From: MilhouseVH <milhouseVH.github@nmacleod.com>
|
||||
Date: Thu, 1 Feb 2018 08:15:27 +0000
|
||||
Subject: [PATCH] Fix build failure with recent ax_prog_doxygen.m4
|
||||
|
||||
Recent autotool-archives doxygen macros breaks the current build,
|
||||
so this patch updates to the method of the latest autoconf-archive version.
|
||||
|
||||
The required autoconf-archive macro has been committed to their repository
|
||||
in November 2015, so anything later should work.
|
||||
|
||||
Ref: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837020
|
||||
---
|
||||
Makefile.am | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 33813b0..f92e741 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -1,4 +1,5 @@
|
||||
-include $(top_srcdir)/doxygen-include.am
|
||||
+# include Doxygen rules (requires autoconf-archive >2016-03-20)
|
||||
+@DX_RULES@
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
--
|
||||
2.14.1
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="ethtool"
|
||||
PKG_VERSION="4.2"
|
||||
PKG_SHA256="8cb854bcf71ef8b484b5d2a0e6bf056ae1fbf12cfb19e4907b74b7b21da91e87"
|
||||
PKG_VERSION="4.15"
|
||||
PKG_SHA256="71f7fd32483ffdc7c6c4d882e230714eb101df0a46cbe396dbeb8ac78f1ef91a"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kernel.org/pub/software/network/ethtool/"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="samba"
|
||||
PKG_VERSION="4.7.4"
|
||||
PKG_SHA256="fb12d0c4452f85b67b78bbeabd4c762d8feb8ff83e39d044d285120c2c488247"
|
||||
PKG_VERSION="4.7.5"
|
||||
PKG_SHA256="316d04fa9fbabad6f2739fe68e1928778af4866265409119aba6ef3435c8fe8d"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv3+"
|
||||
PKG_SITE="https://www.samba.org"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="meson"
|
||||
PKG_VERSION="0.42.1"
|
||||
PKG_SHA256="30bdded6fefc48211d30818d96dd34aae56ee86ce9710476f501bd7695469c4b"
|
||||
PKG_VERSION="0.44.0"
|
||||
PKG_SHA256="50f9b12b77272ef6ab064d26b7e06667f07fa9f931e6a20942bba2216ba4281b"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Apache"
|
||||
PKG_SITE="http://mesonbuild.com"
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="e2fsprogs"
|
||||
PKG_VERSION="1.43.4"
|
||||
PKG_SHA256="a648a90a513f1b25113c7f981af978b8a19f832b3a32bd10707af3ff682ba66d"
|
||||
PKG_VERSION="1.43.8"
|
||||
PKG_SHA256="3f32f481f408b7f248acf00ea3e423c348d2a17ff51ed0dfa892d171551ec3de"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://e2fsprogs.sourceforge.net/"
|
||||
@ -41,8 +41,6 @@ PKG_CONFIGURE_OPTS_TARGET="BUILD_CC=$HOST_CC \
|
||||
--enable-verbose-makecmds \
|
||||
--enable-symlink-install \
|
||||
--enable-symlink-build \
|
||||
--enable-compression \
|
||||
--enable-htree \
|
||||
--disable-elf-shlibs \
|
||||
--disable-bsd-shlibs \
|
||||
--disable-profile \
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="squashfs"
|
||||
PKG_VERSION="1a6ffc7"
|
||||
PKG_SHA256="2a641ae2f3ae772b9b34dce955a77cfa0717eda57efb3df3a4a5222607c24b2c"
|
||||
PKG_VERSION="e38956b"
|
||||
PKG_SHA256="d49241e238076ee56920c6aec31f0de7b41fe770d1b2c03d1714bbffb833a98f"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://git.kernel.org/pub/scm/fs/squashfs/squashfs-tools.git"
|
||||
|
@ -1,418 +0,0 @@
|
||||
From cc08b43a31fed1289c2027d5090999da569457f1 Mon Sep 17 00:00:00 2001
|
||||
From: Sean Purcell <me@seanp.xyz>
|
||||
Date: Thu, 3 Aug 2017 17:47:03 -0700
|
||||
Subject: [PATCH v5] squashfs-tools: Add zstd support
|
||||
|
||||
This patch adds zstd support to squashfs-tools. It works with zstd
|
||||
versions >= 1.0.0. It was originally written by Sean Purcell.
|
||||
|
||||
Signed-off-by: Sean Purcell <me@seanp.xyz>
|
||||
Signed-off-by: Nick Terrell <terrelln@fb.com>
|
||||
---
|
||||
v4 -> v5:
|
||||
- Fix patch documentation to reflect that Sean Purcell is the author
|
||||
- Don't strip trailing whitespace of unreleated code
|
||||
- Make zstd_display_options() static
|
||||
|
||||
squashfs-tools/Makefile | 21 ++++
|
||||
squashfs-tools/compressor.c | 8 ++
|
||||
squashfs-tools/squashfs_fs.h | 1 +
|
||||
squashfs-tools/zstd_wrapper.c | 254 ++++++++++++++++++++++++++++++++++++++++++
|
||||
squashfs-tools/zstd_wrapper.h | 48 ++++++++
|
||||
5 files changed, 332 insertions(+)
|
||||
create mode 100644 squashfs-tools/zstd_wrapper.c
|
||||
create mode 100644 squashfs-tools/zstd_wrapper.h
|
||||
|
||||
diff --git a/squashfs-tools/Makefile b/squashfs-tools/Makefile
|
||||
index 52d2582..8e82e09 100644
|
||||
--- a/squashfs-tools/Makefile
|
||||
+++ b/squashfs-tools/Makefile
|
||||
@@ -75,6 +75,19 @@ GZIP_SUPPORT = 1
|
||||
#LZMA_SUPPORT = 1
|
||||
#LZMA_DIR = ../../../../LZMA/lzma465
|
||||
|
||||
+
|
||||
+########### Building ZSTD support ############
|
||||
+#
|
||||
+# The ZSTD library is supported
|
||||
+# ZSTD homepage: http://zstd.net
|
||||
+# ZSTD source repository: https://github.com/facebook/zstd
|
||||
+#
|
||||
+# To build configure the tools using cmake to build shared libraries,
|
||||
+# install and uncomment
|
||||
+# the ZSTD_SUPPORT line below.
|
||||
+#
|
||||
+#ZSTD_SUPPORT = 1
|
||||
+
|
||||
######## Specifying default compression ########
|
||||
#
|
||||
# The next line specifies which compression algorithm is used by default
|
||||
@@ -177,6 +190,14 @@ LIBS += -llz4
|
||||
COMPRESSORS += lz4
|
||||
endif
|
||||
|
||||
+ifeq ($(ZSTD_SUPPORT),1)
|
||||
+CFLAGS += -DZSTD_SUPPORT
|
||||
+MKSQUASHFS_OBJS += zstd_wrapper.o
|
||||
+UNSQUASHFS_OBJS += zstd_wrapper.o
|
||||
+LIBS += -lzstd
|
||||
+COMPRESSORS += zstd
|
||||
+endif
|
||||
+
|
||||
ifeq ($(XATTR_SUPPORT),1)
|
||||
ifeq ($(XATTR_DEFAULT),1)
|
||||
CFLAGS += -DXATTR_SUPPORT -DXATTR_DEFAULT
|
||||
diff --git a/squashfs-tools/compressor.c b/squashfs-tools/compressor.c
|
||||
index 525e316..02b5e90 100644
|
||||
--- a/squashfs-tools/compressor.c
|
||||
+++ b/squashfs-tools/compressor.c
|
||||
@@ -65,6 +65,13 @@ static struct compressor xz_comp_ops = {
|
||||
extern struct compressor xz_comp_ops;
|
||||
#endif
|
||||
|
||||
+#ifndef ZSTD_SUPPORT
|
||||
+static struct compressor zstd_comp_ops = {
|
||||
+ ZSTD_COMPRESSION, "zstd"
|
||||
+};
|
||||
+#else
|
||||
+extern struct compressor zstd_comp_ops;
|
||||
+#endif
|
||||
|
||||
static struct compressor unknown_comp_ops = {
|
||||
0, "unknown"
|
||||
@@ -77,6 +84,7 @@ struct compressor *compressor[] = {
|
||||
&lzo_comp_ops,
|
||||
&lz4_comp_ops,
|
||||
&xz_comp_ops,
|
||||
+ &zstd_comp_ops,
|
||||
&unknown_comp_ops
|
||||
};
|
||||
|
||||
diff --git a/squashfs-tools/squashfs_fs.h b/squashfs-tools/squashfs_fs.h
|
||||
index 791fe12..afca918 100644
|
||||
--- a/squashfs-tools/squashfs_fs.h
|
||||
+++ b/squashfs-tools/squashfs_fs.h
|
||||
@@ -277,6 +277,7 @@ typedef long long squashfs_inode;
|
||||
#define LZO_COMPRESSION 3
|
||||
#define XZ_COMPRESSION 4
|
||||
#define LZ4_COMPRESSION 5
|
||||
+#define ZSTD_COMPRESSION 6
|
||||
|
||||
struct squashfs_super_block {
|
||||
unsigned int s_magic;
|
||||
diff --git a/squashfs-tools/zstd_wrapper.c b/squashfs-tools/zstd_wrapper.c
|
||||
new file mode 100644
|
||||
index 0000000..dcab75a
|
||||
--- /dev/null
|
||||
+++ b/squashfs-tools/zstd_wrapper.c
|
||||
@@ -0,0 +1,254 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2017
|
||||
+ * Phillip Lougher <phillip@squashfs.org.uk>
|
||||
+ *
|
||||
+ * 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.
|
||||
+ *
|
||||
+ * zstd_wrapper.c
|
||||
+ *
|
||||
+ * Support for ZSTD compression http://zstd.net
|
||||
+ */
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <string.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <zstd.h>
|
||||
+#include <zstd_errors.h>
|
||||
+
|
||||
+#include "squashfs_fs.h"
|
||||
+#include "zstd_wrapper.h"
|
||||
+#include "compressor.h"
|
||||
+
|
||||
+static int compression_level = ZSTD_DEFAULT_COMPRESSION_LEVEL;
|
||||
+
|
||||
+/*
|
||||
+ * This function is called by the options parsing code in mksquashfs.c
|
||||
+ * to parse any -X compressor option.
|
||||
+ *
|
||||
+ * This function returns:
|
||||
+ * >=0 (number of additional args parsed) on success
|
||||
+ * -1 if the option was unrecognised, or
|
||||
+ * -2 if the option was recognised, but otherwise bad in
|
||||
+ * some way (e.g. invalid parameter)
|
||||
+ *
|
||||
+ * Note: this function sets internal compressor state, but does not
|
||||
+ * pass back the results of the parsing other than success/failure.
|
||||
+ * The zstd_dump_options() function is called later to get the options in
|
||||
+ * a format suitable for writing to the filesystem.
|
||||
+ */
|
||||
+static int zstd_options(char *argv[], int argc)
|
||||
+{
|
||||
+ if (strcmp(argv[0], "-Xcompression-level") == 0) {
|
||||
+ if (argc < 2) {
|
||||
+ fprintf(stderr, "zstd: -Xcompression-level missing "
|
||||
+ "compression level\n");
|
||||
+ fprintf(stderr, "zstd: -Xcompression-level it should "
|
||||
+ "be 1 <= n <= %d\n", ZSTD_maxCLevel());
|
||||
+ goto failed;
|
||||
+ }
|
||||
+
|
||||
+ compression_level = atoi(argv[1]);
|
||||
+ if (compression_level < 1 ||
|
||||
+ compression_level > ZSTD_maxCLevel()) {
|
||||
+ fprintf(stderr, "zstd: -Xcompression-level invalid, it "
|
||||
+ "should be 1 <= n <= %d\n", ZSTD_maxCLevel());
|
||||
+ goto failed;
|
||||
+ }
|
||||
+
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ return -1;
|
||||
+failed:
|
||||
+ return -2;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * This function is called by mksquashfs to dump the parsed
|
||||
+ * compressor options in a format suitable for writing to the
|
||||
+ * compressor options field in the filesystem (stored immediately
|
||||
+ * after the superblock).
|
||||
+ *
|
||||
+ * This function returns a pointer to the compression options structure
|
||||
+ * to be stored (and the size), or NULL if there are no compression
|
||||
+ * options.
|
||||
+ */
|
||||
+static void *zstd_dump_options(int block_size, int *size)
|
||||
+{
|
||||
+ static struct zstd_comp_opts comp_opts;
|
||||
+
|
||||
+ /* don't return anything if the options are all default */
|
||||
+ if (compression_level == ZSTD_DEFAULT_COMPRESSION_LEVEL)
|
||||
+ return NULL;
|
||||
+
|
||||
+ comp_opts.compression_level = compression_level;
|
||||
+
|
||||
+ SQUASHFS_INSWAP_COMP_OPTS(&comp_opts);
|
||||
+
|
||||
+ *size = sizeof(comp_opts);
|
||||
+ return &comp_opts;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * This function is a helper specifically for the append mode of
|
||||
+ * mksquashfs. Its purpose is to set the internal compressor state
|
||||
+ * to the stored compressor options in the passed compressor options
|
||||
+ * structure.
|
||||
+ *
|
||||
+ * In effect this function sets up the compressor options
|
||||
+ * to the same state they were when the filesystem was originally
|
||||
+ * generated, this is to ensure on appending, the compressor uses
|
||||
+ * the same compression options that were used to generate the
|
||||
+ * original filesystem.
|
||||
+ *
|
||||
+ * Note, even if there are no compressor options, this function is still
|
||||
+ * called with an empty compressor structure (size == 0), to explicitly
|
||||
+ * set the default options, this is to ensure any user supplied
|
||||
+ * -X options on the appending mksquashfs command line are over-ridden.
|
||||
+ *
|
||||
+ * This function returns 0 on sucessful extraction of options, and -1 on error.
|
||||
+ */
|
||||
+static int zstd_extract_options(int block_size, void *buffer, int size)
|
||||
+{
|
||||
+ struct zstd_comp_opts *comp_opts = buffer;
|
||||
+
|
||||
+ if (size == 0) {
|
||||
+ /* Set default values */
|
||||
+ compression_level = ZSTD_DEFAULT_COMPRESSION_LEVEL;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ /* we expect a comp_opts structure of sufficient size to be present */
|
||||
+ if (size < sizeof(*comp_opts))
|
||||
+ goto failed;
|
||||
+
|
||||
+ SQUASHFS_INSWAP_COMP_OPTS(comp_opts);
|
||||
+
|
||||
+ if (comp_opts->compression_level < 1 ||
|
||||
+ comp_opts->compression_level > ZSTD_maxCLevel()) {
|
||||
+ fprintf(stderr, "zstd: bad compression level in compression "
|
||||
+ "options structure\n");
|
||||
+ goto failed;
|
||||
+ }
|
||||
+
|
||||
+ compression_level = comp_opts->compression_level;
|
||||
+
|
||||
+ return 0;
|
||||
+
|
||||
+failed:
|
||||
+ fprintf(stderr, "zstd: error reading stored compressor options from "
|
||||
+ "filesystem!\n");
|
||||
+
|
||||
+ return -1;
|
||||
+}
|
||||
+
|
||||
+static void zstd_display_options(void *buffer, int size)
|
||||
+{
|
||||
+ struct zstd_comp_opts *comp_opts = buffer;
|
||||
+
|
||||
+ /* we expect a comp_opts structure of sufficient size to be present */
|
||||
+ if (size < sizeof(*comp_opts))
|
||||
+ goto failed;
|
||||
+
|
||||
+ SQUASHFS_INSWAP_COMP_OPTS(comp_opts);
|
||||
+
|
||||
+ if (comp_opts->compression_level < 1 ||
|
||||
+ comp_opts->compression_level > ZSTD_maxCLevel()) {
|
||||
+ fprintf(stderr, "zstd: bad compression level in compression "
|
||||
+ "options structure\n");
|
||||
+ goto failed;
|
||||
+ }
|
||||
+
|
||||
+ printf("\tcompression-level %d\n", comp_opts->compression_level);
|
||||
+
|
||||
+ return;
|
||||
+
|
||||
+failed:
|
||||
+ fprintf(stderr, "zstd: error reading stored compressor options from "
|
||||
+ "filesystem!\n");
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * This function is called by mksquashfs to initialise the
|
||||
+ * compressor, before compress() is called.
|
||||
+ *
|
||||
+ * This function returns 0 on success, and -1 on error.
|
||||
+ */
|
||||
+static int zstd_init(void **strm, int block_size, int datablock)
|
||||
+{
|
||||
+ ZSTD_CCtx *cctx = ZSTD_createCCtx();
|
||||
+
|
||||
+ if (!cctx) {
|
||||
+ fprintf(stderr, "zstd: failed to allocate compression "
|
||||
+ "context!\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ *strm = cctx;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int zstd_compress(void *strm, void *dest, void *src, int size,
|
||||
+ int block_size, int *error)
|
||||
+{
|
||||
+ const size_t res = ZSTD_compressCCtx((ZSTD_CCtx*)strm, dest, block_size,
|
||||
+ src, size, compression_level);
|
||||
+
|
||||
+ if (ZSTD_isError(res)) {
|
||||
+ /* FIXME:
|
||||
+ * zstd does not expose stable error codes. The error enum may
|
||||
+ * change between versions. Until upstream zstd stablizes the
|
||||
+ * error codes, we have no way of knowing why the error occurs.
|
||||
+ * zstd shouldn't fail to compress any input unless there isn't
|
||||
+ * enough output space. We assume that is the cause and return
|
||||
+ * the special error code for not enough output space.
|
||||
+ */
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ return (int)res;
|
||||
+}
|
||||
+
|
||||
+static int zstd_uncompress(void *dest, void *src, int size, int outsize,
|
||||
+ int *error)
|
||||
+{
|
||||
+ const size_t res = ZSTD_decompress(dest, outsize, src, size);
|
||||
+
|
||||
+ if (ZSTD_isError(res)) {
|
||||
+ fprintf(stderr, "\t%d %d\n", outsize, size);
|
||||
+
|
||||
+ *error = (int)ZSTD_getErrorCode(res);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ return (int)res;
|
||||
+}
|
||||
+
|
||||
+static void zstd_usage(void)
|
||||
+{
|
||||
+ fprintf(stderr, "\t -Xcompression-level <compression-level>\n");
|
||||
+ fprintf(stderr, "\t\t<compression-level> should be 1 .. %d (default "
|
||||
+ "%d)\n", ZSTD_maxCLevel(), ZSTD_DEFAULT_COMPRESSION_LEVEL);
|
||||
+}
|
||||
+
|
||||
+struct compressor zstd_comp_ops = {
|
||||
+ .init = zstd_init,
|
||||
+ .compress = zstd_compress,
|
||||
+ .uncompress = zstd_uncompress,
|
||||
+ .options = zstd_options,
|
||||
+ .dump_options = zstd_dump_options,
|
||||
+ .extract_options = zstd_extract_options,
|
||||
+ .display_options = zstd_display_options,
|
||||
+ .usage = zstd_usage,
|
||||
+ .id = ZSTD_COMPRESSION,
|
||||
+ .name = "zstd",
|
||||
+ .supported = 1
|
||||
+};
|
||||
diff --git a/squashfs-tools/zstd_wrapper.h b/squashfs-tools/zstd_wrapper.h
|
||||
new file mode 100644
|
||||
index 0000000..4fbef0a
|
||||
--- /dev/null
|
||||
+++ b/squashfs-tools/zstd_wrapper.h
|
||||
@@ -0,0 +1,48 @@
|
||||
+#ifndef ZSTD_WRAPPER_H
|
||||
+#define ZSTD_WRAPPER_H
|
||||
+/*
|
||||
+ * Squashfs
|
||||
+ *
|
||||
+ * Copyright (c) 2017
|
||||
+ * Phillip Lougher <phillip@squashfs.org.uk>
|
||||
+ *
|
||||
+ * 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.
|
||||
+ *
|
||||
+ * zstd_wrapper.h
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#ifndef linux
|
||||
+#define __BYTE_ORDER BYTE_ORDER
|
||||
+#define __BIG_ENDIAN BIG_ENDIAN
|
||||
+#define __LITTLE_ENDIAN LITTLE_ENDIAN
|
||||
+#else
|
||||
+#include <endian.h>
|
||||
+#endif
|
||||
+
|
||||
+#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
+extern unsigned int inswap_le16(unsigned short);
|
||||
+extern unsigned int inswap_le32(unsigned int);
|
||||
+
|
||||
+#define SQUASHFS_INSWAP_COMP_OPTS(s) { \
|
||||
+ (s)->compression_level = inswap_le32((s)->compression_level); \
|
||||
+}
|
||||
+#else
|
||||
+#define SQUASHFS_INSWAP_COMP_OPTS(s)
|
||||
+#endif
|
||||
+
|
||||
+/* Default compression */
|
||||
+#define ZSTD_DEFAULT_COMPRESSION_LEVEL 15
|
||||
+
|
||||
+struct zstd_comp_opts {
|
||||
+ int compression_level;
|
||||
+};
|
||||
+#endif
|
||||
--
|
||||
2.9.3
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="systemd"
|
||||
PKG_VERSION="236"
|
||||
PKG_SHA256="0cadccfa7109232ec2a469d41ca595d5595b83b648b534ea669c15dbca904c43"
|
||||
PKG_VERSION="237"
|
||||
PKG_SHA256="c83dabbe1c9de6b9db1dafdb7e04140c7d0535705c68842f6c0768653ba4913c"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.freedesktop.org/wiki/Software/systemd"
|
||||
@ -33,6 +33,7 @@ PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \
|
||||
-Dsplit-usr=false \
|
||||
-Ddefault-hierarchy=hybrid \
|
||||
-Dtty-gid=5 \
|
||||
-Dtests=false \
|
||||
-Dseccomp=false \
|
||||
-Dselinux=false \
|
||||
-Dapparmor=false \
|
||||
|
@ -1,43 +0,0 @@
|
||||
From 1ddef8584afe34d0bb8f2629f360bcd02a7e0690 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Mon, 18 Dec 2017 10:12:59 +0100
|
||||
Subject: [PATCH] analyze: use normal bus connection for "plot" verb
|
||||
|
||||
We need to connect to hostnamed, so a private bus connection is no good.
|
||||
It'd be simpler to use the normal bus connection unconditionally, but
|
||||
that'd mean that e.g. systemd-analyze set-log-level might not work in
|
||||
emergency mode. So let's keep trying to use the private connection except
|
||||
for "plot".
|
||||
|
||||
Fixes #7667.
|
||||
---
|
||||
src/analyze/analyze.c | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c
|
||||
index d45c1dc496..7f35b04c31 100644
|
||||
--- a/src/analyze/analyze.c
|
||||
+++ b/src/analyze/analyze.c
|
||||
@@ -130,6 +130,13 @@ struct host_info {
|
||||
char *architecture;
|
||||
};
|
||||
|
||||
+static int acquire_bus(bool need_full_bus, sd_bus **bus) {
|
||||
+ if (need_full_bus)
|
||||
+ return bus_connect_transport(arg_transport, arg_host, arg_user, bus);
|
||||
+ else
|
||||
+ return bus_connect_transport_systemd(arg_transport, arg_host, arg_user, bus);
|
||||
+}
|
||||
+
|
||||
static int bus_get_uint64_property(sd_bus *bus, const char *path, const char *interface, const char *property, uint64_t *val) {
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
int r;
|
||||
@@ -1688,7 +1695,7 @@ int main(int argc, char *argv[]) {
|
||||
else {
|
||||
_cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
|
||||
|
||||
- r = bus_connect_transport_systemd(arg_transport, arg_host, arg_user, &bus);
|
||||
+ r = acquire_bus(streq_ptr(argv[optind], "plot"), &bus);
|
||||
if (r < 0) {
|
||||
log_error_errno(r, "Failed to create bus connection: %m");
|
||||
goto finish;
|
@ -0,0 +1,32 @@
|
||||
From a2a46bc87819ed5fcb06275f1dcba5a9043ef5cd Mon Sep 17 00:00:00 2001
|
||||
From: MilhouseVH <milhouseVH.github@nmacleod.com>
|
||||
Date: Sun, 4 Feb 2018 07:42:40 +0000
|
||||
Subject: [PATCH] force enable HAVE_MEMFD_CREATE when building with glibc-2.27+
|
||||
|
||||
I'm not sure why, but when building with kernel 3.14.y (which does not
|
||||
have the memfd_create syscall - added in 3.17.0), meson will fail to
|
||||
determine that the memfd_create syscall is now implemented by glibc-2.27+
|
||||
causing systemd to redefine it, resulting in a build failure.
|
||||
|
||||
Since we know thst the syscall is provided by glibc-2.27 this change should be
|
||||
safe (but ugly). Only required for older kernels as meson correctly enables
|
||||
this option with default kernels (eg. 4.14.16), and forcing it does no harm.
|
||||
---
|
||||
meson.build | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 36a62d2..4f56ccb 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -515,6 +515,7 @@ foreach ident : [
|
||||
have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
|
||||
conf.set10('HAVE_' + ident[0].to_upper(), have)
|
||||
endforeach
|
||||
+conf.set10('HAVE_MEMFD_CREATE', true)
|
||||
|
||||
if cc.has_function('getrandom', prefix : '''#include <sys/random.h>''', args : '-D_GNU_SOURCE')
|
||||
conf.set10('USE_SYS_RANDOM_H', true)
|
||||
--
|
||||
2.14.1
|
||||
|
@ -1,58 +0,0 @@
|
||||
From c2ae95a71d8ceb5e7d7b766569044439ef0bad6b Mon Sep 17 00:00:00 2001
|
||||
From: Mike Gilbert <floppym@gentoo.org>
|
||||
Date: Wed, 27 Dec 2017 16:59:04 -0500
|
||||
Subject: [PATCH] sysctl: use raw file descriptor in sysctl_write
|
||||
|
||||
The kernel returns specific error codes which may be lost if we use the
|
||||
libc buffered io functions.
|
||||
|
||||
Fixes: https://github.com/systemd/systemd/issues/7744
|
||||
---
|
||||
src/shared/sysctl-util.c | 17 ++++++++++++++++-
|
||||
1 file changed, 16 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c
|
||||
index 189580e3ed..0bc81aaa56 100644
|
||||
--- a/src/shared/sysctl-util.c
|
||||
+++ b/src/shared/sysctl-util.c
|
||||
@@ -18,9 +18,13 @@
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
+#include <errno.h>
|
||||
+#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
+#include <unistd.h>
|
||||
|
||||
+#include "fd-util.h"
|
||||
#include "fileio.h"
|
||||
#include "log.h"
|
||||
#include "macro.h"
|
||||
@@ -53,6 +57,7 @@ char *sysctl_normalize(char *s) {
|
||||
|
||||
int sysctl_write(const char *property, const char *value) {
|
||||
char *p;
|
||||
+ _cleanup_close_ int fd = -1;
|
||||
|
||||
assert(property);
|
||||
assert(value);
|
||||
@@ -60,7 +65,17 @@ int sysctl_write(const char *property, const char *value) {
|
||||
log_debug("Setting '%s' to '%s'", property, value);
|
||||
|
||||
p = strjoina("/proc/sys/", property);
|
||||
- return write_string_file(p, value, WRITE_STRING_FILE_DISABLE_BUFFER);
|
||||
+ fd = open(p, O_WRONLY|O_CLOEXEC);
|
||||
+ if (fd < 0)
|
||||
+ return -errno;
|
||||
+
|
||||
+ if (!endswith(value, "\n"))
|
||||
+ value = strjoina(value, "\n");
|
||||
+
|
||||
+ if (write(fd, value, strlen(value)) < 0)
|
||||
+ return -errno;
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
int sysctl_read(const char *property, char **content) {
|
@ -0,0 +1,27 @@
|
||||
From e52504dca98923302ecbdd018aae8e86376e166a Mon Sep 17 00:00:00 2001
|
||||
From: MilhouseVH <milhouseVH.github@nmacleod.com>
|
||||
Date: Sun, 4 Feb 2018 17:46:59 +0000
|
||||
Subject: [PATCH] kernel 3.10 compat: RTAX_QUICKACK not added until 3.11.0
|
||||
|
||||
---
|
||||
src/basic/missing.h | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/basic/missing.h b/src/basic/missing.h
|
||||
index 1280e6c..9d4d08e 100644
|
||||
--- a/src/basic/missing.h
|
||||
+++ b/src/basic/missing.h
|
||||
@@ -1047,6 +1047,10 @@ struct input_mask {
|
||||
#define RTA_PREF 20
|
||||
#endif
|
||||
|
||||
+#ifndef RTAX_QUICKACK
|
||||
+#define RTAX_QUICKACK 15
|
||||
+#endif
|
||||
+
|
||||
#ifndef IPV6_UNICAST_IF
|
||||
#define IPV6_UNICAST_IF 76
|
||||
#endif
|
||||
--
|
||||
2.14.1
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="tz"
|
||||
PKG_VERSION="2017c"
|
||||
PKG_SHA256="83d1c6a5910e827db88528a1a1f6f7b4ad9fe98b6076895749bf49660b02cc68"
|
||||
PKG_VERSION="2018c"
|
||||
PKG_SHA256="9c653d7b7b127d81f7db07920d1c3f7a0a7f1e5bc042d7907e01427593954e15"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Public Domain"
|
||||
PKG_SITE="http://www.iana.org/time-zones"
|
||||
@ -31,12 +31,11 @@ PKG_LONGDESC="tzdata"
|
||||
PKG_MAKE_OPTS_TARGET="CC=$HOST_CC LDFLAGS="
|
||||
|
||||
makeinstall_target() {
|
||||
make TOPDIR="$INSTALL" install
|
||||
make TZDIR="$INSTALL/usr/share/zoneinfo" REDO=posix_only TOPDIR="$INSTALL" install
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/share/zoneinfo
|
||||
mv $INSTALL/etc/zoneinfo/* $INSTALL/usr/share/zoneinfo
|
||||
rm -rf $INSTALL/usr/bin $INSTALL/usr/sbin
|
||||
|
||||
rm -rf $INSTALL/etc
|
||||
mkdir -p $INSTALL/etc
|
||||
|
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="nano"
|
||||
PKG_VERSION="2.5.3"
|
||||
PKG_SHA256="b2b060129b9feff2d4870d803a441178c96531de9aed144ec0b83bd63ccb12ee"
|
||||
PKG_VERSION="2.9.3"
|
||||
PKG_SHA256="f12058ead9955cb841c1c5e3b9aec6ba93114a807580e928de0eaf6144c91074"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.nano-editor.org/"
|
||||
|
@ -27,6 +27,7 @@ PKG_DEPENDS_TARGET="toolchain util-macros xproto"
|
||||
PKG_SECTION="x11/lib"
|
||||
PKG_SHORTDESC="libxshmfence: Shared memory 'SyncFence' synchronization primitive."
|
||||
PKG_LONGDESC="libxshmfence is the Shared memory 'SyncFence' synchronization primitive."
|
||||
PKG_TOOLCHAIN="autotools"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
|
||||
|
||||
|
@ -0,0 +1,31 @@
|
||||
From 33dc04e9de44aa7a1f72544ce00f2fe239c3a62c Mon Sep 17 00:00:00 2001
|
||||
From: MilhouseVH <milhouseVH.github@nmacleod.com>
|
||||
Date: Fri, 2 Feb 2018 03:30:53 +0000
|
||||
Subject: [PATCH] fix build with glibc 2.27
|
||||
|
||||
With glibc 2.27 memfd_create() is behind a _GNU_SOURCE guard, so use
|
||||
AC_USE_SYSTEM_EXTENSIONS to define it.
|
||||
|
||||
(From OE-Core rev: 88b3d730021107985ea749c92e52a323690f87dc)
|
||||
|
||||
Ref: http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=fc56788a3201daf1b1a9f3b96d5501ffe489dcd1
|
||||
---
|
||||
configure.ac | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 0c98875..ebf4dee 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -28,6 +28,8 @@ AC_INIT([libxshmfence], [1.2],
|
||||
AC_CONFIG_SRCDIR([Makefile.am])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
+AC_USE_SYSTEM_EXTENSIONS
|
||||
+
|
||||
# Initialize Automake
|
||||
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||
|
||||
--
|
||||
2.14.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user