[DO-973] harfbuzz package (!10)
Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech> Reviewed-on: https://git.avroid.tech/Conan/conan_build/pulls/10
This commit is contained in:
23
recipes/m4/all/conandata.yml
Normal file
23
recipes/m4/all/conandata.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
sources:
|
||||
"1.4.19":
|
||||
url: "https://nexus.avroid.tech/repository/all-raw-proxy-ftp_gnu_org/gnu/m4/m4-1.4.19.tar.xz"
|
||||
sha256: "63aede5c6d33b6d9b13511cd0be2cac046f2e70fd0a07aa9573a04a82783af96"
|
||||
"1.4.18":
|
||||
url: "https://nexus.avroid.tech/repository/all-raw-proxy-ftp_gnu_org/gnu/m4/m4-1.4.18.tar.xz"
|
||||
sha256: "f2c1e86ca0a404ff281631bdc8377638992744b175afb806e25871a24a934e07"
|
||||
patches:
|
||||
"1.4.19":
|
||||
- patch_file: "patches/1.4.19-0001-open-files-in-binary-mode.patch"
|
||||
- patch_file: "patches/1.4.19-0002-ar-lib.patch"
|
||||
- patch_file: "patches/1.4.19-0003-msvc-debug-assertion.patch"
|
||||
- patch_file: "patches/1.4.19-0004-disable-hardening-in-source.patch"
|
||||
"1.4.18":
|
||||
- patch_file: "patches/1.4.18-0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch"
|
||||
- patch_file: "patches/1.4.18-0002-fflush-be-more-paranoid-about-libio.h-change.patch"
|
||||
- patch_file: "patches/1.4.18-0004-fix-checks.patch"
|
||||
- patch_file: "patches/1.4.18-0005-vasnprintf-Fix-for-MSVC-14.patch"
|
||||
- patch_file: "patches/1.4.18-0006-manywarnings-update-for-gcc-7.patch"
|
||||
- patch_file: "patches/1.4.18-0007-vasnprintf-port-to-macos-10.13.patch"
|
||||
- patch_file: "patches/1.4.18-0008-open-files-in-binary-mode.patch"
|
||||
- patch_file: "patches/1.4.18-0009-disable-hardening-in-source.patch"
|
||||
- patch_file: "patches/1.4.18-0010-c-stack-stop-using-SIGSTKSZ.patch"
|
||||
135
recipes/m4/all/conanfile.py
Normal file
135
recipes/m4/all/conanfile.py
Normal file
@@ -0,0 +1,135 @@
|
||||
from conan import ConanFile
|
||||
from conan.tools.build import cross_building
|
||||
from conan.tools.env import VirtualBuildEnv
|
||||
from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir, save
|
||||
from conan.tools.gnu import Autotools, AutotoolsToolchain
|
||||
from conan.tools.layout import basic_layout
|
||||
from conan.tools.microsoft import is_msvc, unix_path
|
||||
from conan.tools.scm import Version
|
||||
import os
|
||||
import shutil
|
||||
|
||||
required_conan_version = ">=1.55.0"
|
||||
|
||||
|
||||
class M4Conan(ConanFile):
|
||||
name = "m4"
|
||||
package_type = "application"
|
||||
description = "GNU M4 is an implementation of the traditional Unix macro processor"
|
||||
topics = ("macro", "preprocessor")
|
||||
homepage = "https://www.gnu.org/software/m4/"
|
||||
url = "https://github.com/conan-io/conan-center-index"
|
||||
license = "GPL-3.0-only"
|
||||
settings = "os", "arch", "compiler", "build_type"
|
||||
|
||||
@property
|
||||
def _settings_build(self):
|
||||
return getattr(self, "settings_build", self.settings)
|
||||
|
||||
def export_sources(self):
|
||||
export_conandata_patches(self)
|
||||
|
||||
def layout(self):
|
||||
basic_layout(self, src_folder="src")
|
||||
|
||||
def package_id(self):
|
||||
del self.info.settings.compiler
|
||||
|
||||
def build_requirements(self):
|
||||
if self._settings_build.os == "Windows":
|
||||
self.win_bash = True
|
||||
if not self.conf.get("tools.microsoft.bash:path", check_type=str):
|
||||
self.tool_requires("msys2/cci.latest")
|
||||
|
||||
def source(self):
|
||||
get(self, **self.conan_data["sources"][self.version], strip_root=True)
|
||||
|
||||
def generate(self):
|
||||
env = VirtualBuildEnv(self)
|
||||
env.generate()
|
||||
|
||||
tc = AutotoolsToolchain(self)
|
||||
if is_msvc(self):
|
||||
tc.extra_cflags.append("-FS")
|
||||
# Avoid a `Assertion Failed Dialog Box` during configure with build_type=Debug
|
||||
# Visual Studio does not support the %n format flag:
|
||||
# https://docs.microsoft.com/en-us/cpp/c-runtime-library/format-specification-syntax-printf-and-wprintf-functions
|
||||
# Because the %n format is inherently insecure, it is disabled by default. If %n is encountered in a format string,
|
||||
# the invalid parameter handler is invoked, as described in Parameter Validation. To enable %n support, see _set_printf_count_output.
|
||||
tc.configure_args.extend([
|
||||
"gl_cv_func_printf_directive_n=no",
|
||||
"gl_cv_func_snprintf_directive_n=no",
|
||||
"gl_cv_func_snprintf_directive_n=no",
|
||||
])
|
||||
if self.settings.build_type in ("Debug", "RelWithDebInfo"):
|
||||
tc.extra_ldflags.append("-PDB")
|
||||
elif self.settings.compiler == "clang" and Version(self.version) < "1.4.19":
|
||||
tc.extra_cflags.extend([
|
||||
"-rtlib=compiler-rt",
|
||||
"-Wno-unused-command-line-argument",
|
||||
])
|
||||
if cross_building(self) and is_msvc(self):
|
||||
triplet_arch_windows = {"x86_64": "x86_64", "x86": "i686", "armv8": "aarch64"}
|
||||
|
||||
host_arch = triplet_arch_windows.get(str(self.settings.arch))
|
||||
build_arch = triplet_arch_windows.get(str(self._settings_build.arch))
|
||||
|
||||
if host_arch and build_arch:
|
||||
host = f"{host_arch}-w64-mingw32"
|
||||
build = f"{build_arch}-w64-mingw32"
|
||||
tc.configure_args.extend([
|
||||
f"--host={host}",
|
||||
f"--build={build}",
|
||||
])
|
||||
if self.settings.os == "Windows":
|
||||
tc.configure_args.append("ac_cv_func__set_invalid_parameter_handler=yes")
|
||||
env = tc.environment()
|
||||
# help2man trick
|
||||
env.prepend_path("PATH", self.source_folder)
|
||||
# handle msvc
|
||||
if is_msvc(self):
|
||||
ar_wrapper = unix_path(self, os.path.join(self.source_folder, "build-aux", "ar-lib"))
|
||||
env.define("CC", "cl -nologo")
|
||||
env.define("CXX", "cl -nologo")
|
||||
env.define("AR", f"{ar_wrapper} lib")
|
||||
env.define("LD", "link")
|
||||
env.define("NM", "dumpbin -symbols")
|
||||
env.define("OBJDUMP", ":")
|
||||
env.define("RANLIB", ":")
|
||||
env.define("STRIP", ":")
|
||||
tc.generate(env)
|
||||
|
||||
def _patch_sources(self):
|
||||
apply_conandata_patches(self)
|
||||
if shutil.which("help2man") == None:
|
||||
# dummy file for configure
|
||||
help2man = os.path.join(self.source_folder, "help2man")
|
||||
save(self, help2man, "#!/usr/bin/env bash\n:")
|
||||
if os.name == "posix":
|
||||
os.chmod(help2man, os.stat(help2man).st_mode | 0o111)
|
||||
|
||||
def build(self):
|
||||
self._patch_sources()
|
||||
autotools = Autotools(self)
|
||||
autotools.configure()
|
||||
autotools.make()
|
||||
|
||||
def package(self):
|
||||
copy(self, "COPYING", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
|
||||
autotools = Autotools(self)
|
||||
autotools.install()
|
||||
rmdir(self, os.path.join(self.package_folder, "share"))
|
||||
|
||||
def package_info(self):
|
||||
self.cpp_info.libdirs = []
|
||||
self.cpp_info.includedirs = []
|
||||
|
||||
# M4 environment variable is used by a lot of scripts as a way to override a hard-coded embedded m4 path
|
||||
bin_ext = ".exe" if self.settings.os == "Windows" else ""
|
||||
m4_bin = os.path.join(self.package_folder, "bin", f"m4{bin_ext}").replace("\\", "/")
|
||||
self.runenv_info.define_path("M4", m4_bin)
|
||||
self.buildenv_info.define_path("M4", m4_bin)
|
||||
|
||||
# TODO: to remove in conan v2
|
||||
self.env_info.PATH.append(os.path.join(self.package_folder, "bin"))
|
||||
self.env_info.M4 = m4_bin
|
||||
@@ -0,0 +1,170 @@
|
||||
# this patches is from https://git.busybox.net/buildroot/commit/?id=c48f8a64626c60bd1b46804b7cf1a699ff53cdf3
|
||||
# to fix compiler error on certain systems:
|
||||
# freadahead.c:92:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
|
||||
|
||||
From 4af4a4a71827c0bc5e0ec67af23edef4f15cee8e Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Mon, 5 Mar 2018 10:56:29 -0800
|
||||
Subject: [PATCH] fflush: adjust to glibc 2.28 libio.h removal
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Problem reported by Daniel P. Berrangé in:
|
||||
https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html
|
||||
* lib/fbufmode.c (fbufmode):
|
||||
* lib/fflush.c (clear_ungetc_buffer_preserving_position)
|
||||
(disable_seek_optimization, rpl_fflush):
|
||||
* lib/fpending.c (__fpending):
|
||||
* lib/fpurge.c (fpurge):
|
||||
* lib/freadable.c (freadable):
|
||||
* lib/freadahead.c (freadahead):
|
||||
* lib/freading.c (freading):
|
||||
* lib/freadptr.c (freadptr):
|
||||
* lib/freadseek.c (freadptrinc):
|
||||
* lib/fseeko.c (fseeko):
|
||||
* lib/fseterr.c (fseterr):
|
||||
* lib/fwritable.c (fwritable):
|
||||
* lib/fwriting.c (fwriting):
|
||||
Check _IO_EOF_SEEN instead of _IO_ftrylockfile.
|
||||
* lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]:
|
||||
Define if not already defined.
|
||||
|
||||
[yann.morin.1998@free.fr: partially backport from upstream gnulib]
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
|
||||
---
|
||||
lib/fflush.c | 6 +++---
|
||||
lib/fpending.c | 2 +-
|
||||
lib/fpurge.c | 2 +-
|
||||
lib/freadahead.c | 2 +-
|
||||
lib/freading.c | 2 +-
|
||||
lib/fseeko.c | 4 ++--
|
||||
lib/stdio-impl.h | 6 ++++++
|
||||
7 files changed, 15 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/lib/fflush.c b/lib/fflush.c
|
||||
index ef2a7f1..787790d 100644
|
||||
--- a/lib/fflush.c
|
||||
+++ b/lib/fflush.c
|
||||
@@ -33,7 +33,7 @@
|
||||
#undef fflush
|
||||
|
||||
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
|
||||
/* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
|
||||
static void
|
||||
@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
|
||||
|
||||
#endif
|
||||
|
||||
-#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
|
||||
+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
|
||||
|
||||
# if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
|
||||
/* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
|
||||
@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
|
||||
if (stream == NULL || ! freading (stream))
|
||||
return fflush (stream);
|
||||
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
|
||||
clear_ungetc_buffer_preserving_position (stream);
|
||||
|
||||
diff --git a/lib/fpending.c b/lib/fpending.c
|
||||
index ce93604..9fe7ffb 100644
|
||||
--- a/lib/fpending.c
|
||||
+++ b/lib/fpending.c
|
||||
@@ -32,7 +32,7 @@ __fpending (FILE *fp)
|
||||
/* Most systems provide FILE as a struct and the necessary bitmask in
|
||||
<stdio.h>, because they need it for implementing getc() and putc() as
|
||||
fast macros. */
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
return fp->_IO_write_ptr - fp->_IO_write_base;
|
||||
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
|
||||
/* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
|
||||
diff --git a/lib/fpurge.c b/lib/fpurge.c
|
||||
index 53ee68c..7cba3a3 100644
|
||||
--- a/lib/fpurge.c
|
||||
+++ b/lib/fpurge.c
|
||||
@@ -62,7 +62,7 @@ fpurge (FILE *fp)
|
||||
/* Most systems provide FILE as a struct and the necessary bitmask in
|
||||
<stdio.h>, because they need it for implementing getc() and putc() as
|
||||
fast macros. */
|
||||
-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
fp->_IO_read_end = fp->_IO_read_ptr;
|
||||
fp->_IO_write_ptr = fp->_IO_write_base;
|
||||
/* Avoid memory leak when there is an active ungetc buffer. */
|
||||
diff --git a/lib/freadahead.c b/lib/freadahead.c
|
||||
index cfc969b..5e43e13 100644
|
||||
--- a/lib/freadahead.c
|
||||
+++ b/lib/freadahead.c
|
||||
@@ -25,7 +25,7 @@
|
||||
size_t
|
||||
freadahead (FILE *fp)
|
||||
{
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
if (fp->_IO_write_ptr > fp->_IO_write_base)
|
||||
return 0;
|
||||
return (fp->_IO_read_end - fp->_IO_read_ptr)
|
||||
diff --git a/lib/freading.c b/lib/freading.c
|
||||
index 05cb0b8..f1da5b9 100644
|
||||
--- a/lib/freading.c
|
||||
+++ b/lib/freading.c
|
||||
@@ -31,7 +31,7 @@ freading (FILE *fp)
|
||||
/* Most systems provide FILE as a struct and the necessary bitmask in
|
||||
<stdio.h>, because they need it for implementing getc() and putc() as
|
||||
fast macros. */
|
||||
-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
return ((fp->_flags & _IO_NO_WRITES) != 0
|
||||
|| ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
|
||||
&& fp->_IO_read_base != NULL));
|
||||
diff --git a/lib/fseeko.c b/lib/fseeko.c
|
||||
index 0c01c4f..0601619 100644
|
||||
--- a/lib/fseeko.c
|
||||
+++ b/lib/fseeko.c
|
||||
@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence)
|
||||
#endif
|
||||
|
||||
/* These tests are based on fpurge.c. */
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
if (fp->_IO_read_end == fp->_IO_read_ptr
|
||||
&& fp->_IO_write_ptr == fp->_IO_write_base
|
||||
&& fp->_IO_save_base == NULL)
|
||||
@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence)
|
||||
return -1;
|
||||
}
|
||||
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
fp->_flags &= ~_IO_EOF_SEEN;
|
||||
fp->_offset = pos;
|
||||
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
|
||||
diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
|
||||
index 766d693..75fe3ad 100644
|
||||
--- a/lib/stdio-impl.h
|
||||
+++ b/lib/stdio-impl.h
|
||||
@@ -18,6 +18,12 @@
|
||||
the same implementation of stdio extension API, except that some fields
|
||||
have different naming conventions, or their access requires some casts. */
|
||||
|
||||
+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
|
||||
+ problem by defining it ourselves. FIXME: Do not rely on glibc
|
||||
+ internals. */
|
||||
+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
|
||||
+# define _IO_IN_BACKUP 0x100
|
||||
+#endif
|
||||
|
||||
/* BSD stdio derived implementations. */
|
||||
|
||||
--
|
||||
2.7.4.windows.1
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
# this patches is from https://git.busybox.net/buildroot/commit/?id=c48f8a64626c60bd1b46804b7cf1a699ff53cdf3
|
||||
# to fix compiler error on certain systems:
|
||||
# freadahead.c:92:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
|
||||
|
||||
|
||||
From 74d9d6a293d7462dea8f83e7fc5ac792e956a0ad Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Thu, 8 Mar 2018 16:42:45 -0800
|
||||
Subject: [PATCH 2/2] fflush: be more paranoid about libio.h change
|
||||
|
||||
Suggested by Eli Zaretskii in:
|
||||
https://lists.gnu.org/r/emacs-devel/2018-03/msg00270.html
|
||||
* lib/fbufmode.c (fbufmode):
|
||||
* lib/fflush.c (clear_ungetc_buffer_preserving_position)
|
||||
(disable_seek_optimization, rpl_fflush):
|
||||
* lib/fpending.c (__fpending):
|
||||
* lib/fpurge.c (fpurge):
|
||||
* lib/freadable.c (freadable):
|
||||
* lib/freadahead.c (freadahead):
|
||||
* lib/freading.c (freading):
|
||||
* lib/freadptr.c (freadptr):
|
||||
* lib/freadseek.c (freadptrinc):
|
||||
* lib/fseeko.c (fseeko):
|
||||
* lib/fseterr.c (fseterr):
|
||||
* lib/fwritable.c (fwritable):
|
||||
* lib/fwriting.c (fwriting):
|
||||
Look at _IO_ftrylockfile as well as at _IO_EOF_SEEN.
|
||||
---
|
||||
lib/fflush.c | 9 ++++++---
|
||||
lib/fpending.c | 3 ++-
|
||||
lib/fpurge.c | 3 ++-
|
||||
lib/freadahead.c | 3 ++-
|
||||
lib/freading.c | 3 ++-
|
||||
lib/fseeko.c | 6 ++++--
|
||||
6 files changed, 18 insertions(+), 9 deletions(-)
|
||||
|
||||
[yann.morin.1998@free.fr: partially backport from upstream gnulib]
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
|
||||
diff --git a/lib/fflush.c b/lib/fflush.c
|
||||
index 787790d..d6951a8 100644
|
||||
--- a/lib/fflush.c
|
||||
+++ b/lib/fflush.c
|
||||
@@ -33,7 +33,8 @@
|
||||
#undef fflush
|
||||
|
||||
|
||||
-#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
|
||||
+/* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
|
||||
/* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
|
||||
static void
|
||||
@@ -72,7 +73,8 @@ clear_ungetc_buffer (FILE *fp)
|
||||
|
||||
#endif
|
||||
|
||||
-#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
|
||||
+#if ! (defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1)
|
||||
+/* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
|
||||
# if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
|
||||
/* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
|
||||
@@ -148,7 +150,8 @@ rpl_fflush (FILE *stream)
|
||||
if (stream == NULL || ! freading (stream))
|
||||
return fflush (stream);
|
||||
|
||||
-#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
|
||||
+ /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
|
||||
clear_ungetc_buffer_preserving_position (stream);
|
||||
|
||||
diff --git a/lib/fpending.c b/lib/fpending.c
|
||||
index 9fe7ffb..9433c1a 100644
|
||||
--- a/lib/fpending.c
|
||||
+++ b/lib/fpending.c
|
||||
@@ -32,7 +32,8 @@ __fpending (FILE *fp)
|
||||
/* Most systems provide FILE as a struct and the necessary bitmask in
|
||||
<stdio.h>, because they need it for implementing getc() and putc() as
|
||||
fast macros. */
|
||||
-#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
|
||||
+ /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
return fp->_IO_write_ptr - fp->_IO_write_base;
|
||||
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
|
||||
/* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
|
||||
diff --git a/lib/fpurge.c b/lib/fpurge.c
|
||||
index 7cba3a3..55758d7 100644
|
||||
--- a/lib/fpurge.c
|
||||
+++ b/lib/fpurge.c
|
||||
@@ -62,7 +62,8 @@ fpurge (FILE *fp)
|
||||
/* Most systems provide FILE as a struct and the necessary bitmask in
|
||||
<stdio.h>, because they need it for implementing getc() and putc() as
|
||||
fast macros. */
|
||||
-# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+# if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
|
||||
+ /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
fp->_IO_read_end = fp->_IO_read_ptr;
|
||||
fp->_IO_write_ptr = fp->_IO_write_base;
|
||||
/* Avoid memory leak when there is an active ungetc buffer. */
|
||||
diff --git a/lib/freadahead.c b/lib/freadahead.c
|
||||
index 5e43e13..4ccaa09 100644
|
||||
--- a/lib/freadahead.c
|
||||
+++ b/lib/freadahead.c
|
||||
@@ -25,7 +25,8 @@
|
||||
size_t
|
||||
freadahead (FILE *fp)
|
||||
{
|
||||
-#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
|
||||
+ /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
if (fp->_IO_write_ptr > fp->_IO_write_base)
|
||||
return 0;
|
||||
return (fp->_IO_read_end - fp->_IO_read_ptr)
|
||||
diff --git a/lib/freading.c b/lib/freading.c
|
||||
index f1da5b9..7ae5618 100644
|
||||
--- a/lib/freading.c
|
||||
+++ b/lib/freading.c
|
||||
@@ -31,7 +31,8 @@ freading (FILE *fp)
|
||||
/* Most systems provide FILE as a struct and the necessary bitmask in
|
||||
<stdio.h>, because they need it for implementing getc() and putc() as
|
||||
fast macros. */
|
||||
-# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+# if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
|
||||
+ /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
return ((fp->_flags & _IO_NO_WRITES) != 0
|
||||
|| ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
|
||||
&& fp->_IO_read_base != NULL));
|
||||
diff --git a/lib/fseeko.c b/lib/fseeko.c
|
||||
index 0601619..2fc1986 100644
|
||||
--- a/lib/fseeko.c
|
||||
+++ b/lib/fseeko.c
|
||||
@@ -47,7 +47,8 @@ fseeko (FILE *fp, off_t offset, int whence)
|
||||
#endif
|
||||
|
||||
/* These tests are based on fpurge.c. */
|
||||
-#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
|
||||
+ /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
if (fp->_IO_read_end == fp->_IO_read_ptr
|
||||
&& fp->_IO_write_ptr == fp->_IO_write_base
|
||||
&& fp->_IO_save_base == NULL)
|
||||
@@ -123,7 +124,8 @@ fseeko (FILE *fp, off_t offset, int whence)
|
||||
return -1;
|
||||
}
|
||||
|
||||
-#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
|
||||
+ /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
fp->_flags &= ~_IO_EOF_SEEN;
|
||||
fp->_offset = pos;
|
||||
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
|
||||
--
|
||||
2.7.4.windows.1
|
||||
|
||||
35
recipes/m4/all/patches/1.4.18-0004-fix-checks.patch
Normal file
35
recipes/m4/all/patches/1.4.18-0004-fix-checks.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
--- checks/check-them
|
||||
+++ checks/check-them
|
||||
@@ -58,12 +58,13 @@
|
||||
shift; shift
|
||||
fi
|
||||
|
||||
# Find out how the executable prints argv[0]
|
||||
m4name=`"$m4" --help | ${SED} -e 's/Usage: \(.*\) \[OPTION.*/\1/' \
|
||||
-e 's/\\\\/\\\\\\\\/g' -e 1q`
|
||||
+m4name=`basename $m4name`
|
||||
|
||||
# Find out if we should strip \r in the output
|
||||
"$m4" --version | tee $out
|
||||
"$m4" --version | tr -d '\015' > $xout
|
||||
if cmp -s $out $xout; then
|
||||
:
|
||||
|
||||
---checks/Makefile
|
||||
+++ checks/Makefile.in
|
||||
@@ -1612,14 +1612,14 @@
|
||||
$(srcdir)/stamp-checks: $(srcdir)/get-them $(top_srcdir)/doc/m4.texi
|
||||
rm -f $(DOC_CHECKS)
|
||||
cd $(srcdir) && AWK=$(AWK) ./get-them ../doc/m4.texi
|
||||
echo stamp >$@
|
||||
|
||||
check-local: $(srcdir)/stamp-checks
|
||||
- PATH=`pwd`/../src"$(PATH_SEPARATOR)"$$PATH; export PATH; \
|
||||
- $(srcdir)/check-them -I $(srcdir)/../examples $(CHECKS)
|
||||
+ cd $(srcdir)/.. && PATH=src"$(PATH_SEPARATOR)"$$PATH \
|
||||
+ $(srcdir)/check-them -I examples $(CHECKS)
|
||||
|
||||
installcheck: $(srcdir)/stamp-checks
|
||||
PATH='$(bindir)'"$(PATH_SEPARATOR)"$$PATH; export PATH; \
|
||||
$(srcdir)/check-them -I $(srcdir)/../examples \
|
||||
-m "`echo m4 | sed '$(program_transform_name)'`" $(CHECKS)
|
||||
@@ -0,0 +1,124 @@
|
||||
From 0d01189c540f63159448ba6bf4740bb20ff1e1ee Mon Sep 17 00:00:00 2001
|
||||
From: Bruno Haible <bruno@clisp.org>
|
||||
Date: Fri, 21 Apr 2017 17:24:48 +0200
|
||||
Subject: vasnprintf: Fix for MSVC 14.
|
||||
|
||||
* lib/vasnprintf.c (USE_MSVC__SNPRINTF): New macro.
|
||||
Everywhere, use !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF instead
|
||||
of !HAVE_SNPRINTF_RETVAL_C99.
|
||||
---
|
||||
lib/vasnprintf.c | 23 +++++++++++++----------
|
||||
1 file changed, 13 insertions(+), 10 deletions(-)
|
||||
|
||||
(limited to 'lib/vasnprintf.c')
|
||||
|
||||
diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
|
||||
index 4962e5893..839f79060 100644
|
||||
--- a/lib/vasnprintf.c
|
||||
+++ b/lib/vasnprintf.c
|
||||
@@ -156,6 +156,7 @@
|
||||
# define SNPRINTF snwprintf
|
||||
# else
|
||||
# define SNPRINTF _snwprintf
|
||||
+# define USE_MSVC__SNPRINTF 1
|
||||
# endif
|
||||
# else
|
||||
/* Unix. */
|
||||
@@ -181,7 +182,9 @@
|
||||
/* Here we need to call the native snprintf, not rpl_snprintf. */
|
||||
# undef snprintf
|
||||
# else
|
||||
+ /* MSVC versions < 14 did not have snprintf, only _snprintf. */
|
||||
# define SNPRINTF _snprintf
|
||||
+# define USE_MSVC__SNPRINTF 1
|
||||
# endif
|
||||
# else
|
||||
/* Unix. */
|
||||
@@ -208,7 +211,7 @@
|
||||
#undef remainder
|
||||
#define remainder rem
|
||||
|
||||
-#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && !WIDE_CHAR_VERSION
|
||||
+#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && !WIDE_CHAR_VERSION
|
||||
# if (HAVE_STRNLEN && !defined _AIX)
|
||||
# define local_strnlen strnlen
|
||||
# else
|
||||
@@ -224,7 +227,7 @@ local_strnlen (const char *string, size_t maxlen)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
-#if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && WIDE_CHAR_VERSION) || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && !WIDE_CHAR_VERSION && DCHAR_IS_TCHAR)) && HAVE_WCHAR_T
|
||||
+#if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && WIDE_CHAR_VERSION) || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && !WIDE_CHAR_VERSION && DCHAR_IS_TCHAR)) && HAVE_WCHAR_T
|
||||
# if HAVE_WCSLEN
|
||||
# define local_wcslen wcslen
|
||||
# else
|
||||
@@ -247,7 +250,7 @@ local_wcslen (const wchar_t *s)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
-#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && HAVE_WCHAR_T && WIDE_CHAR_VERSION
|
||||
+#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && HAVE_WCHAR_T && WIDE_CHAR_VERSION
|
||||
# if HAVE_WCSNLEN
|
||||
# define local_wcsnlen wcsnlen
|
||||
# else
|
||||
@@ -1517,7 +1520,7 @@ is_borderline (const char *digits, size_t precision)
|
||||
|
||||
#endif
|
||||
|
||||
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99
|
||||
+#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF
|
||||
|
||||
/* Use a different function name, to make it possible that the 'wchar_t'
|
||||
parametrization and the 'char' parametrization get compiled in the same
|
||||
@@ -2392,7 +2395,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
|
||||
}
|
||||
}
|
||||
#endif
|
||||
-#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T
|
||||
+#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T
|
||||
else if (dp->conversion == 's'
|
||||
# if WIDE_CHAR_VERSION
|
||||
&& a.arg[dp->arg_index].type != TYPE_WIDE_STRING
|
||||
@@ -4591,10 +4594,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
|
||||
#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
|
||||
int has_width;
|
||||
#endif
|
||||
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
|
||||
+#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
|
||||
size_t width;
|
||||
#endif
|
||||
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || NEED_PRINTF_UNBOUNDED_PRECISION
|
||||
+#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
|
||||
int has_precision;
|
||||
size_t precision;
|
||||
#endif
|
||||
@@ -4623,7 +4626,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
|
||||
#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
|
||||
has_width = 0;
|
||||
#endif
|
||||
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
|
||||
+#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
|
||||
width = 0;
|
||||
if (dp->width_start != dp->width_end)
|
||||
{
|
||||
@@ -4657,7 +4660,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || NEED_PRINTF_UNBOUNDED_PRECISION
|
||||
+#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
|
||||
has_precision = 0;
|
||||
precision = 6;
|
||||
if (dp->precision_start != dp->precision_end)
|
||||
@@ -5127,7 +5130,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
|
||||
/* Look at the snprintf() return value. */
|
||||
if (retcount < 0)
|
||||
{
|
||||
-# if !HAVE_SNPRINTF_RETVAL_C99
|
||||
+# if !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF
|
||||
/* HP-UX 10.20 snprintf() is doubly deficient:
|
||||
It doesn't understand the '%n' directive,
|
||||
*and* it returns -1 (rather than the length
|
||||
--
|
||||
cgit v1.2.1
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From 5e22aee79f9d02ac37f40f1d18f5696114c3c3c9 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Tue, 16 May 2017 09:23:52 -0700
|
||||
Subject: manywarnings: update for GCC 7
|
||||
|
||||
* build-aux/gcc-warning.spec:
|
||||
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
|
||||
Add GCC 7 warnings, notably -Wimplicit-fallthrough=5, which
|
||||
requires a non-comment fallthrough attribute. This is a bit
|
||||
cleaner than the comment versions.
|
||||
* lib/strftime.c, lib/dfa.c, lib/fnmatch.c, lib/mbrtowc.c:
|
||||
* lib/vasnprintf.c, tests/macros.h (FALLTHROUGH): New macro.
|
||||
Use it whenever one switch case falls through into the next.
|
||||
---
|
||||
lib/vasnprintf.c | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
(limited to 'lib/vasnprintf.c')
|
||||
|
||||
diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
|
||||
index 839f79060..9c2af0e45 100644
|
||||
--- a/lib/vasnprintf.c
|
||||
+++ b/lib/vasnprintf.c
|
||||
@@ -118,6 +118,14 @@
|
||||
# include "fpucw.h"
|
||||
#endif
|
||||
|
||||
+#ifndef FALLTHROUGH
|
||||
+# if __GNUC__ < 7
|
||||
+# define FALLTHROUGH ((void) 0)
|
||||
+# else
|
||||
+# define FALLTHROUGH __attribute__ ((__fallthrough__))
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
/* Default parameters. */
|
||||
#ifndef VASNPRINTF
|
||||
# if WIDE_CHAR_VERSION
|
||||
@@ -4837,7 +4845,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
|
||||
*fbp++ = 'l';
|
||||
# endif
|
||||
#endif
|
||||
- /*FALLTHROUGH*/
|
||||
+ FALLTHROUGH;
|
||||
case TYPE_LONGINT:
|
||||
case TYPE_ULONGINT:
|
||||
#if HAVE_WINT_T
|
||||
--
|
||||
cgit v1.2.1
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
From c41f233c4c38e84023a16339782ee306f03e7f59 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Fri, 7 Jul 2017 14:10:20 -0700
|
||||
Subject: vasnprintf: port to macOS 10.13
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Problem reported by comex in:
|
||||
http://lists.gnu.org/archive/html/bug-gnulib/2017-07/msg00056.html
|
||||
* lib/vasnprintf.c (VASNPRINTF): Don’t use %n on macOS.
|
||||
---
|
||||
lib/vasnprintf.c | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
(limited to 'lib/vasnprintf.c')
|
||||
|
||||
diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
|
||||
index 9c2af0e45..fecaf27a1 100644
|
||||
--- a/lib/vasnprintf.c
|
||||
+++ b/lib/vasnprintf.c
|
||||
@@ -4869,7 +4869,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
|
||||
#endif
|
||||
*fbp = dp->conversion;
|
||||
#if USE_SNPRINTF
|
||||
-# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
|
||||
+# if ! (((__GLIBC__ > 2 \
|
||||
+ || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \
|
||||
+ && !defined __UCLIBC__) \
|
||||
+ || (defined __APPLE__ && defined __MACH__) \
|
||||
+ || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
|
||||
fbp[1] = '%';
|
||||
fbp[2] = 'n';
|
||||
fbp[3] = '\0';
|
||||
@@ -4883,6 +4887,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
|
||||
in format strings in writable memory may crash the program
|
||||
(if compiled with _FORTIFY_SOURCE=2), so we should avoid it
|
||||
in this situation. */
|
||||
+ /* macOS 10.13 High Sierra behaves like glibc with
|
||||
+ _FORTIFY_SOURCE=2, and older macOS releases
|
||||
+ presumably do not need %n. */
|
||||
/* On native Windows systems (such as mingw), we can avoid using
|
||||
%n because:
|
||||
- Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
|
||||
--
|
||||
cgit v1.2.1
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
This will open all files in binary mode.
|
||||
files may contain binary data.
|
||||
This fixes e.g. autoconf, of whose frozen file, contains all characters from 0x00 to 0xff.
|
||||
|
||||
--- src/path.c
|
||||
+++ src/path.c
|
||||
@@ -110,7 +110,7 @@
|
||||
static FILE *
|
||||
m4_fopen (const char *file)
|
||||
{
|
||||
- FILE *fp = fopen (file, "r");
|
||||
+ FILE *fp = fopen (file, "rb");
|
||||
if (fp)
|
||||
{
|
||||
struct stat st;
|
||||
@@ -0,0 +1,16 @@
|
||||
This requires linking to ssp on some systems, which might not always present.
|
||||
If this is really desired:
|
||||
* add `-lssp` to LDFLAGS, and
|
||||
* add `-D_FORTIFY_SOURCE=2` to CPPFLAGS/CFLAGS
|
||||
|
||||
--- lib/config.hin
|
||||
+++ lib/config.hin
|
||||
@@ -96,7 +96,7 @@
|
||||
/* Enable compile-time and run-time bounds-checking, and some warnings,
|
||||
without upsetting newer glibc. */
|
||||
#if defined __OPTIMIZE__ && __OPTIMIZE__
|
||||
- # define _FORTIFY_SOURCE 2
|
||||
+ //# define _FORTIFY_SOURCE 2
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
c-stack: stop using SIGSTKSZ
|
||||
|
||||
It’s been proposed to stop making SIGSTKSZ an integer constant:
|
||||
https://sourceware.org/pipermail/libc-alpha/2020-September/118028.html
|
||||
Also, using SIGSTKSZ in #if did not conform to current POSIX.
|
||||
Also, avoiding SIGSTKSZ makes the code simpler and easier to grok.
|
||||
* lib/c-stack.c (SIGSTKSZ): Remove.
|
||||
(alternate_signal_stack): Now a 64 KiB array, for simplicity.
|
||||
All uses changed.
|
||||
|
||||
[Retrieved (and backported) from:
|
||||
https://git.savannah.gnu.org/cgit/gnulib.git/patch/?id=f9e2b20a12a230efa30f1d479563ae07d276a94b]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
|
||||
diff -Nura lib/c-stack.c lib/c-stack.c
|
||||
--- lib/c-stack.c 2021-04-11 19:12:14.086494029 +0200
|
||||
+++ lib/c-stack.c 2021-04-11 19:48:46.316862760 +0200
|
||||
@@ -50,15 +50,16 @@
|
||||
#if ! HAVE_STACK_T && ! defined stack_t
|
||||
typedef struct sigaltstack stack_t;
|
||||
#endif
|
||||
-#ifndef SIGSTKSZ
|
||||
-# define SIGSTKSZ 16384
|
||||
-#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
|
||||
-/* libsigsegv 2.6 through 2.8 have a bug where some architectures use
|
||||
- more than the Linux default of an 8k alternate stack when deciding
|
||||
- if a fault was caused by stack overflow. */
|
||||
-# undef SIGSTKSZ
|
||||
-# define SIGSTKSZ 16384
|
||||
-#endif
|
||||
+
|
||||
+/* Storage for the alternate signal stack.
|
||||
+ 64 KiB is not too large for Gnulib-using apps, and is large enough
|
||||
+ for all known platforms. Smaller sizes may run into trouble.
|
||||
+ For example, libsigsegv 2.6 through 2.8 have a bug where some
|
||||
+ architectures use more than the Linux default of an 8 KiB alternate
|
||||
+ stack when deciding if a fault was caused by stack overflow. */
|
||||
+static max_align_t alternate_signal_stack[(64 * 1024
|
||||
+ + sizeof (max_align_t) - 1)
|
||||
+ / sizeof (max_align_t)];
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -128,19 +129,6 @@
|
||||
#if (HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK \
|
||||
&& HAVE_STACK_OVERFLOW_HANDLING) || HAVE_LIBSIGSEGV
|
||||
|
||||
-/* Storage for the alternate signal stack. */
|
||||
-static union
|
||||
-{
|
||||
- char buffer[SIGSTKSZ];
|
||||
-
|
||||
- /* These other members are for proper alignment. There's no
|
||||
- standard way to guarantee stack alignment, but this seems enough
|
||||
- in practice. */
|
||||
- long double ld;
|
||||
- long l;
|
||||
- void *p;
|
||||
-} alternate_signal_stack;
|
||||
-
|
||||
static void
|
||||
null_action (int signo __attribute__ ((unused)))
|
||||
{
|
||||
@@ -205,8 +193,8 @@
|
||||
|
||||
/* Always install the overflow handler. */
|
||||
if (stackoverflow_install_handler (overflow_handler,
|
||||
- alternate_signal_stack.buffer,
|
||||
- sizeof alternate_signal_stack.buffer))
|
||||
+ alternate_signal_stack,
|
||||
+ sizeof alternate_signal_stack))
|
||||
{
|
||||
errno = ENOTSUP;
|
||||
return -1;
|
||||
@@ -279,14 +267,14 @@
|
||||
stack_t st;
|
||||
struct sigaction act;
|
||||
st.ss_flags = 0;
|
||||
+ st.ss_sp = alternate_signal_stack;
|
||||
+ st.ss_size = sizeof alternate_signal_stack;
|
||||
# if SIGALTSTACK_SS_REVERSED
|
||||
/* Irix mistakenly treats ss_sp as the upper bound, rather than
|
||||
lower bound, of the alternate stack. */
|
||||
- st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ - sizeof (void *);
|
||||
- st.ss_size = sizeof alternate_signal_stack.buffer - sizeof (void *);
|
||||
-# else
|
||||
- st.ss_sp = alternate_signal_stack.buffer;
|
||||
- st.ss_size = sizeof alternate_signal_stack.buffer;
|
||||
+ st.ss_size -= sizeof (void *);
|
||||
+ char *ss_sp = st.ss_sp;
|
||||
+ st.ss_sp = ss_sp + st.ss_size;
|
||||
# endif
|
||||
r = sigaltstack (&st, NULL);
|
||||
if (r != 0)
|
||||
diff -Nura lib/c-stack.h lib/c-stack.h
|
||||
--- lib/c-stack.h 2021-04-11 19:12:14.098494042 +0200
|
||||
+++ lib/c-stack.h 2021-04-11 19:17:42.138848378 +0200
|
||||
@@ -34,7 +34,7 @@
|
||||
A null ACTION acts like an action that does nothing.
|
||||
|
||||
ACTION must be async-signal-safe. ACTION together with its callees
|
||||
- must not require more than SIGSTKSZ bytes of stack space. Also,
|
||||
+ must not require more than 64 KiB bytes of stack space. Also,
|
||||
ACTION should not call longjmp, because this implementation does
|
||||
not guarantee that it is safe to return to the original stack.
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
This will open all files in binary mode.
|
||||
files may contain binary data.
|
||||
This fixes e.g. autoconf, of whose frozen file, contains all characters from 0x00 to 0xff.
|
||||
|
||||
--- src/path.c
|
||||
+++ src/path.c
|
||||
@@ -110,7 +110,7 @@
|
||||
static FILE *
|
||||
m4_fopen (const char *file)
|
||||
{
|
||||
- FILE *fp = fopen (file, "re");
|
||||
+ FILE *fp = fopen (file, "reb");
|
||||
if (fp)
|
||||
{
|
||||
struct stat st;
|
||||
276
recipes/m4/all/patches/1.4.19-0002-ar-lib.patch
Normal file
276
recipes/m4/all/patches/1.4.19-0002-ar-lib.patch
Normal file
@@ -0,0 +1,276 @@
|
||||
ar-lib is needed for building m4 with Visual Studio.
|
||||
Re-use the one from m4/1.4.18.
|
||||
We can't use automake here to avoid a build cycle (m4 -> automake -> autoconf -> m4)
|
||||
--- /dev/null
|
||||
+++ build-aux/ar-lib
|
||||
@@ -0,0 +1,270 @@
|
||||
+#! /bin/sh
|
||||
+# Wrapper for Microsoft lib.exe
|
||||
+
|
||||
+me=ar-lib
|
||||
+scriptversion=2012-03-01.08; # UTC
|
||||
+
|
||||
+# Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
+# Written by Peter Rosin <peda@lysator.liu.se>.
|
||||
+#
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 2, or (at your option)
|
||||
+# any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+# As a special exception to the GNU General Public License, if you
|
||||
+# distribute this file as part of a program that contains a
|
||||
+# configuration script generated by Autoconf, you may include it under
|
||||
+# the same distribution terms that you use for the rest of that program.
|
||||
+
|
||||
+# This file is maintained in Automake, please report
|
||||
+# bugs to <bug-automake@gnu.org> or send patches to
|
||||
+# <automake-patches@gnu.org>.
|
||||
+
|
||||
+
|
||||
+# func_error message
|
||||
+func_error ()
|
||||
+{
|
||||
+ echo "$me: $1" 1>&2
|
||||
+ exit 1
|
||||
+}
|
||||
+
|
||||
+file_conv=
|
||||
+
|
||||
+# func_file_conv build_file
|
||||
+# Convert a $build file to $host form and store it in $file
|
||||
+# Currently only supports Windows hosts.
|
||||
+func_file_conv ()
|
||||
+{
|
||||
+ file=$1
|
||||
+ case $file in
|
||||
+ / | /[!/]*) # absolute file, and not a UNC file
|
||||
+ if test -z "$file_conv"; then
|
||||
+ # lazily determine how to convert abs files
|
||||
+ case `uname -s` in
|
||||
+ MINGW*)
|
||||
+ file_conv=mingw
|
||||
+ ;;
|
||||
+ CYGWIN*)
|
||||
+ file_conv=cygwin
|
||||
+ ;;
|
||||
+ *)
|
||||
+ file_conv=wine
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ case $file_conv in
|
||||
+ mingw)
|
||||
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||
+ ;;
|
||||
+ cygwin)
|
||||
+ file=`cygpath -m "$file" || echo "$file"`
|
||||
+ ;;
|
||||
+ wine)
|
||||
+ file=`winepath -w "$file" || echo "$file"`
|
||||
+ ;;
|
||||
+ esac
|
||||
+ ;;
|
||||
+ esac
|
||||
+}
|
||||
+
|
||||
+# func_at_file at_file operation archive
|
||||
+# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
|
||||
+# for each of them.
|
||||
+# When interpreting the content of the @FILE, do NOT use func_file_conv,
|
||||
+# since the user would need to supply preconverted file names to
|
||||
+# binutils ar, at least for MinGW.
|
||||
+func_at_file ()
|
||||
+{
|
||||
+ operation=$2
|
||||
+ archive=$3
|
||||
+ at_file_contents=`cat "$1"`
|
||||
+ eval set x "$at_file_contents"
|
||||
+ shift
|
||||
+
|
||||
+ for member
|
||||
+ do
|
||||
+ $AR -NOLOGO $operation:"$member" "$archive" || exit $?
|
||||
+ done
|
||||
+}
|
||||
+
|
||||
+case $1 in
|
||||
+ '')
|
||||
+ func_error "no command. Try '$0 --help' for more information."
|
||||
+ ;;
|
||||
+ -h | --h*)
|
||||
+ cat <<EOF
|
||||
+Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...]
|
||||
+
|
||||
+Members may be specified in a file named with @FILE.
|
||||
+EOF
|
||||
+ exit $?
|
||||
+ ;;
|
||||
+ -v | --v*)
|
||||
+ echo "$me, version $scriptversion"
|
||||
+ exit $?
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
+if test $# -lt 3; then
|
||||
+ func_error "you must specify a program, an action and an archive"
|
||||
+fi
|
||||
+
|
||||
+AR=$1
|
||||
+shift
|
||||
+while :
|
||||
+do
|
||||
+ if test $# -lt 2; then
|
||||
+ func_error "you must specify a program, an action and an archive"
|
||||
+ fi
|
||||
+ case $1 in
|
||||
+ -lib | -LIB \
|
||||
+ | -ltcg | -LTCG \
|
||||
+ | -machine* | -MACHINE* \
|
||||
+ | -subsystem* | -SUBSYSTEM* \
|
||||
+ | -verbose | -VERBOSE \
|
||||
+ | -wx* | -WX* )
|
||||
+ AR="$AR $1"
|
||||
+ shift
|
||||
+ ;;
|
||||
+ *)
|
||||
+ action=$1
|
||||
+ shift
|
||||
+ break
|
||||
+ ;;
|
||||
+ esac
|
||||
+done
|
||||
+orig_archive=$1
|
||||
+shift
|
||||
+func_file_conv "$orig_archive"
|
||||
+archive=$file
|
||||
+
|
||||
+# strip leading dash in $action
|
||||
+action=${action#-}
|
||||
+
|
||||
+delete=
|
||||
+extract=
|
||||
+list=
|
||||
+quick=
|
||||
+replace=
|
||||
+index=
|
||||
+create=
|
||||
+
|
||||
+while test -n "$action"
|
||||
+do
|
||||
+ case $action in
|
||||
+ d*) delete=yes ;;
|
||||
+ x*) extract=yes ;;
|
||||
+ t*) list=yes ;;
|
||||
+ q*) quick=yes ;;
|
||||
+ r*) replace=yes ;;
|
||||
+ s*) index=yes ;;
|
||||
+ S*) ;; # the index is always updated implicitly
|
||||
+ c*) create=yes ;;
|
||||
+ u*) ;; # TODO: don't ignore the update modifier
|
||||
+ v*) ;; # TODO: don't ignore the verbose modifier
|
||||
+ *)
|
||||
+ func_error "unknown action specified"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ action=${action#?}
|
||||
+done
|
||||
+
|
||||
+case $delete$extract$list$quick$replace,$index in
|
||||
+ yes,* | ,yes)
|
||||
+ ;;
|
||||
+ yesyes*)
|
||||
+ func_error "more than one action specified"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ func_error "no action specified"
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
+if test -n "$delete"; then
|
||||
+ if test ! -f "$orig_archive"; then
|
||||
+ func_error "archive not found"
|
||||
+ fi
|
||||
+ for member
|
||||
+ do
|
||||
+ case $1 in
|
||||
+ @*)
|
||||
+ func_at_file "${1#@}" -REMOVE "$archive"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ func_file_conv "$1"
|
||||
+ $AR -NOLOGO -REMOVE:"$file" "$archive" || exit $?
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+
|
||||
+elif test -n "$extract"; then
|
||||
+ if test ! -f "$orig_archive"; then
|
||||
+ func_error "archive not found"
|
||||
+ fi
|
||||
+ if test $# -gt 0; then
|
||||
+ for member
|
||||
+ do
|
||||
+ case $1 in
|
||||
+ @*)
|
||||
+ func_at_file "${1#@}" -EXTRACT "$archive"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ func_file_conv "$1"
|
||||
+ $AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $?
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ else
|
||||
+ $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
|
||||
+ do
|
||||
+ $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
|
||||
+ done
|
||||
+ fi
|
||||
+
|
||||
+elif test -n "$quick$replace"; then
|
||||
+ if test ! -f "$orig_archive"; then
|
||||
+ if test -z "$create"; then
|
||||
+ echo "$me: creating $orig_archive"
|
||||
+ fi
|
||||
+ orig_archive=
|
||||
+ else
|
||||
+ orig_archive=$archive
|
||||
+ fi
|
||||
+
|
||||
+ for member
|
||||
+ do
|
||||
+ case $1 in
|
||||
+ @*)
|
||||
+ func_file_conv "${1#@}"
|
||||
+ set x "$@" "@$file"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ func_file_conv "$1"
|
||||
+ set x "$@" "$file"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ shift
|
||||
+ shift
|
||||
+ done
|
||||
+
|
||||
+ if test -n "$orig_archive"; then
|
||||
+ $AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $?
|
||||
+ else
|
||||
+ $AR -NOLOGO -OUT:"$archive" "$@" || exit $?
|
||||
+ fi
|
||||
+
|
||||
+elif test -n "$list"; then
|
||||
+ if test ! -f "$orig_archive"; then
|
||||
+ func_error "archive not found"
|
||||
+ fi
|
||||
+ $AR -NOLOGO -LIST "$archive" || exit $?
|
||||
+fi
|
||||
@@ -0,0 +1,31 @@
|
||||
diff --git a/src/m4.c b/src/m4.c
|
||||
index 2bd57750..ca3ded62 100644
|
||||
--- a/src/m4.c
|
||||
+++ b/src/m4.c
|
||||
@@ -36,6 +36,10 @@
|
||||
# include "assert.h"
|
||||
#endif
|
||||
|
||||
+#ifdef _WIN32
|
||||
+# include <crtdbg.h>
|
||||
+#endif
|
||||
+
|
||||
/* TRANSLATORS: This is a non-ASCII name: The first name is (with
|
||||
Unicode escapes) "Ren\u00e9" or (with HTML entities) "René". */
|
||||
#define AUTHORS proper_name_utf8 ("Rene' Seindal", "Ren\xC3\xA9 Seindal")
|
||||
@@ -423,6 +427,15 @@ main (int argc, char *const *argv)
|
||||
textdomain (PACKAGE);
|
||||
atexit (close_stdin);
|
||||
|
||||
+#ifdef _WIN32
|
||||
+ _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
|
||||
+ _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
|
||||
+ _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
|
||||
+ _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
|
||||
+ _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
|
||||
+ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
|
||||
+#endif
|
||||
+
|
||||
include_init ();
|
||||
debug_init ();
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
This requires linking to ssp on some systems, which might not always present.
|
||||
If this is really desired:
|
||||
* add `-lssp` to LDFLAGS, and
|
||||
* add `-D_FORTIFY_SOURCE=2` to CPPFLAGS/CFLAGS
|
||||
|
||||
--- a/lib/config.hin
|
||||
+++ b/lib/config.hin
|
||||
@@ -198,7 +198,7 @@
|
||||
/* Enable compile-time and run-time bounds-checking, and some warnings,
|
||||
without upsetting newer glibc. */
|
||||
#if defined __OPTIMIZE__ && __OPTIMIZE__
|
||||
- # define _FORTIFY_SOURCE 2
|
||||
+ //# define _FORTIFY_SOURCE 2
|
||||
#endif
|
||||
|
||||
|
||||
1
recipes/m4/all/test_package/conanbuild.sh
Normal file
1
recipes/m4/all/test_package/conanbuild.sh
Normal file
@@ -0,0 +1 @@
|
||||
. "/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/m4/all/test_package/conanbuildenv-release-x86_64.sh"
|
||||
20
recipes/m4/all/test_package/conanbuildenv-release-x86_64.sh
Normal file
20
recipes/m4/all/test_package/conanbuildenv-release-x86_64.sh
Normal file
@@ -0,0 +1,20 @@
|
||||
script_folder="/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/m4/all/test_package"
|
||||
echo "echo Restoring environment" > "$script_folder/deactivate_conanbuildenv-release-x86_64.sh"
|
||||
for v in CXX CC CONAN_V2_MODE M4 PATH
|
||||
do
|
||||
is_defined="true"
|
||||
value=$(printenv $v) || is_defined="" || true
|
||||
if [ -n "$value" ] || [ -n "$is_defined" ]
|
||||
then
|
||||
echo export "$v='$value'" >> "$script_folder/deactivate_conanbuildenv-release-x86_64.sh"
|
||||
else
|
||||
echo unset $v >> "$script_folder/deactivate_conanbuildenv-release-x86_64.sh"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
export CXX="x86_64-linux-gnu-g++-12"
|
||||
export CC="x86_64-linux-gnu-gcc-12"
|
||||
export CONAN_V2_MODE="true"
|
||||
export M4="/home/aleksandr.vodyanov/.conan2/p/b/m47abe83bbe08ec/p/bin/m4"
|
||||
export PATH="/home/aleksandr.vodyanov/.conan2/p/b/m47abe83bbe08ec/p/bin:$PATH"
|
||||
14
recipes/m4/all/test_package/conanfile.py
Normal file
14
recipes/m4/all/test_package/conanfile.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from conan import ConanFile
|
||||
|
||||
|
||||
class TestPackageConan(ConanFile):
|
||||
settings = "os", "arch", "compiler", "build_type"
|
||||
generators = "VirtualBuildEnv"
|
||||
test_type = "explicit"
|
||||
|
||||
def build_requirements(self):
|
||||
self.tool_requires(self.tested_reference_str)
|
||||
|
||||
def test(self):
|
||||
extension = ".exe" if self.settings.os == "Windows" else ""
|
||||
self.run(f"m4{extension} --version")
|
||||
1
recipes/m4/all/test_package/conanrun.sh
Normal file
1
recipes/m4/all/test_package/conanrun.sh
Normal file
@@ -0,0 +1 @@
|
||||
. "/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/m4/all/test_package/conanrunenv-release-x86_64.sh"
|
||||
14
recipes/m4/all/test_package/conanrunenv-release-x86_64.sh
Normal file
14
recipes/m4/all/test_package/conanrunenv-release-x86_64.sh
Normal file
@@ -0,0 +1,14 @@
|
||||
script_folder="/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/m4/all/test_package"
|
||||
echo "echo Restoring environment" > "$script_folder/deactivate_conanrunenv-release-x86_64.sh"
|
||||
for v in
|
||||
do
|
||||
is_defined="true"
|
||||
value=$(printenv $v) || is_defined="" || true
|
||||
if [ -n "$value" ] || [ -n "$is_defined" ]
|
||||
then
|
||||
echo export "$v='$value'" >> "$script_folder/deactivate_conanrunenv-release-x86_64.sh"
|
||||
else
|
||||
echo unset $v >> "$script_folder/deactivate_conanrunenv-release-x86_64.sh"
|
||||
fi
|
||||
done
|
||||
|
||||
1
recipes/m4/all/test_package/deactivate_conanbuild.sh
Normal file
1
recipes/m4/all/test_package/deactivate_conanbuild.sh
Normal file
@@ -0,0 +1 @@
|
||||
. "/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/m4/all/test_package/deactivate_conanbuildenv-release-x86_64.sh"
|
||||
@@ -0,0 +1,6 @@
|
||||
echo Restoring environment
|
||||
unset CXX
|
||||
unset CC
|
||||
unset CONAN_V2_MODE
|
||||
unset M4
|
||||
export PATH='/home/aleksandr.vodyanov/Documents/Avroid/Conan/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/aleksandr.vodyanov/.fzf/bin'
|
||||
1
recipes/m4/all/test_package/deactivate_conanrun.sh
Normal file
1
recipes/m4/all/test_package/deactivate_conanrun.sh
Normal file
@@ -0,0 +1 @@
|
||||
. "/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/m4/all/test_package/deactivate_conanrunenv-release-x86_64.sh"
|
||||
5
recipes/m4/config.yml
Normal file
5
recipes/m4/config.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
versions:
|
||||
"1.4.19":
|
||||
folder: all
|
||||
"1.4.18":
|
||||
folder: all
|
||||
Reference in New Issue
Block a user