From: Hilmar Preusse Date: Sat, 15 Jun 2024 21:25:01 +0000 (+0200) Subject: luametatex (2.11.02+really2.11.01+ds-1) unstable; urgency=medium X-Git-Tag: archive/raspbian/2.11.02+really2.11.01+ds-1+rpi1^2~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=820bfbc830822bbdaf8be361a8827530c55360aa;p=luametatex.git luametatex (2.11.02+really2.11.01+ds-1) unstable; urgency=medium * The version/snapshot of ConTeXt in Debian does to fit to ltmx 2.11.02, downgrade to 2.11.01 again (Closes: #1072682). * Disable patches for mimalloc. [dgit import unpatched luametatex 2.11.02+really2.11.01+ds-1] --- 820bfbc830822bbdaf8be361a8827530c55360aa diff --cc debian/README.Debian index 0000000,0000000..d97d70a new file mode 100644 --- /dev/null +++ b/debian/README.Debian @@@ -1,0 -1,0 +1,9 @@@ ++luametatex for Debian ++-------------------- ++ ++I've patched upstreams CMakeLists.txt file to link dynamically with ++libmimalloc in Debian. The libcerf and the potrace in the source package ++is patched by the luametatex maintainers, hence I use that instead of the ++Debian package. ++ ++ -- Hilmar Preusse Mon, 17 Apr 2023 09:33:47 +0200 diff --cc debian/README.source index 0000000,0000000..d49827f new file mode 100644 --- /dev/null +++ b/debian/README.source @@@ -1,0 -1,0 +1,24 @@@ ++luametatex for Debian ++-------------------- ++ ++The luametatex_2.11.01+really2.10.08+ds.orig.tar.gz is identical to ++luametatex_2.10.08+ds.orig.tar.gz, hence not another commit in the ++pristine-tar branch. Create a soft link to luametatex_2.10.08+ds.orig.tar.gz ++named luametatex_2.11.01+really2.10.08+ds.orig.tar.gz you should be ++able to create a source package. ++ ++Command to build the source tree from git could be: ++ ++gbp buildpackage --git-upstream-tag=upstream/2.10.08+ds --git-no-create-orig \ ++--git-export-dir=/tmp --git-builder=/bin/true --git-no-pbuilder --git-no-purge ++ ++Similar procedure for luametatex_2.11.01+really2.11.01+ds ++ ++If everything fails scroll back to the upstream tag e.g.: ++ ++git checkout 0edb7d5eac96e7f5be51194e82a79f932cc63023 ++ ++Copy the directory to another one, scroll back "git checkout master" and copy ++subdir "debian" to the new directory and build the source package. ++ ++ -- Hilmar Preusse Wed, 06 Mar 2024 23:19:06 +0100 diff --cc debian/changelog index 0000000,0000000..32a732d new file mode 100644 --- /dev/null +++ b/debian/changelog @@@ -1,0 -1,0 +1,75 @@@ ++luametatex (2.11.02+really2.11.01+ds-1) unstable; urgency=medium ++ ++ * The version/snapshot of ConTeXt in Debian does to fit to ltmx ++ 2.11.02, downgrade to 2.11.01 again (Closes: #1072682). ++ * Disable patches for mimalloc. ++ ++ -- Hilmar Preusse Sat, 15 Jun 2024 23:25:01 +0200 ++ ++luametatex (2.11.02+ds-4) unstable; urgency=medium ++ ++ * Upload to unstable. ++ ++ -- Hilmar Preusse Wed, 05 Jun 2024 14:13:07 +0200 ++ ++luametatex (2.11.02+ds-3) experimental; urgency=medium ++ ++ * Link dynamically with mimalloc. ++ * Patch handling: ++ - adding, fixing DEP-3 headers ++ - removing obsolete patch ++ ++ -- Hilmar Preusse Fri, 24 May 2024 22:35:07 +0200 ++ ++luametatex (2.11.02+ds-2) experimental; urgency=medium ++ ++ * Add patches from upstream to fix build failures on arches, where ++ ‘__builtin_thread_pointer’ is not supported. ++ https://github.com/microsoft/mimalloc/issues/883 . ++ ++ -- Hilmar Preusse Thu, 16 May 2024 08:40:41 +0200 ++ ++luametatex (2.11.02+ds-1) experimental; urgency=medium ++ ++ * New upstream version. ++ See https://github.com/contextgarden/luametatex/issues/12 ++ * Add Breaks statement for old context. ++ ++ -- Hilmar Preusse Wed, 15 May 2024 23:53:44 +0200 ++ ++luametatex (2.11.01+really2.11.01+ds-1) experimental; urgency=medium ++ ++ * Reupload version 2.11.01 for TL 2024. ++ ++ -- Hilmar Preusse Sun, 21 Apr 2024 16:35:11 +0200 ++ ++luametatex (2.11.01+really2.10.08+ds-1) unstable; urgency=medium ++ ++ * Downgrade to 2.10.08 (Closes: #1064402). ++ ++ -- Hilmar Preusse Wed, 06 Mar 2024 23:18:47 +0100 ++ ++luametatex (2.11.01+ds-2) unstable; urgency=medium ++ ++ * armel needs linking with libatomic too. ++ ++ -- Hilmar Preusse Tue, 20 Feb 2024 23:26:24 +0100 ++ ++luametatex (2.11.01+ds-1) unstable; urgency=medium ++ ++ * New upstream release, refresh patches. ++ - Should fix build failure on HURD. ++ - Contains a local copy of potrace -> extend d/copyright. ++ - Redo d/patches/no_strip.diff, stripping is configured in a ++ different file. ++ * Update d/gbp.conf. ++ * Link luametatex with libatomic on m68k, powerpc and sh4. Should fix ++ FTBFS on these arches. ++ ++ -- Hilmar Preusse Tue, 20 Feb 2024 08:23:29 +0000 ++ ++luametatex (2.10.08+ds-1) unstable; urgency=medium ++ ++ * Initial release. (Closes: #1034501) ++ ++ -- Hilmar Preusse Tue, 18 Jul 2023 00:02:20 +0200 diff --cc debian/control index 0000000,0000000..259e583 new file mode 100644 --- /dev/null +++ b/debian/control @@@ -1,0 -1,0 +1,44 @@@ ++Source: luametatex ++Section: tex ++Priority: optional ++Maintainer: Debian TeX Task Force ++Uploaders: Hilmar Preusse ++Rules-Requires-Root: no ++Build-Depends: ++ debhelper-compat (= 13), ++ cmake, ++ libmimalloc-dev ++Standards-Version: 4.6.2 ++Homepage: https://github.com/contextgarden/luametatex ++Vcs-Browser: https://github.com/debian-tex/luametatex ++Vcs-Git: https://github.com/debian-tex/luametatex.git ++ ++Package: luametatex ++Architecture: any ++Breaks: context (<< 2024) ++Depends: ++ ${shlibs:Depends}, ++ ${misc:Depends}, ++Description: Next generation ConTeXt processing engine ++ The LuaMetaTeX program is a light weight variant of LuaTeX. This ++ program finds its origin in parts of TeX (the original program, eTeX ++ (some extensions), pdfTeX (more extensions) Aleph (based on Omega, ++ directions) and of course LuaTeX (lots of things). ++ . ++ This is a follow up on the LuaTeX project. The source is considered ++ part of the ConTeXt distribution and managed by the ConTeXt development ++ team and the ConTeXt user group. That way it can be guaranteed that the ++ engine and this TeX macro package work together as expected. The idea ++ is that users can easily compile the source themselves and that way ++ have a guaranteed long term (minimal) TeX based installation. Because ++ the management scripts are in Lua, only one binary is needed to serve ++ the ConTeXt distribution. ++ . ++ In the source code it was tried to stay close to the ancestors, LuaTeX, ++ pdfTeX, eTeX and TeX, but in the meantime due to additions there is ++ quite some diverge. There are new primitives and submechanisms, there ++ is more control over the inner workings, font handling is mostly ++ delegated to Lua and there is no built-in backend. The code base is ++ all-inclusive and has no (nor will have) dependencies on external ++ libraries. Performance and memory consumption have been optimized and ++ the additions (compared to LuaTeX) don’t have a negative impact. diff --cc debian/copyright index 0000000,0000000..5106bcc new file mode 100644 --- /dev/null +++ b/debian/copyright @@@ -1,0 -1,0 +1,194 @@@ ++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ ++Source: https://github.com/contextgarden/luametatex ++Upstream-Name: luametatex ++Upstream-Contact: Hans Hagen ++Files-Excluded: ++ source/libraries/softposit/build/Linux-x86_64-GCC/softposit_test.a ++ ++Files: ++ * ++Copyright: ++ 19xx - 2023 tex: Donald Knuth ++ 19xx - 20xx etex: Peter Breitenlohner, Phil Taylor and friends ++ 19xx - 20xx pdftex: Han The Thanh and friends ++ 1991 - 20xx omega: John Plaice and Yannis Haralambous ++ 19xx - 20xx aleph: Giuseppe Bilotta ++ 1994 - 20xx metapost: John Hobby, Taco Hoekwater, Luigi Scarso, Hans Hagen ++ 2018 - 2023 Hans Hagen ++ 2018 - 2023 Wolfgang Schuster ++ 2018 - 2023 Mojca Miklavec ++ 2018 - 2023 Alan Braslau ++License: GPL-2+ ++ ++Files: debian/* ++Copyright: 2023 - 2024 Hilmar Preusse ++License: GPL-2+ ++ ++Files: source/libraries/avl/* ++Copyright: 2002 - 2012 Richard McGraw ++License: GPL-2+ ++ ++Files: source/libraries/decnumber/* ++Copyright: 2000 - 2009 Mike Cowlishaw ++License: ICU ++ ++Files: source/libraries/hnj/* ++Copyright: ++ 1998 Raph Levien ++ 2001 ALTLinux, Moscow (http://www.alt-linux.org) ++ 2001 Peter Novodvorsky (nidd@cs.msu.su) ++License: GPL-2+ ++ ++Files: source/libraries/libcerf/* ++Copyright: ++ 2012 Steven G. Johnson ++ 2013 Joachim Wuttke ++License: MIT ++ ++Files: source/libraries/mimalloc/* ++Copyright: ++ 2018 - 2021 Microsoft Corporation, Daan Leijen ++License: MIT ++ ++Files: source/libraries/miniz/* ++Copyright: ++ 2013 - 2014 RAD Game Tools and Valve Software ++ 2010 - 2014 Rich Geldreich and Tenacious Software LLC ++License: MIT ++ ++Files: source/libraries/potrace/* ++Copyright: ++ 2001 - 2019 Peter Selinger ++License: GPL-2+ ++ ++Files: source/libraries/pplib/* ++Copyright: ++ 2019 Paweł Jackowski ++License: PD ++ ++Files: source/libraries/softposit/* ++Copyright: ++ 2017 - 2018 A*STAR. ++License: BSD-3 ++ ++Files: source/lua/* ++Copyright: ++ Roberto Ierusalimschy, Waldemar Celes and Luiz Henrique de Figueiredo ++License: GPL-2+ ++ ++Files: source/luacore/lua55/* ++Copyright: ++ 2007 - 2019 Lua.org, PUC-Rio, Brazil (http://www.lua.org) ++License: MIT ++ ++Files: source/luacore/luapeg/* ++Copyright: ++ 2007 - 2019 Lua.org, PUC-Rio, Brazil (http://www.lua.org) ++ 2007 - 2019 Roberto Ierusalimschy ++License: MIT ++ ++Files: source/luacore/luasocket/* ++Copyright: ++ 2004 - 2013 Diego Nehab ++License: MIT ++ ++License: GPL-2+ ++ This package 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 of the License, or ++ (at your option) any later version. ++ . ++ This package 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 ++Comment: ++ On Debian systems, the complete text of the GNU General ++ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". ++ ++License: PD ++ Public domain software, produced as part of work done by the ++ United States Government & not subject to copyright in the US. ++ . ++ To the extent that any copyright protections may be considered to be held by ++ the authors of this software in some jurisdiction outside the United States, ++ the authors hereby waive those copyright protections and dedicate the ++ software to the public domain. Thus, this license may be considered ++ equivalent to Creative Commons 0: ”No Rights Reserved”. ++ . ++ Note that, according to Gnu.org, public domain is compatible with GPL. ++ ++License: ICU ++ Permission is hereby granted, free of charge, to any person obtaining a ++ copy of this software and associated documentation files (the "Software"), ++ to deal in the Software without restriction, including without limitation ++ the rights to use, copy, modify, merge, publish, distribute, and/or sell ++ copies of the Software, and to permit persons to whom the Software is ++ furnished to do so, provided that the above copyright notice(s) and this ++ permission notice appear in all copies of the Software and that both the ++ above copyright notice(s) and this permission notice appear in supporting ++ documentation. ++ . ++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. ++ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE ++ LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ++ ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER ++ IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT ++ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ . ++ Except as contained in this notice, the name of a copyright holder shall not ++ be used in advertising or otherwise to promote the sale, use or other ++ dealings in this Software without prior written authorization of the ++ copyright holder. ++ ++License: MIT ++ Permission is hereby granted, free of charge, to any person obtaining a copy ++ of this software and associated documentation files (the "Software"), to deal ++ in the Software without restriction, including without limitation the rights ++ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ copies of the Software, and to permit persons to whom the Software is ++ furnished to do so, subject to the following conditions: ++ . ++ The above copyright notice and this permission notice shall be included in all ++ copies or substantial portions of the Software. ++ . ++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ SOFTWARE. ++ ++License: BSD-3 ++ Copyright (c) The Regents of the University of California. ++ All rights reserved. ++ . ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ 1. Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ 2. Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++ 3. Neither the name of the University nor the names of its contributors ++ may be used to endorse or promote products derived from this software ++ without specific prior written permission. ++ . ++ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ SUCH DAMAGE. diff --cc debian/docs index 0000000,0000000..3f96cc9 new file mode 100644 --- /dev/null +++ b/debian/docs @@@ -1,0 -1,0 +1,2 @@@ ++README.adoc ++luametatex.svg diff --cc debian/gbp.conf index 0000000,0000000..3efa724 new file mode 100644 --- /dev/null +++ b/debian/gbp.conf @@@ -1,0 -1,0 +1,9 @@@ ++[import-orig] ++pristine-tar = True ++ ++[push] ++pristine-tar = True ++ ++[pull] ++pristine-tar = True ++upstream = True diff --cc debian/luametatex.1 index 0000000,0000000..82adeea new file mode 100644 --- /dev/null +++ b/debian/luametatex.1 @@@ -1,0 -1,0 +1,83 @@@ ++.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. ++.TH LuaMetaTeX "1" "April 2023" "LuaMetaTeX" "User Commands" ++.SH NAME ++luametatex \- Next generation ConTeXt procession engine. ++.SH SYNOPSIS ++.B luametatex ++\fI\,--lua=FILE \/\fR[\fI\,OPTION\/\fR]... [\fI\,TEXNAME\/\fR[\fI\,.tex\/\fR]] [\fI\,COMMANDS\/\fR] ++.br ++.B luametatex ++\fI\,--lua=FILE \/\fR[\fI\,OPTION\/\fR]... \fI\,\FIRST-LINE\/\fR ++.br ++.B luametatex ++\fI\,--lua=FILE \/\fR[\fI\,OPTION\/\fR]... \fI\,&FMT ARGS\/\fR ++.SH DESCRIPTION ++Run LuaMetaTeX on TEXNAME, usually creating TEXNAME.pdf. Any remaining COMMANDS are processed as luatex input, after TEXNAME is read. ++.PP ++Alternatively, if the first non\-option argument begins with a backslash, ++LuaMetaTeX interprets all non\-option arguments as an input line. ++.PP ++Alternatively, if the first non\-option argument begins with a &, the next word ++is taken as the FMT to read, overriding all else. Any remaining arguments are ++processed as above. ++.PP ++If no arguments or options are specified, prompt for input. ++.PP ++The following regular options are understood: ++.TP ++\fB\-\-credits\fR ++display credits and exit ++.TP ++\fB\-\-fmt\fR=\fI\,FORMAT\/\fR ++load the format file FORMAT ++.TP ++\fB\-\-help\fR ++display help and exit ++.TP ++\fB\-\-ini\fR ++be iniluametatex, for dumping formats ++.TP ++\fB\-\-jobname\fR=\fI\,STRING\/\fR ++set the job name to STRING ++.TP ++\fB\-\-lua\fR=\fI\,FILE\/\fR ++load and execute a lua initialization script ++.TP ++\fB\-\-version\fR ++display version and exit ++.PP ++Alternate behaviour models can be obtained by special switches ++.TP ++\fB\-\-luaonly\fR ++run a lua file, then exit ++.PP ++Loading libraries from Lua is blocked unless one explicitly permits it: ++.TP ++\fB\-\-permitloadlib\fR ++permit loading of external libraries (coming) ++.PP ++See the reference manual for more information about the startup process. ++.SH "REPORTING BUGS" ++Email bug reports to dev\-context@ntg.nl. ++.PP ++.br ++Execute 'luametatex \fB\-\-credits\fR' for credits and version details. ++.PP ++.br ++There is NO warranty. Redistribution of this software is covered by the terms ++of the GNU General Public License, version 2 or (at your option) any later ++version. For more information about these matters, see the file named COPYING ++and the LuaMetaTeX source. ++.PP ++.br ++Functionality : level 20230310 ++.br ++Support : context@ntg.nl ++.br ++Copyright : The Lua(Meta)TeX Team(s) (2005\-2023+) ++.PP ++.br ++The LuaMetaTeX project is related to ConTeXt development. This macro package ++tightly integrates TeX and MetaPost in close cooperation with Lua. Updates will ++happen in sync with ConTeXt and when needed. Don't be fooled by unchanged dates: ++long term stability is the objective. diff --cc debian/manpages index 0000000,0000000..43c17c9 new file mode 100644 --- /dev/null +++ b/debian/manpages @@@ -1,0 -1,0 +1,1 @@@ ++debian/luametatex.1 diff --cc debian/patches/146f9d2333bc0aeed1593dc659b17e65b38a33e7.patch index 0000000,0000000..d540353 new file mode 100644 --- /dev/null +++ b/debian/patches/146f9d2333bc0aeed1593dc659b17e65b38a33e7.patch @@@ -1,0 -1,0 +1,64 @@@ ++From 146f9d2333bc0aeed1593dc659b17e65b38a33e7 Mon Sep 17 00:00:00 2001 ++From: Daan ++Date: Wed, 24 Apr 2024 19:48:04 -0700 ++Subject: [PATCH] make TLS slot default instead of __builtin_thread_pointer. ++ Potentially fixes build errors on various platforms (see issue #883) ++ ++--- ++ include/mimalloc/prim.h | 29 +++++++++++++++-------------- ++ 1 file changed, 15 insertions(+), 14 deletions(-) ++ ++diff --git a/include/mimalloc/prim.h b/include/mimalloc/prim.h ++index f8a40323..6063d44a 100644 ++--- a/source/libraries/mimalloc/include/mimalloc/prim.h +++++ b/source/libraries/mimalloc/include/mimalloc/prim.h ++@@ -203,11 +203,14 @@ static inline void mi_prim_tls_slot_set(size_t slot, void* value) mi_attr_noexce ++ ++ #endif ++ ++-// Do we have __builtin_thread_pointer? (do not make this a compound test as it fails on older gcc's, see issue #851) ++-#if defined(__has_builtin) ++-#if __has_builtin(__builtin_thread_pointer) ++-#define MI_HAS_BUILTIN_THREAD_POINTER 1 ++-#endif +++// Do we have __builtin_thread_pointer? (do not make this a compound test as that fails on older gcc's, see issue #851) +++#ifdef __has_builtin +++ #if __has_builtin(__builtin_thread_pointer) +++ #if (!defined(__APPLE__)) && /* on apple (M1) the wrong register is read (tpidr_el0 instead of tpidrro_el0) so fall back to TLS slot assembly ()*/ \ +++ (!defined(__clang_major__) || __clang_major__ >= 14) // older clang versions emit bad code; fall back to using the TLS slot () +++ #define MI_HAS_BUILTIN_THREAD_POINTER 1 +++ #endif +++ #endif ++ #elif defined(__GNUC__) && (__GNUC__ >= 7) && defined(__aarch64__) // special case aarch64 for older gcc versions (issue #851) ++ #define MI_HAS_BUILTIN_THREAD_POINTER 1 ++ #endif ++@@ -231,15 +234,6 @@ static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { ++ return (uintptr_t)NtCurrentTeb(); ++ } ++ ++-#elif MI_HAS_BUILTIN_THREAD_POINTER && \ ++- (!defined(__APPLE__)) && /* on apple (M1) the wrong register is read (tpidr_el0 instead of tpidrro_el0) so fall back to TLS slot assembly ()*/ \ ++- (!defined(__clang_major__) || __clang_major__ >= 14) // older clang versions emit bad code; fall back to using the TLS slot () ++- ++-static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { ++- // Works on most Unix based platforms ++- return (uintptr_t)__builtin_thread_pointer(); ++-} ++- ++ #elif defined(MI_HAS_TLS_SLOT) ++ ++ static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { ++@@ -255,6 +249,13 @@ static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { ++ #endif ++ } ++ +++#elif MI_HAS_BUILTIN_THREAD_POINTER +++ +++static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { +++ // Works on most Unix based platforms +++ return (uintptr_t)__builtin_thread_pointer(); +++} +++ ++ #else ++ ++ // otherwise use portable C, taking the address of a thread local variable (this is still very fast on most platforms). diff --cc debian/patches/cc3c14f2ed374f908e60a3bf29c1dff84fc8cfc2.patch index 0000000,0000000..6d08d4c new file mode 100644 --- /dev/null +++ b/debian/patches/cc3c14f2ed374f908e60a3bf29c1dff84fc8cfc2.patch @@@ -1,0 -1,0 +1,67 @@@ ++From cc3c14f2ed374f908e60a3bf29c1dff84fc8cfc2 Mon Sep 17 00:00:00 2001 ++From: Daan ++Date: Fri, 26 Apr 2024 23:34:10 -0700 ++Subject: [PATCH] use builtin_thread_pointer only on non-apple arm64 (issue ++ #883 and #851) ++ ++--- ++ include/mimalloc/prim.h | 32 +++++++++++++++----------------- ++ 1 file changed, 15 insertions(+), 17 deletions(-) ++ ++diff --git a/include/mimalloc/prim.h b/include/mimalloc/prim.h ++index 6063d44a..89266817 100644 ++--- a/source/libraries/mimalloc/include/mimalloc/prim.h +++++ b/source/libraries/mimalloc/include/mimalloc/prim.h ++@@ -203,16 +203,14 @@ static inline void mi_prim_tls_slot_set(size_t slot, void* value) mi_attr_noexce ++ ++ #endif ++ ++-// Do we have __builtin_thread_pointer? (do not make this a compound test as that fails on older gcc's, see issue #851) ++-#ifdef __has_builtin ++- #if __has_builtin(__builtin_thread_pointer) ++- #if (!defined(__APPLE__)) && /* on apple (M1) the wrong register is read (tpidr_el0 instead of tpidrro_el0) so fall back to TLS slot assembly ()*/ \ ++- (!defined(__clang_major__) || __clang_major__ >= 14) // older clang versions emit bad code; fall back to using the TLS slot () ++- #define MI_HAS_BUILTIN_THREAD_POINTER 1 ++- #endif ++- #endif ++-#elif defined(__GNUC__) && (__GNUC__ >= 7) && defined(__aarch64__) // special case aarch64 for older gcc versions (issue #851) ++-#define MI_HAS_BUILTIN_THREAD_POINTER 1 +++// Do we have __builtin_thread_pointer? This would be the preferred way to get a unique thread id +++// but unfortunately, it seems we cannot test for this reliably at this time (see issue #883) +++// Nevertheless, it seems needed on older graviton platforms (see issue #851). +++// For now, we only enable this for specific platforms. +++#if defined(__GNUC__) && (__GNUC__ >= 7) && defined(__aarch64__) /* special case aarch64 for older gcc versions (issue #851) */ \ +++ && !defined(__APPLE__) /* on apple (M1) the wrong register is read (tpidr_el0 instead of tpidrro_el0) so fall back to TLS slot assembly ()*/ \ +++ && (!defined(__clang_major__) || __clang_major__ >= 14) /* older clang versions emit bad code; fall back to using the TLS slot () */ +++#define MI_USE_BUILTIN_THREAD_POINTER 1 ++ #endif ++ ++ ++@@ -234,6 +232,13 @@ static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { ++ return (uintptr_t)NtCurrentTeb(); ++ } ++ +++#elif MI_USE_BUILTIN_THREAD_POINTER +++ +++static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { +++ // Works on most Unix based platforms with recent compilers +++ return (uintptr_t)__builtin_thread_pointer(); +++} +++ ++ #elif defined(MI_HAS_TLS_SLOT) ++ ++ static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { ++@@ -249,13 +254,6 @@ static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { ++ #endif ++ } ++ ++-#elif MI_HAS_BUILTIN_THREAD_POINTER ++- ++-static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { ++- // Works on most Unix based platforms ++- return (uintptr_t)__builtin_thread_pointer(); ++-} ++- ++ #else ++ ++ // otherwise use portable C, taking the address of a thread local variable (this is still very fast on most platforms). diff --cc debian/patches/dynamic_linking.diff index 0000000,0000000..accd6db new file mode 100644 --- /dev/null +++ b/debian/patches/dynamic_linking.diff @@@ -1,0 -1,0 +1,16 @@@ ++Description: Do not build mimalloc as static lib ++Author: Hilmar Preusse ++Last-Update: 2024-05-18 ++Forwarded: not-needed ++ ++--- luametatex.orig/CMakeLists.txt +++++ luametatex/CMakeLists.txt ++@@ -262,7 +262,7 @@ ++ add_definitions(-DLUAMETATEX_USE_MIMALLOC=1) ++ # add_definitions(-DMIMALLOC_RESET_DELAY=250) ++ # set(luametatex_use_mimalloc 1) ++- include(cmake/mimalloc.cmake) +++ #include(cmake/mimalloc.cmake) ++ endif() ++ ++ include(cmake/tex.cmake) diff --cc debian/patches/link_atomic.diff index 0000000,0000000..d2c76ad new file mode 100644 --- /dev/null +++ b/debian/patches/link_atomic.diff @@@ -1,0 -1,0 +1,35 @@@ ++Description: Link with libatomic on some arches. ++Author: Hilmar Preusse ++Last-Update: 2024-02-21 ++Forwarded: not needed. ++ ++--- luametatex.orig/cmake/luametatex.cmake +++++ luametatex/cmake/luametatex.cmake ++@@ -1,3 +1,13 @@ +++# Debian: determine host arch. +++execute_process(COMMAND +++ dpkg-architecture +++ -qDEB_HOST_ARCH +++ OUTPUT_VARIABLE +++ CMAKE_DEB_HOST_ARCH +++ OUTPUT_STRIP_TRAILING_WHITESPACE +++) +++ +++ ++ add_compile_options(-DLUA_CORE) ++ ++ set(luametatex_sources ++@@ -69,6 +79,13 @@ ++ ) ++ endif() ++ +++# Debian: link with atomic on specific arches. +++if(${CMAKE_DEB_HOST_ARCH} MATCHES "m68k" OR ${CMAKE_DEB_HOST_ARCH} MATCHES "powerpc" OR ${CMAKE_DEB_HOST_ARCH} MATCHES "sh4" OR ${CMAKE_DEB_HOST_ARCH} MATCHES "armel") +++ target_link_libraries(luametatex +++ atomic +++) +++endif() +++ ++ if (${CMAKE_HOST_SOLARIS}) ++ target_link_libraries(luametatex ++ rt diff --cc debian/patches/no_strip.diff index 0000000,0000000..aa6bfc7 new file mode 100644 --- /dev/null +++ b/debian/patches/no_strip.diff @@@ -1,0 -1,0 +1,33 @@@ ++Description: Do not strip binary after build. ++Author: Hilmar Preusse ++Last-Update: 2023-04-17 ++Forwarded: not-needed ++ ++--- luametatex.orig/cmake/luametatex.cmake +++++ luametatex/cmake/luametatex.cmake ++@@ -77,14 +77,3 @@ ++ resolv ++ ) ++ endif() ++- ++-if (DEFINED LMT_OPTIMIZE) ++- # we strip anyway ++-elseif (CMAKE_HOST_SOLARIS) ++- # no strip ++-elseif (CMAKE_C_COMPILER_ID MATCHES "GNU") ++- # -g -S -d : remove all debugging symbols & sections ++- # -x : remove all non-global symbols ++- # -X : remove any compiler-generated symbols ++- add_custom_command(TARGET luametatex POST_BUILD COMMAND ${CMAKE_STRIP} -g -S -d -x luametatex${CMAKE_EXECUTABLE_SUFFIX}) ++-endif() ++--- luametatex.orig/CMakeLists.txt +++++ luametatex/CMakeLists.txt ++@@ -33,7 +33,7 @@ ++ # nice (the smaller as runner the better). After all, we don't load external (Lua) libraries ++ # anyway. ++ ++-set(LMT_STRIP 1) +++# set(LMT_STRIP 1) ++ ++ if (MSVC) ++ diff --cc debian/patches/series index 0000000,0000000..3fd164a new file mode 100644 --- /dev/null +++ b/debian/patches/series @@@ -1,0 -1,0 +1,5 @@@ ++dynamic_linking.diff ++no_strip.diff ++link_atomic.diff ++#146f9d2333bc0aeed1593dc659b17e65b38a33e7.patch ++#cc3c14f2ed374f908e60a3bf29c1dff84fc8cfc2.patch diff --cc debian/rules index 0000000,0000000..e74112f new file mode 100755 --- /dev/null +++ b/debian/rules @@@ -1,0 -1,0 +1,24 @@@ ++#!/usr/bin/make -f ++ ++# See debhelper(7) (uncomment to enable). ++# Output every command that modifies files on the build system. ++#export DH_VERBOSE = 1 ++ ++ ++# See FEATURE AREAS in dpkg-buildflags(1). ++export DEB_BUILD_MAINT_OPTIONS = hardening=+all ++ ++# See ENVIRONMENT in dpkg-buildflags(1). ++# Package maintainers to append CFLAGS. ++#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic ++# Package maintainers to append LDFLAGS. ++#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed ++ ++ ++%: ++ dh $@ ++ ++ ++#override_dh_auto_configure: ++# dh_auto_configure -- \ ++# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) diff --cc debian/source/format index 0000000,0000000..163aaf8 new file mode 100644 --- /dev/null +++ b/debian/source/format @@@ -1,0 -1,0 +1,1 @@@ ++3.0 (quilt) diff --cc debian/upstream/metadata index 0000000,0000000..fd92e75 new file mode 100644 --- /dev/null +++ b/debian/upstream/metadata @@@ -1,0 -1,0 +1,4 @@@ ++Bug-Database: https://github.com/contextgarden/luametatex/issues ++Bug-Submit: https://github.com/contextgarden/luametatex/issues/new ++Repository-Browse: https://github.com/contextgarden/luametatex ++Repository: https://github.com/contextgarden/luametatex.git diff --cc debian/watch index 0000000,0000000..469ae20 new file mode 100644 --- /dev/null +++ b/debian/watch @@@ -1,0 -1,0 +1,32 @@@ ++# See uscan(1) for format. ++ ++# Compulsory line, this is a version 4 file. ++version=4 ++ ++# PGP signature mangle, so foo.tar.gz has foo.tar.gz.sig. ++#opts="pgpsigurlmangle=s%$%.sig%" ++ ++# HTTP site (basic). ++#http://example.com/downloads.html \ ++# files/luametatex-([\d\.]+)\.tar\.gz ++ ++# Uncomment to examine an FTP server. ++#ftp://ftp.example.com/pub/luametatex-(.*)\.tar\.gz ++ ++# SourceForge hosted projects. ++#http://sf.net/luametatex/ luametatex-(.*)\.tar\.gz ++ ++# GitHub hosted projects. ++#opts="filenamemangle=s%(?:.*?)?v?(@ANY_VERSION@@ARCHIVE_EXT@)%@PACKAGE@-$1%" \ ++# https://github.com/contextgarden/luametatex/tags \ ++# (?:.*?/)v?@ANY_VERSION@@ARCHIVE_EXT@ ++opts=repack,repacksuffix=+ds,compression=gz,dversionmangle=s/\+ds// \ ++ https://github.com/contextgarden/luametatex/tags \ ++ (?:.*?/)v?@ANY_VERSION@@ARCHIVE_EXT@ ++ ++# PyPI. ++#https://pypi.debian.net/luametatex/luametatex-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) ++ ++# Direct Git. ++#opts="mode=git" http://git.example.com/luametatex.git \ ++# refs/tags/v([\d\.]+)