Compare commits

...
Sign in to create a new pull request.

219 commits

Author SHA1 Message Date
Björn Esser
e6951cc9b4
Rebuild(xpdf)
Signed-off-by: Björn Esser <besser82@fedoraproject.org>
2025-11-26 13:27:43 +01:00
František Zatloukal
2dffbb8df2 Rebuilt for icu 77.1 2025-08-06 09:58:18 +02:00
Fedora Release Engineering
9cdf2358e1 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 19:14:26 +00:00
Than Ngo
1a1862d632 Fix rhbz#2379729 - texlive-pythontex is not compatible with python3.13 2025-07-19 13:53:10 +02:00
Than Ngo
30e70d5bc9 Fix rhbz#2354991 - bundling option for perl-5.40.x 2025-07-18 17:18:14 +02:00
Than Ngo
6c598b75ed Fix rhbz#2341430, FTBFS with gcc15 2025-01-23 19:11:49 +01:00
Fedora Release Engineering
82c0713a3c Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 12:41:35 +00:00
Pete Walter
b65bc097ea Rebuild for ICU 76 2024-12-08 22:49:08 +00:00
Than Ngo
45c601214d fix license tag 2024-08-01 16:37:43 +02:00
Fedora Release Engineering
fa629687d2 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 07:20:54 +00:00
Than Ngo
4e1f2b350a fix bz#2271830, fix eln marco 2024-04-10 09:28:11 +02:00
Than Ngo
cfd7ebae20 fix bz#2269661, FTBFS due to libXaw 1.0.16 2024-03-15 09:57:49 +01:00
Tom Callaway
f0967aff5d rebuild for new xpdf 2024-02-29 14:45:58 -05:00
David Abdurachmanov
f2a3b4a4dd Add support for riscv64
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-02-16 10:24:35 +00:00
Pete Walter
c94dfd4d48 Rebuild for ICU 74 2024-01-31 20:19:31 +00:00
Fedora Release Engineering
4151ff53b3 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 05:57:16 +00:00
Michael J Gruber
02fdab6520 fix FTBFS with GCC 14 on i686
Also, add missed ignore entries from "Update to TL2022".
2024-01-20 22:02:44 +01:00
Than Ngo
ef14236976 fixed bz#2259157 - texlive-base FTBFS 2024-01-19 21:53:54 +01:00
Fedora Release Engineering
2b476ad04f Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 16:13:41 +00:00
František Zatloukal
b6c3b14742 Rebuilt for ICU 73.2 2023-07-11 22:22:48 +02:00
Tom Callaway
0211d1b709 move texmfcnf.lua to /etc/texlive/web2c with a symlink back to its original home in /usr/share/texlive/texmf-dist/web2c, properly handle mkii files that should only be in texlive-mptopdf 2023-06-05 05:33:38 -04:00
Tom Callaway
320005a93f update to svn66984 source tree to fix CVE-2023-32700, fix mtxrun stub, patch texmfcnf.lua, fix mptopdf.pl and thumbpdf.pl to have proper interpreter lines 2023-05-25 12:31:57 -04:00
Tom Callaway
3097d8e3f0 fix Requires for texlive-fontools (bz 2185284) 2023-04-14 12:41:45 -04:00
Tom Callaway
dd3911846d fixes around texaccents, still needs snobol4, which is pending review 2023-03-27 10:22:54 -04:00
Tom Callaway
cbe3b1d5a0 disable bibtex8 test too 2023-03-24 10:27:03 -04:00
Tom Callaway
a9d44f24a8 disable a broken test 2023-03-23 17:27:30 -04:00
Tom Callaway
dff2b4ea9b missing sources 2023-03-23 16:31:40 -04:00
Tom Callaway
8d896f5ed3 2023 2023-03-23 16:12:46 -04:00
Tom Callaway
b1c5154d8f fix texlive-pdfcrop to have an explicit Requires: texlive-pdftex (bz2175666) 2023-03-06 14:19:40 -05:00
Yaakov Selkowitz
19d544e33c Fix testsuite in ELN builds
RHEL 11 is still a long way down the road.
2023-02-08 22:54:17 -05:00
Tom Callaway
c313c6c621 fix header order for xpdf dependent bits to ensure off_t is set properly on i686 2023-01-31 13:24:59 -05:00
Florian Weimer
b6798c0517 Fix upstream revision in texlive-base-c99-1.patch 2023-01-31 18:24:17 +01:00
Florian Weimer
963e9ad7f2 Various C99 compatibility fixes
The first three patches are backports, texlive-base-c99-4.patch
has been submitted for upstream inclusion.

Related to:

  <https://fedoraproject.org/wiki/Changes/PortingToModernC>
  <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
2023-01-31 16:18:58 +01:00
Tom Callaway
715697a69e see if local xpdf generated aconf.h is somehow breaking the i686 build 2023-01-31 09:34:01 -05:00
Tom Callaway
f4a5c93d45 conditionalize use of poppler (and disable it by default), fix issue where vasprintf() could be undefined in a build 2023-01-30 16:36:48 -05:00
Tom Callaway
a4820938c1 fix ketcindy duplication 2023-01-24 11:06:41 -05:00
Tom Callaway
26b7615cee rebuild for ghostscript 10.0.0 2023-01-24 09:44:12 -05:00
Fedora Release Engineering
0c43c42570 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 04:56:21 +00:00
Tom Callaway
2e17ddae9a fixup dvisvgm 3.0.1 patch to include <cstdint> where needed 2023-01-18 10:28:12 -05:00
Tom Callaway
bae43333ad add #include <cstdint> for new ttf code to build in rawhide 2023-01-17 16:00:17 -05:00
Tom Callaway
3bb7d77a69 hack in dvisvgm 3.0.1 2023-01-17 14:41:58 -05:00
Tom Callaway
deaf161a7e fix psutils test for libpaper v2 2023-01-09 00:05:23 -05:00
Tom Callaway
d68f0c06b4 rebuild against libpaper v2 2023-01-08 21:38:19 -05:00
spotrh
6d92b6121f add dependency on texlive-lua-uni-algos on texlive-luaotfload (bz2158837) 2023-01-07 23:29:41 -05:00
spotrh
31aaf58980 upload pygmentex 2023-01-04 12:10:30 -05:00
spotrh
75617665a1 merge 2023-01-04 11:47:09 -05:00
spotrh
b30f531c11 Update to TL2022 2023-01-04 11:45:28 -05:00
Yaakov Selkowitz
254c307088 Apply latest poppler patches in ELN 2023-01-03 12:06:55 -05:00
Pete Walter
9340aaa4b4 Rebuild for ICU 72 2022-12-31 03:24:50 +00:00
Tom spot Callaway
1c7ecd2c33 fixup texlive-base-20210325-poppler-22.08.0.patch (bz2121167) 2022-08-24 18:25:52 -04:00
Marek Kasik
34082adda9 Bootstrap off 2022-08-09 02:31:10 +02:00
Marek Kasik
7b63621e6d Rebuild for poppler 22.08.0 - bootstrap on 2022-08-09 01:32:01 +02:00
Mamoru TASAKA
81e0707660 Rebuild for ICU 71.1 2022-08-03 16:53:50 +09:00
Fedora Release Engineering
f07656351d Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 10:21:59 +00:00
Tom spot Callaway
6ab6f75880 replace group handling code in pdftoepdf.cc with code that is simpler (and does not crash) 2022-01-20 15:15:52 -05:00
Tom spot Callaway
16fab6a59a bootstrap off (conditionalize poppler changes) 2022-01-15 20:31:56 -05:00
Tom spot Callaway
b0020499ea only use c++17 on poppler bits to minimize porting efforts 2022-01-15 17:38:49 -05:00
Tom spot Callaway
5abbc63e96 add new patch 2022-01-14 21:05:29 -05:00
Tom spot Callaway
a79c2ffd6d fix build against newer poppler 2022-01-14 15:41:50 -05:00
Tom spot Callaway
8d350e4609 rebuild for new poppler, bootstrap on 2022-01-13 11:28:07 -05:00
Tom spot Callaway
e6e2f9dade update arara to address log4j CVEs 2022-01-11 17:01:47 -05:00
Tom spot Callaway
269a8228be rework the font map trigger logic 2021-12-15 13:01:42 -05:00
Than Ngo
7c77e8244c Re-enable LTO 2021-09-08 09:49:51 +02:00
Stephen Gallagher
8bbc92ed52
Rebuild for libpoppler soname bump
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2021-08-16 11:20:51 -04:00
Tom spot Callaway
6c451ca6b5 bootstrap off 2021-08-02 10:35:10 -04:00
Tom spot Callaway
4e8dc60311 bootstrap 2021-08-02 09:47:36 -04:00
Tom spot Callaway
b29b790253 rebuild for poppler 2021-08-02 09:38:43 -04:00
Fedora Release Engineering
af6f234f92 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 19:09:03 +00:00
Tom spot Callaway
318d4a4436 fix lyluatex versioning 2021-06-23 13:29:01 -04:00
Tom spot Callaway
81ead668c4 fix fonts/map/dvips ownership, rename dvipdfm35.map to dvipdfm35.oldmap to prevent it from being included in pdftex.map 2021-06-23 12:01:14 -04:00
Tom spot Callaway
bff9d20482 remove deprecated .setpdfwrite ghostscript call from dvipdf file (that is not used by anything or packaged up, but lets be thorough in case that changes) 2021-06-21 10:38:21 -04:00
Tom spot Callaway
c48a2602c7 force system font maps to be syncd with trees and regenerated in the triggers 2021-05-28 16:43:30 -04:00
Tom spot Callaway
751bef69cc conditionalize removing rpath from binaries which are not always built 2021-05-28 11:17:10 -04:00
Tom spot Callaway
a75a6f968c add texlive-gsftopk as a dependency on texlive-texlive-scripts for mktexpk, add texlive-psnfss as a dependency on texlive-latex, drop Requires: tex(psfonts.map), died with updmap-map 2021-05-28 10:57:54 -04:00
Tom spot Callaway
2e5722a993 break an ugly dep loop 2021-05-27 18:00:41 -04:00
Tom spot Callaway
7a0467e4e9 scrape rpath off everything 2021-05-27 17:01:11 -04:00
Tom spot Callaway
1f402281c0 Apply upstream fixes that fix the bug that makes mendekx and upmendex fail on aarch64, ppc64, s390x 2021-05-27 15:20:35 -04:00
Tom spot Callaway
95bd1e8ed7 add BR: texlive-amsfonts 2021-05-27 14:23:09 -04:00
Tom spot Callaway
cea7f76f63 bump release 2021-05-27 13:51:13 -04:00
Tom spot Callaway
4a3ac79a68 merge 2021-05-27 13:50:31 -04:00
Tom spot Callaway
1007fe9cc5 20210325 2021-05-27 13:48:24 -04:00
Pete Walter
3c7680f468 Rebuild for ICU 69 2021-05-20 01:20:45 +01:00
Tomas Hrnciar
66f91a1d60 BuildRequire setuptools explicitly
See https://fedoraproject.org/wiki/Changes/Reduce_dependencies_on_python3-setuptools
2021-04-19 13:18:32 +02:00
Tom spot Callaway
fe63825a00 update source urls (except tug urls) to https 2021-04-01 18:53:53 -04:00
Tom spot Callaway
322b4e61f8 force builtin copy of pygmentex to 0.10 (supports python3) 2021-03-18 14:37:27 -04:00
Tom spot Callaway
9cfc19d1cf set TEXMFLOCAL during the context scriptlet to minimize the scope of where it looks during mtxrun --generate 2021-02-02 13:05:57 -05:00
Fedora Release Engineering
875c2e2303 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 21:51:06 +00:00
Tomas Popela
caab8e6023 Don't build texlive-xindy on ELN because of its requirements (clisp)
Removing xindy from sources as even passing --disable-xindy always led
to building the xindy sources.
2021-01-26 13:09:35 +01:00
Troy Dawson
525cad53f5 undo mini bump 2021-01-19 15:58:01 -08:00
Troy Dawson
56b9317cdc mini bump for eln rebuild 2021-01-19 14:39:51 -08:00
Tom spot Callaway
fb9773fba2 debootstrap 2021-01-15 11:35:33 -05:00
Tom spot Callaway
093d98a042 debootstrap 2021-01-15 11:34:59 -05:00
Tom spot Callaway
c9d7e74e84 bootstrap 2021-01-15 10:55:28 -05:00
Tom spot Callaway
b59047328c fix context shell binary to handle /home dirs that are symlinks (bz1913245) 2021-01-15 10:35:58 -05:00
Tom Stellard
c2dd0fe5a6 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-08 22:29:47 +00:00
Tom spot Callaway
876c81a4c5 missing patch 2020-12-30 13:56:45 -05:00
Tom spot Callaway
18cddc642e update pygmentex and dviasm, remove the last python2 dependencies here 2020-12-30 13:47:04 -05:00
Tom spot Callaway
16afd670b4 make proper texlive-optex subpackage by moving it here, bump epoch to 9 so this texlive-optex package replaces the one that used to live in texlive 2020-11-17 09:57:27 -05:00
Tom spot Callaway
c940d2e6a3 obsolete texlive-texconfig, texlive-pdftools, texlive-pstools (in texlive-texlive-scripts-extra) 2020-11-12 11:25:05 -05:00
Tom spot Callaway
a70ccbdbe1 turn LTO back off, as it was assuming code needed libcrypto for some unknown reason 2020-11-11 11:25:32 -05:00
Tom spot Callaway
5e77c69c37 fix issues with file ownership duplication, fix issue with obsoleting texlive-tetex 2020-11-10 17:15:29 -05:00
Tom Callaway
48609df610 fix dependencies of texlive-ptex and texlive-uptex 2020-10-29 16:13:56 -04:00
Tom Callaway
de6b023fc5 move texlive.tlpdb to lookaside cache 2020-10-17 17:35:45 -04:00
Jeff Law
975cfe9675 Re-enable LTO 2020-10-11 16:29:21 -06:00
Than Ngo
4e2d1fb28f Fix pdflatex run out of memory 2020-09-23 09:43:06 +02:00
Tom Callaway
64ee65584f add an explicit versioning on the dependency of texlive-texlive-scripts in -kpathsea (and vice versa) 2020-09-21 11:07:03 -04:00
Tom Callaway
789e234e56 move "mtxrun --generate" call from -kpathsea transfiletriggerin to -context, drop Requires(post): texlive-context from -kpathsea 2020-09-21 10:48:07 -04:00
Tom Callaway
d80de6cb62 make texlive-latex have an explicit Requires on texlive-cm-super (bz1867927) 2020-08-13 13:31:20 -04:00
Fedora Release Engineering
dd50c75852 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 12:22:20 +00:00
Tom Callaway
1050efcda3 Use make macros 2020-07-22 07:39:44 -04:00
Marek Kasik
4801f22956 rebuild for poppler 0.90.0
bodhi needs latest build
2020-07-21 12:03:14 +02:00
Tom Callaway
33c272b88b go back to -11 as latest commit 2020-07-15 16:19:25 -04:00
Tom Callaway
afafe9c2de do a temporary unbootstrapped build to keep rawhide working while we wait on the side tag 2020-07-15 15:38:24 -04:00
Tom Callaway
af0d0090e7 disable bootstrap 2020-07-14 16:20:02 -04:00
Tom Callaway
511e68a65d apply poppler 0.90 patch 2020-07-14 14:54:19 -04:00
Tom Callaway
3b4c0c3833 bootstrap again again 2020-07-14 14:34:23 -04:00
Tom Callaway
18657d209d tuck more into the bootstrap 2020-07-14 13:35:12 -04:00
Tom Callaway
ed52343074 bootstrap again 2020-07-14 13:23:46 -04:00
Tom Callaway
8ed27612c5 fix bootstrap 2020-07-14 10:05:00 -04:00
Tom Callaway
fdec8bb18f bootstrap on 2020-07-14 09:56:54 -04:00
Tom Callaway
bb99836d97 rebuild for poppler 0.90.0 2020-07-14 09:50:38 -04:00
Jeff Law
ebf8ab268f Disable LTO 2020-07-01 12:52:54 -06:00
Tom Callaway
835966d9d9 split off context-doc (bz1839593), add Requires: tex(psfonts.map) to gsftopk (bz1840379), UPDATE THE COMPONENT SOURCES AND FIX EVERYTHING 2020-05-28 10:00:24 -04:00
Tom Callaway
a0e31e370c rebuild with bootstrap off and triggers with debugging off 2020-05-20 08:24:31 -04:00
Orion Poplawski
d12c448e3d Fix redirects 2020-05-19 17:49:56 -06:00
Tom Callaway
870ad2e1b3 try explicitly calling mktexlsr and seeing if we can get output 2020-05-19 15:49:45 -04:00
Orion Poplawski
7f58fdf02e Do not use /tmp for log 2020-05-19 09:43:46 -06:00
Orion Poplawski
3584acfe0f More extreme debugging 2020-05-19 07:53:35 -06:00
Tom Callaway
73fec66e9f disable bootstrap, lets see if anything changes 2020-05-18 15:45:25 -04:00
Tom Callaway
60f07b1e6d bootstrap again, let texhash be noisy, force texlive-texlive-scripts to be a Requires(post) to try to force it to be installed before the trigger goes off 2020-05-18 14:18:08 -04:00
Tom Callaway
ace8494145 moar debug 2020-05-18 14:00:39 -04:00
Tom Callaway
98b0d53d8a moar debug 2020-05-18 13:49:15 -04:00
Tom Callaway
7fc6e2f284 fun with debugging 2020-05-18 13:40:12 -04:00
Orion Poplawski
b10148daf2 De-bootstrap 2020-05-18 09:22:01 -06:00
Orion Poplawski
adb59b9489 Add bootstrap flag to disable circular dep on latex due to xindy
Fix --disable-xindy-rules configure parameter
2020-05-17 22:01:39 -06:00
Orion Poplawski
c463913407 Add (temporary) BR on texlive-texlive-scripts to fix latex dummy.tex 2020-05-15 21:09:50 -06:00
Orion Poplawski
928643efa4 Add BR on texlive-kpathsea to fix latex dummy.tex 2020-05-15 20:29:22 -06:00
Orion Poplawski
4685dc889d Update fedora/rhel conditionals 2020-05-15 20:07:08 -06:00
Orion Poplawski
6459a08c2e Make texlive-kpathsea require texlive-texlive-scripts (bz#1836464) 2020-05-15 19:59:36 -06:00
Tom Callaway
9a09ac22ed actually use macros properly, and always package the man page and config file 2020-05-14 16:57:38 -04:00
Tom Callaway
11ef854462 cover all the power64 arches, not just ppc64 2020-05-14 16:10:55 -04:00
Tom Callaway
3525494b55 just go 2020-05-14 15:13:58 -04:00
Tom Callaway
42cf27095e update arch conditionals 2020-05-14 14:27:46 -04:00
Tom Callaway
9d5c36552f missing patch 2020-05-14 14:00:28 -04:00
Tom Callaway
75e825de28 update to TL2020 2020-05-14 13:54:12 -04:00
Than Ngo
e019b9c114 fix bz#1798119 - buffer overflow in TexOpen() function, CVE-2019-19601 2020-02-05 13:07:20 +01:00
Fedora Release Engineering
30810e5cd3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-31 01:25:35 +00:00
Tom Callaway
7360b2a1f6 gcc10 fixes 2020-01-23 16:29:56 -05:00
Marek Kasik
2770f584df Bring back xindy and the circular dependency
on texlive-latex
2020-01-17 22:16:31 +01:00
Marek Kasik
b9d1edaff6 Rebuild for poppler-0.84.0
Don't include C++ headers in C sources.

Temporarily break circular dependency on texlive-latex (will be reverted).
2020-01-17 21:03:50 +01:00
Tom Callaway
17c631588e fix python3 issue with pdfbook2 (thanks to "Mildred", bz1733794), fix python3 issue with latex-papersize (thanks to Silas S. Brown, bz1783964) 2020-01-10 10:11:19 -05:00
Tom Callaway
e36a34d712 add -psutils in a way that does not conflict 2019-11-15 13:18:15 -05:00
Pete Walter
54e4c52bd4 Rebuild for ICU 65 2019-11-01 15:49:22 +00:00
Tom Callaway
e2af30d063 fix dir ownership 2019-10-18 12:17:15 -04:00
Jerry James
b9a3438689 Rebuild for mpfr 4. 2019-10-09 19:59:33 -06:00
Fedora Release Engineering
53b8cab5e9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-27 01:19:01 +00:00
Tom Callaway
6b6ba13822 move luacsplain out of the arch conditional 2019-05-25 14:59:11 -04:00
Tom Callaway
64327bd1ac fix path issue with tlmgr.pl 2019-05-25 14:32:53 -04:00
Tom Callaway
35362e6f79 TL2019, the easy half 2019-05-24 22:00:03 -04:00
Tom Callaway
c067edef7a add explicit Requires: clisp for texlive-xindy 2019-05-23 12:26:11 -04:00
Jerry James
b6f7cc9173 Fix xindy build by eliminating race to create latex.fmt.
Build xindy on all supported arches.
2019-05-15 19:44:07 -06:00
Tom Callaway
f21bcf195f conditionalize poppler change 2019-03-19 11:10:31 -04:00
Tom Callaway
8fd32144ee do not throw no file error in synctex 2019-03-19 11:06:15 -04:00
Fedora Release Engineering
9daef0ecd3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-03 09:43:31 +00:00
Marek Kasik
5c43a306a0 Rebuild for poppler-0.73.0 2019-01-25 19:49:27 +01:00
Pete Walter
833777e7cf Rebuild for ICU 63 2019-01-23 22:15:28 +00:00
Than Ngo
eb9a39fae9 fixed annocheck distro flag failure detected by rpmdiff 2019-01-16 10:38:45 +01:00
Tom Callaway
dee18385ef add explicit Requires: texlive-xetex to texlive-dvipdfmx (bz1657755) 2018-12-12 13:08:38 -05:00
Tom Callaway
d8e73098a3 use python3 properly in pdfbook2 2018-12-07 16:01:47 -05:00
Tom Callaway
35df10b12e fix generate-fmtutilcnf and .pc files 2018-11-26 13:00:17 -05:00
Tom Callaway
068649027e make texlive-kpathsea Requires: texlive-tetex so scriptlets dont fail noisily 2018-11-12 10:07:55 -05:00
Tom Callaway
f648a82421 make a symlink so texdoc can find texlive.tlpdb 2018-11-08 09:53:43 -05:00
Adam Williamson
46a7d8b8c4 Add missing dep from -tetex to -texconfig (bz1555931) 2018-11-01 11:12:58 -07:00
Tom Callaway
81f1ff467e disable test that fails on 32 bit arches in rawhide 2018-10-04 13:29:04 -04:00
Tom Callaway
6c3463610c apply upstream fix for CVE-2018-17407 2018-10-01 11:33:09 -04:00
Tom Callaway
1b232674e3 fix one odd duck 2018-09-21 09:39:04 -04:00
Tom Callaway
220927ed78 fix one odd duck 2018-09-21 09:38:10 -04:00
Tom Callaway
c99bb3fee0 add BR: python3-devel 2018-09-21 09:09:40 -04:00
Tom Callaway
0d20ee8b36 fix things 2018-09-20 16:36:55 -04:00
Tom Callaway
2092ce8876 sources 2018-09-20 13:53:06 -04:00
Tom Callaway
3a68f46dbb fix lyluatex provides 2018-09-19 11:02:54 -04:00
Tom Callaway
93ae2e9638 fix spec 2018-09-18 12:54:04 -04:00
Tom Callaway
d6c231e0cb add lyluatex 2018-09-18 12:02:44 -04:00
Marek Kasik
3cc9f9458a Install synctex_version.h
Install synctex_version.h to be able to build evince.
2018-08-24 16:08:10 +02:00
Marek Kasik
ac0adc86c6 Rebuild for poppler-0.67.0
Disable xindy temporarily (there is a cyclic dependency which
prevents me from building texlive-base with new poppler)
2018-08-14 02:34:41 +02:00
Marek Kasik
a0619f9c66 Fix paths in pkgconfig files
Resolves: #1426622
2018-08-06 18:17:05 +02:00
Tom Callaway
18f83af233 update all the things, use better ctan mirror 2018-07-12 14:55:36 -04:00
Pete Walter
c70ecb4a80 Rebuild for ICU 62 2018-07-10 22:02:54 +01:00
Tom Callaway
b400b4587c revert trigger changes from -14 2018-07-07 22:11:33 -04:00
Tom Callaway
51e443feaa add old tex-foo-doc provides for every package with doc provides (bz1593860, 1593863) 2018-07-02 15:42:52 -04:00
Tom Callaway
163238ff71 fix triggers to force enable new maps and run syncwithtrees before doing map operations, apply tibbs fix for fmtutil cnf handling 2018-07-02 13:56:36 -04:00
Jason Tibbitts
2225dd4c4b Initial attempt to remove the fmtutil.cnf scriptlets
This contains the basic work to remove the scriptlets which modify
fmtutil.cnf from the package.

This takes the fmtutil.cnf file from the distribution and splits it into
individual files. Those files are added to the relevant packages. A
small script is installed which puts together the individual files into
one fmtutil.cnf file. Two file trigger scriptlets call that when
necessary.

Most of the diff is renumbering 350+ source files to make room for
one at the beginning of the list.
2018-06-21 18:46:33 -05:00
Tom Callaway
20271cbf75 remove ldconfig calls (PR#2) 2018-06-20 10:46:39 -04:00
Jason Tibbitts
bfe68e8b51 Remove install-info deps and scriptlets.
The dependencies on and calls to install-info are no longer necessary in
F28+.
2018-06-19 15:57:33 -05:00
Tom Callaway
e37ea9b074 add Requires: tex(fvextra.sty) to pythontex (bz1590621) 2018-06-19 12:51:49 -04:00
Tom Callaway
52969d0691 add tex-jfontmaps(bin/doc) provides 2018-06-11 10:04:44 -04:00
Tom Callaway
ae317582e6 add tex-uplatex(bin/doc) provides 2018-06-08 14:40:28 -04:00
Tom Callaway
c13c325a31 add pretrans to handle /usr/share/texmf 2018-06-07 12:49:30 -04:00
Tom Callaway
a013efb17a fix not a dir error 2018-06-04 12:38:53 -04:00
Tom Callaway
139ffd825a need to also create/own the texmf-local dir 2018-06-04 11:38:42 -04:00
Tom Callaway
887512cf3a add Provides: tetex-dvips, add symlink to /usr/share/texmf for legacy packages 2018-06-04 11:32:55 -04:00
Tom Callaway
d05df741a5 add Provides: xmltex 2018-06-01 10:56:32 -04:00
Tom Callaway
acf14dee9c disable xindy for arm 2018-05-29 14:47:58 -04:00
Tom Callaway
ce368b2960 more missing BR 2018-05-29 14:24:59 -04:00
Tom Callaway
555abd10d0 add BuildRequires: texlive-metafont for xindy 2018-05-29 12:29:45 -04:00
Tom Callaway
35939ff0cd fix typo preventing xindy subpackage 2018-05-29 10:38:23 -04:00
Tom Callaway
472ffd9203 fix xindy and jfontmaps obsoletes 2018-05-29 10:30:26 -04:00
Tom Callaway
bdbdbee190 add Provides: jadetex and Provides: tex-uptex-doc 2018-05-29 10:07:25 -04:00
Tom Callaway
d25b725b4d fix cases where old -bin subpackages get obsoleted and disabled in error 2018-05-21 17:17:14 -04:00
Tom Callaway
3f04c4d629 fix arara-doc obsoletes (bz1576693) 2018-05-14 09:53:27 -04:00
Tom Callaway
a405d00c27 merge 2018-05-01 16:53:17 -04:00
Tom Callaway
802fd2d40a 20180414 2018-05-01 16:52:09 -04:00
Tom Callaway
91a783cdf0 20180414 2018-05-01 16:51:44 -04:00
Pete Walter
dd3bbed2e8 Rebuild for ICU 61.1 2018-04-30 20:43:05 +01:00
Tom Callaway
3db4fb495d fix texmf.cnf 2018-03-30 21:49:10 -04:00
Tom Callaway
a6c9036d74 add lcdf-typetools provide to fix broken collection-fontutils (fixing that in texlive later) (bz1560379), add LatexIndent* to filtered Requires to prevent dep issues there (bz1560381) 2018-03-28 08:54:15 -04:00
Tom Callaway
4d5cdbb1b9 fix aleph obsoletes 2018-03-25 22:55:48 -04:00
Jerry James
8f2dd7dbd5 Do not copy a Dict, get a reference instead. Fixes FTBFS. 2018-03-24 20:03:05 -06:00
Kevin Fenzi
29be374d96 Rebuild for poppler soname bump. 2018-03-23 17:04:48 -07:00
73 changed files with 50539 additions and 189360 deletions

94
.gitignore vendored
View file

@ -344,3 +344,97 @@
/xmltex.tar.xz
/yplan.doc.tar.xz
/yplan.tar.xz
/texlive-20180414-source.tar.xz
/axodraw2.doc.tar.xz
/axodraw2.tar.xz
/bib2gls.doc.tar.xz
/bib2gls.tar.xz
/ctan-o-mat.doc.tar.xz
/ctan-o-mat.tar.xz
/dviinfox.doc.tar.xz
/dviinfox.tar.xz
/jfmutil.doc.tar.xz
/jfmutil.tar.xz
/l3build.doc.tar.xz
/l3build.tar.xz
/wordcount.doc.tar.xz
/wordcount.tar.xz
/texdoctk.doc.tar.xz
/texdoctk.tar.xz
/lyluatex.doc.tar.xz
/lyluatex.tar.xz
/texlive-20190410-source.tar.xz
/dviout-util.doc.tar.xz
/cluttex.tar.xz
/cluttex.doc.tar.xz
/ctanbib.doc.tar.xz
/ctanbib.tar.xz
/pdftex-quiet.doc.tar.xz
/pdftex-quiet.tar.xz
/webquiz.tar.xz
/webquiz.doc.tar.xz
/xindex.tar.xz
/xindex.doc.tar.xz
/texlive-20200327-source.tar.xz
/texlive-scripts-extra.doc.tar.xz
/texlive-scripts-extra.tar.xz
/chklref.doc.tar.xz
/chklref.tar.xz
/ps2eps.doc.tar.xz
/ps2eps.tar.xz
/ketcindy.doc.tar.xz
/ketcindy.tar.xz
/clojure-pamphlet.doc.tar.xz
/clojure-pamphlet.tar.xz
/luahbtex.doc.tar.xz
/luahbtex.tar.xz
/attachfile2.doc.tar.xz
/attachfile2.tar.xz
/texplate.doc.tar.xz
/texplate.tar.xz
/psutils.doc.tar.xz
/psutils.tar.xz
/xpdfopen.doc.tar.xz
/texlive.tlpdb
/optex.tar.xz
/optex.doc.tar.xz
/texlive-20210325-source.tar.xz
/albatross.doc.tar.xz
/albatross.tar.xz
/git-latexdiff.doc.tar.xz
/git-latexdiff.tar.xz
/hyperxmp.doc.tar.xz
/hyperxmp.tar.xz
/light-latex-make.doc.tar.xz
/light-latex-make.tar.xz
/spix.doc.tar.xz
/spix.tar.xz
/tikztosvg.doc.tar.xz
/tikztosvg.tar.xz
/xml2pmx.doc.tar.xz
/xml2pmx.tar.xz
/citation-style-language.doc.tar.xz
/citation-style-language.tar.xz
/hitex.doc.tar.xz
/hitex.tar.xz
/luafindfont.doc.tar.xz
/luafindfont.tar.xz
/texlogsieve.doc.tar.xz
/texlogsieve.tar.xz
/luajittex.doc.tar.xz
/pdftosrc.doc.tar.xz
/texlive-20230311-source.tar.xz
/bibcop.doc.tar.xz
/bibcop.tar.xz
/pagelayout.doc.tar.xz
/pagelayout.tar.xz
/texaccents.doc.tar.xz
/texaccents.tar.xz
/upmendex.doc.tar.xz
/digestif.doc.tar.xz
/digestif.tar.xz
/texaccents.source.tar.xz
/build-svn66984.tar.gz
/optexcount.doc.tar.xz
/optexcount.tar.xz
/texlogfilter.doc.tar.xz

22
generate-fmtutilcnf Executable file
View file

@ -0,0 +1,22 @@
#!/bin/bash
# Regenerate the fmtutil.cnf file from the pieces which are currently present
# in the fmtutil.cnf.d directory.
# Abort immediately if any command fails
set -o errexit
shopt -s nullglob
texdir=$1
[[ -z $texdir ]] && texdir=/usr/share/texlive
web2cdir=$texdir/texmf-dist/web2c
rm -f $web2cdir/fmtutil.cnf.rpmtmp
echo "# Generated by $0 on $(date)" > $web2cdir/fmtutil.cnf.rpmtmp
cat $web2cdir/fmtutil-hdr.cnf \
$texdir/fmtutil.cnf.d/* \
>> $web2cdir/fmtutil.cnf.rpmtmp
mv $web2cdir/fmtutil.cnf.rpmtmp $web2cdir/fmtutil.cnf

771
sources
View file

@ -1,346 +1,425 @@
SHA512 (a2ping.doc.tar.xz) = 3e4850f5df6a9ccf4fbdd25b4a652f0d2dab75e53c1ea7c5f2cacfa41dc28f202eefc3a83fa0472facfbc99e6dd9568aee51d90dfa47a2334f8c321e1cacbe86
SHA512 (a2ping.tar.xz) = 0d4f90f9bd769b4bb7314abf968364455491e07c2f66e5689efc08d2b6a0f6bd1caf15ec976aeb11c963fab65c3017e88a43ae175f736861b48967933deb4e8a
SHA512 (accfonts.doc.tar.xz) = e88b8accf85aced9cc135a749078b690795c5d79bbeb55b5cea858c3f986d12e9381b099953552fe12dac7729b9d9aff43b8ad96802388cf9391eb879831c820
SHA512 (accfonts.tar.xz) = 112ada9d58665c7c493b49d6b85ac5efa182034cf257dae8bf70a0e17dce92e6f5cae799b5afb379e17c2ee62df40d5d29fef21f99dc5512af0fdbbebe8ffdfc
SHA512 (adhocfilelist.doc.tar.xz) = 4be8a9b5fee5fb785ab50b2be46d074913c9f62d0f24d29edb02e4958c3ef4262b7c8f75260883b6e185b0e73ff99d5f5f7a4993f79fbc82886eb3d485000476
SHA512 (adhocfilelist.tar.xz) = 9f18cf5e7d7c3a6ecc9b401c1486ad9611c2aa334b5c47f0281fe1ec0e16bf0d619ffb2125925c5d00a77eb0b2002b5d7af4e38151fa721baf2e38257f7409fd
SHA512 (afm2pl.tar.xz) = 2eb6966797262485cbb94b8a0f5be8312d6e5cbacf1761ddf32dc0d7b6278a09d3559bac89b5e83310af87f456850f4a9b8a09fef13687fcf8a046ff77ee0f5c
SHA512 (aleph.doc.tar.xz) = e0dd64d446d6f7b5b5afe6a30857ec76a75da365b588043f8a3c9b0b59f08e76caf8c4d3e65ee15e0763c8946d1941d26b45797a856399f5ad6fc65c61407200
SHA512 (aleph.tar.xz) = a04aa6a10f3036c2d760c39235fc44fbaf3bf74544a2335d956579d54596c4320095c4b9c700458de123060731b02913480e802b75d7519d308599e669f96bf5
SHA512 (amstex.doc.tar.xz) = 3b1a196c502dd61941a5ff649263adf435bc04fda2359629ccba764fd0a91c2ee66755fee0fe52b023cff18746b5a7df940fd399312261317ec616354d2ba6fa
SHA512 (amstex.tar.xz) = 4149bcb8929175e8e9605d1ec0a416d4bc4e4be29af8ab4f6356c2eea1c6959338eb428e95ee97f6fb785daa32b879724947b740c2f035032aa4e0a40107f40b
SHA512 (arara.doc.tar.xz) = 5e917d8f326d1c9dc4568ed9a9c27c9aa31513c5188c66986056138ee4144b79b9fd8111a8638b0c42ae5c0fde62ba89bfa2f98cf9d2238a7ed929ae917625c9
SHA512 (arara.tar.xz) = 8a4147b75f8a5fa83c81085a9645bb3d250eab8aa4e661e9534b496506dec416dc3cffa90e180e6b698ae7c402d07396d638674728ae80052abffc27395fa09b
SHA512 (authorindex.doc.tar.xz) = 8d540a36ae7aff2518c7961972e76254b0c2669f0b020bae0589895a26a12726af95ff405f3d2a4c0783cd6a450f619d1c8cc3397163e10129a6dfb3aa5df1b7
SHA512 (authorindex.tar.xz) = 22a3d000ead808b9ae7e5b49248c06a0ae7e74c567503e7abd60ba40cbe6aefba30e118cf05a10089060ff5ec8be12750b8e2960dbe7c99bfe5b7df78453ffe2
SHA512 (autosp.doc.tar.xz) = a7b01320b76ddcf0ee20860550ccebc18bc2883b8c8ff897f6f7dc23612e6bbbb0551f4a4dbcae91ecb4d39fed9444dcaa3e11a5aea046c1ba69f89745c75320
SHA512 (bibexport.doc.tar.xz) = cb719c6b0b54ab90f31cdf2c63ce2761962991f58d3002841794a4472eda73d77d55d22568fbd67c39ebae046cc4e9a5967276f01d3300c9faf252ca54ff847f
SHA512 (bibexport.tar.xz) = c21f901c1a0e5deecfed9a599d7780d79f071fbc18ac1e96805b9593af402d10c11738d70fa912881c0a2004e0cadc3293a013b4ee77009656e5409564915ffb
SHA512 (bibtex8.doc.tar.xz) = 1b5ad06b229f6d0b1d9712eb4e35d96ca1e707040ea0981d399346f9f432821a8739ad0826df8de31de613011880a4a5a26b848c7a2c4bdd27263a297036b932
SHA512 (bibtex8.tar.xz) = b5d8b2229e63529a6f75c875da2a44fe012bdeccad18e740d50cbf1acde67b83f5912350324869b3d2392d98e658b37e3e81015a03b99921cfa6b603d8123321
SHA512 (bibtex.doc.tar.xz) = f8a5ec30ba2e67a0f3b8148f0858d3393d23b942887d9ca4f1ae5cdf74b67f4227098908c3f3fb8a30cabdc7d7aaf069cca2e2c4a28d0db4e6236232a10d13cf
SHA512 (bibtex.tar.xz) = 5ae1e47dbe693ad73f7ba1fdf90daa7d84880ea869deb32c0a9258f48d5a87477f220820bc1ce6b3ca223313e315ea8ef04dcd2fde364c85585a4222a814c4fd
SHA512 (bibtexu.doc.tar.xz) = c66922b2d155f3d7763ed08498283fa49f7d3a1cdc67be5f2e32189ae622743a6658d5b1765d85f7cbcd958ca210a235de43f9dd4ce2d822d679efafe5d45025
SHA512 (bundledoc.doc.tar.xz) = 209545bf66eda13de13275867ce42b860b6e5162c83d9712b08687b589341305e000147bf3dd383dd67f5e27c9705cc25846d65aceea5d8212ff930bdb9def4b
SHA512 (bundledoc.tar.xz) = 075193471d65e6b7eb61a1cd18b1380054467b346bd66f82a02b060f259e0fd1b49f510ae088579f555360effd40ae3a6e3a35dde0e956b8271845b445507ed1
SHA512 (cachepic.doc.tar.xz) = 8246761e4683567dad80b3e9ebfaa92032c049b043f366380082a485e3d02f067f6a99e0c293fa6ac604d61bc2d45f162d7f51b3340b993806e35fb1ff7e1740
SHA512 (cachepic.tar.xz) = 8b26d6e71616c12bb51eee2b094c96ea8c1522b6cc5d677f96a5a1c07b8374d072f4a4e7b137907c976f8b8a3fa1a5eeec33eb1b5f16b7ce915a6259d0e1b2f3
SHA512 (checkcites.doc.tar.xz) = f030a94397ed1b2db7ce2d36dbfd16d67c5e75507cef0f5ba7992195cfaf3f24fa999789ad95def778001234df6635b9307cb3fec1472da8414035d4341ce6e7
SHA512 (checkcites.tar.xz) = 76600f1ba2152b55640b334bb542418c0d69cea1feeff72841e4298bbf5acd833c172fe298bfe47aa69dfc0cb77073dd8c3a88b458ac4d86e5cfdaf045b1451b
SHA512 (checklistings.doc.tar.xz) = 771246b9ccc70cb337a3f55e0d04e406c338217298f091c9372533bb55c5c98f0947287b2f0340bda049f5f0acbd33d2ab9e706426c5b487e0a31460863d5e40
SHA512 (checklistings.tar.xz) = c58753601d1af48ec2bae629b5671fdf1de8f055058763a9328a1fea9829960a86df836358fef16985747b31f4e1a569d78d4acf167cdece2d34eb57ab738548
SHA512 (chktex.doc.tar.xz) = e9a08af5146b5fd8c6aecb568e23734ec01445d92d8ac4f222ef5989435896d554feb9bf2bcfc058ce1e86e87e95ec0d0a12e4e939ed460722a176fca7bb8b8a
SHA512 (chktex.tar.xz) = 026de1fb692a00a81f0f67dea470dc563e56be93c7cb0d721ef48c65a9e6a03b947f58e8c4894a36a2873a99ce6da61f60d98da676116506a9eec7328e473e35
SHA512 (cjk-gs-integrate.doc.tar.xz) = 26302545ca60a093759278824216d3d4343ad492824a644c36860308e0ff1c55d8242e28219744d741a6a78cd3c0afbfa5e41328c45aec232e39aa84f973baf7
SHA512 (cjk-gs-integrate.tar.xz) = 8cd19007ba0ad404d28b6af5dfb6e06906f68c89f901f74501365781c39de4d2eef5561e5934d94c2767f69006b9b5cbdb111c73108ad7378457794b9bb1a57c
SHA512 (cjkutils.tar.xz) = d41e65846620f890c259367c5355c1982928cfa454e8adc5f2d202960fe302bb15481ddd21cfbbec9f8411d85cd886741b64f0ff39ac3341c0a478132b8cca79
SHA512 (context.doc.tar.xz) = af9f1e5838472f8424b028343db881d6d19f1bc861a27aa77b9d1bd06d1b53819a5cf47578d0de74e823e9a3fce1ea04d677539e84dc674523d62007db78d0da
SHA512 (context.tar.xz) = 5506824148c069c1072c34224e3df64455370eaab90b1847a984a3e31b413ae740544c3825e346b8fcfe717216f16b431426efbade188283e0034288e1b1a207
SHA512 (convbkmk.doc.tar.xz) = 6fea2d485a902b8da2fee34a3502812182d0e2e4ce34160797d5ac3aa5d5b96552d09dc8ea7b19c7fac3c0eb3917c0c96b33d1ecf85f52a4b16dcb773149b82f
SHA512 (convbkmk.tar.xz) = dcc8e15266390ed3e836aebfc598641e6924509e7d165b433827d4225a2a35e23b472cc5ed673683415d91c7509d9fe20030032ffa6ac77acb320ae7e17e5de8
SHA512 (crossrefware.doc.tar.xz) = 2935df55a018cb02c8389f9d2c7c6f3f533bd937f1ccc7ff28c278c63f3feae59f66b03e0b899e74f09d6685c9c876e845be5d6f90fe371188e76d80e820ed9f
SHA512 (crossrefware.tar.xz) = 7a1d62d5e4185a5adc9b82ae5e53da884d793a0783ce26b0372a7971dc8c5f744b6c4d0a08b0ac3309b3637e12a0a88175a450c09c5feb31402215db2a59ffce
SHA512 (cslatex.tar.xz) = b9e7df64513881cefdf880b575329c57eee2607cb37c9e703f22c8782bb09ddcdf57f7bb844cee80242e21c9660a5a401b51c5ca39b20789c8168c161d9bbc37
SHA512 (csplain.tar.xz) = 8eb04152905f9c71e38dfc86cfc122bc02fd4a6c26fab4158bf4ab4d0201f0cdee1f212a6c27185c333986f185907c7f62be2ccd46c9ab66b21818ce83e1ad3e
SHA512 (ctanify.doc.tar.xz) = c845fe36bb7c388e07a254938796181dc19d36a5947cbd9d571ce983ef2148bcad275f6f593386ef18ac26490b743b6db3a337cead46e20cc952946a7f3fb89e
SHA512 (ctanify.tar.xz) = 335cfca62d46fd278f3c9b80dad62ca7a10310a5101c53fbd3060a4025b388eb962f9f41b4b7dd9bc896f4b7c32e127ac0b901ebd1f7a9e8a16a6ce749cbe92c
SHA512 (ctanupload.doc.tar.xz) = 29f8c0649a249c02f05b153590de221eab0147e093c241e78521d0264045c5de3f9f26a5f008294ba10622f4fe7c7cb00217025282faef22cca2d4d6a87a347e
SHA512 (ctanupload.tar.xz) = c184bedd92205e1d44449f26a926c6dcdc23a538328cee06fd623ed8c8c5bdbad890d31644446d7b6ce70daa7b47610324c210f88ee21ed2a8a78b4db89c1ee8
SHA512 (ctie.doc.tar.xz) = 3de5219cdd5d39ecaee2deee3849fd8f02c0b69ba7ba9597c87013b5fa3a659aeedd1e6a8cacb059b9be132567911df16b74b81a05b112c7a3b0c56f7a902f3e
SHA512 (cweb.doc.tar.xz) = 384e5bf9a9a07f6a64ab30b2ae2ded8edc8b821abb072a26fbd179b887acc11e6b99d0e2972327f15d8f70990104439745982609cdd73083982a5fc7eb1f5ae3
SHA512 (cweb.tar.xz) = 49340ea70bd235f7d5d00d4087b0e90518ffeb83782993134823def6383f6e96d41d9ae6dfc5b85fe1fbfcf8f2944489dfd6167f3dc77bfcf0c5678c3356e617
SHA512 (cyrillic-bin.doc.tar.xz) = 70f2ba5c9ea5f3e5b5a54e0c65e3f0367dc31a8c2eca1460c8c826eac03e3cf0af8229f117c9296587b87c9a055474ed70125d42f6dbea03d2fd02f253af0d5d
SHA512 (cyrillic-bin.tar.xz) = 90a9dc6c7a582503930accd4636bf5e44dc52018e16c77f86d8977f7ee9f3f87825ef4c710b59b132deb2f85eea9ce8e3ae4e6158ad8142d796de7281ba85a2f
SHA512 (cyrillic.doc.tar.xz) = 3955c5fa943c23e7113002f714a33d1f6d769eb1a7396c4c5b463d543d589e0f8b0094dee282cfbaf5dea91f7894a431824b9f60270f9f154ba9e3d552a9d581
SHA512 (cyrillic.tar.xz) = 93a50b0b90a331d966f8b5ab2fd413427dfcff3580bc66a9b440156a41bf90f07287f6e57a3bcf12ee9b17fd7399a2b829ac3ff81aa808a5a94cc7753a0aeffc
SHA512 (de-macro.doc.tar.xz) = 00784c0670b5f11ed715f76745acc3ebc098b318ca2b00c294dae3ebf162af0f47b4192d993f7b1f5d443eadf0f7a2644cfc2bfb71956eb680cad2c593a29cee
SHA512 (de-macro.tar.xz) = 759f9146b37d485bae92cd6ecfc4291ece42017ce6be601669d989e52229270e04d6e8e26a2a8db46cc9f6f1eed3c5babe57bcf7c080afe828e2320510a3aed3
SHA512 (detex.doc.tar.xz) = 541972668bd85f0b101a4d51034b70d18c2ed5a4fb319a7e187b28de46cc278ff120584c109d9af69fe65a9a361b0e12e42ed2a409d32c6432c6431ec8f3ee43
SHA512 (detex.tar.xz) = eafa287dca73c075ac51318e9fbf71851c2b55cfb669062e572986cbb5b04fa3f92a8bc4bdb4a4c5ea41c27601f7849d4abe1973b1f9c6a0cb34e6cbb7c37f3b
SHA512 (diadia.doc.tar.xz) = 9882e5e334aa126cb4f2bafd5616003e9aa0272acb5e04cbbc0c9d2cfa2fa9de2d3a94e22f51c6ffd14e92e7996ac4dde532a163cb739f6e54dba9958d33cba0
SHA512 (diadia.tar.xz) = de9964cf0f3659dae68f56fada6e2a7320dec2b06c35a3fe9da9103f6e4ebb5d9148d1cc0281a15377c16164c21b0dcc8c976b7c00d65bac4058d6441240f8cd
SHA512 (dosepsbin.doc.tar.xz) = ac615075e8ef995d65b0b94c322283e40e6e8f2151e65086ba8d0d7298b0f492bbb6e1ba46a9f950e23829303aa16a0e91116c65f371addb4cd0c8ab3ff66f3c
SHA512 (dosepsbin.tar.xz) = 801065659ebd86f2dc0571254dccd4ea233abe7c319a2dc2a4c99e6500f421f2aa6c852a356d6083f41cdf88941e3253370a9622fb8a820d8c9b9b1c69054bf4
SHA512 (dtl.doc.tar.xz) = a340bf2a2af68edca51f4c6a7cede18faa8da5fbddb26a134bfc28e4d79dfb33631a8ee562fc1598596453e4030fa6ec343dae588223adadfae5dcc6953b3169
SHA512 (dtl.tar.xz) = d389c17da9175acf1c92bfa3558cd9106bb8e74a14581682259e71eca87386931fe9a0a401cabfb98bcc1a2428b243ceac3b5245f68c8358389b2a807f890e65
SHA512 (dtxgen.doc.tar.xz) = e53316cab21fd5c9902c566dff44d4f16da6d666040185df3962c8119726fa135acdfe1f08b5a011a3e2287d157b3ea98091db46a5dfdea68994edfedc04a90c
SHA512 (dtxgen.tar.xz) = faaf12b7897a2d9f2d647096770e0f65bc44fd36b84a6587672c9551cb79627c71bd6cbf251bfe3ebc407d7537f9e8d42f5b301df7760afca7269cf2e6699915
SHA512 (dvi2tty.doc.tar.xz) = 5384f60e4b72858c10503f458a50f0d554bcb081cbf3614bbef77aa351855bc70b69a59268b8a3dc1bcc2a26ecfbbe06d424a888806fa7a3d05df1b31c1b1532
SHA512 (dvi2tty.tar.xz) = 21a8e5e9f077ce1fb1e6b5b249d8eed4a75d007bbff65c58edb83fe07932440568d8d8ad19ac714e12e57d0aef56ca2d5e6276e51c249c172498ca404cba55fa
SHA512 (dviasm.doc.tar.xz) = 13b9b6fe891fe6c0e5c7819c74225b2b943811452562a684c1f71fae7628ba167acb48178187a5a6d56625744ab840aac90cff15010e64e36c3a4eeb1ed84ceb
SHA512 (dviasm.tar.xz) = 4d9e11a3418f1405552e8fb8a6eb9102b49fe0f02fb06d38e17abfd3b238f0fe9d0cb03c93270ef807ded4cd05f574148ce77d0da2b3e30095d3fd8461622013
SHA512 (dvicopy.doc.tar.xz) = c308ffafbdfdf152abd842918c73aa55689a514a1de6cdc53595ea988bc7aebacb022efc77bc5b7eb0469e619f1fb6916e2a3515ba5dfc6e4744a22b64dfaee8
SHA512 (dvicopy.tar.xz) = 63a65c2a95792fe56f5eef04085776cdc83b39b73eeb28a2b7fee310dc50d572dd7badc42269188c45bbd8ba930289c80fec643cc82e8fbcc373904dfc94cfda
SHA512 (dvidvi.doc.tar.xz) = 72685126bffcdb0adf0aff770d17eabb1da16e999b24a40c4f5a0925e8eee1e168f88abca69a6d803dc91a8871beac954feca4d22b08542e5887d8f4226f7cda
SHA512 (dvidvi.tar.xz) = efc9feaa1fd2e32e221094ac49a1f96fecd7e04144b785988e23a51537cfbda51f6a5aba93772d53c74d2e98b6a38739d76f10770201b24c57bf644f4b1faa8f
SHA512 (dviljk.doc.tar.xz) = 4140bf5492da8d3e4566d7dcfbb3c45f722fc1b924b429d1b4b8a32acae424b4485d0810390182527c6400ace88c4b45b6da06bb4838141e12142ec5c87f05f0
SHA512 (dviljk.tar.xz) = c194afcd4ee1446fb2bf2e6421827ae51a452743df98c4ebd5dede992db22f08eec7c9b1a77273799b971d2f7a31c2c4e2c5cbfb54c2b2c706d62f580ff482e3
SHA512 (dvipdfmx.doc.tar.xz) = 5e4feb69d9709b53eb4c76b58193fe71105d78a44f1b369999ef06f2354115924e6066869c5c72245964309f8b4f2ddc81251eb847be5916eafb154d70562fe8
SHA512 (dvipdfmx.tar.xz) = 340a1903f5b8fb445dacee698f6290b300a6368d216ac370c1f81021c6a74cab69b0aaf13993a1cd5a065ac10f5446e286d75b8cda16d9e62b50116187852b6f
SHA512 (dvipng.doc.tar.xz) = 39b5642c7d15451738f46affcd6d0514f66e5ec47f5d2c9ef2f40f16be00d09c388b4453fe5503bf67f92ac701b2101bfca44558fa76ab2446a8f62cb47d4605
SHA512 (dvipng.tar.xz) = 4b11468dee23c1203535758bfaaa43d6237fb5883e848921f47361f5ce65c839fc0babb03f4f7fecba8f9783635d93151cdedd036d6602bb76937168bb1333d3
SHA512 (dvipos.doc.tar.xz) = e1720314341e7063baf34dc5ce7086dddf282a82c5723df8b67547b9ac868e336657a88b0243b1dd20762c4371e2b5a8341314af558c55a7462534bb35c2a965
SHA512 (dvipos.tar.xz) = ea01dc9fa33eb847010fc4f13b023d8ef0e87a9da1e9cb7b8f15f51ac6c428952ea5d8406184c0807ba4eeec255933637122155ebe08fbcd8fc5d3df5fa1fbd4
SHA512 (dvips.doc.tar.xz) = 87c2577ee4c0a82430b165fd7864ec266d00b9a621b8964f39f2adecc427dedf63d7354c0849bc1bc9c0f220b35f47b499de5255500208881abb5ea5e2012f18
SHA512 (dvips.tar.xz) = 1f39bf8036e017649f21db9063259b9a7afa3dbda56cbee93611c72f4fc0c47bcaaa2748995b59ce96e548ebc9017a1f7a48ec78e20eae044c9c2033c63b5266
SHA512 (dvisvgm.doc.tar.xz) = 39b753ad2743b3e6e73031e34495022deb9d01f4924c5bbceb365c61b5d04772e1dd73202337b2b739154f83cb5a4e77298d1fc2341d49bcf0237c126c60937b
SHA512 (dvisvgm.tar.xz) = 1114a7bc29c9f4212008d2e3ed06b05c2d4301ac021a8c48f12bcfb2b4aa414fe6754e202033ad024705bd2ad7c7c5bd4c239ed2cd7498f5e61618fc7fae8ddc
SHA512 (ebong.doc.tar.xz) = ffc0b9cc7e2300e0cabb0d03af402cb4066e02cd34be3861a6b3fadb237b669aacc1a5edd1fa2511c60255cce4f066a7e6b10474b4d1df2ec6789a8f456bec97
SHA512 (ebong.tar.xz) = 1e5dc3cc549c21738d95634aa1b464d05c8070c7dacdbc805c1cb5d0df89c982e840f6f1fafd8f876c0148462ee851ccfc3250b9d1c3ed898b1f4512bddd96ff
SHA512 (eplain.doc.tar.xz) = 63cf762b2597e252fab599fd1e53d0a9d871958cc4aa89c9f64ddf2b690ade9b638020fdcc39bb724dbbd5a7c05dbeb816fbd793b8069eace19e380dfac926bb
SHA512 (eplain.tar.xz) = e7d10e7b2c8526ff1b7f67f8aa13987fa8c593a2ea42c5157fd2308fe6fb27c62cd02b1a90475508259b7caa0d42dc3c7f182a8365678cc3221058575737bc6e
SHA512 (epspdf.doc.tar.xz) = f467bf8021c1b50429917659756c9a8ba19d2352e4b8c64eb45a84ba8fd453890fb87afa250f59441cb9594705db1bedb66e39f35f235d1aca582df45f7ee429
SHA512 (epspdf.tar.xz) = b63ca19b247cd92a8361aba2f21f298c335bcbe7f46fbc8e1fd16c455a58bbdcb94721269a95ad2d6a74c1acab3347b3bcf42b082b3fe7700ed526a217dc2398
SHA512 (epstopdf.doc.tar.xz) = a33f8b037271d8515b7af1d04fd0b50af6e57a58a0d21e1c0457a7f961eba47a31243d500d43ab89a5d411e9a9ad97a5a140806bc8a0e24ad8b4b133fd69bdd3
SHA512 (epstopdf.tar.xz) = 900ecfcfff1c99b303bf3d7a73afd8ce3f2ec0471f6ac5b398d921f692f6002467688206284b7dddf1458baa9182a473cb3159000f3986c5e8690e394cbfee87
SHA512 (exceltex.doc.tar.xz) = 23e5670046a28b4cdfc3670f59b77b65e057fddb383f565e061f0f7d4b4257b0f84bf88e6bbe4cf69fc114f547e4246e68596532e70cba2b38507f18e48412c2
SHA512 (exceltex.tar.xz) = ba07d375df5cf350efee0ae903772f9b86b66dcdf1b6041c85624799b65ea2d24538a55f7aabe831bbc232b38a897a40f2157fa7f9200fa2976cc765b46f0182
SHA512 (fig4latex.doc.tar.xz) = d185af6444b8dd65d40e7cb2647e5c4f590784cb959017a2e1a3d4a264619e019104a995f4c6200fc32783b0cd75a1055e921c55ec3feb3a5762c3285cf9422b
SHA512 (fig4latex.tar.xz) = 2991ffb63e2d6046abe203fcfbfb54a8916192c9f7099ec0f804e7727cbea875c27ec81f44d73c829eebce31b2b7943373ad17c6bdfeecfd8d2b25f2690d04d4
SHA512 (findhyph.doc.tar.xz) = fe8f33cf13a69b43b80464e3799a090e0a0eb0bbc3420b5b9500ceb490582f79defa4b2ad29d406dccc4b2ddb5d5b83fbf644eaa99ea0565cb258706d1acc0f5
SHA512 (findhyph.tar.xz) = f6f117fd97f3c5cc7833da907b49783925704a43580b980d67a6bde4c501ab0d48b6d662bef3c11d1c802559a120ebaf3673c7a69f4d636133fd1e46629fee26
SHA512 (fontinst.doc.tar.xz) = d69a560da340f3a800cba8ffffc059f8df2dc80df63b35e8fbff63e73547332cff37ec756b70df2d2bbc01cfbab9398f5824f5f3b2f83b66bf3b478d395a0981
SHA512 (fontinst.tar.xz) = 282b6c39a1ca5e09900e30eb3d88abf4ce2ae36a8eecb44e272738f625632a782008be080fb1c0f2cd74f4cf9d5bbc35bd722f2177324ec1da5f0982f827e365
SHA512 (fontools.doc.tar.xz) = 328d179261823e5d7da5be973be8f8132909315a00cdc9590f10b0eef85ce36cb59c2708487ebe9e9f10bf821511f74768a88a990cfec3f27d0278d0134e930c
SHA512 (fontools.tar.xz) = 3f66e50aa7708486e19d197fc8a3e51b5d9b72989d7bd77ec72bf40223966125cfa4757016cd6115db915f76f6004c1848a6925613eaa39ebf9df66ec4572333
SHA512 (fontware.doc.tar.xz) = fa32f8a4f5190848e4ab4093b80c7b266c5c4b97b37a043011e75034815cb5494e0788b8ae75671004e0ebcacfcde2e95ebbf454d9e44be1736d44548bec2e1d
SHA512 (fragmaster.doc.tar.xz) = cab8ac6247875ed48f86f16a67cf3ba8b320aeabd61cf95a6c43a6cabea9ae11ee0cd9e2bee0b577ebbb414216cd4015a36161c83627647371418ef61d28c8b2
SHA512 (fragmaster.tar.xz) = a7e6fccbd850e7b3ee942a3d5af379e79a946fa9b037ed47d8de50b250eff15d0e6250ce2ddfbf8f7535a1b7c1bf39d80d5a352e1b77fe9bbe0bfd25da434bdc
SHA512 (getmap.doc.tar.xz) = afb8efcd5166e638bfef9a9f226c75d267ca99b080f9c9a5e8759fa1aa9d0efc9d0c555b2c21021617331e18267d8c45093202c62bf95a824e2a9ca34caee656
SHA512 (getmap.tar.xz) = 777df2b8b400c7d576df05e5f18c5c68610093ffdbb29753250e3bd6594342e2e1c398213848edd3a55b87b23ee7ffcfc55ef1579f37366aada7d3aacf48c602
SHA512 (glossaries.doc.tar.xz) = bb542c19ccb77576e83d2fa9fe9b21b6552f1d7ae91c489290341302adc8be9d4977ad7d1e84fce919c50b143908aaed2e35388aa2892bd14c38cb6983e22909
SHA512 (glossaries.tar.xz) = 55b407ed0717a4d8f67490c901d3c5b34268ddddfd90bd98655395c99d14fcd490bf306d603a3de5960600c6493c2d4dd6be4f663b758b204825c247a290b680
SHA512 (glyphlist.tar.xz) = 12bcb9ee5047d24448965180b3a8af9608df7538ef1c49d104d7f52e174e204f8d1a7f9d5006120fc06b1e101b56a1e543d6cf33f7ffb7aec9853cb47464af67
SHA512 (gregoriotex.doc.tar.xz) = 237175e9306a7bded676d4e06b0995985fde3f17969e63ba67eae7e9f05a65092d1b024bb06b61d2d169d4660144aebcff4a15a776301aeb7b096aaa5893dd76
SHA512 (gregoriotex.tar.xz) = fef43f6931a277666f89e1996a5e5d5534d529fcc5c902140b7d0217ef215fa854041623e67c313cb74d228de040e05ba1336b7a4c31fb8e9ecac74c22fd4a88
SHA512 (gsftopk.doc.tar.xz) = 6114d30883da80d9ca222c7191f57c613d28871d737df506f977442484ece94934c2c72e0c78c8ed619622c4d0a2c4a174d917ea9408f976ee0e14f3db7cd55b
SHA512 (gsftopk.tar.xz) = 9f3cf2841b1f275c13991ca07483bb47e9e833bf5d2d137af2660d7e01127f878b26cf0bab98668504edbf0d87e4e17fdeb8c7c654de01048298298771d289ce
SHA512 (installfont.doc.tar.xz) = cad711520909fabcb44a551c3d3b4ac12682ffa5ac5986d168fe0e0c0e5ca0cf8135d2a3964f7d4f15f8891ec5d44fc88d0f00a458308b82e31dd1bb52dcdcce
SHA512 (installfont.tar.xz) = f15bf4b91feaf5af8466db0492aee40c3570494a9ad503b62badf319b2aa20371eac883f714b60e015fa3ff15d8cddff65da373de653a6780fe2709de8fe8071
SHA512 (jadetex.doc.tar.xz) = 2b8dc86ffd95530e4e0e048399c8961e8c4aa277f6f6099b356b18fa7ab00b2314d9cc4085defb582b08d86ee90ed1f974fb8bb79596c2a683c9fdb12150caae
SHA512 (jadetex.tar.xz) = 3d1ecee213f6d6f84a9a2b9934379b6c2c2e908b49dd3f1a9443e0bbedbf03e21d0a86ced60162c654e069313a8a5147d4e76409a90515188afe8ea366180d6e
SHA512 (kotex-utils.doc.tar.xz) = 01b18177fbf0d9b67757a4c41d876e0f46e4cebe6f501c236ff20d7f5e2fef72fa3826158518fd0a097414a054f6cb0b0261f8c1352b4f46c0b49e7371ff9f13
SHA512 (kotex-utils.tar.xz) = c47ec4d47b7f38086abd4e1939f8f801eacf91ad707b0024c126a8d2f322091089a6e9966f8959d80cad4a4b7138c807ae131024f1731163e09357c4588273bf
SHA512 (kpathsea.doc.tar.xz) = 843937fa304080c7f02ce919ca9e460eec285b7f94fffb9b011a8843e9162bde95d04db2519ceabb44e3aaadf9880d98cb76c60e5a95db1c0c1cca50c30e5a51
SHA512 (kpathsea.tar.xz) = df4bc2175394bb6e9726b2c09ccf04e2787f73d584dd6944a25b3aab1eb6e8b4bdcd14ca043b7fe4f6e240ede1bd7e9003b83e34dd3df8c685658b8dcddc83c9
SHA512 (lacheck.doc.tar.xz) = dccade3cb114fcaed052b8474e6d4e3884023cfffd34ba8e4895452dd84f114270f3cd20a731b52d5443953154d6d0c112b27bbad536ff1cdef463f66f1e9fa2
SHA512 (latex2man.doc.tar.xz) = 88f4b0fc6a12355b0defe1c1ee10aba1d06cd498556ddf043ab12d480ed5f1946cbceb58de7beef452afeb24e416261eed8aff8c21c330909f6cc6a8cce9d5c8
SHA512 (latex2man.tar.xz) = e3579403dc9e984cb51f8854436968abf69a29ae6984cdbd0fb2fe0141b1ff2af65d2100011fb6355580b7f8a73a3c0bdcd3b225c8f7e13a828c6b2c5ee602af
SHA512 (latex2nemeth.doc.tar.xz) = c55505f0b00e4d600ef9a40461f6e3888f4c820ca1462a2c2edbd5c9f9ca75e08e543cb9fb25ce56313a6eb80747a710134ec5933f71a172e5a675ea9a0d76ee
SHA512 (latex2nemeth.tar.xz) = 20c73aeff0c9cacf51a8bf74e65bbe3c7ab5fcf79bd8914dc5681ed4005bfe4342f526f2a2feace8ddb84d4b8946937026050a2e91bf0435d5871db1d26a225d
SHA512 (latexdiff.doc.tar.xz) = 8b5b77955a946e0969ab4377964a350408c6dd55346c3518bde7299f6bed128b6ff8fdacb8dfc174b91fdac2f6eb09a537fcc3f6b19ce9bded9ad1efabf27d54
SHA512 (latexdiff.tar.xz) = e91673ade517a18bccf667ea69b37ac3a3d447f99d848d511e93f04f5ee36fdbf879406cdd0f1323b0c71e226b23eb7009c54070189622a70aa51b40a503f769
SHA512 (latex.doc.tar.xz) = 5bdfea6b85c431a0af2abc8f8df160b297ad73f6a324ca88df990f01f24611c9ae80d2f6d12c7b3767308fbe3de3fca3d11664b923ea4080fb13fd056a1d0c3d
SHA512 (latexfileversion.doc.tar.xz) = 46a5495320ead028664b1c02c872147cf350f05f1f9a18291fd47a266a06a66449bbdc0d9d4818cad30f75f29a2ea3611fd6c88379aaf3a703e76e6df9f6b679
SHA512 (latexfileversion.tar.xz) = 7b2c2ef5ae64d2921da0fa553f7fb745dc7c8f9c5675f5c018e29a4745f2333c0f51d00eaeac6474a35a382d9286896b0c9a7a105424ec680f53f8a93faa5b2e
SHA512 (latex-git-log.doc.tar.xz) = 69f6d77f2163cde39f3c5de0d2ea2f402c1178eb3d8469ba65c7f61809e92e1c6a3417cb1d760f6b3757abfe08e441d0ba4cac53344bac847754f5c0db01b5b8
SHA512 (latex-git-log.tar.xz) = 01a823d96ea3cb193617ad26405768231a1ba3f22165b008f0a4898e3db14da424cdcdd12fc353e0c89b42e6cd80e3b1531d772f663ea9487f8fb02c763a1c03
SHA512 (latexindent.doc.tar.xz) = 299096dd35ce2cb4c65192a66a7763a3d41599ffdfd6362f792c43415e93d6b167524420e3d8645a87cb251ca69dda45ddb3adc9d55a0e21830f714a6984cd47
SHA512 (latexindent.tar.xz) = 4a608adfe0f645e312166159e2df2d4be11704d705cdfb9b745505b3e796ba77b95754da954a64afdb00b334fc3937519eeeaf0937909a3f0b5be95572e3663d
SHA512 (latexpand.doc.tar.xz) = ab847d512042ea1079621f9492001ee09c278b130a7c61412d883fb3687bb85d52dc53c3133d54acd444c38d21d42d5ad1b95f918ccf38bd9575f9fb19bd6ede
SHA512 (latexpand.tar.xz) = e74ed2886e781740d77c18303fd98eab17e431812f033b0e7734e4aec966ef3476605ffbdefb960f7be511ac5c2e4e01586f3ba3b3b1708e02b0656a02e4b6d1
SHA512 (latex-papersize.doc.tar.xz) = e3aa2050c9fab9c806f0df66bc2d34b97a8b67e6e1bb41b13e524054731419145003305117ecf515dc47c98ae365c78784a5f09f823145e01ea08aa54ebb024b
SHA512 (latex-papersize.tar.xz) = 0b721446f7d74f113182211db735d3d7cc98f61b044f95467a05b989d949230354bcffd8957f8d2a5be1bd56fc7bf3a096eee93dcfe30da563874c2a6fc19e63
SHA512 (latex.tar.xz) = af0ac85f89b7620eb7699c8bca6348f8913352c473af1056b7a90f28567d3f3e21d60be1f44e056107766b1dce8d87d367e7f8a82f777d565a2d4597feb24558
SHA512 (lcdftypetools.doc.tar.xz) = ba1d803b7abd0154ccd61d0b78cb94ab1b6c57d966a69bdf2fe3b011bd38c16f0b6248f56525a89b87ee66c2b739d7ebd1eca2d631145a2d00853ec665cf31bb
SHA512 (lilyglyphs.doc.tar.xz) = df110ee71498ba8e1cd536cbe50a80b91ff07b7ce0b43838bfa8fa121a059bafaf1f033c61b21c10a855623ad5e24bd6b4b56399c28ea1ce35a27dda643f14e1
SHA512 (lilyglyphs.tar.xz) = ea36d715eb258d7790c92ed3a2d459b024d9a782792b6cd03d67ab84fd17af37097c5c3a8f9cc2f9883ff72d21acdff2a36265ac06a2bbe96d517a7d4a72aee4
SHA512 (listbib.doc.tar.xz) = a3bad539e30e0c4ce041327e0dcd3f5e945a8c23e5bfc1a2d6c7a8a2f1cd38a53cb38442d0b60784187a746b511e5614b86cd0e2cc3e70869afa04a1fe9bdc55
SHA512 (listbib.tar.xz) = 76a88875fcd0615257e73772e87ed4356686890936ece423b934f14f9c2be3a8512d21823783b03d1198e5718540b43de5239b1d8e11e93bb26519322518cef3
SHA512 (listings-ext.doc.tar.xz) = edd67257cb74020f36a11a95e6f53dca80b376d73ccf75a87d689ec606019ba35f5b836f012c1817764da8c3b2947ef47ae707f22c47c4096dd31c4bfa58a327
SHA512 (listings-ext.tar.xz) = a40ef2786fe5624c233f846995903ebe19fe6fb9525899f23e73818eb8f87dcb296d6bf0c23366741f6a8eb8655c21ae7337a4b80d90949961b007ccdc67f461
SHA512 (lollipop.doc.tar.xz) = 8f0690f8961eddb36c5a4f64bbba9d3e303cbc8528c3b458444741825cf345e0f692ea9fd575a396eff75cc6b7381f55408df10da73d3079f188550ae627010a
SHA512 (lollipop.tar.xz) = 678c0e24e78d2ca206d26bb1d7169cacc1323944d66286dddaa7300eff03cecdfffb51b04c3c929b54bea7a54038283df979999983e9ca60b0e67f0fd3b89d89
SHA512 (ltxfileinfo.doc.tar.xz) = 44e7b6664fd865a78ef23379cfd39c720ddf9040d3ffe63c4ea922e2825a14f49926782e1e3ae4cba347c26b8bbbd15e630d94dfc36c68dbe813fcaaeb11da88
SHA512 (ltxfileinfo.tar.xz) = d4969bb58c2ec3a167041a78586913481fd3d760d1434a4696ebdae643e9e80adcce0b424fd7b3ec33a8ae85e9bc7241eb108535f4873c93bf6a5fc30088fd10
SHA512 (ltximg.doc.tar.xz) = a761b23a9873912e677f042378b7598750480d527c7fd58b5c36be638265138033e4a6aec411e879a9ada801aed85694898b4da9459c52040e9d33408ae485a8
SHA512 (ltximg.tar.xz) = 5e79c50138d86e511cbd2122149feb26b0fca7da689bb571a2290d028802684c0c8416022bb8f2da22e40430fa9866e98f42c13e98d5ff834c1d019c0dbd4c6a
SHA512 (lua2dox.doc.tar.xz) = 6fafe55653f1631b42e24f83ad8a181da7ff0936a5446fb5c048ef8e849885fbcd2d48c82dd4380e4d0a5c39480e6d37847c87d87f0414801591e6082e1552ec
SHA512 (lua2dox.tar.xz) = 8d92191cd59a56e902181c5326d08ea04c35faf838671ea2dfbc273a7536ed822da493c463f6220703e66326572445bb91f12d2f91f554035113fa0019191277
SHA512 (luaotfload.doc.tar.xz) = bbd0f6f3cae8e9b4ef8f4cc315fe45327472da1a9fb9fbf906c86c5789cd7e2d495602472fb8c94b0eba0764f2e7d6525ea710cba0981c2d1e7f43a391aba4ff
SHA512 (luaotfload.tar.xz) = c9f353503b81d55885dd22d5c5b707823018475ea260eff4bc8aa1d91150ff0ac034f857b5721f6604612755c28df2d79b139dd6cd3dc7edae3a66c3612dd381
SHA512 (luatex.doc.tar.xz) = 2a6b095eef19a46ffb65a9b87cc358a512de902b9fb9376a93b5438e6a8146692d94574311786a21404d4e3be09e46bb867b766d72df76b68806b3de65bf2aea
SHA512 (luatex.tar.xz) = 25c7bab63779173080f4993986df20d6295a24f59d1102674d41f5f15c182e59eb68662f41c264c6ef3ee70662eb869a59751fb3c615bcd28104cf72d4f5d089
SHA512 (lwarp.doc.tar.xz) = 9c401155a2b744a814a9dd9cb91970af52a88bc7f3a3906a68b88d8a7aec9caa5b1e6609843e5d7f59eacef9b45840c578bd7360cf7fbe910a2cd917d94039c1
SHA512 (lwarp.tar.xz) = a9aadce09fbff946af30ae19a5e879fb05ad947349418dc576a3b7d229f6c5bace50dfa79770d5ff45f0bb894689e8bd3a91844a33a8715447cf6e9addc5286e
SHA512 (make4ht.doc.tar.xz) = 05dceee32a5488df1bc889e2ebd006cc2c901e8445a7f7e3ddde51afa24dab59fabca9b2df963febb7018b4e840f0107f7aded5653ac9046b7625d3a5852fbe9
SHA512 (make4ht.tar.xz) = 06d90bcc80409a9f18024bf730f956d126bb5745f43e30cf159ca8a94487fb0dbc347b1b30b2d954e8e3d79160ee0c13c94f4ffbfefae332bf39f94823da599f
SHA512 (makedtx.doc.tar.xz) = 0a90cc1645c478ab2f43cc0dffd55d02aa3049283eecf0e21dbeb37eef92fc8d48d5d2dce1f418c80c35304e492a0075727c26a3be5555c565a62af6a1ad3432
SHA512 (makedtx.tar.xz) = b557d8dc688d32487b3dfbc98c4f9f9d0bc80a8bb0c6faea3f99a5d6b532c238f0d59757ac97dc9368aa3ce1403dc418c2394c950e1f6d513e809cc007710cb3
SHA512 (makeindex.doc.tar.xz) = 944c04d20a0c37b9a7fb9a7b7e75294f34bfbbc5efec78e9dc893f40a2b0e283f7134bb5a9e370f9fa7252dc3840f0e1cec9c7b1f34e54733a413fda9f6f6349
SHA512 (makeindex.tar.xz) = 964d084febbbac407c614fc9d23c9077f9800f555324fa8349b865210d4d3ae12c98805caac91e2400027ee29c05d3672c9212e7689e1c4169d490f192be59b6
SHA512 (match_parens.doc.tar.xz) = d92fa529b9cd6cbdee2d8e6f178fa8395c08540d044d0522d1da2a68c78654666d0f7ec05960c9b9f8b2530b4c54bc695887da13a1ba383d6c3bfcc49ebd64b1
SHA512 (match_parens.tar.xz) = ce7850ddaf29d0f9c0640eec6b84eb4218a69e9c5831dd8f3a2e9d74de568e89c2fd017b7bb70d2fb7ff2297f38b6310238a45970a3a0cdc360bf9b4d7c1fcc3
SHA512 (mathspic.doc.tar.xz) = c58b590e5d4412552c24290b6f597386a6699424df77234aa4b651c3ddf0565f58f7085b17d94a0604259cb97ba3f8475b73fcbc4becb04584760efc5047af70
SHA512 (mathspic.tar.xz) = 4cc6f9037fad5eb5cd703b619d04e2f372acafbb2b05b0886287bbd4f652829b574f507308543ab2fe33538b38ed8deea6e84712790acc5bd3832e7cd44614b2
SHA512 (metafont.doc.tar.xz) = 12d4f330b70fd2aee6bec03161a5be384678b094588b7db615c0bd8228f343cf8d38ad461962d670f26756f12b9547364ee564193b05c6ee242c837a5e678f59
SHA512 (metafont.tar.xz) = 8bf810c0b087e41c1582183c424a1d5b448f07163d6fa131a82c9b8303ff50d6f25700cef4874e428ce315f21e8dd2bf07a15543716a1795613febf2a7a54aab
SHA512 (metapost.doc.tar.xz) = 2fadb4d38847f8e41cb17f121b2dad077d9ede79074307d1286c135ae5c30cb1546fc19f9bf2612239249d3cb9abe4bf48c5394260fb441f6aa6e2b8515c932d
SHA512 (metapost.tar.xz) = 4d2e9a77448c548b199dcb996ccbdd7069835591b0814a079566f250bee11d241fb0bedf2ea24d0f44e38ad49ebb1a1d9adef8008d60c286fe8bedc6854a152b
SHA512 (mex.doc.tar.xz) = a4b4142fbaedd21b68defd4ba4759bf624af4c7fe0cd7b2ac076cfaf57c1526808b966044dd796d4b54f29e0e632ebd0a63727533f362698d1866b31388ee2af
SHA512 (mex.tar.xz) = 819d20beef598b6e056bbf5894765fd8d1891a17e789a54d01e807b29bf45cee5a3ec3704564521df9d5680d93f1980e82d413da1883bd2e4a0988f8304f4782
SHA512 (mf2pt1.doc.tar.xz) = e582a6ab811bfc4cebfbc647076cca17adf4468c806618b50791e9bb01101c610b8d2ea20dfaee373d1e9fa7fa9b07d0b01c09aadbc60831858144c679a6b9da
SHA512 (mf2pt1.tar.xz) = 9b537bb2163b1c9cff8f8a710e4e292a962b6e13c5c26e27547bcdf3a8fbc4ccf949b66b3cfd89969a07a487908d69619e0d46e63c60671726a272d1c6c0df0d
SHA512 (mflua.tar.xz) = 83d84e3cb1291c2af4067df2fce91e14bc30d11843c5aae36aefce4e0e1fe5cf6896ecff8791c2888abb16d13933cdcaacec11421d534b71dc3b6cf8c1c02bd6
SHA512 (mfware.doc.tar.xz) = a8e2de145a076b8024a4638751b0b3de8079af92feec0b67685cc26029f23f7e95a47ec551470ebd7583b7f58599c2b32a7574a9eb41dd5a6e117c12322a54b9
SHA512 (mfware.tar.xz) = ef670f1c6d9075a4a0c8d5cb4bcf9c5b203f4c855c4a76e19f839381ac25a57726e7f0b151520d9bbdb6068fb4afbe973216d130c6df60b8beec2290aee7be8a
SHA512 (mkgrkindex.doc.tar.xz) = 58592014581bdf45854c5095053843a89413023609797661268a0ce0a11bd713f201dadd619ce7d16f9f99267495fd4c663d8aa7aac525ded9b3be7b71a40191
SHA512 (mkgrkindex.tar.xz) = 19f28882640f8ffcca3368932a60efcc64176cdb4c796cdaee55e1539a4b24f944da6af2ddbfee0abdcb5c79a02d58a6a2842dd101b37bd41baa18f9a97cd0cb
SHA512 (mkjobtexmf.doc.tar.xz) = 4df1df676df7f1a1c1bf0d1c0a51df8e4839558b79fd410446b522ce218f499960420af351c195c61fb66f9eeaea869762f3ca8091f76c662aeec333fcfd0f80
SHA512 (mkjobtexmf.tar.xz) = b87432ef1fcface11e93e541595fdf74de1539d9f2ce0dbbe3e35c73064230812628745aec782b8026cc60f9797aeaca9057c534ac852b22bf44d24d5cf1b960
SHA512 (mkpic.doc.tar.xz) = 9d6501e80cca978de05bdf4f39d67943b98c08711c13d84d8663136ce22ed643c33cbb51a7bac3bb581c1266ab15057aea4d4fc97f2d258da2c1433916ff0e0f
SHA512 (mkpic.tar.xz) = 032d36e6137c8ea94f0c8149e53a271117a1d00eb3d3b65c25e465de97ba55595c62a8199cf8d8607df5ba6fabf7ee780b8b8420b2b1a34e2b9d7c06f42e8d23
SHA512 (mltex.doc.tar.xz) = 46ea8740957292d186b671d68ff11e8f8637ee7b354ecee4f71cdb86312152ea4a29ba03ad4b2db2df8b558e30d3383488403fc5cda6fbc8a783660075918749
SHA512 (mltex.tar.xz) = 3656b258fbabfaa98d6117d0fc83c50c7604a0e3e22457d30b68059d1d4ce790a468384a876072a91c91cbb01282246da6ea8ba828567ac4a0bf52130939fc46
SHA512 (mptopdf.doc.tar.xz) = 52d0c0edc0e1dab679bd89a985c69460729c7f9fed1f2e3c3a789ae3553aad3e9afb0befd12e29178cfa2c7f0a4528bf080154162b34976ad07a875565df5c82
SHA512 (mptopdf.tar.xz) = 8814157aade15bdbaffd17600c711a1bb0e4af782fa06e656654cb22ef10b1df260197677fe7f41fc3467f644eaacbdac2c3818f13c22a91fc9fe37cfa459ca8
SHA512 (m-tx.doc.tar.xz) = aa6a2fc3450f70d5e276e2d489889557fa6e1356ab836202ff2a19193f03974e5011d15c3cce8fa206a537e0c514bc0ed75d9c18452394db578b1705a2f26533
SHA512 (m-tx.tar.xz) = f000e4e60feec5c066b274e190a2592f73eeb6d69c1dddfb5c75d08589115ffb7828c419cf7243987a9bfdf06ed228eb66ef9b82fa291a9cae6fd56b059b8431
SHA512 (multibibliography.doc.tar.xz) = 419d3a65b0060e078c3414df406d4c56e926cc89d6a60f89e01b307d88502a828d3aaa7b8180faa77736764fe2f25a67a8ff5357c5f41595164ca7edc855d543
SHA512 (multibibliography.tar.xz) = 5b0c126b2061322e50839572051e274946665d079be7e536597c93fdbaf6c14c18203d9cc60b74e630eff5bc852ace22ffdfa9b308b55ee79280a8944b193f73
SHA512 (musixtex.doc.tar.xz) = 3507a75f0fae7fd7eed4d56190d089a3936178e6585fd3bb171fa032777ac4c06d5d634fd34340b1b5be748930674ace4506f8cef6d97efdb4f558e7be88219b
SHA512 (musixtex.tar.xz) = 44c61cbdabff85663275a92b558a597d648f557f6df6f85eedc97e59eaf1657f00159d139a09c6245a79f3c760b85efcc91d73c1025ff8ddcb3cd3a7c1eddad1
SHA512 (musixtnt.doc.tar.xz) = 3073c26c993f43292a92d02fc33bc7593f1c631533250425e3e81dcc349262ee0da4408ca4c760a2431e30a7d0624bac769483a5635728666955a4bb5f2a8f07
SHA512 (musixtnt.tar.xz) = 2926c9add9e223d6aa28eca415d91f258ab1df5f43fc12d3e649a9e1eb83169eb2ccdb7c17b07b2eae83686393f6eda5cdcf87082eb97d83471f0f15cc85a2db
SHA512 (oberdiek.doc.tar.xz) = aaf7a956a859f56c476516b9a6ed473655e3a5ca08007cac639a4b22b0f4bb958ac62ecfb8a15ad82f14e262f64250de1336c9722226e1c4cf33a9f9efaf8df4
SHA512 (oberdiek.tar.xz) = 37362551d49873e55ee5031339117655587c778b71e41b1b3c699be5835e404628f744a0009dc3173758ca9a0303e4367a2af990f54d8d6eb3c1b05f3a7c0523
SHA512 (omegaware.doc.tar.xz) = 2441b5bf2f872e9823ead3e8f07bd7a878d9f055c074f3d1fde4fb61a085e21b8cd32a25c1524d3b4d90dae13f8be62d94e0c10c78fd65fc2cc2dc7caed27ed2
SHA512 (patgen.doc.tar.xz) = b1b69e00f32402f3bf2012f25840e63e3e1ebb00a5224efe7c7425d54a4c37945dfa097a1f41e89b360e4d0d769ae003774503fed41e4e1076004d296be27117
SHA512 (patgen.tar.xz) = 2a5175046894474d981baafc9cbdfe5e1079713ff58c214ff0573b99e73117178459b898f7b3116408569152adda3aed070ee7790b1db50afe2b9ca15ee74b50
SHA512 (pax.doc.tar.xz) = c9c7d22970c0b5b9340a9c072ab37a5272dc8f7d3b491c1d89aeaa7e5c5b8484e4e276f600c1c08f65fb8a8a6f5a999729e3147af701c877c2d5e98ae9f92f36
SHA512 (pax.tar.xz) = 0acc0ff24198c7b21be60cc16ab5dc042cc69a087a347d7926cc72b3f482592fb8096220e56c933450d70c2363e519b0edab0825173f5bf6cb6e5dc3e9c293d3
SHA512 (pdfbook2.doc.tar.xz) = 7620a797dcae68e7bf093c119b06f377ea2665b228125bedae11ce129d8053df066e771df2053fb8d90473cd7d00a75ec5235a0ac5221b0171605d145a18321d
SHA512 (pdfbook2.tar.xz) = 62aa520c215830d8145bb0fd7af60915245be4b246bf42eb912124e61c9a388da67f3ca7efad560f98701c5b32be0b87ec9e78078b9900f44f0095c9c069ab1d
SHA512 (pdfcrop.doc.tar.xz) = fc9537872e8a7234d80e76709d69ea7c3e17e02321b26477a96186e9b190d6c093a62caef83bebc76d4aa4134273e28e74d456ddaeb9e53fd073f9838ecb6110
SHA512 (pdfcrop.tar.xz) = 11d2e8e911e8cfcabd5a4f6555715e08cd6ca51868c1a0dd7d9332fea5fe7fc4b571669058a99ca518f7dbafdf45a517231ea8a654ad39ad9169a789b3346a00
SHA512 (pdfjam.doc.tar.xz) = 31571cc3f5328c889c4693ded0bde5249f27b4aa12b15ba3716208a91c6c06d85ca5a218cf5a219feebe547c9c693337c7c60aabcaa234daa1821a21eaa637f6
SHA512 (pdfjam.tar.xz) = 4a752cd626123e98b484fb13396f97914a24593f7c25bdaf6b4f16d5836839fb995600e268c24cc454b672f06df9e4b018b3cfa0d7402ffff7f7e2d351daeb4b
SHA512 (pdflatexpicscale.doc.tar.xz) = 6a19f1366879369ccebfb53663ab565e3a635bdde413fa7c1d8d6a58faaab745cf213b35e183ca1bbca4c90dc3a8c60f1ff0e472817d703ce015852d0028122f
SHA512 (pdflatexpicscale.tar.xz) = 119ad81b822cd469f7e720f4ccd276e05c790288d7ae612b37ebdd80796b0afa80ce77d77023347db0d2083afa9f535e68148893f6cd22b9618d531826012a3a
SHA512 (pdftex.doc.tar.xz) = a7e9bcf8af36c9fdbd8bc9ed8d073e127e81f0050bde8f84b3437c4df25faa737a723f338873e330926ef96e97dbcf288ebcdc6d8f9928ba796021b856587cad
SHA512 (pdftex.tar.xz) = 64a35dc0e86a70f5d80671565cb5288e55b9b1c2079562cff7830042fec3d4eb962ed57e59f67eaf0ddeabdd5d7f8aea6d344bedb1b6573185b37801bf1f19b0
SHA512 (pdftools.doc.tar.xz) = c2d74b4c85244124811bdc82154b61789803c5995d12709f0f44d61ff4e0f8b4012674441b641e7227d72d07b45a87f4138fc98eb01d747d0778c7c725e6cfc4
SHA512 (pdftools.tar.xz) = 9f6684fa61f3bf757fc970214065b76523e9f0bf324024fe90268034a2322646cbd10f3a005135cc176e7ea17c434fd9e727337d45929ef24f024b0ee7edfb10
SHA512 (pdfxup.doc.tar.xz) = 08c73707c64e418042deb7b064efb8888e383b5fe81b7e732a6f68e6bc33fd280bfb7045551bb772c08110a61ba59d16b9a4c9ba0542a730a9dbb91c88a2b1f2
SHA512 (pdfxup.tar.xz) = 9026e4729d1ee798b84b5675ae586fdf1279b122485e6c8b04e6e2dcd09fa9045e07bd7b0360cb36e118f17256a61e05f9c5145ba3c2e6843ca9c4326a0a7281
SHA512 (pedigree-perl.doc.tar.xz) = f343893092640eb2594d331eaea7725dd079dbecc14db67180dc4522885343e4498831778cb64b8d6b667e0a2dc0f6d3859d674a30d1edefed22cf2783f5761a
SHA512 (pedigree-perl.tar.xz) = 6b85e7b63af3777b0b58d1abdd56551a846de114815d3bdb31e815e0624f24a6783425887050b275a64a2434fcb86d712b0b7755f4b63614e7c3b333b835e9e0
SHA512 (perltex.doc.tar.xz) = 09fbce62f426ff10178843edbf398b55edff60bc5c8646e60ab9b51a4e6a3a1738c0198ae802be5053e4ca45490fe9e16eccc89392281a3f33e1c18d8b3fd31a
SHA512 (perltex.tar.xz) = b9674daf70415a57284757c74968c6aa6a0cbff68e420d9263677507432bff84b59d7a9be625cf7be548567bace3301f7082df96c3a23fd43a737da714d535eb
SHA512 (petri-nets.doc.tar.xz) = a12ef73af62bfff282690a4ca15a2bd773503e2e67ba7e49399082f13279630df000a3c50d2bc7a25a11116e7f95cd03c0ba234e23d2d3f79bf37b36057b4f07
SHA512 (petri-nets.tar.xz) = c1e90ba7e8e06b308890aed68d2d5487ee832a9110fbfd9d680d5695c67db8c769aec4a8d43ed22415c2e89f13e4930dd3c2d58b0518f999d3ba58ea1567a99f
SHA512 (pfarrei.doc.tar.xz) = 15596eda6e1c9c53174a17c76f6a36ffa0ecdf864f1c9f1077ac8fb75f7fed97f5d72b48ef553907ca6fa7c40a6c0445a130dbfbf040a5a214d4a4719ca08dd7
SHA512 (pfarrei.tar.xz) = 3fd11229796b4958fe8b8a3e2c4a4f0556063328ecb83cd9f4273c9bfa7b0d81dac776fc5d79f5b96b7366e0dd259d27af1747752e1fe4bcf7396519020a6d95
SHA512 (pkfix.doc.tar.xz) = 6631a03d1f2e591387daf7b87df7babd168be26b84b08d5547aaeb7eb0b5bd2d2193ecf92ac701eaec87496121d4318cc22821a85f622501e5c39d1ef0a277a1
SHA512 (pkfix-helper.doc.tar.xz) = 9bd23f5fbad0899936b27d91de75a248b304ace9314e28e9e4278d482545bb7cbc027b7f4933c2f868ce2c19ac3eb74527e176c4f648146613717de36488f7b5
SHA512 (pkfix-helper.tar.xz) = 4f63c561f387e971b0fc624ec252a5783c53303c661e05bd21b04a26ce4743397b0920762b4193bdc93e6b23458b2e728a28b3b5a355cdd66d143320636a9492
SHA512 (pkfix.tar.xz) = 5ec75f9a8760dc9d159a003738e700938aed4312b76c3b32feeae1e3736bfb7e0ec61bc6627753ba2c035c93a47f21176ed8588f73510e1deb76dd8d159b3691
SHA512 (pmxchords.doc.tar.xz) = d6a75117adad99aefc853b6bde83901215c915409d16c7be5a212132b591e0efa90f2ad2ec87957f64efa61f7112564f4d5ce59fddadb898e6dec0fd843e6824
SHA512 (pmxchords.tar.xz) = c5901ce0b9f96bdb232acc845e6a23df6510414ce588c246654cc61ffabf407a4ca7b6c25b54cf12fbe8bdc368d7ca5db5bf1900f0002b4905d1e2bc738e91e7
SHA512 (pmx.doc.tar.xz) = 86c4bf705d23c1dbb516548b48ebdabbc05b4871cc8ce3962d2f2e016a3f48c5d53bd6a9e1dec074665b961c2412a48294c9ce93769bfae8a7ca8ab1d4f900a9
SHA512 (pmx.tar.xz) = 5b01eb2c856868035943460f65cb5395b654c777ac54534e431ba6204bbb01cd78033a135715f6aea6e4c2d2c0270f7cbaa72363329202fc5c54ff9b566a848e
SHA512 (ps2pk.doc.tar.xz) = 822f87276b52a34afa3965365607d277148e8b7a36db7250af435c6ab5e2dbd91d5447744c4d14a7fd3466208a45ed92683bf34cf057371a09af8076fb60a8d1
SHA512 (ps2pk.tar.xz) = 6535d75c20525f32fd39f724c26aec84daa66ac31862afafabec7dd6a43c03af4a740eb81ac8839e5e0057bb90c04e2b8da81a8902e132316c4de0379786e491
SHA512 (pst2pdf.doc.tar.xz) = e2a8eff0de7d6dc47f20ee93c0c4522c7a4dc7b48205b61b5c5a26380d6d4640d5aab68f829a33d5180533785eed5f66d54707f50e6708c67d2bc0c864bcd4fd
SHA512 (pst2pdf.tar.xz) = 84c6261523965e717bcecca1cca9e079b82d9806dc676196f68512984b7ebfe60fe81421561e44fbd5b5f299c2d29d0ced5c273de8ba3781ebfa920cc0301f29
SHA512 (pstools.tar.xz) = bd01abc56d9a3049f06a709a5a31edbcdf76897d7ba42c16d4e8ab00252cd7b07d4690c6e7bddedd13a60d24c07afdf69b26c0e9266cdcba564961facb5a3cf4
SHA512 (pst-pdf.doc.tar.xz) = c096a636cc8d11944b4ec0a5098af67e1813803131474958fd9b7335804edb48ea6de9c5be379233ce36b6db3047caebf477a391ce398edd7df53ccca9c62e4e
SHA512 (pst-pdf.tar.xz) = ba85656810cc2c0b33b133a756266c052ef0ccc1663be3df05a72a49b8ae55351240cb4635aa5f433c8d2184fbad35edd853e8b365af681fefef36f5a1f6b312
SHA512 (ptex2pdf.doc.tar.xz) = 0157fd1946e26d58bdcbee0af748a4209a93ffd99c3f16329be02c25d369d9f5d37878e50160ec6b4626e35fb6e3bd20f78d8e59ab9655f99caea36a35142a46
SHA512 (ptex2pdf.tar.xz) = 44da8b241e4d74f2dff3799a7c1f5b5d0446b917cb032c3bf8dfcc4a53848dad123b1f026c6ee83264cacc54820b037054d02029e15da8000be07e3c0e1ff3d8
SHA512 (ptex.doc.tar.xz) = a25e4d337e50dceaf3f015e48bce54836f77b385af2fbae78e9d39cbd62489406036ffcd7aad4e73575991413f040879164168ed77e414b6a8ba94ad450f08a4
SHA512 (ptex-fontmaps.doc.tar.xz) = cc841ce5c595cc864e5e9c6346200c4d9bae0f4bd356d85fc5fc9543cb29db0b3794777522c713e3cb369458e99e784193257faecd3cf6c1d744560a43197a55
SHA512 (ptex-fontmaps.tar.xz) = d0f3bf502c4faec80126dd549c42ee4eeb1214b56e8ca014bf26f7f6dfdfddb8a25bcfbb0a0149a0c2aeda4b4d214333405f966fac667c40517c0fabde021d10
SHA512 (ptex.tar.xz) = c268e17a4be90aa8c0e5ecc459bb2af3a14a3b79019076411752230c9fee37752bcc3318453ee4d7b05aa435b3c9f140ce3f611447b32bcf2cfa02116083ad53
SHA512 (purifyeps.doc.tar.xz) = 666846fdd403a143a1756c271c02561576c1ba314fa02400156914baf694d90d461c621bd2d9eb1491e498bb92a4d68e1d69bc20e35d9aaa7440bdc4b76b9b07
SHA512 (purifyeps.tar.xz) = 28561a89dbfb895180d0112fb39920c0da0f52830c6a1389afcc080d381c70ccdb217192b2b154f0f31611c67b16603f33c69eaed9d8e5d0571f3886e1481817
SHA512 (pygmentex.doc.tar.xz) = cdea814dfb54ffd092538261eb740bb129c42bae2751c50b693ab2dd5360836d2ce6c11ad4af9d3d21075ca56500abf05672fb352daf4b24660e2959b4af53b9
SHA512 (pygmentex.tar.xz) = daf469ab524cae1dd06c888cc5150aa8c0e1827a8175cf51ec609fd32251c2139bbf6383862b1181c715d1ffc3ec52fd150e93d84efb756dfb9cb2ff5782341f
SHA512 (pythontex.doc.tar.xz) = 843c6db622949cea3234441e3a2a91d93b91a8f2c95de5c375d0809feddd5e3646cb9894cb0e1b3850c049a36f3b3bfa03ab03e4dc4b82382030285ff872d363
SHA512 (pythontex.tar.xz) = c38c0f12a40de2d2c180d3ce021a95dc2c70797326742a1bc158fd52cdc828587127191881b6738d881701b4dba97cb7bbf224a83bc2ce7417c550bcd2605fa6
SHA512 (rubik.doc.tar.xz) = bc3e82444a1269ba5df65639aef5b988734672b0b10a17fbc84533ff88c0e55b07847aa5d1d0ffa5716dad1637cf3b88459c78a3adc79b2f5de74f27f8e4489b
SHA512 (rubik.tar.xz) = 903ba830b5fbdd9cbeb6f6679e88e89758f44dbf5b747dcc269be3bbf04d733dc076f272c732717829192aff3ccc5e77893b0b021fc473184c85e0822f35eafc
SHA512 (seetexk.doc.tar.xz) = 8d0f79f6d4528d234c264752ce27944f70291d299f6d7e1a254537b0acf1a296894d8f961efb8ddea6130a1faea0e400f99456bf15464e5b08a26a652ec9df94
SHA512 (seetexk.tar.xz) = f18b647cd991c862a1e27a0d172d294918cab89d91a00f6de33858b67f07a2d1279d3b343a711b20a2067b631fbe7908a60b613f22a475e95bcb90c0ef1604b5
SHA512 (splitindex.doc.tar.xz) = 948194ad2eca2a388e7c4d401ab81b8519bcb93a94fb608a9e6a09753785f45d632900495e43d170354981da130ca4d8e2a77be46594de6db35c07179d1441bb
SHA512 (splitindex.tar.xz) = 56389aeb34e2c4a3d4aaa7e2e1e9abc6d1c68b7dda2c5a02c171df56341f7244083fb409b207dd0c9d8c936d1b1f6b96aaa66e78095e696d1aa02ce02475fb25
SHA512 (srcredact.doc.tar.xz) = fbd5c700002f3d7c72bb127b24f13b4017a17b69eba9897e1a84d65fbb5123f36c56c06a8ab35fcdde7e4c13731cc5d92f2f3a92734bf9c4e77fb6af14622a16
SHA512 (srcredact.tar.xz) = 8f3c8ab3ddce951dd59dfe6a7ccc60be6023b5a33a780f7a2c9022496615ec1ad0229c325bd0af8ac3a2400fd548f3f46fe4542ff4ac220d545c3419bd753bc3
SHA512 (sty2dtx.doc.tar.xz) = 0323a7d039fdd1a3f623418c5294a5e1193da458b5a3d955c0a20551fe8928fa81461d76de1c9b0c1b5020156bc1e56a571439fcb83241e1f5ffeba741988b10
SHA512 (sty2dtx.tar.xz) = fdddd11a11cc0361cb8efc9eb0de8a56ddaeb81d1894b6f614c5998f27d9867874bedb5bcf4244ad09c025c729588b51bb6ddd482e5777749fe299af3ca8c736
SHA512 (svn-multi.doc.tar.xz) = 4663b47c515f77230f5f61c9095782dd9a773fe57919be969dcbe9855dba3a7d1588d79f5616602814cf596f9f37d424732218b1c8dc9299b4498f3711a2bc15
SHA512 (svn-multi.tar.xz) = 98884196bd167362478b5b7c267edf632d18ce17e2e537d77f80d4bdd69cb20ae0f302987c596fa2c41504183ea3fc9f22369f552a462f0f75f27160c301fc15
SHA512 (synctex.doc.tar.xz) = 1a2ae03662a4104f1b2923c9ddb5f63c3040f2f646128cf4987865ff72d367852580a15d01b179a14e9dce4efbab946ef78ee7766ca98d99021d0adc7cbc36be
SHA512 (synctex.tar.xz) = eae2831ed924acfc5a13aa58c4b48b238c598fa16792bee747f43cae92795fa1c6296728f90c318ea34c157e5d5374f8dae193cb05c0380fea4c1d09eccf27b8
SHA512 (tetex.doc.tar.xz) = 313b282f6b1ee9e9df8062169cd234059e9bb3968aeb35dc8b6e52d6d084279417f60d3e4537a429372133e861a93cca2b0c9d9ce7b76868ff1b29e84b2159d4
SHA512 (tetex.tar.xz) = ff35422f9ee2d4606e6a4fa0855848d01492d9db15c73632b8234bcf57e065e98b2abd3b10a87e1647c1e10ad7db4ff4dd8e7ad6f95d44dfcf10083220a10599
SHA512 (tex4ebook.doc.tar.xz) = f0593db9ec81c1f8d561ca8bcd3a31e7aceaf37c97946d16db9072b5ca449fc1983601620187fd9ce3ec6175e20446da4bb588e3715e19c3322cb66990bd3423
SHA512 (tex4ebook.tar.xz) = 5e2743d928ba2198df053f485f8f578b49666473be99d7245b211c21433526159e64c3c8b54e6c3399f2a7a73970211a8fd9a0f82cbb8237d560d1790cf5fe64
SHA512 (tex4ht.doc.tar.xz) = 7f9f4ab457fb52d587bf222e96a7a47127bb5edb2600d4983542bf5856c1b3b194fe056491484054770991b68f1960d6a64e7e6e6594d9d269b58e6f97a14906
SHA512 (tex4ht.tar.xz) = 7a12ba26ff14cb788d8c692946e6b80f9ad9f323a3e27add299116ad0f20b79d4796d5d968abd2a1f561c3285eb51d35a8e986cc07cb08fc4db682742e3004a6
SHA512 (texconfig.doc.tar.xz) = a203a1e0b456ace251da9ef0b0d0e770dc3995778d0b974d535b04e529bbefb130811fdc1bba4b056bd9b76c27d8af299260f9fb99000e7a175a8a07be7d8221
SHA512 (texconfig.tar.xz) = 5473622487ae5b5f6bd430bc3b75ee7c1fdd646f74442fbcb9d4a943f27e013a21bb05a35a724efe4dd330bca3572dc6024be031072aa2d9ab8c9d4e75ea065c
SHA512 (texcount.doc.tar.xz) = 67cb829c6c49876852faee78f2eaff58b57c699b666abeec62d562e432080ee664b08cf861ff15c8560b6c1887d23dae490283ef9f79f19a66cce4559d7ca6d1
SHA512 (texcount.tar.xz) = c539159161347e10b4abff9aaa43efe6c514f96c977bdc759b7921399191b47791789fcd1d2850281db51434d55cf767d790e7754c9b8f3119f3f14b57706468
SHA512 (texdef.doc.tar.xz) = 2ca66b3470433472c2a49a34477d94703d39170ade11e502c2fbcec85f9f280773cf3ad29cce78a37486d1d5a79e89e1809d10685f464d3e6ddc0893c29b2dd8
SHA512 (texdef.tar.xz) = 478041a0592c363c94ece20d2080aaa607421109795a4d24fe9c5a8c29bd36aca354566e77f49e9ef5522e531aef5c98ef9832b64e4cde5944392d5911ec40fb
SHA512 (texdiff.doc.tar.xz) = b67ecf676c13b75658d7763caa80bc1c14841d59ba5149ec4a9bbc61e07ba8104c43e6c235a3b6d19ed6bde924dd505b7a002325961f75af60037a7883c018bb
SHA512 (texdiff.tar.xz) = 1247b8fb5c2f6a66a18c67728430aba6935831b555de1bf1880f41b0eb23977b73b0f9a1bd99b20852dd0742616566680074902391aa405fb7c5f8aed931fec1
SHA512 (texdirflatten.doc.tar.xz) = 8c7d8978e6a5ba849a3545808a7c1d2ee79699e28ded36f0848650c10d35f352a9e670771000d30e76c9c6276993d41b229e1e815301f6dc4271ccc68ec7930f
SHA512 (texdirflatten.tar.xz) = 02074fc5db80d66a3668b175b2c899c287fb968bd64849e66fe0868df734fb353019dc7bf0c75123fef6e52189c170c25398841d824d1b7a4b86b587822e693c
SHA512 (texdoc.doc.tar.xz) = 705a4ba45236f42c6171523c54fc1fef413366eff5c04bc668051f2aafbd1c622ca4337c1c106ad843fd6d8617fcfa78ca17f1f88e5444563934e5941950816c
SHA512 (tex.doc.tar.xz) = 65052abdd321a432993b354b2ed55aaad985aed668ba04accced298e7042bd1df6ae8ed271e42240e4a8616661da83eb02b8bf65d123a1e46f6b2fe761df24dd
SHA512 (texdoc.tar.xz) = f20124d5e65956d568b96efa1c58214d6ff664477e9525610f07b48898d2a09d55c39276571a7d2954c09bb6732abf5a0067c430d4f0f3ff9355f2d57fab22cd
SHA512 (texfot.doc.tar.xz) = 7aaa15850c96eab3396f7acd311f1ece887f1da60fc2e09c967d82381191b0e5308db58413d8db2557d78506f420a3bd92233ea3201fdfc99cb50310235b8974
SHA512 (texfot.tar.xz) = 241760929a0ca3e18801ca3e0481f08cc2de07600ca09fd7b150585fc5599f1aff0eaec6f051d2b03ed111990b1eedf6ff853a0780564499b4805bdcdf611c0b
SHA512 (texlive-20170520-source.tar.xz) = 9e7f4b50ac812143ecffa676ff0a2943f6069a32e6bf74e7debdf2c60dbeb8772b30a33981c9114b568e5cee8d093e3e16761975d51e010a47512a23c2bb035c
SHA512 (texlive-en.doc.tar.xz) = cecae692a9acc3c84f59168356164a2b3d4553bc7b26e0fedffd7501a1e9194e2a036485a4feaac86c24be688dc47c8ef431feda0864cc2b66b59306687c6e17
SHA512 (texlive.infra.doc.tar.xz) = 3c4176d79e8af017fd311c88cdf1d47d3478d9faad9663a541b1977f5eed693ef98b59df0e02d19c04532ea258b0ec2d0c9537ac600e7c27f605870d2445de64
SHA512 (texlive.infra.tar.xz) = 921f1e34c23919911371c464e6de3f5c59b2e011e12483442976682672218c8d99fa395f1edc6eb8aa6c88575cd650321e7a5d06eeb2a8a95a1e954d70d24bc0
SHA512 (texlive-licenses.tar.xz) = 83fbc56f1795ca3771e901230d38063cb53d0eefd8afc04f16ec2044aa93db0cffff2d97addbf7e2c6623cb468878320e0051cc2525f941830da6e3f628ef4bd
SHA512 (texliveonfly.doc.tar.xz) = 4c4bf341425cd9867aded56a1cfb6b063d9b96c99283744fb157b7229107f6697ab6cb269e88333b82a9ef0bc6b8797dfedfc79c60e8c5e1e471b556b28d6e1b
SHA512 (texliveonfly.tar.xz) = dd18460601a387dc43587a81e6e2f1b3282c84340a1c1e89644eb22718f4d911f9fe651707645237cf74b07d9b05b8c5cb54741698141e0f3cffd6d184289612
SHA512 (texlive-scripts.doc.tar.xz) = d0ee38c85c960c6879f264520021404560269935d35b1a8ada85a1c863a5441dd9ea684ccc7581395e8d8f4e5d90cd764c8dc577607751145f445a27d7c6af09
SHA512 (texlive-scripts.tar.xz) = d687a200bf7c779a34ef2090182632a019aecc4db2b22d9b0918df013657802b9c5f7f2f80676b93a29c987ab40cca8329d04c90d96736683a83b05defbedf7b
SHA512 (texloganalyser.doc.tar.xz) = 922b73d9948fb8a0c79d553d7ff96389172fc924ec03f400a9bdccaa288bb59163778b01cec5ac74df700bfafcaba3d961a22bfb9b025f47440ec4b718bd81e6
SHA512 (texloganalyser.tar.xz) = 0c8ed80e8475b9417e1294ded6aaf38f3bd8cc0107bbfa2aff473cfac67262feb4cf99026574c4d21b961a8726b7d5c8fc712e913688b46b3f6fbe8e3b212c42
SHA512 (texosquery.doc.tar.xz) = 416c08998850d5c290739eafdc72f61b0f460a7dad7d1ba9e602c5c159e18d81ddd9d241a82706bef2712df5e28490043cc022aa42a01d31d108d28005223658
SHA512 (texosquery.tar.xz) = 21eb713120c491c210290db740e127e2191ff9ce654fbb6963eb868f87d319c1c1ac74200ca36925d7e7c531807a13896a1b6d01ce38ecc00ec1c264873834db
SHA512 (texsis.doc.tar.xz) = 37b6265b4da7a73bf0e86fc309bd0a4d67785d699ccd6dcde431da1c1713ba4f46c60e6ad6b3556f7444d05b580e2a39ed17d04013ace3086bd87d2e789fc2b3
SHA512 (texsis.tar.xz) = 565f63bd05c3e65857c2d0b0ef2a73c8dba48ad8f72698cdf8c76f915be8fee0b580e3ec11852033db1236b4c6153928b8e0860844e2bdb2f712bf33923b66ef
SHA512 (tex.tar.xz) = 40c1046a422acdfceba108c2243e4686aa9ab332820d8a4ce74ebee770fdea4bec397f1e56e769f384dba04126c89a3db2d33b10c90a45e66ffe21ab9190aa68
SHA512 (texware.doc.tar.xz) = 2469ac17b29ea1414daf93e0bbb20fdf981a658e89a2d3abad0e11e919a4977ee73cb7535401e26250484cf13ea34393d99f32370b5d9ac3d6dd4bfe6203fdf9
SHA512 (texware.tar.xz) = b210ba9c3492631bb63fd230b5c719e604724a66064a4fdd1cafbaa6a66e3727aa7634d856bf3c10fd8d49155a62c447d261e0181a46ae7d067ef8ebf39f2a7c
SHA512 (thumbpdf.doc.tar.xz) = df05b466cd64a45076cf97bcd7a80fdf6e4d13d90083b6a2700b9d38ba2f08a4dc16e31fd6235c14f1de1432b0238bf9c078d5bca23f6d0986d15e5739a3efb1
SHA512 (thumbpdf.tar.xz) = 347e8b52f210ced669162168b8efa59bbe243ee3d7549ad5019cd429265492679c8ca4a54e562218e890dba07192d01d2fc1f30cd23a5afbc2fa1acf1f2e55a4
SHA512 (tie.doc.tar.xz) = cd64337c124fed8cfc2a30c03bf7023ddb66909e2a279289f8f11a186a7ee565223709ed752cbab31fbe5089a0eac54f10a6f3eaa13a5393f3f57a6e6d313946
SHA512 (tie.tar.xz) = 91d008e9f9734c4b0eefd7d016395cf095602e3efad281c01ee502790b40ce357673dac432bdc2869f917e7a71e007df871524e993cbcbb581390b85a8287b24
SHA512 (tpic2pdftex.doc.tar.xz) = e08e33a9c04f32bf4dd5d1f3f9be95cd36cec5998c8dc1dba2799ee9ca9ac1e9326550ecc53500c98506c03cea4fb08a766eea88ba85482ed2bd6dc03b306708
SHA512 (tpic2pdftex.tar.xz) = ff542fc31ae85d199a72d5f6913c482ee9441b31d95a109a6a9a3dcfeae41aef85e80911b9e755f11cc700765f9b40527406bc36991a2280c4b09ec63d0e9bc5
SHA512 (ttfutils.doc.tar.xz) = c6a2663d6fdfa8841ba1b771cc763989d856ccd9e2d814ee1b98ca930f7d9acd61a4c00b70f4aa7a0012b8e783a2fa6ad98f9d70b9cba33d24dfa95b5ce02f56
SHA512 (ttfutils.tar.xz) = f278ef0763f06744946212a1287fe52dd890fa56326e4fb9d4caf9ee15712522a4a2ccafe3996dd6056c7bb6c22bd77541c23b24609741a86e46a1b158df1ab9
SHA512 (typeoutfileinfo.doc.tar.xz) = 277b08d5cdf7d6ebef2d03644c635c0a3ead2d18e037264a3505dd1c6a7c9c7bea60a7e81fd99648efa486158d573ebd58b10b62014b5194c84386f4ab6788de
SHA512 (typeoutfileinfo.tar.xz) = 826932569691b88e7212eba3b0582f495a0fcf1355594e6b1243ea83880eb6241094748fd7e4419219e9392a8d093f5249250ba3cacc8a9df861e3732befa5e8
SHA512 (ulqda.doc.tar.xz) = 4bf3c7df0c6b5e46deba426f0035c7b79b2a0c563a3b4078f883aa5387622af01c7d084c2f0c962951818096b15c588b4f607e1801ff4e8f6b6086f8c253f401
SHA512 (ulqda.tar.xz) = 5a10ba524da981b8646447cf188ca6a28035d263825b912124729ee7174367e481066008bc147efce11d9c43744dc29f5d3ec518ba80047788e32d24979c733c
SHA512 (uplatex.doc.tar.xz) = 588b69897940fd4d57752580e0c558e82a26d2c90717fd06a0ada1d38612f0c04f397a7ff1dc3914d9e4d12e35df1f647d73fd0485a58586cc2745fc7dea68e4
SHA512 (uptex.doc.tar.xz) = b30cadda6a2190de0fa2a64a578b286e021795f66221df61c1f3a23ebd513f94f1c687d89eb7d9d3b58e69311b4356a6c0bd55e1f4683bcdbbf0a0a82b3d68b9
SHA512 (urlbst.doc.tar.xz) = 02876e2d1527bb368af941133d5ff7ca5beef914758524b098e0b747d42ca0be10248c8cda91f66e3a6ad068e74c3bc4d4cf601bc499f988f5d7052a22ed365b
SHA512 (urlbst.tar.xz) = 2ecb34025d8f321ebaf1d0cf9efa2b6a26b8b5d06d89f024defdc6c9cf9ed876fecd0b8799abd8ccf866d1b526d6f612dd1fdd643de6023128a613bbf8f57037
SHA512 (velthuis.doc.tar.xz) = 18ea2180ac1968dc15b110c940f0143dcf262ced2365ba3a7518e569f2e350a304b5fc927f5067db9da11fb726c1a411044fa0f9783f31abb0b3ffd96251b77d
SHA512 (velthuis.tar.xz) = 85e692d1a5f5935f48587ab5133b0ebfcf119b2c3f609a90c41f15782f9314432ef8e00bde38ef31a0116758417f0385a3b3969ad3cb1fd61023c8c963e355d6
SHA512 (vlna.doc.tar.xz) = 237ae5a7a0b2081949ddbdec246fe90a45ff5a63743f53a4f30be08b986c03cfc3d5c43fe61f2f60a2858b4019f736051b120a9a4e3b3303e8c9ec32c92460d6
SHA512 (vpe.doc.tar.xz) = cf494e0a5540ddf35b55e8ace82f88ad6db9c5d538b598b8d0f32cef6955ee6f0806860bb62bf327282a230a8ab02d43178a782c76ae43ec83f9c55448984353
SHA512 (vpe.tar.xz) = 3ced079e1acee1f7194d1256c18ac8acee994f23c29dc08a1466bd3b4e2c2cbd54df2af73165309cdd058e596edf3fd4f177f49fa0cc3faf92c6d1ea11b3d4e6
SHA512 (web.doc.tar.xz) = 103a8b59fc5f87303376e315702d7e92ca0fb84cbac84f335c086725e6c41c96aa55f26aa310acf50938d1a578a9b9f562f4bf0645da7230027cc61983fa1e21
SHA512 (web.tar.xz) = d3c73efb50041dbff553a0c54cc6d68f185e93f76bae13f3d665b1955e54c32303d8cd8e80bb7ac17fe7781f4ce3032d3acbcf4ec75e978cfdebcd8609d77b48
SHA512 (xdvi.doc.tar.xz) = 503bcbfa9c8f0a2e03ea1f9511b7e525e57b126adb65ce943f7a2ce7e8c438d0f15746b3a3cc610bf8435bbb20c4ddb028a2ac13579990a92766fb174876c6ef
SHA512 (xdvi.tar.xz) = 07b09c417c592f43e17c3463376009994c42b1cbf31eaff850d0b67c0bccac1447ba8c4256e3a25bc554dc69f39b6839f9345e0c3631a21c739c71b51994db99
SHA512 (xetex.doc.tar.xz) = 4a1c67044da579df093b4aeeb07c584a0d59a2f9278f68443b269b549132ffa9b8a59194c01121bc44a61b302425d478076d9f1b375e06f23f1fbce3ca2b64c3
SHA512 (xetex.tar.xz) = df47a70815c46627735e9d7b0ee82f00e402ea0bf8ba346dd8fb592ccd2b88611f9a90306a237a8f146791a576bc302cc184ff716c816054df8c9cc8f6d0eb24
SHA512 (xindy.doc.tar.xz) = 136ce6181156a74106991ec7b8ce99fbbd2abba11976a951bf7bfcc7eee758fe14f12de66f8853e08dfd1e423acff9cca537899c6dd2b43190a2c3b7e3a6bf9d
SHA512 (xindy.tar.xz) = 0caec7677fa78816a427a0eb1fb7f89570711df0904da308ef1455ac044e61dca9bac89320aa453dce1a027d34e6bd95b5314e6a0ce20726c8ced6c2e26e2e74
SHA512 (xmltex.doc.tar.xz) = 48a0839ea9becb08395555e4399cd27641cb1d51091be4d779bf26ac2f82329107f5e747c587e3443dfabacdae831aaef0a462f63ffe180dc34759a147a4a7a1
SHA512 (xmltex.tar.xz) = 183c634b6f123885aaff1987003afb6e246a0604080b59de5e21b21aa234f7e1269e32249a3c03932312d0184c6b9d573e94018d8e65c26d8d584af2fdac475f
SHA512 (yplan.doc.tar.xz) = 379340ff1c616b289248814994e8aa207187ec170fb590be9ea7e5bc1352de4a70ba40032383e6dea55445625007033e6f1e0702086ecd112e42c2cf8a6eb991
SHA512 (yplan.tar.xz) = 03e65ecfa1acf545fee2b1d24cd903d675a80e6632a6ceeb5c996f62eaf51cdeb01848891f571f296f0e17847de476c5944a3aa271d4e9282546dcf63c1c5742
SHA512 (a2ping.doc.tar.xz) = 7a7b6474819b2715c131485472963b463163378d4ae4ac586f17a130b3327c6dda1f4132f4f2379388a8a493fb2374abfff6b7ad87513cbe9d04993572692aeb
SHA512 (a2ping.tar.xz) = 4008c18f93a7d378c8da20bad7c1fdf19c3e6befccdcc804326168854fcd35bb89fe414b30a26dbddeaf81a11c0d404bf5b5459bd3d8adce49dc30279e3bd420
SHA512 (accfonts.doc.tar.xz) = 24b19688008b875890a397e2250277f81be1b77c00f95a9a2d40a257c0dc6f4c8adfc07e594f3873e60e1bfbcfeba786e45e9e63eb632ca92b7c935f74b3049e
SHA512 (accfonts.tar.xz) = f70105569c5b8ed83c103e423d29367702a5330d57f743a640ef68fc6a290b246e8f514907d63d6c7f203c12ab3eeb0cc64a45fe5c0379f10ccf1c8002007a47
SHA512 (adhocfilelist.doc.tar.xz) = 14bde143bf3ffa3f2b972f93544089e4c0314c7696e1d711719549b7e831278c66fee0676665fe6eaaac744689d613dce159e4eee2e3f9c24dbbe602794fc62e
SHA512 (adhocfilelist.tar.xz) = 57436dae1489c0f614c4b002f83d34a711398a762ac532b44b1d91a51d068462aaedb5b034923629f7630f039988452eb833d1e98af389c788091517bbee8954
SHA512 (attachfile2.doc.tar.xz) = 3033a58688a822f74712d072be3251c58b96e9e370859effc8a4ff7f8b9db98906c471a6472b7b9ab4b0d9725a9b53918e8b65d5bdbbed56e737addbe582737f
SHA512 (attachfile2.tar.xz) = 57ef4d0c2de0cb854bb91b14a55921851a4abdd60221589f0655afc64a01d4bc672380fd572e0d451b6bac7ffd66f407b4ffab5f0fa1092dc8fcd809c81b23bc
SHA512 (authorindex.doc.tar.xz) = a6c48d89cfd854d8acae47e318bc3951f8e81434d9a81901c8a7b7f1c25188afb013b94780ceb201e81b5d10efb7f5c24f5b5e4c8d8379aba390431707bc4d55
SHA512 (authorindex.tar.xz) = 75e35298e4839f3975824624c7367504a26dafdf4b8e1d5238e2575c821f652282cd9a6e58fb4296b2c0345ff104dbd2281135776718fe4d2ecb76110946ab9f
SHA512 (autosp.doc.tar.xz) = 2905669b9e2b61749cb7b1eaa02be889c4e8d8adbd78b126e7ee6d894f24f623c888a24abac1d163f3332c5cfa9cd1f64d0de95200350b88a7f47faeacb841a6
SHA512 (axodraw2.doc.tar.xz) = 927e42358d543f46ccabb8184e35b6f0a5848783ce9eea09e6c780fc83955d5f37b998254153b1954cf1a59be6cfe573a6c79c2c328ab2a22a6e5f6764a50fa1
SHA512 (axodraw2.tar.xz) = bc9923a9614ef9d7bece20e682729347dc942470a927b40736d6868f02867408b5fba51b117edd8745f96df23b9c1e93792d321291db13b7fdfdae0ee32bb7fd
SHA512 (bibexport.doc.tar.xz) = ec96364b4a9f7ab446c6b0104646e82cab1c9015e0d3dfac6a795e58e02dd3920737207d16089c5470ac32f76a61be949efa6899ca935322c0062f71f3477b16
SHA512 (bibexport.tar.xz) = 75f9cb374e0aee1b049e977e3ee1a855ae8f908a6c6191589ce9d9fc28a8358fedf93faa416b1020e157a8ec7a3980673d00e052a100c88724e86050ea5eb487
SHA512 (cachepic.doc.tar.xz) = 93108475f74b2356cea79a8403729df7c24e95871680b0b53f9316a7b158aa973ce108632a121198459352968bfdfd79f265d4aa301ecd00ce55cf56db5f976c
SHA512 (cachepic.tar.xz) = a0405befc4ed9217cedc4abc78c355b869bb803fa4be32245198ba4aa8151884ace023b3465db3b4757c923d0425fd1d186e25facd7c29d05d5072668a9f0e3d
SHA512 (checklistings.doc.tar.xz) = 3f8d6eb67f305fa5e03bb625a4034ffe616a6c0223774688463884df99c337c1e5bdd76bbfa3b9428ec4812ec72388979c4252ba7407ae8b79e3de7cfacbeb01
SHA512 (checklistings.tar.xz) = 599ed476321a825bea61fbdd468670cadcdb11249a4a9324fc88339a9445ceeced3680459dc2d27c2e6263cd207ffc0ce3b60b325d31072922bf4644478cf544
SHA512 (chklref.doc.tar.xz) = 5aeb13824c1781feefe94215f3efce15c212e0d38f9e0d5fb393e96c2159ba43f165c600cd64ee9d8c42c0a4f0db6c2e462ee85a93993965bad0420b6b662ef6
SHA512 (chklref.tar.xz) = 12f5e950ae439d0efd3f625572e8b81d993485a1efd71dc04c078cb1dc9b76650de3c424d7a6c60ebc5ccb5d29f37ed04c477ea1306acf4c5f4fccbd95e18985
SHA512 (cjk-gs-integrate.doc.tar.xz) = c1165f2ecd08b279cd0d0b028682eecbb3953659426a1885bbe5aab9838a90107c576a3b9bf80b0d54dbe3fc438c8af8a8c82f5faf79052c37d2c5e85ea9ae42
SHA512 (cjk-gs-integrate.tar.xz) = 376a1b287955a801cb223c761fc9bee8af0f587f27f8c3e6cb32ef009fa575fdaf54f5e3847d7b4ca414e3eb4d58d3611ee2194736dcfafe8afb2dd6230c1999
SHA512 (cjkutils.tar.xz) = 36b0d0ef4bae2a9e5f2238c5c9aa125eabfca509462b65a159f66cbafc690939e16760a86e7e7dcce22ffda2f301c039059cdff1af8ed862017f18552e13e728
SHA512 (clojure-pamphlet.doc.tar.xz) = 02ab33398a87a47c76fd34df9eccde47b60b028b3a659294968b35beaead85908d958ccd94b8f706f6f2173c9af3d7f7382c510134dabde4bfab9be20f85998d
SHA512 (clojure-pamphlet.tar.xz) = 67047118c74e1d19426d99bd3a716d6076d977156f1e686bbd991d6b1cba464897f662e950c86218910b485300d40a5cb80d8d43868fb7920cc99a6d7f1c5735
SHA512 (cluttex.doc.tar.xz) = c8e395e087f9ca511db96b96dee3de4a51fdfc9374ddaf40703db0980724000f1987298dc8253d0c5a8d7c97e46cc2a8165b7cad6560fa560213cd5ce85205de
SHA512 (cluttex.tar.xz) = 35c8ec3711963131bb50fe67ef95705a1d40a6dfd831a33d863bde16f16e66086e204725154d0deaed13e94fdc28dd59497561673542151c1574f7fe87f516f9
SHA512 (convbkmk.doc.tar.xz) = 937d436cb9387eac601883ced516fa40f60e606bb4bae0be62e1ded2a31754a1d00461a34ad533cce1cc48f4d11e880233eaac128d80841e0b22f18801e86506
SHA512 (convbkmk.tar.xz) = 01bb9621459bac7eecc99b1d9aa59de420ba805b2e0ecdb2a89f5c86fa4a3021d957b4ddc69617ea406e77865d68e40c657979c488fc51f4676d084cfe6181cd
SHA512 (csplain.tar.xz) = c4dbe1721fc2281cba7e426f6c75d35671cfeddf77a947f147a33c651090bc90528583445736bc2933c2d3986424e1b3ac4984e93cfae5f0ad1cfe41902f63cb
SHA512 (ctanify.doc.tar.xz) = f9b636cb41b126809d808c167410a37052b1c6c385fe4eb8df3b819c0cf2cac2c7c1c74d7ea15d2916c1cbc563e078845e451000e3a08cd9a8e0696a342b22ac
SHA512 (ctanify.tar.xz) = 6774b151bb0fb052d41d8447c7e8d378d7f31b0a5aea5f2f00b93669b8c2f629f479ae21d40480fd62f468d866cbe0c6f0dedd8a0248f8d83cd1039131849439
SHA512 (ctan-o-mat.doc.tar.xz) = 423efc3f2f850c5a9bcbe787edb8155ef76e56ce5e3a1ba3332bb465b8239616bd1fcff2e8a58db6f5ce9d5191ae3209a5451f746250a3b081fe9b35d024eebd
SHA512 (ctan-o-mat.tar.xz) = a995dfc6d79ba77fe673aa501f28eaf9f057c34501fa032423569317e5a4eed048c3375d806eafacedefec02e91bcb587fa6bfb8c0ff980395bb877b2ce88c4c
SHA512 (ctanupload.doc.tar.xz) = 9e027f7ce08041be7668a7a404fad6b6c7cfc71e581ad1216956d0b53c379d204bd84d2d55d186c74f784df8911770b96f934775f44f7141a5f1b9b5e773cb7a
SHA512 (ctanupload.tar.xz) = 4464bdfbf72318b24abcd88e1c25dae5925a96e867c694f3f02a594ed7b8b24cffdcdb345f0054e200a6af63f88b591ff84058af0adfb4a1b3feff2a057d9d72
SHA512 (de-macro.doc.tar.xz) = 079dfa97d55a2989e300856e7877591bd041b239454a0a0f72ed20e329fe2f9ebbbff22497eec1b622e2679316242a845eacab5716e01e74c5c810fb357c1636
SHA512 (de-macro.tar.xz) = 8952325be56b193440dd24f0e6847ed1a9bea4cf8aed86afc7b7ff0a0f6d61130320834e679d55a020d8114d555733a92e645eea8fa1d3afabeb8cac5ef097ea
SHA512 (diadia.doc.tar.xz) = e7487bb47fbe8aee714304150c00866780782a9ad32bf6ccbb02799aeb251345ce1cf042e8b4d7b4011083a3be2fe3b16b78f25a4a4206d173ac1384716592ab
SHA512 (diadia.tar.xz) = 55a246d4e3ab86d6300210d830ce464a935bb83c9ffd29b5387f0a56f5c82d4c5a71cf107f78ffe0cde07f17897e2f949acf1fe70da9da7c7992b330a07b1c68
SHA512 (dosepsbin.doc.tar.xz) = b9edce9984698db8e50f9183f89b025cfa89dca8a8725054af80f379c88ff1d2b02cef8f3d5f37ee5b8585a59d1a4d0f0ee0e541a7784f3f3f4e382d78e6a47e
SHA512 (dosepsbin.tar.xz) = 7f31d47d60b0bf151cd6e6516e29a8414c6344657c133e726e6e8dfe23818995b10b9a2898b1801c4bcb9219969a8af1d2725b75df514ffb119730b3e49008f1
SHA512 (dtl.doc.tar.xz) = 476723cb714863405daaa5fdc35557ffe7cb1149735272cfec2f14473ee65b93da90648abf73b4cf09799b1595569513f3735a07173b50eb6db405d526d40660
SHA512 (dtl.tar.xz) = c2b7f3ab778c01979b158c335e4bff7bbb677fe8c5bc3202a5f43c747119dbc4a7e348c5fbb0bf2a487a49430939fae6abc855392da92ba65441b87e08585189
SHA512 (dtxgen.doc.tar.xz) = f666a2b5d3cb32d43a23cc3edcd92bfb727d500a8c439b4b78bae89ac73c317adac9786e4702e78b5b4861b76489ff7af5cfd115a80b96cd6298c65412d56a50
SHA512 (dtxgen.tar.xz) = b197684c1e941a64b606b472fb9e0f1ed4f5d0b0db2df59202712c0e3f3b3993106b8d493d707c4875e90dacd9dc7d12bba784ef7c8d04984a38708073b1b92d
SHA512 (dviinfox.doc.tar.xz) = 4da7f09620beb3aa7e5a572f31c1d53466607ec0f6401b687ac1da624ea435f0efb3e0e2074252f49a720cb6d53412658a8a45dcba5553315fc9423233755dbe
SHA512 (dviinfox.tar.xz) = d366c28a88f488418405944e299b8e8c681a2bfbe1fb8d37847d89920ab41d3103d52072c7455ecec2451702cbbea02971ac6f1e1d609bde9a2f5e8abd345ef5
SHA512 (ebong.doc.tar.xz) = 22d20c89883c6cbb95f3fbc3da3f4c5526c9c22b15ec35828bb03a1edf068573de0b35187a893c8356b50fd59c93ce4231f02ac4f15de4071e6ced73b9e44a57
SHA512 (ebong.tar.xz) = 2553e46f91021de4fc9eda99ff45f8efe9b20b0663912b4339b22247d1bf7125f9be398661fe24fa2e3fae6a220025d47b05f4680601f7b4842d1111a6128d8c
SHA512 (exceltex.doc.tar.xz) = a6c4ae60f2922af773f67494c30407b5b6ead39def9253b4710940774e619496a3c242f7e9bcc8733fc733234679bb2b01c6f4571e30dca16c8eb15ad8d6d01c
SHA512 (exceltex.tar.xz) = ef8495b4ef6937af022951044652ea1fb1dcd3f65961408e84a52f9053db8f4fde6703f18833ee9cd002bc058f01813ddf765f575200211563d6e16a956d3613
SHA512 (fig4latex.doc.tar.xz) = c05d3c08b916785b765694e68b8f7cd96c3c359325e8f84166102beb4caeada7490ed24ad0b4f52a66cb822000f8b4d75d1013b93055898e88e82d7f23d5095a
SHA512 (fig4latex.tar.xz) = 3f01676ea85d64e09376da4481794e1537b9e19c0ff0bac77c022b10b5d49c39d789de6e4f0356b4ea4b23326f9ef320f4b08035bc04a827951cbf44ed7c6228
SHA512 (findhyph.doc.tar.xz) = 97f3fa22fe490d21bc9e5ce5ea0b23ff25ab9afd9c5dbf6e8d78b24fd306ddc132c5ba7ca7ea7e3d7aaeb48993c7968b0c02ae0b765416a939d84b53171f4179
SHA512 (findhyph.tar.xz) = aea6305dc0d9b31367638078a7958933468e761ef4cf47a1c44d9fd5ab2e25f7af22273c4631946a90edc9b51947c2e56b3d4b74c8c59f0a79250c2edf5bc137
SHA512 (fontinst.doc.tar.xz) = 23c569bdd6f12dd4cd0b5673ed9efde2c7c7988d86bf2f89409bc22c80f64ea80ca6824745b50ea3ef30f70e4bd7c8d7005a9e05e511c1e917a12630f4b4bdb2
SHA512 (fontinst.tar.xz) = c3668f79f4b926090188386044fd68b0f13913168cdcb2aa23ccfd3aead488dec03e79133669bac3d2b719fdd2d5ef735fd46cbb27fd26fe560368f9e0cda05d
SHA512 (fragmaster.doc.tar.xz) = 61f0bd7dab46bfb91b634006217f01648007cbce3c9187b0811a5cc1755ec19654da94b47866ad9873fd57629f1561d1cc46bf3a4d62db618502aa0e67500637
SHA512 (fragmaster.tar.xz) = dc5d80aa4bab7a0a66258face6cf8222d03b12ea492f7cf568ef815a6d5950a8a2b36c7403ab466141f49cb8faedfbb33146820b88da17d8b8fa18a2b16235e4
SHA512 (getmap.doc.tar.xz) = bb55c60ec958182aaaa6dfc292a06fbad8a0ebdcb56a6799f1358ad2009bcb72b06611672219c5e9bd6d7cb4db76c4fa030be5e06f9bb38d04fa6744f8bca330
SHA512 (getmap.tar.xz) = e5287152442820e20087b45c50a750af621e71e2175cd6790231d81e1f338e50aa75f29d9fbc31c2e5802229c8f15c4e0c7769d0513f1d1b0bafc96a8a3b120f
SHA512 (git-latexdiff.doc.tar.xz) = bfda354f808c1f94dfac207d1526409a160b89292e44541930dac34383e3ffec9ce63d04db041ea5ac529e1e01fdc80c4c64cd43e8cdc14aac974094732d6fe8
SHA512 (git-latexdiff.tar.xz) = 74077b3dd1a91a734af6d668b309f804dc58a282393d88d8d5d74a5e6fc73c197e49b462369f829cc7151e20aaf8085c0587428ed61ce7957a1ef173d92c5481
SHA512 (glyphlist.tar.xz) = c050808623d162ffbfba8742c9aee6c92555717eb3ed0a0cfb0e3cd6696c4f6d940aa494582011e6d0becc3c5572ddccac2598ac8d521b58a323768272f9125a
SHA512 (gregoriotex.doc.tar.xz) = 67f018fe0eb9568b0ecc6977de8eb8fc1b0b9503372e2f674a97723c537d8a8fb4f48d48b95ee8979e4d4490d3725cf4a1411ab9d7da2ea14f72d0dad0fddd95
SHA512 (gregoriotex.tar.xz) = 00dcd5bc7c12374a15d778cb903715036bd29a7a07522446cb5a5cb14509956db71df518d97e44d1e89366402281c26b96eaf39cc9f97d624ecb40107eae3db4
SHA512 (gsftopk.doc.tar.xz) = 0a597e2908438fc00fc2bafa7ec635a82b70aad9d7f7e86851a654c0b72b719b8c550be0c20ecf6c8d96627863a48e6a387156ad2c7e71d1e296dd4937d60805
SHA512 (gsftopk.tar.xz) = cb9aebd7428d10b627d80ea40d297f3e6de006859c7dd713478ff193458494f90017ecd0737376ac1f47638b059e02e8a46ea53a7c56b8561af75f770e214413
SHA512 (installfont.doc.tar.xz) = 2b61c4b229e0c4ec89c591075e52bcf8c150f5f9584bff94f81ec1f229940dafef11d6b6f84dd086692cbd99e6616685533d4313ef5bc48c56a7494fef3583b7
SHA512 (installfont.tar.xz) = cd5133b93c5daabaa0ea13649f3d34c28f9af9f92db54917e64cafca5f5e7fe5169d87e36783036850ccde0002d34860eceaea528ad06e21f08141106e6599ae
SHA512 (jfmutil.doc.tar.xz) = 045b74024de9798fd7c74442404dba0610a94f66b60455d84fc33bfe56e8612b014fbd83cfa3edfb0c3a8acb31c0dece69ebefb58294b2d271dc1dc2e95d094f
SHA512 (jfmutil.tar.xz) = 11f0ee88997b197ccb4cf249a92f90ecd08227b0086861b59752c2e17fafb1e1fec7a1cfc701d5df91497d4cb9e61d13f892d776ded07c34d7dab09a2a65eed4
SHA512 (ketcindy.doc.tar.xz) = 1704411b3e7c41b6318ff6f8da56007dbf1bec67bb495d25364d6274d9b8acf234430081c22bab6ad13ffd0ea47586e6e24c9f27da8a97a309e2128ec74f89e9
SHA512 (ketcindy.tar.xz) = da33a0bdc989fcb6f4521d23e5d44bae70d608ed8ac10f05d6962a252e99bbd80380afa2cbe9e02b9c652b044dfff79218f951144da6ce55f8a53033c11ff346
SHA512 (kotex-utils.doc.tar.xz) = a46c5d09d119fa2fe8b9acea87a37776536e3216b776af6b7037fc5b0a522af5c1a58baf081e60f06c9a4054e8ac2372458c276c779038a030dc92efdfa3aef6
SHA512 (kotex-utils.tar.xz) = 569e9677ef0f346e5a53f4cc84302a8ddf2b4ad85708f4ab8ba7d076ebf339ec60998a41fa92fa815167e9bfc37085ebfd921dd13a60b017a0574e4a5d205802
SHA512 (latexfileversion.doc.tar.xz) = b1df01f8bc7daed937cd20d1ab7cce443a3d1fbb58e04cb18f0c0b30ef0795c988cf51bf49ace2f960c173f6a95fe982ee9d29d7650dcde21784c788165094c1
SHA512 (latexfileversion.tar.xz) = 3a017b8a367864358370f0063957c301014df2aa039566ef33ae78dcf428235ccc2a88e19c917c940e186371e2c0b747887cb04e7cb78b9a04ac1720dbd94cf9
SHA512 (latex-git-log.doc.tar.xz) = 52bc94324c64caac9a5b25b49c9ea01b8560433d640646ee70830d27637482cf50da95bbb86db93006f2be4ab9f5f79fa144e4b631d62c05f0a11ab45e639cbf
SHA512 (latex-git-log.tar.xz) = 15994c6eb9ba1b194df270c68a3d74ab3db11974875ce192559182b2dbfa9b308d598056a3145f2cc2f6718865a5b140ccb95dea22a9e23edee527e5b86362ff
SHA512 (latex-papersize.doc.tar.xz) = 8ebddd884e3e533d06332f2d6f8657ed54c9c376b3de68c7e7652f3b2835ec6601f5326ea70dc830b645440f0bd9ba2281e4f71a847946bb595771c6a950c0a6
SHA512 (latex-papersize.tar.xz) = 00010f764235c6d9e4d6667c8c8b9f0ec6ae4b65afb53109f8179e0429d4b3787bd6b0985cd511f770cd74512483d1077e0f42136fe7ce1871984b372f2f2e54
SHA512 (lcdftypetools.doc.tar.xz) = 5a1dd1e2fd79351afc65d6786b24aebd9681a2b9e92755b44a836b47da5ceb1817f085483f306991a113dc0c26edfcd84839dec93bb46a003034536f31b31e5f
SHA512 (lilyglyphs.doc.tar.xz) = 4d9ac765c6a4b2b736d08569eeb6d0d8b168fe96563526264f2485d3d27a944a3e81c6144cd8f1d8cb5162d425b436fc688172db18b09610b3088df4ce868a27
SHA512 (lilyglyphs.tar.xz) = 2616757691d289e859fb2bc161c2a5b5312bb1cd824aa15854520e004a639e597f42515756b3cad383e4e33b3057a1579ff5c2ea7c39d8f9bf9d36e9c9b58b70
SHA512 (listbib.doc.tar.xz) = 0ec0970f591fd3a840c27730d41f0b817f631727c9c7219880b45209c21fe0d3aa616eb6eb94bc7016a9acabfe9c50846d872d3b36a104e1f4eb74dd003a16d3
SHA512 (listbib.tar.xz) = e71bda783acbb8ab6ccab3d8af535034caf0eea919bbd175685fe50585970b87613e0df5ed076967aca395cd8c7f1317e805fb1cf765897b03d6cc131d3d98b8
SHA512 (listings-ext.doc.tar.xz) = 82491f81dfc89950d085f7cc41dabdf7b895b23c8a69f80c1b4f4c420fe8f036ac181b56e3ab60496910d0f1165ce19b2f94c5e268dc1d59e352ab6747e3bee5
SHA512 (listings-ext.tar.xz) = c68752d0e7a1ffb7d08f153bf337849164d0287f20ff8f092635ad7083b2e5a6c487bcd9dff913dd029f4ea92750768d23583eed53a0c2d3bf012e4db059708c
SHA512 (lollipop.doc.tar.xz) = 206dee2be733e3ac04b5b259862b60fb3641fc44ea182da601ca54a010ff8e42f254dd01c03be7bcdd2a6258110c567a596ee82b4eb74d04ca8ed70e50cd6a86
SHA512 (lollipop.tar.xz) = 81557b83acfa4ad42dfa6fb1a65ea42bc33885da444ee23bc3c67a899df7b3ac2c19a1607305b5ec10b503980365c5d29ac3598339fc186a05417ea5bca60a78
SHA512 (ltxfileinfo.doc.tar.xz) = 0020ffc5874e0545c7ae4d1f6f9c0d5d598786444f4e98369e0c5fc872c5d63f235222594a9b0f5d2def5c3dcafc5ad660a4fd5a9e4551dd7717bc6ac06189d5
SHA512 (ltxfileinfo.tar.xz) = ca078af6b822747e9b337eb5694c1b019444e55f5f9f9dbdf59fa1a65c9445b19a62b0d610514c9231365017d3ea95ad9288a37b62b400c12df74c0c7f774a44
SHA512 (ltximg.doc.tar.xz) = 05f9639a0224c779276a3b7f19450c93e255c70680fd54292e1ad41b3c89aa15dc187d58a73475ed9a8f7279faa0f3a0ec15042e75a52c70d78416ec46255b44
SHA512 (ltximg.tar.xz) = 0c91f46da529823a96ef441ec88d6d3c077a8bd5997bc291f55012e0d227cc24f00081f846ae127a364cba26498a74f2769d401e6d5fe0057afdb2a76a875f4a
SHA512 (makedtx.doc.tar.xz) = 913f6f02ff478ab5edeed4792846ee6bc06d28c16fd3d7396d394f4a964d6f39a12c8163d66a50a5bf53add151317184b09a712dfd32f9ff783bda7f520c7eef
SHA512 (makedtx.tar.xz) = e083fa791975cef84b2e2ba3472984e354d5ced50ae7fb96dd8239cfffd379e7a25fdab80abcb721e63dfb10d9557bce69e97c5624d1635f894bcd26e22b5f4d
SHA512 (makeindex.doc.tar.xz) = 40b9ee1ebf7dba9a4bb4bb3077cdb1e88b07f276a9d0ae9c2817bd76a2f742ec9237d1b6d9658694fc5fc4e8f82591194862637bd83ea8e106c0541591d343ee
SHA512 (makeindex.tar.xz) = 5967ba4123fd4c708ce841d29211fdb66c28518f4b418903be0ddf2a49964f706af96b250eec814c547e0703460c1273ce72a7acf3ea9fe28cc1c7073af29d3c
SHA512 (match_parens.doc.tar.xz) = 60428bc16f65fe820e267852c9d85a5f862c6800ac9c2aae0915a48819da381b2a311fdd3d08096d4aab7311ef86c1c89fabff3d88caf419dacbef515f4dd39a
SHA512 (match_parens.tar.xz) = 1e03e279e977af436a8f5d5c3d30f046f46f1a31a0fd3de6d8ab458a64f0634b5f3ef8a338954971a898a1c68128f60c6eabd7ca231df9f3ca8ed12e55967dad
SHA512 (mathspic.doc.tar.xz) = 1702071f4c26097e241ba161258a51461405954105c8a7f2d92a552d6397ef69af029652ba5528df999c569fae32955d1b194b0f7c4475b3fc870656b473386a
SHA512 (mathspic.tar.xz) = e556960f07a003e877ce678110e724ef94d34aabc0ae52c59ec2ae487fc7d3e5de169844baaefd61e467e98a7a9718d94d881c3f0d43855e133040bdbddb6a62
SHA512 (mex.doc.tar.xz) = 091f2825376718d8c2190555af7ef54d0ae5202425d57b986fba861df2f8604301df5a121ccfcfcdc91032d07dcda8289fb8de5d81c487b93b0e202a2a5a658e
SHA512 (mex.tar.xz) = a79d6a1ecb15f7962826773d7eab4b1ffd86a5c15f8076f096fecf63df1bd661449eb7d14251a57a1eb2bede030ddf93aac170fc3c59ae0a124da6cef69e55be
SHA512 (mf2pt1.doc.tar.xz) = 6c10831fdcc48d25645be675fbf5da29da945bd79032c60e73e04a39d61c287a64e7b884381ac0b08e48f5dc9b6dec27efea874f6e13d6e4a5e3f32c22fa3ce2
SHA512 (mf2pt1.tar.xz) = ca93a3ae439f9cd8029720bd1d90fbe75a403e7ab4ebcbe1ba1e5a7a28aa9269197f90a4aee849fea59d734d5dc38f04eedc140ff1be64fd805a10ab5510a2f5
SHA512 (mflua.tar.xz) = fa735fa117e7bd433339efbb709caa5fc25007088500dd5e4f6999cc417d188fd43435f74d526186880ac857f9bfc52e1fb7f1055974cea959e28536150b1a19
SHA512 (mkgrkindex.doc.tar.xz) = 5a5b14d4282e97420f796456155a71c23a44d4197d4d92bfea1f0f20e95b42e506c7be3f2b0aba37508415341e999522bd823c649cc6259a6e26d42399c6b8cf
SHA512 (mkgrkindex.tar.xz) = bbb0b306f30b4fe898f5d5bfdcb1eaa4d2d88a95cfa1ea0da51957aad1de028928562c930180f6c0a7d66b5cdfd804d52afbd229e7ca43173477a229cefff192
SHA512 (mkjobtexmf.doc.tar.xz) = 3ef5c333cedd5104b63c1457fff2eee40aea7d1f1b187d34ce4cfccd5b6bd38809b7686dc7b41a147fbee2ae0e951470f3ae574bd3c10a5f9b6fb76b686ce4f5
SHA512 (mkjobtexmf.tar.xz) = c0dffdb276141b78bd2c47e6d2bfddcd13c1800d3a0806a05ca1fba72a91621364b827801430bc757601e07f2a5130366ade49d7ac1df27901fbec29827739c3
SHA512 (mkpic.doc.tar.xz) = bfaf4232fc39c13fefd86c21b2f9f76cd93761c58e39c1420c601627e95adf9e6c5c06db73a0afda6621acef374089dd93afbd2a3bd761cf5aa8db29883375e2
SHA512 (mkpic.tar.xz) = 7814f14293e10a23bc9348dcaea9af326ab4dd93cc55865320706984e50883742381b5df3e77774e7a63fbba7ebcbe0fae7268a3d1a34ebb2d8a0303f5b53034
SHA512 (mltex.doc.tar.xz) = e9d5a1cfdc6183bf99ef369b447c73e9ec5926952a80a75708db4fc6343ffc1a10d599276c13f295005f7c8c56e2e35ad9edc9dee3ee06928fa8c7b267d82bbf
SHA512 (mltex.tar.xz) = e04f33b83474e58c4725abbba21ae56659920ad2929faba7f25b47befeeb7e207e36888e1dbf7260ecc95c126e1732f6f5dced3d277db7c3889f2b08590b04dc
SHA512 (multibibliography.doc.tar.xz) = 3e13c8c60ab8091a363b63a63259e53e3c5076feb224a6f426e55a351141f007ea8bf7526b0f80684c83e4e97b43f5f05217e254f978e8b69665c736efbe8512
SHA512 (multibibliography.tar.xz) = faa2e16b8bdb9309e2f16cdb2c717b59c8ecd5d73e4819d72ee3226a80fe0c0ff6b4d686d0f1d009601e0d6dea140cd4812c2f4cb94f37b5bd9cc1bd19137965
SHA512 (musixtnt.doc.tar.xz) = 2da473ad2425064747187da005e01d6844731c536b75095828a85d358ffb1344331ef483c0cebe79b346b4fa96a358a1e416cce7d7cfcce6b1242cf3c0a3645e
SHA512 (musixtnt.tar.xz) = eab6332d626f199e46dcd03ea546abbc4446b41c4b0354c066790ebfde154c6fa90f861dcff77206318b58a31565d884576899629520e78b3285bac673d1f4bf
SHA512 (pdfbook2.doc.tar.xz) = 3048de4be891e270e8efe9f9d85524aff948c9483da25f491669a7181967dc281f42b984c9ee46464bc563c42a4f171589066f67818a291a136e1f49d40912ef
SHA512 (pdfbook2.tar.xz) = dd87268e3856eb26b37f025ac62f24cd5e680e92e727588d36878de9df799f49254ef2259c29de15db11d5888ada83110a39aaa3116aa6f6aa290d3e64f1231f
SHA512 (pdfcrop.doc.tar.xz) = 786fe00793f62e09f225ca0decdd53ad3b2ce03a133a2ae4ba20db9d40352863dc6a8728e005aecfcaec06072e8a0ef454d1f7fbe90bfc5997cfc65c6ab97170
SHA512 (pdfcrop.tar.xz) = ba611ee2a516fb031a7f3c93f563b2aaa2e50d4ef95433a5d83ee46191c2a6001fdd4ef25f33166c0e3f9791e85c200e452684974d54d34e8d651a7254f6652c
SHA512 (pdfjam.doc.tar.xz) = a29c09a2e843188135265aaec690e09cd08fe29076a0378b308ec0e48aa7936ba0edfa7d6ad3ac808ec334bb5c2793a32d8ef625f4ad9b3fea40d4db567cae56
SHA512 (pdfjam.tar.xz) = 1b1084859a811861e60e27186d67d267d3740152331f50fdbe67ce7226a76b4db24d79b674e6511d2f3de9a711da3369c565d781614f5d0c1a8021bc1ac18827
SHA512 (pdflatexpicscale.doc.tar.xz) = 64440f794e88c08bfeeac75d6d4174eccb800125c8d57e3b0be3ac6883c04790d422cb05cbed6be7335ab2e4d2e6bb2c8c0137c04160db126674960ddb7603e1
SHA512 (pdflatexpicscale.tar.xz) = d36dcc4d70156d52bcaf668d620c8eee5db8914473f943412ea5ad5c8bde673a6715fd5a69d13e502a5d4fe0b1e0e55099432c4e0e5e02bd5f6155ca5804c3f3
SHA512 (pdftex-quiet.doc.tar.xz) = e13392cfefaed2c154c086ffcf85e21725e4230ce78d10e07dcb0a1c8b3685bef2572c5f5e249c56120320f2b0167cd5055ade50625a296446a197c0ba4b85cc
SHA512 (pdftex-quiet.tar.xz) = 7b33e37a4b33060abee48ccf825cacecdee552d641da48dae47e3615fa0ab91ea9912b52fbd5c5ba6cdaa9c0d2cc7baa7c48a80bebb6d1887e5c633dacb4d104
SHA512 (pdfxup.doc.tar.xz) = 23db38fd8ebbd04bf6fed3b2814360cb6d0b736db1540d0298e9ab6edd449894c420078adae11d97998fa1fceb8e7083adacc0048337afbf4b6fbb253c8ed21f
SHA512 (pdfxup.tar.xz) = f5b7623c1ecd132bb3646af5953245bc7378901bd5ded2e910487770cd79bb3d248cad426aafd18dd12a28bdd46be0f89b81dc95959f06688fb6a7a8f96dd11b
SHA512 (perltex.doc.tar.xz) = d39c93f4bf3da08266bb0f10b06582db2bf96bee73faafdb191af3770c7c24abde407774f21d3c97b1f2453a8a9bd24576acaf0606796d7439334b8b1e42ac7d
SHA512 (perltex.tar.xz) = af7cd6b065f2405a514d20cb386b34399742a42286002ab3e0f795b64dcb434ae97470ce9cbf25cb27a9b124ebe56844b47c7cf89e1f83a4bd35f1bfcc98163a
SHA512 (petri-nets.doc.tar.xz) = cf03048e2bccded143fb493b100fd19103ab90f40713441c5380446702d6c57ac3820f2892a3dfdb80880952e09de78e69b309783767a3e157f76b81c9360535
SHA512 (petri-nets.tar.xz) = 0807444f934acf16b052dc499a097a2a645d037622a71430cd82fcef85d11bc652341ce6396a27d717effd08bde8ba3224c5235351fa9146000c01abd522f644
SHA512 (pfarrei.doc.tar.xz) = d50ff4603d51eb72d1d12e7f5b1440fa3d7abb1ab74fdf441d7e4a474df91247a1ccad504a14438bc0c3c6354c8f8674f180b5d9d826ff09a8749db3cf0d08c4
SHA512 (pfarrei.tar.xz) = f6046dc96672b60ed272dd6fe23a4a51032f039d3aeaff3f8b5e2407c99fe1f43c568a03564a7c20212a97bbfa4ecbd0dcb7f5f44593e1485c8e5d9197467a6c
SHA512 (pkfix.doc.tar.xz) = c6819c63aa4cf7df5879a796e08299f2fa132e1244648d17a7fb0b3c28204b0641e56fe4661887c257ca4f5998786c31b1cae2aa64e3163340f08d02fda4c8d4
SHA512 (pkfix-helper.doc.tar.xz) = 50103799bbfc18a728b6510f9cd3d9aa4cbafaebb1e68f2f3280b3a57efbdbf75ff68f36e72b4442e49bbb04801795250fb3e2d0728968e30c1e70fc5b7d15d0
SHA512 (pkfix-helper.tar.xz) = e5151d85d2db65f41b69320ad92611adcc8d211719aa06f39488ba75972f6bd4eda3a9ebd9f13e8889eb84451a640bbdbfd8862c95620304917cca3dcff4a194
SHA512 (pkfix.tar.xz) = b4d374e5b771e131075ec59ef6713c6433cc3cefb6331a933e791c3774a9d54d6c8427d70a4aadb2c6326c3733abdb562ca103f0b6a9dbcafd87856d20b18a24
SHA512 (pmxchords.doc.tar.xz) = d4075306620fa1ce037a37b9d2646d197348f6482e1286ff6fd99641a8b441b3d830a1420dbf6c025b8d11af78363b717a1acc7ea6b9e2954aa4f11ef04452ad
SHA512 (pmxchords.tar.xz) = 0a8f4a88834eb22d3f11ca567f37189af7834370530c6dbca4d83482e94cfb48b128bc1290e7f3ee718bffb4df445a300ddf5081805f88002f53bcf8b434bb3c
SHA512 (ps2eps.doc.tar.xz) = 0194c8634c5d31cf441fb3d7fa171d85358db9831c03cc77bac37272ddfed81d8296e9b05eb4daa7c8012f3bad1a01625aeacb2232989969551e01a92912c409
SHA512 (ps2eps.tar.xz) = c43ba33d29d5b23ece2add44310b89036d5c4725ad76da1ed6e17bb93d0e7d103549f4a7e7807f89cdffcb19a95e0df2fe7851989b8a3b691aacfebfd41044ae
SHA512 (pst2pdf.doc.tar.xz) = 5805c535c8a043fea721093a4b7d2ab06c86c80d4a45eb3d603986b898b6d2053d041b638874e53c79e2d815a929749e02ca0986a2f8cbb400a2fa87581462dc
SHA512 (pst2pdf.tar.xz) = a266409d6740653bacb23e83b98e545dc462ed879299b195d65761b10e4700a797005ca231fc24e37a42591c09ba93b5ea6b8b82ad8b14a29a7649cdb3f39b33
SHA512 (pst-pdf.doc.tar.xz) = eb5013040f3774e81d019c0010e8fb507d22cb2fb9c74e75f2c14aa0e4edd20245ddaaa3744fec7204c607b5f6329425f8f2b6e09bd153e6df6a3ae39d1e1625
SHA512 (pst-pdf.tar.xz) = 5f5850f0e908bf6b10977bf616aa82ce05d1f0afd4127b5db14379a510ca62614a3552cc85ec0136805fb479201c817442872f9d1074fa6cc1367f41403476e1
SHA512 (psutils.doc.tar.xz) = 8b4814c2a769b1ea8831aa945352f31125267aeebedd8dc8abf6381928707799bcb1eb29214930152046bab63b1a56179ea035ae6568595fd5ac83bbbd22f588
SHA512 (psutils.tar.xz) = 1489c9cd3ae9e1063367301f038cd52f0fd7f5b2d548ea78c06a2bff56100aa613cd01026ce601527b6a32f88b6ed1df96f9c8c6a591d16a63dccdc8e32d6969
SHA512 (purifyeps.doc.tar.xz) = 3f9fadfb35596835b250cab98b0d1e3c6d537cfac5878e0b9788aeb5cc7ef455ce3d44f7d0f03e9002796a162d374f6aa8f9bce5bd4c3f0e8937040de0b82a8d
SHA512 (purifyeps.tar.xz) = 79d99ef7ebc462c7c65d03f23cc85b9f136df2b0c9d647fc0672584fa57bfb7447f6db0e6d6b11bfc738cfe8c8658f45fe0b4059ff00f355e4b21d44f0d4102a
SHA512 (pythontex.doc.tar.xz) = 3ec2fe0f095384734575c2c9fd1bc9d485b628485c8ee75cd8fb9ebd6d1f56edbec6f378c7c9e1d5ba9c10c4bbcc3934ddb957dc47a258ac81ca89b5ce3a2e92
SHA512 (pythontex.tar.xz) = 2e67beb9974eb9a567726d8a68f7d565aeca97d20484ef6e36312100411eef9d9de937297399a98f367a756f6679314cc1a25201ff11936b8a61f8f1f148830b
SHA512 (rubik.doc.tar.xz) = 33d5c8210600cb4ce7b1313d1046f6644f0a6648f7ee9676d4d628d042f6501b5e92f2b56a31fbad6f637dc93a460a568be9e1335bd52bcea825f5772b2a9d51
SHA512 (rubik.tar.xz) = 67931287ea126947b5b2d567ba355d44ce094b2b527288ce32329de4a73434be9a43cd520e6c24ef570a46a16c0edcf12212f46228ee1bcd2b8a8be7f9db3a7c
SHA512 (seetexk.doc.tar.xz) = 1b36ac131e25541123a7d18e9a5e3cb1fccab04ffca1b0d1e5a036a26de99fb05e6745d43cac6dc76a295eac5503f90eafdb2b40f96c88836123b5b599a47e2e
SHA512 (seetexk.tar.xz) = 1f217550f7455a82dd1771556045e10a39138eebddc90f4d38a274d56d9072501d94476c6045012f3c5cda43aea71924268fd222895079b225d893df3b78fa97
SHA512 (splitindex.doc.tar.xz) = c8dd92e955fcccf71b412d9750fff7b6f214e929ddf194a6496a79a146f4837af3d773ed3f2303546727cc4a8fb9d5366dd75b64d3877e6121ce20315f71997a
SHA512 (splitindex.tar.xz) = 858033eadfa82b4e40a388356f64002370a5f4fc2c95565eae90c68373f708a3c9827fc4e0ba8094659382aba4e5925cba86632733b15d85ea6a82f73ace8737
SHA512 (srcredact.doc.tar.xz) = dba9916acf75e800af1e581b4276e82bfe4c421a500a400773354766b37849568c1f19752a75983374ca41f793903f9776423888215f00376db1e0f5f3b3dbbc
SHA512 (srcredact.tar.xz) = 9e11ed88fbbfc0130f43fdecd8fb0b3eecbdf50eb33bdca57bd34c860cdfe84dcd560371efba4cb261e65aaf4577306f478d1c43ed89152e7e21fd627eb7328d
SHA512 (texcount.doc.tar.xz) = 5141bdf4378cf87a19933945d6742427f4467dc73d92f4a470e34474232dbb2f60c4d8db065f812481520f1aa2f8a90d7e97dfc83f0f089d10386847f64f4d94
SHA512 (texcount.tar.xz) = 82f51346d9474270af6374cc1619ca005206b1bd729ce1559b8b66e361b184a192c7fbe085216a3a64e656197756593f7d76e52437ac562fd33bf09504b0f58f
SHA512 (texdiff.doc.tar.xz) = d458fa8db6433b4c7fbd23a16f9be53c2c822e396e7f50844cfa6acdd2a08acf8efdd0bd946c8fdc09ca8aa28d1eb25708d3719184634abced92ea5c94d9a948
SHA512 (texdiff.tar.xz) = 26fa84b3090d641efb186947ce4d1d89c30a2c224cfc8fa759da3ba7ec9cc113c0ed4afc1c3d0fa5f9d0a88af4f9b3001d57651df6b5be6e0234fb78ec4f252a
SHA512 (texdirflatten.doc.tar.xz) = 1114dce13ac47c4352e968f42e89582b62b2702bc25ce3a9a4fd766b3bd63607e11eab52d19bc9f809b2b67cd92153c4f591632cfc72dcaf1c0a1b1cfb416b11
SHA512 (texdirflatten.tar.xz) = 3cd6cf4d9ff3a1a3daef0bd5a998417696f6645cb54679e99e5424ebbe3926c45acad7b999ee4371392a7ba13fe3f2899438ce66efca7829c7aa1eaef84aa6e5
SHA512 (texdoctk.doc.tar.xz) = fb403dc17ad839ea64bcf6da84e59288a8745b5eb731051d7df8593138aa5d3b6891d56f52bdbe5c9a41e590f1f36db390e7e7a825d9aaf00d4fbc01c8dc16ba
SHA512 (texdoctk.tar.xz) = f3300a088f5ecedfe66ca277f793d3565b5b0f111721a0d73a788d65b72f09d0103a11edda13679fb9e919f11ce9ed3662717c18e46be99a83b744a1f7ec88fe
SHA512 (texliveonfly.doc.tar.xz) = 46d57a6ebd68a56d55ccddc68006693fcbad8ed8f809243a3ffac7adb82da58cbc28239b57556d5d8d6388ea034b6571557588ff9365d4891145d5cc3fabfaea
SHA512 (texliveonfly.tar.xz) = 63353a768b700ea11982e9552046dfd1dc3d844883f03099833cabe2af5ccddecebd7ef737fbcd256c90304174165a4d283d4912f8311508e61c723d751619a7
SHA512 (texlive-scripts-extra.doc.tar.xz) = 22cf59bf4dafc7ad9425086bc0aaedb2bf5f7d8aa6ea9c65abde2d523be37665b9c9bee4acb399857eae03613e7241ca1d6099f43cab77a95c10eced8813ad80
SHA512 (texlive-scripts-extra.tar.xz) = 46ac37826d3c60de6c9260bf83d6275d49a35cbde88fb03481a050f92e87b698e9a94b2e520a74edc0417419f5a2dee53000a529b9c81ea6f6244a83480e56e7
SHA512 (texloganalyser.doc.tar.xz) = 8eb890f880dc56d37e29e2f0bb3228e36031d45010677097136d40959ba7ec0cdd10b5056169325f481318f137a9de2f180438f1716bfa12705fcf0db315e3cb
SHA512 (texloganalyser.tar.xz) = 85f491af4a3867283d56bc2d98ebcf491e622008b3a70bb2cae03b9deb38170e1c73088d109445fac11fcce6e10aac57f42f03066580a79c978dd19af1f74caa
SHA512 (texosquery.doc.tar.xz) = 51bc4e5a9f62b4526198b380fa69dd2d79ff69ccf0915aef4269d890fed057c4130ccca65e0c279e58ebfb72347d627b186534138f9c4bc8d395677c73a2a0fc
SHA512 (texosquery.tar.xz) = d454a95139920c24404a501ad3bbde4ae8e809e0f0b6b7c32053d375e0cac31d81087a53d65ab067c9c6dfd988ae90429adbc5d7cd2e1b23f41f46dbf6a25056
SHA512 (texplate.doc.tar.xz) = e28f0f3476e710fcec772206138a2f423ea6f9df903bfd4c4a278453f217752b7f4ffd7e68f10821ee36a9251a14e6226887ed5aa7a5fb53e5deb7a1685a04e8
SHA512 (texplate.tar.xz) = 5b19c1f2d5bdaacb1c842e78b1980ecb3f4fc548873e6a36fc9c5a70c3e3649b812819cc0d3bf68622acf31ac6c687cc4ba657ce2a4682bd13faba4070b0a1d7
SHA512 (texsis.doc.tar.xz) = 2a4979a10514ccd589b331ff34a677a4e22adbeea73d6112c9a14392b3ee75a8cdb292b008b160792b3d00b812834afa7e0211db860c41f1beb69bbc900fdb90
SHA512 (texsis.tar.xz) = 7309726b33eadf8290e596aab50bb1af95600a067338b352c1ac092643a8c6d4142180d0146abbbb828a38fb08fdd9ae03da6572e6c221afcd151a51430a423e
SHA512 (thumbpdf.doc.tar.xz) = 26f698eef73b85181abbd155e8ec8f6057f7ec0c5ed1448a256e4fc2e41cffc77474fe4c3695d611e8993bbb1afdf238e3db3a90bc2b7af145535f726af027ed
SHA512 (thumbpdf.tar.xz) = 74d1b32b1a48825c423d4346258f6f1eea60d2054ed38b3d9d4e207a3375e35b6e80d87706bc2d265f62606a449a0a665c8698f4e1615b39df98f6f54b309fff
SHA512 (tikztosvg.doc.tar.xz) = 3d90c0963c570a115390603bcd5f39a224a155faea8ac6eec511b9689ab98383386d3d6e92076129e0f704d69bd18da52cf2f89f5db024a4d5c34a75c1edf279
SHA512 (tikztosvg.tar.xz) = 0957b87c9a06771afab350de769e3fa9f97ec0aa09e4e740d0f916992948a65740a96446a0f8ac144273e94f228db2c6c0ddb22bd01ea9f0f66abe5adfe0125c
SHA512 (tpic2pdftex.doc.tar.xz) = f24f8508279ded0689bb9dda8c653cfbd903c46782744fcb8d004f50a771ca74b86549c86abc765a408f2be67334048390e407be9446faa476a02ce9c27d5547
SHA512 (tpic2pdftex.tar.xz) = fa8689bd257b6336badb8e5a742d5c5f12d9088b33b43bdc41474feda62358c754db05735fa471baa307907bcd61f68e8d061e66c400198d6a1dc165f39d2226
SHA512 (typeoutfileinfo.doc.tar.xz) = 143c4ad9cb3890b6350069d5d045f74c0bb0cfbe50e7d051c50c82011b56e651d483c1422d7d553a8d1d1784ae726a1ca1aead023fc3ccb1da4f0d59d47f7920
SHA512 (typeoutfileinfo.tar.xz) = b30d2618c8cdbf69fcb8a5444922185a52b934448b5d28ba143948cf80ed17cb402d73d1162194df3d2992a52ca9e6faca79000644eef968c4eba892c415b6bd
SHA512 (ulqda.doc.tar.xz) = 182dbcb73a25e05035f878696887ea219569a1a7ef44281bee14b4498b37e92346e0e97d187a5f3dbcd8d9783f260080ff10f58dfe41e69caec4888d901b9128
SHA512 (ulqda.tar.xz) = 228132cc464dfe171426fffec6103f0dd5eac61c112b03d64d98bc89a0af0ddb7f52f27f9bb5461c8be6f752ae30ef3d4c6b987e580d834eb7524d5c27d956cf
SHA512 (uplatex.doc.tar.xz) = 7a66eca2b04deea9af77b2663b423b928c25e4b3074ed01e7aa3305f1116c9c1d906c214588ede8b4310c7ded23fbd6a7a63ad070bf3e627d9a2b3bd23162b00
SHA512 (vpe.doc.tar.xz) = 3c60c736fa03de82bfa5bb86f40420e7f7eb59f6943a94790361bd1d64076ec97843404d1cc508074a903f83392892c6dddd1dc912162928b286e65c24a46037
SHA512 (vpe.tar.xz) = 5fd5180edb830cc2f309652ad6a86e3ce1900dd0b150b72b3115f2e0f51aed4023b3f7af8c86befd1b1317829907b35ce583b50fe5cd1fa50f15863046e806d5
SHA512 (webquiz.doc.tar.xz) = 58faed1d21c5f0abe004d5aff0ef6f754012722dace25948e236c940f3e9f3a49d4f661d6692afa0bbd0a654424017e84611c32cdd99a0ef60e510c4b2fa01e9
SHA512 (webquiz.tar.xz) = 04ce66027089c2be815380a10540e6c12040d33a33b1de9c6a98985e82a65e87f58a19b6cbf2b0ad7bc8e0a1e500bd21a80e2adbe3ff395ec4be1ecdd5b5adf0
SHA512 (wordcount.doc.tar.xz) = a86b034ebff42c89f07015b01f86756a83ff2c69ed911ecde185ff719b09e3db47f284fe778c9dfd16442d1513edc9ddbb4944cc242328c17bd3fc18a0aa098f
SHA512 (wordcount.tar.xz) = 3c26b3bcb4c3edce8cf9d6628cf6b89103aa1ae454b07c1e963ca90693c18fb851772a52082a23efbefb51235005e558fd553afc891a472eb39cd430c97f861a
SHA512 (xdvi.doc.tar.xz) = 0fd1bc1ba7bb022f03334fa6c6bc6aed779179a7c486211c3016b0880efa2b13859eb7cea78e8bfc0069192f93313d37a4966fd7e233bccfb1d010d3e413cfd9
SHA512 (xdvi.tar.xz) = 57024e05928f45e253e236d7e8c6b9cef07359c1cabc10b3f6ac13a9b98dc04530517d8d66b20cefaeced793fbc57a5373c226fb3d26186ba3bb7eaadb0f4ef2
SHA512 (xml2pmx.doc.tar.xz) = 973960f65159f5107caa7e9a041dca75f0171fc61f94794c7b7560eb9b6898534974fb8b360a28dfa3a01d422b71618bcaf8aba2ed25ae4d4b9f67d24ab730be
SHA512 (xml2pmx.tar.xz) = 9545fb5ca0e95788afab79d8a29336f337619adbcac68472bb5de6af6c54187f19bda655232175223168891c064f6fadc67c4ab8f5a0256e2c55e1a65c5e6f6b
SHA512 (xmltex.doc.tar.xz) = d87c6d1f4c472b436104b0746d48a463977dc7eb520de3d7a53f48bc1c8e5682a23d604bbe2ebda1b5029d4a6dd33c2d2bf8b917ad4f54d2c7472874fdfe8509
SHA512 (xmltex.tar.xz) = ee01abb25b18e99f18bc78357be04fb1405473e90fbdf74ed875e2910812550c44fcc7aee960b2bdc53fcd7d78e9aa706e46929da65d5cb78d9ca43ba475d675
SHA512 (yplan.doc.tar.xz) = 7d3cddf3f2d54283b777c7ab7867df68fdb484c67d2f88589e29fc087db721e7ba9e0fcea2ffde9328e89075884d668b7de8fc61f462b735d9f1cfadb9662463
SHA512 (yplan.tar.xz) = 4884ac99b0b56927fb86c6e06ae9d4accb7d8b441bb17df79753d8af9ee84b9440d66ad4fcf2107aa036eb2af89d5ad49d0a4c4cb91236c6475cf81bab85566a
SHA512 (optexcount.doc.tar.xz) = 7f0d33068083736fe58c08dc9e37929efcf65de3b62a3afb51077a21d0e27b473a65ee1b333a0dd31b1d39e7f6ce79cae3343e8b7a9742199fb409e90030f7aa
SHA512 (optexcount.tar.xz) = 88a35391d3deb37dd6466e903f3cdd7d134eb9fb8c0a9ab548ca2eeee86687544e1b499248c2d0a7aa3b801d9604913e763128309f88f768d0dafb8ac1fd6998
SHA512 (texlogfilter.doc.tar.xz) = 76fbce938945ebfd6bfb78022219fe217b7e6f0ae3c298e1bd9d0c570bfff1100d34034475f2577a9676e01a5bf64428664bb5cce4fd65c7d0cd350c9f156d5f
SHA512 (arara.doc.tar.xz) = 0c0b799f6e4f43c6d123f66b6a84e35607b2c10d6241c445376d29a466154634c559cb6282f4e3f66c273342c764b56604e00bc1ee12b4452ef78ab7620aaaf2
SHA512 (arara.tar.xz) = b30ab2023cea6e606301146c06b34711b4c40b771721724bef178a5df7a1bf3e22ce97675131ee7370acae3b6416d49b28f12d0c02eb7e34885e2609f8dc5ca8
SHA512 (bundledoc.doc.tar.xz) = d74b1ec9473c4616642911fb918553350c5c65ae2cd5171d3513d6fdd5b5b774a516c54a5ce09a8fb966a9de6c5e372b773f7e8ade9f14fa2b1a646112638679
SHA512 (bundledoc.tar.xz) = 8f1e4428993dda804a2bd6b11504996e6cbef869b98a64d576f0edd97a47b1f2301b34ed234ecf1cc902c74dcb31064a96cb69018ac514fd91eb3e5c1b6df5ad
SHA512 (checkcites.doc.tar.xz) = a394ea5f70f48e7dc7c9d75de33bbf788904a5e1d8e3aefb5dd3bfd5207ee512b1a84ab4bc03bddfa15dedf962f330931d9e80593542e5a180fdda8a8aaf87c2
SHA512 (checkcites.tar.xz) = c28a2785348bdc7cf8e30d3339f301a355b6a9e513d143d34f2b2535a69a32f7cf8a8ae9c26b42c6db32d00021a10ca135891a22b0547c219f31c6c9720d8ca5
SHA512 (chktex.doc.tar.xz) = 28df4bed075d66d9f25bcbe332731f1d5f0bb0f7f92bd2f3618c84adf788d0f429bd0c6e75381ebf7bbeac98409d94f85d17ebd752f9e4af707d9e3373d45f97
SHA512 (chktex.tar.xz) = 7c28847e87e788d0f50c07c1c3140962a70173d2a36997720f3066755740744060ecd03272662aff563de39102052e91a4582a4bb63e35f918ad8f517dff55e6
SHA512 (crossrefware.doc.tar.xz) = 7b7212f8a4b6f75d93ec573f9d7544f09df2e73e0b2a32e2f22866378f0d69e0b035511ee5cbc7eee4114b5540b3783d613aafd7508a41aa336195e49b070a78
SHA512 (crossrefware.tar.xz) = 7e8836c9c1cec51676a01e3e631cd3a0155f081909415e8ae2a4143b5eb611c5c843a0c700af98dc983ace1f9e3492da5a42bd54e74757ca68da7f106f7eb6b5
SHA512 (cyrillic.doc.tar.xz) = b0b1d24d3e8887c5b9c251922157de7cf042845009c07e62fd324ba850dff9f39bc6ebad04ab216ad69070da93f77f68693d1be57cd15b038374f0253329c8fa
SHA512 (cyrillic.tar.xz) = 1b8889d33e5433b32d0b84bd31ef7ea96fe338456ef8e1732ea6c254dfe2f21d3600766b1e51bafa4ddbf0144e8420ad8ba6ad593eaa32c3d45dde99b0b4ec8c
SHA512 (cyrillic-bin.doc.tar.xz) = 91da42251e165d17507b37eb48b35e157c75b06fa8822c9717fafd5e7aadc60bfeb084dc30a5ec32df22ae4e69c03c3f00e8a243d187881212ffe62c96b6235b
SHA512 (cyrillic-bin.tar.xz) = 30d3bdb0f92a0006613dee654714818b6961207029982d62b9933829b3d044bea0b2d9a30d0007dac23c08358a7ada2df9ac25ee92398cb32d47e9c29c503c67
SHA512 (dviasm.doc.tar.xz) = c1be5541992450e6519c1768ea21d342c5e41fb4da6547828c89c79bd8abf77634ae76c3e5c06b608172234d117f5d5839600031dc4fb0cbbaa493d0bb1154ac
SHA512 (dviasm.tar.xz) = bfdc888c7a69d103d9c4548ca0465223a4e16be51a5c36f4c7a9d1064a553f60e6fb5d197a6be72e2be076c5012d7d3c7f871e217777d0be0c0e4669c1602a6c
SHA512 (eplain.doc.tar.xz) = 60902b2422d2f5d7570a19daf7f586df7882505d7c156539699a0aa47a0f3bde5688dcbdc92c8a6a9878f11392bc9b9f147626aad230eecd2740d56f104928ed
SHA512 (eplain.tar.xz) = fda8158ae2bdc96187b6e6ace2a94be3e0f68201adbc02553b48a3848481352ac10ddd72babcbc2835e089ce751ade7dfa6cfd1c642c94155c2861db865f5c29
SHA512 (jadetex.doc.tar.xz) = f70f85a12d730fc9dfb29da57a6f95239c10aa8ba7b9453ae884cae81399609fb99ccac3bfbc41f0c5f360ef80bd3f78b2f8479a826412bf573e9c5336d7e8ca
SHA512 (jadetex.tar.xz) = 75b9c8be4f87b51798826f5ea070ff9877e8bfa2fbee5112972e9e0fc81a76dcb7081c2fe9eed645f53a38dd85443dfdb394004b2970c2ff5a91b32dc1cab909
SHA512 (latex2man.doc.tar.xz) = 390666cc56ad70342c9a24ca593fe65b3760674a882ed8bba383d193f2578285727a085f823afc03fa0dbc9966612caf9a29222fd2a9f39214f01aa268acdc50
SHA512 (latex2man.tar.xz) = 2617f6e8059f30c0098ea896cff69f585ea2ddbd3bbbd8066e7296dd833d3a246b8fefc0af71a92abf7e2051c754c0e3e6098175a4b181780563416bc9146b95
SHA512 (luaotfload.doc.tar.xz) = 9e1c223ec2589f32640aefd2692d031b8ba324da30a814eea98768443eeb76d92d2700c320e6f96006e54635d31a655cae0a27c76931e7640748889ead4fbfb4
SHA512 (luaotfload.tar.xz) = 70f27796fdfe61e0337239a2962052eb2896478358fca0f271287db06a1d2de2f83cd7394d0ec6c281e9a5779ec396e2993f53b8b045ed7a09cb17f100a4a477
SHA512 (m-tx.doc.tar.xz) = 316fbc2b37b903cae8da6bb9f44b8afad0e3e577c6fd84664e1724ffe318bbdbf9609dcadd5cde6a14cc5acbc134f69bd7a87dd90d9da7d4442a5f913b8132f5
SHA512 (m-tx.tar.xz) = b56bc4432bcd340f3e92f5043c38bde7f14b5f2d32b9433fa21c73c20f7ebb981714175aa6f4f871636efb62a52cd24aa639e87a320039313b16db1b027ee2f5
SHA512 (pax.doc.tar.xz) = a2e0e7129e98efc8a44184d445118220e16f8149166c2093b7c44a936885845c0d49d37a7588f32e2c06fc834f808b0e4a1b15808a32183bf9e457a9a1c19ba7
SHA512 (pax.tar.xz) = 71a2c105a7d593ca432a50a68fbcd16d876c8a28ce25be99326f323bcdba997b000158514328542378384f55a0ceadd9d34b71840980346b0b5c1c63843f7c1b
SHA512 (pedigree-perl.doc.tar.xz) = b0b251fcf40185b017835a7a47e32736ce0d49c56be134bf93619dffedae4ecf44d36050e4515fa681c8c37707a933d8faece2943b4eddb58dab6ba3a2df113d
SHA512 (pedigree-perl.tar.xz) = 4aca97c3d231e3c68a8372d6d8c970aa681fef3d1b7061fbea1648a188c03e06221bf83d2ed0678390780e9a3c2edfe425ea0050172e837ef1a1a62369c41909
SHA512 (texlogsieve.doc.tar.xz) = 7a744ba4bdbcda04c1adf53c07acb5d20799268f31aebf2234203251ac56a96ad6cd0574d1c25c983eec0d7191dcb49bc9f11dbb2aa6aedccf31c7499400fd9f
SHA512 (texlogsieve.tar.xz) = 8017144da38d3e7b011b1620b4165e62159cb2975a418b350bf8a5d87e8d519166fb87b916a96ef6ec203df12834e72a31e21c41a84e113e8ebe620bd5eb8860
SHA512 (glossaries.doc.tar.xz) = 24e43bacdaf3d3680b49460849f2d4eb652f2e2103558edecff0cb78d261d0275e5f416c7fe83857fbe09f7016643849ee5f030e4b3db167f469960d7791489b
SHA512 (glossaries.tar.xz) = a805158d4c2741c4efc707bfe417032903630d3f235c7431a3767e47592d8b9be2d64f6a14f21a0c7a3f4b37cbcba90d501c0ab1a551fe16357745960f362a1b
SHA512 (texlive-licenses.tar.xz) = e97870378e39e23244cdace139a63067d96616c25a0efbe08baff23ae633ddacb776f0558776930d71a1e7f3eaba148cb4e658f747729ed24997bdf1794ef9a5
SHA512 (pygmentex.doc.tar.xz) = 050bf2576a7305eda104ac928cb332e6fd1437e1852726442694fb7ec88ebe7fb9e7e54987a13b76aa103afcc446019a57b8e011f4e638469ea34a9788a8e7cf
SHA512 (pygmentex.tar.xz) = 097a1eec7e6a969b0c2aef3915d8231d7e6b6c234abe79caa7f7325df22f4976d1bcf2b111c87c9b457250a2c89b5b0a29afd7deb81ee309753901768fb3fd08
SHA512 (afm2pl.tar.xz) = 9ec87ccaff69c7467f803e4ce3f3408f8195cb93f571a7c7aa5f195d3de80b480b182831d239d8b2144dc72a5c26f9da58973075b6a939d23a51de0acdb1d199
SHA512 (albatross.doc.tar.xz) = dfc9cb6a72ec80fe5f240a8c50c8c98167d069cf13e3502ba281991deadccd094e369a2ef2ae6b089064de77d937c45ad3a3dc70c06fe6fc5e39190b7d652189
SHA512 (albatross.tar.xz) = 3ca4c3ff3fdbb1b865e62fa96e984f94761bbce1de24cf09d7e5bdee3b4361c6536cfbd2119aeb6aa5df842228004cb78a27e2aa9e5e957cff59ef82b9fb459e
SHA512 (aleph.doc.tar.xz) = 33dbdb3fc2ed1cb698b1b3a1826771475b27e33c19ab102b5f0f403f670abd10330dbdb4223d9f5b96cff001a14dc8d25ecc9a084a612b9db8a1cc6a70bec090
SHA512 (aleph.tar.xz) = 326c0c2327ec391a2e6caa5b7bed74af44be58df05b58dd2d2ed68ac96151282f63cc51dcfad7b84f3fa716b9df1d9fe97e27e4ebefe81d40a1e0ddf06be48e4
SHA512 (context.doc.tar.xz) = aa322165f3fa693240bd7b1378a344788b45948e2adc51e41ce711afa0968ec3ba1fa5401082145424a2dca3f20ed655aa022057a4565f916dd1b42bf61cdb8b
SHA512 (context.tar.xz) = eb1b44e12b94e0eccc18f23c51db04b7494ce883968c23dbc1660dba581e083fe5f3003a654963faa0f0c24227e01c2ca72e56084883f0080d2279ad811dec6a
SHA512 (cslatex.tar.xz) = 21e2f395230c07a28b7ac75c2728797dd2d343aa408c55c8d0d8d082a67ab9051672830206a4a758c7af5ecfe4f19683acaf7ceab6f83c44f17e307b3713bc3a
SHA512 (ctanbib.doc.tar.xz) = 0c02549c5e0390727c50a53697abb042be5af30d2d455d9cd098462f33f2f2fe996d1c05e3fc04c87a5d178d49a3dc371c17c1840033f2e023f7e66d570fa086
SHA512 (ctanbib.tar.xz) = 9ebcdb2b194ce91075addb5e42ec419203012f494ecf9ea663f1007f085946ddeb5a618439924406119a07b3801d09dfd3d5ca04db2886c6a530e798a78fd487
SHA512 (ctie.doc.tar.xz) = 178a88260131781b6678ee63b1b35ecc0734525309b99c0d5bd4498127970bd67e30c23072392b6678186532a845c7e27188b1902b5dca52180720bc98fe3dd6
SHA512 (detex.doc.tar.xz) = 3d5a3b371e007bda61441460479a208062fd0d477d1fc9ab9a6764c1969fd383acec9e336e8d0b16aab5606444f5d87335320e010657cf088e9caeb18d6dddf5
SHA512 (detex.tar.xz) = e258d80d1509831132c4f70df81b8e93cfc9d92ee74c5d39e7f35bd4f71a3eb93fe3594afbd5ab0e33cf0b6f45c816506e32ca8f41427f3c3fe661f3086100d1
SHA512 (dvi2tty.doc.tar.xz) = 3ee736f5fbf91472008a5c8613c0e629a9f76f61fee4c4491b67045ddaad7aa2f89a22937b172e058b072ae1a013478fdf5a9f68dd2e225e8a8e77c8e3b3a289
SHA512 (dvi2tty.tar.xz) = 1051c3448703fdd6395d78b0d8b7658197da6114fb7455b31502bad5c2eda24fd4eba2ceaba1f65d106f981bbc60caf9f3bd0db29403e898b293514d086bf91d
SHA512 (dvicopy.doc.tar.xz) = 40dd53fe878937846f003d3b72b7d474c13ad07156e78679501d01c020380a3fcc450aee7a72c0155a950429c258b8fab253a7ce3043d58d88300d0c1037da56
SHA512 (dvicopy.tar.xz) = 60f44492a3d1af9686de3118af37f1d054068527f50765e21773f76ec406b4ec0f419d6298dab6b5d33e2fb740bd740f2037f711e8993bf9d3ab8f611bebb2d0
SHA512 (dvidvi.doc.tar.xz) = b571021445b822e9824782ab35a0743ca23f69b809354dea6676c58209a451be5bf595641fbcb461211e6dec15e765bbfaf8164c0ce1ed4204ea72a2073ecb92
SHA512 (dvidvi.tar.xz) = 81c58f4e1352a8e5133de1ad86b6b37c47f9b0d29307354001693ebc4975c30808e349c73a477283a16df4219fd5702b733ecb5abe2043aff1d1b537b7fa6a3c
SHA512 (dviljk.doc.tar.xz) = 4b5815d766a41eb74125269e297eb6f7d1626d68b3f2cf9d6c4f8734721e3c71b63e84e729c39fef41320e4f728888796e421bb5c7ea5ffe76cd549400d18d37
SHA512 (dviljk.tar.xz) = 0d34e837c0f67ac43dd8ef5bfb9a11d2821188ef8259f41b0cf9454bfa6641f956c21d63fe15fbd68dd59f89c1da820cab4ec5c4579fc0255a771c47010821cc
SHA512 (dviout-util.doc.tar.xz) = d10e8c9343f9065499e2c06b5eecce4047730875ccee29d6a09d1608e2334f7310282cff765c88c7da8ed8a52816910c79f3fad58d118f047d04b4bb7ebf44ca
SHA512 (dvipdfmx.doc.tar.xz) = 33a7401c27496a49546683cd9cf9001badd1dbabd22a5ae9e3501a83273fe342980cddc9e2fa7784b1e0c77512098b1abdc0a409c9306fbc86c9f2fa414bc7bc
SHA512 (dvipdfmx.tar.xz) = dd9284fa286b423b63b0240634348f3355feeefb685216120753f2e5991cb662944cb7fc4d61434e9d4dc982dd1892ce4da2451743c02ee6f25aed408d687ca3
SHA512 (dvipng.doc.tar.xz) = a4473f728047cdf06743520a5cd4c79d7aa41818c44291abf4781f04b87822b03fe5db9f42d489d7542ca259070f71a3f255507f3dc8fbe772e30da8cc88722e
SHA512 (dvipng.tar.xz) = a1693423389d56570a3fa1ac1eb45bffdef5fa9bf26d738adae1ac2361fc9aa7985d4ed0908b5f8aa49e2425da9821989a61a3ac925ac4432c9caa49f66a95dc
SHA512 (dvipos.doc.tar.xz) = 254a1db41636608a133e7807a8d4ea8ddd99ac646f35b66a43205ac7fdaf4a15c21eafbb85e23a182506e509895776d1fcbe63b3b8a7f197d577c6405ece5c44
SHA512 (dvipos.tar.xz) = 9e949fb402facda9c30fa2f388b80f2cfc530670b33cbd78559e4449fa6004c5d4082e4fb895ea397a334a333e5d5ae1a4f66fde3885f0a9eb28c9d9ebbecd0a
SHA512 (dvips.doc.tar.xz) = ac2518c20c26dcda42df79be79ed24e2c021af2084ede43f51a5589b1023c9c94a307bd0a4742880e2c89d7620b2889f3a675e30a449d699d15db98922b0da71
SHA512 (dvips.tar.xz) = fbaf1dd979ceed4f7146d8aebc31ba7d770a8389b4ac214086db5951c485a2a3e3a62b2772394c8053444dfb8de0d22b3501c2ee3ee1e4e7493a1df5a34cc275
SHA512 (epspdf.doc.tar.xz) = ee5687a3add6773e127a1e83c91683b5c6ea5e37dd98ec5f5558a32015d292c31f1a456c985ee5d2e4201c0a47324dbac4a7129529236438676f587985bca64a
SHA512 (epspdf.tar.xz) = 3dc467713b1d90b96a8fd3903effe209fe15be82463a1ef4693e29e7d145220936bed0e75dd3824a1e520f778ab9b96fe29389037e14690352db136e642f6a2c
SHA512 (fontools.doc.tar.xz) = 0506f6e9d0e0ae4fe4bb15303e2abde50a076899e4330a7d68f875abeaacff999cbab779bb368da5c717370e7cf885333c1479d6e795da4e387edd4656c30933
SHA512 (fontools.tar.xz) = a4cd3009c98502534f3c54d40fb22d788bcdfd474ba6bfc1b7010aa4d3471f468cd54a5d5c292d5afe685f9e4d99c023b8f78f302792dd1b381418042d96f47c
SHA512 (fontware.doc.tar.xz) = ccd22e262e5fa2cccd5da0ff016447d2df04aefcdd6960f226762667ea2e81b4afd406ea9f822b74d07c8f93cbe70ef90cfcc4040cae2820cf5ace94ce8d1113
SHA512 (hyperxmp.doc.tar.xz) = 350822e58fc27cf949615ab5fcc4e0b3a31c51921c64d59a039b235f786560f5f30debb676ea1a0cc2b21e1fd4fc0a390caf37846440350067417de7a7718069
SHA512 (hyperxmp.tar.xz) = ed89d3ec618c2826bcaad1b4766c8dda2e4561a5a7f54f373170740977139bab3d89af01143110054b31645311a6d8fbf9a615881af0097e9fe2082cb757670c
SHA512 (lacheck.doc.tar.xz) = cf4355d56985f9335270e4280d10602299fadfd01605e83edb4e8b89cf0d91b3e8ca671257a9599d5f5578e7a85140d390edd40c3b109f77bb9fca5ba47ca517
SHA512 (latexdiff.doc.tar.xz) = 2f484db22ec12886a4d76fabde3a65a982d3e659f524120b377221f91c7ad5973ad6023aa3226dd35baa687c86ec8dd8e736553d1604690d87e68d3cf7be84f8
SHA512 (latexdiff.tar.xz) = ae7179b5a9d410302d750233b6b22d29382406f3222129155c98b1f2ddc23d22ca7abe1683fd013c7302fe8e21e82a376499ae33d83c15a01fa2720696e5b718
SHA512 (latexpand.doc.tar.xz) = c06bbb57bc006aebb644fc4a8edc1f89e10617c67bb77193bd2f4dc3eb7b04b55fb1f239d7d6979f9b385134f3b1e584d9f10521efe704292b7e64865f78d156
SHA512 (latexpand.tar.xz) = e5b63c9aa31f3b5885b1a61503998ce949021b448199538ac385d3fe687156ce6669cd3610a7c3387592d968b0707f7122f35fd50402616470e34bb49f341bf4
SHA512 (light-latex-make.doc.tar.xz) = f5bb10465cf3dd983f59b101f6c631e202ce655282319c773cd0d83c0a9a8a3b9cee7790ef1f803b0c68215b553a2668d861a51dd9ec35b2dfe4b07ef0cf3a08
SHA512 (light-latex-make.tar.xz) = 1ede05b31d3b7acdd0f38b19e83b4258f05ddb184343dd36a46f142adca9f4081631d687411a1370be880dba5e3c6ad3f1c21108232e8b8f4fd03fdc1f3ad60e
SHA512 (luahbtex.doc.tar.xz) = 3016c12de8386af715932819701a6da1b106c504a7d13ba9bb5a04999737709f474b50c08311c1d4c23b5532ba7c1546cb0585e5375babbcd2091adf52d05664
SHA512 (luahbtex.tar.xz) = 30b1fcd361cff27688c65ecffbcffc65053696200abfccd543a14253b53a35de2af53b37f7ed1580510a8c63293d2d002cf4d9fd2d44f86678e2ecb09f02e4b8
SHA512 (lyluatex.doc.tar.xz) = 6f4f2d0b6ebba019542bebf22afbd4e871989cfc864474cf406ae9ad10d2eef1e69af9013e8d85d660538d955086406775d4d3b64572bcb3fec0334c60f41fae
SHA512 (lyluatex.tar.xz) = 8c6b3484efcc49f1b9938a6d24f123ba0d66615f4fa44c9055043a07e8ba56eee88103efa4c67441c6c8a8e0b12596b36671eb1fdd719adb88c10aff2f7b334f
SHA512 (make4ht.doc.tar.xz) = 2552e84307b92538639481b64690b2d4853f03e795b11daa61f88a1a15896f24982dcd563c181497a287744eabc5a4c3e18a2a705bbfcd9099383b1858a02081
SHA512 (make4ht.tar.xz) = 9eddfced4137652653744256bd4ef342a1b5462a2bbe1852c7fc264b08646b0757d24ae2d12711c66905f810a8f0749ae7f6d7f32983d3aa96fad63e9e104a00
SHA512 (metafont.doc.tar.xz) = 48b1def32bfba5ab1123712fe41d69f979e33a77456801c21f030de8a39b37fcae179db44a517d7b194d7e6e6eb93d770e179ca49db9014cd433c86ef91b07d0
SHA512 (metafont.tar.xz) = 2ba715c32631b3ce24aba65e7e1df90a7beabc52b855f5e81cd383f94399e439a344f8a8a21f38648d34d546ca8f1890a74922836557cae5cd05ac945013d71e
SHA512 (metapost.doc.tar.xz) = 1058be2aa15a7fef8e751821f308d663a8a115bd95754572fb04ff99018855592c60ed569bbbd3dcfae2b6cc4c27f8dac6372d6326a827847298fb5467678f25
SHA512 (metapost.tar.xz) = aab95d361bd62caa5e0eac5aedcc20a35357052ca0b31f16db5abb6d815e63f8366f055d7251018277bf57299885afc6c92fad32683d8d1b4d59c81da6cb9838
SHA512 (mfware.doc.tar.xz) = ec469dc655be20598ae40cdccd8360252cb216039cfcdfaab5f45d0276fee272a463f19db7f98f6d35b3e6930098536fe8eb4a453161646aa0ed33dd3f8773db
SHA512 (mfware.tar.xz) = f14b1f8876f8a4f2ba8954459c2a3739e0537d800fc1fde11aaaaa61400c18b9419edd3c7884ecac499da3efbd5219244c06ccab1efe17674b5458b464abd3ea
SHA512 (mptopdf.doc.tar.xz) = aba8f16aed39b0b8dde19eae496f7f811475a2a4ad07b420e9783b305412da8b0bec15569fa0325751f5ba101ab12ba6bf3f83d93cb50328adb5bb222fff8ba0
SHA512 (mptopdf.tar.xz) = 50f4acccc6db126ed7770fbe33e3925659797387d6d4a856286a32ff0444a234e3575b9be4679c90e60b502ca612f02d8de3a39c3beeff122404e5cbf9168819
SHA512 (musixtex.doc.tar.xz) = cae619ff0b16f557537ce3d28fd8df938d9297aeb37ed47713934e3a6ee41e4d8007e4e798b03221df6e958db93e2a765b9854576381eaacc924433e4efaa362
SHA512 (musixtex.tar.xz) = 85ff6dae443655c320990517debd59c2d3b3cf79ae795fd27836704af1ead716da34521e254a201ee8cad90ba0b5d1c559157567adf3e7142aa5446e91af0147
SHA512 (omegaware.doc.tar.xz) = e3312826fc6f2bb7fb8f116f7d73f4f113e2b4fda8acdce29668ffc324bdc90f26dfe21becccea36e53f22707067c19116fa2942fb4165aed3d7c28da88992ce
SHA512 (patgen.doc.tar.xz) = c7bf5af0965cb675a82ee13c6ec467f88395438d07d59379f4850a36c783cfd6661d6fa6493e67bf39e78be615e3148cda9452003b5e9f5d5ceb1fbd305d4ee6
SHA512 (patgen.tar.xz) = f37ecebfd74a30b2f4fcba5db893b31e7672f2d91d2be7f003bf625512dd54be056a23165ba8b1f5ed2165595405220df20dbd711e63a3be9901424aaf1fb0de
SHA512 (pmx.doc.tar.xz) = dedba4570b68a8628442716dc3a9b1699e5f531aef2737e4b3f47862a91ba69bda91d6fe6692914d2bd7b8fe3188a83fdfce8bdd219ab7c4f238a9c6ec273ffb
SHA512 (pmx.tar.xz) = 433287732fbb2cb47886c6c78c923d5b6a1b5c1e71e3990084cde9bb288a282fff7fb9134a5165e0fc0908b8e60547e23cb900bc82b99717133d7600fa17dc31
SHA512 (ps2pk.doc.tar.xz) = 032c5ab3442cf668d6b40851bdf710b4e4b9eca701bf04c87359c579a5fce52bedea15ee5dc9e4c5967fcc0e3b84805450987b73c204e0df4708b65a7cf74c13
SHA512 (ps2pk.tar.xz) = 764e6dc186bc0e9c1b5ee0a3c5a256e9d42d81645477bba49c59baafec55bc9af63124f77227ca5b6516bf3fa2bdb8d201af813cff09ac9da4574e70351922ce
SHA512 (ptex.doc.tar.xz) = 160902b1b32b9725f4c7cabd06dfb612fbbeef31845df108efd50917d85ef619ba62d03760852d31a21a23e2bdcb5035292b317982d7fede260a696041bb2293
SHA512 (ptex-fontmaps.doc.tar.xz) = 4b21fe546634aad338630520bf68fce2a83f8e6fade99d170ef87a92c8308dd289ed130bf67bfc88419f8752454ab04730bfaa68de90535984590ce8435d87b5
SHA512 (ptex-fontmaps.tar.xz) = b864c185b5718dfa76e0d4385654ca8e319ab0cbb59911defbec8d6198879265d064087df233d9020f3abc4bebe0742530f40b2ae6e584dbb4f5b6ed7ff28d07
SHA512 (ptex.tar.xz) = dca32af2c2742207b380c909190204049e29eb9c824f534c39757e3544e305a9395c9fd6ff76d855f1e7fc67e0999bfd863640fc2d2f45dc44bdaa7df543568f
SHA512 (spix.doc.tar.xz) = b783636e01e976f3a0020d6e5b8c87918277fb0caae09057e68b2e216e504618f0b784b1214fdf99fde79cae5a6169c585bacf093de149a99534ef7069e6cb2a
SHA512 (spix.tar.xz) = e0447cedced73a9544b837c555f3d42995b5fa5e23ba737b6794e11e7fa391969c2156ae89d6e7e18140dae0e0c9b0f2d5d6036c4fda3d236790abb21fc8d9ed
SHA512 (svn-multi.doc.tar.xz) = 6fb5e19bc88ab89fb7363587121374f08ebac0d3bc2868e27c43a8deb986cb5b1e82a665adfa56810ff70a49104007b056aefbb3e55cb821e0039eef0bf941eb
SHA512 (svn-multi.tar.xz) = cb2b1c9a95445b1b2cae4b4f8b7d22a417c766b8158a229712a2ecf8b5b2c731c4c4ee348e626a734406487327d7e0288df458329d1231aaa9c63c1283636930
SHA512 (synctex.doc.tar.xz) = 14e1f266182ee0be47a7b3841435f79594cdeb959245e6226520e81248691beeaa73f365c1112ef3bb4eacf4ca77e55265bd0d13c190858144bdc3064fa88a59
SHA512 (synctex.tar.xz) = cbe1f8c6d64619f742003c01566d55b675724f5d03681ad53dc1f58ff7314af88000ba25ea74e4fcfb07ece6160be6976ac8e69a9a1b524f223f5b80f350deb0
SHA512 (tex4ebook.doc.tar.xz) = 4f7ab8795e1f6d848fc2bfa4d2cd772b68ba1b8cae18b86e20720930d56bf645c89aa2a188cab8c9c081ea497b7c4382ae8384db278291cfdb913533911e3d12
SHA512 (tex4ebook.tar.xz) = 2a0d11b9b86594e65100b5c6670533e42e10e81d1b8a4e29b2c628b40c8d3d8be69280b64c576f2b47cc06d47236bcd3e4213a5b551c616f9fc6072929eaf428
SHA512 (texdef.doc.tar.xz) = bf84f04183654db606a7ebcd30d4986bca69e633439511cc7d9cf57a3a1210231ed158d2bcd86c5014065d355ec94faf3d5f9ab08be568eadc6637ae9cb72aaf
SHA512 (texdef.tar.xz) = ad6b67da367b1cef01db4e7d912685ccfde58babd7dc4868325624114d85e89f5daf3a47fd855dc084ffff66e332ca85c5d77f682d7bfe1b507c43e0a0612977
SHA512 (texdoc.doc.tar.xz) = 80ddcd5d32e02ac87ebba175b3f2e253ca02daf70e38ec5a6db1a0e595349ad33d6b7cf7e95f8af7de621600a58b952927edde04319adec13fa139fa0b634970
SHA512 (tex.doc.tar.xz) = 69e9a2068eb63d7a503be0aa3d94cc270485370be0342d5adf6fac714743a90b705622b8cfbd7e62e52c15f9a663fc3101d11a116c1af9c4f9f3f5c5d3dbfc77
SHA512 (texdoc.tar.xz) = 02e7d23e20983f96d05725eb91a4f8bed6bdad0051e9f3c152f945e22255c70e7c0b2d93eeca1fdbbc2ca550a7a15d46540ecbb383575b03a4da9bfcea4e42aa
SHA512 (tex.tar.xz) = 028cf62dc7bd7f62acdd005c1121b4fcd55f9130db61d3bfd782cdae22e2e51581cd66a43a827ce76f6e4fed09f2050ee81c13594f6df64817c3a48ca3d1d088
SHA512 (texware.doc.tar.xz) = c4be0bdc3490a0bee08d6a99907f7abe1145ae8f8f89dd8665cf6a8738d07c7a537c0d7e767b56a6eed3a00ea169729b4d78208aab2aa883c9fb422e4dde3383
SHA512 (texware.tar.xz) = 532cf8cfb19ea5c8ed0fe6939fba0ddfaed58989a588acef18ef38c587d8485295e9d438487fd2225a0f68c12d0dd8c6263d597c2e94cbdc96ed074ddd296729
SHA512 (tie.doc.tar.xz) = 66e92b91bcf9b6c44d8d2af141d4980a2b0e0ee3a9dcab778eae118debe4ce4459c933cde6a5cb8cf07af8b5d5d001bc1bcafa2776ae64121ba6308a7b19b3cf
SHA512 (tie.tar.xz) = ca58ca773fd1e4e786f12e1acf9b0e39afe1709c73cc7a0da4331576933c1a4aafd9eed3a0181bcb20b6087d409c73f78fc2a77d96bb75d183996593b8aadadc
SHA512 (ttfutils.doc.tar.xz) = bac6812f37f1d53184a4944e91b06c4ecd6a03d96d78956781c4b01c38ec3b65b74032704d98a4951f8dd5ad84ff54d82891c12e7db99ac58e687e535758decc
SHA512 (ttfutils.tar.xz) = 2e4eba2acd3b97297d2629ad93fdac4587afdfff30584ff77f69574efde4172ce60b904100c70d168016e8cb5c6407f4b4ef5ed7b3c83f942b7477af2f101be7
SHA512 (uptex.doc.tar.xz) = edd326824f93b2e893ac9bc7b6f498178427477138c2e068a3cffddfef5ac658cfad2671454caa6c222bf165a2d4a16964fa67eed86c01342d119053f31a3fa3
SHA512 (urlbst.doc.tar.xz) = 897c866ab03bdd5ab741537182788c5f484009681d6fb98f1149329068be707abae7ef012c0bd0170e2b4b673eaa63b46f5d0d55714015e8a451457f5a6c540c
SHA512 (urlbst.tar.xz) = 25d5655fc01f98a1414aa962d8ad924464835aaed993e3bb5a749721034aacb559a4ca1590d353615734535ac91d31abf7b99004f6298525ac618f35bfcb0fd0
SHA512 (velthuis.doc.tar.xz) = 06a9330410b55052759e18efa8720ef65f0f3dc8a2f15d3c0a0c8f70edaf8de65eeef8ec10a9a376b4b285b1c8f619278f68e9a2bd7ba1622da72b6ff488f8f7
SHA512 (velthuis.tar.xz) = b7901813517790a92a921b1202c39a058d53a4159634cae79960ec7ce2da08acb757b307b5066ab1251e4b460234fd9dd98c2e404c05fc6384c656472302e3ec
SHA512 (vlna.doc.tar.xz) = 921d76535cbe7e940617355c74b82acfc61edb840db8ed9cae1aaf987fe6b83245505048c7c550d59829b204f139ae1cfd44601435e2fff2b0d5230b45a27b77
SHA512 (web.doc.tar.xz) = ed04fce861ae2adda602a2a50d560cc9a5863ab1668dd9512baa96b6c37acd8334e4800bc4ca853c0b1f58bd3a643abc82a96f31de9d4980806ad0572ea2a92a
SHA512 (web.tar.xz) = cc8b2b6525ef1ee49162dc157e8d735225f5fc3bee54e56ac01ad47f85f639e4c43b4409e949d68804e650e243da0a8a6d098ca7c37587f14c810112cc82abee
SHA512 (xetex.doc.tar.xz) = 7fda9e0a2e7f4dcd6a1813cf8fe280f7193aa88a77cbc5891b892112950e5d5e7690328e267805c8b9a24dc735e7991065ee3664b1278fa334f83ddf06aee236
SHA512 (xetex.tar.xz) = fddc7a48405d5ae56b09fab5f180372972fc7fdd10eb19ec8e2b0f6e1e3bc54d2f92512a6954238c21fbdd75425923dcdf115bf16fe35ab3a850363c41ac99e0
SHA512 (xindy.doc.tar.xz) = d0dacd7cfa169b03b7fa9d0b351133582577c3908323f501d7bca7b0165159b72c34f62abfd73b97065baef8cf179b292e654759f3b3e324112623539e5acfd6
SHA512 (xindy.tar.xz) = 9b7fe97c14e3cf30d1e6743c2d7b4460e8bca901ba3ee216001f1518ff4d834fb3d9b67085825a6e152c6acde544c41cf16d56e609016caab89a594305a21599
SHA512 (xpdfopen.doc.tar.xz) = b4f332054a5fe85c9404a05673b373ac2b1275b79a1f0b57061cda614350df230dba60ed3be590e0688840334a113ce5c64847c1dc4e6ebae6cc29524c1f6bd5
SHA512 (luajittex.doc.tar.xz) = 7637835fae934f4fb1aea954270281a986733d0e0592204346edc290f2cd7d5200ee2fa0d9e15a27be8221c3c990a8c3d4654e314f96441a65c197d3bd259129
SHA512 (pdftosrc.doc.tar.xz) = 01598180f8eff2913eeebf5bc3d5f3aba32029286fc6e0c072aa8c0f4dabaf0c6e71ae7451ba9a7b65b4d0075a7f0a3baf345b02c5826eab64d74e39eb82798e
SHA512 (amstex.tar.xz) = 7d309307df0f162f303f4077dbd92a1ef739906ec880b4a6dfd80443358a756d065c8f690e273d4b316016cff60e7ae0b29322d38ecd2a27c8914776643e3545
SHA512 (amstex.doc.tar.xz) = 440cdecbf6397b0205dd3b0c9308b096d3f75075fa5d8890760ac2e2c7351293a76f4073bee4a6188c527f12999b752d96d5ddee31aaf0dad59edd95d44bf2cc
SHA512 (bib2gls.doc.tar.xz) = 2a22e662fa0c41581a3c9d9496f97854ea2faa0d01970ab0cc0542048d0ebdcfcbf7ddc7fcf519510d99300eb6634f1c7688874cf02cf6052962d903c5810887
SHA512 (bib2gls.tar.xz) = 009e393b3083a3260642cb36dc463c714689d1b32d07885c9d20092e4f7386d05118c452e6f97001120f70558a69aa58d757ae0998cefe10e164bb172e432fbf
SHA512 (bibtex.doc.tar.xz) = 4f95c010ded89688791e1115ce4e167740b43e9e48d596b2621e6c18b4529479da9441351b463946e7efa1e428cba3d60112c5f7a5e008733a00fc64050723a9
SHA512 (bibtex.tar.xz) = 568a72b269dbcb0d5c723e346e8118a0ed923273460d9518891616cbf7b174b17cd75acff02f092176d71b6020483de75df20994bfb66c2cd46432c33d5ade3d
SHA512 (bibtexu.doc.tar.xz) = 0f200681fd81074a5f23477ff99ac9e08e2d123056544edf7bc5b7b7645c22b74b66404028133037b5e47ffc4ff7c0059a1ed375ed0d3e4d211632c44f37072c
SHA512 (bibtex8.doc.tar.xz) = c305fe0afcaab072ee07542b8bae8475ce205744500f81c6de400b2bcd7ac05ff65a025301319f80a668ed35d653105c0ec0ab392c0c893f5d76802a1806bd04
SHA512 (bibtex8.tar.xz) = 27008a8ccf05b7f48f7668ea171c9d53063fc26c09ac4507a3eaa86eb22b94cbd70ba6c2b7a8d439d7978a3860be37733dcbc17f7cef930d06dc5a45a89c95d5
SHA512 (cweb.doc.tar.xz) = 978e2666f833bce94ac7323d9f9e9c45542bf6ea2c5a5c35e6d54679831ad4c5c5676d527b249b6ea2f27750f7e6e54ad18032e6ddae6bb84469d64bf2c18e46
SHA512 (cweb.tar.xz) = 7888adf1d9721784827b3f9aa880b9929481cf58d13b3331f5ca17f8818894f0bfefde882c248676079fbe47981032132c44bf9012fa515afc36139ef760a0e5
SHA512 (dvisvgm.doc.tar.xz) = cebe9fc18ba72542133e10c98277762dc221747cec852ea500a56058be75f25f46a96887d04144a2786a058e085451568138b697f0af7f57ec692516daf639d2
SHA512 (dvisvgm.tar.xz) = fd8df318271d357d2c874a0dbd66ff7a1e171f67a9ad51e9558b97fa6e1641e000b002d8b3894659302a9f3f0307201c5fec5f0abc9cc9ad8daa4e4d19e13364
SHA512 (epstopdf.doc.tar.xz) = b0e134d9907efeb41d4b83ebabc3e83f7ae04c354584f157726f3f827cee28824562f6864f8e39864410aa97e05b80e97c91248d27923ba910556c35d661db65
SHA512 (epstopdf.tar.xz) = de91f8df2838eb7b8f0406b63895e7c61d0154017140f0b8cc1306b3369237e72015187327387e55fd996321625abf9fde5ad3575f84a0168cc21070427445e1
SHA512 (hitex.doc.tar.xz) = 30deaac343815d366a1cd265d68b74198857b3fb6a953cb000e5c5351aecd03b2eb68f563d796d21ffebbbf479ed74bfa95f72fb8ef5a0055590c67014e5d8d2
SHA512 (hitex.tar.xz) = 4e2f7492a20dce409299344245b89e778cd5bee7fd7baf8de4a630906129a6f011e6666d4bed2b9df20826d2d9ffd0bed179312491434be2db99e834cb9a4ac3
SHA512 (kpathsea.doc.tar.xz) = b29518a446a11a962ebf795742b947179e5f99653f1be35dcf1cbabaf086d0f0550523cd26567232a475a618bf1cf815d05d0169df3c40d3438759e4a95a78c2
SHA512 (kpathsea.tar.xz) = 89cdc74e3f82fa3b62afa61e6a946d4cbf25b71193249d1a5f6122b0047ba02645412cda9248dc7cac487c23781e11c2dc1b9fcef4b95c7ad8d230b6253e7637
SHA512 (l3build.doc.tar.xz) = e126739b4ad5fdc305385929f88917dd61df72cb98d5db50d625b16bdb3867af8d84161a8394ed04b1322c52f53504a28852b919282b3431f81c533d0240cc91
SHA512 (l3build.tar.xz) = b34715b851daf019e56539362b32d3b7f13ee838f6030e9e94fb6da1caca14ba595567edc91798f31ab9856c131d192876f0a4a32f6eb9caf22f4a62a1eaa94c
SHA512 (latex.doc.tar.xz) = 68ecd2a5c85afe7b39402db416bb7ad0f8e5662c77d77c0839a470f3f70da65377560fbcb5a6952e997da70868533f29a4b7c65d3f7dd63db13aa95ee7159b23
SHA512 (latex.tar.xz) = de95ba089738862d57b1139a21da57a8263cbe9ff81a7ab43608ce23fde57b4630057a95c99ecb7be712bc864e0c07a56429019d7aa9f63c01f47a995d5d567d
SHA512 (latex2nemeth.doc.tar.xz) = 7fa7ae1c628e29549fc3cb2c98164e27f60cc0bcbf14e26b7a325aee313a5f41c3144d5adf2993c20999016f4798dcd436d96c637c4258ace0efc3bda4a54a43
SHA512 (latex2nemeth.tar.xz) = f2669a9e58857094c922b968f337e2cb2cf475b07811d53c61a8e0b4dc8bcc41d95186940361676bc62c0f235edb4fe7a7c0d5ee0f6d74c541d1108960e18e7e
SHA512 (latexindent.doc.tar.xz) = 2a34372c3aa18aa3016262905f675d23eaed1d8c6e0e360b61e2084b3bfcfdebc6e349ce2af020fb09a24037119ccd5d3a80635454100ccc688251cde62519b9
SHA512 (latexindent.tar.xz) = 86767228ea35d9c65f4954ae441b13702abb17e2baee941bfb95be4323fd3468953781ceecee7c3518b45f05d94daed5cc89eb18b4d17d2e0ae545a7613bb5c3
SHA512 (luafindfont.doc.tar.xz) = e7196d9a2e69b5a6d5582d7ddc00ac480b16228b424cb9d568ef1ff6fbef48e5926776d5f22fa0eb5c4b09b6b29a283416206f64cf324356b35d66228bbbd3ea
SHA512 (lwarp.doc.tar.xz) = 704b3f89973e2fa158252e48f3804b4de5f45bd1ae03954d0eb0f598a4c1c05d6378229dec906caffaf5dfd1ea57dbd53afc77d3d1abd96c3d1be7f146b7ebfc
SHA512 (lwarp.tar.xz) = 2001aeb9c76b008488cededa297bfd8802cc2f4961c6f1432ed4118de204d9e8a0769b3b540ac922e786e2e6723964cdf2975f1e59ed7006029062129996e4f4
SHA512 (oberdiek.doc.tar.xz) = 73a422dd8009d191a24790f5f68b9ae2a5046f3e42e3c360faabb3f7c7581afdf9bf2b20da8609e8d3513135ee1de98329cd4fb1713fce23c5a03fac28c976b9
SHA512 (oberdiek.tar.xz) = a07473833a8eb833fa1b149ae6f913219c48ad9ecf9671196774d9b0ea7ac06ef110e3ca18a2a53d7a875ca803aff6e07cf435ef1e6d2020a353df97c0cb7046
SHA512 (optex.doc.tar.xz) = d0c5512cf6ad24f47fff0d4db2b386dc882dec4b1b2bdd71a2acc4c7e5338898fc15bf3887332c0aa16e7b8df385c75c9a764f82bbc31a83b3ba3e899ce1b0a7
SHA512 (optex.tar.xz) = 50afa81df97805c224fb765885c453d756d926b6982d1e149c14d4e1aa6164980b4584264d561b77f20f3634c22d09c26397cb2c136474fdbb1f000a4fbe1118
SHA512 (pdftex.doc.tar.xz) = d059f01596573efacc4ca80333b07236f860375f49b82d0cd3ab6b3f441f379163a37c820e713a2d96a8f69b821b3dbd68f360c5b5f005dccac54575df4b5d4e
SHA512 (pdftex.tar.xz) = c0158cb19918ea2bba57cc68e32af1d2c4ef50ba45bf05e0c8b7e64057daee19843ff77633e4dd0ad660df39983c46f755c691f85d4aa2000086c02d48498d0e
SHA512 (ptex2pdf.doc.tar.xz) = 5635ead2dfa20ce9b616073272452de5c68c55104d88b2362b87cafe4762608d681b0c370169bff78466520d14f9055e509efdaa4ecdb083c3c3111ad829978c
SHA512 (ptex2pdf.tar.xz) = 6a4246d9fbc7cc6f37319d338df8320769cd4b1f0247186beea117b8bf228263f3a330146cf251a9e8e8c7232eb894ce6dad9eda840dd4a154f2502eae4c0f57
SHA512 (sty2dtx.doc.tar.xz) = 1bc66506350b07341c8c4b858c6b1c637d9f0bf48323714ee7dedd701faf20e3cadb318f56bfb1a05f4fcaf84cdd6e9db18299801a69e0359937d7852ac6a824
SHA512 (sty2dtx.tar.xz) = f95ad4f6260657ce329c10ae1306e5ec50965c2766c3c28f5a6dd77f4884637c36ecfae28b7853dfaf4e2e5bc256713abe4c8b3525e194fed1eccdd1ea24e1ac
SHA512 (tex4ht.doc.tar.xz) = 1d207661007626fdcbbdb91387611c8333908d4daa83b5322b0c5320c8b83694255b8e59f6c1bf94d7bc0c956711a801f049c60ee54e5dd6b3c2ceb7082ecae0
SHA512 (tex4ht.tar.xz) = 57ea737b006b20e326e409e55dba3ac3231181bee9b3dd5a725533cedcd4030f10ef44461003673964aa2a78c79a979057be03c6238575f3d832d8e69cec25e0
SHA512 (texfot.doc.tar.xz) = 07cbd86a5f4731257804a8a62fab247a5a091fbdb51b5f618b42200c06ac8293e809ba19fc98f844dbfe6321e733aae5671b5a8318892608687a454cac15bd10
SHA512 (texfot.tar.xz) = e7553ab1e2368f1ee54cebe94ef1cc6675a6dd6f76f1bb94b1d79a742ddbbfb30215c97b7aa08165ec0e94b4468491d6cbbe6e1d8d77c24e37f3ec46104cc12f
SHA512 (texlive-en.doc.tar.xz) = dc38f273ba39e0cd69ffa9b755651073acbe0bfe8d5a4ffd0d267971aa82a711b74ed9cb03c5d779c06b859d0944611a541cbd22d40bf2db0841b01d27b5b9a3
SHA512 (texlive-scripts.doc.tar.xz) = 1ed7a1468a152ee1dffe304922df52110800b4ef6fbd75cde71e5a822ecf6b187559448f3dbed89eb3bb4ee4eb5c5c4e89e25f41811f0d8a2b006d19eab30e91
SHA512 (texlive-scripts.tar.xz) = 90eebdbc0e1cab8046faefaaaf0f78523b614ea35559eb189432f5fa052eeca73ea2d4a89e57add9519b0280e88b6617d282047ce5af95c672c3c08ee55fecda
SHA512 (texlive.infra.doc.tar.xz) = 14b7c89dd015fe0455ad8291736a53687598a4e3aaca413950eb334eafac91eb63b213967684778d2e2a3b46ff79909311797116be10a587c016646c40fea835
SHA512 (texlive.infra.tar.xz) = a71b92deef545eea40aa523ea337e77df2bad58cd8be77ddafc7f0bf6f1469a30d5e12d33d4e4d5d89d004c3d008630d1673aeba6f80e6e8a65e19a5446d000c
SHA512 (citation-style-language.doc.tar.xz) = 1adc512a538ca6c9869c373e55d2851d90ad7a52dc804c6e15810d6789518ee45d097394c40338bd8f5285b9ac1d2b19c3d92da75752629ea7d9a3f366057941
SHA512 (citation-style-language.tar.xz) = 2d792b1e0f7bae17daa6cf17e4aa9135f1e7b67eefb4f253a18c150e022854fd62794b12b3592ac457f467093be88c74cb2dc8c74f9a1b308a369d53ced68a69
SHA512 (texlive.tlpdb) = 53da64dfd77f334d1a9d35e34ba966af8f40d981c50a1c2fe84de74a9e8a4f64fe1ae8aa21a61e3d79b37918c709cd9ed8f45c8e4963f07bc12efdfdc17d9d56
SHA512 (texlive-20230311-source.tar.xz) = 93ac43f3055fee0103a6cfceea18d39ece63984914f3af9ad76da218f2d568852d9b987d1c9647c1497b985e4ffa297ef97dc2d50d3e90f62b03ad685af31d96
SHA512 (xindex.doc.tar.xz) = 3d36e5f8811c6df621717a7077bb49bec137a5bbc3c6593078644811d915c720d41c2e1a6e5be6e3af95ddc64879582061f7aba6113e2b3a1ee5d7b3f63064d0
SHA512 (xindex.tar.xz) = c88e7d602c741db871ab6ec5895fee5455b954c4487d57be812b172369c5d973a8fad4b9fdcb60179562d04ba4105ecfc1228ae7d414a7d90df9a9723306de07
SHA512 (bibcop.doc.tar.xz) = 93abe6f0a97138237d7546d132385069f8ff8a638a31cf9be23619b812fa578af808e6f9ce04c06778a4559b1eef98b7d24a0ce5ce6eb5ca9680fc2ddbf7c4b8
SHA512 (bibcop.tar.xz) = a035642f1b1827f0b6b4d15b4115054b9ab3ff49d7d369f3e304cab5964a707b23865b837c6b156b913e33fe8ae5589941e6ff284ee0b62454a9eb8ec77f3442
SHA512 (pagelayout.doc.tar.xz) = 2e777b9486a9de61a7bc77e7777b92bc4512f051e716c2b5597832ae862f4885c28f9518f5371316ef09d36a62e420c2648b6e2bc37122a3a21f36965c26834d
SHA512 (pagelayout.tar.xz) = e1dabe46c223811fb88d17c13ccad55853c4c5eb13d7927b841cded1ca198fd04d7add6a54e9542f05fbf1953eb2431b8a2d508531f26909414a40baf7d78d52
SHA512 (texaccents.doc.tar.xz) = 87bc11f186513adbf32c15af2f1c1253dd72802fb2008b76b9d7d67fc0a039aab0d2424fb853b6bd8e968cd4e9c1cd93bff786fa07e84593fbda99191b053eaa
SHA512 (texaccents.tar.xz) = 5a2a79c9faddebd523939cb3cf42236b1d2c441a036cd7fc6f6f62422e5142cdbc0a45ddaa9e642266c41c9fe5b723fc440d0372639cffd399a89d489bd11b66
SHA512 (upmendex.doc.tar.xz) = ec4d1670ff84680fcab88e29ca5f4306f44450ccca9cba06282ad34bd026f74b46d166724a06a313957ca8d798b0c296e848bb248ad416597a99afb16b4b5a0c
SHA512 (digestif.doc.tar.xz) = fabc6d0ea5a1e55b7ecd6430b2373c15e413c985485331bd7bd5bca437947a76ac7d8ac6ed2ea3d6afe687284aef673b0e302a1c9925737c6e1d95cecf2ea8cb
SHA512 (digestif.tar.xz) = 098d625749cee42f965d21ef5ec2843211db36fd0f4cced882ed15f32a20a2d70bf292b01e6797e7ca097adfadf2fd40d3c5eef6c694da39e8302770cfb784d3
SHA512 (texaccents.source.tar.xz) = 8bf5d4957008833d54f87eff9feb14f60694ea02e7e9fd2cd5c5d2e2db3f6de3a33784121208ffab516763fbf578125399cbd6f39750e6bb0162a65c2fc44f24
SHA512 (luatex.doc.tar.xz) = f77425653668fc4cc76383862c67a7a170d0021a7d946f55ee399e2400357083ea4524862f8c40360fe9f6c39d6d2c2dfc2babfb43db66a783649d0f4358b059
SHA512 (luatex.tar.xz) = a857a84fa4d2b03a1ba8a7890dd52eb42c44174cf2117ea9ab1fb6d946decedacfa51af4cadcfe30580bc20152ca0403db641c5c61a5b86b726e994d0b4114c8
SHA512 (build-svn66984.tar.gz) = f17e97c11dcd5ccb5bc29c6ffaaff7f9f888b80f4f9b17199d3ff7fcde4f10659c4cf042a55b811e7ba58d34dc45124a1e3e4f648755f5a1855fc3aabbd674cc

View file

@ -0,0 +1,18 @@
diff -up texmf-dist/scripts/texdef/texdef.pl.orig texmf-dist/scripts/texdef/texdef.pl
--- texmf-dist/scripts/texdef/texdef.pl.orig 2025-07-18 14:43:22.865503978 +0200
+++ texmf-dist/scripts/texdef/texdef.pl 2025-07-18 14:46:49.871203706 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/env perl
+texmf-dist/scripts/texdef/texdef.pl#!/usr/bin/env perl
################################################################################
# texdef -- Show definitions of TeX commands
# Copyright (c) 2011-2020 Martin Scharrer <martin@scharrer-online.de>
@@ -222,7 +222,7 @@ sub envcode {
}
## Define and process options
-Getopt::Long::Configure ("bundling");
+Getopt::Long::Configure ("bundling","no_ignore_case");
GetOptions (
'value|v!' => \$SHOWVALUE,
'Environment|E!' => \$ISENVIRONMENT,

View file

@ -1,26 +0,0 @@
diff -up texlive-core-20170520/source/texk/web2c/luatexdir/luaffi/ctype.c.crashfix texlive-core-20170520/source/texk/web2c/luatexdir/luaffi/ctype.c
--- texlive-core-20170520/source/texk/web2c/luatexdir/luaffi/ctype.c.crashfix 2017-09-12 14:16:33.675640506 -0400
+++ texlive-core-20170520/source/texk/web2c/luatexdir/luaffi/ctype.c 2017-09-12 14:16:53.953166205 -0400
@@ -245,6 +245,10 @@ void* to_cdata(lua_State* L, int idx, st
lua_pop(L, 1); /* mt */
cd = (struct cdata*) lua_touserdata(L, idx);
+ if (!cd) {
+ lua_pushnil(L);
+ return NULL;
+ }
*ct = cd->type;
lua_getuservalue(L, idx);
diff -up texlive-core-20170520/source/texk/web2c/luatexdir/luaffi/ffi.h.crashfix texlive-core-20170520/source/texk/web2c/luatexdir/luaffi/ffi.h
--- texlive-core-20170520/source/texk/web2c/luatexdir/luaffi/ffi.h.crashfix 2017-09-12 14:17:26.290409821 -0400
+++ texlive-core-20170520/source/texk/web2c/luatexdir/luaffi/ffi.h 2017-09-12 14:17:43.041018016 -0400
@@ -370,7 +370,7 @@ __declspec(align(16))
#endif
struct cdata {
const struct ctype type
-#ifdef __GNUC__
+#if 0 /* def __GNUC__ */
__attribute__ ((aligned(16)))
#endif
;

View file

@ -419,8 +419,8 @@ diff -up texlive-base-20170520/source/texk/web2c/pdftexdir/pdftoepdf.cc.newpoppl
+*/
+// begin modification
+ groupDict = pageDict->lookup("Group");
+ Dict dic1 = page->getGroup();
+ Dict dic2 = groupDict.getDict();
+ const Dict& dic1 = page->getGroup();
+ const Dict& dic2 = groupDict.getDict();
+ // replace dic2 in groupDict with dic1
+ l = dic2.getLength();
+ for (i = 0; i < l; i++) {

View file

@ -0,0 +1,11 @@
--- texlive-20180414/source/libs/luajit/Makefile.in.annocheck 2018-01-10 01:37:05.000000000 +0100
+++ texlive-20180414/source/libs/luajit/Makefile.in 2019-01-11 22:45:34.503080977 +0100
@@ -680,7 +680,7 @@
NEVER_NAMES_LT = -o -name .libs -o -name '*.lo'
AM_CPPFLAGS = -I$(srcdir)/$(LUAJIT_TREE)/src $(LUAJIT_DEFINES) -U_FORTIFY_SOURCE
AM_CFLAGS = $(LUAJIT_CFLAGS) $(LUAJIT_HAS_NOT_LOG2) -Wall
-AM_CCASFLAGS = $(LUAJIT_CFLAGS) $(LUAJIT_HAS_NOT_LOG2)
+AM_CCASFLAGS = $(LUAJIT_CFLAGS) $(LUAJIT_HAS_NOT_LOG2) -Wa,--generate-missing-build-notes=yes
SUBDIRS = . native include
lib_LTLIBRARIES = libtexluajit.la
libtexluajit_la_LDFLAGS = -bindir @bindir@ -no-undefined -version-info $(LUAJIT_LT_VERSINFO) $(LIBLUAJIT_LDEXTRA)

View file

@ -0,0 +1,641 @@
diff -up texlive-base-20180414/source/texk/web2c/pdftexdir/pdftoepdf.cc.newpoppler texlive-base-20180414/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20180414/source/texk/web2c/pdftexdir/pdftoepdf.cc.newpoppler 2016-11-25 13:24:37.000000000 -0500
+++ texlive-base-20180414/source/texk/web2c/pdftexdir/pdftoepdf.cc 2018-04-30 13:26:10.442342831 -0400
@@ -1,5 +1,5 @@
/*
-Copyright 1996-2016 Han The Thanh, <thanh@pdftex.org>
+Copyright 1996-2017 Han The Thanh, <thanh@pdftex.org>
This file is part of pdfTeX.
@@ -17,6 +17,15 @@ You should have received a copy of the G
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+/*
+This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at
+https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
+by Arch Linux. A little modifications are made to avoid a crash for
+some kind of pdf images, such as figure_missing.pdf in gnuplot.
+The poppler should be 0.59.0 or newer versions.
+POPPLER_VERSION should be defined.
+*/
+
/* Do this early in order to avoid a conflict between
MINGW32 <rpcndr.h> defining 'boolean' as 'unsigned char' and
<kpathsea/types.h> defining Pascal's boolean as 'int'.
@@ -39,10 +48,7 @@ with this program. If not, see <http://
#include <goo/gfile.h>
#define GString GooString
#else
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
+#error POPPLER_VERSION should be defined.
#endif
#include <assert.h>
@@ -84,31 +90,6 @@ extern integer zround(double);
#define MASK_SUPPRESS_PTEX_PAGENUMBER 0x04
#define MASK_SUPPRESS_PTEX_INFODICT 0x08
-// PdfObject encapsulates the xpdf Object type,
-// and properly frees its resources on destruction.
-// Use obj-> to access members of the Object,
-// and &obj to get a pointer to the object.
-// It is no longer necessary to call Object::free explicitely.
-
-class PdfObject {
- public:
- PdfObject() { // nothing
- } ~PdfObject() {
- iObject.free();
- }
- Object *operator->() {
- return &iObject;
- }
- Object *operator&() {
- return &iObject;
- }
- private: // no copying or assigning
- PdfObject(const PdfObject &);
- void operator=(const PdfObject &);
- public:
- Object iObject;
-};
-
// When copying the Resources of the selected page, all objects are copied
// recusively top-down. Indirect objects however are not fetched during
// copying, but get a new object number from pdfTeX and then will be
@@ -212,18 +193,6 @@ static void delete_document(PdfDocument
delete pdf_doc;
}
-// Replacement for
-// Object *initDict(Dict *dict1){ initObj(objDict); dict = dict1; return this; }
-
-static void initDictFromDict(PdfObject & obj, Dict * dict)
-{
- obj->initDict(xref);
- for (int i = 0, l = dict->getLength(); i < l; i++) {
- Object obj1;
- obj->dictAdd(copyString(dict->getKey(i)), dict->getValNF(i, &obj1));
- }
-}
-
// --------------------------------------------------------------------
static int addEncoding(GfxFont * gfont)
@@ -320,10 +289,10 @@ static void copyName(char *s)
static void copyDictEntry(Object * obj, int i)
{
- PdfObject obj1;
+ Object obj1;
copyName(obj->dictGetKey(i));
pdf_puts(" ");
- obj->dictGetValNF(i, &obj1);
+ obj1 = obj->dictGetValNF(i);
copyObject(&obj1);
pdf_puts("\n");
}
@@ -376,17 +345,17 @@ static void copyStream(Stream * str)
static void copyProcSet(Object * obj)
{
int i, l;
- PdfObject procset;
+ Object procset;
if (!obj->isArray())
pdftex_fail("PDF inclusion: invalid ProcSet array type <%s>",
obj->getTypeName());
pdf_puts("/ProcSet [ ");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- obj->arrayGetNF(i, &procset);
- if (!procset->isName())
+ procset = obj->arrayGetNF(i);
+ if (!procset.isName())
pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>",
- procset->getTypeName());
- copyName(procset->getName());
+ procset.getTypeName());
+ copyName(procset.getName());
pdf_puts(" ");
}
pdf_puts("]\n");
@@ -394,10 +363,29 @@ static void copyProcSet(Object * obj)
#define REPLACE_TYPE1C true
+static bool embeddableFont(Object * fontdesc)
+{
+ Object fontfile, ffsubtype;
+
+ if (!fontdesc->isDict())
+ return false;
+ fontfile = fontdesc->dictLookup("FontFile");
+ if (fontfile.isStream())
+ return true;
+ if (REPLACE_TYPE1C) {
+ fontfile = fontdesc->dictLookup("FontFile3");
+ if (!fontfile.isStream())
+ return false;
+ ffsubtype = fontfile.streamGetDict()->lookup("Subtype");
+ return ffsubtype.isName() && !strcmp(ffsubtype.getName(), "Type1C");
+ }
+ return false;
+}
+
static void copyFont(char *tag, Object * fontRef)
{
- PdfObject fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
- fontfile, ffsubtype, stemV;
+ Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
+ stemV;
GfxFont *gfont;
fd_entry *fd;
fm_entry *fontmap;
@@ -413,33 +401,39 @@ static void copyFont(char *tag, Object *
}
// Only handle included Type1 (and Type1C) fonts; anything else will be copied.
// Type1C fonts are replaced by Type1 fonts, if REPLACE_TYPE1C is true.
- if (!fixedinclusioncopyfont && fontRef->fetch(xref, &fontdict)->isDict()
- && fontdict->dictLookup("Subtype", &subtype)->isName()
- && !strcmp(subtype->getName(), "Type1")
- && fontdict->dictLookup("BaseFont", &basefont)->isName()
- && fontdict->dictLookupNF("FontDescriptor", &fontdescRef)->isRef()
- && fontdescRef->fetch(xref, &fontdesc)->isDict()
- && (fontdesc->dictLookup("FontFile", &fontfile)->isStream()
- || (REPLACE_TYPE1C
- && fontdesc->dictLookup("FontFile3", &fontfile)->isStream()
- && fontfile->streamGetDict()->lookup("Subtype",
- &ffsubtype)->isName()
- && !strcmp(ffsubtype->getName(), "Type1C")))
- && (fontmap = lookup_fontmap(basefont->getName())) != NULL) {
+ fontdict = fontRef->fetch(xref);
+ fontdesc = Object(objNull);
+ if (fontdict.isDict()) {
+ subtype = fontdict.dictLookup("Subtype");
+ basefont = fontdict.dictLookup("BaseFont");
+ fontdescRef = fontdict.dictLookupNF("FontDescriptor");
+ if (fontdescRef.isRef()) {
+ fontdesc = fontdescRef.fetch(xref);
+ }
+ }
+ if (!fixedinclusioncopyfont && fontdict.isDict()
+ && subtype.isName()
+ && !strcmp(subtype.getName(), "Type1")
+ && basefont.isName()
+ && fontdescRef.isRef()
+ && fontdesc.isDict()
+ && embeddableFont(&fontdesc)
+ && (fontmap = lookup_fontmap(basefont.getName())) != NULL) {
// round /StemV value, since the PDF input is a float
// (see Font Descriptors in PDF reference), but we only store an
// integer, since we don't want to change the struct.
- fontdesc->dictLookup("StemV", &stemV);
- fd = epdf_create_fontdescriptor(fontmap, zround(stemV->getNum()));
- if (fontdesc->dictLookup("CharSet", &charset) &&
- charset->isString() && is_subsetable(fontmap))
- epdf_mark_glyphs(fd, charset->getString()->getCString());
+ stemV = fontdesc.dictLookup("StemV");
+ fd = epdf_create_fontdescriptor(fontmap, zround(stemV.getNum()));
+ charset = fontdesc.dictLookup("CharSet");
+ if (!charset.isNull() &&
+ charset.isString() && is_subsetable(fontmap))
+ epdf_mark_glyphs(fd, charset.getString()->getCString());
else
embed_whole_font(fd);
- addFontDesc(fontdescRef->getRef(), fd);
+ addFontDesc(fontdescRef.getRef(), fd);
copyName(tag);
gfont = GfxFont::makeFont(xref, tag, fontRef->getRef(),
- fontdict->getDict());
+ fontdict.getDict());
pdf_printf(" %d 0 R ", addFont(fontRef->getRef(), fd,
addEncoding(gfont)));
} else {
@@ -451,24 +445,24 @@ static void copyFont(char *tag, Object *
static void copyFontResources(Object * obj)
{
- PdfObject fontRef;
+ Object fontRef;
int i, l;
if (!obj->isDict())
pdftex_fail("PDF inclusion: invalid font resources dict type <%s>",
obj->getTypeName());
pdf_puts("/Font << ");
for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
- obj->dictGetValNF(i, &fontRef);
- if (fontRef->isRef())
+ fontRef = obj->dictGetValNF(i);
+ if (fontRef.isRef())
copyFont(obj->dictGetKey(i), &fontRef);
- else if (fontRef->isDict()) { // some programs generate pdf with embedded font object
+ else if (fontRef.isDict()) { // some programs generate pdf with embedded font object
copyName(obj->dictGetKey(i));
pdf_puts(" ");
copyObject(&fontRef);
}
else
pdftex_fail("PDF inclusion: invalid font in reference type <%s>",
- fontRef->getTypeName());
+ fontRef.getTypeName());
}
pdf_puts(">>\n");
}
@@ -557,7 +551,7 @@ static char *convertNumToPDF(double n)
static void copyObject(Object * obj)
{
- PdfObject obj1;
+ Object obj1;
int i, l, c;
Ref ref;
char *p;
@@ -601,8 +595,8 @@ static void copyObject(Object * obj)
} else if (obj->isArray()) {
pdf_puts("[");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- obj->arrayGetNF(i, &obj1);
- if (!obj1->isName())
+ obj1 = obj->arrayGetNF(i);
+ if (!obj1.isName())
pdf_puts(" ");
copyObject(&obj1);
}
@@ -612,9 +606,8 @@ static void copyObject(Object * obj)
copyDict(obj);
pdf_puts(">>");
} else if (obj->isStream()) {
- initDictFromDict(obj1, obj->streamGetDict());
pdf_puts("<<\n");
- copyDict(&obj1);
+ copyDict(obj->getStream()->getDictObject());
pdf_puts(">>\n");
pdf_puts("stream\n");
copyStream(obj->getStream()->getUndecodedStream());
@@ -638,9 +631,8 @@ static void writeRefs()
InObj *r;
for (r = inObjList; r != 0; r = r->next) {
if (!r->written) {
- Object obj1;
r->written = 1;
- xref->fetch(r->ref.num, r->ref.gen, &obj1);
+ Object obj1 = xref->fetch(r->ref.num, r->ref.gen);
if (r->type == objFont) {
assert(!obj1.isStream());
pdfbeginobj(r->num, 2); // \pdfobjcompresslevel = 2 is for this
@@ -656,7 +648,6 @@ static void writeRefs()
pdf_puts("\n");
pdfendobj();
}
- obj1.free();
}
}
}
@@ -685,7 +676,7 @@ static void writeEncodings()
#ifdef POPPLER_VERSION
r->font->decRefCnt();
#else
- delete r->font;
+#error POPPLER_VERSION should be defined.
#endif
delete r;
}
@@ -728,7 +719,7 @@ read_pdf_info(char *image_name, char *pa
#ifdef POPPLER_VERSION
int pdf_major_version_found, pdf_minor_version_found;
#else
- float pdf_version_found, pdf_version_wanted;
+#error POPPLER_VERSION should be defined.
#endif
// initialize
if (!isInit) {
@@ -760,19 +751,7 @@ read_pdf_info(char *image_name, char *pa
}
}
#else
- pdf_version_found = pdf_doc->doc->getPDFVersion();
- pdf_version_wanted = 1 + (minor_pdf_version_wanted * 0.1);
- if (pdf_version_found > pdf_version_wanted + 0.01) {
- char msg[] =
- "PDF inclusion: found PDF version <%.1f>, but at most version <%.1f> allowed";
- if (pdf_inclusion_errorlevel > 0) {
- pdftex_fail(msg, pdf_version_found, pdf_version_wanted);
- } else if (pdf_inclusion_errorlevel < 0) {
- ; /* do nothing */
- } else { /* = 0, give warning */
- pdftex_warn(msg, pdf_version_found, pdf_version_wanted);
- }
- }
+#error POPPLER_VERSION should be defined.
#endif
epdf_num_pages = pdf_doc->doc->getCatalog()->getNumPages();
if (page_name) {
@@ -839,8 +818,8 @@ void write_epdf(void)
Page *page;
Ref *pageRef;
Dict *pageDict;
- PdfObject contents, obj1, obj2, pageObj, dictObj;
- PdfObject groupDict;
+ Object contents, obj1, obj2, pageObj, dictObj;
+ Object groupDict;
bool writeSepGroup = false;
Object info;
char *key;
@@ -867,8 +846,8 @@ void write_epdf(void)
encodingList = 0;
page = pdf_doc->doc->getCatalog()->getPage(epdf_selected_page);
pageRef = pdf_doc->doc->getCatalog()->getPageRef(epdf_selected_page);
- xref->fetch(pageRef->num, pageRef->gen, &pageObj);
- pageDict = pageObj->getDict();
+ pageObj = xref->fetch(pageRef->num, pageRef->gen);
+ pageDict = pageObj.getDict();
rotate = page->getRotate();
PDFRectangle *pagebox;
// write the Page header
@@ -886,7 +865,7 @@ void write_epdf(void)
pdf_printf("/%s.PageNumber %i\n", pdfkeyprefix, (int) epdf_selected_page);
}
if ((suppress_ptex_info & MASK_SUPPRESS_PTEX_INFODICT) == 0) {
- pdf_doc->doc->getDocInfoNF(&info);
+ info = pdf_doc->doc->getDocInfoNF();
if (info.isRef()) {
// the info dict must be indirect (PDF Ref p. 61)
pdf_printf("/%s.InfoDict ", pdfkeyprefix);
@@ -942,14 +921,14 @@ void write_epdf(void)
pdf_puts(stripzeros(s));
// Metadata validity check (as a stream it must be indirect)
- pageDict->lookupNF("Metadata", &dictObj);
- if (!dictObj->isNull() && !dictObj->isRef())
+ dictObj = pageDict->lookupNF("Metadata");
+ if (!dictObj.isNull() && !dictObj.isRef())
pdftex_warn("PDF inclusion: /Metadata must be indirect object");
// copy selected items in Page dictionary except Resources & Group
for (i = 0; pageDictKeys[i] != NULL; i++) {
- pageDict->lookupNF(pageDictKeys[i], &dictObj);
- if (!dictObj->isNull()) {
+ dictObj = pageDict->lookupNF(pageDictKeys[i]);
+ if (!dictObj.isNull()) {
pdf_newline();
pdf_printf("/%s ", pageDictKeys[i]);
copyObject(&dictObj); // preserves indirection
@@ -957,8 +936,8 @@ void write_epdf(void)
}
// handle page group
- pageDict->lookupNF("Group", &dictObj);
- if (!dictObj->isNull()) {
+ dictObj = pageDict->lookupNF("Group");
+ if (!dictObj.isNull()) {
if (pdfpagegroupval == 0) {
// another pdf with page group was included earlier on the
// same page; copy the Group entry as is. See manual for
@@ -972,11 +951,36 @@ void write_epdf(void)
copyObject(&dictObj);
} else {
// write Group dict as a separate object, since the Page dict also refers to it
- pageDict->lookup("Group", &dictObj);
- if (!dictObj->isDict())
+ dictObj = pageDict->lookup("Group");
+ if (!dictObj.isDict())
pdftex_fail("PDF inclusion: /Group dict missing");
writeSepGroup = true;
- initDictFromDict(groupDict, page->getGroup());
+/*
+This part is only a single line
+ groupDict = Object(page->getGroup());
+in the original patch. In this case, however, pdftex crashes at
+"delete pdf_doc->doc" in "delete_document()" for inclusion of some
+kind of pdf images, for example, figure_missing.pdf in gnuplot.
+A change
+ groupDict = Object(page->getGroup()).copy();
+does not improve the situation.
+The changes below seem to work fine.
+*/
+// begin modification
+ groupDict = pageDict->lookup("Group");
+ const Dict& dic1 = page->getGroup();
+ const Dict& dic2 = groupDict.getDict();
+ // replace dic2 in groupDict with dic1
+ l = dic2.getLength();
+ for (i = 0; i < l; i++) {
+ groupDict.dictRemove(dic2.getKey(i));
+ }
+ l = dic1.getLength();
+ for (i = 0; i < l; i++) {
+ groupDict.dictAdd(copyString(dic1.getKey(i)),
+ dic1.getValNF(i));
+ }
+// end modification
pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval);
}
}
@@ -989,14 +993,14 @@ void write_epdf(void)
pdftex_warn
("PDF inclusion: /Resources missing. 'This practice is not recommended' (PDF Ref)");
} else {
- initDictFromDict(obj1, page->getResourceDict());
+ Object *obj1 = page->getResourceDictObject();
if (!obj1->isDict())
pdftex_fail("PDF inclusion: invalid resources dict type <%s>",
obj1->getTypeName());
pdf_newline();
pdf_puts("/Resources <<\n");
for (i = 0, l = obj1->dictGetLength(); i < l; ++i) {
- obj1->dictGetVal(i, &obj2);
+ obj2 = obj1->dictGetVal(i);
key = obj1->dictGetKey(i);
if (strcmp("Font", key) == 0)
copyFontResources(&obj2);
@@ -1009,8 +1013,8 @@ void write_epdf(void)
}
// write the page contents
- page->getContents(&contents);
- if (contents->isStream()) {
+ contents = page->getContents();
+ if (contents.isStream()) {
// Variant A: get stream and recompress under control
// of \pdfcompresslevel
@@ -1021,36 +1025,35 @@ void write_epdf(void)
// Variant B: copy stream without recompressing
//
- contents->streamGetDict()->lookup("F", &obj1);
- if (!obj1->isNull()) {
+ obj1 = contents.streamGetDict()->lookup("F");
+ if (!obj1.isNull()) {
pdftex_fail("PDF inclusion: Unsupported external stream");
}
- contents->streamGetDict()->lookup("Length", &obj1);
- assert(!obj1->isNull());
+ obj1 = contents.streamGetDict()->lookup("Length");
+ assert(!obj1.isNull());
pdf_puts("/Length ");
copyObject(&obj1);
pdf_puts("\n");
- contents->streamGetDict()->lookup("Filter", &obj1);
- if (!obj1->isNull()) {
+ obj1 = contents.streamGetDict()->lookup("Filter");
+ if (!obj1.isNull()) {
pdf_puts("/Filter ");
copyObject(&obj1);
pdf_puts("\n");
- contents->streamGetDict()->lookup("DecodeParms", &obj1);
- if (!obj1->isNull()) {
+ obj1 = contents.streamGetDict()->lookup("DecodeParms");
+ if (!obj1.isNull()) {
pdf_puts("/DecodeParms ");
copyObject(&obj1);
pdf_puts("\n");
}
}
pdf_puts(">>\nstream\n");
- copyStream(contents->getStream()->getUndecodedStream());
+ copyStream(contents.getStream()->getUndecodedStream());
pdfendstream();
- } else if (contents->isArray()) {
+ } else if (contents.isArray()) {
pdfbeginstream();
- for (i = 0, l = contents->arrayGetLength(); i < l; ++i) {
- Object contentsobj;
- copyStream((contents->arrayGet(i, &contentsobj))->getStream());
- contentsobj.free();
+ for (i = 0, l = contents.arrayGetLength(); i < l; ++i) {
+ Object contentsobj = contents.arrayGet(i);
+ copyStream(contentsobj.getStream());
if (i < l - 1)
pdf_newline(); // add a newline after each stream except the last
}
diff -up texlive-base-20180414/source/texk/web2c/pdftexdir/pdftosrc.cc.newpoppler texlive-base-20180414/source/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-base-20180414/source/texk/web2c/pdftexdir/pdftosrc.cc.newpoppler 2018-04-30 13:32:27.005472583 -0400
+++ texlive-base-20180414/source/texk/web2c/pdftexdir/pdftosrc.cc 2018-04-30 13:38:12.805326988 -0400
@@ -16,6 +16,14 @@ GNU General Public License for more deta
You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
+/*
+This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at
+https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
+by Arch Linux. The poppler should be 0.59.0 or newer versions.
+POPPLER_VERSION should be defined.
+*/
+
#include <w2c/config.h>
#include <stdlib.h>
@@ -32,10 +40,7 @@ with this program. If not, see <http://
#include <goo/gmem.h>
#include <goo/gfile.h>
#else
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
+#error POPPLER_VERSION should be defined.
#endif
#include <assert.h>
@@ -86,22 +91,20 @@ int main(int argc, char *argv[])
objgen = atoi(argv[3]);
}
xref = doc->getXRef();
- catalogDict.initNull();
- xref->getCatalog(&catalogDict);
+ catalogDict = xref->getCatalog();
if (!catalogDict.isDict("Catalog")) {
fprintf(stderr, "No Catalog found\n");
exit(1);
}
- srcStream.initNull();
+ srcStream = Object(objNull);
if (objnum == 0) {
- catalogDict.dictLookup("SourceObject", &srcStream);
+ srcStream = catalogDict.dictLookup("SourceObject");
static char const_SourceFile[] = "SourceFile";
if (!srcStream.isStream(const_SourceFile)) {
fprintf(stderr, "No SourceObject found\n");
exit(1);
}
- srcName.initNull();
- srcStream.getStream()->getDict()->lookup("SourceName", &srcName);
+ srcName = srcStream.getStream()->getDict()->lookup("SourceName");
if (!srcName.isString()) {
fprintf(stderr, "No SourceName found\n");
exit(1);
@@ -110,7 +113,7 @@ int main(int argc, char *argv[])
// We cannot free srcName, as objname shares its string.
// srcName.free();
} else if (objnum > 0) {
- xref->fetch(objnum, objgen, &srcStream);
+ srcStream = xref->fetch(objnum, objgen);
if (!srcStream.isStream()) {
fprintf(stderr, "Not a Stream object\n");
exit(1);
@@ -160,26 +163,24 @@ int main(int argc, char *argv[])
int localOffset = 0;
Guint firstOffset;
- assert(xref->fetch(e->offset, 0, &objStr)->isStream());
- nObjects = objStr.streamGetDict()->lookup("N", &obj1)->getInt();
- obj1.free();
- first = objStr.streamGetDict()->lookup("First", &obj1)->getInt();
- obj1.free();
+ objStr = xref->fetch(e->offset, 0);
+ assert(objStr.isStream());
+ obj1 = objStr.streamGetDict()->lookup("N");
+ nObjects = obj1.getInt();
+ obj1 = objStr.streamGetDict()->lookup("First");
+ first = obj1.getInt();
firstOffset = objStr.getStream()->getBaseStream()->getStart() + first;
// parse the header: object numbers and offsets
objStr.streamReset();
- obj1.initNull();
- str = new EmbedStream(objStr.getStream(), &obj1, gTrue, first);
+ str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first);
lexer = new Lexer(xref, str);
parser = new Parser(xref, lexer, gFalse);
for (n = 0; n < nObjects; ++n) {
- parser->getObj(&obj1);
- parser->getObj(&obj2);
+ obj1 = parser->getObj();
+ obj2 = parser->getObj();
if (n == e->gen)
localOffset = obj2.getInt();
- obj1.free();
- obj2.free();
}
#if defined(POPPLER_VERSION) || defined(XPDF304)
while (str->getChar() != EOF) ;
@@ -187,7 +188,6 @@ int main(int argc, char *argv[])
lexer->skipToEOF();
#endif
delete parser;
- objStr.free();
fprintf(outfile, "%.10lu 00000 n\n",
(long unsigned)(firstOffset + localOffset));
@@ -198,7 +198,6 @@ int main(int argc, char *argv[])
s->reset();
while ((c = s->getChar()) != EOF)
fputc(c, outfile);
- srcStream.free();
}
if (objnum == 0)
fprintf(stderr, "Source file extracted to %s\n", outname);
@@ -207,7 +206,6 @@ int main(int argc, char *argv[])
else
fprintf(stderr, "Cross-reference table extracted to %s\n", outname);
fclose(outfile);
- catalogDict.free();
delete doc;
delete globalParams;
}

View file

@ -0,0 +1,225 @@
From b14146667f4cd6cbc5d5821c88e47096df3c78b5 Mon Sep 17 00:00:00 2001
From: Akira Kakuto <kakuto@fuk.kindai.ac.jp>
Date: Sat, 28 Apr 2018 07:36:22 +0000
Subject: support poppler-0.64.0
git-svn-id: svn://tug.org/texlive/trunk@47470 c570f23f-e606-0410-a88d-b1316a301751
---
Build/source/texk/web2c/luatexdir/image/pdftoepdf.w | 4 ++--
Build/source/texk/web2c/luatexdir/lua/lepdflib.cc | 4 ++--
Build/source/texk/web2c/pdftexdir/ChangeLog | 5 +++++
Build/source/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc | 14 +++++++-------
Build/source/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc | 2 +-
5 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/Build/source/texk/web2c/luatexdir/image/pdftoepdf.w b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.w
index 7ba2973..d697959 100644
--- Build/source/texk/web2c/luatexdir/image/pdftoepdf.w
+++ Build/source/texk/web2c/luatexdir/image/pdftoepdf.w
@@ -472,10 +472,10 @@ static void copyObject(PDF pdf, PdfDocument * pdf_doc, Object * obj)
break;
*/
case objString:
- copyString(pdf, obj->getString());
+ copyString(pdf, (GooString *)obj->getString());
break;
case objName:
- copyName(pdf, obj->getName());
+ copyName(pdf, (char *)obj->getName());
break;
case objNull:
pdf_add_null(pdf);
diff --git a/Build/source/texk/web2c/luatexdir/lua/lepdflib.cc b/Build/source/texk/web2c/luatexdir/lua/lepdflib.cc
index a16bf3b..32bcdab 100644
--- Build/source/texk/web2c/luatexdir/lua/lepdflib.cc
+++ Build/source/texk/web2c/luatexdir/lua/lepdflib.cc
@@ -674,7 +674,7 @@ static int m_##in##_##function(lua_State * L) \
uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \
if (uin->pd != NULL && uin->pd->pc != uin->pc) \
pdfdoc_changed_error(L); \
- gs = ((in *) uin->d)->function(); \
+ gs = (GooString *)((in *) uin->d)->function(); \
if (gs != NULL) \
lua_pushlstring(L, gs->getCString(), gs->getLength()); \
else \
@@ -1813,7 +1813,7 @@ static int m_Object_getString(lua_State * L)
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
if (((Object *) uin->d)->isString()) {
- gs = ((Object *) uin->d)->getString();
+ gs = (GooString *)((Object *) uin->d)->getString();
lua_pushlstring(L, gs->getCString(), gs->getLength());
} else
lua_pushnil(L);
diff --git a/Build/source/texk/web2c/pdftexdir/ChangeLog b/Build/source/texk/web2c/pdftexdir/ChangeLog
index c022bc2..f4af035 100644
--- Build/source/texk/web2c/pdftexdir/ChangeLog
+++ Build/source/texk/web2c/pdftexdir/ChangeLog
@@ -1,3 +1,8 @@
+2018-04-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * pdftoepdf-newpoppler.cc, pdftosrc-newpoppler.cc:
+ Support poppler 0.64.0.
+
2018-04-14 Karl Berry <karl@tug.org>
* TeX Live 2018 release, pdftex 1.40.19.
diff --git a/Build/source/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc b/Build/source/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc
index 10fea29..750579d 100644
--- Build/source/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc
+++ Build/source/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc
@@ -290,7 +290,7 @@ static void copyName(char *s)
static void copyDictEntry(Object * obj, int i)
{
Object obj1;
- copyName(obj->dictGetKey(i));
+ copyName((char *)obj->dictGetKey(i));
pdf_puts(" ");
obj1 = obj->dictGetValNF(i);
copyObject(&obj1);
@@ -355,7 +355,7 @@ static void copyProcSet(Object * obj)
if (!procset.isName())
pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>",
procset.getTypeName());
- copyName(procset.getName());
+ copyName((char *)procset.getName());
pdf_puts(" ");
}
pdf_puts("]\n");
@@ -418,7 +418,7 @@ static void copyFont(char *tag, Object * fontRef)
&& fontdescRef.isRef()
&& fontdesc.isDict()
&& embeddableFont(&fontdesc)
- && (fontmap = lookup_fontmap(basefont.getName())) != NULL) {
+ && (fontmap = lookup_fontmap((char *)basefont.getName())) != NULL) {
// round /StemV value, since the PDF input is a float
// (see Font Descriptors in PDF reference), but we only store an
// integer, since we don't want to change the struct.
@@ -427,7 +427,7 @@ static void copyFont(char *tag, Object * fontRef)
charset = fontdesc.dictLookup("CharSet");
if (!charset.isNull() &&
charset.isString() && is_subsetable(fontmap))
- epdf_mark_glyphs(fd, charset.getString()->getCString());
+ epdf_mark_glyphs(fd, (char *)charset.getString()->getCString());
else
embed_whole_font(fd);
addFontDesc(fontdescRef.getRef(), fd);
@@ -456,7 +456,7 @@ static void copyFontResources(Object * obj)
if (fontRef.isRef())
copyFont(obj->dictGetKey(i), &fontRef);
else if (fontRef.isDict()) { // some programs generate pdf with embedded font object
- copyName(obj->dictGetKey(i));
+ copyName((char *)obj->dictGetKey(i));
pdf_puts(" ");
copyObject(&fontRef);
}
@@ -565,7 +565,7 @@ static void copyObject(Object * obj)
} else if (obj->isNum()) {
pdf_printf("%s", convertNumToPDF(obj->getNum()));
} else if (obj->isString()) {
- s = obj->getString();
+ s = (GooString *)obj->getString();
p = s->getCString();
l = s->getLength();
if (strlen(p) == (unsigned int) l) {
@@ -589,7 +589,7 @@ static void copyObject(Object * obj)
pdf_puts(">");
}
} else if (obj->isName()) {
- copyName(obj->getName());
+ copyName((char *)obj->getName());
} else if (obj->isNull()) {
pdf_puts("null");
} else if (obj->isArray()) {
diff --git a/Build/source/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc b/Build/source/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc
index 4e2bcad..0db154b 100644
--- Build/source/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc
+++ Build/source/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc
@@ -109,7 +109,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "No SourceName found\n");
exit(1);
}
- outname = srcName.getString()->getCString();
+ outname = (char *)srcName.getString()->getCString();
// We cannot free srcName, as objname shares its string.
// srcName.free();
} else if (objnum > 0) {
--- Build/source/texk/web2c/pdftexdir/pdftosrc.cc
+++ Build/source/texk/web2c/pdftexdir/pdftosrc.cc
@@ -109,7 +109,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "No SourceName found\n");
exit(1);
}
- outname = srcName.getString()->getCString();
+ outname = (char *)srcName.getString()->getCString();
// We cannot free srcName, as objname shares its string.
// srcName.free();
} else if (objnum > 0) {
--- Build/source/texk/web2c/pdftexdir/pdftoepdf.cc
+++ Build/source/texk/web2c/pdftexdir/pdftoepdf.cc
@@ -290,7 +290,7 @@ static void copyName(char *s)
static void copyDictEntry(Object * obj, int i)
{
Object obj1;
- copyName(obj->dictGetKey(i));
+ copyName((char *)obj->dictGetKey(i));
pdf_puts(" ");
obj1 = obj->dictGetValNF(i);
copyObject(&obj1);
@@ -355,7 +355,7 @@ static void copyProcSet(Object * obj)
if (!procset.isName())
pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>",
procset.getTypeName());
- copyName(procset.getName());
+ copyName((char *)procset.getName());
pdf_puts(" ");
}
pdf_puts("]\n");
@@ -418,7 +418,7 @@ static void copyFont(char *tag, Object * fontRef)
&& fontdescRef.isRef()
&& fontdesc.isDict()
&& embeddableFont(&fontdesc)
- && (fontmap = lookup_fontmap(basefont.getName())) != NULL) {
+ && (fontmap = lookup_fontmap((char *)basefont.getName())) != NULL) {
// round /StemV value, since the PDF input is a float
// (see Font Descriptors in PDF reference), but we only store an
// integer, since we don't want to change the struct.
@@ -427,7 +427,7 @@ static void copyFont(char *tag, Object * fontRef)
charset = fontdesc.dictLookup("CharSet");
if (!charset.isNull() &&
charset.isString() && is_subsetable(fontmap))
- epdf_mark_glyphs(fd, charset.getString()->getCString());
+ epdf_mark_glyphs(fd, (char *)charset.getString()->getCString());
else
embed_whole_font(fd);
addFontDesc(fontdescRef.getRef(), fd);
@@ -456,7 +456,7 @@ static void copyFontResources(Object * obj)
if (fontRef.isRef())
copyFont(obj->dictGetKey(i), &fontRef);
else if (fontRef.isDict()) { // some programs generate pdf with embedded font object
- copyName(obj->dictGetKey(i));
+ copyName((char *)obj->dictGetKey(i));
pdf_puts(" ");
copyObject(&fontRef);
}
@@ -565,7 +565,7 @@ static void copyObject(Object * obj)
} else if (obj->isNum()) {
pdf_printf("%s", convertNumToPDF(obj->getNum()));
} else if (obj->isString()) {
- s = obj->getString();
+ s = (GooString *)obj->getString();
p = s->getCString();
l = s->getLength();
if (strlen(p) == (unsigned int) l) {
@@ -589,7 +589,7 @@ static void copyObject(Object * obj)
pdf_puts(">");
}
} else if (obj->isName()) {
- copyName(obj->getName());
+ copyName((char *)obj->getName());
} else if (obj->isNull()) {
pdf_puts("null");
} else if (obj->isArray()) {
--
cgit v1.1

View file

@ -0,0 +1,574 @@
--- texlive-base-20180414/source/texk/web2c/luatexdir/image/pdftoepdf.w
+++ texlive-base-20180414/source/texk/web2c/luatexdir/image/pdftoepdf.w
@@ -33,9 +33,9 @@
*/
-extern void md5(Guchar *msg, int msgLen, Guchar *digest);
+extern void md5(unsigned char *msg, int msgLen, unsigned char *digest);
-static GBool isInit = gFalse;
+static bool isInit = false;
/* Maintain AVL tree of all PDF files for embedding */
@@ -363,10 +363,10 @@ void copyReal(PDF pdf, double d)
static void copyString(PDF pdf, GooString * string)
{
- char *p;
+ const char *p;
unsigned char c;
size_t i, l;
- p = string->getCString();
+ p = string->c_str();
l = (size_t) string->getLength();
if (pdf->cave)
pdf_out(pdf, ' ');
@@ -393,7 +393,7 @@ static void copyString(PDF pdf, GooStrin
pdf->cave = true;
}
-static void copyName(PDF pdf, char *s)
+static void copyName(PDF pdf, const char *s)
{
pdf_out(pdf, '/');
for (; *s != 0; s++) {
@@ -468,7 +468,7 @@ static void copyObject(PDF pdf, PdfDocum
break;
/*
case objNum:
- GBool isNum() { return type == objInt || type == objReal; }
+ bool isNum() { return type == objInt || type == objReal; }
break;
*/
case objString:
@@ -527,7 +527,7 @@ static void writeRefs(PDF pdf, PdfDocume
/* get the pagebox coordinates according to the pagebox_spec */
-static PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
+static const PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
{
switch (pagebox_spec) {
case PDF_BOX_SPEC_MEDIA:
@@ -584,14 +584,14 @@ void read_pdf_info(image_dict * idict)
Catalog *catalog;
Page *page;
int rotate;
- PDFRectangle *pagebox;
+ const PDFRectangle *pagebox;
int pdf_major_version_found, pdf_minor_version_found;
float xsize, ysize, xorig, yorig;
- if (isInit == gFalse) {
+ if (isInit == false) {
if (!(globalParams))
globalParams = new GlobalParams();
- globalParams->setErrQuiet(gFalse);
- isInit = gTrue;
+ globalParams->setErrQuiet(false);
+ isInit = true;
}
if (img_type(idict) == IMG_TYPE_PDF)
pdf_doc = refPdfDocument(img_filepath(idict), FE_FAIL);
@@ -721,7 +721,7 @@ void write_epdf(PDF pdf, image_dict * id
Ref *pageref;
Dict *pageDict;
Object obj1, contents, pageobj, pagesobj1, pagesobj2, *op1, *op2, *optmp;
- PDFRectangle *pagebox;
+ const PDFRectangle *pagebox;
int i, l;
double bbox[4];
/* char s[256]; */
@@ -966,7 +966,7 @@ void epdf_free()
if (PdfDocumentTree != NULL)
avl_destroy(PdfDocumentTree, destroyPdfDocument);
PdfDocumentTree = NULL;
- if (isInit == gTrue)
+ if (isInit == true)
delete globalParams;
- isInit = gFalse;
+ isInit = false;
}
--- texlive-base-20180414/source/texk/web2c/luatexdir/lua/lepdflib.cc
+++ texlive-base-20180414/source/texk/web2c/luatexdir/lua/lepdflib.cc
@@ -240,7 +240,7 @@ static int l_new_Attribute(lua_State * L
if (uobj->pd != NULL && uobj->pd->pc != uobj->pc)
pdfdoc_changed_error(L);
uout = new_Attribute_userdata(L);
- uout->d = new Attribute(n, nlen, (Object *)uobj->d);
+ uout->d = new Attribute(GooString(n, nlen), (Object *)uobj->d);
uout->atype = ALLOC_LEPDF;
uout->pc = uobj->pc;
uout->pd = uobj->pd;
@@ -439,7 +439,7 @@ static int l_new_Object(lua_State * L)
break;
case 1:
if (lua_isboolean (L,1)) {
- uout->d = new Object(lua_toboolean(L, 1)? gTrue : gFalse);
+ uout->d = new Object(lua_toboolean(L, 1)? true : false);
uout->atype = ALLOC_LEPDF;
uout->pc = 0;
uout->pd = NULL;
@@ -596,7 +596,7 @@ static int m_##in##_##function(lua_State
uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \
if (uin->pd != NULL && uin->pd->pc != uin->pc) \
pdfdoc_changed_error(L); \
- o = ((in *) uin->d)->function(); \
+ o = (out *) ((in *) uin->d)->function(); \
if (o != NULL) { \
uout = new_##out##_userdata(L); \
uout->d = o; \
@@ -676,7 +676,7 @@ static int m_##in##_##function(lua_State
pdfdoc_changed_error(L); \
gs = (GooString *)((in *) uin->d)->function(); \
if (gs != NULL) \
- lua_pushlstring(L, gs->getCString(), gs->getLength()); \
+ lua_pushlstring(L, gs->c_str(), gs->getLength()); \
else \
lua_pushnil(L); \
return 1; \
@@ -911,7 +911,7 @@ static int m_Array_getString(lua_State *
if (i > 0 && i <= len) {
gs = new GooString();
if (((Array *) uin->d)->getString(i - 1, gs))
- lua_pushlstring(L, gs->getCString(), gs->getLength());
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
else
lua_pushnil(L);
delete gs;
@@ -1063,7 +1063,7 @@ static int m_Catalog_getJS(lua_State * L
if (i > 0 && i <= len) {
gs = ((Catalog *) uin->d)->getJS(i - 1);
if (gs != NULL)
- lua_pushlstring(L, gs->getCString(), gs->getLength());
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
else
lua_pushnil(L);
delete gs;
@@ -1125,12 +1125,12 @@ m_poppler_get_INT(Dict, getLength);
static int m_Dict_add(lua_State * L)
{
- char *s;
+ const char *s;
udstruct *uin, *uobj;
uin = (udstruct *) luaL_checkudata(L, 1, M_Dict);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
- s = copyString(luaL_checkstring(L, 2));
+ s = luaL_checkstring(L, 2);
uobj = (udstruct *) luaL_checkudata(L, 3, M_Object);
((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d)));
return 0;
@@ -1378,7 +1378,7 @@ static int m_GooString__tostring(lua_Sta
uin = (udstruct *) luaL_checkudata(L, 1, M_GooString);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
- lua_pushlstring(L, ((GooString *) uin->d)->getCString(),
+ lua_pushlstring(L, ((GooString *) uin->d)->c_str(),
((GooString *) uin->d)->getLength());
return 1;
}
@@ -1527,9 +1527,9 @@ static int m_Object_initBool(lua_State *
pdfdoc_changed_error(L);
luaL_checktype(L, 2, LUA_TBOOLEAN);
if (lua_toboolean(L, 2) != 0)
- *((Object *) uin->d) = Object(gTrue);
+ *((Object *) uin->d) = Object(true);
else
- *((Object *) uin->d) = Object(gFalse);
+ *((Object *) uin->d) = Object(false);
return 0;
}
@@ -1814,7 +1814,7 @@ static int m_Object_getString(lua_State
pdfdoc_changed_error(L);
if (((Object *) uin->d)->isString()) {
gs = (GooString *)((Object *) uin->d)->getString();
- lua_pushlstring(L, gs->getCString(), gs->getLength());
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
} else
lua_pushnil(L);
return 1;
@@ -2051,7 +2051,7 @@ static int m_Object_dictAdd(lua_State *
pdfdoc_changed_error(L);
if (!((Object *) uin->d)->isDict())
luaL_error(L, "Object is not a Dict");
- ((Object *) uin->d)->dictAdd(copyString(s), std::move(*((Object *) uobj->d)));
+ ((Object *) uin->d)->dictAdd(s, std::move(*((Object *) uobj->d)));
return 0;
}
@@ -2465,14 +2465,14 @@ m_PDFDoc_INT(getErrorCode);
static int m_PDFDoc_getFileName(lua_State * L)
{
- GooString *gs;
+ const GooString *gs;
udstruct *uin;
uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
gs = ((PdfDocument *) uin->d)->doc->getFileName();
if (gs != NULL)
- lua_pushlstring(L, gs->getCString(), gs->getLength());
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
else
lua_pushnil(L);
return 1;
@@ -2553,7 +2553,7 @@ m_PDFDoc_INT(getNumPages);
static int m_PDFDoc_readMetadata(lua_State * L)
{
- GooString *gs;
+ const GooString *gs;
udstruct *uin;
uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
@@ -2561,7 +2561,7 @@ static int m_PDFDoc_readMetadata(lua_Sta
if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) {
gs = ((PdfDocument *) uin->d)->doc->readMetadata();
if (gs != NULL)
- lua_pushlstring(L, gs->getCString(), gs->getLength());
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
else
lua_pushnil(L);
} else
@@ -2577,7 +2577,7 @@ static int m_PDFDoc_getStructTreeRoot(lu
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) {
- obj = ((PdfDocument *) uin->d)->doc->getStructTreeRoot();
+ obj = (StructTreeRoot *) ((PdfDocument *) uin->d)->doc->getStructTreeRoot();
uout = new_StructTreeRoot_userdata(L);
uout->d = obj;
uout->pc = uin->pc;
@@ -3024,12 +3024,12 @@ m_poppler_get_GUINT(Attribute,getRevisio
static int m_Attribute_setRevision(lua_State * L)
{
- Guint i;
+ unsigned int i;
udstruct *uin;
uin = (udstruct *) luaL_checkudata(L, 1, M_Attribute);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
- i = (Guint) luaL_checkint(L, 2);
+ i = (unsigned int) luaL_checkint(L, 2);
((Attribute *) uin->d)->setRevision(i);
return 0;
}
@@ -3038,12 +3038,12 @@ m_poppler_get_BOOL(Attribute, isHidden);
static int m_Attribute_setHidden(lua_State * L)
{
- GBool i;
+ bool i;
udstruct *uin;
uin = (udstruct *) luaL_checkudata(L, 1, M_Attribute);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
- i = (GBool) lua_toboolean(L, 2);
+ i = (bool) lua_toboolean(L, 2);
((Attribute *) uin->d)->setHidden(i);
return 0;
}
@@ -3180,7 +3180,7 @@ static int m_StructElement_getParentRef(
// Ref is false if the C++ functione return false
static int m_StructElement_getPageRef(lua_State * L)
{
- GBool b;
+ bool b;
Ref *r;
udstruct *uin, *uout;
uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement);
@@ -3214,28 +3214,28 @@ static int m_StructElement_getTypeName(l
static int m_StructElement_setRevision(lua_State * L)
{
- Guint i;
+ unsigned int i;
udstruct *uin;
uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
- i = (Guint) luaL_checkint(L, 2);
+ i = (unsigned int) luaL_checkint(L, 2);
((StructElement *) uin->d)->setRevision(i);
return 0;
}
static int m_StructElement_getText(lua_State * L)
{
- GBool i;
+ bool i;
GooString *gs;
udstruct *uin;
uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
- i = (GBool) lua_toboolean(L, 2);
+ i = (bool) lua_toboolean(L, 2);
gs = ((StructElement *) uin->d)->getText(i);
if (gs != NULL)
- lua_pushlstring(L, gs->getCString(), gs->getLength());
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
else
lua_pushnil(L);
return 1;
@@ -3321,7 +3321,7 @@ static int m_StructElement_findAttribute
{
Attribute::Type t;
Attribute::Owner o;
- GBool g;
+ bool g;
udstruct *uin, *uout;
const Attribute *a;
uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement);
@@ -3329,7 +3329,7 @@ static int m_StructElement_findAttribute
pdfdoc_changed_error(L);
t = (Attribute::Type) luaL_checkint(L,1);
o = (Attribute::Owner) luaL_checkint(L,2);
- g = (GBool) lua_toboolean(L, 3);
+ g = (bool) lua_toboolean(L, 3);
a = ((StructElement *) uin->d)->findAttribute(t,g,o);
if (a!=NULL){
--- texlive-base-20180414/source/texk/web2c/pdftexdir/pdftoepdf.cc
+++ texlive-base-20180414/source/texk/web2c/pdftexdir/pdftoepdf.cc
@@ -120,7 +120,7 @@ struct UsedEncoding {
static InObj *inObjList;
static UsedEncoding *encodingList;
-static GBool isInit = gFalse;
+static bool isInit = false;
// --------------------------------------------------------------------
// Maintain list of open embedded PDF files
@@ -275,7 +275,7 @@ static int getNewObjectNumber(Ref ref)
static void copyObject(Object *);
-static void copyName(char *s)
+static void copyName(const char *s)
{
pdf_puts("/");
for (; *s != 0; s++) {
@@ -310,7 +310,7 @@ static void copyDict(Object * obj)
static void copyFontDict(Object * obj, InObj * r)
{
int i, l;
- char *key;
+ const char *key;
if (!obj->isDict())
pdftex_fail("PDF inclusion: invalid dict type <%s>",
obj->getTypeName());
@@ -382,7 +382,7 @@ static bool embeddableFont(Object * font
return false;
}
-static void copyFont(char *tag, Object * fontRef)
+static void copyFont(const char *tag, Object * fontRef)
{
Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
stemV;
@@ -427,7 +427,7 @@ static void copyFont(char *tag, Object *
charset = fontdesc.dictLookup("CharSet");
if (!charset.isNull() &&
charset.isString() && is_subsetable(fontmap))
- epdf_mark_glyphs(fd, (char *)charset.getString()->getCString());
+ epdf_mark_glyphs(fd, (char *)charset.getString()->c_str());
else
embed_whole_font(fd);
addFontDesc(fontdescRef.getRef(), fd);
@@ -467,7 +467,7 @@ static void copyFontResources(Object * o
pdf_puts(">>\n");
}
-static void copyOtherResources(Object * obj, char *key)
+static void copyOtherResources(Object * obj, const char *key)
{
// copies all other resources (write_epdf handles Fonts and ProcSets),
@@ -554,8 +554,8 @@ static void copyObject(Object * obj)
Object obj1;
int i, l, c;
Ref ref;
- char *p;
- GString *s;
+ const char *p;
+ const GString *s;
if (obj->isBool()) {
pdf_printf("%s", obj->getBool()? "true" : "false");
} else if (obj->isInt()) {
@@ -565,8 +565,8 @@ static void copyObject(Object * obj)
} else if (obj->isNum()) {
pdf_printf("%s", convertNumToPDF(obj->getNum()));
} else if (obj->isString()) {
- s = (GooString *)obj->getString();
- p = s->getCString();
+ s = (const GooString *)obj->getString();
+ p = s->c_str();
l = s->getLength();
if (strlen(p) == (unsigned int) l) {
pdf_puts("(");
@@ -664,7 +664,7 @@ static void writeEncodings()
("PDF inclusion: CID fonts are not supported"
" (try to disable font replacement to fix this)");
}
- if ((s = ((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
+ if ((s = (char *) ((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
glyphNames[i] = s;
else
glyphNames[i] = notdef;
@@ -683,7 +683,7 @@ static void writeEncodings()
}
// get the pagebox according to the pagebox_spec
-static PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
+static const PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
{
if (pagebox_spec == pdfboxspecmedia)
return page->getMediaBox();
@@ -715,7 +715,7 @@ read_pdf_info(char *image_name, char *pa
{
PdfDocument *pdf_doc;
Page *page;
- PDFRectangle *pagebox;
+ const PDFRectangle *pagebox;
#ifdef POPPLER_VERSION
int pdf_major_version_found, pdf_minor_version_found;
#else
@@ -724,8 +724,8 @@ read_pdf_info(char *image_name, char *pa
// initialize
if (!isInit) {
globalParams = new GlobalParams();
- globalParams->setErrQuiet(gFalse);
- isInit = gTrue;
+ globalParams->setErrQuiet(false);
+ isInit = true;
}
// open PDF file
pdf_doc = find_add_document(image_name);
@@ -822,7 +822,7 @@ void write_epdf(void)
Object groupDict;
bool writeSepGroup = false;
Object info;
- char *key;
+ const char *key;
char s[256];
int i, l;
int rotate;
@@ -849,7 +849,7 @@ void write_epdf(void)
pageObj = xref->fetch(pageRef->num, pageRef->gen);
pageDict = pageObj.getDict();
rotate = page->getRotate();
- PDFRectangle *pagebox;
+ const PDFRectangle *pagebox;
// write the Page header
pdf_puts("/Type /XObject\n");
pdf_puts("/Subtype /Form\n");
@@ -977,7 +977,7 @@ The changes below seem to work fine.
}
l = dic1.getLength();
for (i = 0; i < l; i++) {
- groupDict.dictAdd(copyString(dic1.getKey(i)),
+ groupDict.dictAdd(dic1.getKey(i),
dic1.getValNF(i));
}
// end modification
--- texlive-base-20180414/source/texk/web2c/pdftexdir/pdftosrc.cc
+++ texlive-base-20180414/source/texk/web2c/pdftexdir/pdftosrc.cc
@@ -109,7 +109,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "No SourceName found\n");
exit(1);
}
- outname = (char *)srcName.getString()->getCString();
+ outname = (char *)srcName.getString()->c_str();
// We cannot free srcName, as objname shares its string.
// srcName.free();
} else if (objnum > 0) {
@@ -118,7 +118,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Not a Stream object\n");
exit(1);
}
- sprintf(buf, "%s", fileName->getCString());
+ sprintf(buf, "%s", fileName->c_str());
if ((p = strrchr(buf, '.')) == 0)
p = strchr(buf, 0);
if (objgen == 0)
@@ -128,7 +128,7 @@ int main(int argc, char *argv[])
outname = buf;
} else { // objnum < 0 means we are extracting the XRef table
extract_xref_table = true;
- sprintf(buf, "%s", fileName->getCString());
+ sprintf(buf, "%s", fileName->c_str());
if ((p = strrchr(buf, '.')) == 0)
p = strchr(buf, 0);
sprintf(p, ".xref");
@@ -161,7 +161,7 @@ int main(int argc, char *argv[])
Object objStr, obj1, obj2;
int nObjects, first, n;
int localOffset = 0;
- Guint firstOffset;
+ unsigned int firstOffset;
objStr = xref->fetch(e->offset, 0);
assert(objStr.isStream());
@@ -173,9 +173,9 @@ int main(int argc, char *argv[])
// parse the header: object numbers and offsets
objStr.streamReset();
- str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first);
+ str = new EmbedStream(objStr.getStream(), Object(objNull), true, first);
lexer = new Lexer(xref, str);
- parser = new Parser(xref, lexer, gFalse);
+ parser = new Parser(xref, lexer, false);
for (n = 0; n < nObjects; ++n) {
obj1 = parser->getObj();
obj2 = parser->getObj();
--- texlive-base-20180414/source/texk/web2c/xetexdir/pdfimage.cpp
+++ texlive-base-20180414/source/texk/web2c/xetexdir/pdfimage.cpp
@@ -79,25 +79,28 @@ pdf_get_rect(char* filename, int page_nu
Page* page = doc->getCatalog()->getPage(page_num);
PDFRectangle* r;
+ const PDFRectangle* cr;
switch (pdf_box) {
default:
case pdfbox_crop:
- r = page->getCropBox();
+ cr = page->getCropBox();
break;
case pdfbox_media:
- r = page->getMediaBox();
+ cr = page->getMediaBox();
break;
case pdfbox_bleed:
- r = page->getBleedBox();
+ cr = page->getBleedBox();
break;
case pdfbox_trim:
- r = page->getTrimBox();
+ cr = page->getTrimBox();
break;
case pdfbox_art:
- r = page->getArtBox();
+ cr = page->getArtBox();
break;
}
+ r = new PDFRectangle (cr->x1, cr->y1, cr->x2, cr->y2);
+
int RotAngle = 0;
RotAngle = (int)page->getRotate() % 360;
if (RotAngle < 0)
@@ -125,6 +128,7 @@ pdf_get_rect(char* filename, int page_nu
box->wd = 72.27 / 72 * fabs(r->x2 - r->x1);
box->ht = 72.27 / 72 * fabs(r->y2 - r->y1);
+ delete r;
delete doc;
return 0;

View file

@ -0,0 +1,41 @@
diff -up texlive-base-20180414/source/texk/kpathsea/mktexlsr.selinux texlive-base-20180414/source/texk/kpathsea/mktexlsr
--- texlive-base-20180414/source/texk/kpathsea/mktexlsr.selinux 2018-01-16 19:55:32.000000000 -0500
+++ texlive-base-20180414/source/texk/kpathsea/mktexlsr 2018-04-30 13:10:12.447909163 -0400
@@ -228,7 +228,8 @@ for TEXMFLS_R in "$@"; do
until PERMS=`kpsestat = "$db_file"`; do sleep 1; done
chmod $PERMS "$db_file_tmp"
rm -f "$db_file"
- mv "$db_file_tmp" "$db_file"
+ # selinux fix
+ cp "$db_file_tmp" "$db_file"
rm -rf "$db_dir_tmp"
done
diff -up texlive-base-20180414/source/texk/texlive/linked_scripts/texlive/fmtutil.pl.selinux texlive-base-20180414/source/texk/texlive/linked_scripts/texlive/fmtutil.pl
--- texlive-base-20180414/source/texk/texlive/linked_scripts/texlive/fmtutil.pl.selinux 2018-04-30 13:10:12.447909163 -0400
+++ texlive-base-20180414/source/texk/texlive/linked_scripts/texlive/fmtutil.pl 2018-04-30 13:12:43.035361954 -0400
@@ -719,7 +719,7 @@ sub rebuild_one_format {
TeXLive::TLUtils::mkdirhier($destdir);
- if (!File::Copy::move( $logfile, "$destdir/$logfile")) {
+ if (!File::Copy::copy( $logfile, "$destdir/$logfile")) {
print_deferred_error("Cannot move $logfile to $destdir.\n");
}
if ($opts{'recorder'}) {
@@ -727,13 +727,13 @@ sub rebuild_one_format {
# package dependencies for each format. Unfortunately omega-based
# engines gratuitiously changed the extension from .fls to .ofl.
my $recfile = $fmt . ($fmt =~ m/^(aleph|lamed)$/ ? ".ofl" : ".fls");
- if (!File::Copy::move( $recfile, "$destdir/$recfile")) {
+ if (!File::Copy::copy( $recfile, "$destdir/$recfile")) {
print_deferred_error("Cannot move $recfile to $destdir.\n");
}
}
my $destfile = "$destdir/$fmtfile";
- if (File::Copy::move( $fmtfile, $destfile )) {
+ if (File::Copy::copy( $fmtfile, $destfile )) {
print_info("$destfile installed.\n");
#
# original fmtutil.sh did some magic trick for mplib-luatex.mem

View file

@ -0,0 +1,47 @@
From 28fe90a530c055abce7af362512b81a70d296e7d Mon Sep 17 00:00:00 2001
From: Akira Kakuto <kakuto@fuk.kindai.ac.jp>
Date: Mon, 23 Jul 2018 21:21:12 +0000
Subject: [PATCH] add synctex_version.h (report from Johannes)
git-svn-id: svn://tug.org/texlive/trunk/Build/source@48260 c570f23f-e606-0410-a88d-b1316a301751
---
texk/web2c/Makefile.in | 3 ++-
texk/web2c/synctexdir/am/synctex.am | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/texk/web2c/Makefile.in b/texk/web2c/Makefile.in
index abdd6dfef..4872c68f2 100644
--- a/source/texk/web2c/Makefile.in
+++ b/source/texk/web2c/Makefile.in
@@ -2420,7 +2420,7 @@ NROFF = nroff
MANS = $(dist_man_MANS) $(nodist_man_MANS)
DATA = $(pkgconfig_DATA)
am__syncinclude_HEADERS_DIST = synctexdir/synctex_parser.h \
- synctexdir/synctex_parser_utils.h
+ synctexdir/synctex_version.h synctexdir/synctex_parser_utils.h
HEADERS = $(syncinclude_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
@@ -4687,6 +4687,7 @@ syncincludedir = ${includedir}/synctex
pkgconfigdir = ${libdir}/pkgconfig
@SYNCTEX_TRUE@syncinclude_HEADERS = \
@SYNCTEX_TRUE@ synctexdir/synctex_parser.h \
+@SYNCTEX_TRUE@ synctexdir/synctex_version.h \
@SYNCTEX_TRUE@ synctexdir/synctex_parser_utils.h
@SYNCTEX_TRUE@pkgconfig_DATA = synctexdir/synctex.pc
diff --git a/texk/web2c/synctexdir/am/synctex.am b/texk/web2c/synctexdir/am/synctex.am
index 316ffbbae..b69cb260a 100644
--- a/source/texk/web2c/synctexdir/am/synctex.am
+++ b/source/texk/web2c/synctexdir/am/synctex.am
@@ -55,6 +55,7 @@ pkgconfigdir = ${libdir}/pkgconfig
if SYNCTEX
syncinclude_HEADERS = \
synctexdir/synctex_parser.h \
+ synctexdir/synctex_version.h \
synctexdir/synctex_parser_utils.h
pkgconfig_DATA = synctexdir/synctex.pc
--
2.17.1

View file

@ -0,0 +1,22 @@
diff -up texlive-base-20180414/source/texk/kpathsea/texmf.cnf.texinfo-fix texlive-base-20180414/source/texk/kpathsea/texmf.cnf
--- texlive-base-20180414/source/texk/kpathsea/texmf.cnf.texinfo-fix 2018-04-30 13:17:29.671610006 -0400
+++ texlive-base-20180414/source/texk/kpathsea/texmf.cnf 2018-04-30 13:18:25.434296471 -0400
@@ -82,6 +82,9 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config
% to %USERPROFILE% on Windows, $HOME otherwise.
TEXMFHOME = ~/texmf
+% Texinfo on Fedora lives out of $TEXMFROOT
+TEXINFOHOME = $SELFAUTODIR/share/texmf
+
% TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data.
TEXMFVAR = ~/.texlive2018/texmf-var
@@ -107,7 +110,7 @@ TEXMFAUXTREES = {}
% The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is
% ever defined (the 99% common case), no extra elements will be added to
% the search paths. tlmgr takes care to end any value with a trailing comma.
-TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
+TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXINFOHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
% Where to look for ls-R files. There need not be an ls-R in the
% directories in this path, but if there is one, Kpathsea will use it.

View file

@ -0,0 +1,118 @@
diff -up texlive-base-20190410/source/texk/web2c/am/texmf.am.dt texlive-base-20190410/source/texk/web2c/am/texmf.am
--- texlive-base-20190410/source/texk/web2c/am/texmf.am.dt 2015-07-10 05:42:52.000000000 -0400
+++ texlive-base-20190410/source/texk/web2c/am/texmf.am 2019-05-23 15:07:41.663729872 -0400
@@ -73,7 +73,7 @@ DISTCLEANFILES += $(nodist_tex_SOURCES)
# TeX tests
#
-tex_tests = triptest.test tests/write18-quote-test.pl
+tex_tests = tests/write18-quote-test.pl
triptest.log: tex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
tests/write18-quote-test.log: tex$(EXEEXT)
EXTRA_DIST += $(tex_tests)
@@ -201,7 +201,7 @@ DISTCLEANFILES += $(nodist_libmf_a_SOURC
# Metafont tests
#
-mf_tests = mftraptest.test
+mf_tests =
mftraptest.log: mf$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
EXTRA_DIST += $(mf_tests)
if MF
diff -up texlive-base-20190410/source/texk/web2c/eptexdir/am/eptex.am.dt texlive-base-20190410/source/texk/web2c/eptexdir/am/eptex.am
--- texlive-base-20190410/source/texk/web2c/eptexdir/am/eptex.am.dt 2015-08-06 04:49:49.000000000 -0400
+++ texlive-base-20190410/source/texk/web2c/eptexdir/am/eptex.am 2019-05-23 15:07:41.663729872 -0400
@@ -81,7 +81,7 @@ EXTRA_DIST += \
# e-pTeX Tests
#
-eptex_tests = eptexdir/eptriptest.test eptexdir/pdfprimitive.test
+eptex_tests =
eptexdir/eptriptest.log: eptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
eptexdir/pdfprimitive.log: eptex$(EXEEXT)
diff -up texlive-base-20190410/source/texk/web2c/euptexdir/am/euptex.am.dt texlive-base-20190410/source/texk/web2c/euptexdir/am/euptex.am
--- texlive-base-20190410/source/texk/web2c/euptexdir/am/euptex.am.dt 2018-01-20 22:48:06.000000000 -0500
+++ texlive-base-20190410/source/texk/web2c/euptexdir/am/euptex.am 2019-05-23 15:07:41.663729872 -0400
@@ -82,7 +82,7 @@ EXTRA_DIST += \
# e-upTeX Tests
#
-euptex_tests = euptexdir/euptriptest.test euptexdir/pdfprimitive.test
+euptex_tests =
euptexdir/euptriptest.log: euptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
euptexdir/pdfprimitive.log: euptex$(EXEEXT)
diff -up texlive-base-20190410/source/texk/web2c/mfluadir/am/mflua.am.dt texlive-base-20190410/source/texk/web2c/mfluadir/am/mflua.am
--- texlive-base-20190410/source/texk/web2c/mfluadir/am/mflua.am.dt 2017-04-16 06:11:22.000000000 -0400
+++ texlive-base-20190410/source/texk/web2c/mfluadir/am/mflua.am 2019-05-23 15:07:41.663729872 -0400
@@ -110,7 +110,7 @@ EXTRA_DIST += \
# MFLua tests
#
-mflua_tests = mfluadir/mfluatraptest.test
+mflua_tests =
mfluadir/mfluatraptest.log: mflua$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
EXTRA_DIST += $(mflua_tests)
diff -up texlive-base-20190410/source/texk/web2c/mfluajitdir/am/mfluajit.am.dt texlive-base-20190410/source/texk/web2c/mfluajitdir/am/mfluajit.am
--- texlive-base-20190410/source/texk/web2c/mfluajitdir/am/mfluajit.am.dt 2017-04-16 06:11:22.000000000 -0400
+++ texlive-base-20190410/source/texk/web2c/mfluajitdir/am/mfluajit.am 2019-05-23 15:07:41.663729872 -0400
@@ -106,7 +106,7 @@ EXTRA_DIST += \
# MFLuaJIT tests
#
-mfluajit_tests = mfluajitdir/mfluajittraptest.test
+mfluajit_tests =
mfluajitdir/mfluajittraptest.log: mfluajit$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
EXTRA_DIST += $(mfluajit_tests)
diff -up texlive-base-20190410/source/texk/web2c/pdftexdir/am/pdftex.am.dt texlive-base-20190410/source/texk/web2c/pdftexdir/am/pdftex.am
--- texlive-base-20190410/source/texk/web2c/pdftexdir/am/pdftex.am.dt 2019-05-23 15:07:41.663729872 -0400
+++ texlive-base-20190410/source/texk/web2c/pdftexdir/am/pdftex.am 2019-05-23 15:09:34.941250514 -0400
@@ -94,8 +94,8 @@ EXTRA_DIST += \
# pdfTeX tests
#
-pdftex_tests = pdftexdir/wprob.test pdftexdir/pdftex.test \
- pdftexdir/pdfimage.test pdftexdir/expanded.test
+pdftex_tests = pdftexdir/pdftex.test \
+ pdftexdir/expanded.test
pdftexdir/wprob.log pdftexdir/pdftex.log \
pdftexdir/pdfimage.log pdftexdir/expanded.log: pdftex$(EXEEXT)
diff -up texlive-base-20190410/source/texk/web2c/ptexdir/am/ptex.am.dt texlive-base-20190410/source/texk/web2c/ptexdir/am/ptex.am
--- texlive-base-20190410/source/texk/web2c/ptexdir/am/ptex.am.dt 2019-02-06 05:58:23.000000000 -0500
+++ texlive-base-20190410/source/texk/web2c/ptexdir/am/ptex.am 2019-05-23 15:07:41.664729850 -0400
@@ -167,7 +167,7 @@ EXTRA_DIST += \
# pTeX Tests
#
-ptex_tests = ptexdir/ptriptest.test
+ptex_tests =
ptexdir/ptriptest.log: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
pweb_tests = \
ptexdir/pbibtex.test \
diff -up texlive-base-20190410/source/texk/web2c/uptexdir/am/uptex.am.dt texlive-base-20190410/source/texk/web2c/uptexdir/am/uptex.am
--- texlive-base-20190410/source/texk/web2c/uptexdir/am/uptex.am.dt 2018-08-18 07:45:50.000000000 -0400
+++ texlive-base-20190410/source/texk/web2c/uptexdir/am/uptex.am 2019-05-23 15:07:41.664729850 -0400
@@ -157,7 +157,7 @@ EXTRA_DIST += \
uptexdir/ChangeLog
# upTeX Tests
-uptex_tests = uptexdir/uptriptest.test
+uptex_tests =
uptexdir/uptriptest.log: uptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
upweb_tests = \
uptexdir/upbibtex.test \
diff -up texlive-base-20190410/source/texk/web2c/xetexdir/am/xetex.am.dt texlive-base-20190410/source/texk/web2c/xetexdir/am/xetex.am
--- texlive-base-20190410/source/texk/web2c/xetexdir/am/xetex.am.dt 2018-01-17 17:54:13.000000000 -0500
+++ texlive-base-20190410/source/texk/web2c/xetexdir/am/xetex.am 2019-05-23 15:07:41.664729850 -0400
@@ -200,7 +200,6 @@ EXTRA_DIST += \
# XeTeX Tests
#
xetex_tests = \
- xetexdir/xetex-bug73.test \
xetexdir/xetex.test
xetexdir/xetex-bug73.log xetexdir/xetex.log: xetex$(EXEEXT)

View file

@ -0,0 +1,25 @@
diff -up texlive-base-20190410/source/texk/dvisvgm/configure.ac.fix-libgs-detection texlive-base-20190410/source/texk/dvisvgm/configure.ac
--- texlive-base-20190410/source/texk/dvisvgm/configure.ac.fix-libgs-detection 2019-03-10 14:21:29.000000000 -0400
+++ texlive-base-20190410/source/texk/dvisvgm/configure.ac 2019-05-23 19:07:30.447057345 -0400
@@ -66,7 +66,8 @@ AS_IF([test "x$have_libgs" = "xno"],
# Ghostscript not found, check for dlopen
[AC_CHECK_LIB(dl, dlopen,,
[AC_DEFINE(DISABLE_GS, 1, [Set to 1 if PostScript support should be disabled])]
- [AC_MSG_WARN(PostScript support disabled)])])
+ [AC_MSG_WARN(PostScript support disabled)])],
+ [test "x$have_libgs" = "xyes"], [HAVE_LIBGS=1])
fi
if test -z "$HAVE_LIBGS" || test "$HAVE_LIBGS" -eq 0; then
diff -up texlive-base-20190410/source/texk/dvisvgm/configure.fix-libgs-detection texlive-base-20190410/source/texk/dvisvgm/configure
--- texlive-base-20190410/source/texk/dvisvgm/configure.fix-libgs-detection 2019-05-23 19:07:45.568703333 -0400
+++ texlive-base-20190410/source/texk/dvisvgm/configure 2019-05-23 19:09:31.341219687 -0400
@@ -22013,6 +22013,8 @@ $as_echo "#define DISABLE_GS 1" >>confde
$as_echo "$as_me: WARNING: PostScript support disabled" >&2;}
fi
+elif test "x$have_libgs" = "xyes"; then :
+ HAVE_LIBGS=1
fi
fi

View file

@ -0,0 +1,249 @@
diff -up texlive-base-20190410/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-0.73 texlive-base-20190410/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20190410/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-0.73 2019-05-23 15:50:17.849768543 -0400
+++ texlive-base-20190410/source/texk/web2c/pdftexdir/pdftoepdf.cc 2019-05-23 16:00:41.022262790 -0400
@@ -120,7 +120,7 @@ struct UsedEncoding {
static InObj *inObjList;
static UsedEncoding *encodingList;
-static GBool isInit = gFalse;
+static bool isInit = false;
// --------------------------------------------------------------------
// Maintain list of open embedded PDF files
@@ -275,7 +275,7 @@ static int getNewObjectNumber(Ref ref)
static void copyObject(Object *);
-static void copyName(char *s)
+static void copyName(const char *s)
{
pdf_puts("/");
for (; *s != 0; s++) {
@@ -310,7 +310,7 @@ static void copyDict(Object * obj)
static void copyFontDict(Object * obj, InObj * r)
{
int i, l;
- char *key;
+ const char *key;
if (!obj->isDict())
pdftex_fail("PDF inclusion: invalid dict type <%s>",
obj->getTypeName());
@@ -382,7 +382,7 @@ static bool embeddableFont(Object * font
return false;
}
-static void copyFont(char *tag, Object * fontRef)
+static void copyFont(const char *tag, Object * fontRef)
{
Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
stemV;
@@ -418,7 +418,7 @@ static void copyFont(char *tag, Object *
&& fontdescRef.isRef()
&& fontdesc.isDict()
&& embeddableFont(&fontdesc)
- && (fontmap = lookup_fontmap(basefont.getName())) != NULL) {
+ && (fontmap = lookup_fontmap((char *)basefont.getName())) != NULL) {
// round /StemV value, since the PDF input is a float
// (see Font Descriptors in PDF reference), but we only store an
// integer, since we don't want to change the struct.
@@ -427,7 +427,7 @@ static void copyFont(char *tag, Object *
charset = fontdesc.dictLookup("CharSet");
if (!charset.isNull() &&
charset.isString() && is_subsetable(fontmap))
- epdf_mark_glyphs(fd, charset.getString()->getCString());
+ epdf_mark_glyphs(fd, (char *)charset.getString()->c_str());
else
embed_whole_font(fd);
addFontDesc(fontdescRef.getRef(), fd);
@@ -467,7 +467,7 @@ static void copyFontResources(Object * o
pdf_puts(">>\n");
}
-static void copyOtherResources(Object * obj, char *key)
+static void copyOtherResources(Object * obj, const char *key)
{
// copies all other resources (write_epdf handles Fonts and ProcSets),
@@ -554,8 +554,8 @@ static void copyObject(Object * obj)
Object obj1;
int i, l, c;
Ref ref;
- char *p;
- GString *s;
+ const char *p;
+ const GString *s;
if (obj->isBool()) {
pdf_printf("%s", obj->getBool()? "true" : "false");
} else if (obj->isInt()) {
@@ -566,7 +566,7 @@ static void copyObject(Object * obj)
pdf_printf("%s", convertNumToPDF(obj->getNum()));
} else if (obj->isString()) {
s = obj->getString();
- p = s->getCString();
+ p = s->c_str();
l = s->getLength();
if (strlen(p) == (unsigned int) l) {
pdf_puts("(");
@@ -664,7 +664,7 @@ static void writeEncodings()
("PDF inclusion: CID fonts are not supported"
" (try to disable font replacement to fix this)");
}
- if ((s = ((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
+ if ((s = (char *) ((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
glyphNames[i] = s;
else
glyphNames[i] = notdef;
@@ -683,7 +683,7 @@ static void writeEncodings()
}
// get the pagebox according to the pagebox_spec
-static PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
+static const PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
{
if (pagebox_spec == pdfboxspecmedia)
return page->getMediaBox();
@@ -715,7 +715,7 @@ read_pdf_info(char *image_name, char *pa
{
PdfDocument *pdf_doc;
Page *page;
- PDFRectangle *pagebox;
+ const PDFRectangle *pagebox;
#ifdef POPPLER_VERSION
int pdf_major_version_found, pdf_minor_version_found;
#else
@@ -724,8 +724,8 @@ read_pdf_info(char *image_name, char *pa
// initialize
if (!isInit) {
globalParams = new GlobalParams();
- globalParams->setErrQuiet(gFalse);
- isInit = gTrue;
+ globalParams->setErrQuiet(false);
+ isInit = true;
}
// open PDF file
pdf_doc = find_add_document(image_name);
@@ -822,7 +822,7 @@ void write_epdf(void)
Object groupDict;
bool writeSepGroup = false;
Object info;
- char *key;
+ const char *key;
char s[256];
int i, l;
int rotate;
@@ -849,7 +849,7 @@ void write_epdf(void)
pageObj = xref->fetch(pageRef->num, pageRef->gen);
pageDict = pageObj.getDict();
rotate = page->getRotate();
- PDFRectangle *pagebox;
+ const PDFRectangle *pagebox;
// write the Page header
pdf_puts("/Type /XObject\n");
pdf_puts("/Subtype /Form\n");
@@ -977,7 +977,7 @@ The changes below seem to work fine.
}
l = dic1.getLength();
for (i = 0; i < l; i++) {
- groupDict.dictAdd(copyString(dic1.getKey(i)),
+ groupDict.dictAdd(dic1.getKey(i),
dic1.getValNF(i));
}
// end modification
diff -up texlive-base-20190410/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-0.73 texlive-base-20190410/source/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-base-20190410/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-0.73 2019-05-23 15:50:17.850768522 -0400
+++ texlive-base-20190410/source/texk/web2c/pdftexdir/pdftosrc.cc 2019-05-23 15:50:17.858768349 -0400
@@ -109,7 +109,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "No SourceName found\n");
exit(1);
}
- outname = srcName.getString()->getCString();
+ outname = (char *)srcName.getString()->c_str();
// We cannot free srcName, as objname shares its string.
// srcName.free();
} else if (objnum > 0) {
@@ -118,7 +118,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Not a Stream object\n");
exit(1);
}
- sprintf(buf, "%s", fileName->getCString());
+ sprintf(buf, "%s", fileName->c_str());
if ((p = strrchr(buf, '.')) == 0)
p = strchr(buf, 0);
if (objgen == 0)
@@ -128,7 +128,7 @@ int main(int argc, char *argv[])
outname = buf;
} else { // objnum < 0 means we are extracting the XRef table
extract_xref_table = true;
- sprintf(buf, "%s", fileName->getCString());
+ sprintf(buf, "%s", fileName->c_str());
if ((p = strrchr(buf, '.')) == 0)
p = strchr(buf, 0);
sprintf(p, ".xref");
@@ -161,7 +161,7 @@ int main(int argc, char *argv[])
Object objStr, obj1, obj2;
int nObjects, first, n;
int localOffset = 0;
- Guint firstOffset;
+ unsigned int firstOffset;
objStr = xref->fetch(e->offset, 0);
assert(objStr.isStream());
@@ -173,9 +173,9 @@ int main(int argc, char *argv[])
// parse the header: object numbers and offsets
objStr.streamReset();
- str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first);
+ str = new EmbedStream(objStr.getStream(), Object(objNull), true, first);
lexer = new Lexer(xref, str);
- parser = new Parser(xref, lexer, gFalse);
+ parser = new Parser(xref, lexer, false);
for (n = 0; n < nObjects; ++n) {
obj1 = parser->getObj();
obj2 = parser->getObj();
diff -up texlive-base-20190410/source/texk/web2c/xetexdir/pdfimage.cpp.poppler-0.73 texlive-base-20190410/source/texk/web2c/xetexdir/pdfimage.cpp
--- texlive-base-20190410/source/texk/web2c/xetexdir/pdfimage.cpp.poppler-0.73 2018-12-25 00:48:22.000000000 -0500
+++ texlive-base-20190410/source/texk/web2c/xetexdir/pdfimage.cpp 2019-05-23 15:50:17.858768349 -0400
@@ -78,26 +78,29 @@ pdf_get_rect(char* filename, int page_nu
Page* page = doc->getCatalog()->getPage(page_num);
- const PDFRectangle* r;
+ PDFRectangle* r;
+ const PDFRectangle* cr;
switch (pdf_box) {
default:
case pdfbox_crop:
- r = page->getCropBox();
+ cr = page->getCropBox();
break;
case pdfbox_media:
- r = page->getMediaBox();
+ cr = page->getMediaBox();
break;
case pdfbox_bleed:
- r = page->getBleedBox();
+ cr = page->getBleedBox();
break;
case pdfbox_trim:
- r = page->getTrimBox();
+ cr = page->getTrimBox();
break;
case pdfbox_art:
- r = page->getArtBox();
+ cr = page->getArtBox();
break;
}
+ r = new PDFRectangle (cr->x1, cr->y1, cr->x2, cr->y2);
+
int RotAngle = 0;
RotAngle = (int)page->getRotate() % 360;
if (RotAngle < 0)
@@ -112,6 +115,7 @@ pdf_get_rect(char* filename, int page_nu
box->x = 72.27 / 72 * my_fmin(r->x1, r->x2);
box->y = 72.27 / 72 * my_fmin(r->y1, r->y2);
+ delete r;
delete doc;
return 0;

View file

@ -0,0 +1,14 @@
diff -up texlive-base-20190410/source/texk/kpathsea/mktexlsr.selinux texlive-base-20190410/source/texk/kpathsea/mktexlsr
--- texlive-base-20190410/source/texk/kpathsea/mktexlsr.selinux 2018-01-16 19:55:32.000000000 -0500
+++ texlive-base-20190410/source/texk/kpathsea/mktexlsr 2019-05-23 14:58:50.837886937 -0400
@@ -228,7 +228,8 @@ for TEXMFLS_R in "$@"; do
until PERMS=`kpsestat = "$db_file"`; do sleep 1; done
chmod $PERMS "$db_file_tmp"
rm -f "$db_file"
- mv "$db_file_tmp" "$db_file"
+ # selinux fix
+ cp "$db_file_tmp" "$db_file"
rm -rf "$db_dir_tmp"
done
diff -up texlive-base-20190410/source/texk/texlive/linked_scripts/texlive/fmtutil.pl.selinux texlive-base-20190410/source/texk/texlive/linked_scripts/texlive/fmtutil.pl

View file

@ -0,0 +1,22 @@
diff -up texlive-base-20190410/source/texk/kpathsea/texmf.cnf.texinfo-fix texlive-base-20190410/source/texk/kpathsea/texmf.cnf
--- texlive-base-20190410/source/texk/kpathsea/texmf.cnf.texinfo-fix 2019-05-23 15:03:28.928056938 -0400
+++ texlive-base-20190410/source/texk/kpathsea/texmf.cnf 2019-05-23 15:06:38.997072248 -0400
@@ -82,6 +82,9 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config
% to %USERPROFILE% on Windows, $HOME otherwise.
TEXMFHOME = ~/texmf
+% Texinfo on Fedora lives out of $TEXMFROOT
+TEXINFOHOME = $SELFAUTODIR/share/texmf
+
% TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data.
TEXMFVAR = ~/.texlive2019/texmf-var
@@ -107,7 +110,7 @@ TEXMFAUXTREES = {}
% The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is
% ever defined (the 99% common case), no extra elements will be added to
% the search paths. tlmgr takes care to end any value with a trailing comma.
-TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
+TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXINFOHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
% Where to look for, and where mktexlsr creates, ls-R files. By default,
% this is all and only the !! elements of TEXMF, so that mktexlsr does not

View file

@ -0,0 +1,79 @@
diff -up ./scripts/texlive/tlmgr.pl.ignore-warning ./scripts/texlive/tlmgr.pl
--- ./scripts/texlive/tlmgr.pl.ignore-warning 2019-05-24 21:35:57.384845754 -0400
+++ ./scripts/texlive/tlmgr.pl 2019-05-24 21:39:32.703577109 -0400
@@ -231,6 +231,7 @@ my %action_specification = (
"dry-run|n" => 1,
"file" => 1,
"force" => 1,
+ "ignore-warning" => 1,
"no-depends" => 1,
"no-depends-at-all" => 1,
"reinstall" => 1,
@@ -331,6 +332,7 @@ my %action_specification = (
"dry-run|n" => 1,
"exclude" => "=s@",
"force" => 1,
+ "ignore-warning" => 1,
"list" => 1,
"no-auto-install" => 1,
"no-auto-remove" => 1,
@@ -2613,6 +2615,15 @@ sub upd_info {
}
sub action_update {
+ if (!($opts{"ignore-warning"})) {
+ print("*** WARNING ***: Performing this action will likely destroy the Fedora TeXLive install on your system.\n");
+ print("*** WARNING ***: This is almost NEVER what you want to do.\n");
+ print("*** WARNING ***: Try using dnf install/update instead.\n");
+ print("*** WARNING ***: If performing this action is really what you want to do, pass the \"ignore-warning\" option.\n");
+ print("*** WARNING ***: But please do not file any bugs with the OS Vendor.\n");
+ exit;
+ }
+
init_local_db(1);
$opts{"no-depends"} = 1 if $opts{"no-depends-at-all"};
@@ -3618,6 +3629,15 @@ sub check_announce_format_triggers {
# anymore! That has all to be done by the caller.
#
sub action_install {
+ if (!($opts{"ignore-warning"})) {
+ print("*** WARNING ***: Performing this action will likely destroy the Fedora TeXLive install on your system.\n");
+ print("*** WARNING ***: This is almost NEVER what you want to do.\n");
+ print("*** WARNING ***: Try using dnf install/update instead.\n");
+ print("*** WARNING ***: If performing this action is really what you want to do, pass the \"ignore-warning\" option.\n");
+ print("*** WARNING ***: But please do not file any bugs with the OS Vendor.\n");
+ exit;
+ }
+
init_local_db(1);
my $ret = $F_OK;
return ($F_ERROR) if !check_on_writable();
@@ -8151,6 +8171,13 @@ If updates to C<tlmgr> itself (or other
infrastructure) are present, C<tlmgr> will bail out and not perform the
installation unless this option is given. Not recommended.
+=item B<--ignore-warning>
+
+The tlmgr tool can really ruin a Fedora install of TeXLive.
+We have added a warning check here to try to keep you from
+blindly following a tutorial and doing this. If you still want to
+proceed, just use this option.
+
=item B<--no-depends>
Do not install dependencies. (By default, installing a package ensures
@@ -8846,6 +8873,13 @@ In short:
Nothing is actually installed; instead, the actions to be performed are
written to the terminal. This is a more detailed report than C<--list>.
+=item B<--ignore-warning>
+
+The tlmgr tool can really ruin a Fedora install of TeXLive.
+We have added a warning check here to try to keep you from
+blindly following a tutorial and doing this. If you still want to
+proceed, just use this option.
+
=item B<--list> [I<pkg>]
Concisely list the packages which would be updated, newly installed, or

View file

@ -0,0 +1,142 @@
diff -up texlive-base-20200327/source/texk/web2c/am/texmf.am.dt texlive-base-20200327/source/texk/web2c/am/texmf.am
--- texlive-base-20200327/source/texk/web2c/am/texmf.am.dt 2019-12-17 14:24:59.000000000 -0500
+++ texlive-base-20200327/source/texk/web2c/am/texmf.am 2020-04-20 14:33:43.465656684 -0400
@@ -75,7 +75,7 @@ DISTCLEANFILES += $(nodist_tex_SOURCES)
# TeX tests
#
-tex_tests = triptest.test tests/write18-quote-test.pl tests/tex-closeout.test
+tex_tests = tests/write18-quote-test.pl tests/tex-closeout.test
triptest.log: tex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
tests/write18-quote-test.log tests/tex-closeout.test: tex$(EXEEXT)
EXTRA_DIST += $(tex_tests)
@@ -203,7 +203,7 @@ DISTCLEANFILES += $(nodist_libmf_a_SOURC
# Metafont tests
#
-mf_tests = mftraptest.test
+mf_tests =
mftraptest.log: mf$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
EXTRA_DIST += $(mf_tests)
if MF
diff -up texlive-base-20200327/source/texk/web2c/eptexdir/am/eptex.am.dt texlive-base-20200327/source/texk/web2c/eptexdir/am/eptex.am
--- texlive-base-20200327/source/texk/web2c/eptexdir/am/eptex.am.dt 2020-04-20 14:32:46.325851485 -0400
+++ texlive-base-20200327/source/texk/web2c/eptexdir/am/eptex.am 2020-04-20 14:34:20.015892398 -0400
@@ -83,7 +83,7 @@ EXTRA_DIST += \
# e-pTeX Tests
#
-eptex_tests = eptexdir/eptriptest.test eptexdir/pdfprimitive.test eptexdir/epver.test
+eptex_tests = eptexdir/epver.test
eptexdir/eptriptest.log: eptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
eptexdir/pdfprimitive.log: eptex$(EXEEXT)
eptexdir/epver.log: eptex$(EXEEXT)
diff -up texlive-base-20200327/source/texk/web2c/euptexdir/am/euptex.am.dt texlive-base-20200327/source/texk/web2c/euptexdir/am/euptex.am
--- texlive-base-20200327/source/texk/web2c/euptexdir/am/euptex.am.dt 2020-04-20 14:32:46.326851464 -0400
+++ texlive-base-20200327/source/texk/web2c/euptexdir/am/euptex.am 2020-04-20 14:34:55.625147806 -0400
@@ -84,7 +84,7 @@ EXTRA_DIST += \
# e-upTeX Tests
#
-euptex_tests = euptexdir/euptriptest.test euptexdir/pdfprimitive.test euptexdir/eupver.test
+euptex_tests = euptexdir/eupver.test
euptexdir/euptriptest.log: euptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
euptexdir/pdfprimitive.log: euptex$(EXEEXT)
euptexdir/eupver.log: euptex$(EXEEXT)
diff -up texlive-base-20200327/source/texk/web2c/mfluadir/am/mflua.am.dt texlive-base-20200327/source/texk/web2c/mfluadir/am/mflua.am
--- texlive-base-20200327/source/texk/web2c/mfluadir/am/mflua.am.dt 2017-04-16 06:11:22.000000000 -0400
+++ texlive-base-20200327/source/texk/web2c/mfluadir/am/mflua.am 2020-04-20 14:32:46.326851464 -0400
@@ -110,7 +110,7 @@ EXTRA_DIST += \
# MFLua tests
#
-mflua_tests = mfluadir/mfluatraptest.test
+mflua_tests =
mfluadir/mfluatraptest.log: mflua$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
EXTRA_DIST += $(mflua_tests)
diff -up texlive-base-20200327/source/texk/web2c/mfluajitdir/am/mfluajit.am.dt texlive-base-20200327/source/texk/web2c/mfluajitdir/am/mfluajit.am
--- texlive-base-20200327/source/texk/web2c/mfluajitdir/am/mfluajit.am.dt 2017-04-16 06:11:22.000000000 -0400
+++ texlive-base-20200327/source/texk/web2c/mfluajitdir/am/mfluajit.am 2020-04-20 14:32:46.326851464 -0400
@@ -106,7 +106,7 @@ EXTRA_DIST += \
# MFLuaJIT tests
#
-mfluajit_tests = mfluajitdir/mfluajittraptest.test
+mfluajit_tests =
mfluajitdir/mfluajittraptest.log: mfluajit$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
EXTRA_DIST += $(mfluajit_tests)
diff -up texlive-base-20200327/source/texk/web2c/pdftexdir/am/pdftex.am.dt texlive-base-20200327/source/texk/web2c/pdftexdir/am/pdftex.am
--- texlive-base-20200327/source/texk/web2c/pdftexdir/am/pdftex.am.dt 2020-04-20 14:32:46.326851464 -0400
+++ texlive-base-20200327/source/texk/web2c/pdftexdir/am/pdftex.am 2020-04-20 14:35:48.451043188 -0400
@@ -95,8 +95,8 @@ EXTRA_DIST += \
# pdfTeX tests
#
-pdftex_tests = pdftexdir/wprob.test pdftexdir/pdftex.test \
- pdftexdir/pdfimage.test pdftexdir/expanded.test \
+pdftex_tests = pdftexdir/pdftex.test \
+ pdftexdir/expanded.test \
pdftexdir/tests/cnfline.test
pdftexdir/wprob.log pdftexdir/pdftex.log \
diff -up texlive-base-20200327/source/texk/web2c/ptexdir/am/ptex.am.dt texlive-base-20200327/source/texk/web2c/ptexdir/am/ptex.am
--- texlive-base-20200327/source/texk/web2c/ptexdir/am/ptex.am.dt 2020-04-20 14:32:46.327851443 -0400
+++ texlive-base-20200327/source/texk/web2c/ptexdir/am/ptex.am 2020-04-20 14:36:23.750305069 -0400
@@ -168,7 +168,7 @@ EXTRA_DIST += \
# pTeX Tests
#
-ptex_tests = ptexdir/ptriptest.test ptexdir/pver.test
+ptex_tests = ptexdir/pver.test
ptexdir/ptriptest.log: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
ptexdir/pver.log: ptex$(EXEEXT)
pweb_tests = \
diff -up texlive-base-20200327/source/texk/web2c/uptexdir/am/uptex.am.dt texlive-base-20200327/source/texk/web2c/uptexdir/am/uptex.am
--- texlive-base-20200327/source/texk/web2c/uptexdir/am/uptex.am.dt 2020-04-20 14:32:46.327851443 -0400
+++ texlive-base-20200327/source/texk/web2c/uptexdir/am/uptex.am 2020-04-20 14:36:53.266687857 -0400
@@ -158,7 +158,7 @@ EXTRA_DIST += \
uptexdir/ChangeLog
# upTeX Tests
-uptex_tests = uptexdir/uptriptest.test uptexdir/upver.test
+uptex_tests = uptexdir/upver.test
uptexdir/uptriptest.log: uptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
uptexdir/upver.log: uptex$(EXEEXT)
upweb_tests = \
diff -up texlive-base-20200327/source/texk/web2c/xetexdir/am/xetex.am.dt texlive-base-20200327/source/texk/web2c/xetexdir/am/xetex.am
--- texlive-base-20200327/source/texk/web2c/xetexdir/am/xetex.am.dt 2020-04-20 14:32:46.327851443 -0400
+++ texlive-base-20200327/source/texk/web2c/xetexdir/am/xetex.am 2020-04-20 14:37:13.223270564 -0400
@@ -201,7 +201,6 @@ EXTRA_DIST += \
#
xetex_tests = \
xetexdir/xetex-filedump.test \
- xetexdir/xetex-bug73.test \
xetexdir/xetex.test
xetexdir/xetex-filedump.log xetexdir/xetex-bug73.log xetexdir/xetex.log: xetex$(EXEEXT)
diff -up texlive-base-20200327/source/texk/kpathsea/Makefile.am.dt texlive-base-20200327/source/texk/kpathsea/Makefile.am
--- texlive-base-20200327/source/texk/kpathsea/Makefile.am.dt 2020-04-20 15:49:39.282325550 -0400
+++ texlive-base-20200327/source/texk/kpathsea/Makefile.am 2020-04-20 15:49:51.475074045 -0400
@@ -275,7 +275,7 @@ uninstall-local:
AM_TESTS_ENVIRONMENT = LN_S='$(LN_S)'; export LN_S;
AM_TESTS_ENVIRONMENT += LT_OBJDIR='$(LT_OBJDIR)'; export LT_OBJDIR;
#
-TESTS = tests/cnfline.test tests/cnfnewline.test
+TESTS = tests/cnfnewline.test
TESTS += tests/cnfnull.test tests/cnfprog.test
TESTS += tests/kpseaccess.test
TESTS += tests/kpsereadlink.test tests/kpsestat.test tests/kpsewhich.test
diff -up texlive-base-20200327/source/texk/kpathsea/Makefile.in.dt texlive-base-20200327/source/texk/kpathsea/Makefile.in
--- texlive-base-20200327/source/texk/kpathsea/Makefile.in.dt 2020-04-21 10:17:29.766949867 -0400
+++ texlive-base-20200327/source/texk/kpathsea/Makefile.in 2020-04-21 10:17:36.926798780 -0400
@@ -858,7 +858,7 @@ dist_noinst_DATA = texmf.cnf
AM_TESTS_ENVIRONMENT = LN_S='$(LN_S)'; export LN_S; \
LT_OBJDIR='$(LT_OBJDIR)'; export LT_OBJDIR;
#
-TESTS = tests/cnfline.test tests/cnfnewline.test tests/cnfnull.test \
+TESTS = tests/cnfnewline.test tests/cnfnull.test \
tests/cnfprog.test tests/kpseaccess.test \
tests/kpsereadlink.test tests/kpsestat.test \
tests/kpsewhich.test

View file

@ -0,0 +1,318 @@
diff -up texlive-base-20200327/source/texk/texlive/linked_scripts/dviasm/dviasm.py.py3fix texlive-base-20200327/source/texk/texlive/linked_scripts/dviasm/dviasm.py
--- texlive-base-20200327/source/texk/texlive/linked_scripts/dviasm/dviasm.py.py3fix 2019-11-27 17:03:14.000000000 -0500
+++ texlive-base-20200327/source/texk/texlive/linked_scripts/dviasm/dviasm.py 2020-09-18 17:30:44.000000000 -0400
@@ -5,8 +5,8 @@
#
# Copyright (C) 2007-2008 by Jin-Hwan Cho <chofchof@ktug.or.kr>
# Copyright (C) 2011-2017 by Khaled Hosny <khaledhosny@eglug.org>
-# Copyright (C) 2019 by Arthur Reutenauer <arthur@reutenauer.eu>
-# Copyright (C) 2019 by Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+# Copyright (C) 2019 by Arthur Reutenauer <arthur@reutenauer.eu>
+# Copyright (C) 2019-2020 by Hironobu Yamashita <h.y.acetaminophen@gmail.com>
#
# 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
@@ -180,22 +180,26 @@ def GetInt(s):
except: return -1
def GetStrASCII(s): # used in Parse()
- if len(s) > 1 and ((s[0] == "'" and s[-1] == "'") or (s[0] == '"' and s[-1] == '"')): return [ord(c) for c in s[1:-1].decode('unicode_escape')]
+ if len(s) > 1 and ((s[0] == "'" and s[-1] == "'") or (s[0] == '"' and s[-1] == '"')):
+ return [ord(c) for c in s[1:-1].decode('unicode_escape')]
else: return ''
def UCS2toJIS(c):
- s = c.encode('iso2022-jp')
+ try:
+ s = c.encode('iso2022-jp')
+ except UnicodeEncodeError:
+ s = c.encode('raw_unicode_escape')
if len(s) == 1: return ord(s)
else: return (s[3] << 8) + s[4]
def GetStrUTF8(s): # used in Parse()
if len(s) > 1 and ((s[0] == "'" and s[-1] == "'") or (s[0] == '"' and s[-1] == '"')):
- t = s[1:-1]
+ t = s[1:-1].encode('raw_unicode_escape').decode('unicode_escape')
if is_ptex: return [UCS2toJIS(c) for c in t]
else: return [ord(c) for c in t]
else: return ''
-def PutStrASCII(t): # unsed in Dump()
+def PutStrASCII(t): # used in Dump()
s = ''
for o in t:
if o == 92: s += '\\\\'
@@ -206,7 +210,7 @@ def PutStrASCII(t): # unsed in Dump()
warning('Not support characters > 65535; may skip %d.\n' % o)
return "'%s'" % s
-def PutStrLatin1(t): # unsed in Dump()
+def PutStrLatin1(t): # used in Dump()
s = ''
for o in t:
if o == 92: s += '\\\\'
@@ -221,14 +225,14 @@ def DecodeISO2022JP(c):
try:
s = bytes.fromhex("1b 24 42 %02x %02x" % (c//256, c%256)).decode('iso2022-jp')
except UnicodeDecodeError:
- s = ''
+ s = chr(c)
return s
-def PutStrUTF8(t): # unsed in Dump()
+def PutStrUTF8(t): # used in Dump()
s = ''
if is_subfont:
for o in t:
- s += chr((subfont_idx << 8) + o).encode('utf8')
+ s += chr((subfont_idx << 8) + o)
else: # not the case of subfont
for o in t:
if o == 92: s += '\\\\'
@@ -239,16 +243,6 @@ def PutStrUTF8(t): # unsed in Dump()
else: s += chr(o)
return "'%s'" % s
-def PutStrSJIS(t): # unsed in Dump()
- s = ''
- for o in t:
- if o == 92: s += '\\\\'
- elif 32 <= o < 127: s += chr(o)
- elif o < 128: s += ('\\x%02x' % o)
- else:
- s += DecodeISO2022JP(o).encode('sjis')
- return "'%s'" % s
-
def IsFontChanged(f, z):
global cur_font, cur_ssize, subfont_idx, is_subfont
for n in subfont_list:
@@ -461,7 +455,7 @@ class DVI(object):
if o == SET_RULE:
s.append([SET_RULE, [p, SignedQuad(fp)]])
elif o in (PUT1, PUT2, PUT3, PUT4):
- s.append([PUT1, p])
+ s.append([PUT1, [p]])
elif o == PUT_RULE:
s.append([PUT_RULE, [p, SignedQuad(fp)]])
elif o == NOP:
@@ -498,7 +492,7 @@ class DVI(object):
elif o < FNT_NUM_0 + 64 or o in (FNT1, FNT2, FNT3, FNT4):
s.append([FNT1, p])
elif o in (XXX1, XXX2, XXX3, XXX4):
- q = fp.read(p).decode('utf8')
+ q = fp.read(p)
s.append([XXX1, q])
elif o in (FNT_DEF1, FNT_DEF2, FNT_DEF3, FNT_DEF4):
self.DefineFont(p, fp)
@@ -622,11 +616,11 @@ class DVI(object):
if cmd[0] == SET1:
for o in cmd[1]:
if o < 128: s.append(bytes.fromhex('%02x' % (SET_CHAR_0 + o)))
- else: s.append(self.CmdPair([SET1, o]))
+ else: s.append(self.CmdPairU([SET1, o]))
elif cmd[0] in (SET_RULE, PUT_RULE):
s.append(bytes.fromhex('%02x' % cmd[0]) + PutSignedQuad(cmd[1][0]) + PutSignedQuad(cmd[1][1]))
elif cmd[0] == PUT1:
- s.append(self.CmdPair([PUT1, cmd[1][0]]))
+ s.append(self.CmdPairU([PUT1, cmd[1][0]]))
elif cmd[0] in (RIGHT1, DOWN1):
s.append(self.CmdPair(cmd))
elif cmd[0] in (W0, X0, Y0, Z0):
@@ -648,12 +642,22 @@ class DVI(object):
z = cmd[1]; s.append(self.CmdPair(cmd))
elif cmd[0] == FNT1:
if cmd[1] < 64: s.append(bytes.fromhex('%02x' % (FNT_NUM_0 + cmd[1])))
- else: s.append(self.CmdPair(cmd))
+ else: s.append(self.CmdPairU(cmd))
elif cmd[0] == XXX1:
- cmd1 = cmd[1].encode('utf8')
- l = len(cmd[1])
- if l < 256: s.append(bytes.fromhex('%02x' % XXX1) + bytes.fromhex('%02x' % l) + cmd1)
- else: s.append(bytes.fromhex('%02x' % XXX4) + PutSignedQuad(l) + cmd1)
+ if options.xxx_encoding == "none":
+ l = len(cmd[1]) # leave encoding untouched
+ else:
+ cmd1 = cmd[1].encode(options.xxx_encoding)
+ l = len(cmd1)
+ if l < 256:
+ s.append(bytes.fromhex('%02x' % XXX1) + bytes.fromhex('%02x' % l))
+ else:
+ s.append(bytes.fromhex('%02x' % XXX4) + PutSignedQuad(l))
+ if options.xxx_encoding == "none":
+ for o in cmd[1]:
+ s.append(bytes.fromhex('%02x' % ord(o)))
+ else:
+ s.append(cmd1)
elif cmd[0] == DIR:
s.append(bytes.fromhex('%02x' % DIR) + bytes.fromhex('%02x' % cmd[1]))
elif cmd[0] == BEGIN_REFLECT:
@@ -685,7 +689,8 @@ class DVI(object):
def WriteFontDefinitions(self, fp):
s = []
for e in sorted(self.font_def.keys()):
- if self.font_def[e]['native']:
+ try:
+ self.font_def[e]['native']
flags = self.font_def[e]['flags']
s.append(PutByte(NATIVE_FONT_DEF))
s.append(PutSignedQuad(e))
@@ -698,7 +703,7 @@ class DVI(object):
if flags & XDV_FLAG_EXTEND: s.append(PutSignedQuad(self.font_def[e]['extend']))
if flags & XDV_FLAG_SLANT: s.append(PutSignedQuad(self.font_def[e]['slant']))
if flags & XDV_FLAG_EMBOLDEN: s.append(PutSignedQuad(self.font_def[e]['embolden']))
- else:
+ except KeyError:
l, q = PutUnsigned(e)
s.append(PutByte(FNT_DEF1 + l))
s.append(q)
@@ -710,6 +715,10 @@ class DVI(object):
s.append(self.font_def[e]['name'].encode('utf8'))
fp.write(b''.join(s))
+ def CmdPairU(self, cmd):
+ l, q = PutUnsigned(cmd[1])
+ return bytes.fromhex('%02x' % (cmd[0] + l)) + q
+
def CmdPair(self, cmd):
l, q = PutSigned(cmd[1])
return bytes.fromhex('%02x' % (cmd[0] + l)) + q
@@ -718,7 +727,7 @@ class DVI(object):
# Parse: Text -> Internal Format
##########################################################
def Parse(self, fn, encoding=''):
- fp = open(fn, 'r')
+ fp = open(fn, 'r', encoding=encoding)
s = fp.read()
fp.close()
self.ParseFromString(s, encoding=encoding)
@@ -807,7 +816,10 @@ class DVI(object):
else:
self.cur_page.append([SET1, ol])
elif key == 'put':
- self.cur_page.append([PUT1, GetStr(val)])
+ ol = GetStr(val)
+ if len(ol) != 1:
+ warning('only one character is allowed for put!')
+ self.cur_page.append([PUT1, ol])
elif key == 'setrule':
v = val.split(' ')
if len(v) != 2:
@@ -895,7 +907,7 @@ class DVI(object):
# Dump: Internal Format -> Text
##########################################################
def Dump(self, fn, tabsize=2, encoding=''):
- fp = open(fn, 'w')
+ fp = open(fn, 'w', encoding=encoding)
self.DumpToFile(fp, tabsize=tabsize, encoding=encoding)
fp.close()
@@ -903,7 +915,6 @@ class DVI(object):
global PutStr
if encoding == 'ascii': PutStr = PutStrASCII
elif encoding == 'latin1': PutStr = PutStrLatin1
- elif encoding == 'sjis': PutStr = PutStrSJIS
else: PutStr = PutStrUTF8
# DumpPreamble
fp.write("[preamble]\n")
@@ -921,10 +932,10 @@ class DVI(object):
# DumpFontDefinitions
fp.write("\n[font definitions]\n")
for e in sorted(self.font_def.keys()):
- fp.write("fntdef: %s" % self.font_def[e]['name'])
+ fp.write("fntdef: %s " % self.font_def[e]['name'])
if self.font_def[e]['design_size'] != self.font_def[e]['scaled_size']:
- fp.write(" (%s) " % self.byconv(self.font_def[e]['design_size']))
- fp.write(" at %s\n" % self.byconv(self.font_def[e]['scaled_size']))
+ fp.write("(%s) " % self.byconv(self.font_def[e]['design_size']))
+ fp.write("at %s\n" % self.byconv(self.font_def[e]['scaled_size']))
# DumpPages
for page in self.pages:
fp.write("\n[page" + (" %d"*10 % tuple(page['count'])) + "]\n")
@@ -939,7 +950,10 @@ class DVI(object):
fp.write("push:\n")
indent += tabsize
elif cmd[0] == XXX1:
- fp.write("xxx: %s\n" % repr(cmd[1]))
+ if options.xxx_encoding == "none":
+ fp.write("xxx: %s\n" % PutStrASCII(cmd[1])) # leave encoding untouched
+ else:
+ fp.write("xxx: '%s'\n" % cmd[1].decode(options.xxx_encoding))
elif cmd[0] == DIR:
fp.write("dir: %d\n" % cmd[1])
elif cmd[0] == BEGIN_REFLECT:
@@ -1092,7 +1106,6 @@ class DVI(object):
f['slant'] = slant
f['embolden'] = embolden
else:
- f['native'] = False
f['name'] = n
if q[:2] == "at": q = q[2:]
@@ -1144,16 +1157,18 @@ def ProcessOptions():
DVIasm is a Python script to support changing or creating DVI files
via disassembling into text, editing, and then reassembling into
binary format. It is fully documented at
+ http://tug.org/TUGboat/Articles/tb28-2/tb89cho.pdf
+ http://ajt.ktug.kr/assets/2008/5/1/0201cho.pdf
-http://tug.org/TUGboat/Articles/tb28-2/tb89cho.pdf
-http://ajt.ktug.kr/assets/2008/5/1/0201cho.pdf"""
+Please report bugs to
+ https://github.com/aminophen/dviasm"""
+
+ version = """This is %prog-20200918
- version = """This is %prog-20191126
-
Copyright (C) 2007-2008 by Jin-Hwan Cho <chofchof@ktug.or.kr>
Copyright (C) 2011-2017 by Khaled Hosny <khaledhosny@eglug.org>
-Copyright (C) 2019 by Arthur Reutenauer <arthur@reutenauer.eu>
-Copyright (C) 2019 by Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+Copyright (C) 2019 by Arthur Reutenauer <arthur@reutenauer.eu>
+Copyright (C) 2019-2020 by Hironobu Yamashita <h.y.acetaminophen@gmail.com>
This is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1173,6 +1188,10 @@ the Free Software Foundation, either ver
action="store", type="string", dest="encoding",
metavar="STR",
help="encoding for input/output [default=%default]")
+ parser.add_option("-x", "--xxx-encoding",
+ action="store", type="string", dest="xxx_encoding",
+ metavar="STR",
+ help="encoding for interpreting xxx strings [default=%default]")
parser.add_option("-t", "--tabsize",
action="store", type="int", dest="tabsize",
metavar="INT",
@@ -1184,18 +1203,20 @@ the Free Software Foundation, either ver
action="append", type="string", dest="subfont",
metavar="STR",
help="the list of fonts with UCS2 subfont scheme (comma separated); disable internal subfont list if STR is empty")
- parser.set_defaults(unit='pt', encoding='utf8', tabsize=2)
+ parser.set_defaults(unit='pt', encoding='utf8', xxx_encoding='none', tabsize=2)
(options, args) = parser.parse_args()
if not options.unit in ['sp', 'pt', 'bp', 'mm', 'cm', 'in']:
parser.error("invalid unit name '%s'!" % options.unit)
- if options.tabsize < 0:
+ if options.tabsize < 0:
parser.error("negative tabsize!")
- if not options.encoding in ['ascii', 'latin1', 'utf8', 'sjis']:
+ if not options.xxx_encoding in ['none', 'utf8', 'sjis', 'eucjp']:
+ parser.error("invalid xxx-encoding '%s'!" % options.xxx_encoding)
+ if not options.encoding in ['ascii', 'latin1', 'utf8', 'sjis', 'eucjp']:
parser.error("invalid encoding '%s'!" % options.encoding)
if options.ptex:
global is_ptex
is_ptex = True
- if not options.encoding in ['utf8', 'sjis']:
+ if not options.encoding in ['utf8', 'sjis', 'eucjp']:
parser.error("invalid encoding '%s' for Japanese pTeX!" % options.encoding)
if options.subfont:
global subfont_list
@@ -1235,4 +1256,4 @@ if __name__ == '__main__':
else: # dump -> dvi
aDVI.Parse(args[0], encoding=options.encoding)
if options.output: aDVI.Save(options.output)
- else: aDVI.SaveToFile(sys.stdout)
+ else: aDVI.SaveToFile(sys.stdout.buffer)

View file

@ -0,0 +1,641 @@
diff -up texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc.newpoppler texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc.newpoppler 2019-11-27 17:45:26.000000000 -0500
+++ texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc 2020-04-20 14:28:40.111986243 -0400
@@ -1,5 +1,5 @@
/*
-Copyright 1996-2016 Han The Thanh, <thanh@pdftex.org>
+Copyright 1996-2017 Han The Thanh, <thanh@pdftex.org>
This file is part of pdfTeX.
@@ -17,6 +17,15 @@ You should have received a copy of the G
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+/*
+This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at
+https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
+by Arch Linux. A little modifications are made to avoid a crash for
+some kind of pdf images, such as figure_missing.pdf in gnuplot.
+The poppler should be 0.59.0 or newer versions.
+POPPLER_VERSION should be defined.
+*/
+
/* Do this early in order to avoid a conflict between
MINGW32 <rpcndr.h> defining 'boolean' as 'unsigned char' and
<kpathsea/types.h> defining Pascal's boolean as 'int'.
@@ -39,10 +48,7 @@ with this program. If not, see <http://
#include <goo/gfile.h>
#define GString GooString
#else
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
+#error POPPLER_VERSION should be defined.
#endif
#include <assert.h>
@@ -84,31 +90,6 @@ extern integer zround(double);
#define MASK_SUPPRESS_PTEX_PAGENUMBER 0x04
#define MASK_SUPPRESS_PTEX_INFODICT 0x08
-// PdfObject encapsulates the xpdf Object type,
-// and properly frees its resources on destruction.
-// Use obj-> to access members of the Object,
-// and &obj to get a pointer to the object.
-// It is no longer necessary to call Object::free explicitely.
-
-class PdfObject {
- public:
- PdfObject() { // nothing
- } ~PdfObject() {
- iObject.free();
- }
- Object *operator->() {
- return &iObject;
- }
- Object *operator&() {
- return &iObject;
- }
- private: // no copying or assigning
- PdfObject(const PdfObject &);
- void operator=(const PdfObject &);
- public:
- Object iObject;
-};
-
// When copying the Resources of the selected page, all objects are copied
// recusively top-down. Indirect objects however are not fetched during
// copying, but get a new object number from pdfTeX and then will be
@@ -212,18 +193,6 @@ static void delete_document(PdfDocument
delete pdf_doc;
}
-// Replacement for
-// Object *initDict(Dict *dict1){ initObj(objDict); dict = dict1; return this; }
-
-static void initDictFromDict(PdfObject & obj, Dict * dict)
-{
- obj->initDict(xref);
- for (int i = 0, l = dict->getLength(); i < l; i++) {
- Object obj1;
- obj->dictAdd(copyString(dict->getKey(i)), dict->getValNF(i, &obj1));
- }
-}
-
// --------------------------------------------------------------------
static int addEncoding(GfxFont * gfont)
@@ -320,10 +289,10 @@ static void copyName(char *s)
static void copyDictEntry(Object * obj, int i)
{
- PdfObject obj1;
+ Object obj1;
copyName(obj->dictGetKey(i));
pdf_puts(" ");
- obj->dictGetValNF(i, &obj1);
+ obj1 = obj->dictGetValNF(i);
copyObject(&obj1);
pdf_puts("\n");
}
@@ -376,17 +345,17 @@ static void copyStream(Stream * str)
static void copyProcSet(Object * obj)
{
int i, l;
- PdfObject procset;
+ Object procset;
if (!obj->isArray())
pdftex_fail("PDF inclusion: invalid ProcSet array type <%s>",
obj->getTypeName());
pdf_puts("/ProcSet [ ");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- obj->arrayGetNF(i, &procset);
- if (!procset->isName())
+ procset = obj->arrayGetNF(i);
+ if (!procset.isName())
pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>",
- procset->getTypeName());
- copyName(procset->getName());
+ procset.getTypeName());
+ copyName(procset.getName());
pdf_puts(" ");
}
pdf_puts("]\n");
@@ -394,10 +363,29 @@ static void copyProcSet(Object * obj)
#define REPLACE_TYPE1C true
+static bool embeddableFont(Object * fontdesc)
+{
+ Object fontfile, ffsubtype;
+
+ if (!fontdesc->isDict())
+ return false;
+ fontfile = fontdesc->dictLookup("FontFile");
+ if (fontfile.isStream())
+ return true;
+ if (REPLACE_TYPE1C) {
+ fontfile = fontdesc->dictLookup("FontFile3");
+ if (!fontfile.isStream())
+ return false;
+ ffsubtype = fontfile.streamGetDict()->lookup("Subtype");
+ return ffsubtype.isName() && !strcmp(ffsubtype.getName(), "Type1C");
+ }
+ return false;
+}
+
static void copyFont(char *tag, Object * fontRef)
{
- PdfObject fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
- fontfile, ffsubtype, stemV;
+ Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
+ stemV;
GfxFont *gfont;
fd_entry *fd;
fm_entry *fontmap;
@@ -413,33 +401,39 @@ static void copyFont(char *tag, Object *
}
// Only handle included Type1 (and Type1C) fonts; anything else will be copied.
// Type1C fonts are replaced by Type1 fonts, if REPLACE_TYPE1C is true.
- if (!fixedinclusioncopyfont && fontRef->fetch(xref, &fontdict)->isDict()
- && fontdict->dictLookup("Subtype", &subtype)->isName()
- && !strcmp(subtype->getName(), "Type1")
- && fontdict->dictLookup("BaseFont", &basefont)->isName()
- && fontdict->dictLookupNF("FontDescriptor", &fontdescRef)->isRef()
- && fontdescRef->fetch(xref, &fontdesc)->isDict()
- && (fontdesc->dictLookup("FontFile", &fontfile)->isStream()
- || (REPLACE_TYPE1C
- && fontdesc->dictLookup("FontFile3", &fontfile)->isStream()
- && fontfile->streamGetDict()->lookup("Subtype",
- &ffsubtype)->isName()
- && !strcmp(ffsubtype->getName(), "Type1C")))
- && (fontmap = lookup_fontmap(basefont->getName())) != NULL) {
+ fontdict = fontRef->fetch(xref);
+ fontdesc = Object(objNull);
+ if (fontdict.isDict()) {
+ subtype = fontdict.dictLookup("Subtype");
+ basefont = fontdict.dictLookup("BaseFont");
+ fontdescRef = fontdict.dictLookupNF("FontDescriptor");
+ if (fontdescRef.isRef()) {
+ fontdesc = fontdescRef.fetch(xref);
+ }
+ }
+ if (!fixedinclusioncopyfont && fontdict.isDict()
+ && subtype.isName()
+ && !strcmp(subtype.getName(), "Type1")
+ && basefont.isName()
+ && fontdescRef.isRef()
+ && fontdesc.isDict()
+ && embeddableFont(&fontdesc)
+ && (fontmap = lookup_fontmap(basefont.getName())) != NULL) {
// round /StemV value, since the PDF input is a float
// (see Font Descriptors in PDF reference), but we only store an
// integer, since we don't want to change the struct.
- fontdesc->dictLookup("StemV", &stemV);
- fd = epdf_create_fontdescriptor(fontmap, zround(stemV->getNum()));
- if (fontdesc->dictLookup("CharSet", &charset) &&
- charset->isString() && is_subsetable(fontmap))
- epdf_mark_glyphs(fd, charset->getString()->getCString());
+ stemV = fontdesc.dictLookup("StemV");
+ fd = epdf_create_fontdescriptor(fontmap, zround(stemV.getNum()));
+ charset = fontdesc.dictLookup("CharSet");
+ if (!charset.isNull() &&
+ charset.isString() && is_subsetable(fontmap))
+ epdf_mark_glyphs(fd, charset.getString()->getCString());
else
embed_whole_font(fd);
- addFontDesc(fontdescRef->getRef(), fd);
+ addFontDesc(fontdescRef.getRef(), fd);
copyName(tag);
gfont = GfxFont::makeFont(xref, tag, fontRef->getRef(),
- fontdict->getDict());
+ fontdict.getDict());
pdf_printf(" %d 0 R ", addFont(fontRef->getRef(), fd,
addEncoding(gfont)));
} else {
@@ -451,24 +445,24 @@ static void copyFont(char *tag, Object *
static void copyFontResources(Object * obj)
{
- PdfObject fontRef;
+ Object fontRef;
int i, l;
if (!obj->isDict())
pdftex_fail("PDF inclusion: invalid font resources dict type <%s>",
obj->getTypeName());
pdf_puts("/Font << ");
for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
- obj->dictGetValNF(i, &fontRef);
- if (fontRef->isRef())
+ fontRef = obj->dictGetValNF(i);
+ if (fontRef.isRef())
copyFont(obj->dictGetKey(i), &fontRef);
- else if (fontRef->isDict()) { // some programs generate pdf with embedded font object
+ else if (fontRef.isDict()) { // some programs generate pdf with embedded font object
copyName(obj->dictGetKey(i));
pdf_puts(" ");
copyObject(&fontRef);
}
else
pdftex_fail("PDF inclusion: invalid font in reference type <%s>",
- fontRef->getTypeName());
+ fontRef.getTypeName());
}
pdf_puts(">>\n");
}
@@ -557,7 +551,7 @@ static char *convertNumToPDF(double n)
static void copyObject(Object * obj)
{
- PdfObject obj1;
+ Object obj1;
int i, l, c;
Ref ref;
char *p;
@@ -601,8 +595,8 @@ static void copyObject(Object * obj)
} else if (obj->isArray()) {
pdf_puts("[");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- obj->arrayGetNF(i, &obj1);
- if (!obj1->isName())
+ obj1 = obj->arrayGetNF(i);
+ if (!obj1.isName())
pdf_puts(" ");
copyObject(&obj1);
}
@@ -612,9 +606,8 @@ static void copyObject(Object * obj)
copyDict(obj);
pdf_puts(">>");
} else if (obj->isStream()) {
- initDictFromDict(obj1, obj->streamGetDict());
pdf_puts("<<\n");
- copyDict(&obj1);
+ copyDict(obj->getStream()->getDictObject());
pdf_puts(">>\n");
pdf_puts("stream\n");
copyStream(obj->getStream()->getUndecodedStream());
@@ -638,9 +631,8 @@ static void writeRefs()
InObj *r;
for (r = inObjList; r != 0; r = r->next) {
if (!r->written) {
- Object obj1;
r->written = 1;
- xref->fetch(r->ref.num, r->ref.gen, &obj1);
+ Object obj1 = xref->fetch(r->ref.num, r->ref.gen);
if (r->type == objFont) {
assert(!obj1.isStream());
pdfbeginobj(r->num, 2); // \pdfobjcompresslevel = 2 is for this
@@ -656,7 +648,6 @@ static void writeRefs()
pdf_puts("\n");
pdfendobj();
}
- obj1.free();
}
}
}
@@ -685,7 +676,7 @@ static void writeEncodings()
#ifdef POPPLER_VERSION
r->font->decRefCnt();
#else
- delete r->font;
+#error POPPLER_VERSION should be defined.
#endif
delete r;
}
@@ -728,7 +719,7 @@ read_pdf_info(char *image_name, char *pa
#ifdef POPPLER_VERSION
int pdf_major_version_found, pdf_minor_version_found;
#else
- float pdf_version_found, pdf_version_wanted;
+#error POPPLER_VERSION should be defined.
#endif
// initialize
if (!isInit) {
@@ -760,19 +751,7 @@ read_pdf_info(char *image_name, char *pa
}
}
#else
- pdf_version_found = pdf_doc->doc->getPDFVersion();
- pdf_version_wanted = major_pdf_version_wanted + (minor_pdf_version_wanted * 0.1);
- if (pdf_version_found > pdf_version_wanted + 0.01) {
- char msg[] =
- "PDF inclusion: found PDF version <%.1f>, but at most version <%.1f> allowed";
- if (pdf_inclusion_errorlevel > 0) {
- pdftex_fail(msg, pdf_version_found, pdf_version_wanted);
- } else if (pdf_inclusion_errorlevel < 0) {
- ; /* do nothing */
- } else { /* = 0, give warning */
- pdftex_warn(msg, pdf_version_found, pdf_version_wanted);
- }
- }
+#error POPPLER_VERSION should be defined.
#endif
epdf_num_pages = pdf_doc->doc->getCatalog()->getNumPages();
if (page_name) {
@@ -839,8 +818,8 @@ void write_epdf(void)
Page *page;
Ref *pageRef;
Dict *pageDict;
- PdfObject contents, obj1, obj2, pageObj, dictObj;
- PdfObject groupDict;
+ Object contents, obj1, obj2, pageObj, dictObj;
+ Object groupDict;
bool writeSepGroup = false;
Object info;
char *key;
@@ -867,8 +846,8 @@ void write_epdf(void)
encodingList = 0;
page = pdf_doc->doc->getCatalog()->getPage(epdf_selected_page);
pageRef = pdf_doc->doc->getCatalog()->getPageRef(epdf_selected_page);
- xref->fetch(pageRef->num, pageRef->gen, &pageObj);
- pageDict = pageObj->getDict();
+ pageObj = xref->fetch(pageRef->num, pageRef->gen);
+ pageDict = pageObj.getDict();
rotate = page->getRotate();
PDFRectangle *pagebox;
// write the Page header
@@ -886,7 +865,7 @@ void write_epdf(void)
pdf_printf("/%s.PageNumber %i\n", pdfkeyprefix, (int) epdf_selected_page);
}
if ((suppress_ptex_info & MASK_SUPPRESS_PTEX_INFODICT) == 0) {
- pdf_doc->doc->getDocInfoNF(&info);
+ info = pdf_doc->doc->getDocInfoNF();
if (info.isRef()) {
// the info dict must be indirect (PDF Ref p. 61)
pdf_printf("/%s.InfoDict ", pdfkeyprefix);
@@ -942,14 +921,14 @@ void write_epdf(void)
pdf_puts(stripzeros(s));
// Metadata validity check (as a stream it must be indirect)
- pageDict->lookupNF("Metadata", &dictObj);
- if (!dictObj->isNull() && !dictObj->isRef())
+ dictObj = pageDict->lookupNF("Metadata");
+ if (!dictObj.isNull() && !dictObj.isRef())
pdftex_warn("PDF inclusion: /Metadata must be indirect object");
// copy selected items in Page dictionary except Resources & Group
for (i = 0; pageDictKeys[i] != NULL; i++) {
- pageDict->lookupNF(pageDictKeys[i], &dictObj);
- if (!dictObj->isNull()) {
+ dictObj = pageDict->lookupNF(pageDictKeys[i]);
+ if (!dictObj.isNull()) {
pdf_newline();
pdf_printf("/%s ", pageDictKeys[i]);
copyObject(&dictObj); // preserves indirection
@@ -957,8 +936,8 @@ void write_epdf(void)
}
// handle page group
- pageDict->lookupNF("Group", &dictObj);
- if (!dictObj->isNull()) {
+ dictObj = pageDict->lookupNF("Group");
+ if (!dictObj.isNull()) {
if (pdfpagegroupval == 0) {
// another pdf with page group was included earlier on the
// same page; copy the Group entry as is. See manual for
@@ -972,11 +951,36 @@ void write_epdf(void)
copyObject(&dictObj);
} else {
// write Group dict as a separate object, since the Page dict also refers to it
- pageDict->lookup("Group", &dictObj);
- if (!dictObj->isDict())
+ dictObj = pageDict->lookup("Group");
+ if (!dictObj.isDict())
pdftex_fail("PDF inclusion: /Group dict missing");
writeSepGroup = true;
- initDictFromDict(groupDict, page->getGroup());
+/*
+This part is only a single line
+ groupDict = Object(page->getGroup());
+in the original patch. In this case, however, pdftex crashes at
+"delete pdf_doc->doc" in "delete_document()" for inclusion of some
+kind of pdf images, for example, figure_missing.pdf in gnuplot.
+A change
+ groupDict = Object(page->getGroup()).copy();
+does not improve the situation.
+The changes below seem to work fine.
+*/
+// begin modification
+ groupDict = pageDict->lookup("Group");
+ const Dict& dic1 = page->getGroup();
+ const Dict& dic2 = groupDict.getDict();
+ // replace dic2 in groupDict with dic1
+ l = dic2.getLength();
+ for (i = 0; i < l; i++) {
+ groupDict.dictRemove(dic2.getKey(i));
+ }
+ l = dic1.getLength();
+ for (i = 0; i < l; i++) {
+ groupDict.dictAdd(copyString(dic1.getKey(i)),
+ dic1.getValNF(i));
+ }
+// end modification
pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval);
}
}
@@ -989,14 +993,14 @@ void write_epdf(void)
pdftex_warn
("PDF inclusion: /Resources missing. 'This practice is not recommended' (PDF Ref)");
} else {
- initDictFromDict(obj1, page->getResourceDict());
+ Object *obj1 = page->getResourceDictObject();
if (!obj1->isDict())
pdftex_fail("PDF inclusion: invalid resources dict type <%s>",
obj1->getTypeName());
pdf_newline();
pdf_puts("/Resources <<\n");
for (i = 0, l = obj1->dictGetLength(); i < l; ++i) {
- obj1->dictGetVal(i, &obj2);
+ obj2 = obj1->dictGetVal(i);
key = obj1->dictGetKey(i);
if (strcmp("Font", key) == 0)
copyFontResources(&obj2);
@@ -1009,8 +1013,8 @@ void write_epdf(void)
}
// write the page contents
- page->getContents(&contents);
- if (contents->isStream()) {
+ contents = page->getContents();
+ if (contents.isStream()) {
// Variant A: get stream and recompress under control
// of \pdfcompresslevel
@@ -1021,36 +1025,35 @@ void write_epdf(void)
// Variant B: copy stream without recompressing
//
- contents->streamGetDict()->lookup("F", &obj1);
- if (!obj1->isNull()) {
+ obj1 = contents.streamGetDict()->lookup("F");
+ if (!obj1.isNull()) {
pdftex_fail("PDF inclusion: Unsupported external stream");
}
- contents->streamGetDict()->lookup("Length", &obj1);
- assert(!obj1->isNull());
+ obj1 = contents.streamGetDict()->lookup("Length");
+ assert(!obj1.isNull());
pdf_puts("/Length ");
copyObject(&obj1);
pdf_puts("\n");
- contents->streamGetDict()->lookup("Filter", &obj1);
- if (!obj1->isNull()) {
+ obj1 = contents.streamGetDict()->lookup("Filter");
+ if (!obj1.isNull()) {
pdf_puts("/Filter ");
copyObject(&obj1);
pdf_puts("\n");
- contents->streamGetDict()->lookup("DecodeParms", &obj1);
- if (!obj1->isNull()) {
+ obj1 = contents.streamGetDict()->lookup("DecodeParms");
+ if (!obj1.isNull()) {
pdf_puts("/DecodeParms ");
copyObject(&obj1);
pdf_puts("\n");
}
}
pdf_puts(">>\nstream\n");
- copyStream(contents->getStream()->getUndecodedStream());
+ copyStream(contents.getStream()->getUndecodedStream());
pdfendstream();
- } else if (contents->isArray()) {
+ } else if (contents.isArray()) {
pdfbeginstream();
- for (i = 0, l = contents->arrayGetLength(); i < l; ++i) {
- Object contentsobj;
- copyStream((contents->arrayGet(i, &contentsobj))->getStream());
- contentsobj.free();
+ for (i = 0, l = contents.arrayGetLength(); i < l; ++i) {
+ Object contentsobj = contents.arrayGet(i);
+ copyStream(contentsobj.getStream());
if (i < l - 1)
pdf_newline(); // add a newline after each stream except the last
}
diff -up texlive-base-20200327/source/texk/web2c/pdftexdir/pdftosrc.cc.newpoppler texlive-base-20200327/source/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-base-20200327/source/texk/web2c/pdftexdir/pdftosrc.cc.newpoppler 2017-10-17 00:24:27.000000000 -0400
+++ texlive-base-20200327/source/texk/web2c/pdftexdir/pdftosrc.cc 2020-04-20 14:25:55.786266341 -0400
@@ -16,6 +16,14 @@ GNU General Public License for more deta
You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
+/*
+This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at
+https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
+by Arch Linux. The poppler should be 0.59.0 or newer versions.
+POPPLER_VERSION should be defined.
+*/
+
#include <w2c/config.h>
#include <stdlib.h>
@@ -32,10 +40,7 @@ with this program. If not, see <http://
#include <goo/gmem.h>
#include <goo/gfile.h>
#else
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
+#error POPPLER_VERSION should be defined.
#endif
#include <assert.h>
@@ -86,22 +91,20 @@ int main(int argc, char *argv[])
objgen = atoi(argv[3]);
}
xref = doc->getXRef();
- catalogDict.initNull();
- xref->getCatalog(&catalogDict);
+ catalogDict = xref->getCatalog();
if (!catalogDict.isDict("Catalog")) {
fprintf(stderr, "No Catalog found\n");
exit(1);
}
- srcStream.initNull();
+ srcStream = Object(objNull);
if (objnum == 0) {
- catalogDict.dictLookup("SourceObject", &srcStream);
+ srcStream = catalogDict.dictLookup("SourceObject");
static char const_SourceFile[] = "SourceFile";
if (!srcStream.isStream(const_SourceFile)) {
fprintf(stderr, "No SourceObject found\n");
exit(1);
}
- srcName.initNull();
- srcStream.getStream()->getDict()->lookup("SourceName", &srcName);
+ srcName = srcStream.getStream()->getDict()->lookup("SourceName");
if (!srcName.isString()) {
fprintf(stderr, "No SourceName found\n");
exit(1);
@@ -110,7 +113,7 @@ int main(int argc, char *argv[])
// We cannot free srcName, as objname shares its string.
// srcName.free();
} else if (objnum > 0) {
- xref->fetch(objnum, objgen, &srcStream);
+ srcStream = xref->fetch(objnum, objgen);
if (!srcStream.isStream()) {
fprintf(stderr, "Not a Stream object\n");
exit(1);
@@ -160,26 +163,24 @@ int main(int argc, char *argv[])
int localOffset = 0;
Guint firstOffset;
- assert(xref->fetch(e->offset, 0, &objStr)->isStream());
- nObjects = objStr.streamGetDict()->lookup("N", &obj1)->getInt();
- obj1.free();
- first = objStr.streamGetDict()->lookup("First", &obj1)->getInt();
- obj1.free();
+ objStr = xref->fetch(e->offset, 0);
+ assert(objStr.isStream());
+ obj1 = objStr.streamGetDict()->lookup("N");
+ nObjects = obj1.getInt();
+ obj1 = objStr.streamGetDict()->lookup("First");
+ first = obj1.getInt();
firstOffset = objStr.getStream()->getBaseStream()->getStart() + first;
// parse the header: object numbers and offsets
objStr.streamReset();
- obj1.initNull();
- str = new EmbedStream(objStr.getStream(), &obj1, gTrue, first);
+ str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first);
lexer = new Lexer(xref, str);
parser = new Parser(xref, lexer, gFalse);
for (n = 0; n < nObjects; ++n) {
- parser->getObj(&obj1);
- parser->getObj(&obj2);
+ obj1 = parser->getObj();
+ obj2 = parser->getObj();
if (n == e->gen)
localOffset = obj2.getInt();
- obj1.free();
- obj2.free();
}
#if defined(POPPLER_VERSION) || defined(XPDF304)
while (str->getChar() != EOF) ;
@@ -187,7 +188,6 @@ int main(int argc, char *argv[])
lexer->skipToEOF();
#endif
delete parser;
- objStr.free();
fprintf(outfile, "%.10lu 00000 n\n",
(long unsigned)(firstOffset + localOffset));
@@ -198,7 +198,6 @@ int main(int argc, char *argv[])
s->reset();
while ((c = s->getChar()) != EOF)
fputc(c, outfile);
- srcStream.free();
}
if (objnum == 0)
fprintf(stderr, "Source file extracted to %s\n", outname);
@@ -207,7 +206,6 @@ int main(int argc, char *argv[])
else
fprintf(stderr, "Cross-reference table extracted to %s\n", outname);
fclose(outfile);
- catalogDict.free();
delete doc;
delete globalParams;
}

View file

@ -0,0 +1,266 @@
diff -up texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-0.84 texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-0.84 2020-04-20 14:38:05.301181578 -0400
+++ texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc 2020-04-20 14:38:05.314181306 -0400
@@ -26,6 +26,15 @@ The poppler should be 0.59.0 or newer ve
POPPLER_VERSION should be defined.
*/
+#ifdef POPPLER_VERSION
+#include <poppler-config.h>
+#define xpdfVersion POPPLER_VERSION
+#define xpdfString "poppler"
+#else
+#include <xpdf/config.h> /* just to get the xpdf version */
+#define xpdfString "xpdf"
+#endif
+
/* Do this early in order to avoid a conflict between
MINGW32 <rpcndr.h> defining 'boolean' as 'unsigned char' and
<kpathsea/types.h> defining Pascal's boolean as 'int'.
@@ -292,7 +301,7 @@ static void copyDictEntry(Object * obj,
Object obj1;
copyName(obj->dictGetKey(i));
pdf_puts(" ");
- obj1 = obj->dictGetValNF(i);
+ obj1 = obj->dictGetValNF(i).copy();
copyObject(&obj1);
pdf_puts("\n");
}
@@ -351,7 +360,7 @@ static void copyProcSet(Object * obj)
obj->getTypeName());
pdf_puts("/ProcSet [ ");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- procset = obj->arrayGetNF(i);
+ procset = obj->arrayGetNF(i).copy();
if (!procset.isName())
pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>",
procset.getTypeName());
@@ -406,7 +415,7 @@ static void copyFont(const char *tag, Ob
if (fontdict.isDict()) {
subtype = fontdict.dictLookup("Subtype");
basefont = fontdict.dictLookup("BaseFont");
- fontdescRef = fontdict.dictLookupNF("FontDescriptor");
+ fontdescRef = fontdict.dictLookupNF("FontDescriptor").copy();
if (fontdescRef.isRef()) {
fontdesc = fontdescRef.fetch(xref);
}
@@ -452,7 +461,7 @@ static void copyFontResources(Object * o
obj->getTypeName());
pdf_puts("/Font << ");
for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
- fontRef = obj->dictGetValNF(i);
+ fontRef = obj->dictGetValNF(i).copy();
if (fontRef.isRef())
copyFont(obj->dictGetKey(i), &fontRef);
else if (fontRef.isDict()) { // some programs generate pdf with embedded font object
@@ -595,7 +604,7 @@ static void copyObject(Object * obj)
} else if (obj->isArray()) {
pdf_puts("[");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- obj1 = obj->arrayGetNF(i);
+ obj1 = obj->arrayGetNF(i).copy();
if (!obj1.isName())
pdf_puts(" ");
copyObject(&obj1);
@@ -723,7 +732,7 @@ read_pdf_info(char *image_name, char *pa
#endif
// initialize
if (!isInit) {
- globalParams = new GlobalParams();
+ globalParams = std::unique_ptr<GlobalParams>(new GlobalParams());
globalParams->setErrQuiet(false);
isInit = true;
}
@@ -761,7 +770,7 @@ read_pdf_info(char *image_name, char *pa
if (link == 0 || !link->isOk())
pdftex_fail("PDF inclusion: invalid destination <%s>", page_name);
Ref ref = link->getPageRef();
- page_num = pdf_doc->doc->getCatalog()->findPage(ref.num, ref.gen);
+ page_num = pdf_doc->doc->getCatalog()->findPage(ref);
if (page_num == 0)
pdftex_fail("PDF inclusion: destination is not a page <%s>",
page_name);
@@ -921,13 +930,13 @@ void write_epdf(void)
pdf_puts(stripzeros(s));
// Metadata validity check (as a stream it must be indirect)
- dictObj = pageDict->lookupNF("Metadata");
+ dictObj = pageDict->lookupNF("Metadata").copy();
if (!dictObj.isNull() && !dictObj.isRef())
pdftex_warn("PDF inclusion: /Metadata must be indirect object");
// copy selected items in Page dictionary except Resources & Group
for (i = 0; pageDictKeys[i] != NULL; i++) {
- dictObj = pageDict->lookupNF(pageDictKeys[i]);
+ dictObj = pageDict->lookupNF(pageDictKeys[i]).copy();
if (!dictObj.isNull()) {
pdf_newline();
pdf_printf("/%s ", pageDictKeys[i]);
@@ -936,7 +945,7 @@ void write_epdf(void)
}
// handle page group
- dictObj = pageDict->lookupNF("Group");
+ dictObj = pageDict->lookupNF("Group").copy();
if (!dictObj.isNull()) {
if (pdfpagegroupval == 0) {
// another pdf with page group was included earlier on the
@@ -978,7 +987,7 @@ The changes below seem to work fine.
l = dic1.getLength();
for (i = 0; i < l; i++) {
groupDict.dictAdd(dic1.getKey(i),
- dic1.getValNF(i));
+ dic1.getValNF(i).copy());
}
// end modification
pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval);
@@ -1108,6 +1117,6 @@ void epdf_check_mem()
delete_document(p);
}
// see above for globalParams
- delete globalParams;
+ globalParams.reset();
}
}
diff -up texlive-base-20200327/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-0.84 texlive-base-20200327/source/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-base-20200327/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-0.84 2020-04-20 14:38:05.301181578 -0400
+++ texlive-base-20200327/source/texk/web2c/pdftexdir/pdftosrc.cc 2020-04-20 14:38:05.314181306 -0400
@@ -24,6 +24,15 @@ by Arch Linux. The poppler should be 0.5
POPPLER_VERSION should be defined.
*/
+#ifdef POPPLER_VERSION
+#include <poppler-config.h>
+#define xpdfVersion POPPLER_VERSION
+#define xpdfString "poppler"
+#else
+#include <xpdf/config.h> /* just to get the xpdf version */
+#define xpdfString "xpdf"
+#endif
+
#include <w2c/config.h>
#include <stdlib.h>
@@ -79,7 +88,7 @@ int main(int argc, char *argv[])
exit(1);
}
fileName = new GString(argv[1]);
- globalParams = new GlobalParams();
+ globalParams = std::unique_ptr<GlobalParams>(new GlobalParams());
doc = new PDFDoc(fileName);
if (!doc->isOk()) {
fprintf(stderr, "Invalid PDF file\n");
@@ -100,7 +109,7 @@ int main(int argc, char *argv[])
if (objnum == 0) {
srcStream = catalogDict.dictLookup("SourceObject");
static char const_SourceFile[] = "SourceFile";
- if (!srcStream.isStream(const_SourceFile)) {
+ if (!(srcStream.isStream() && srcStream.getDict()->is(const_SourceFile))) {
fprintf(stderr, "No SourceObject found\n");
exit(1);
}
@@ -156,7 +165,6 @@ int main(int argc, char *argv[])
(e->type == xrefEntryFree ? "f" : "n"));
else { // e->offset is the object number of the object stream
Stream *str;
- Lexer *lexer;
Parser *parser;
Object objStr, obj1, obj2;
int nObjects, first, n;
@@ -174,8 +182,7 @@ int main(int argc, char *argv[])
// parse the header: object numbers and offsets
objStr.streamReset();
str = new EmbedStream(objStr.getStream(), Object(objNull), true, first);
- lexer = new Lexer(xref, str);
- parser = new Parser(xref, lexer, false);
+ parser = new Parser(xref, str, false);
for (n = 0; n < nObjects; ++n) {
obj1 = parser->getObj();
obj2 = parser->getObj();
@@ -207,5 +214,5 @@ int main(int argc, char *argv[])
fprintf(stderr, "Cross-reference table extracted to %s\n", outname);
fclose(outfile);
delete doc;
- delete globalParams;
+ globalParams.reset();
}
diff -up texlive-base-20200327/source/texk/web2c/pdftexdir/utils.c.poppler-0.84 texlive-base-20200327/source/texk/web2c/pdftexdir/utils.c
--- texlive-base-20200327/source/texk/web2c/pdftexdir/utils.c.poppler-0.84 2019-12-29 19:37:32.000000000 -0500
+++ texlive-base-20200327/source/texk/web2c/pdftexdir/utils.c 2020-04-20 14:39:39.355214866 -0400
@@ -32,14 +32,6 @@ with this program. If not, see <http://
#include <zlib.h>
#include "ptexlib.h"
#include <png.h>
-#ifdef POPPLER_VERSION
-/* POPPLER_VERSION should be a proper version string */
-#define xpdfVersion POPPLER_VERSION
-#define xpdfString "poppler"
-#else
-#include <xpdf/config.h> /* just to get the xpdf version */
-#define xpdfString "xpdf"
-#endif
#define check_nprintf(size_get, size_want) \
if ((unsigned)(size_get) >= (unsigned)(size_want)) \
@@ -977,12 +969,10 @@ void initversionstring(char **versions)
{
const_string fmt =
"Compiled with libpng %s; using libpng %s\n"
- "Compiled with zlib %s; using zlib %s\n"
- "Compiled with %s version %s\n";
+ "Compiled with zlib %s; using zlib %s\n";
size_t len = strlen(fmt)
+ strlen(PNG_LIBPNG_VER_STRING) + strlen(png_libpng_ver)
+ strlen(ZLIB_VERSION) + strlen(zlib_version)
- + strlen(xpdfString) + strlen(xpdfVersion)
+ 1;
/* len will be more than enough, because of the placeholder chars in fmt
@@ -990,7 +980,7 @@ void initversionstring(char **versions)
*versions = xmalloc(len);
sprintf(*versions, fmt,
PNG_LIBPNG_VER_STRING, png_libpng_ver,
- ZLIB_VERSION, zlib_version, xpdfString, xpdfVersion);
+ ZLIB_VERSION, zlib_version);
}
diff -up texlive-base-20200327/source/texk/web2c/xetexdir/XeTeX_ext.c.poppler-0.84 texlive-base-20200327/source/texk/web2c/xetexdir/XeTeX_ext.c
--- texlive-base-20200327/source/texk/web2c/xetexdir/XeTeX_ext.c.poppler-0.84 2019-12-30 16:00:39.000000000 -0500
+++ texlive-base-20200327/source/texk/web2c/xetexdir/XeTeX_ext.c 2020-04-20 14:40:44.534851910 -0400
@@ -38,10 +38,6 @@ authorization from the copyright holders
#include <w2c/config.h>
-#ifndef POPPLER_VERSION
-#include <poppler-config.h>
-#endif
-
#include <png.h>
#include <zlib.h>
#include <graphite2/Font.h>
@@ -170,7 +166,6 @@ void initversionstring(char **versions)
"Compiled with Graphite2 version %d.%d.%d; using %d.%d.%d\n"
"Compiled with HarfBuzz version %s; using %s\n"
"Compiled with libpng version %s; using %s\n"
- "Compiled with poppler version %s\n"
#ifdef XETEX_MAC
"Using Mac OS X Core Text and Cocoa frameworks\n"
#else
@@ -187,7 +182,6 @@ void initversionstring(char **versions)
+ strlen(hb_version_string())
+ strlen(PNG_LIBPNG_VER_STRING)
+ strlen(png_libpng_ver)
- + strlen(POPPLER_VERSION)
#ifndef XETEX_MAC
+ 6 * 3 /* for fontconfig version #s (won't really need 3 digits per field!) */
#endif
@@ -217,7 +211,7 @@ void initversionstring(char **versions)
GR2_VERSION_MAJOR, GR2_VERSION_MINOR, GR2_VERSION_BUGFIX,
grMajor, grMinor, grBugfix,
HB_VERSION_STRING, hb_version_string(),
- PNG_LIBPNG_VER_STRING, png_libpng_ver, POPPLER_VERSION
+ PNG_LIBPNG_VER_STRING, png_libpng_ver
#ifndef XETEX_MAC
,
FC_VERSION / 10000, (FC_VERSION % 10000) / 100, FC_VERSION % 100,

View file

@ -0,0 +1,20 @@
diff -up texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler090 texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler090 2020-07-14 13:13:31.620607263 -0400
+++ texlive-base-20200327/source/texk/web2c/pdftexdir/pdftoepdf.cc 2020-07-14 13:16:01.530248309 -0400
@@ -766,7 +766,7 @@ read_pdf_info(char *image_name, char *pa
if (page_name) {
// get page by name
GString name(page_name);
- LinkDest *link = pdf_doc->doc->findDest(&name);
+ std::unique_ptr<LinkDest> link = pdf_doc->doc->findDest(&name);
if (link == 0 || !link->isOk())
pdftex_fail("PDF inclusion: invalid destination <%s>", page_name);
Ref ref = link->getPageRef();
@@ -774,7 +774,6 @@ read_pdf_info(char *image_name, char *pa
if (page_num == 0)
pdftex_fail("PDF inclusion: destination is not a page <%s>",
page_name);
- delete link;
} else {
// get page by number
if (page_num <= 0 || page_num > epdf_num_pages)

View file

@ -0,0 +1,22 @@
diff -up texlive-base-20200327/source/texk/kpathsea/texmf.cnf.texinfo-fix texlive-base-20200327/source/texk/kpathsea/texmf.cnf
--- texlive-base-20200327/source/texk/kpathsea/texmf.cnf.texinfo-fix 2020-04-20 14:29:38.934769870 -0400
+++ texlive-base-20200327/source/texk/kpathsea/texmf.cnf 2020-04-20 14:31:48.070069635 -0400
@@ -83,6 +83,9 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config
% to %USERPROFILE% on Windows, $HOME otherwise.
TEXMFHOME = ~/texmf
+% Texinfo on Fedora lives out of $TEXMFROOT
+TEXINFOHOME = $SELFAUTODIR/share/texmf
+
% TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data.
TEXMFVAR = ~/.texlive2020/texmf-var
@@ -108,7 +111,7 @@ TEXMFAUXTREES = {}
% The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is
% ever defined (the 99% common case), no extra elements will be added to
% the search paths. tlmgr takes care to end any value with a trailing comma.
-TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
+TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXINFOHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
% Where to look for, and where mktexlsr creates, ls-R files. By default,
% this is all and only the !! elements of TEXMF, so that mktexlsr does not

View file

@ -0,0 +1,578 @@
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.newpoppler texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.newpoppler 2020-05-14 17:45:48.000000000 -0400
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc 2021-05-06 17:39:49.308416042 -0400
@@ -1,5 +1,5 @@
/*
-Copyright 1996-2016 Han The Thanh, <thanh@pdftex.org>
+Copyright 1996-2017 Han The Thanh, <thanh@pdftex.org>
This file is part of pdfTeX.
@@ -17,6 +17,15 @@ You should have received a copy of the G
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+/*
+This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at
+https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
+by Arch Linux. A little modifications are made to avoid a crash for
+some kind of pdf images, such as figure_missing.pdf in gnuplot.
+The poppler should be 0.59.0 or newer versions.
+POPPLER_VERSION should be defined.
+*/
+
/* Do this early in order to avoid a conflict between
MINGW32 <rpcndr.h> defining 'boolean' as 'unsigned char' and
<kpathsea/types.h> defining Pascal's boolean as 'int'.
@@ -75,31 +84,6 @@ extern integer zround(double);
#define MASK_SUPPRESS_PTEX_PAGENUMBER 0x04
#define MASK_SUPPRESS_PTEX_INFODICT 0x08
-// PdfObject encapsulates the xpdf Object type,
-// and properly frees its resources on destruction.
-// Use obj-> to access members of the Object,
-// and &obj to get a pointer to the object.
-// It is no longer necessary to call Object::free explicitely.
-
-class PdfObject {
- public:
- PdfObject() { // nothing
- } ~PdfObject() {
- iObject.free();
- }
- Object *operator->() {
- return &iObject;
- }
- Object *operator&() {
- return &iObject;
- }
- private: // no copying or assigning
- PdfObject(const PdfObject &);
- void operator=(const PdfObject &);
- public:
- Object iObject;
-};
-
// When copying the Resources of the selected page, all objects are copied
// recusively top-down. Indirect objects however are not fetched during
// copying, but get a new object number from pdfTeX and then will be
@@ -203,18 +187,6 @@ static void delete_document(PdfDocument
delete pdf_doc;
}
-// Replacement for
-// Object *initDict(Dict *dict1){ initObj(objDict); dict = dict1; return this; }
-
-static void initDictFromDict(PdfObject & obj, Dict * dict)
-{
- obj->initDict(xref);
- for (int i = 0, l = dict->getLength(); i < l; i++) {
- Object obj1;
- obj->dictAdd(copyString(dict->getKey(i)), dict->getValNF(i, &obj1));
- }
-}
-
// --------------------------------------------------------------------
static int addEncoding(GfxFont * gfont)
@@ -311,10 +283,10 @@ static void copyName(char *s)
static void copyDictEntry(Object * obj, int i)
{
- PdfObject obj1;
+ Object obj1;
copyName(obj->dictGetKey(i));
pdf_puts(" ");
- obj->dictGetValNF(i, &obj1);
+ obj1 = obj->dictGetValNF(i);
copyObject(&obj1);
pdf_puts("\n");
}
@@ -367,17 +339,17 @@ static void copyStream(Stream * str)
static void copyProcSet(Object * obj)
{
int i, l;
- PdfObject procset;
+ Object procset;
if (!obj->isArray())
pdftex_fail("PDF inclusion: invalid ProcSet array type <%s>",
obj->getTypeName());
pdf_puts("/ProcSet [ ");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- obj->arrayGetNF(i, &procset);
- if (!procset->isName())
+ procset = obj->arrayGetNF(i);
+ if (!procset.isName())
pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>",
- procset->getTypeName());
- copyName(procset->getName());
+ procset.getTypeName());
+ copyName(procset.getName());
pdf_puts(" ");
}
pdf_puts("]\n");
@@ -385,10 +357,29 @@ static void copyProcSet(Object * obj)
#define REPLACE_TYPE1C true
+static bool embeddableFont(Object * fontdesc)
+{
+ Object fontfile, ffsubtype;
+
+ if (!fontdesc->isDict())
+ return false;
+ fontfile = fontdesc->dictLookup("FontFile");
+ if (fontfile.isStream())
+ return true;
+ if (REPLACE_TYPE1C) {
+ fontfile = fontdesc->dictLookup("FontFile3");
+ if (!fontfile.isStream())
+ return false;
+ ffsubtype = fontfile.streamGetDict()->lookup("Subtype");
+ return ffsubtype.isName() && !strcmp(ffsubtype.getName(), "Type1C");
+ }
+ return false;
+}
+
static void copyFont(char *tag, Object * fontRef)
{
- PdfObject fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
- fontfile, ffsubtype, stemV;
+ Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
+ stemV;
GfxFont *gfont;
fd_entry *fd;
fm_entry *fontmap;
@@ -404,33 +395,39 @@ static void copyFont(char *tag, Object *
}
// Only handle included Type1 (and Type1C) fonts; anything else will be copied.
// Type1C fonts are replaced by Type1 fonts, if REPLACE_TYPE1C is true.
- if (!fixedinclusioncopyfont && fontRef->fetch(xref, &fontdict)->isDict()
- && fontdict->dictLookup("Subtype", &subtype)->isName()
- && !strcmp(subtype->getName(), "Type1")
- && fontdict->dictLookup("BaseFont", &basefont)->isName()
- && fontdict->dictLookupNF("FontDescriptor", &fontdescRef)->isRef()
- && fontdescRef->fetch(xref, &fontdesc)->isDict()
- && (fontdesc->dictLookup("FontFile", &fontfile)->isStream()
- || (REPLACE_TYPE1C
- && fontdesc->dictLookup("FontFile3", &fontfile)->isStream()
- && fontfile->streamGetDict()->lookup("Subtype",
- &ffsubtype)->isName()
- && !strcmp(ffsubtype->getName(), "Type1C")))
- && (fontmap = lookup_fontmap(basefont->getName())) != NULL) {
+ fontdict = fontRef->fetch(xref);
+ fontdesc = Object(objNull);
+ if (fontdict.isDict()) {
+ subtype = fontdict.dictLookup("Subtype");
+ basefont = fontdict.dictLookup("BaseFont");
+ fontdescRef = fontdict.dictLookupNF("FontDescriptor");
+ if (fontdescRef.isRef()) {
+ fontdesc = fontdescRef.fetch(xref);
+ }
+ }
+ if (!fixedinclusioncopyfont && fontdict.isDict()
+ && subtype.isName()
+ && !strcmp(subtype.getName(), "Type1")
+ && basefont.isName()
+ && fontdescRef.isRef()
+ && fontdesc.isDict()
+ && embeddableFont(&fontdesc)
+ && (fontmap = lookup_fontmap(basefont.getName())) != NULL) {
// round /StemV value, since the PDF input is a float
// (see Font Descriptors in PDF reference), but we only store an
// integer, since we don't want to change the struct.
- fontdesc->dictLookup("StemV", &stemV);
- fd = epdf_create_fontdescriptor(fontmap, zround(stemV->getNum()));
- if (fontdesc->dictLookup("CharSet", &charset) &&
- charset->isString() && is_subsetable(fontmap))
- epdf_mark_glyphs(fd, charset->getString()->getCString());
+ stemV = fontdesc.dictLookup("StemV");
+ fd = epdf_create_fontdescriptor(fontmap, zround(stemV.getNum()));
+ charset = fontdesc.dictLookup("CharSet");
+ if (!charset.isNull() &&
+ charset.isString() && is_subsetable(fontmap))
+ epdf_mark_glyphs(fd, charset.getString()->getCString());
else
embed_whole_font(fd);
- addFontDesc(fontdescRef->getRef(), fd);
+ addFontDesc(fontdescRef.getRef(), fd);
copyName(tag);
gfont = GfxFont::makeFont(xref, tag, fontRef->getRef(),
- fontdict->getDict());
+ fontdict.getDict());
pdf_printf(" %d 0 R ", addFont(fontRef->getRef(), fd,
addEncoding(gfont)));
} else {
@@ -442,24 +439,24 @@ static void copyFont(char *tag, Object *
static void copyFontResources(Object * obj)
{
- PdfObject fontRef;
+ Object fontRef;
int i, l;
if (!obj->isDict())
pdftex_fail("PDF inclusion: invalid font resources dict type <%s>",
obj->getTypeName());
pdf_puts("/Font << ");
for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
- obj->dictGetValNF(i, &fontRef);
- if (fontRef->isRef())
+ fontRef = obj->dictGetValNF(i);
+ if (fontRef.isRef())
copyFont(obj->dictGetKey(i), &fontRef);
- else if (fontRef->isDict()) { // some programs generate pdf with embedded font object
+ else if (fontRef.isDict()) { // some programs generate pdf with embedded font object
copyName(obj->dictGetKey(i));
pdf_puts(" ");
copyObject(&fontRef);
}
else
pdftex_fail("PDF inclusion: invalid font in reference type <%s>",
- fontRef->getTypeName());
+ fontRef.getTypeName());
}
pdf_puts(">>\n");
}
@@ -548,7 +545,7 @@ static char *convertNumToPDF(double n)
static void copyObject(Object * obj)
{
- PdfObject obj1;
+ Object obj1;
int i, l, c;
Ref ref;
char *p;
@@ -592,8 +589,8 @@ static void copyObject(Object * obj)
} else if (obj->isArray()) {
pdf_puts("[");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- obj->arrayGetNF(i, &obj1);
- if (!obj1->isName())
+ obj1 = obj->arrayGetNF(i);
+ if (!obj1.isName())
pdf_puts(" ");
copyObject(&obj1);
}
@@ -603,9 +600,8 @@ static void copyObject(Object * obj)
copyDict(obj);
pdf_puts(">>");
} else if (obj->isStream()) {
- initDictFromDict(obj1, obj->streamGetDict());
pdf_puts("<<\n");
- copyDict(&obj1);
+ copyDict(obj->getStream()->getDictObject());
pdf_puts(">>\n");
pdf_puts("stream\n");
copyStream(obj->getStream()->getUndecodedStream());
@@ -629,9 +625,8 @@ static void writeRefs()
InObj *r;
for (r = inObjList; r != 0; r = r->next) {
if (!r->written) {
- Object obj1;
r->written = 1;
- xref->fetch(r->ref.num, r->ref.gen, &obj1);
+ Object obj1 = xref->fetch(r->ref.num, r->ref.gen);
if (r->type == objFont) {
assert(!obj1.isStream());
pdfbeginobj(r->num, 2); // \pdfobjcompresslevel = 2 is for this
@@ -647,7 +642,6 @@ static void writeRefs()
pdf_puts("\n");
pdfendobj();
}
- obj1.free();
}
}
}
@@ -805,8 +799,8 @@ void write_epdf(void)
Page *page;
Ref *pageRef;
Dict *pageDict;
- PdfObject contents, obj1, obj2, pageObj, dictObj;
- PdfObject groupDict;
+ Object contents, obj1, obj2, pageObj, dictObj;
+ Object groupDict;
bool writeSepGroup = false;
Object info;
char *key;
@@ -833,8 +827,8 @@ void write_epdf(void)
encodingList = 0;
page = pdf_doc->doc->getCatalog()->getPage(epdf_selected_page);
pageRef = pdf_doc->doc->getCatalog()->getPageRef(epdf_selected_page);
- xref->fetch(pageRef->num, pageRef->gen, &pageObj);
- pageDict = pageObj->getDict();
+ pageObj = xref->fetch(pageRef->num, pageRef->gen);
+ pageDict = pageObj.getDict();
rotate = page->getRotate();
PDFRectangle *pagebox;
// write the Page header
@@ -852,7 +846,7 @@ void write_epdf(void)
pdf_printf("/%s.PageNumber %i\n", pdfkeyprefix, (int) epdf_selected_page);
}
if ((suppress_ptex_info & MASK_SUPPRESS_PTEX_INFODICT) == 0) {
- pdf_doc->doc->getDocInfoNF(&info);
+ info = pdf_doc->doc->getDocInfoNF();
if (info.isRef()) {
// the info dict must be indirect (PDF Ref p. 61)
pdf_printf("/%s.InfoDict ", pdfkeyprefix);
@@ -908,14 +902,14 @@ void write_epdf(void)
pdf_puts(stripzeros(s));
// Metadata validity check (as a stream it must be indirect)
- pageDict->lookupNF("Metadata", &dictObj);
- if (!dictObj->isNull() && !dictObj->isRef())
+ dictObj = pageDict->lookupNF("Metadata");
+ if (!dictObj.isNull() && !dictObj.isRef())
pdftex_warn("PDF inclusion: /Metadata must be indirect object");
// copy selected items in Page dictionary except Resources & Group
for (i = 0; pageDictKeys[i] != NULL; i++) {
- pageDict->lookupNF(pageDictKeys[i], &dictObj);
- if (!dictObj->isNull()) {
+ dictObj = pageDict->lookupNF(pageDictKeys[i]);
+ if (!dictObj.isNull()) {
pdf_newline();
pdf_printf("/%s ", pageDictKeys[i]);
copyObject(&dictObj); // preserves indirection
@@ -923,8 +917,8 @@ void write_epdf(void)
}
// handle page group
- pageDict->lookupNF("Group", &dictObj);
- if (!dictObj->isNull()) {
+ dictObj = pageDict->lookupNF("Group");
+ if (!dictObj.isNull()) {
if (pdfpagegroupval == 0) {
// another pdf with page group was included earlier on the
// same page; copy the Group entry as is. See manual for
@@ -938,11 +932,36 @@ void write_epdf(void)
copyObject(&dictObj);
} else {
// write Group dict as a separate object, since the Page dict also refers to it
- pageDict->lookup("Group", &dictObj);
- if (!dictObj->isDict())
+ dictObj = pageDict->lookup("Group");
+ if (!dictObj.isDict())
pdftex_fail("PDF inclusion: /Group dict missing");
writeSepGroup = true;
- initDictFromDict(groupDict, page->getGroup());
+/*
+This part is only a single line
+ groupDict = Object(page->getGroup());
+in the original patch. In this case, however, pdftex crashes at
+"delete pdf_doc->doc" in "delete_document()" for inclusion of some
+kind of pdf images, for example, figure_missing.pdf in gnuplot.
+A change
+ groupDict = Object(page->getGroup()).copy();
+does not improve the situation.
+The changes below seem to work fine.
+*/
+// begin modification
+ groupDict = pageDict->lookup("Group");
+ const Dict& dic1 = page->getGroup();
+ const Dict& dic2 = groupDict.getDict();
+ // replace dic2 in groupDict with dic1
+ l = dic2.getLength();
+ for (i = 0; i < l; i++) {
+ groupDict.dictRemove(dic2.getKey(i));
+ }
+ l = dic1.getLength();
+ for (i = 0; i < l; i++) {
+ groupDict.dictAdd(copyString(dic1.getKey(i)),
+ dic1.getValNF(i));
+ }
+// end modification
pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval);
}
}
@@ -955,14 +974,14 @@ void write_epdf(void)
pdftex_warn
("PDF inclusion: /Resources missing. 'This practice is not recommended' (PDF Ref)");
} else {
- initDictFromDict(obj1, page->getResourceDict());
+ Object *obj1 = page->getResourceDictObject();
if (!obj1->isDict())
pdftex_fail("PDF inclusion: invalid resources dict type <%s>",
obj1->getTypeName());
pdf_newline();
pdf_puts("/Resources <<\n");
for (i = 0, l = obj1->dictGetLength(); i < l; ++i) {
- obj1->dictGetVal(i, &obj2);
+ obj2 = obj1->dictGetVal(i);
key = obj1->dictGetKey(i);
if (strcmp("Font", key) == 0)
copyFontResources(&obj2);
@@ -975,8 +994,8 @@ void write_epdf(void)
}
// write the page contents
- page->getContents(&contents);
- if (contents->isStream()) {
+ contents = page->getContents();
+ if (contents.isStream()) {
// Variant A: get stream and recompress under control
// of \pdfcompresslevel
@@ -987,36 +1006,35 @@ void write_epdf(void)
// Variant B: copy stream without recompressing
//
- contents->streamGetDict()->lookup("F", &obj1);
- if (!obj1->isNull()) {
+ obj1 = contents.streamGetDict()->lookup("F");
+ if (!obj1.isNull()) {
pdftex_fail("PDF inclusion: Unsupported external stream");
}
- contents->streamGetDict()->lookup("Length", &obj1);
- assert(!obj1->isNull());
+ obj1 = contents.streamGetDict()->lookup("Length");
+ assert(!obj1.isNull());
pdf_puts("/Length ");
copyObject(&obj1);
pdf_puts("\n");
- contents->streamGetDict()->lookup("Filter", &obj1);
- if (!obj1->isNull()) {
+ obj1 = contents.streamGetDict()->lookup("Filter");
+ if (!obj1.isNull()) {
pdf_puts("/Filter ");
copyObject(&obj1);
pdf_puts("\n");
- contents->streamGetDict()->lookup("DecodeParms", &obj1);
- if (!obj1->isNull()) {
+ obj1 = contents.streamGetDict()->lookup("DecodeParms");
+ if (!obj1.isNull()) {
pdf_puts("/DecodeParms ");
copyObject(&obj1);
pdf_puts("\n");
}
}
pdf_puts(">>\nstream\n");
- copyStream(contents->getStream()->getUndecodedStream());
+ copyStream(contents.getStream()->getUndecodedStream());
pdfendstream();
- } else if (contents->isArray()) {
+ } else if (contents.isArray()) {
pdfbeginstream();
- for (i = 0, l = contents->arrayGetLength(); i < l; ++i) {
- Object contentsobj;
- copyStream((contents->arrayGet(i, &contentsobj))->getStream());
- contentsobj.free();
+ for (i = 0, l = contents.arrayGetLength(); i < l; ++i) {
+ Object contentsobj = contents.arrayGet(i);
+ copyStream(contentsobj.getStream());
if (i < l - 1)
pdf_newline(); // add a newline after each stream except the last
}
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc.newpoppler texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc.newpoppler 2020-05-14 17:45:48.000000000 -0400
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc 2021-05-06 17:50:38.863177570 -0400
@@ -16,6 +16,14 @@ GNU General Public License for more deta
You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
+/*
+This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at
+https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
+by Arch Linux. The poppler should be 0.59.0 or newer versions.
+POPPLER_VERSION should be defined.
+*/
+
#include <w2c/config.h>
#include <stdlib.h>
@@ -77,22 +85,20 @@ int main(int argc, char *argv[])
objgen = atoi(argv[3]);
}
xref = doc->getXRef();
- catalogDict.initNull();
- xref->getCatalog(&catalogDict);
+ catalogDict = xref->getCatalog();
if (!catalogDict.isDict("Catalog")) {
fprintf(stderr, "No Catalog found\n");
exit(1);
}
- srcStream.initNull();
+ srcStream = Object(objNull);
if (objnum == 0) {
- catalogDict.dictLookup("SourceObject", &srcStream);
+ srcStream = catalogDict.dictLookup("SourceObject");
static char const_SourceFile[] = "SourceFile";
if (!srcStream.isStream(const_SourceFile)) {
fprintf(stderr, "No SourceObject found\n");
exit(1);
}
- srcName.initNull();
- srcStream.getStream()->getDict()->lookup("SourceName", &srcName);
+ srcName = srcStream.getStream()->getDict()->lookup("SourceName");
if (!srcName.isString()) {
fprintf(stderr, "No SourceName found\n");
exit(1);
@@ -101,7 +107,7 @@ int main(int argc, char *argv[])
// We cannot free srcName, as objname shares its string.
// srcName.free();
} else if (objnum > 0) {
- xref->fetch(objnum, objgen, &srcStream);
+ srcStream = xref->fetch(objnum, objgen);
if (!srcStream.isStream()) {
fprintf(stderr, "Not a Stream object\n");
exit(1);
@@ -151,26 +157,24 @@ int main(int argc, char *argv[])
int localOffset = 0;
Guint firstOffset;
- assert(xref->fetch(e->offset, 0, &objStr)->isStream());
- nObjects = objStr.streamGetDict()->lookup("N", &obj1)->getInt();
- obj1.free();
- first = objStr.streamGetDict()->lookup("First", &obj1)->getInt();
- obj1.free();
+ objStr = xref->fetch(e->offset, 0);
+ assert(objStr.isStream());
+ obj1 = objStr.streamGetDict()->lookup("N");
+ nObjects = obj1.getInt();
+ obj1 = objStr.streamGetDict()->lookup("First");
+ first = obj1.getInt();
firstOffset = objStr.getStream()->getBaseStream()->getStart() + first;
// parse the header: object numbers and offsets
objStr.streamReset();
- obj1.initNull();
- str = new EmbedStream(objStr.getStream(), &obj1, gTrue, first);
+ str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first);
lexer = new Lexer(xref, str);
parser = new Parser(xref, lexer, gFalse);
for (n = 0; n < nObjects; ++n) {
- parser->getObj(&obj1);
- parser->getObj(&obj2);
+ obj1 = parser->getObj();
+ obj2 = parser->getObj();
if (n == e->gen)
localOffset = obj2.getInt();
- obj1.free();
- obj2.free();
}
#if defined(XPDF304)
while (str->getChar() != EOF) ;
@@ -178,7 +182,6 @@ int main(int argc, char *argv[])
lexer->skipToEOF();
#endif
delete parser;
- objStr.free();
fprintf(outfile, "%.10lu 00000 n\n",
(long unsigned)(firstOffset + localOffset));
@@ -189,7 +192,6 @@ int main(int argc, char *argv[])
s->reset();
while ((c = s->getChar()) != EOF)
fputc(c, outfile);
- srcStream.free();
}
if (objnum == 0)
fprintf(stderr, "Source file extracted to %s\n", outname);
@@ -198,7 +200,6 @@ int main(int argc, char *argv[])
else
fprintf(stderr, "Cross-reference table extracted to %s\n", outname);
fclose(outfile);
- catalogDict.free();
delete doc;
delete globalParams;
}

View file

@ -0,0 +1,200 @@
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-0.73 texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-0.73 2021-05-06 18:01:35.847959461 -0400
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc 2021-05-06 18:08:20.143955577 -0400
@@ -114,7 +114,7 @@ struct UsedEncoding {
static InObj *inObjList;
static UsedEncoding *encodingList;
-static GBool isInit = gFalse;
+static bool isInit = false;
// --------------------------------------------------------------------
// Maintain list of open embedded PDF files
@@ -269,7 +269,7 @@ static int getNewObjectNumber(Ref ref)
static void copyObject(Object *);
-static void copyName(char *s)
+static void copyName(const char *s)
{
pdf_puts("/");
for (; *s != 0; s++) {
@@ -304,7 +304,7 @@ static void copyDict(Object * obj)
static void copyFontDict(Object * obj, InObj * r)
{
int i, l;
- char *key;
+ const char *key;
if (!obj->isDict())
pdftex_fail("PDF inclusion: invalid dict type <%s>",
obj->getTypeName());
@@ -376,7 +376,7 @@ static bool embeddableFont(Object * font
return false;
}
-static void copyFont(char *tag, Object * fontRef)
+static void copyFont(const char *tag, Object * fontRef)
{
Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
stemV;
@@ -412,7 +412,7 @@ static void copyFont(char *tag, Object *
&& fontdescRef.isRef()
&& fontdesc.isDict()
&& embeddableFont(&fontdesc)
- && (fontmap = lookup_fontmap(basefont.getName())) != NULL) {
+ && (fontmap = lookup_fontmap((char *)basefont.getName())) != NULL) {
// round /StemV value, since the PDF input is a float
// (see Font Descriptors in PDF reference), but we only store an
// integer, since we don't want to change the struct.
@@ -421,7 +421,7 @@ static void copyFont(char *tag, Object *
charset = fontdesc.dictLookup("CharSet");
if (!charset.isNull() &&
charset.isString() && is_subsetable(fontmap))
- epdf_mark_glyphs(fd, charset.getString()->getCString());
+ epdf_mark_glyphs(fd, (char *)charset.getString()->c_str());
else
embed_whole_font(fd);
addFontDesc(fontdescRef.getRef(), fd);
@@ -461,7 +461,7 @@ static void copyFontResources(Object * o
pdf_puts(">>\n");
}
-static void copyOtherResources(Object * obj, char *key)
+static void copyOtherResources(Object * obj, const char *key)
{
// copies all other resources (write_epdf handles Fonts and ProcSets),
@@ -548,8 +548,8 @@ static void copyObject(Object * obj)
Object obj1;
int i, l, c;
Ref ref;
- char *p;
- GString *s;
+ const char *p;
+ const GString *s;
if (obj->isBool()) {
pdf_printf("%s", obj->getBool()? "true" : "false");
} else if (obj->isInt()) {
@@ -560,7 +560,7 @@ static void copyObject(Object * obj)
pdf_printf("%s", convertNumToPDF(obj->getNum()));
} else if (obj->isString()) {
s = obj->getString();
- p = s->getCString();
+ p = s->c_str();
l = s->getLength();
if (strlen(p) == (unsigned int) l) {
pdf_puts("(");
@@ -658,7 +658,7 @@ static void writeEncodings()
("PDF inclusion: CID fonts are not supported"
" (try to disable font replacement to fix this)");
}
- if ((s = ((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
+ if ((s = (char *) ((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
glyphNames[i] = s;
else
glyphNames[i] = notdef;
@@ -673,7 +673,7 @@ static void writeEncodings()
}
// get the pagebox according to the pagebox_spec
-static PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
+static const PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
{
if (pagebox_spec == pdfboxspecmedia)
return page->getMediaBox();
@@ -705,13 +705,13 @@ read_pdf_info(char *image_name, char *pa
{
PdfDocument *pdf_doc;
Page *page;
- PDFRectangle *pagebox;
+ const PDFRectangle *pagebox;
float pdf_version_found, pdf_version_wanted;
// initialize
if (!isInit) {
globalParams = new GlobalParams();
- globalParams->setErrQuiet(gFalse);
- isInit = gTrue;
+ globalParams->setErrQuiet(false);
+ isInit = true;
}
// open PDF file
pdf_doc = find_add_document(image_name);
@@ -803,7 +803,7 @@ void write_epdf(void)
Object groupDict;
bool writeSepGroup = false;
Object info;
- char *key;
+ const char *key;
char s[256];
int i, l;
int rotate;
@@ -830,7 +830,7 @@ void write_epdf(void)
pageObj = xref->fetch(pageRef->num, pageRef->gen);
pageDict = pageObj.getDict();
rotate = page->getRotate();
- PDFRectangle *pagebox;
+ const PDFRectangle *pagebox;
// write the Page header
pdf_puts("/Type /XObject\n");
pdf_puts("/Subtype /Form\n");
@@ -958,7 +958,7 @@ The changes below seem to work fine.
}
l = dic1.getLength();
for (i = 0; i < l; i++) {
- groupDict.dictAdd(copyString(dic1.getKey(i)),
+ groupDict.dictAdd(dic1.getKey(i),
dic1.getValNF(i));
}
// end modification
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-0.73 texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-0.73 2021-05-06 18:01:35.847959461 -0400
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc 2021-05-06 18:01:35.854959565 -0400
@@ -103,7 +103,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "No SourceName found\n");
exit(1);
}
- outname = srcName.getString()->getCString();
+ outname = (char *)srcName.getString()->c_str();
// We cannot free srcName, as objname shares its string.
// srcName.free();
} else if (objnum > 0) {
@@ -112,7 +112,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Not a Stream object\n");
exit(1);
}
- sprintf(buf, "%s", fileName->getCString());
+ sprintf(buf, "%s", fileName->c_str());
if ((p = strrchr(buf, '.')) == 0)
p = strchr(buf, 0);
if (objgen == 0)
@@ -122,7 +122,7 @@ int main(int argc, char *argv[])
outname = buf;
} else { // objnum < 0 means we are extracting the XRef table
extract_xref_table = true;
- sprintf(buf, "%s", fileName->getCString());
+ sprintf(buf, "%s", fileName->c_str());
if ((p = strrchr(buf, '.')) == 0)
p = strchr(buf, 0);
sprintf(p, ".xref");
@@ -155,7 +155,7 @@ int main(int argc, char *argv[])
Object objStr, obj1, obj2;
int nObjects, first, n;
int localOffset = 0;
- Guint firstOffset;
+ unsigned int firstOffset;
objStr = xref->fetch(e->offset, 0);
assert(objStr.isStream());
@@ -167,9 +167,9 @@ int main(int argc, char *argv[])
// parse the header: object numbers and offsets
objStr.streamReset();
- str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first);
+ str = new EmbedStream(objStr.getStream(), Object(objNull), true, first);
lexer = new Lexer(xref, str);
- parser = new Parser(xref, lexer, gFalse);
+ parser = new Parser(xref, lexer, false);
for (n = 0; n < nObjects; ++n) {
obj1 = parser->getObj();
obj2 = parser->getObj();
diff -up texlive-base-20210325/source/texk/web2c/xetexdir/pdfimage.cpp.poppler-0.73 texlive-base-20210325/source/texk/web2c/xetexdir/pdfimage.cpp

View file

@ -0,0 +1,228 @@
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-0.84 texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-0.84 2021-05-06 18:21:18.379430999 -0400
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc 2021-05-10 11:15:09.572907304 -0400
@@ -26,6 +26,15 @@ The poppler should be 0.59.0 or newer ve
POPPLER_VERSION should be defined.
*/
+#ifdef POPPLER_VERSION
+#include <poppler-config.h>
+#define xpdfVersion POPPLER_VERSION
+#define xpdfString "poppler"
+#else
+#include <xpdf/config.h> /* just to get the xpdf version */
+#define xpdfString "xpdf"
+#endif
+
/* Do this early in order to avoid a conflict between
MINGW32 <rpcndr.h> defining 'boolean' as 'unsigned char' and
<kpathsea/types.h> defining Pascal's boolean as 'int'.
@@ -286,7 +295,7 @@ static void copyDictEntry(Object * obj,
Object obj1;
copyName(obj->dictGetKey(i));
pdf_puts(" ");
- obj1 = obj->dictGetValNF(i);
+ obj1 = obj->dictGetValNF(i).copy();
copyObject(&obj1);
pdf_puts("\n");
}
@@ -345,7 +354,7 @@ static void copyProcSet(Object * obj)
obj->getTypeName());
pdf_puts("/ProcSet [ ");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- procset = obj->arrayGetNF(i);
+ procset = obj->arrayGetNF(i).copy();
if (!procset.isName())
pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>",
procset.getTypeName());
@@ -400,7 +409,7 @@ static void copyFont(const char *tag, Ob
if (fontdict.isDict()) {
subtype = fontdict.dictLookup("Subtype");
basefont = fontdict.dictLookup("BaseFont");
- fontdescRef = fontdict.dictLookupNF("FontDescriptor");
+ fontdescRef = fontdict.dictLookupNF("FontDescriptor").copy();
if (fontdescRef.isRef()) {
fontdesc = fontdescRef.fetch(xref);
}
@@ -446,7 +455,7 @@ static void copyFontResources(Object * o
obj->getTypeName());
pdf_puts("/Font << ");
for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
- fontRef = obj->dictGetValNF(i);
+ fontRef = obj->dictGetValNF(i).copy();
if (fontRef.isRef())
copyFont(obj->dictGetKey(i), &fontRef);
else if (fontRef.isDict()) { // some programs generate pdf with embedded font object
@@ -589,7 +598,7 @@ static void copyObject(Object * obj)
} else if (obj->isArray()) {
pdf_puts("[");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- obj1 = obj->arrayGetNF(i);
+ obj1 = obj->arrayGetNF(i).copy();
if (!obj1.isName())
pdf_puts(" ");
copyObject(&obj1);
@@ -709,7 +718,7 @@ read_pdf_info(char *image_name, char *pa
float pdf_version_found, pdf_version_wanted;
// initialize
if (!isInit) {
- globalParams = new GlobalParams();
+ globalParams = std::unique_ptr<GlobalParams>(new GlobalParams());
globalParams->setErrQuiet(false);
isInit = true;
}
@@ -742,7 +751,7 @@ read_pdf_info(char *image_name, char *pa
if (link == 0 || !link->isOk())
pdftex_fail("PDF inclusion: invalid destination <%s>", page_name);
Ref ref = link->getPageRef();
- page_num = pdf_doc->doc->getCatalog()->findPage(ref.num, ref.gen);
+ page_num = pdf_doc->doc->getCatalog()->findPage(ref);
if (page_num == 0)
pdftex_fail("PDF inclusion: destination is not a page <%s>",
page_name);
@@ -902,13 +911,13 @@ void write_epdf(void)
pdf_puts(stripzeros(s));
// Metadata validity check (as a stream it must be indirect)
- dictObj = pageDict->lookupNF("Metadata");
+ dictObj = pageDict->lookupNF("Metadata").copy();
if (!dictObj.isNull() && !dictObj.isRef())
pdftex_warn("PDF inclusion: /Metadata must be indirect object");
// copy selected items in Page dictionary except Resources & Group
for (i = 0; pageDictKeys[i] != NULL; i++) {
- dictObj = pageDict->lookupNF(pageDictKeys[i]);
+ dictObj = pageDict->lookupNF(pageDictKeys[i]).copy();
if (!dictObj.isNull()) {
pdf_newline();
pdf_printf("/%s ", pageDictKeys[i]);
@@ -917,7 +926,7 @@ void write_epdf(void)
}
// handle page group
- dictObj = pageDict->lookupNF("Group");
+ dictObj = pageDict->lookupNF("Group").copy();
if (!dictObj.isNull()) {
if (pdfpagegroupval == 0) {
// another pdf with page group was included earlier on the
@@ -959,7 +968,7 @@ The changes below seem to work fine.
l = dic1.getLength();
for (i = 0; i < l; i++) {
groupDict.dictAdd(dic1.getKey(i),
- dic1.getValNF(i));
+ dic1.getValNF(i).copy());
}
// end modification
pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval);
@@ -1089,6 +1098,6 @@ void epdf_check_mem()
delete_document(p);
}
// see above for globalParams
- delete globalParams;
+ globalParams.reset();
}
}
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-0.84 texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-0.84 2021-05-06 18:21:18.379430999 -0400
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc 2021-05-06 18:21:18.383431058 -0400
@@ -24,6 +24,15 @@ by Arch Linux. The poppler should be 0.5
POPPLER_VERSION should be defined.
*/
+#ifdef POPPLER_VERSION
+#include <poppler-config.h>
+#define xpdfVersion POPPLER_VERSION
+#define xpdfString "poppler"
+#else
+#include <xpdf/config.h> /* just to get the xpdf version */
+#define xpdfString "xpdf"
+#endif
+
#include <w2c/config.h>
#include <stdlib.h>
@@ -73,7 +82,7 @@ int main(int argc, char *argv[])
exit(1);
}
fileName = new GString(argv[1]);
- globalParams = new GlobalParams();
+ globalParams = std::unique_ptr<GlobalParams>(new GlobalParams());
doc = new PDFDoc(fileName);
if (!doc->isOk()) {
fprintf(stderr, "Invalid PDF file\n");
@@ -94,7 +103,7 @@ int main(int argc, char *argv[])
if (objnum == 0) {
srcStream = catalogDict.dictLookup("SourceObject");
static char const_SourceFile[] = "SourceFile";
- if (!srcStream.isStream(const_SourceFile)) {
+ if (!(srcStream.isStream() && srcStream.getDict()->is(const_SourceFile))) {
fprintf(stderr, "No SourceObject found\n");
exit(1);
}
@@ -150,7 +159,6 @@ int main(int argc, char *argv[])
(e->type == xrefEntryFree ? "f" : "n"));
else { // e->offset is the object number of the object stream
Stream *str;
- Lexer *lexer;
Parser *parser;
Object objStr, obj1, obj2;
int nObjects, first, n;
@@ -168,8 +176,7 @@ int main(int argc, char *argv[])
// parse the header: object numbers and offsets
objStr.streamReset();
str = new EmbedStream(objStr.getStream(), Object(objNull), true, first);
- lexer = new Lexer(xref, str);
- parser = new Parser(xref, lexer, false);
+ parser = new Parser(xref, str, false);
for (n = 0; n < nObjects; ++n) {
obj1 = parser->getObj();
obj2 = parser->getObj();
@@ -201,5 +208,5 @@ int main(int argc, char *argv[])
fprintf(stderr, "Cross-reference table extracted to %s\n", outname);
fclose(outfile);
delete doc;
- delete globalParams;
+ globalParams.reset();
}
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/utils.c.poppler-0.84 texlive-base-20210325/source/texk/web2c/pdftexdir/utils.c
--- texlive-base-20210325/source/texk/web2c/pdftexdir/utils.c.poppler-0.84 2019-12-29 19:37:32.000000000 -0500
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/utils.c 2021-05-06 18:21:18.383431058 -0400
@@ -32,14 +32,6 @@ with this program. If not, see <http://
#include <zlib.h>
#include "ptexlib.h"
#include <png.h>
-#ifdef POPPLER_VERSION
-/* POPPLER_VERSION should be a proper version string */
-#define xpdfVersion POPPLER_VERSION
-#define xpdfString "poppler"
-#else
-#include <xpdf/config.h> /* just to get the xpdf version */
-#define xpdfString "xpdf"
-#endif
#define check_nprintf(size_get, size_want) \
if ((unsigned)(size_get) >= (unsigned)(size_want)) \
@@ -977,12 +969,10 @@ void initversionstring(char **versions)
{
const_string fmt =
"Compiled with libpng %s; using libpng %s\n"
- "Compiled with zlib %s; using zlib %s\n"
- "Compiled with %s version %s\n";
+ "Compiled with zlib %s; using zlib %s\n";
size_t len = strlen(fmt)
+ strlen(PNG_LIBPNG_VER_STRING) + strlen(png_libpng_ver)
+ strlen(ZLIB_VERSION) + strlen(zlib_version)
- + strlen(xpdfString) + strlen(xpdfVersion)
+ 1;
/* len will be more than enough, because of the placeholder chars in fmt
@@ -990,7 +980,7 @@ void initversionstring(char **versions)
*versions = xmalloc(len);
sprintf(*versions, fmt,
PNG_LIBPNG_VER_STRING, png_libpng_ver,
- ZLIB_VERSION, zlib_version, xpdfString, xpdfVersion);
+ ZLIB_VERSION, zlib_version);
}
diff -up texlive-base-20210325/source/texk/web2c/xetexdir/XeTeX_ext.c.poppler-0.84 texlive-base-20210325/source/texk/web2c/xetexdir/XeTeX_ext.c

View file

@ -0,0 +1,22 @@
diff -up texlive-base-20210325/source/texk/kpathsea/texmf.cnf.texinfo-fix texlive-base-20210325/source/texk/kpathsea/texmf.cnf
--- texlive-base-20210325/source/texk/kpathsea/texmf.cnf.texinfo-fix 2021-05-06 17:53:44.616943275 -0400
+++ texlive-base-20210325/source/texk/kpathsea/texmf.cnf 2021-05-06 17:55:40.097662674 -0400
@@ -83,6 +83,9 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config
% to %USERPROFILE% on Windows, $HOME otherwise.
TEXMFHOME = ~/texmf
+% Texinfo on Fedora lives out of $TEXMFROOT
+TEXINFOHOME = $SELFAUTODIR/share/texmf
+
% TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data.
TEXMFVAR = ~/.texlive2021/texmf-var
@@ -108,7 +111,7 @@ TEXMFAUXTREES = {}
% The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is
% ever defined (the 99% common case), no extra elements will be added to
% the search paths. tlmgr takes care to end any value with a trailing comma.
-TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
+TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXINFOHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
% Where to look for, and where mktexlsr creates, ls-R files. By default,
% this is all and only the !! elements of TEXMF, so that mktexlsr does not

View file

@ -0,0 +1,140 @@
diff -up texlive-base-20220321/source/texk/kpathsea/Makefile.am.dt texlive-base-20220321/source/texk/kpathsea/Makefile.am
--- texlive-base-20220321/source/texk/kpathsea/Makefile.am.dt 2020-06-22 18:11:50.000000000 -0400
+++ texlive-base-20220321/source/texk/kpathsea/Makefile.am 2022-04-24 15:03:32.852801273 -0400
@@ -275,7 +275,7 @@ uninstall-local:
AM_TESTS_ENVIRONMENT = LN_S='$(LN_S)'; export LN_S;
AM_TESTS_ENVIRONMENT += LT_OBJDIR='$(LT_OBJDIR)'; export LT_OBJDIR;
#
-TESTS = tests/cnfline.test tests/cnfnewline.test
+TESTS = tests/cnfnewline.test
TESTS += tests/cnfnull.test tests/cnfprog.test
TESTS += tests/kpseaccess.test
TESTS += tests/kpsereadlink.test tests/kpsestat.test tests/kpsewhich.test
diff -up texlive-base-20220321/source/texk/kpathsea/Makefile.in.dt texlive-base-20220321/source/texk/kpathsea/Makefile.in
--- texlive-base-20220321/source/texk/kpathsea/Makefile.in.dt 2021-10-04 11:13:00.000000000 -0400
+++ texlive-base-20220321/source/texk/kpathsea/Makefile.in 2022-04-24 15:03:32.852801273 -0400
@@ -861,7 +861,7 @@ dist_noinst_DATA = texmf.cnf
AM_TESTS_ENVIRONMENT = LN_S='$(LN_S)'; export LN_S; \
LT_OBJDIR='$(LT_OBJDIR)'; export LT_OBJDIR;
#
-TESTS = tests/cnfline.test tests/cnfnewline.test tests/cnfnull.test \
+TESTS = tests/cnfnewline.test tests/cnfnull.test \
tests/cnfprog.test tests/kpseaccess.test \
tests/kpsereadlink.test tests/kpsestat.test \
tests/kpsewhich.test
diff -up texlive-base-20220321/source/texk/web2c/am/texmf.am.dt texlive-base-20220321/source/texk/web2c/am/texmf.am
--- texlive-base-20220321/source/texk/web2c/am/texmf.am.dt 2022-01-11 17:47:10.000000000 -0500
+++ texlive-base-20220321/source/texk/web2c/am/texmf.am 2022-04-24 15:03:32.850801263 -0400
@@ -77,7 +77,7 @@ DISTCLEANFILES += $(nodist_tex_SOURCES)
# TeX tests
#
-tex_tests = triptest.test tests/write18-quote-test.pl tests/tex-closeout.test
+tex_tests = tests/write18-quote-test.pl tests/tex-closeout.test
triptest.log: tex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
tests/write18-quote-test.log tests/tex-closeout.test: tex$(EXEEXT)
EXTRA_DIST += $(tex_tests)
@@ -205,7 +205,7 @@ DISTCLEANFILES += $(nodist_libmf_a_SOURC
# Metafont tests
#
-mf_tests = mftraptest.test
+mf_tests =
mftraptest.log: mf$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
EXTRA_DIST += $(mf_tests)
if MF
diff -up texlive-base-20220321/source/texk/web2c/eptexdir/am/eptex.am.dt texlive-base-20220321/source/texk/web2c/eptexdir/am/eptex.am
--- texlive-base-20220321/source/texk/web2c/eptexdir/am/eptex.am.dt 2022-01-11 17:47:10.000000000 -0500
+++ texlive-base-20220321/source/texk/web2c/eptexdir/am/eptex.am 2022-04-24 15:03:32.850801263 -0400
@@ -89,7 +89,7 @@ EXTRA_DIST += \
# e-pTeX Tests
#
-eptex_tests = eptexdir/eptriptest.test eptexdir/pdfprimitive.test eptexdir/epver.test
+eptex_tests = eptexdir/epver.test
eptexdir/eptriptest.log: eptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
eptexdir/pdfprimitive.log: eptex$(EXEEXT)
eptexdir/epver.log: eptex$(EXEEXT)
diff -up texlive-base-20220321/source/texk/web2c/euptexdir/am/euptex.am.dt texlive-base-20220321/source/texk/web2c/euptexdir/am/euptex.am
--- texlive-base-20220321/source/texk/web2c/euptexdir/am/euptex.am.dt 2022-01-11 17:47:10.000000000 -0500
+++ texlive-base-20220321/source/texk/web2c/euptexdir/am/euptex.am 2022-04-24 15:03:32.850801263 -0400
@@ -90,7 +90,7 @@ EXTRA_DIST += \
# e-upTeX Tests
#
-euptex_tests = euptexdir/euptriptest.test euptexdir/pdfprimitive.test euptexdir/eupver.test
+euptex_tests = euptexdir/eupver.test
euptexdir/euptriptest.log: euptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
euptexdir/pdfprimitive.log: euptex$(EXEEXT)
euptexdir/eupver.log: euptex$(EXEEXT)
diff -up texlive-base-20220321/source/texk/web2c/mfluadir/am/mflua.am.dt texlive-base-20220321/source/texk/web2c/mfluadir/am/mflua.am
--- texlive-base-20220321/source/texk/web2c/mfluadir/am/mflua.am.dt 2022-02-18 13:44:19.000000000 -0500
+++ texlive-base-20220321/source/texk/web2c/mfluadir/am/mflua.am 2022-04-24 15:03:32.850801263 -0400
@@ -110,7 +110,7 @@ EXTRA_DIST += \
# MFLua tests
#
-mflua_tests = mfluadir/mfluatraptest.test
+mflua_tests =
mfluadir/mfluatraptest.log: mflua$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
EXTRA_DIST += $(mflua_tests)
diff -up texlive-base-20220321/source/texk/web2c/mfluajitdir/am/mfluajit.am.dt texlive-base-20220321/source/texk/web2c/mfluajitdir/am/mfluajit.am
--- texlive-base-20220321/source/texk/web2c/mfluajitdir/am/mfluajit.am.dt 2022-02-18 13:44:19.000000000 -0500
+++ texlive-base-20220321/source/texk/web2c/mfluajitdir/am/mfluajit.am 2022-04-24 15:03:32.851801268 -0400
@@ -106,7 +106,7 @@ EXTRA_DIST += \
# MFLuaJIT tests
#
-mfluajit_tests = mfluajitdir/mfluajittraptest.test
+mfluajit_tests =
mfluajitdir/mfluajittraptest.log: mfluajit$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
EXTRA_DIST += $(mfluajit_tests)
diff -up texlive-base-20220321/source/texk/web2c/pdftexdir/am/pdftex.am.dt texlive-base-20220321/source/texk/web2c/pdftexdir/am/pdftex.am
--- texlive-base-20220321/source/texk/web2c/pdftexdir/am/pdftex.am.dt 2022-04-24 15:03:32.851801268 -0400
+++ texlive-base-20220321/source/texk/web2c/pdftexdir/am/pdftex.am 2022-04-24 15:47:20.351639955 -0400
@@ -104,7 +104,7 @@ EXTRA_DIST += \
# pdfTeX tests
#
pdftex_tests = pdftexdir/wprob.test pdftexdir/pdftex.test \
- pdftexdir/pdfimage.test pdftexdir/expanded.test \
+ pdftexdir/expanded.test \
pdftexdir/tests/cnfline.test pdftexdir/tests/partoken.test
pdftexdir/wprob.log pdftexdir/pdftex.log \
diff -up texlive-base-20220321/source/texk/web2c/ptexdir/am/ptex.am.dt texlive-base-20220321/source/texk/web2c/ptexdir/am/ptex.am
--- texlive-base-20220321/source/texk/web2c/ptexdir/am/ptex.am.dt 2022-01-11 17:47:10.000000000 -0500
+++ texlive-base-20220321/source/texk/web2c/ptexdir/am/ptex.am 2022-04-24 15:03:32.851801268 -0400
@@ -171,7 +171,7 @@ EXTRA_DIST += \
# pTeX Tests
#
-ptex_tests = ptexdir/ptriptest.test ptexdir/pver.test
+ptex_tests = ptexdir/pver.test
ptexdir/ptriptest.log: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
ptexdir/pver.log: ptex$(EXEEXT)
pweb_tests = \
diff -up texlive-base-20220321/source/texk/web2c/uptexdir/am/uptex.am.dt texlive-base-20220321/source/texk/web2c/uptexdir/am/uptex.am
--- texlive-base-20220321/source/texk/web2c/uptexdir/am/uptex.am.dt 2022-01-29 05:40:22.000000000 -0500
+++ texlive-base-20220321/source/texk/web2c/uptexdir/am/uptex.am 2022-04-24 15:03:32.851801268 -0400
@@ -161,7 +161,7 @@ EXTRA_DIST += \
uptexdir/ChangeLog
# upTeX Tests
-uptex_tests = uptexdir/uptriptest.test uptexdir/upver.test
+uptex_tests = uptexdir/upver.test
uptexdir/uptriptest.log: uptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
uptexdir/upver.log: uptex$(EXEEXT)
upweb_tests = \
diff -up texlive-base-20220321/source/texk/web2c/xetexdir/am/xetex.am.dt texlive-base-20220321/source/texk/web2c/xetexdir/am/xetex.am
--- texlive-base-20220321/source/texk/web2c/xetexdir/am/xetex.am.dt 2022-01-11 17:47:10.000000000 -0500
+++ texlive-base-20220321/source/texk/web2c/xetexdir/am/xetex.am 2022-04-24 15:03:32.852801273 -0400
@@ -203,7 +203,6 @@ EXTRA_DIST += \
#
xetex_tests = \
xetexdir/xetex-filedump.test \
- xetexdir/xetex-bug73.test \
xetexdir/xetex.test
xetexdir/xetex-filedump.log xetexdir/xetex-bug73.log xetexdir/xetex.log: xetex$(EXEEXT)

View file

@ -0,0 +1,22 @@
diff -up texlive-base-20220321/source/texk/kpathsea/texmf.cnf.texinfo-fix texlive-base-20220321/source/texk/kpathsea/texmf.cnf
--- texlive-base-20220321/source/texk/kpathsea/texmf.cnf.texinfo-fix 2022-04-24 14:56:58.552736645 -0400
+++ texlive-base-20220321/source/texk/kpathsea/texmf.cnf 2022-04-24 14:59:20.022477425 -0400
@@ -83,6 +83,9 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config
% to %USERPROFILE% on Windows, $HOME otherwise.
TEXMFHOME = ~/texmf
+% Texinfo on Fedora lives out of $TEXMFROOT
+TEXINFOHOME = $SELFAUTODIR/share/texmf
+
% TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data.
TEXMFVAR = ~/.texlive2022/texmf-var
@@ -108,7 +111,7 @@ TEXMFAUXTREES = {}
% The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is
% ever defined (the 99% common case), no extra elements will be added to
% the search paths. tlmgr takes care to end any value with a trailing comma.
-TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
+TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXINFOHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
% Where to look for, and where mktexlsr creates, ls-R files. By default,
% this is all and only the !! elements of TEXMF, so that mktexlsr does not

View file

@ -0,0 +1,197 @@
diff -up texlive-base-20230311/source/texk/web2c/luatexdir/tex/textoken.c.me texlive-base-20230311/source/texk/web2c/luatexdir/tex/textoken.c
--- texlive-base-20230311/source/texk/web2c/luatexdir/tex/textoken.c.me 2025-01-23 16:20:29.845574328 +0100
+++ texlive-base-20230311/source/texk/web2c/luatexdir/tex/textoken.c 2025-01-23 16:23:32.896925830 +0100
@@ -2665,7 +2665,7 @@ static int do_feedback_pdf(halfword c)
halfword save_def_ref;
halfword save_warning_index;
/*tex temp boolean */
- boolean bool;
+ boolean bool1;
/*tex first temp string */
str_number s;
/*tex for use with |set_ff| */
@@ -2738,7 +2738,7 @@ static int do_feedback_pdf(halfword c)
print_int(pdf_get_obj(static_pdf, obj_type_page, cur_val, false));
pop_selector;
} else if (scan_keyword("colorstackinit")) {
- bool = scan_keyword("page");
+ bool1 = scan_keyword("page");
if (scan_keyword("direct"))
cur_val = direct_always;
else if (scan_keyword("page"))
@@ -2762,7 +2762,7 @@ static int do_feedback_pdf(halfword c)
warning_index = save_warning_index;
scanner_status = save_scanner_status;
str = makecstring(s);
- cur_val = newcolorstack(str, cur_val, bool);
+ cur_val = newcolorstack(str, cur_val, bool1);
free(str);
flush_str(s);
cur_val_level = int_val_level;
@@ -2801,7 +2801,7 @@ void conv_toks(void)
halfword save_def_ref;
halfword save_warning_index;
/*tex temp boolean */
- boolean bool;
+ boolean bool1;
/*tex first temp string */
str_number s;
/*tex lua chunk name */
@@ -2991,11 +2991,11 @@ void conv_toks(void)
save_def_ref = def_ref;
save_warning_index = warning_index;
scan_toks(false, true);
- bool = in_lua_escape;
+ bool1 = in_lua_escape;
in_lua_escape = true;
escstr.s = (unsigned char *) tokenlist_to_cstring(def_ref, false, &l);
escstr.l = (unsigned) l;
- in_lua_escape = bool;
+ in_lua_escape = bool1;
delete_token_ref(def_ref);
def_ref = save_def_ref;
warning_index = save_warning_index;
diff -up texlive-base-20230311/source/texk/web2c/luatexdir/unilib/ustring.c.me texlive-base-20230311/source/texk/web2c/luatexdir/unilib/ustring.c
--- texlive-base-20230311/source/texk/web2c/luatexdir/unilib/ustring.c.me 2025-01-23 16:45:23.164475899 +0100
+++ texlive-base-20230311/source/texk/web2c/luatexdir/unilib/ustring.c 2025-01-23 16:47:08.044935510 +0100
@@ -396,7 +396,7 @@ double u_strtod(const unichar_t *str, un
char buf[60], *pt, *ret;
const unichar_t *upt;
double val;
- extern double strtod(); /* Please don't delete this, not all of us have good ansi headers */
+ //extern double strtod(); /* Please don't delete this, not all of us have good ansi headers */
for ( upt=str, pt=buf; *upt<128 && *upt!='\0' && pt-buf<sizeof(buf)-1; )
*pt++ = *upt++;
@@ -415,7 +415,7 @@ long u_strtol(const unichar_t *str, unic
char buf[60], *pt, *ret;
const unichar_t *upt;
long val;
- extern long strtol(); /* Please don't delete this, not all of us have good ansi headers */
+ //extern long strtol(); /* Please don't delete this, not all of us have good ansi headers */
for ( upt=str, pt=buf; *upt<128 && *upt!='\0' && pt<buf+sizeof(buf)-1; )
*pt++ = *upt++;
diff -up texlive-base-20230311/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splineutil2.c.me texlive-base-20230311/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splineutil2.c
--- texlive-base-20230311/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splineutil2.c.me 2025-01-23 16:53:43.457157308 +0100
+++ texlive-base-20230311/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splineutil2.c 2025-01-23 16:54:31.649278311 +0100
@@ -2049,7 +2049,7 @@ SplineSet *SplineSetReverse(SplineSet *s
Spline *spline, *first, *next;
BasePoint tp;
SplinePoint *temp;
- int bool;
+ int bool1;
/* reverse the splineset so that what was the start point becomes the end */
/* and vice versa. This entails reversing every individual spline, and */
/* each point */
@@ -2062,12 +2062,12 @@ return( spl ); /* Only one point, reve
tp = spline->from->nextcp;
spline->from->nextcp = spline->from->prevcp;
spline->from->prevcp = tp;
- bool = spline->from->nonextcp;
+ bool1 = spline->from->nonextcp;
spline->from->nonextcp = spline->from->noprevcp;
- spline->from->noprevcp = bool;
- bool = spline->from->nextcpdef;
+ spline->from->noprevcp = bool1;
+ bool1 = spline->from->nextcpdef;
spline->from->nextcpdef = spline->from->prevcpdef;
- spline->from->prevcpdef = bool;
+ spline->from->prevcpdef = bool1;
for ( ; spline!=NULL && spline!=first; spline=next ) {
next = spline->to->next;
@@ -2076,12 +2076,12 @@ return( spl ); /* Only one point, reve
tp = spline->to->nextcp;
spline->to->nextcp = spline->to->prevcp;
spline->to->prevcp = tp;
- bool = spline->to->nonextcp;
+ bool1 = spline->to->nonextcp;
spline->to->nonextcp = spline->to->noprevcp;
- spline->to->noprevcp = bool;
- bool = spline->to->nextcpdef;
+ spline->to->noprevcp = bool1;
+ bool1 = spline->to->nextcpdef;
spline->to->nextcpdef = spline->to->prevcpdef;
- spline->to->prevcpdef = bool;
+ spline->to->prevcpdef = bool1;
}
temp = spline->to;
diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/libs/woff2/include/woff2/output.h.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/libs/woff2/include/woff2/output.h
--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/libs/woff2/include/woff2/output.h.me 2025-01-23 17:53:11.940292061 +0100
+++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/libs/woff2/include/woff2/output.h 2025-01-23 18:00:25.679229974 +0100
@@ -13,6 +13,7 @@
#include <cstring>
#include <memory>
#include <string>
+#include <cstdint>
namespace woff2 {
diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/Character.hpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/Character.hpp
--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/Character.hpp.me 2025-01-23 18:00:29.791326309 +0100
+++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/Character.hpp 2025-01-23 18:01:29.795726026 +0100
@@ -21,6 +21,7 @@
#ifndef CHARACTER_HPP
#define CHARACTER_HPP
+#include <cstdint>
class Character {
public:
diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/EPSFile.hpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/EPSFile.hpp
--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/EPSFile.hpp.me 2025-01-23 18:01:42.194015062 +0100
+++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/EPSFile.hpp 2025-01-23 18:02:08.019619304 +0100
@@ -21,6 +21,7 @@
#ifndef EPSFILE_HPP
#define EPSFILE_HPP
+#include <cstdint>
#include <fstream>
#include <istream>
#include <string>
diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/FontMetrics.hpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/FontMetrics.hpp
--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/FontMetrics.hpp.me 2025-01-23 18:02:39.822363424 +0100
+++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/FontMetrics.hpp 2025-01-23 18:02:46.917529433 +0100
@@ -21,6 +21,7 @@
#ifndef FONTMETRICS_HPP
#define FONTMETRICS_HPP
+#include <cstdint>
#include <istream>
#include <memory>
#include <string>
diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.cpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.cpp
--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.cpp.me 2025-01-23 18:03:21.502336489 +0100
+++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.cpp 2025-01-23 18:03:28.253494025 +0100
@@ -18,6 +18,7 @@
** along with this program; if not, see <http://www.gnu.org/licenses/>. **
*************************************************************************/
+#include <cstdint>
#include <algorithm>
#include <iomanip>
#include <sstream>
diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.hpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.hpp
--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.hpp.me 2025-01-23 18:04:33.647023179 +0100
+++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.hpp 2025-01-23 18:04:40.919193442 +0100
@@ -21,6 +21,7 @@
#ifndef HASHFUNCTION_HPP
#define HASHFUNCTION_HPP
+#include <cstdint>
#include <istream>
#include <memory>
#include <string>
diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/utility.hpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/utility.hpp
--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/utility.hpp.me 2025-01-23 17:54:42.338405708 +0100
+++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/utility.hpp 2025-01-23 17:58:32.140551634 +0100
@@ -32,6 +32,7 @@
#include <string>
#include <type_traits>
#include <vector>
+#include <cstdint>
namespace math {

View file

@ -0,0 +1,44 @@
diff -up texlive-base-20230311/source/texk/kpathsea/texmf.cnf.texinfo-fix texlive-base-20230311/source/texk/kpathsea/texmf.cnf
--- texlive-base-20230311/source/texk/kpathsea/texmf.cnf.texinfo-fix 2023-05-25 10:49:55.510891474 -0400
+++ texlive-base-20230311/source/texk/kpathsea/texmf.cnf 2023-05-25 11:44:59.261966579 -0400
@@ -59,7 +59,7 @@
% SELFAUTOPARENT (its grandparent = /usr/local/texlive/YYYY), and
% SELFAUTOGRANDPARENT (its great-grandparent = /usr/local/texlive).
% Sorry for the off-by-one-generation names.
-TEXMFROOT = $SELFAUTOPARENT
+TEXMFROOT = /usr/share/texlive
% The main tree of distributed packages and programs:
TEXMFDIST = $TEXMFROOT/texmf-dist
@@ -69,10 +69,10 @@ TEXMFDIST = $TEXMFROOT/texmf-dist
TEXMFMAIN = $TEXMFDIST
% Local additions to the distribution trees.
-TEXMFLOCAL = $SELFAUTOGRANDPARENT/texmf-local
+TEXMFLOCAL = /usr/share/texlive/texmf-local
% TEXMFSYSVAR, where *-sys store cached runtime data.
-TEXMFSYSVAR = $TEXMFROOT/texmf-var
+TEXMFSYSVAR = /var/lib/texmf
% TEXMFSYSCONFIG, where *-sys store configuration data.
TEXMFSYSCONFIG = $TEXMFROOT/texmf-config
@@ -83,6 +83,9 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config
% to %USERPROFILE% on Windows, $HOME otherwise.
TEXMFHOME = ~/texmf
+% Texinfo on Fedora lives out of $TEXMFROOT
+TEXINFOHOME = /usr/share/texmf
+
% TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data.
TEXMFVAR = ~/.texlive2023/texmf-var
@@ -108,7 +111,7 @@ TEXMFAUXTREES = {}
% The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is
% ever defined (the 99% common case), no extra elements will be added to
% the search paths. tlmgr takes care to end any value with a trailing comma.
-TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
+TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXINFOHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
% Where to look for, and where mktexlsr creates, ls-R files. By default,
% this is all and only the !! elements of TEXMF, so that mktexlsr does not

View file

@ -0,0 +1,12 @@
diff -up texlive-base-20180414/source/texk/web2c/omegafonts/check.test.disabletest texlive-base-20180414/source/texk/web2c/omegafonts/check.test
--- texlive-base-20180414/source/texk/web2c/omegafonts/check.test.disabletest 2018-10-04 13:24:17.965126655 -0400
+++ texlive-base-20180414/source/texk/web2c/omegafonts/check.test 2018-10-04 13:24:26.068945230 -0400
@@ -4,6 +4,8 @@
# Copyright 2014, 2015 Peter Breitenlohner <tex-live@tug.org>
# You may freely use, modify and/or distribute this file.
+exit 0
+
test -d tests || mkdir -p tests
TEXMFCNF=$srcdir/../../kpathsea

View file

@ -0,0 +1,11 @@
diff -up texlive-base-20180414/source/texk/web2c/synctexdir/synctex_parser.c.shh texlive-base-20180414/source/texk/web2c/synctexdir/synctex_parser.c
--- texlive-base-20180414/source/texk/web2c/synctexdir/synctex_parser.c.shh 2019-03-19 11:02:44.303218932 -0400
+++ texlive-base-20180414/source/texk/web2c/synctexdir/synctex_parser.c 2019-03-19 11:02:59.545857443 -0400
@@ -6023,7 +6023,6 @@ synctex_scanner_p synctex_scanner_new_wi
if ((scanner->reader = synctex_reader_init_with_output_file(scanner->reader, output, build_directory))) {
return parse? synctex_scanner_parse(scanner):scanner;
}
- _synctex_error("No file?");
return NULL;
}

View file

@ -0,0 +1,16 @@
diff -up texlive-base-20190410/source/texk/detex/detex-src/detex.l.me texlive-base-20190410/source/texk/detex/detex-src/detex.l
--- texlive-base-20190410/source/texk/detex/detex-src/detex.l.me 2020-02-05 12:54:36.100840384 +0100
+++ texlive-base-20190410/source/texk/detex/detex-src/detex.l 2020-02-05 13:00:28.476320773 +0100
@@ -898,10 +898,10 @@ TexOpen(char *sbFile)
#else
if (*sbFile == '/') { /* absolute path */
#endif
- (void)sprintf(sbFullPath, "%s", sbFile);
+ (void)snprintf(sbFullPath, PATH_MAX-1, "%s", sbFile);
iPath = csbInputPaths; /* only check once */
} else
- (void)sprintf(sbFullPath, "%s/%s", rgsbInputPaths[iPath], sbFile);
+ (void)snprintf(sbFullPath, PATH_MAX-1, "%s/%s", rgsbInputPaths[iPath], sbFile);
#ifdef OS2
pch = sbFullPath;
while (pch = strchr(pch, '\\'))

View file

@ -0,0 +1,249 @@
diff -up texlive-base-20190410/source/utils/autosp/autosp-src/autosp.c.externfix texlive-base-20190410/source/utils/autosp/autosp-src/autosp.c
--- texlive-base-20190410/source/utils/autosp/autosp-src/autosp.c.externfix 2020-01-23 13:07:24.044942747 -0500
+++ texlive-base-20190410/source/utils/autosp/autosp-src/autosp.c 2020-01-23 13:12:41.905857613 -0500
@@ -82,6 +82,13 @@ char version[12] = "2019-01-08";
# include "autosp.h"
+char infilename[SHORT_LEN];
+char *infilename_n;
+char outfilename[SHORT_LEN];
+char *outfilename_n;
+char logfilename[SHORT_LEN];
+char *logfilename_n;
+FILE *infile, *outfile, *logfile;
PRIVATE void
usage ()
diff -up texlive-base-20190410/source/utils/autosp/autosp-src/autosp.h.externfix texlive-base-20190410/source/utils/autosp/autosp-src/autosp.h
--- texlive-base-20190410/source/utils/autosp/autosp-src/autosp.h.externfix 2020-01-23 13:02:59.186403822 -0500
+++ texlive-base-20190410/source/utils/autosp/autosp-src/autosp.h 2020-01-23 13:12:30.912087145 -0500
@@ -25,16 +25,16 @@
# define SHORT_LEN 256
-bool debug;
-bool dottedbeamnotes; /* dotted beam notes ignored? */
+extern bool debug;
+extern bool dottedbeamnotes; /* dotted beam notes ignored? */
-char infilename[SHORT_LEN];
-char *infilename_n;
-char outfilename[SHORT_LEN];
-char *outfilename_n;
-char logfilename[SHORT_LEN];
-char *logfilename_n;
-FILE *infile, *outfile, *logfile;
+extern char infilename[SHORT_LEN];
+extern char *infilename_n;
+extern char outfilename[SHORT_LEN];
+extern char *outfilename_n;
+extern char logfilename[SHORT_LEN];
+extern char *logfilename_n;
+extern FILE *infile, *outfile, *logfile;
void process_score ();
diff -up texlive-base-20190410/source/utils/autosp/autosp-src/process_command.c.externfix texlive-base-20190410/source/utils/autosp/autosp-src/process_command.c
--- texlive-base-20190410/source/utils/autosp/autosp-src/process_command.c.externfix 2020-01-23 13:23:55.275608432 -0500
+++ texlive-base-20190410/source/utils/autosp/autosp-src/process_command.c 2020-01-23 13:26:00.074878265 -0500
@@ -1,5 +1,37 @@
# include "process_command.h"
+char terminator[MAX_STAFFS]; /* one of '&' "|', '$' */
+char *notes[MAX_STAFFS]; /* note segment for ith staff */
+char *current[MAX_STAFFS];
+int spacings[MAX_STAFFS]; /* spacing for ith staff */
+int vspacing[MAX_STAFFS]; /* virtual-note (skip) spacing */
+bool vspacing_active[MAX_STAFFS]; /* virtual-note spacing active? */
+ /* used to preclude unnecessary pre-accidental skips */
+bool nonvirtual_notes; /* used to preclude output of *only* virtual notes */
+int cspacing[MAX_STAFFS]; /* nominal collective-note spacing */
+char collective[MAX_STAFFS][SHORT_LEN];
+ /* prefixes for collective note sequences */
+bool first_collective[MAX_STAFFS];
+char deferred_bar[SHORT_LEN]; /* deferred \bar (or \endpiece etc.) */
+int beaming[MAX_STAFFS]; /* spacing for beamed notes */
+int new_beaming;
+int semiauto_beam_notes[MAX_STAFFS]; /* semi-automatic beam notes */
+/* save-restore state for a staff; used in process_xtuplet */
+int beamingi;
+char *currenti;
+int cspacingi;
+int vspacingi;
+char collectivei[SHORT_LEN];
+bool first_collectivei;
+int xtuplet[MAX_STAFFS]; /* x for xtuplet in staff i */
+bool appoggiatura;
+char outstrings[MAX_STAFFS][LINE_LEN];
+ /* accumulate commands to be output */
+char *n_outstrings[MAX_STAFFS];
+int global_skip;
+/* = 1, 2, 3, or 4 for (non-standard) commands \QQsk \HQsk \TQsk \Qsk */
+/* = 5 for five commas and double-flat accidental spacing */
+/* = 6 for six commas */
void process_xtuplet (void);
diff -up texlive-base-20190410/source/utils/autosp/autosp-src/process_command.h.externfix texlive-base-20190410/source/utils/autosp/autosp-src/process_command.h
--- texlive-base-20190410/source/utils/autosp/autosp-src/process_command.h.externfix 2020-01-23 13:18:54.495606362 -0500
+++ texlive-base-20190410/source/utils/autosp/autosp-src/process_command.h 2020-01-23 13:23:33.154094850 -0500
@@ -8,47 +8,47 @@
# define NOTEsp "\\vnotes9.52\\elemskip"
# define APPOGG_NOTES "\\vnotes1.45\\elemskip"
-char terminator[MAX_STAFFS]; /* one of '&' "|', '$' */
+extern char terminator[MAX_STAFFS]; /* one of '&' "|', '$' */
-char *notes[MAX_STAFFS]; /* note segment for ith staff */
-char *current[MAX_STAFFS];
+extern char *notes[MAX_STAFFS]; /* note segment for ith staff */
+extern char *current[MAX_STAFFS];
-int spacings[MAX_STAFFS]; /* spacing for ith staff */
+extern int spacings[MAX_STAFFS]; /* spacing for ith staff */
-int vspacing[MAX_STAFFS]; /* virtual-note (skip) spacing */
-bool vspacing_active[MAX_STAFFS]; /* virtual-note spacing active? */
+extern int vspacing[MAX_STAFFS]; /* virtual-note (skip) spacing */
+extern bool vspacing_active[MAX_STAFFS]; /* virtual-note spacing active? */
/* used to preclude unnecessary pre-accidental skips */
-bool nonvirtual_notes; /* used to preclude output of *only* virtual notes */
+extern bool nonvirtual_notes; /* used to preclude output of *only* virtual notes */
-int cspacing[MAX_STAFFS]; /* nominal collective-note spacing */
-char collective[MAX_STAFFS][SHORT_LEN];
+extern int cspacing[MAX_STAFFS]; /* nominal collective-note spacing */
+extern char collective[MAX_STAFFS][SHORT_LEN];
/* prefixes for collective note sequences */
-bool first_collective[MAX_STAFFS];
+extern bool first_collective[MAX_STAFFS];
-char deferred_bar[SHORT_LEN]; /* deferred \bar (or \endpiece etc.) */
+extern char deferred_bar[SHORT_LEN]; /* deferred \bar (or \endpiece etc.) */
-int beaming[MAX_STAFFS]; /* spacing for beamed notes */
-int new_beaming;
-int semiauto_beam_notes[MAX_STAFFS]; /* semi-automatic beam notes */
+extern int beaming[MAX_STAFFS]; /* spacing for beamed notes */
+extern int new_beaming;
+extern int semiauto_beam_notes[MAX_STAFFS]; /* semi-automatic beam notes */
/* save-restore state for a staff; used in process_xtuplet */
-int beamingi;
-char *currenti;
-int cspacingi;
-int vspacingi;
-char collectivei[SHORT_LEN];
-bool first_collectivei;
+extern int beamingi;
+extern char *currenti;
+extern int cspacingi;
+extern int vspacingi;
+extern char collectivei[SHORT_LEN];
+extern bool first_collectivei;
-int xtuplet[MAX_STAFFS]; /* x for xtuplet in staff i */
+extern int xtuplet[MAX_STAFFS]; /* x for xtuplet in staff i */
-bool appoggiatura;
+extern bool appoggiatura;
-char outstrings[MAX_STAFFS][LINE_LEN];
+extern char outstrings[MAX_STAFFS][LINE_LEN];
/* accumulate commands to be output */
-char *n_outstrings[MAX_STAFFS];
+extern char *n_outstrings[MAX_STAFFS];
-int global_skip;
+extern int global_skip;
/* = 1, 2, 3, or 4 for (non-standard) commands \QQsk \HQsk \TQsk \Qsk */
/* = 5 for five commas and double-flat accidental spacing */
/* = 6 for six commas */
diff -up texlive-base-20190410/source/utils/autosp/autosp-src/process_score.c.externfix texlive-base-20190410/source/utils/autosp/autosp-src/process_score.c
--- texlive-base-20190410/source/utils/autosp/autosp-src/process_score.c.externfix 2020-01-23 13:17:36.073400920 -0500
+++ texlive-base-20190410/source/utils/autosp/autosp-src/process_score.c 2020-01-23 13:18:29.827262141 -0500
@@ -1,5 +1,20 @@
# include "process_score.h"
+int staffs[MAX_STAFFS]; /* number of staffs for ith instrument*/
+bool active[MAX_STAFFS]; /* is staff i active? */
+bool bar_rest[MAX_STAFFS];
+int spacing; /* spacing for current notes */
+int restbars;
+char global_skip_str[7][16];
+int ninstr; /* number of instruments */
+int nstaffs; /* number of staffs */
+int nastaffs; /* number of active staffs; */
+int old_spacing;
+bool Changeclefs; /* output \Changeclefs after \def\atnextbar */
+char TransformNotes2[SHORT_LEN];/* 2nd argument of \TransformNotes */
+bool TransformNotesDefined;
+char line[LINE_LEN]; /* line of input */
+
void process_line ()
{
char *ln;
diff -up texlive-base-20190410/source/utils/autosp/autosp-src/process_score.h.externfix texlive-base-20190410/source/utils/autosp/autosp-src/process_score.h
--- texlive-base-20190410/source/utils/autosp/autosp-src/process_score.h.externfix 2020-01-23 13:13:28.767879231 -0500
+++ texlive-base-20190410/source/utils/autosp/autosp-src/process_score.h 2020-01-23 13:16:56.554238138 -0500
@@ -6,21 +6,21 @@
# define SP(note) (SMALL_NOTE/note)
/* note = { 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 } */
# define MAX_SPACING 2*SP(1)
-int staffs[MAX_STAFFS]; /* number of staffs for ith instrument*/
-bool active[MAX_STAFFS]; /* is staff i active? */
-bool bar_rest[MAX_STAFFS];
-int spacing; /* spacing for current notes */
-int restbars;
-char global_skip_str[7][16];
-int ninstr; /* number of instruments */
-int nstaffs; /* number of staffs */
-int nastaffs; /* number of active staffs; */
-int old_spacing;
-bool Changeclefs; /* output \Changeclefs after \def\atnextbar */
-char TransformNotes2[SHORT_LEN]; /* 2nd argument of \TransformNotes */
-bool TransformNotesDefined;
+extern int staffs[MAX_STAFFS]; /* number of staffs for ith instrument*/
+extern bool active[MAX_STAFFS]; /* is staff i active? */
+extern bool bar_rest[MAX_STAFFS];
+extern int spacing; /* spacing for current notes */
+extern int restbars;
+extern char global_skip_str[7][16];
+extern int ninstr; /* number of instruments */
+extern int nstaffs; /* number of staffs */
+extern int nastaffs; /* number of active staffs; */
+extern int old_spacing;
+extern bool Changeclefs; /* output \Changeclefs after \def\atnextbar */
+extern char TransformNotes2[SHORT_LEN]; /* 2nd argument of \TransformNotes */
+extern bool TransformNotesDefined;
-char line[LINE_LEN]; /* line of input */
+extern char line[LINE_LEN]; /* line of input */
void process_line ();
diff -up texlive-base-20190410/source/utils/autosp/autosp-src/utils.c.externfix texlive-base-20190410/source/utils/autosp/autosp-src/utils.c
--- texlive-base-20190410/source/utils/autosp/autosp-src/utils.c.externfix 2020-01-23 13:05:26.584382978 -0500
+++ texlive-base-20190410/source/utils/autosp/autosp-src/utils.c 2020-01-23 13:05:37.343164091 -0500
@@ -24,6 +24,8 @@
# include "utils.h"
+int lineno;
+
void
warning (const char msg[]) /* output warning message msg to stderr */
{
diff -up texlive-base-20190410/source/utils/autosp/autosp-src/utils.h.externfix texlive-base-20190410/source/utils/autosp/autosp-src/utils.h
--- texlive-base-20190410/source/utils/autosp/autosp-src/utils.h.externfix 2020-01-23 13:04:15.805822929 -0500
+++ texlive-base-20190410/source/utils/autosp/autosp-src/utils.h 2020-01-23 13:04:25.408627563 -0500
@@ -61,6 +61,6 @@ extern size_t append (char *dst, char **
extern bool prefix (const char *cs, const char *ct); /* is string cs[] a prefix of ct[]? */
extern bool suffix (const char *cs, const char *ct); /* is string cs[] a suffix of ct[]? */
-int lineno;
+extern int lineno;
extern void error (const char msg[]); /* abort with stderr message msg */
extern void warning (const char msg[]); /* output warning message msg to stderr */

View file

@ -0,0 +1,63 @@
diff -up texlive-base-20190410/source/texk/web2c/luatexdir/font/luatexfont.h.externfix texlive-base-20190410/source/texk/web2c/luatexdir/font/luatexfont.h
--- texlive-base-20190410/source/texk/web2c/luatexdir/font/luatexfont.h.externfix 2020-01-23 14:39:03.317389393 -0500
+++ texlive-base-20190410/source/texk/web2c/luatexdir/font/luatexfont.h 2020-01-23 14:39:24.282963661 -0500
@@ -128,8 +128,8 @@ int write_tounicode(PDF, char **, char *
void replace_packet_fonts(internal_font_number f, int *old_fontid, int *new_fontid, int count);
int *packet_local_fonts(internal_font_number f, int *num);
-int packet_cur_s; /* current |do_vf_packet()| recursion level */
-int packet_stack_ptr; /* pointer into |packet_stack| */
+extern int packet_cur_s; /* current |do_vf_packet()| recursion level */
+extern int packet_stack_ptr; /* pointer into |packet_stack| */
vf_struct *new_vfstruct(void);
/* writecff.c */
diff -up texlive-base-20190410/source/texk/web2c/luatexdir/font/vfpacket.c.externfix texlive-base-20190410/source/texk/web2c/luatexdir/font/vfpacket.c
diff -up texlive-base-20190410/source/texk/web2c/luatexdir/image/writeimg.h.externfix texlive-base-20190410/source/texk/web2c/luatexdir/image/writeimg.h
--- texlive-base-20190410/source/texk/web2c/luatexdir/image/writeimg.h.externfix 2020-01-23 14:44:11.720101536 -0500
+++ texlive-base-20190410/source/texk/web2c/luatexdir/image/writeimg.h 2020-01-23 14:44:27.964767014 -0500
@@ -26,7 +26,7 @@
# include "pdf/pdfpage.h"
typedef image_dict *idict_entry;
-idict_entry *idict_array;
+extern idict_entry *idict_array;
void new_img_pdfstream_struct(image_dict *);
image *new_image(void);
diff -up texlive-base-20190410/source/texk/web2c/luatexdir/pdf/pdftables.h.externfix texlive-base-20190410/source/texk/web2c/luatexdir/pdf/pdftables.h
--- texlive-base-20190410/source/texk/web2c/luatexdir/pdf/pdftables.h.externfix 2020-01-23 14:35:18.313067342 -0500
+++ texlive-base-20190410/source/texk/web2c/luatexdir/pdf/pdftables.h 2020-01-23 14:35:27.367878245 -0500
@@ -21,7 +21,7 @@
#ifndef PDFTABLES_H
# define PDFTABLES_H
-const char *pdf_obj_typenames[PDF_OBJ_TYPE_MAX + 1];
+extern const char *pdf_obj_typenames[PDF_OBJ_TYPE_MAX + 1];
typedef enum {
union_type_int,
diff -up texlive-base-20190410/source/texk/web2c/luatexdir/pdf/pdfxform.c.externfix texlive-base-20190410/source/texk/web2c/luatexdir/pdf/pdfxform.c
--- texlive-base-20190410/source/texk/web2c/luatexdir/pdf/pdfxform.c.externfix 2020-01-23 14:51:41.427758029 -0500
+++ texlive-base-20190410/source/texk/web2c/luatexdir/pdf/pdfxform.c 2020-01-23 14:51:50.676561145 -0500
@@ -24,8 +24,6 @@ with LuaTeX; if not, see <http://www.gnu
/*tex The form being output: */
-int pdf_cur_form;
-
void pdf_place_form(PDF pdf, halfword p)
{
scaled_whd nat, tex;
diff -up texlive-base-20190410/source/texk/web2c/luatexdir/tex/textoken.c.externfix texlive-base-20190410/source/texk/web2c/luatexdir/tex/textoken.c
--- texlive-base-20190410/source/texk/web2c/luatexdir/tex/textoken.c.externfix 2020-01-23 14:50:52.078796620 -0500
+++ texlive-base-20190410/source/texk/web2c/luatexdir/tex/textoken.c 2020-01-23 14:50:57.659680238 -0500
@@ -76,7 +76,7 @@ unsigned fix_mem_max;
/*tex how much memory is in use */
-int var_used, dyn_used;
+int dyn_used;
/*tex head of the list of available one-word nodes */

View file

@ -0,0 +1,12 @@
diff -up texlive-base-20190410/source/texk/web2c/mplibdir/mp.w.externfix texlive-base-20190410/source/texk/web2c/mplibdir/mp.w
--- texlive-base-20190410/source/texk/web2c/mplibdir/mp.w.externfix 2020-01-23 13:46:37.500459473 -0500
+++ texlive-base-20190410/source/texk/web2c/mplibdir/mp.w 2020-01-23 13:55:29.588893404 -0500
@@ -2958,7 +2958,7 @@ void *mp_xmalloc (MP mp, size_t nmem, si
}
@ @<Internal library declarations@>=
-int mp_snprintf_res ;
+static int mp_snprintf_res ;
/* Some compilers (i.e. gcc 8.2.0 ) complained with the old */
/* #define mp_snprintf (void)snprintf */
/* about truncation. For the moment we store the result. */

View file

@ -0,0 +1,13 @@
diff -up texlive-base-20190410/source/texk/ttf2pk2/ftlib.c.externfix texlive-base-20190410/source/texk/ttf2pk2/ftlib.c
diff -up texlive-base-20190410/source/texk/ttf2pk2/pklib.c.externfix texlive-base-20190410/source/texk/ttf2pk2/pklib.c
--- texlive-base-20190410/source/texk/ttf2pk2/pklib.c.externfix 2020-01-23 15:56:27.041072021 -0500
+++ texlive-base-20190410/source/texk/ttf2pk2/pklib.c 2020-01-23 16:02:05.585252609 -0500
@@ -64,7 +64,7 @@
#define PK_POST (char)245
#define PK_NOP (char)246
-int dpi;
+extern int dpi;
FILE *pk_file;

View file

@ -0,0 +1,259 @@
--- texlive-base-20190410/source/texk/web2c/pdftexdir/pdftoepdf.cc
+++ texlive-base-20190410/source/texk/web2c/pdftexdir/pdftoepdf.cc
@@ -26,6 +26,15 @@ The poppler should be 0.59.0 or newer ve
POPPLER_VERSION should be defined.
*/
+#ifdef POPPLER_VERSION
+#include <poppler-config.h>
+#define xpdfVersion POPPLER_VERSION
+#define xpdfString "poppler"
+#else
+#include <xpdf/config.h> /* just to get the xpdf version */
+#define xpdfString "xpdf"
+#endif
+
/* Do this early in order to avoid a conflict between
MINGW32 <rpcndr.h> defining 'boolean' as 'unsigned char' and
<kpathsea/types.h> defining Pascal's boolean as 'int'.
@@ -292,7 +292,7 @@ static void copyDictEntry(Object * obj,
Object obj1;
copyName(obj->dictGetKey(i));
pdf_puts(" ");
- obj1 = obj->dictGetValNF(i);
+ obj1 = obj->dictGetValNF(i).copy();
copyObject(&obj1);
pdf_puts("\n");
}
@@ -351,7 +351,7 @@ static void copyProcSet(Object * obj)
obj->getTypeName());
pdf_puts("/ProcSet [ ");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- procset = obj->arrayGetNF(i);
+ procset = obj->arrayGetNF(i).copy();
if (!procset.isName())
pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>",
procset.getTypeName());
@@ -406,7 +406,7 @@ static void copyFont(const char *tag, Ob
if (fontdict.isDict()) {
subtype = fontdict.dictLookup("Subtype");
basefont = fontdict.dictLookup("BaseFont");
- fontdescRef = fontdict.dictLookupNF("FontDescriptor");
+ fontdescRef = fontdict.dictLookupNF("FontDescriptor").copy();
if (fontdescRef.isRef()) {
fontdesc = fontdescRef.fetch(xref);
}
@@ -452,7 +452,7 @@ static void copyFontResources(Object * o
obj->getTypeName());
pdf_puts("/Font << ");
for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
- fontRef = obj->dictGetValNF(i);
+ fontRef = obj->dictGetValNF(i).copy();
if (fontRef.isRef())
copyFont(obj->dictGetKey(i), &fontRef);
else if (fontRef.isDict()) { // some programs generate pdf with embedded font object
@@ -595,7 +595,7 @@ static void copyObject(Object * obj)
} else if (obj->isArray()) {
pdf_puts("[");
for (i = 0, l = obj->arrayGetLength(); i < l; ++i) {
- obj1 = obj->arrayGetNF(i);
+ obj1 = obj->arrayGetNF(i).copy();
if (!obj1.isName())
pdf_puts(" ");
copyObject(&obj1);
@@ -723,7 +723,7 @@ read_pdf_info(char *image_name, char *pa
#endif
// initialize
if (!isInit) {
- globalParams = new GlobalParams();
+ globalParams = std::unique_ptr<GlobalParams>(new GlobalParams());
globalParams->setErrQuiet(false);
isInit = true;
}
@@ -761,7 +761,7 @@ read_pdf_info(char *image_name, char *pa
if (link == 0 || !link->isOk())
pdftex_fail("PDF inclusion: invalid destination <%s>", page_name);
Ref ref = link->getPageRef();
- page_num = pdf_doc->doc->getCatalog()->findPage(ref.num, ref.gen);
+ page_num = pdf_doc->doc->getCatalog()->findPage(ref);
if (page_num == 0)
pdftex_fail("PDF inclusion: destination is not a page <%s>",
page_name);
@@ -921,13 +921,13 @@ void write_epdf(void)
pdf_puts(stripzeros(s));
// Metadata validity check (as a stream it must be indirect)
- dictObj = pageDict->lookupNF("Metadata");
+ dictObj = pageDict->lookupNF("Metadata").copy();
if (!dictObj.isNull() && !dictObj.isRef())
pdftex_warn("PDF inclusion: /Metadata must be indirect object");
// copy selected items in Page dictionary except Resources & Group
for (i = 0; pageDictKeys[i] != NULL; i++) {
- dictObj = pageDict->lookupNF(pageDictKeys[i]);
+ dictObj = pageDict->lookupNF(pageDictKeys[i]).copy();
if (!dictObj.isNull()) {
pdf_newline();
pdf_printf("/%s ", pageDictKeys[i]);
@@ -936,7 +936,7 @@ void write_epdf(void)
}
// handle page group
- dictObj = pageDict->lookupNF("Group");
+ dictObj = pageDict->lookupNF("Group").copy();
if (!dictObj.isNull()) {
if (pdfpagegroupval == 0) {
// another pdf with page group was included earlier on the
@@ -978,7 +978,7 @@ The changes below seem to work fine.
l = dic1.getLength();
for (i = 0; i < l; i++) {
groupDict.dictAdd(dic1.getKey(i),
- dic1.getValNF(i));
+ dic1.getValNF(i).copy());
}
// end modification
pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval);
@@ -1108,6 +1108,6 @@ void epdf_check_mem()
delete_document(p);
}
// see above for globalParams
- delete globalParams;
+ globalParams.reset();
}
}
--- texlive-base-20190410/source/texk/web2c/pdftexdir/pdftosrc.cc
+++ texlive-base-20190410/source/texk/web2c/pdftexdir/pdftosrc.cc
@@ -24,6 +24,15 @@ by Arch Linux. The poppler should be 0.5
POPPLER_VERSION should be defined.
*/
+#ifdef POPPLER_VERSION
+#include <poppler-config.h>
+#define xpdfVersion POPPLER_VERSION
+#define xpdfString "poppler"
+#else
+#include <xpdf/config.h> /* just to get the xpdf version */
+#define xpdfString "xpdf"
+#endif
+
#include <w2c/config.h>
#include <stdlib.h>
@@ -79,7 +79,7 @@ int main(int argc, char *argv[])
exit(1);
}
fileName = new GString(argv[1]);
- globalParams = new GlobalParams();
+ globalParams = std::unique_ptr<GlobalParams>(new GlobalParams());
doc = new PDFDoc(fileName);
if (!doc->isOk()) {
fprintf(stderr, "Invalid PDF file\n");
@@ -100,7 +100,7 @@ int main(int argc, char *argv[])
if (objnum == 0) {
srcStream = catalogDict.dictLookup("SourceObject");
static char const_SourceFile[] = "SourceFile";
- if (!srcStream.isStream(const_SourceFile)) {
+ if (!(srcStream.isStream() && srcStream.getDict()->is(const_SourceFile))) {
fprintf(stderr, "No SourceObject found\n");
exit(1);
}
@@ -156,7 +156,6 @@ int main(int argc, char *argv[])
(e->type == xrefEntryFree ? "f" : "n"));
else { // e->offset is the object number of the object stream
Stream *str;
- Lexer *lexer;
Parser *parser;
Object objStr, obj1, obj2;
int nObjects, first, n;
@@ -174,8 +173,7 @@ int main(int argc, char *argv[])
// parse the header: object numbers and offsets
objStr.streamReset();
str = new EmbedStream(objStr.getStream(), Object(objNull), true, first);
- lexer = new Lexer(xref, str);
- parser = new Parser(xref, lexer, false);
+ parser = new Parser(xref, str, false);
for (n = 0; n < nObjects; ++n) {
obj1 = parser->getObj();
obj2 = parser->getObj();
@@ -207,5 +207,5 @@ int main(int argc, char *argv[])
fprintf(stderr, "Cross-reference table extracted to %s\n", outname);
fclose(outfile);
delete doc;
- delete globalParams;
+ globalParams.reset();
}
--- texlive-base-20190410/source/texk/web2c/pdftexdir/utils.c
+++ texlive-base-20190410/source/texk/web2c/pdftexdir/utils.c
@@ -32,14 +32,6 @@ with this program. If not, see <http://
#include <zlib.h>
#include "ptexlib.h"
#include <png.h>
-#ifdef POPPLER_VERSION
-#include <poppler-config.h>
-#define xpdfVersion POPPLER_VERSION
-#define xpdfString "poppler"
-#else
-#include <xpdf/config.h> /* just to get the xpdf version */
-#define xpdfString "xpdf"
-#endif
#define check_nprintf(size_get, size_want) \
if ((unsigned)(size_get) >= (unsigned)(size_want)) \
@@ -977,12 +969,10 @@ void initversionstring(char **versions)
{
const_string fmt =
"Compiled with libpng %s; using libpng %s\n"
- "Compiled with zlib %s; using zlib %s\n"
- "Compiled with %s version %s\n";
+ "Compiled with zlib %s; using zlib %s\n";
size_t len = strlen(fmt)
+ strlen(PNG_LIBPNG_VER_STRING) + strlen(png_libpng_ver)
+ strlen(ZLIB_VERSION) + strlen(zlib_version)
- + strlen(xpdfString) + strlen(xpdfVersion)
+ 1;
/* len will be more than enough, because of the placeholder chars in fmt
@@ -990,7 +980,7 @@ void initversionstring(char **versions)
*versions = xmalloc(len);
sprintf(*versions, fmt,
PNG_LIBPNG_VER_STRING, png_libpng_ver,
- ZLIB_VERSION, zlib_version, xpdfString, xpdfVersion);
+ ZLIB_VERSION, zlib_version);
}
--- texlive-base-20190410/source/texk/web2c/xetexdir/XeTeX_ext.c
+++ texlive-base-20190410/source/texk/web2c/xetexdir/XeTeX_ext.c
@@ -38,7 +38,6 @@ authorization from the copyright holders
#include <w2c/config.h>
-#include <poppler-config.h>
#include <png.h>
#include <zlib.h>
#include <graphite2/Font.h>
@@ -167,7 +166,6 @@ void initversionstring(char **versions)
"Compiled with Graphite2 version %d.%d.%d; using %d.%d.%d\n"
"Compiled with HarfBuzz version %s; using %s\n"
"Compiled with libpng version %s; using %s\n"
- "Compiled with poppler version %s\n"
#ifdef XETEX_MAC
"Using Mac OS X Core Text and Cocoa frameworks\n"
#else
@@ -184,7 +182,6 @@ void initversionstring(char **versions)
+ strlen(hb_version_string())
+ strlen(PNG_LIBPNG_VER_STRING)
+ strlen(png_libpng_ver)
- + strlen(POPPLER_VERSION)
#ifndef XETEX_MAC
+ 6 * 3 /* for fontconfig version #s (won't really need 3 digits per field!) */
#endif
@@ -214,7 +211,7 @@ void initversionstring(char **versions)
GR2_VERSION_MAJOR, GR2_VERSION_MINOR, GR2_VERSION_BUGFIX,
grMajor, grMinor, grBugfix,
HB_VERSION_STRING, hb_version_string(),
- PNG_LIBPNG_VER_STRING, png_libpng_ver, POPPLER_VERSION
+ PNG_LIBPNG_VER_STRING, png_libpng_ver
#ifndef XETEX_MAC
,
FC_VERSION / 10000, (FC_VERSION % 10000) / 100, FC_VERSION % 100,

View file

@ -0,0 +1,12 @@
diff -up texlive-base-20200327/source/texk/kpathsea/texmf.cnf.me texlive-base-20200327/source/texk/kpathsea/texmf.cnf
--- texlive-base-20200327/source/texk/kpathsea/texmf.cnf.me 2020-09-23 09:35:26.729192291 +0200
+++ texlive-base-20200327/source/texk/kpathsea/texmf.cnf 2020-09-23 09:36:01.849651692 +0200
@@ -786,7 +786,7 @@ texmf_casefold_search = 1
% For some xy-pic samples, you may need as much as 700000 words of memory.
% For the vast majority of documents, 60000 or less will do.
%
-main_memory = 5000000 % words of inimemory available; also applies to inimf&mp
+main_memory = 6000000 % words of inimemory available; also applies to inimf&mp
extra_mem_top = 0 % extra high memory for chars, tokens, etc.
extra_mem_bot = 0 % extra low memory for boxes, glue, breakpoints, etc.

View file

@ -0,0 +1,210 @@
diff -up texlive-base-20200327/source/texk/texlive/linked_scripts/pygmentex/pygmentex.py.10 texlive-base-20200327/source/texk/texlive/linked_scripts/pygmentex/pygmentex.py
--- texlive-base-20200327/source/texk/texlive/linked_scripts/pygmentex/pygmentex.py.10 2014-08-20 17:53:18.000000000 -0400
+++ texlive-base-20200327/source/texk/texlive/linked_scripts/pygmentex/pygmentex.py 2021-03-18 14:34:36.879392389 -0400
@@ -1,4 +1,4 @@
-#! /usr/bin/env python2
+#! /usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@@ -8,11 +8,11 @@
PygmenTeX is a converter that do syntax highlighting of snippets of
source code extracted from a LaTeX file.
- :copyright: Copyright 2014 by José Romildo Malaquias
+ :copyright: Copyright 2020 by José Romildo Malaquias
:license: BSD, see LICENSE for details
"""
-__version__ = '0.8'
+__version__ = '0.10'
__docformat__ = 'restructuredtext'
import sys
@@ -27,6 +27,7 @@ from pygments.formatters.latex import La
from pygments.util import get_bool_opt, get_int_opt
from pygments.lexer import Lexer
from pygments.token import Token
+from pygments.util import guess_decode
###################################################
# The following code is in >=pygments-2.0
@@ -56,24 +57,24 @@ class EnhancedLatexFormatter(LatexFormat
realoutfile = outfile
outfile = StringIO()
- outfile.write(u'\\begin{Verbatim}[commandchars=\\\\\\{\\}')
+ outfile.write(r'\begin{Verbatim}[commandchars=\\\{\}')
if self.linenos:
start, step = self.linenostart, self.linenostep
- outfile.write(u',numbers=left' +
- (start and u',firstnumber=%d' % start or u'') +
- (step and u',stepnumber=%d' % step or u''))
+ outfile.write(',numbers=left' +
+ (start and ',firstnumber=%d' % start or '') +
+ (step and ',stepnumber=%d' % step or ''))
if self.mathescape or self.texcomments or self.escapeinside:
- outfile.write(u',codes={\\catcode`\\$=3\\catcode`\\^=7\\catcode`\\_=8}')
+ outfile.write(r',codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8}')
if self.verboptions:
- outfile.write(u',' + self.verboptions)
- outfile.write(u']\n')
+ outfile.write(',' + self.verboptions)
+ outfile.write(']\n')
for ttype, value in tokensource:
if ttype in Token.Comment:
if self.texcomments:
# Try to guess comment starting lexeme and escape it ...
start = value[0:1]
- for i in xrange(1, len(value)):
+ for i in range(1, len(value)):
if start[0] != value[i]:
break
start += value[i]
@@ -129,7 +130,7 @@ class EnhancedLatexFormatter(LatexFormat
else:
outfile.write(value)
- outfile.write(u'\\end{Verbatim}\n')
+ outfile.write('\\end{Verbatim}\n')
if self.full:
realoutfile.write(DOC_TEMPLATE %
@@ -232,7 +233,7 @@ DISPLAY_LINENOS_SNIPPET_TEMPLATE = r'''
'''
-def pyg(outfile, n, opts, extra_opts, text, usedstyles, inline_delim = ''):
+def pyg(outfile, outencoding, n, opts, extra_opts, text, usedstyles, inline_delim = ''):
try:
lexer = get_lexer_by_name(opts['lang'])
except ClassNotFound as err:
@@ -260,27 +261,8 @@ def pyg(outfile, n, opts, extra_opts, te
if tabsize:
lexer.tabsize = tabsize
- encoding = opts['encoding']
- if encoding == 'guess':
- try:
- import chardet
- except ImportError:
- try:
- text = text.decode('utf-8')
- if text.startswith(u'\ufeff'):
- text = text[len(u'\ufeff'):]
- encoding = 'utf-8'
- except UnicodeDecodeError:
- text = text.decode('latin1')
- encoding = 'latin1'
- else:
- encoding = chardet.detect(text)['encoding']
- text = text.decode(encoding)
- else:
- text = text.decode(encoding)
-
lexer.encoding = ''
- _fmter.encoding = encoding
+ # _fmter.encoding = outencoding
stylename = opts['sty']
@@ -367,7 +349,7 @@ _re_input = re.compile(
r'^<@@pygmented@input@(\d+)\n(.*)\n([\s\S]*?)\n>@@pygmented@input@\1$',
re.MULTILINE)
-def convert(code, outfile):
+def convert(code, outfile, outencoding):
"""
Convert ``code``
"""
@@ -393,6 +375,7 @@ def convert(code, outfile):
m = _re_inline.match(code, pos)
if m:
pyg(outfile,
+ outencoding,
m.group(1),
parse_opts(opts.copy(), m.group(2)),
'',
@@ -405,6 +388,7 @@ def convert(code, outfile):
m = _re_display.match(code, pos)
if m:
pyg(outfile,
+ outencoding,
m.group(1),
parse_opts(opts.copy(), m.group(2)),
'',
@@ -415,15 +399,16 @@ def convert(code, outfile):
m = _re_input.match(code, pos)
if m:
+ opts_new = parse_opts(opts, m.group(2))
try:
- filecontents = open(m.group(3), 'rb').read()
+ filecontents, inencoding = read_input(m.group(3), opts_new['encoding'])
except Exception as err:
- sys.stderr.write('Error: cannot read input file: ')
- sys.stderr.write(str(err))
+ print('Error: cannot read input file: ', err, file=sys.stderr)
else:
pyg(outfile,
+ outencoding,
m.group(1),
- parse_opts(opts, m.group(2)),
+ opts_new,
"",
filecontents,
usedstyles)
@@ -435,6 +420,16 @@ def convert(code, outfile):
outfile.write(GENERIC_DEFINITIONS_2)
+def read_input(filename, encoding):
+ with open(filename, 'rb') as infp:
+ code = infp.read()
+
+ if not encoding or encoding == 'guess':
+ code, encoding = guess_decode(code)
+ else:
+ code = code.decode(encoding)
+
+ return code, encoding
USAGE = """\
@@ -486,7 +481,7 @@ def main(args = sys.argv):
return 0
if opts.pop('-V', None) is not None:
- print('PygmenTeX version %s, (c) 2010 by José Romildo.' % __version__)
+ print('PygmenTeX version %s, (c) 2020 by José Romildo.' % __version__)
return 0
if len(args) != 1:
@@ -494,10 +489,9 @@ def main(args = sys.argv):
return 2
infn = args[0]
try:
- code = open(infn, 'rb').read()
+ code, inencoding = read_input(infn, "guess")
except Exception as err:
- sys.stderr.write('Error: cannot read input file: ')
- sys.stderr.write(str(err))
+ print('Error: cannot read input file: ', err, file=sys.stderr)
return 1
outfn = opts.pop('-o', None)
@@ -507,11 +501,10 @@ def main(args = sys.argv):
try:
outfile = open(outfn, 'w')
except Exception as err:
- sys.stderr.write('Error: cannot open output file: ')
- sys.stderr.write(str(err))
+ print('Error: cannot open output file: ', err, file=sys.stderr)
return 1
- convert(code, outfile)
+ convert(code, outfile, inencoding)
return 0

View file

@ -0,0 +1,159 @@
diff -up texlive-base-20210325/source/configure.poppler-xpdf-fix texlive-base-20210325/source/configure
--- texlive-base-20210325/source/configure.poppler-xpdf-fix 2021-03-24 17:28:22.000000000 -0400
+++ texlive-base-20210325/source/configure 2021-05-10 15:21:08.254142588 -0400
@@ -21497,7 +21497,27 @@ if test "x$with_mpfr_libdir" != x && tes
MPFR_LIBS="-L$with_mpfr_libdir $MPFR_LIBS"
fi
-: "kpse_xpdf_system_flags - no-op"
+if $PKG_CONFIG poppler --atleast-version=0.30; then
+ POPPLER_INCLUDES=`$PKG_CONFIG poppler --cflags`
+ POPPLER_LIBS=`$PKG_CONFIG poppler --libs`
+elif test "x$need_poppler:$with_system_poppler" = xyes:yes; then
+ as_fn_error $? "did not find poppler 0.30 or better" "$LINENO" 5
+fi
+
+POPPLER_VERSION='-DPOPPLER_VERSION=\"'`$PKG_CONFIG poppler --modversion`'\"'
+POPPLER_INCLUDES="$POPPLER_VERSION $POPPLER_INCLUDES"
+
+if $PKG_CONFIG poppler --atleast-version=0.12; then
+ XPDF_INCLUDES=`$PKG_CONFIG poppler --cflags`
+ XPDF_LIBS=`$PKG_CONFIG poppler --libs`
+elif test "x$need_xpdf:$with_system_xpdf" = xyes:yes; then
+ as_fn_error $? "did not find poppler 0.12 or better" "$LINENO" 5
+fi
+
+POPPLER_VERSION='-DPOPPLER_VERSION=\"'`$PKG_CONFIG poppler --modversion`'\"'
+XPDF_INCLUDES="$POPPLER_VERSION $XPDF_INCLUDES"
+
+# : "kpse_xpdf_system_flags - no-op"
if $PKG_CONFIG zziplib --atleast-version=0.12; then
ZZIPLIB_INCLUDES=`$PKG_CONFIG zziplib --cflags`
diff -up texlive-base-20210325/source/texk/web2c/configure.poppler-xpdf-fix texlive-base-20210325/source/texk/web2c/configure
--- texlive-base-20210325/source/texk/web2c/configure.poppler-xpdf-fix 2021-02-16 22:03:54.000000000 -0500
+++ texlive-base-20210325/source/texk/web2c/configure 2021-05-10 15:21:08.256142617 -0400
@@ -25500,9 +25500,21 @@ fi
##tldbg _KPSE_LIB_FLAGS: Setup xpdf (-lxpdf) flags.
echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=xpdf, libname=xpdf, options=, tlincl=-DPDF_PARSER_ONLY -IBLD/libs/xpdf -IBLD/libs/xpdf/goo -IBLD/libs/xpdf/xpdf, tllib=BLD/libs/xpdf/libxpdf.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/xpdf/xpdf/Stream.h.' >&5
##tldbg _KPSE_LIB_FLAGS_TL: xpdf (xpdf) .
-: "kpse_xpdf_options - no-op"
+# Check whether --with-system-xpdf was given.
+if test "${with_system_xpdf+set}" = set; then :
+ withval=$with_system_xpdf;
+fi
+
if test "x$with_system_xpdf" = xyes; then
- : "kpse_xpdf_system_flags - no-op"
+ if $PKG_CONFIG poppler --atleast-version=0.12; then
+ XPDF_INCLUDES=`$PKG_CONFIG poppler --cflags`
+ XPDF_LIBS=`$PKG_CONFIG poppler --libs`
+elif test "x$need_xpdf:$with_system_xpdf" = xyes:yes; then
+ as_fn_error $? "did not find poppler 0.12 or better" "$LINENO" 5
+fi
+
+POPPLER_VERSION='-DPOPPLER_VERSION=\"'`$PKG_CONFIG poppler --modversion`'\"'
+XPDF_INCLUDES="$POPPLER_VERSION $XPDF_INCLUDES"
else
XPDF_INCLUDES="-DPDF_PARSER_ONLY -I$kpse_BLD/libs/xpdf -I$kpse_BLD/libs/xpdf/goo -I$kpse_BLD/libs/xpdf/xpdf"
XPDF_LIBS="$kpse_BLD/libs/xpdf/libxpdf.a"
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-xpdf-fix texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-xpdf-fix 2021-05-10 15:56:50.770034767 -0400
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc 2021-05-10 16:05:07.939283063 -0400
@@ -49,10 +49,16 @@ POPPLER_VERSION should be defined.
#include <string.h>
#include <ctype.h>
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
+#ifdef POPPLER_VERSION
+#include <dirent.h>
+#include <poppler-config.h>
+#include <goo/GooString.h>
+#include <goo/gmem.h>
+#include <goo/gfile.h>
+#define GString GooString
+#else
+#error POPPLER_VERSION should be defined.
+#endif
#include <assert.h>
#include "Object.h"
@@ -676,7 +682,7 @@ static void writeEncodings()
}
for (r = encodingList; r != 0; r = n) {
n = r->next;
- delete r->font;
+ r->font->decRefCnt();
delete r;
}
}
@@ -715,7 +721,7 @@ read_pdf_info(char *image_name, char *pa
PdfDocument *pdf_doc;
Page *page;
const PDFRectangle *pagebox;
- float pdf_version_found, pdf_version_wanted;
+ int pdf_major_version_found, pdf_minor_version_found;
// initialize
if (!isInit) {
globalParams = std::unique_ptr<GlobalParams>(new GlobalParams());
@@ -730,17 +736,18 @@ read_pdf_info(char *image_name, char *pa
// this works only for PDF 1.x -- but since any versions of PDF newer
// than 1.x will not be backwards compatible to PDF 1.x, pdfTeX will
// then have to changed drastically anyway.
- pdf_version_found = pdf_doc->doc->getPDFVersion();
- pdf_version_wanted = major_pdf_version_wanted + (minor_pdf_version_wanted * 0.1);
- if (pdf_version_found > pdf_version_wanted + 0.01) {
- char msg[] =
- "PDF inclusion: found PDF version <%.1f>, but at most version <%.1f> allowed";
+ pdf_major_version_found = pdf_doc->doc->getPDFMajorVersion();
+ pdf_minor_version_found = pdf_doc->doc->getPDFMinorVersion();
+ if ((pdf_major_version_found > major_pdf_version_wanted)
+ || (pdf_minor_version_found > minor_pdf_version_wanted)) {
+ const char *msg =
+ "PDF inclusion: found PDF version <%d.%d>, but at most version <%d.%d> allowed";
if (pdf_inclusion_errorlevel > 0) {
- pdftex_fail(msg, pdf_version_found, pdf_version_wanted);
+ pdftex_fail(msg, pdf_major_version_found, pdf_minor_version_found, major_pdf_version_wanted, minor_pdf_version_wanted);
} else if (pdf_inclusion_errorlevel < 0) {
; /* do nothing */
} else { /* = 0, give warning */
- pdftex_warn(msg, pdf_version_found, pdf_version_wanted);
+ pdftex_warn(msg, pdf_major_version_found, pdf_minor_version_found, major_pdf_version_wanted, minor_pdf_version_wanted);
}
}
epdf_num_pages = pdf_doc->doc->getCatalog()->getNumPages();
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-xpdf-fix texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-xpdf-fix 2021-05-10 15:26:43.545060694 -0400
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc 2021-05-10 16:06:58.614896618 -0400
@@ -41,10 +41,15 @@ POPPLER_VERSION should be defined.
#include <string.h>
#include <ctype.h>
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
+#ifdef POPPLER_VERSION
+#define GString GooString
+#include <dirent.h>
+#include <goo/GooString.h>
+#include <goo/gmem.h>
+#include <goo/gfile.h>
+#else
+#error POPPLER_VERSION should be defined.
+#endif
#include <assert.h>
#include "Object.h"
@@ -183,7 +188,7 @@ int main(int argc, char *argv[])
if (n == e->gen)
localOffset = obj2.getInt();
}
-#if defined(XPDF304)
+#if defined(POPPLER_VERSION) || defined(XPDF304)
while (str->getChar() != EOF) ;
#else /* xpdf 4.00 */
lexer->skipToEOF();

View file

@ -0,0 +1,168 @@
diff -U0 texlive-base-20210325/source/texk/mendexk/ChangeLog.archfix texlive-base-20210325/source/texk/mendexk/ChangeLog
--- texlive-base-20210325/source/texk/mendexk/ChangeLog.archfix 2021-05-27 15:01:46.888501972 -0400
+++ texlive-base-20210325/source/texk/mendexk/ChangeLog 2021-05-27 15:02:10.669627643 -0400
@@ -0,0 +1,13 @@
+2021-05-09 Karl Berry <karl@freefriends.org>
+
+ * mendex.h (page.attr): use int, not char, since we do signed
+ comparison and aarch64 apparently treats char as unsigned.
+ (index.words): use unsigned char for consistency.
+ * fwrite.c (printpage): factor out beginning/end page values.
+ * tests/rangetwo.idx,
+ * tests/rangetwo.ind,
+ * tests/rangetwo.ist: new simple test.
+ * tests/mendex.test: run the rangetwo test.
+ Report from Johannes Hielscher,
+ https://tug.org/pipermail/tlbuild/2021q1/004873.html.
+
diff -up texlive-base-20210325/source/texk/mendexk/fwrite.c.archfix texlive-base-20210325/source/texk/mendexk/fwrite.c
--- texlive-base-20210325/source/texk/mendexk/fwrite.c.archfix 2021-05-27 15:02:37.867771347 -0400
+++ texlive-base-20210325/source/texk/mendexk/fwrite.c 2021-05-27 15:07:00.875160968 -0400
@@ -326,7 +326,11 @@ static void printpage(struct index *ind,
for(j=0;j<ind[num].num;j++) {
cc=range_check(ind[num],j,lbuff);
if (cc>j) {
- if (pnumconv(ind[num].p[j].page,ind[num].p[j].attr[0])==pnumconv(ind[num].p[cc].page,ind[num].p[cc].attr[0])) {
+ int epage = pnumconv(ind[num].p[cc].page,
+ ind[num].p[cc].attr[0]);
+ int bpage = pnumconv(ind[num].p[j].page,
+ ind[num].p[j].attr[0]);
+ if (epage==bpage) {
j=cc-1;
continue;
}
@@ -337,20 +341,18 @@ static void printpage(struct index *ind,
if (strlen(ind[num].p[j].enc)>0) {
SPRINTF(buff,"%s%s%s",encap_prefix,ind[num].p[j].enc,encap_infix);
}
- if (strlen(suffix_3p)>0 && (pnumconv(ind[num].p[cc].page,ind[num].p[cc].attr[0])-pnumconv(ind[num].p[j].page,ind[num].p[j].attr[0]))==2) {
- SAPPENDF(buff,"%s",ind[num].p[j].page);
+ /* print beginning of range */
+ SAPPENDF(buff,"%s",ind[num].p[j].page);
+ if (strlen(suffix_3p)>0 && (epage-bpage)==2) {
SAPPENDF(buff,"%s",suffix_3p);
}
- else if (strlen(suffix_mp)>0 && (pnumconv(ind[num].p[cc].page,ind[num].p[cc].attr[0])-pnumconv(ind[num].p[j].page,ind[num].p[j].attr[0]))>=2) {
- SAPPENDF(buff,"%s",ind[num].p[j].page);
+ else if (strlen(suffix_mp)>0 && (epage-bpage)>=2) {
SAPPENDF(buff,"%s",suffix_mp);
}
- else if (strlen(suffix_2p)>0 && (pnumconv(ind[num].p[cc].page,ind[num].p[cc].attr[0])-pnumconv(ind[num].p[j].page,ind[num].p[j].attr[0]))==1) {
- SAPPENDF(buff,"%s",ind[num].p[j].page);
+ else if (strlen(suffix_2p)>0 && (epage-bpage)==1) {
SAPPENDF(buff,"%s",suffix_2p);
}
else {
- SAPPENDF(buff,"%s",ind[num].p[j].page);
SAPPENDF(buff,"%s",delim_r);
SAPPENDF(buff,"%s",ind[num].p[cc].page);
}
diff -up texlive-base-20210325/source/texk/mendexk/mendex.h.archfix texlive-base-20210325/source/texk/mendexk/mendex.h
--- texlive-base-20210325/source/texk/mendexk/mendex.h.archfix 2021-05-27 15:07:31.173321042 -0400
+++ texlive-base-20210325/source/texk/mendexk/mendex.h 2021-05-27 15:07:50.429422834 -0400
@@ -14,12 +14,12 @@
struct page {
char *page;
char *enc;
- char attr[3];
+ int attr[3];
};
struct index {
int num;
- char words;
+ unsigned char words;
char *org[3];
char *dic[3];
char *idx[3];
diff -up texlive-base-20210325/source/texk/mendexk/tests/mendex.test.archfix texlive-base-20210325/source/texk/mendexk/tests/mendex.test
--- texlive-base-20210325/source/texk/mendexk/tests/mendex.test.archfix 2021-05-27 15:08:12.848541283 -0400
+++ texlive-base-20210325/source/texk/mendexk/tests/mendex.test 2021-05-27 15:13:28.110189451 -0400
@@ -1,6 +1,6 @@
#! /bin/sh -vx
# $Id: mendex.test 58575 2021-03-21 08:54:52Z takuji $
-# Copyright 2017 Karl Berry <tex-live@tug.org>
+# Copyright 2017-2021 Karl Berry <tex-live@tug.org>
# Copyright 2013 Peter Breitenlohner <tex-live@tug.org>
# You may freely use, modify and/or distribute this file.
@@ -24,13 +24,21 @@ cat $srcdir/tests/uni.idx | \
>uni.ind2 2>uni.ilg2 \
&& diff $srcdir/tests/uni.ind uni.ind2 || exit 1
-# test for page_precedence
-./mendex -s $srcdir/tests/pprec0.ist $srcdir/tests/pprecA.idx -o pprecA-0.ind1 -t pprecA-0.ilg \
+# test for two-element range suffix_2p
+./mendex -s $srcdir/tests/rangetwo.ist $srcdir/tests/rangetwo.idx \
+ -o rangetwo.ind1 -t rangetwo.ilg \
+ && diff $srcdir/tests/rangetwo.ind rangetwo.ind1 || exit 1
+
+# test for page_precedence and suffix_3p
+./mendex -s $srcdir/tests/pprec0.ist $srcdir/tests/pprecA.idx \
+ -o pprecA-0.ind1 -t pprecA-0.ilg \
&& diff $srcdir/tests/pprecA-0.ind pprecA-0.ind1 || exit 1
-./mendex -s $srcdir/tests/pprec1.ist $srcdir/tests/pprecA.idx -o pprecA-1.ind1 -t pprecA-1.ilg \
+./mendex -s $srcdir/tests/pprec1.ist $srcdir/tests/pprecA.idx \
+ -o pprecA-1.ind1 -t pprecA-1.ilg \
&& diff $srcdir/tests/pprecA-1.ind pprecA-1.ind1 || exit 1
-./mendex -s $srcdir/tests/pprec2.ist $srcdir/tests/pprecA.idx -o pprecA-2.ind1 -t pprecA-2.ilg \
+./mendex -s $srcdir/tests/pprec2.ist $srcdir/tests/pprecA.idx \
+ -o pprecA-2.ind1 -t pprecA-2.ilg \
&& diff $srcdir/tests/pprecA-2.ind pprecA-2.ind1 || exit 1
diff -up texlive-base-20210325/source/texk/mendexk/tests/rangetwo.idx.archfix texlive-base-20210325/source/texk/mendexk/tests/rangetwo.idx
--- texlive-base-20210325/source/texk/mendexk/tests/rangetwo.idx.archfix 2021-05-27 15:14:09.048403077 -0400
+++ texlive-base-20210325/source/texk/mendexk/tests/rangetwo.idx 2021-05-27 15:14:03.416373688 -0400
@@ -0,0 +1,2 @@
+\indexentry{entryA}{1}
+\indexentry{entryA}{2}
diff -up texlive-base-20210325/source/texk/mendexk/tests/rangetwo.ind.archfix texlive-base-20210325/source/texk/mendexk/tests/rangetwo.ind
--- texlive-base-20210325/source/texk/mendexk/tests/rangetwo.ind.archfix 2021-05-27 15:14:30.601515549 -0400
+++ texlive-base-20210325/source/texk/mendexk/tests/rangetwo.ind 2021-05-27 15:14:59.970668807 -0400
@@ -0,0 +1,5 @@
+\begin{theindex}
+
+ \item entryA, 1[[sfx2p]]
+
+\end{theindex}
diff -up texlive-base-20210325/source/texk/mendexk/tests/rangetwo.ist.archfix texlive-base-20210325/source/texk/mendexk/tests/rangetwo.ist
--- texlive-base-20210325/source/texk/mendexk/tests/rangetwo.ist.archfix 2021-05-27 15:15:24.712797920 -0400
+++ texlive-base-20210325/source/texk/mendexk/tests/rangetwo.ist 2021-05-27 15:15:51.412937250 -0400
@@ -0,0 +1,2 @@
+suffix_2p "[[sfx2p]]"
+
diff -U0 texlive-base-20210325/source/texk/upmendex/ChangeLog.archfix texlive-base-20210325/source/texk/upmendex/ChangeLog
--- texlive-base-20210325/source/texk/upmendex/ChangeLog.archfix 2021-05-27 14:58:11.836365567 -0400
+++ texlive-base-20210325/source/texk/upmendex/ChangeLog 2021-05-27 14:59:42.613845327 -0400
@@ -0,0 +1,11 @@
+2021-05-09 Karl Berry <karl@freefriends.org>
+ * mendex.h (page.attr): use int, not char, since we do signed
+ comparison and aarch64 apparently treats char as unsigned.
+ (index.words): use unsigned char for consistency.
+
+ Same fixes as for mendex; see mendexk/ChangeLog.
+ Report from Johannes Hielscher,
+ https://tug.org/pipermail/tlbuild/2021q1/004873.html
+ and follow-up:
+ https://tug.org/pipermail/tlbuild/2021q2/004911.html
+
diff -up texlive-base-20210325/source/texk/upmendex/mendex.h.archfix texlive-base-20210325/source/texk/upmendex/mendex.h
--- texlive-base-20210325/source/texk/upmendex/mendex.h.archfix 2021-05-27 14:59:52.774899013 -0400
+++ texlive-base-20210325/source/texk/upmendex/mendex.h 2021-05-27 15:01:33.381430577 -0400
@@ -14,12 +14,12 @@
struct page {
char *page;
char *enc;
- char attr[3];
+ int attr[3];
};
struct index {
int num;
- char words;
+ unsigned char words;
UChar *dic[3];
UChar *org[3];
UChar *idx[3];

View file

@ -0,0 +1,10 @@
diff -up texlive-base-20210325/source/utils/asymptote/patches/dvipdf.no-setpdfwrite texlive-base-20210325/source/utils/asymptote/patches/dvipdf
--- texlive-base-20210325/source/utils/asymptote/patches/dvipdf.no-setpdfwrite 2021-06-21 10:05:10.392585479 -0400
+++ texlive-base-20210325/source/utils/asymptote/patches/dvipdf 2021-06-21 10:05:30.969698895 -0400
@@ -50,5 +50,5 @@ fi
# We have to include the options twice because -I only takes effect if it
# appears before other options.
-exec dvips $DVIPSOPTIONS -q -f "$infile" | $GS_EXECUTABLE $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr -sOutputFile="$outfile" $OPTIONS -c .setpdfwrite -
+exec dvips $DVIPSOPTIONS -q -f "$infile" | $GS_EXECUTABLE $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr -sOutputFile="$outfile" $OPTIONS -c 3000000 setvmthreshold -

View file

@ -0,0 +1,34 @@
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.debug texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.debug 2022-01-20 10:25:58.454233201 -0500
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc 2022-01-20 12:57:04.241513707 -0500
@@ -962,21 +962,30 @@ A change
does not improve the situation.
The changes below seem to work fine.
*/
+ if (page->getGroup() != NULL) {
+ groupDict = Object(page->getGroup());
+ } else {
+ pdftex_fail("PDF inclusion: getGroup failed");
+ }
+/*
// begin modification
groupDict = pageDict->lookup("Group");
Dict *dic1 = page->getGroup();
Dict *dic2 = groupDict.getDict();
// replace dic2 in groupDict with dic1
l = dic2->getLength();
+ pdftex_warn("dic2 length is %d", l);
for (i = 0; i < l; i++) {
groupDict.dictRemove(dic2->getKey(i));
}
l = dic1->getLength();
+ pdftex_warn("dic1 length is %d", l);
for (i = 0; i < l; i++) {
groupDict.dictAdd(dic1->getKey(i),
dic1->getValNF(i).copy());
}
// end modification
+*/
pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval);
}
}

View file

@ -0,0 +1,49 @@
diff -up texlive-base-20210325/source/texk/web2c/Makefile.in.poppler22 texlive-base-20210325/source/texk/web2c/Makefile.in
--- texlive-base-20210325/source/texk/web2c/Makefile.in.poppler22 2022-01-15 16:57:15.020632269 -0500
+++ texlive-base-20210325/source/texk/web2c/Makefile.in 2022-01-15 17:00:20.852711238 -0500
@@ -4573,7 +4573,7 @@ ttf2afm_tests = pdftexdir/ttf2afm.test
# Force Automake to use CXXLD for linking
nodist_EXTRA_pdftosrc_SOURCES = dummy.cxx
pdftosrc_CPPFLAGS = $(pdftex_cppflags)
-pdftosrc_CXXFLAGS = $(WARNING_CXXFLAGS)
+pdftosrc_CXXFLAGS = $(WARNING_CXXFLAGS) -std=c++17
pdftosrc_SOURCES = pdftexdir/pdftosrc.cc
pdftosrc_LDADD = $(pdftex_ldadd) $(LDADD)
pdftosrc_DEPENDENCIES = $(pdftex_dependencies)
@@ -18343,7 +18343,7 @@ xetex-xetex-pool.obj: xetex-pool.c
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
pdftexdir/libpdftex_a-pdftoepdf.o: pdftexdir/pdftoepdf.cc
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpdftex_a_CPPFLAGS) $(CPPFLAGS) $(libpdftex_a_CXXFLAGS) $(CXXFLAGS) -MT pdftexdir/libpdftex_a-pdftoepdf.o -MD -MP -MF pdftexdir/$(DEPDIR)/libpdftex_a-pdftoepdf.Tpo -c -o pdftexdir/libpdftex_a-pdftoepdf.o `test -f 'pdftexdir/pdftoepdf.cc' || echo '$(srcdir)/'`pdftexdir/pdftoepdf.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpdftex_a_CPPFLAGS) $(CPPFLAGS) -std=c++17 $(libpdftex_a_CXXFLAGS) $(CXXFLAGS) -MT pdftexdir/libpdftex_a-pdftoepdf.o -MD -MP -MF pdftexdir/$(DEPDIR)/libpdftex_a-pdftoepdf.Tpo -c -o pdftexdir/libpdftex_a-pdftoepdf.o `test -f 'pdftexdir/pdftoepdf.cc' || echo '$(srcdir)/'`pdftexdir/pdftoepdf.cc
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) pdftexdir/$(DEPDIR)/libpdftex_a-pdftoepdf.Tpo pdftexdir/$(DEPDIR)/libpdftex_a-pdftoepdf.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='pdftexdir/pdftoepdf.cc' object='pdftexdir/libpdftex_a-pdftoepdf.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler22 texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler22 2022-01-14 15:01:29.811105995 -0500
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc 2022-01-14 15:01:29.831106120 -0500
@@ -964,17 +964,17 @@ The changes below seem to work fine.
*/
// begin modification
groupDict = pageDict->lookup("Group");
- const Dict& dic1 = page->getGroup();
- const Dict& dic2 = groupDict.getDict();
+ Dict *dic1 = page->getGroup();
+ Dict *dic2 = groupDict.getDict();
// replace dic2 in groupDict with dic1
- l = dic2.getLength();
+ l = dic2->getLength();
for (i = 0; i < l; i++) {
- groupDict.dictRemove(dic2.getKey(i));
+ groupDict.dictRemove(dic2->getKey(i));
}
- l = dic1.getLength();
+ l = dic1->getLength();
for (i = 0; i < l; i++) {
- groupDict.dictAdd(dic1.getKey(i),
- dic1.getValNF(i).copy());
+ groupDict.dictAdd(dic1->getKey(i),
+ dic1->getValNF(i).copy());
}
// end modification
pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval);

View file

@ -0,0 +1,121 @@
--- texlive-base-20210325/source/configure
+++ texlive-base-20210325/source/configure
@@ -22090,7 +22090,7 @@ $as_echo_n "checking requested system \`
int
main ()
{
-GfxFont *gfxFont; gfxFont->decRefCnt();
+GfxFont *gfxFont; gfxFont->getFlags();
;
return 0;
}
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftosrc.cc
@@ -72,7 +72,7 @@ int main(int argc, char *argv[])
{
char *p, buf[1024];
PDFDoc *doc;
- GString *fileName;
+ std::unique_ptr<GooString> fileName;
Stream *s;
Object srcStream, srcName, catalogDict;
FILE *outfile;
@@ -86,9 +86,9 @@ int main(int argc, char *argv[])
"Usage: pdftosrc <PDF-file> [<stream-object-number>]\n");
exit(1);
}
- fileName = new GString(argv[1]);
+ fileName = std::make_unique<GString>(argv[1]);
globalParams = std::unique_ptr<GlobalParams>(new GlobalParams());
- doc = new PDFDoc(fileName);
+ doc = new PDFDoc(std::move(fileName));
if (!doc->isOk()) {
fprintf(stderr, "Invalid PDF file\n");
exit(1);
@@ -126,7 +126,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Not a Stream object\n");
exit(1);
}
- sprintf(buf, "%s", fileName->c_str());
+ sprintf(buf, "%s", argv[1]);
if ((p = strrchr(buf, '.')) == 0)
p = strchr(buf, 0);
if (objgen == 0)
@@ -136,7 +136,7 @@ int main(int argc, char *argv[])
outname = buf;
} else { // objnum < 0 means we are extracting the XRef table
extract_xref_table = true;
- sprintf(buf, "%s", fileName->c_str());
+ sprintf(buf, "%s", argv[1]);
if ((p = strrchr(buf, '.')) == 0)
p = strchr(buf, 0);
sprintf(p, ".xref");
diff -up texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.spot texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc.spot 2022-08-24 21:21:36.558035301 +0000
+++ texlive-base-20210325/source/texk/web2c/pdftexdir/pdftoepdf.cc 2022-08-24 21:41:04.409172692 +0000
@@ -123,7 +123,7 @@ struct InObj {
struct UsedEncoding {
int enc_objnum;
- GfxFont *font;
+ std::shared_ptr<GfxFont> font;
UsedEncoding *next;
};
@@ -167,8 +167,8 @@ static PdfDocument *find_add_document(ch
p->file_name = xstrdup(file_name);
p->xref = xref = 0;
p->occurences = 0;
- GString *docName = new GString(p->file_name);
- p->doc = new PDFDoc(docName); // takes ownership of docName
+ // GString *docName = new GString(p->file_name);
+ p->doc = new PDFDoc(std::make_unique<GooString>(p->file_name)); // takes ownership of docName
if (!p->doc->isOk() || !p->doc->okToPrint()) {
pdftex_fail("xpdf: reading PDF image failed");
}
@@ -204,7 +204,7 @@ static void delete_document(PdfDocument
// --------------------------------------------------------------------
-static int addEncoding(GfxFont * gfont)
+static int addEncoding(std::shared_ptr<GfxFont> gfont)
{
UsedEncoding *n;
n = new UsedEncoding;
@@ -395,7 +395,8 @@ static void copyFont(const char *tag, Ob
{
Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
stemV;
- GfxFont *gfont;
+ // GfxFont *gfont;
+ std::shared_ptr<GfxFont> gfont;
fd_entry *fd;
fm_entry *fontmap;
// Check whether the font has already been embedded before analysing it.
@@ -666,6 +667,7 @@ static void writeEncodings()
UsedEncoding *r, *n;
char *glyphNames[256], *s;
int i;
+
for (r = encodingList; r != 0; r = r->next) {
for (i = 0; i < 256; i++) {
if (r->font->isCIDFont()) {
@@ -673,7 +675,8 @@ static void writeEncodings()
("PDF inclusion: CID fonts are not supported"
" (try to disable font replacement to fix this)");
}
- if ((s = (char *) ((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
+ const GfxFont *const font = r->font.get();
+ if ((s = (char *) ((Gfx8BitFont *) font)->getCharName(i)) != 0)
glyphNames[i] = s;
else
glyphNames[i] = notdef;
@@ -682,7 +685,7 @@ static void writeEncodings()
}
for (r = encodingList; r != 0; r = n) {
n = r->next;
- r->font->decRefCnt();
+ // r->font->decRefCnt();
delete r;
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,12 @@
diff -up texlive-base-20220321/source/texk/kpathsea/texmf.cnf.out_of_memory texlive-base-20220321/source/texk/kpathsea/texmf.cnf
--- texlive-base-20220321/source/texk/kpathsea/texmf.cnf.out_of_memory 2022-04-24 15:50:46.472711270 -0400
+++ texlive-base-20220321/source/texk/kpathsea/texmf.cnf 2022-04-24 15:51:47.213026575 -0400
@@ -789,7 +789,7 @@ texmf_casefold_search = 1
% To increase space for boxes (as might be needed by, e.g., PiCTeX),
% increase extra_mem_bot.
%
-main_memory = 5000000 % words of inimemory available; also applies to inimf&mp
+main_memory = 6000000 % words of inimemory available; also applies to inimf&mp
extra_mem_top = 0 % extra high memory for chars, tokens, etc.
extra_mem_bot = 0 % extra low memory for boxes, glue, breakpoints, etc.

View file

@ -0,0 +1,47 @@
diff -up texlive-base-20220321/source/texk/web2c/pdftexdir/pdftoepdf.cc.header-order-fix texlive-base-20220321/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20220321/source/texk/web2c/pdftexdir/pdftoepdf.cc.header-order-fix 2023-01-31 12:53:39.214112015 -0500
+++ texlive-base-20220321/source/texk/web2c/pdftexdir/pdftoepdf.cc 2023-01-31 12:54:07.175413160 -0500
@@ -17,6 +17,11 @@ You should have received a copy of the G
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+/*
+Load aconf.h first to ensure _FILE_OFFSET_BITS is factored in.
+*/
+#include <aconf.h>
+
/* Do this early in order to avoid a conflict between
MINGW32 <rpcndr.h> defining 'boolean' as 'unsigned char' and
<kpathsea/types.h> defining Pascal's boolean as 'int'.
@@ -31,7 +36,6 @@ with this program. If not, see <http://
#include <string.h>
#include <ctype.h>
-#include <aconf.h>
#include <GString.h>
#include <gmem.h>
#include <gfile.h>
diff -up texlive-base-20220321/source/texk/web2c/pdftexdir/pdftosrc.cc.header-order-fix texlive-base-20220321/source/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-base-20220321/source/texk/web2c/pdftexdir/pdftosrc.cc.header-order-fix 2023-01-31 12:41:21.483166562 -0500
+++ texlive-base-20220321/source/texk/web2c/pdftexdir/pdftosrc.cc 2023-01-31 12:53:15.185853229 -0500
@@ -16,6 +16,12 @@ GNU General Public License for more deta
You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
+/*
+Load aconf.h first to ensure _FILE_OFFSET_BITS is factored in.
+*/
+#include <aconf.h>
+
#include <w2c/config.h>
#include <stdlib.h>
@@ -24,7 +30,6 @@ with this program. If not, see <http://
#include <string.h>
#include <ctype.h>
-#include <aconf.h>
#include <GString.h>
#include <gmem.h>
#include <gfile.h>

View file

@ -0,0 +1,123 @@
diff -up texlive-base-20220321/source/configure.poppler-22.08.0 texlive-base-20220321/source/configure
--- texlive-base-20220321/source/configure.poppler-22.08.0 2022-10-31 09:48:21.875540925 -0400
+++ texlive-base-20220321/source/configure 2022-10-31 09:50:13.731220862 -0400
@@ -23545,7 +23545,7 @@ printf %s "checking requested system \`x
int
main (void)
{
-GfxFont *gfxFont; gfxFont->decRefCnt();
+GfxFont *gfxFont; gfxFont->getFlags();
;
return 0;
}
diff -up texlive-base-20220321/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-22.08.0 texlive-base-20220321/source/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-base-20220321/source/texk/web2c/pdftexdir/pdftoepdf.cc.poppler-22.08.0 2022-10-31 09:48:21.872540907 -0400
+++ texlive-base-20220321/source/texk/web2c/pdftexdir/pdftoepdf.cc 2022-10-31 09:48:21.876540932 -0400
@@ -123,7 +123,7 @@ struct InObj {
struct UsedEncoding {
int enc_objnum;
- GfxFont *font;
+ std::shared_ptr<GfxFont> font;
UsedEncoding *next;
};
@@ -167,8 +167,8 @@ static PdfDocument *find_add_document(ch
p->file_name = xstrdup(file_name);
p->xref = xref = 0;
p->occurences = 0;
- GString *docName = new GString(p->file_name);
- p->doc = new PDFDoc(docName); // takes ownership of docName
+ // GString *docName = new GString(p->file_name);
+ p->doc = new PDFDoc(std::make_unique<GooString>(p->file_name)); // takes ownership of docName
if (!p->doc->isOk() || !p->doc->okToPrint()) {
pdftex_fail("xpdf: reading PDF image failed");
}
@@ -204,7 +204,7 @@ static void delete_document(PdfDocument
// --------------------------------------------------------------------
-static int addEncoding(GfxFont * gfont)
+static int addEncoding(std::shared_ptr<GfxFont> gfont)
{
UsedEncoding *n;
n = new UsedEncoding;
@@ -395,7 +395,8 @@ static void copyFont(const char *tag, Ob
{
Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset,
stemV;
- GfxFont *gfont;
+ // GfxFont *gfont;
+ std::shared_ptr<GfxFont> gfont;
fd_entry *fd;
fm_entry *fontmap;
// Check whether the font has already been embedded before analysing it.
@@ -666,6 +667,7 @@ static void writeEncodings()
UsedEncoding *r, *n;
char *glyphNames[256], *s;
int i;
+
for (r = encodingList; r != 0; r = r->next) {
for (i = 0; i < 256; i++) {
if (r->font->isCIDFont()) {
@@ -673,7 +675,8 @@ static void writeEncodings()
("PDF inclusion: CID fonts are not supported"
" (try to disable font replacement to fix this)");
}
- if ((s = (char *) ((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
+ const GfxFont *const font = r->font.get();
+ if ((s = (char *) ((Gfx8BitFont *) font)->getCharName(i)) != 0)
glyphNames[i] = s;
else
glyphNames[i] = notdef;
@@ -682,7 +685,7 @@ static void writeEncodings()
}
for (r = encodingList; r != 0; r = n) {
n = r->next;
- r->font->decRefCnt();
+ // r->font->decRefCnt();
delete r;
}
}
diff -up texlive-base-20220321/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-22.08.0 texlive-base-20220321/source/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-base-20220321/source/texk/web2c/pdftexdir/pdftosrc.cc.poppler-22.08.0 2022-10-31 09:48:21.866540870 -0400
+++ texlive-base-20220321/source/texk/web2c/pdftexdir/pdftosrc.cc 2022-10-31 09:48:21.876540932 -0400
@@ -72,7 +72,7 @@ int main(int argc, char *argv[])
{
char *p, buf[1024];
PDFDoc *doc;
- GString *fileName;
+ std::unique_ptr<GooString> fileName;
Stream *s;
Object srcStream, srcName, catalogDict;
FILE *outfile;
@@ -86,9 +86,9 @@ int main(int argc, char *argv[])
"Usage: pdftosrc <PDF-file> [<stream-object-number>]\n");
exit(1);
}
- fileName = new GString(argv[1]);
+ fileName = std::make_unique<GString>(argv[1]);
globalParams = std::unique_ptr<GlobalParams>(new GlobalParams());
- doc = new PDFDoc(fileName);
+ doc = new PDFDoc(std::move(fileName));
if (!doc->isOk()) {
fprintf(stderr, "Invalid PDF file\n");
exit(1);
@@ -126,7 +126,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Not a Stream object\n");
exit(1);
}
- sprintf(buf, "%s", fileName->c_str());
+ sprintf(buf, "%s", argv[1]);
if ((p = strrchr(buf, '.')) == 0)
p = strchr(buf, 0);
if (objgen == 0)
@@ -136,7 +136,7 @@ int main(int argc, char *argv[])
outname = buf;
} else { // objnum < 0 means we are extracting the XRef table
extract_xref_table = true;
- sprintf(buf, "%s", fileName->c_str());
+ sprintf(buf, "%s", argv[1]);
if ((p = strrchr(buf, '.')) == 0)
p = strchr(buf, 0);
sprintf(p, ".xref");

View file

@ -0,0 +1,24 @@
diff -up texlive-base-20220321/source/texk/web2c/synctexdir/synctex_parser.c.spotfix texlive-base-20220321/source/texk/web2c/synctexdir/synctex_parser.c
--- texlive-base-20220321/source/texk/web2c/synctexdir/synctex_parser.c.spotfix 2023-01-30 13:53:54.728596407 -0500
+++ texlive-base-20220321/source/texk/web2c/synctexdir/synctex_parser.c 2023-01-30 13:54:03.585695070 -0500
@@ -95,6 +95,8 @@
# endif
# endif
+#define __STDC_WANT_LIB_EXT2__ 1
+
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
diff -up texlive-base-20220321/source/texk/web2c/synctexdir/synctex_parser_utils.c.spotfix texlive-base-20220321/source/texk/web2c/synctexdir/synctex_parser_utils.c
--- texlive-base-20220321/source/texk/web2c/synctexdir/synctex_parser_utils.c.spotfix 2023-01-30 13:56:35.358385753 -0500
+++ texlive-base-20220321/source/texk/web2c/synctexdir/synctex_parser_utils.c 2023-01-30 13:57:11.206785083 -0500
@@ -40,6 +40,8 @@
/* In this file, we find all the functions that may depend on the operating system. */
+#define __STDC_WANT_LIB_EXT2__ 1
+
#include <synctex_parser_utils.h>
#include <stdlib.h>
#include <string.h>

View file

@ -0,0 +1,12 @@
diff -up texlive-base-20220321/source/configure.poppler-22.08.0 texlive-base-20220321/source/configure
--- texlive-base-20220321/source/configure.poppler-22.08.0 2022-10-31 09:48:21.875540925 -0400
+++ texlive-base-20220321/source/configure 2022-10-31 09:50:13.731220862 -0400
@@ -23545,7 +23545,7 @@ printf %s "checking requested system \`x
int
main (void)
{
-GfxFont *gfxFont; gfxFont->decRefCnt();
+GfxFont *gfxFont; gfxFont->getFlags();
;
return 0;
}

View file

@ -0,0 +1,20 @@
diff -up ./scripts/context/perl/mptopdf.pl.fix-scripts ./scripts/context/perl/mptopdf.pl
--- ./scripts/context/perl/mptopdf.pl.fix-scripts 2023-05-25 11:52:19.149713294 -0400
+++ ./scripts/context/perl/mptopdf.pl 2023-05-25 11:53:05.379317240 -0400
@@ -1,5 +1,4 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
- if 0;
+#! /usr/bin/perl -w
# MikTeX users can set environment variable TEXSYSTEM to "miktex".
diff -up ./scripts/thumbpdf/thumbpdf.pl.fix-scripts ./scripts/thumbpdf/thumbpdf.pl
--- ./scripts/thumbpdf/thumbpdf.pl.fix-scripts 2023-05-25 11:53:23.018547680 -0400
+++ ./scripts/thumbpdf/thumbpdf.pl 2023-05-25 11:53:44.086822918 -0400
@@ -1,5 +1,4 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
- if 0;
+#! /usr/bin/perl -w
use strict;
$^W=1; # turn warning on
#

View file

@ -0,0 +1,20 @@
--- texlive-base-20230311/source/texk/web2c/pdftexdir/pdftex.ch.orig 2023-05-02 17:26:43.000000000 +0200
+++ texlive-base-20230311/source/texk/web2c/pdftexdir/pdftex.ch 2024-01-20 21:59:58.382906926 +0100
@@ -179,7 +179,7 @@ pdf_font_type:=xmalloc_array(eight_bits,
pdf_font_attr:=xmalloc_array(str_number, font_max);
pdf_font_blink:=xmalloc_array(internal_font_number, font_max);
pdf_font_elink:=xmalloc_array(internal_font_number, font_max);
-pdf_font_has_space_char:=xmalloc_array(internal_font_number, font_max);
+pdf_font_has_space_char:=xmalloc_array(boolean, font_max);
pdf_font_stretch:=xmalloc_array(integer, font_max);
pdf_font_shrink:=xmalloc_array(integer, font_max);
pdf_font_step:=xmalloc_array(integer, font_max);
@@ -298,7 +298,7 @@ pdf_font_type:=xmalloc_array(eight_bits,
pdf_font_attr:=xmalloc_array(str_number,font_max);
pdf_font_blink:=xmalloc_array(internal_font_number,font_max);
pdf_font_elink:=xmalloc_array(internal_font_number,font_max);
-pdf_font_has_space_char:=xmalloc_array(internal_font_number,font_max);
+pdf_font_has_space_char:=xmalloc_array(boolean,font_max);
pdf_font_stretch:=xmalloc_array(integer,font_max);
pdf_font_shrink:=xmalloc_array(integer,font_max);
pdf_font_step:=xmalloc_array(integer,font_max);

View file

@ -0,0 +1,39 @@
diff -up texlive-base-20180414/source/texk/dvipsk/writet1.c.CVE-2018-17407 texlive-base-20180414/source/texk/dvipsk/writet1.c
--- texlive-base-20180414/source/texk/dvipsk/writet1.c.CVE-2018-17407 2018-10-01 11:03:50.140899732 -0400
+++ texlive-base-20180414/source/texk/dvipsk/writet1.c 2018-10-01 11:04:31.425999765 -0400
@@ -1449,7 +1449,9 @@ static void t1_check_unusual_charstring(
*(strend(t1_buf_array) - 1) = ' ';
t1_getline();
+ alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, T1_BUF_SIZE);
strcat(t1_buf_array, t1_line_array);
+ alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
strcpy(t1_line_array, t1_buf_array);
t1_line_ptr = eol(t1_line_array);
}
diff -up texlive-base-20180414/source/texk/web2c/luatexdir/font/writet1.w.CVE-2018-17407 texlive-base-20180414/source/texk/web2c/luatexdir/font/writet1.w
--- texlive-base-20180414/source/texk/web2c/luatexdir/font/writet1.w.CVE-2018-17407 2018-10-01 11:05:54.404187837 -0400
+++ texlive-base-20180414/source/texk/web2c/luatexdir/font/writet1.w 2018-10-01 11:06:33.537335758 -0400
@@ -1625,7 +1625,9 @@ static void t1_check_unusual_charstring(
if (sscanf(p, "%i", &i) != 1) {
strcpy(t1_buf_array, t1_line_array);
t1_getline();
+ alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, T1_BUF_SIZE);
strcat(t1_buf_array, t1_line_array);
+ alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
strcpy(t1_line_array, t1_buf_array);
t1_line_ptr = eol(t1_line_array);
}
diff -up texlive-base-20180414/source/texk/web2c/pdftexdir/writet1.c.CVE-2018-17407 texlive-base-20180414/source/texk/web2c/pdftexdir/writet1.c
--- texlive-base-20180414/source/texk/web2c/pdftexdir/writet1.c.CVE-2018-17407 2018-10-01 11:06:57.881806099 -0400
+++ texlive-base-20180414/source/texk/web2c/pdftexdir/writet1.c 2018-10-01 11:08:06.424314628 -0400
@@ -1598,7 +1598,9 @@ static void t1_check_unusual_charstring(
*(strend(t1_buf_array) - 1) = ' ';
t1_getline();
+ alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, T1_BUF_SIZE);
strcat(t1_buf_array, t1_line_array);
+ alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
strcpy(t1_line_array, t1_buf_array);
t1_line_ptr = eol(t1_line_array);
}

60
texlive-base-c99-1.patch Normal file
View file

@ -0,0 +1,60 @@
Backuport of upstream r64941: stdlib.h to placate clang16
2022-11-05 Sam James <sam@gentoo.org>
* configure.ac (Ghostscript version): #include <stdlib.h>
to declare exit and placate clang16.
https://tug.org/pipermail/tlbuild/2022q4/005269.html
Index: Build/source/texk/dvisvgm/configure
===================================================================
--- Build/source/texk/dvisvgm/configure (revision 64940)
+++ Build/source/texk/dvisvgm/configure (revision 64941)
@@ -23415,6 +23415,7 @@
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
+ #include <stdlib.h>
#include <ghostscript/iapi.h>
int main () {
gsapi_revision_t r;
Index: Build/source/texk/dvisvgm/configure.ac
===================================================================
--- Build/source/texk/dvisvgm/configure.ac (revision 64940)
+++ Build/source/texk/dvisvgm/configure.ac (revision 64941)
@@ -94,6 +94,7 @@
# query Ghostscript version
AC_MSG_CHECKING([Ghostscript version])
AC_RUN_IFELSE([AC_LANG_SOURCE([#include <stdio.h>
+ #include <stdlib.h>
#include <ghostscript/iapi.h>
int main () {
gsapi_revision_t r;
Index: Build/source/texk/kpathsea/configure
===================================================================
--- Build/source/texk/kpathsea/configure (revision 64940)
+++ Build/source/texk/kpathsea/configure (revision 64941)
@@ -14633,7 +14633,8 @@
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-int fork() { exit(1); }
+#include <stdlib.h>
+ int fork() { exit(1); }
int vfork() { exit(1); }
extern char *getcwd();
char path[100];
Index: Build/source/texk/kpathsea/configure.ac
===================================================================
--- Build/source/texk/kpathsea/configure.ac (revision 64940)
+++ Build/source/texk/kpathsea/configure.ac (revision 64941)
@@ -45,7 +45,8 @@
# We only need to run this if we have getcwd.
AC_CACHE_CHECK([whether getcwd uses fork or vfork],
[kb_cv_func_getcwd_forks],
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([[int fork() { exit(1); }
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
+ int fork() { exit(1); }
int vfork() { exit(1); }
extern char *getcwd();
char path[100];]],

782
texlive-base-c99-2.patch Normal file
View file

@ -0,0 +1,782 @@
Backport of upstream revision r64953:
2022-11-06 Sam James <sam@gentoo.org>
* freetype-src/builds/unix/freetype2.m4: placate clang16.
https://tug.org/pipermail/tlbuild/2022q4/005273.html
2022-11-06 Karl Berry <karl@freefriends.org>
* patch-01-do-not-export-internal-zlib: add.
* patch-04-void-main: add (see ../ChangeLog).
2022-11-06 Sam James <sam@gentoo.org>
* libgd-src/tests/xpm/bug00185.c: placate clang16.
https://tug.org/pipermail/tlbuild/2022q4/005273.html
2022-11-06 Sam James <sam@gentoo.org>
* basename.c: placate clang16.
https://tug.org/pipermail/tlbuild/2022q4/005273.html
2022-11-06 Sam James <sam@gentoo.org>
* pmx-src/libf2c/main.c: placate clang16.
https://tug.org/pipermail/tlbuild/2022q4/005273.html
Index: Build/source/libs/freetype2/TLpatches/patch-01-do-not-export-internal-zlib
===================================================================
--- Build/source/libs/freetype2/TLpatches/patch-01-do-not-export-internal-zlib (nonexistent)
+++ Build/source/libs/freetype2/TLpatches/patch-01-do-not-export-internal-zlib (revision 64953)
@@ -0,0 +1,626 @@
+diff -ur freetype-2.12.1/src/gzip/adler32.c freetype-src/src/gzip/adler32.c
+--- freetype-2.12.1/src/gzip/adler32.c Fri Apr 01 17:24:23 2022
++++ freetype-src/src/gzip/adler32.c Thu May 05 07:23:26 2022
+@@ -62,7 +62,7 @@
+ #endif
+
+ /* ========================================================================= */
+-uLong ZEXPORT adler32_z(
++static uLong ZEXPORT adler32_z(
+ uLong adler,
+ const Bytef *buf,
+ z_size_t len)
+@@ -133,7 +133,7 @@
+ }
+
+ /* ========================================================================= */
+-uLong ZEXPORT adler32(
++static uLong ZEXPORT adler32(
+ uLong adler,
+ const Bytef *buf,
+ uInt len)
+@@ -173,7 +173,7 @@
+ }
+
+ /* ========================================================================= */
+-uLong ZEXPORT adler32_combine(
++static uLong ZEXPORT adler32_combine(
+ uLong adler1,
+ uLong adler2,
+ z_off_t len2)
+@@ -181,7 +181,7 @@
+ return adler32_combine_(adler1, adler2, len2);
+ }
+
+-uLong ZEXPORT adler32_combine64(
++static uLong ZEXPORT adler32_combine64(
+ uLong adler1,
+ uLong adler2,
+ z_off64_t len2)
+diff -ur freetype-2.12.1/src/gzip/crc32.c freetype-src/src/gzip/crc32.c
+--- freetype-2.12.1/src/gzip/crc32.c Fri Apr 01 16:13:52 2022
++++ freetype-src/src/gzip/crc32.c Fri May 06 12:34:16 2022
+@@ -583,7 +583,7 @@
+ * This function can be used by asm versions of crc32(), and to force the
+ * generation of the CRC tables in a threaded application.
+ */
+-const z_crc_t FAR * ZEXPORT get_crc_table()
++static const z_crc_t FAR * ZEXPORT get_crc_table()
+ {
+ #ifdef DYNAMIC_CRC_TABLE
+ once(&made, make_crc_table);
+@@ -610,7 +610,7 @@
+ #define Z_BATCH_ZEROS 0xa10d3d0c /* computed from Z_BATCH = 3990 */
+ #define Z_BATCH_MIN 800 /* fewest words in a final batch */
+
+-unsigned long ZEXPORT crc32_z(
++static unsigned long ZEXPORT crc32_z(
+ unsigned long crc,
+ const unsigned char FAR *buf,
+ z_size_t len)
+@@ -736,7 +736,7 @@
+ #endif
+
+ /* ========================================================================= */
+-unsigned long ZEXPORT crc32_z(
++static unsigned long ZEXPORT crc32_z(
+ unsigned long crc,
+ const unsigned char FAR *buf,
+ z_size_t len)
+@@ -1060,7 +1060,7 @@
+ #endif
+
+ /* ========================================================================= */
+-unsigned long ZEXPORT crc32(
++static unsigned long ZEXPORT crc32(
+ unsigned long crc,
+ const unsigned char FAR *buf,
+ uInt len)
+@@ -1069,7 +1069,7 @@
+ }
+
+ /* ========================================================================= */
+-uLong ZEXPORT crc32_combine64(
++static uLong ZEXPORT crc32_combine64(
+ uLong crc1,
+ uLong crc2,
+ z_off64_t len2)
+@@ -1081,7 +1081,7 @@
+ }
+
+ /* ========================================================================= */
+-uLong ZEXPORT crc32_combine(
++static uLong ZEXPORT crc32_combine(
+ uLong crc1,
+ uLong crc2,
+ z_off_t len2)
+@@ -1090,7 +1090,7 @@
+ }
+
+ /* ========================================================================= */
+-uLong ZEXPORT crc32_combine_gen64(
++static uLong ZEXPORT crc32_combine_gen64(
+ z_off64_t len2)
+ {
+ #ifdef DYNAMIC_CRC_TABLE
+@@ -1100,14 +1100,14 @@
+ }
+
+ /* ========================================================================= */
+-uLong ZEXPORT crc32_combine_gen(
++static uLong ZEXPORT crc32_combine_gen(
+ z_off_t len2)
+ {
+ return crc32_combine_gen64(len2);
+ }
+
+ /* ========================================================================= */
+-uLong crc32_combine_op(
++static uLong crc32_combine_op(
+ uLong crc1,
+ uLong crc2,
+ uLong op)
+diff -ur freetype-2.12.1/src/gzip/ftgzip.c freetype-src/src/gzip/ftgzip.c
+--- freetype-2.12.1/src/gzip/ftgzip.c Thu Jan 27 16:43:19 2022
++++ freetype-src/src/gzip/ftgzip.c Fri May 06 12:01:06 2022
+@@ -80,6 +80,9 @@
+ #define HAVE_HIDDEN 1
+ #define ZEXPORT
+ #define ZEXTERN static
++#else
++#define ZEXPORT
++#define ZEXTERN static
+ #endif
+
+ #define Z_SOLO 1
+@@ -160,7 +163,7 @@
+
+ #if !defined( FT_CONFIG_OPTION_SYSTEM_ZLIB ) && !defined( USE_ZLIB_ZCALLOC )
+
+- voidpf ZLIB_INTERNAL
++ static voidpf ZLIB_INTERNAL
+ zcalloc ( voidpf opaque,
+ unsigned items,
+ unsigned size )
+@@ -169,7 +172,7 @@
+ }
+
+
+- void ZLIB_INTERNAL
++ static void ZLIB_INTERNAL
+ zcfree( voidpf opaque,
+ voidpf ptr )
+ {
+diff -ur freetype-2.12.1/src/gzip/gzguts.h freetype-src/src/gzip/gzguts.h
+--- freetype-2.12.1/src/gzip/gzguts.h Fri Apr 01 17:24:23 2022
++++ freetype-src/src/gzip/gzguts.h Sat May 07 14:12:37 2022
+@@ -12,11 +12,8 @@
+ # endif
+ #endif
+
+-#ifdef HAVE_HIDDEN
+-# define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
+-#else
+-# define ZLIB_INTERNAL
+-#endif
++/* we use "static" for all platforms */
++#define ZLIB_INTERNAL
+
+ #include <stdio.h>
+ #include "zlib.h"
+@@ -203,9 +200,9 @@
+ typedef gz_state FAR *gz_statep;
+
+ /* shared functions */
+-void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *));
++static void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *));
+ #if defined UNDER_CE
+-char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error));
++static char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error));
+ #endif
+
+ /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
+@@ -214,6 +211,6 @@
+ #ifdef INT_MAX
+ # define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX)
+ #else
+-unsigned ZLIB_INTERNAL gz_intmax OF((void));
++static unsigned ZLIB_INTERNAL gz_intmax OF((void));
+ # define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax())
+ #endif
+diff -ur freetype-2.12.1/src/gzip/infback.c freetype-src/src/gzip/infback.c
+--- freetype-2.12.1/src/gzip/infback.c Fri Apr 01 16:13:52 2022
++++ freetype-src/src/gzip/infback.c Thu May 05 07:24:06 2022
+@@ -25,7 +25,7 @@
+ windowBits is in the range 8..15, and window is a user-supplied
+ window and output buffer that is 2**windowBits bytes.
+ */
+-int ZEXPORT inflateBackInit_(
++static int ZEXPORT inflateBackInit_(
+ z_streamp strm,
+ int windowBits,
+ unsigned char FAR *window,
+@@ -247,7 +247,7 @@
+ inflateBack() can also return Z_STREAM_ERROR if the input parameters
+ are not correct, i.e. strm is Z_NULL or the state was not initialized.
+ */
+-int ZEXPORT inflateBack(
++static int ZEXPORT inflateBack(
+ z_streamp strm,
+ in_func in,
+ void FAR *in_desc,
+@@ -629,7 +629,7 @@
+ return ret;
+ }
+
+-int ZEXPORT inflateBackEnd(
++static int ZEXPORT inflateBackEnd(
+ z_streamp strm)
+ {
+ if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
+diff -ur freetype-2.12.1/src/gzip/inffast.c freetype-src/src/gzip/inffast.c
+--- freetype-2.12.1/src/gzip/inffast.c Fri Apr 01 16:13:52 2022
++++ freetype-src/src/gzip/inffast.c Fri May 06 12:01:59 2022
+@@ -47,7 +47,7 @@
+ requires strm->avail_out >= 258 for each loop to avoid checking for
+ output space.
+ */
+-void ZLIB_INTERNAL inflate_fast(
++static void ZLIB_INTERNAL inflate_fast(
+ z_streamp strm,
+ unsigned start)
+ {
+diff -ur freetype-2.12.1/src/gzip/inffast.h freetype-src/src/gzip/inffast.h
+--- freetype-2.12.1/src/gzip/inffast.h Fri Apr 01 16:13:52 2022
++++ freetype-src/src/gzip/inffast.h Fri May 06 12:25:15 2022
+@@ -8,4 +8,4 @@
+ subject to change. Applications should only use zlib.h.
+ */
+
+-void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start));
++static void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start));
+diff -ur freetype-2.12.1/src/gzip/inflate.c freetype-src/src/gzip/inflate.c
+--- freetype-2.12.1/src/gzip/inflate.c Fri Apr 01 17:25:55 2022
++++ freetype-src/src/gzip/inflate.c Thu May 05 07:24:18 2022
+@@ -118,7 +118,7 @@
+ return 0;
+ }
+
+-int ZEXPORT inflateResetKeep(
++static int ZEXPORT inflateResetKeep(
+ z_streamp strm)
+ {
+ struct inflate_state FAR *state;
+@@ -144,7 +144,7 @@
+ return Z_OK;
+ }
+
+-int ZEXPORT inflateReset(
++static int ZEXPORT inflateReset(
+ z_streamp strm)
+ {
+ struct inflate_state FAR *state;
+@@ -157,7 +157,7 @@
+ return inflateResetKeep(strm);
+ }
+
+-int ZEXPORT inflateReset2(
++static int ZEXPORT inflateReset2(
+ z_streamp strm,
+ int windowBits)
+ {
+@@ -195,7 +195,7 @@
+ return inflateReset(strm);
+ }
+
+-int ZEXPORT inflateInit2_(
++static int ZEXPORT inflateInit2_(
+ z_streamp strm,
+ int windowBits,
+ const char *version,
+@@ -239,7 +239,7 @@
+ return ret;
+ }
+
+-int ZEXPORT inflateInit_(
++static int ZEXPORT inflateInit_(
+ z_streamp strm,
+ const char *version,
+ int stream_size)
+@@ -249,7 +249,7 @@
+
+ #ifndef Z_FREETYPE
+
+-int ZEXPORT inflatePrime(
++static int ZEXPORT inflatePrime(
+ z_streamp strm,
+ int bits,
+ int value)
+@@ -626,7 +626,7 @@
+ will return Z_BUF_ERROR if it has not reached the end of the stream.
+ */
+
+-int ZEXPORT inflate(
++static int ZEXPORT inflate(
+ z_streamp strm,
+ int flush)
+ {
+@@ -1304,7 +1304,7 @@
+ return ret;
+ }
+
+-int ZEXPORT inflateEnd(
++static int ZEXPORT inflateEnd(
+ z_streamp strm)
+ {
+ struct inflate_state FAR *state;
+@@ -1320,7 +1320,7 @@
+
+ #ifndef Z_FREETYPE
+
+-int ZEXPORT inflateGetDictionary(
++static int ZEXPORT inflateGetDictionary(
+ z_streamp strm,
+ Bytef *dictionary,
+ uInt *dictLength)
+@@ -1343,7 +1343,7 @@
+ return Z_OK;
+ }
+
+-int ZEXPORT inflateSetDictionary(
++static int ZEXPORT inflateSetDictionary(
+ z_streamp strm,
+ const Bytef *dictionary,
+ uInt dictLength)
+@@ -1378,7 +1378,7 @@
+ return Z_OK;
+ }
+
+-int ZEXPORT inflateGetHeader(
++static int ZEXPORT inflateGetHeader(
+ z_streamp strm,
+ gz_headerp head)
+ {
+@@ -1429,7 +1429,7 @@
+ return next;
+ }
+
+-int ZEXPORT inflateSync(
++static int ZEXPORT inflateSync(
+ z_streamp strm)
+ {
+ unsigned len; /* number of bytes to look at or looked at */
+@@ -1489,7 +1489,7 @@
+ block. When decompressing, PPP checks that at the end of input packet,
+ inflate is waiting for these length bytes.
+ */
+-int ZEXPORT inflateSyncPoint(
++static int ZEXPORT inflateSyncPoint(
+ z_streamp strm)
+ {
+ struct inflate_state FAR *state;
+@@ -1501,7 +1501,7 @@
+
+ #ifndef Z_FREETYPE
+
+-int ZEXPORT inflateCopy(
++static int ZEXPORT inflateCopy(
+ z_streamp dest,
+ z_streamp source)
+ {
+@@ -1550,7 +1550,7 @@
+
+ #endif /* !Z_FREETYPE */
+
+-int ZEXPORT inflateUndermine(
++static int ZEXPORT inflateUndermine(
+ z_streamp strm,
+ int subvert)
+ {
+@@ -1568,7 +1568,7 @@
+ #endif
+ }
+
+-int ZEXPORT inflateValidate(
++static int ZEXPORT inflateValidate(
+ z_streamp strm,
+ int check)
+ {
+@@ -1585,7 +1585,7 @@
+
+ #ifndef Z_FREETYPE
+
+-long ZEXPORT inflateMark(
++static long ZEXPORT inflateMark(
+ z_streamp strm)
+ {
+ struct inflate_state FAR *state;
+@@ -1598,7 +1598,7 @@
+ (state->mode == MATCH ? state->was - state->length : 0));
+ }
+
+-unsigned long ZEXPORT inflateCodesUsed(
++static unsigned long ZEXPORT inflateCodesUsed(
+ z_streamp strm)
+ {
+ struct inflate_state FAR *state;
+diff -ur freetype-2.12.1/src/gzip/inftrees.c freetype-src/src/gzip/inftrees.c
+--- freetype-2.12.1/src/gzip/inftrees.c Fri Apr 01 16:13:52 2022
++++ freetype-src/src/gzip/inftrees.c Fri May 06 12:33:23 2022
+@@ -8,7 +8,7 @@
+
+ #define MAXBITS 15
+
+-const char inflate_copyright[] =
++static const char inflate_copyright[] =
+ " inflate 1.2.12 Copyright 1995-2022 Mark Adler ";
+ /*
+ If you use the zlib library in a product, an acknowledgment is welcome
+@@ -29,7 +29,7 @@
+ table index bits. It will differ if the request is greater than the
+ longest code or if it is less than the shortest code.
+ */
+-int ZLIB_INTERNAL inflate_table(
++static int ZLIB_INTERNAL inflate_table(
+ codetype type,
+ unsigned short FAR *lens,
+ unsigned codes,
+diff -ur freetype-2.12.1/src/gzip/inftrees.h freetype-src/src/gzip/inftrees.h
+--- freetype-2.12.1/src/gzip/inftrees.h Fri Apr 01 17:24:23 2022
++++ freetype-src/src/gzip/inftrees.h Fri May 06 12:25:35 2022
+@@ -60,7 +60,7 @@
+ DISTS
+ } codetype;
+
+-int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens,
++static int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens,
+ unsigned codes, code FAR * FAR *table,
+ unsigned FAR *bits, unsigned short FAR *work));
+
+diff -ur freetype-2.12.1/src/gzip/zutil.c freetype-src/src/gzip/zutil.c
+--- freetype-2.12.1/src/gzip/zutil.c Fri Apr 01 16:13:54 2022
++++ freetype-src/src/gzip/zutil.c Fri May 06 12:08:24 2022
+@@ -10,7 +10,7 @@
+ # include "gzguts.h"
+ #endif
+
+-z_const char * const z_errmsg[10] = {
++static z_const char * const z_errmsg[10] = {
+ (z_const char *)"need dictionary", /* Z_NEED_DICT 2 */
+ (z_const char *)"stream end", /* Z_STREAM_END 1 */
+ (z_const char *)"", /* Z_OK 0 */
+@@ -24,12 +24,12 @@
+ };
+
+
+-const char * ZEXPORT zlibVersion()
++static const char * ZEXPORT zlibVersion()
+ {
+ return ZLIB_VERSION;
+ }
+
+-uLong ZEXPORT zlibCompileFlags()
++static uLong ZEXPORT zlibCompileFlags()
+ {
+ uLong flags;
+
+@@ -117,9 +117,9 @@
+ # ifndef verbose
+ # define verbose 0
+ # endif
+-int ZLIB_INTERNAL z_verbose = verbose;
++static int ZLIB_INTERNAL z_verbose = verbose;
+
+-void ZLIB_INTERNAL z_error (
++static void ZLIB_INTERNAL z_error (
+ char *m)
+ {
+ fprintf(stderr, "%s\n", m);
+@@ -130,7 +130,7 @@
+ /* exported to allow conversion of error code to string for compress() and
+ * uncompress()
+ */
+-const char * ZEXPORT zError(
++static const char * ZEXPORT zError(
+ int err)
+ {
+ return ERR_MSG(err);
+@@ -146,7 +146,7 @@
+
+ #ifndef HAVE_MEMCPY
+
+-void ZLIB_INTERNAL zmemcpy(
++static void ZLIB_INTERNAL zmemcpy(
+ Bytef* dest,
+ const Bytef* source,
+ uInt len)
+@@ -157,7 +157,7 @@
+ } while (--len != 0);
+ }
+
+-int ZLIB_INTERNAL zmemcmp(
++static int ZLIB_INTERNAL zmemcmp(
+ const Bytef* s1,
+ const Bytef* s2,
+ uInt len)
+@@ -170,7 +170,7 @@
+ return 0;
+ }
+
+-void ZLIB_INTERNAL zmemzero(
++static void ZLIB_INTERNAL zmemzero(
+ Bytef* dest,
+ uInt len)
+ {
+@@ -214,7 +214,7 @@
+ * a protected system like OS/2. Use Microsoft C instead.
+ */
+
+-voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
++static voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
+ {
+ voidpf buf;
+ ulg bsize = (ulg)items*size;
+@@ -240,7 +240,7 @@
+ return buf;
+ }
+
+-void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
++static void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
+ {
+ int n;
+
+@@ -277,13 +277,13 @@
+ # define _hfree hfree
+ #endif
+
+-voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size)
++static voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size)
+ {
+ (void)opaque;
+ return _halloc((long)items, size);
+ }
+
+-void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
++static void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
+ {
+ (void)opaque;
+ _hfree(ptr);
+@@ -302,7 +302,7 @@
+ extern void free OF((voidpf ptr));
+ #endif
+
+-voidpf ZLIB_INTERNAL zcalloc (
++static voidpf ZLIB_INTERNAL zcalloc (
+ voidpf opaque,
+ unsigned items,
+ unsigned size)
+@@ -312,7 +312,7 @@
+ (voidpf)calloc(items, size);
+ }
+
+-void ZLIB_INTERNAL zcfree (
++static void ZLIB_INTERNAL zcfree (
+ voidpf opaque,
+ voidpf ptr)
+ {
+diff -ur freetype-2.12.1/src/gzip/zutil.h freetype-src/src/gzip/zutil.h
+--- freetype-2.12.1/src/gzip/zutil.h Fri Apr 01 17:24:23 2022
++++ freetype-src/src/gzip/zutil.h Sat May 07 14:13:48 2022
+@@ -13,11 +13,8 @@
+ #ifndef ZUTIL_H
+ #define ZUTIL_H
+
+-#ifdef HAVE_HIDDEN
+-# define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
+-#else
+-# define ZLIB_INTERNAL
+-#endif
++/* we use "static" for all platforms */
++#define ZLIB_INTERNAL
+
+ #include "zlib.h"
+
+@@ -53,7 +50,7 @@
+ # endif
+ #endif
+
+-extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
++static z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
+ /* (size given to avoid silly warnings with Visual C++) */
+
+ #define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
+@@ -235,16 +232,16 @@
+ # define zmemzero(dest, len) ft_memset(dest, 0, len)
+ # endif
+ #else
+- void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));
+- int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
+- void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len));
++ static void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));
++ static int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
++ static void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len));
+ #endif
+
+ /* Diagnostic functions */
+ #ifdef ZLIB_DEBUG
+ # include <stdio.h>
+- extern int ZLIB_INTERNAL z_verbose;
+- extern void ZLIB_INTERNAL z_error OF((char *m));
++ static int ZLIB_INTERNAL z_verbose;
++ static void ZLIB_INTERNAL z_error OF((char *m));
+ # define Assert(cond,msg) {if(!(cond)) z_error(msg);}
+ # define Trace(x) {if (z_verbose>=0) fprintf x ;}
+ # define Tracev(x) {if (z_verbose>0) fprintf x ;}
+@@ -261,9 +258,9 @@
+ #endif
+
+ #ifndef Z_SOLO
+- voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items,
++ static voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items,
+ unsigned size));
+- void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr));
++ static void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr));
+ #endif
+
+ #define ZALLOC(strm, items, size) \
Index: Build/source/libs/freetype2/TLpatches/patch-04-void-main
===================================================================
--- Build/source/libs/freetype2/TLpatches/patch-04-void-main (nonexistent)
+++ Build/source/libs/freetype2/TLpatches/patch-04-void-main (revision 64953)
@@ -0,0 +1,13 @@
+diff --git a/libs/freetype2/freetype-src/builds/unix/freetype2.m4 b/libs/freetype2/freetype-src/builds/unix/freetype2.m4
+index 0cafc8e8c..51843f5fa 100644
+--- a/libs/freetype2/freetype-src/builds/unix/freetype2.m4
++++ b/libs/freetype2/freetype-src/builds/unix/freetype2.m4
+@@ -121,7 +121,7 @@ AC_DEFUN([AC_CHECK_FT2],
+ #include <stdlib.h>
+
+ int
+-main()
++main(void)
+ {
+ FT_Library library;
+ FT_Error error;
Index: Build/source/libs/freetype2/freetype-src/builds/unix/freetype2.m4
===================================================================
--- Build/source/libs/freetype2/freetype-src/builds/unix/freetype2.m4 (revision 64952)
+++ Build/source/libs/freetype2/freetype-src/builds/unix/freetype2.m4 (revision 64953)
@@ -121,7 +121,7 @@
#include <stdlib.h>
int
-main()
+main(void)
{
FT_Library library;
FT_Error error;
Index: Build/source/libs/gd/TLpatches/patch-03-void-main
===================================================================
--- Build/source/libs/gd/TLpatches/patch-03-void-main (nonexistent)
+++ Build/source/libs/gd/TLpatches/patch-03-void-main (revision 64953)
@@ -0,0 +1,13 @@
+diff --git a/libs/gd/libgd-src/tests/xpm/bug00185.c b/libs/gd/libgd-src/tests/xpm/bug00185.c
+index 3056ed950..37659d6a4 100644
+--- a/libs/gd/libgd-src/tests/xpm/bug00185.c
++++ b/libs/gd/libgd-src/tests/xpm/bug00185.c
+@@ -5,7 +5,7 @@
+
+ /* To check memory leaks, run such as 'valgrind --leak-check=full ./bug00185' */
+ int
+-main()
++main(void)
+ {
+ gdImagePtr im;
+ char *path;
Index: Build/source/libs/gd/libgd-src/tests/xpm/bug00185.c
===================================================================
--- Build/source/libs/gd/libgd-src/tests/xpm/bug00185.c (revision 64952)
+++ Build/source/libs/gd/libgd-src/tests/xpm/bug00185.c (revision 64953)
@@ -5,7 +5,7 @@
/* To check memory leaks, run such as 'valgrind --leak-check=full ./bug00185' */
int
-main()
+main(void)
{
gdImagePtr im;
char *path;
Index: Build/source/texk/ps2pk/basename.c
===================================================================
--- Build/source/texk/ps2pk/basename.c (revision 64952)
+++ Build/source/texk/ps2pk/basename.c (revision 64953)
@@ -6,11 +6,12 @@
* AUTHOR: Piet Tutelaers
* VERSION: 1.0 (Sept. 1995)
*/
+#include <stdlib.h> /* exit() */
#include <stdio.h> /* printf() */
#include "basics.h" /* fatal() */
#include "filenames.h" /* basename() */
-main(int argc, char **argv)
+int main(int argc, char **argv)
{
if (argc < 2 || argc > 3)
fatal("Usage: basename string [suffix]\n");
Index: Build/source/utils/m-tx/mtx-src/prepmx.c
===================================================================
--- Build/source/utils/m-tx/mtx-src/prepmx.c (revision 64952)
+++ Build/source/utils/m-tx/mtx-src/prepmx.c (revision 64953)
@@ -769,7 +769,7 @@
}
-main(int argc, Char *argv[])
+int main(int argc, Char *argv[])
{ /* ---- Main program ------------------------ */
PASCAL_MAIN(argc, argv);
strcpy(this_version, version);
Index: Build/source/utils/pmx/TLpatches/patch-01-main-ret
===================================================================
--- Build/source/utils/pmx/TLpatches/patch-01-main-ret (nonexistent)
+++ Build/source/utils/pmx/TLpatches/patch-01-main-ret (revision 64953)
@@ -0,0 +1,13 @@
+diff --git a/utils/pmx/pmx-src/libf2c/main.c b/utils/pmx/pmx-src/libf2c/main.c
+index 453974904..f485a0cd0 100644
+--- a/utils/pmx/pmx-src/libf2c/main.c
++++ b/utils/pmx/pmx-src/libf2c/main.c
+@@ -106,7 +106,7 @@ char **xargv;
+ #ifdef KR_headers
+ main(argc, argv) int argc; char **argv;
+ #else
+-main(int argc, char **argv)
++int main(int argc, char **argv)
+ #endif
+ {
+ xargc = argc;
Index: Build/source/utils/pmx/pmx-src/libf2c/main.c
===================================================================
--- Build/source/utils/pmx/pmx-src/libf2c/main.c (revision 64952)
+++ Build/source/utils/pmx/pmx-src/libf2c/main.c (revision 64953)
@@ -106,7 +106,7 @@
#ifdef KR_headers
main(argc, argv) int argc; char **argv;
#else
-main(int argc, char **argv)
+int main(int argc, char **argv)
#endif
{
xargc = argc;

35
texlive-base-c99-3.patch Normal file
View file

@ -0,0 +1,35 @@
Partial backport of this upstream revision:
------------------------------------------------------------------------
r65582 | hironobu | 2023-01-19 15:15:46 +0100 (Thu, 19 Jan 2023) | 1 line
synctexdir: update from GH
Relevant Git commit:
commit 2897465154892a7737dcc90e4d6a00a1d1b3922c
Author: Germán Poo-Caamaño <gpoo@gnome.org>
Date: Sat May 30 16:15:27 2020 -0400
Fix implicit declaration of vasprintf
Fix build when compiling with `-Werror=implicit-function-declaration`.
Index: Build/source/texk/web2c/synctexdir/synctex_parser.c
===================================================================
--- Build/source/texk/web2c/synctexdir/synctex_parser.c (revision 65581)
+++ Build/source/texk/web2c/synctexdir/synctex_parser.c (revision 65582)
@@ -83,6 +83,11 @@
* First level objects are sheets and forms, containing boxes, glues, kerns...
* The third tree allows to browse leaves according to tag and line.
*/
+/* Declare _GNU_SOURCE for accessing vasprintf. For MSC compiler, vasprintf is
+ * defined in this file
+ */
+#define _GNU_SOURCE
+
# if defined(SYNCTEX_USE_LOCAL_HEADER)
# include "synctex_parser_local.h"
# else

53
texlive-base-c99-4.patch Normal file
View file

@ -0,0 +1,53 @@
Fix the setsid-after-vfork configure check to avoid implicit
declarations of wait, exit. This ensures that the outcome of the
check does not change with compilers which do not support implicit
function declarations.
Submitted upstream:
<https://tug.org/pipermail/tex-live/2023-January/048833.html>
diff -up texlive-base-20220321/source/texk/xdvik/configure.c99-4 texlive-base-20220321/source/texk/xdvik/configure
--- texlive-base-20220321/source/texk/xdvik/configure.c99-4 2023-01-31 09:04:59.026325806 +0100
+++ texlive-base-20220321/source/texk/xdvik/configure 2023-01-31 09:05:14.250169332 +0100
@@ -16406,6 +16406,9 @@ else $as_nop
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#ifdef HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
#ifdef HAVE_VFORK_H
#include <vfork.h>
#endif
@@ -16427,7 +16430,7 @@ main (void)
while (wait(&status) != child)
;
- exit(
+ _exit(
/* Was there some problem with vforking? */
child < 0
diff -up texlive-base-20220321/source/texk/xdvik/m4/xdvi-func-setsid-in-fork.m4.c99-4 texlive-base-20220321/source/texk/xdvik/m4/xdvi-func-setsid-in-fork.m4
--- texlive-base-20220321/source/texk/xdvik/m4/xdvi-func-setsid-in-fork.m4.c99-4 2023-01-31 08:45:31.417794738 +0100
+++ texlive-base-20220321/source/texk/xdvik/m4/xdvi-func-setsid-in-fork.m4 2023-01-31 08:45:43.901652431 +0100
@@ -22,6 +22,9 @@ AC_DEFUN([XDVI_FUNC_SETSID_IN_VFORK],
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#ifdef HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
#ifdef HAVE_VFORK_H
#include <vfork.h>
#endif]],
@@ -40,7 +43,7 @@ AC_DEFUN([XDVI_FUNC_SETSID_IN_VFORK],
while (wait(&status) != child)
;
- exit(
+ _exit(
/* Was there some problem with vforking? */
child < 0

View file

@ -1,56 +0,0 @@
diff -up texlive-base-20170520/source/texk/texlive/linked_scripts/a2ping/a2ping.pl.gs922 texlive-base-20170520/source/texk/texlive/linked_scripts/a2ping/a2ping.pl
--- texlive-base-20170520/source/texk/texlive/linked_scripts/a2ping/a2ping.pl.gs922 2018-03-11 14:15:15.824669043 -0400
+++ texlive-base-20170520/source/texk/texlive/linked_scripts/a2ping/a2ping.pl 2018-03-11 14:15:21.803523499 -0400
@@ -352,7 +352,7 @@ use just +1; # a JustLib application
use strict;
use integer;
use Htex::papers;
-BEGIN { $Htex::a2ping::VERSION="2.77p" }
+BEGIN { $Htex::a2ping::VERSION="2.77p1" }
# Imp: option to ignore `%%Orientation: Portrait', which gs respects and rotates by 90 degrees if necessary
# Imp: gs(704?!) sometimes finds too small bbox, see Univers.eps
@@ -401,7 +401,7 @@ BEGIN { $Htex::a2ping::VERSION="2.77p" }
### program identification
my $program = "a2ping.pl";
-my $filedate="2006-11-15"; # my $filedate="2001/03/05";
+my $filedate="2018-03-07"; # my $filedate="2001/03/05";
my $copyright = "Written by <pts\@fazekas.hu> from April 2003.
This is free software, GNU GPL >=2.0. There is NO WARRANTY.
(epstopdf 2.7 Copyright 1998-2001 by Sebastian Rahtz et al.)\n";
@@ -1543,12 +1543,13 @@ count /OPCOUNT exch def
(bbox-success\n) ..print
quit
} if
- .callbeginpage
}
+ % Run the previous contents of /BeginPage: {--.callbeginpage--}
+ [exch aload pop currentpagedevice /BeginPage get aload pop] cvx
>> setpagedevice
% vvv do these after our call to /setpagedevice
-.currentglobal true .setglobal
+currentglobal true setglobal
systemdict begin
/..paper.redef<< >>def
/..print/print load def
@@ -1657,7 +1658,7 @@ dup/= exch def /print exch def
pop
}forall} forall
end % systemdict
-.setglobal
+setglobal
systemdict readonly pop
(bbox-begin\n) ..print
@@ -2570,3 +2571,9 @@ texutil.
* separated FileFormat features to FL_* constants
* added --doc
* there is no default FileFormat (PDF) anymore
+
+=head2 2018-03-07 v2.77p1 (Szab<61> P<>ter)
+
+ * .callbeginpage and .setglobal fix for Ghostscript 9.22
+ (https://bugs.ghostscript.com/show_bug.cgi?id=699063).
+ Problem reported by Akira Yokosawa

View file

@ -0,0 +1,84 @@
diff -up ./scripts/latex-papersize/latex-papersize.py.py3 ./scripts/latex-papersize/latex-papersize.py
--- ./scripts/latex-papersize/latex-papersize.py.py3 2016-10-17 17:30:47.000000000 -0400
+++ ./scripts/latex-papersize/latex-papersize.py 2019-12-14 03:02:45.000000000 -0500
@@ -1,7 +1,7 @@
#!/usr/bin/env python
r"""
Calculate LaTeX paper and margin settings for arbitrary magnification
-(C) Silas S. Brown, 2005-2009, 2016. Version 1.62.
+(C) Silas S. Brown, 2005-2009, 2016, 2019. Version 1.63.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -32,6 +32,7 @@ are often meant to be clearer.
This is a Python script to calculate the necessary
settings for arbitrary font and page sizes.
+Works in both Python 2 and Python 3.
BASIC USAGE
@@ -151,11 +152,16 @@ To run dvips on the .dvi file (not neede
$(python latex-papersize.py 12 26 file.dvi)
"""
-import os, sys, math, commands
+import os, sys, math
+try: from commands import getoutput # Python 2
+except: from subprocess import getoutput # Python 3
+def hasKey(a,b):
+ try: return a.has_key(b) # old Python 2
+ except: return b in a # newer Python 2 + Python 3
if len(sys.argv)==2 and sys.argv[1]=="--help":
- print __doc__.strip() ; raise SystemExit
+ print(__doc__.strip()); raise SystemExit
if len(sys.argv)==2 and sys.argv[1]=="--version":
- print __doc__[:__doc__.find("\n\n")].strip() ; raise SystemExit
+ print(__doc__[:__doc__.find("\n\n")].strip()); raise SystemExit
base_pointsize = float(sys.argv[1])
desired_pointsize = float(sys.argv[2])
@@ -167,13 +173,13 @@ else:
extra_bottom_margin_mm = 0
pageStyle = " \\pagestyle{empty}"
-if os.environ.has_key("paper_width"): paper_width=float(os.environ["paper_width"])
+if hasKey(os.environ,"paper_width"): paper_width=float(os.environ["paper_width"])
else: paper_width=210
-if os.environ.has_key("paper_height"): paper_height=float(os.environ["paper_height"])
+if hasKey(os.environ,"paper_height"): paper_height=float(os.environ["paper_height"])
else: paper_height=297
-if os.environ.has_key("margin_left"): margin_left=float(os.environ["margin_left"])
+if hasKey(os.environ,"margin_left"): margin_left=float(os.environ["margin_left"])
else: margin_left=10
-if os.environ.has_key("margin_top"): margin_top=float(os.environ["margin_top"])
+if hasKey(os.environ,"margin_top"): margin_top=float(os.environ["margin_top"])
else: margin_top=10
paper_magstep = 1.0*desired_pointsize/base_pointsize
@@ -188,15 +194,16 @@ if sys.argv[3]=="tex" or sys.argv[3]=="p
s="\\textwidth=%.1fmm \\textheight=%.1fmm \\topmargin=%.1fmm \\marginparwidth=0mm \\oddsidemargin=%.1fmm \\evensidemargin=%.1fmm \\columnsep=%.1fmm%s" % (textwidth,textheight,margin_top_setting,margin_left_setting,margin_left_setting,margin_left_setting,pageStyle)
if sys.argv[3]=="pdftex":
s += "\\mag=%d \\pdfpagewidth=%d true mm \\pdfpageheight=%d true mm \\pdfhorigin=0 mm \\pdfvorigin=-12.95 mm \\paperwidth=%d true mm \\paperheight=%d true mm" % (1000*paper_magstep,paper_width,paper_height,paper_width,paper_height) # the -12.95mm seems to be a constant regardless of magnification (previous version had -14 but it sems -12.95 is more accurate - at least 12.9 is too small and 13 is too big). Need \paperwidth and \paperheight in there as well in case using hyperref.
- print s
+ print(s)
else:
- os.system("dvips -T %dmm,%dmm -x %d %s -o bbox_test.ps" % (paper_width*10,paper_height*10,1000*paper_magstep+0.5,sys.argv[3]))
+ r = os.system("dvips -T %dmm,%dmm -x %d %s -o bbox_test.ps" % (paper_width*10,paper_height*10,1000*paper_magstep+0.5,sys.argv[3]))
+ assert not r, "dvips failed"
# Now, that would have got the origin wrong. I can't
# figure out how dvips origin and magstep is supposed to
# interoperate, so let's work it out on a case-by-case
# basis from the bounding box.
# (Note: multiplying paper_width and paper_height by 10 above, because if dealing with very small paper sizes then this may give a reading of 0 if the origin is off the page. Increasing the paper size doesn't seem to affect the origin.)
- bbox=commands.getoutput("echo|gs -sDEVICE=bbox bbox_test.ps 2>&1|grep BoundingBox")
+ bbox=getoutput("echo|gs -sDEVICE=bbox bbox_test.ps 2>&1|grep BoundingBox")
# (previous version used 'head -1' to take only the first page, but that can cause 'broken pipe' errors if the file contains too many pages, and will give an incorrect result if there is only one line per page and it is indented on the first page, so we'll look at ALL the pages and take the outermost bounds. Will also look at high-resolution bounding boxes only, if available.)
if "HiResBoundingBox" in bbox: bbox=filter(lambda x:"HiRes" in x,bbox.split("\n"))
else: bbox=bbox.split("\n")
@@ -206,4 +213,4 @@ else:
os.unlink("bbox_test.ps")
existing_left_margin_mm = min(map(lambda x:x[0],bbox))*25.4/72
existing_top_margin_mm = paper_height*10-max(map(lambda x:x[3],bbox))*25.4/72
- print "dvips -T %dmm,%dmm -O %.1fmm,%.1fmm -x %d %s" % (paper_width,paper_height,margin_left - existing_left_margin_mm,margin_top - existing_top_margin_mm,1000*paper_magstep+0.5,sys.argv[3])
+ print("dvips -T %dmm,%dmm -O %.1fmm,%.1fmm -x %d %s" % (paper_width,paper_height,margin_left - existing_left_margin_mm,margin_top - existing_top_margin_mm,1000*paper_magstep+0.5,sys.argv[3]))

View file

@ -0,0 +1,102 @@
diff -up texlive-base-20220321/source/texk/psutils/tests/playres.ps.libpaper2 texlive-base-20220321/source/texk/psutils/tests/playres.ps
--- texlive-base-20220321/source/texk/psutils/tests/playres.ps.libpaper2 2023-01-08 23:22:46.519324804 -0500
+++ texlive-base-20220321/source/texk/psutils/tests/playres.ps 2023-01-08 23:22:56.824405896 -0500
@@ -280,7 +280,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 15 4 bop 330 423 a Fb(5)2834 b(5)1622 3275
@@ -293,7 +293,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 16 5 bop 330 419 a Fb(6)2834 b(6)1622 3264
@@ -306,7 +306,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 17 6 bop 330 419 a Fb(7)2834 b(7)1622 3266
@@ -319,7 +319,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 18 7 bop 330 419 a Fb(8)2834 b(8)1622 3264
@@ -332,7 +332,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 19 8 bop 330 419 a Fb(9)2834 b(9)1622 3261
@@ -345,7 +345,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 20 9 bop 330 419 a Fb(10)2668 b(10)1415
@@ -358,7 +358,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 21 10 bop 330 419 a Fb(11)2668 b(11)1415
@@ -371,7 +371,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 22 11 bop 330 419 a Fb(12)2668 b(12)1415
@@ -384,7 +384,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 23 12 bop 330 419 a Fb(13)2668 b(13)1415
@@ -397,7 +397,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 24 13 bop 330 419 a Fb(14)2668 b(14)1415
@@ -410,7 +410,7 @@ PStoPSmatrix setmatrix
0.704762 dup scale
userdict/PStoPSmatrix matrix currentmatrix put
userdict/PStoPSclip{0 0 moveto
- 595.275591 0 rlineto 0 844.647799 rlineto -595.275591 0 rlineto
+ 595.275591 0 rlineto 0 844.647797 rlineto -595.275591 0 rlineto
closepath}put initclip
PStoPSxform concat
TeXDict begin 25 14 bop 330 423 a Fb(15)2668 b(15)1415

View file

@ -0,0 +1,102 @@
diff -up ./scripts/pdfbook2/pdfbook2.py3 ./scripts/pdfbook2/pdfbook2
--- ./scripts/pdfbook2/pdfbook2.py3 2020-01-10 08:49:13.071743210 -0500
+++ ./scripts/pdfbook2/pdfbook2 2020-01-10 08:50:18.938615714 -0500
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
""" pdfbook2 - transform pdf files to booklets
This program is free software: you can redistribute it and/or modify
@@ -29,15 +29,15 @@ import shutil
def booklify( name, opts ):
#------------------------------------------------------ Check if file exists
- print "\nProcessing", name
+ print("\nProcessing", name)
if not os.path.isfile( name ):
- print "SKIP: file not found."
+ print("SKIP: file not found.")
return
- print "Getting bounds...",
+ print("Getting bounds...", end=' ')
sys.stdout.flush()
#---------------------------------------------------------- useful constants
- bboxName = "%%HiResBoundingBox:"
+ bboxName = b"%%HiResBoundingBox:"
tmpFile = ".crop-tmp.pdf"
#------------------------------------------------- find min/max bounding box
@@ -50,8 +50,8 @@ def booklify( name, opts ):
p.wait()
out, err = p.communicate()
if len( err ) != 0:
- print err
- print "\n\nABORT: Problem getting bounds"
+ print(err)
+ print("\n\nABORT: Problem getting bounds")
sys.exit( 1 )
lines = out.splitlines()
bboxes = [s[len( bboxName ) + 1:] for s in lines if s.startswith( bboxName )]
@@ -69,11 +69,11 @@ def booklify( name, opts ):
minLOdd -= maxWidth - widthOdd
maxREven += maxWidth - widthEven
- print "done"
+ print("done")
sys.stdout.flush()
#--------------------------------------------- crop file to area of interest
- print "cropping...",
+ print("cropping...", end=' ')
sys.stdout.flush()
p = subprocess.Popen( ["pdfcrop",
"--bbox-odd", "{L} {T} {R} {B}".format( L = minLOdd - opts.innerMargin / 2,
@@ -92,16 +92,16 @@ def booklify( name, opts ):
p.wait()
out, err = p.communicate()
if len( err ) != 0:
- print err
- print "\n\nABORT: Problem with cropping"
+ print(err)
+ print("\n\nABORT: Problem with cropping")
sys.exit( 1 )
- print "done"
+ print("done")
sys.stdout.flush()
else:
shutil.copy( name, tmpFile )
#-------------------------------------------------------- create the booklet
- print "create booklet...",
+ print("create booklet...", end=' ')
sys.stdout.flush()
pdfJamCallList = [ "pdfjam",
"--booklet", "true",
@@ -124,7 +124,7 @@ def booklify( name, opts ):
p.wait()
out, err = p.communicate()
if len( out ) == 0:
- print "\n\nABORT: The everyshi.sty latex package is needed for short-edge."
+ print("\n\nABORT: The everyshi.sty latex package is needed for short-edge.")
sys.exit( 1 )
else:
pdfJamCallList.append( "--preamble" )
@@ -139,7 +139,7 @@ def booklify( name, opts ):
#-------------------------------------------- move file and remove temp file
os.rename( tmpFile[:-4] + "-book.pdf", name[:-4] + "-book.pdf" )
os.remove( tmpFile )
- print "done"
+ print("done")
sys.stdout.flush()
@@ -228,7 +228,7 @@ if __name__ == "__main__":
if len( args ) == 0:
parser.print_version()
parser.print_help()
- print ""
+ print("")
sys.exit( 2 )
#------------------------------------------- run for each provided file name

View file

@ -1,12 +0,0 @@
diff -up texlive-base-20170520/source/utils/xindy/xindy-src/make-rules/inputenc/make-inp-rules.pl.perl518 texlive-base-20170520/source/utils/xindy/xindy-src/make-rules/inputenc/make-inp-rules.pl
--- texlive-base-20170520/source/utils/xindy/xindy-src/make-rules/inputenc/make-inp-rules.pl.perl518 2018-02-24 00:39:02.992893235 -0500
+++ texlive-base-20170520/source/utils/xindy/xindy-src/make-rules/inputenc/make-inp-rules.pl 2018-02-24 00:39:27.239258300 -0500
@@ -8,7 +8,7 @@ EOF
while (<STDIN>) {
- if (/\\indexentry{(.+)--([8-9a-f][0-9a-f])\}\{1\}/) {
+ if (/\\indexentry\{(.+)--([8-9a-f][0-9a-f])\}\{1\}/) {
if (!($1 =~ /inputenc Error|\@inpenc\@undefined/)) {
$i = hex($2);
$macro = $1;

File diff suppressed because it is too large Load diff

View file

@ -1,12 +0,0 @@
diff -up source/texk/kpathsea/mktexlsr.than source/texk/kpathsea/mktexlsr
--- source/texk/kpathsea/mktexlsr.than 2015-04-29 16:52:42.800897655 +0200
+++ source/texk/kpathsea/mktexlsr 2015-04-29 16:53:12.500695909 +0200
@@ -66,7 +66,7 @@ if tty -s; then verbose=true; else verbo
dry_run=false
trees=
-treefile="${TMPDIR-/tmp}/mktexlsrtrees$$.tmp"
+treefile=`mktemp -q --tmpdir mktexlsrtrees.XXXXXXXXXX`
trap 'cd /; rm -f $treefile; test -z "$db_dir_tmp" || rm -rf "$db_dir_tmp";
exit' 0 1 2 3 7 13 15

View file

@ -0,0 +1,59 @@
diff -up ./web2c/texmfcnf.lua.fedora ./web2c/texmfcnf.lua
--- ./web2c/texmfcnf.lua.fedora 2023-05-25 10:25:41.195939763 -0400
+++ ./web2c/texmfcnf.lua 2023-05-25 10:33:33.761097942 -0400
@@ -11,6 +11,7 @@ return {
comment = "ConTeXt MkIV and LMTX configuration file",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
target = "texlive",
+ -- modified for Fedora, based on Preining Norbert's work in Debian
content = {
@@ -52,7 +53,7 @@ return {
TEXMFVAR = "home:" .. hiddentexlivepath .. "/texmf-var",
TEXMFCONFIG = "home:" .. hiddentexlivepath .. "/texmf-config",
- TEXMFSYSVAR = "selfautoparent:texmf-var",
+ TEXMFSYSVAR = "/var/lib/texmf",
TEXMFCACHE = "$TEXMFSYSVAR;$TEXMFVAR",
-- I don't like this texmf under home and texmf-home would make more sense. One never knows
@@ -62,7 +63,7 @@ return {
-- By using prefixes we don't get expanded paths in the cache __path__ entry. This makes the
-- tex root relocatable.
- TEXMFOS = "selfautodir:",
+ -- TEXMFOS = "selfautodir:",
-- standalone:
@@ -73,14 +74,15 @@ return {
-- texlive:
- TEXMFDIST = "selfautoparent:texmf-dist",
- TEXMFSYSCONFIG = "selfautoparent:texmf-config",
+ TEXMFDIST = "/usr/share/texlive/texmf-dist",
+ TEXMFFEDORA = "/usr/share/texmf",
+ TEXMFSYSCONFIG = "/usr/share/texlive/texmf-config",
-- The texmf-local path is only used for (maybe) some additional configuration file.
- TEXMFLOCAL = "selfautoparent:texmf-local",
- TEXMFFONTS = "selfautoparent:texmf-fonts",
- TEXMFPROJECT = "selfautoparent:texmf-project",
+ TEXMFLOCAL = "/usr/share/texlive/texmf-local",
+ -- TEXMFFONTS = "selfautoparent:texmf-fonts",
+ -- TEXMFPROJECT = "selfautoparent:texmf-project",
TEXMFHOME = "home:texmf",
-- TEXMFHOME = os.name == "macosx" and "home:Library/texmf" or "home:texmf",
@@ -94,7 +96,7 @@ return {
-- texlive:
- TEXMF = "{$TEXMFCONFIG,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFPROJECT,!!$TEXMFFONTS,!!$TEXMFLOCAL,!!$TEXMFDIST}",
+ TEXMF = "{$TEXMFCONFIG,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFFEDORA,!!$TEXMFDIST}",
TEXFONTMAPS = ".;$TEXMF/fonts/data//;$TEXMF/fonts/map/{pdftex,dvips}//",
ENCFONTS = ".;$TEXMF/fonts/data//;$TEXMF/fonts/enc/{dvips,pdftex}//",

View file

@ -0,0 +1,255 @@
diff -up texmf-dist/scripts/pythontex/depythontex3.py.orig texmf-dist/scripts/pythontex/depythontex3.py
--- texmf-dist/scripts/pythontex/depythontex3.py.orig 2025-07-15 15:33:41.682593752 +0200
+++ texmf-dist/scripts/pythontex/depythontex3.py 2025-07-15 15:41:16.346789065 +0200
@@ -121,7 +121,7 @@ def replace_code_cmd(name, arglist, line
Usually, code from a command is also typeset with a command. This
function primarily deals with that case. In cases where code from a
- command is typeset with an environment (for example, `\inputpygments`),
+ command is typeset with an environment (for example, `\\inputpygments`),
this function performs some preprocessing and then uses
replace_code_env() to do the real work. This approach prevents the two
functions from unnecessarily duplicating each other, while still giving
@@ -161,7 +161,7 @@ def replace_code_cmd(name, arglist, line
# Make sure the introduction of an environment where a command was
# previously won't produce errors with following content; make sure
# that any following content is on a separate line
- if bool(match('[ \t]*\S', after)):
+ if bool(match(r'[ \t]*\S', after)):
after = '\n' + after
# Rather than duplicating much of replace_code_env(), just use it
return replace_code_env(name, arglist, linenum, code_replacement,
@@ -333,7 +333,7 @@ def replace_print_cmd(name, arglist, lin
break
print_replacement = r'\verb' + delim + print_replacement + delim
elif print_replacement_mode == 'verbatim':
- if bool(match('\s*?\n', after)):
+ if bool(match(r'\s*?\n', after)):
# Usually, we would end the verbatim environment with a newline.
# This is fine if there is content in `after` before the next
# newline---in fact, it's desirable, because the verbatim package
@@ -405,11 +405,11 @@ def replace_print_cmd(name, arglist, lin
# the `\input` content.
print_replacement = print_replacement.rstrip(' \t\n')
after = sub(r'^\\unskip\s+', '', after)
- elif bool(match('\S', after)):
+ elif bool(match(r'\S', after)):
# If the next character is not whitespace, we can just leave
# the `\n`, and it will yield a space.
pass
- elif bool(match('\s*$', after)):
+ elif bool(match(r'\s*$', after)):
# If the rest of the current line, and the next line, are
# whitespace, we will get the correct spacing without needing
# `\space{}`. We could leave `\n`, but it would be
@@ -421,14 +421,14 @@ def replace_print_cmd(name, arglist, lin
# it's at the end of an environment, and thus is needed to
# protect the following content
print_replacement += '\\space{}'
- after = sub('^\s+', '', after)
+ after = sub(r'^\s+', '', after)
forced_double_space_list.append((name, linenum))
else:
- if bool(match('\s+\S', after)):
+ if bool(match(r'\s+\S', after)):
# If the following line starts with whitespace, replace it
# with a newline, to protect in the event that the printed
# content ended with an end-of-environment command
- after = sub('^\s+', '\n', after)
+ after = sub(r'^\s+', '\n', after)
# Issue warnings, if warranted
# Warn about `\endinput`
if (r'\endinput' in print_replacement and
@@ -505,7 +505,7 @@ def replace_print_env(name, arglist, lin
#### The inlineverb and verb modes should work, but haven't been tested
since there are currently no environments that use them; they are only
- used by `\printpythontex`, which is a command.
+ used by `\\printpythontex`, which is a command.
'''
if print_replacement_mode == 'verb':
if print_replacement.count('\n') > 1:
@@ -519,17 +519,17 @@ def replace_print_env(name, arglist, lin
if delim not in print_replacement:
break
print_replacement = r'\verb' + delim + print_replacement + delim
- if not bool(match('[ \t]+\S', after)):
+ if not bool(match(r'[ \t]+\S', after)):
# If there is text on the same line as the end of the
# environment, we're fine (this is unusual). Otherwise,
# we need to toss the newline at the end of the environment
# and gobble leading spaces. Leading spaces need to be
# gobbled because previously they were at the beginning of a
# line, where they would have been discarded.
- if not bool(match('\s*$', after)):
- after = sub('^\s*?\n\s*', '', after)
+ if not bool(match(r'\s*$', after)):
+ after = sub(r'^\s*?\n\s*', '', after)
elif print_replacement_mode == 'verbatim':
- if bool(match('\s*?\n', after)):
+ if bool(match(r'\s*?\n', after)):
# Usually, we would end the verbatim environment with a newline.
# This is fine if there is content in `after` before the next
# newline---in fact, it's desirable, because the verbatim package
@@ -570,15 +570,15 @@ def replace_print_env(name, arglist, lin
# printed content. Later, we issue a warning in case it appears
# anywhere else.
print_replacement = print_replacement.rsplit(r'\endinput', 1)[0]
- if not bool(match('[ \t]+\S', after)):
+ if not bool(match(r'[ \t]+\S', after)):
# If there is text on the same line as the end of the
# environment, we're fine (this is unusual). Otherwise,
# we need to toss the newline at the end of the environment
# and gobble leading spaces. Leading spaces need to be
# gobbled because previously they were at the beginning of a
# line, where they would have been discarded.
- if not bool(match('\s*$', after)):
- after = sub('^\s*?\n\s*', '', after)
+ if not bool(match(r'\s*$', after)):
+ after = sub(r'^\s*?\n\s*', '', after)
elif (print_replacement.endswith('%\n') and
not print_replacement.endswith('\\%\n') and
not print_replacement.endswith('\\string%\n')):
@@ -590,15 +590,15 @@ def replace_print_env(name, arglist, lin
# warning if there is reason to think that a percent character
# was active in the last line.
print_replacement = print_replacement.rsplit(r'%', 1)[0]
- if not bool(match('[ \t]+\S', after)):
+ if not bool(match(r'[ \t]+\S', after)):
# If there is text on the same line as the end of the
# environment, we're fine (this is unusual). Otherwise,
# we need to toss the newline at the end of the environment
# and gobble leading spaces. Leading spaces need to be
# gobbled because previously they were at the beginning of a
# line, where they would have been discarded.
- if not bool(match('\s*$', after)):
- after = sub('^\s*?\n\s*', '', after)
+ if not bool(match(r'\s*$', after)):
+ after = sub(r'^\s*?\n\s*', '', after)
else:
# By default, LaTeX strips newlines and adds a space at the end
# of each line of content that is brought in by `\input`. This
@@ -611,13 +611,13 @@ def replace_print_env(name, arglist, lin
# `\unskip`
print_replacement = print_replacement.rstrip(' \t\n')
after = sub(r'^\s*\\unskip\s+', '', after)
- elif bool(match('[ \t]+\S', after)):
+ elif bool(match(r'[ \t]+\S', after)):
# If the next character after the end of the environment is
# not whitespace (usually not allowed), we can just leave
# the `\n` in printed content, and it will yield a space.
# So we need do nothing. But if there is text on that line
# we need `\space{}`.
- after = sub('^\s+', '\\space', after)
+ after = sub(r'^\s+', '\\space', after)
forced_double_space_list.append((name, linenum))
else:
# If the line at the end of the environment is blank,
@@ -1080,7 +1080,7 @@ for n, depytxline in enumerate(depytx):
else:
if obeylines:
# Take into account possible whitespace before arg
- if bool(match('[ \t]*\[', after)):
+ if bool(match(r'[ \t]*\[', after)):
after = after.split('[', 1)[1]
while ']' not in after:
texlinenum += 1
@@ -1094,11 +1094,11 @@ for n, depytxline in enumerate(depytx):
after = sub('^[ \t]*', '', after)
else:
# Allow peeking ahead a line for the argument
- if bool(match('\s*$', after)) and after.count('\n') < 2:
+ if bool(match(r'\s*$', after)) and after.count('\n') < 2:
texlinenum += 1
after += tex[texlinenum]
# Take into account possible whitespace before arg
- if bool(match('\s*\[', after)):
+ if bool(match(r'\s*\[', after)):
after = after.split('[', 1)[1]
while ']' not in after:
texlinenum += 1
@@ -1108,11 +1108,11 @@ for n, depytxline in enumerate(depytx):
optarg = None
# Account for eating whitespace afterward, if arg not found
if argindex == len(depy_args) - 1:
- if bool(match('\s*$', after)) and after.count('\n') < 2:
+ if bool(match(r'\s*$', after)) and after.count('\n') < 2:
texlinenum += 1
after += tex[texlinenum]
- if not bool(match('\s*$', after)):
- after = sub('^\s*', '', after)
+ if not bool(match(r'\s*$', after)):
+ after = sub(r'^\s*', '', after)
arglist.append(optarg)
elif arg == 'm':
# Account for possible line breaks or spaces before arg
@@ -1121,7 +1121,7 @@ for n, depytxline in enumerate(depytx):
else:
if obeylines:
# Account for possible leading whitespace
- if bool(match('[ \t\f\v]*\{', after)):
+ if bool(match(r'[ \t\f\v]*\{', after)):
after = after.split('{', 1)[1]
else:
print('* DePythonTeX error:')
@@ -1129,10 +1129,10 @@ for n, depytxline in enumerate(depytx):
sys.exit(1)
else:
# Peek ahead a line if needed
- if bool(match('\s*$', after)) and after.count('\n') < 2:
+ if bool(match(r'\s*$', after)) and after.count('\n') < 2:
texlinenum += 1
after += tex[texlinenum]
- if bool(match('\s*\{', after)):
+ if bool(match(r'\s*\{', after)):
after = after.split('{', 1)[1]
else:
print('* DePythonTeX error:')
@@ -1338,7 +1338,7 @@ for n, depytxline in enumerate(depytx):
after = tex[texlinenum]
break
after = after.split(end_environment, 1)[1]
- if bool(match('\s*\n', after)):
+ if bool(match(r'\s*\n', after)):
# If the line following `after` is whitespace, it should
# be stripped, since most environments throw away
# anything after the end of the environment
@@ -1389,7 +1389,7 @@ if preamble_additions:
# Take care of graphicspath
if args.graphicspath and settings['graphicx']:
for n, line in enumerate(texout):
- if '\\graphicspath' in line and not bool(match('\s*%', line)):
+ if '\\graphicspath' in line and not bool(match(r'\s*%', line)):
texout[n] = line.replace('\\graphicspath{', '\\graphicspath{{' + settings['outputdir'] +'/}')
break
elif line.startswith(r'\begin{document}'):
diff -up texmf-dist/scripts/pythontex/pythontex3.py.orig texmf-dist/scripts/pythontex/pythontex3.py
--- texmf-dist/scripts/pythontex/pythontex3.py.orig 2025-07-15 15:42:36.840317560 +0200
+++ texmf-dist/scripts/pythontex/pythontex3.py 2025-07-15 15:43:51.882856253 +0200
@@ -554,7 +554,7 @@ def do_upgrade_compatibility(data, old_d
It will continue to use the output directory for now. To keep your
current settings long-term and avoid seeing this message in the future,
add the following command to the preamble of your document, right after
- the "\\usepackage{pythontex}": "\setpythontexworkingdir{<outputdir>}".
+ the "\\usepackage{pythontex}": "\\setpythontexworkingdir{<outputdir>}".
If you wish to continue with the new settings instead, simply delete
the file with extension .pkl in the output directory, and run PythonTeX.
**** End PythonTeX upgrade message ****
@@ -1807,7 +1807,7 @@ def run_code(encoding, outputdir, workin
# Get the gobbleation. This is used to determine if
# other lines containing the basename are a continuation,
# or separate messages.
- errgobble = match('(\s*)', line).groups()[0]
+ errgobble = match(r'(\s*)', line).groups()[0]
if start_errgobble is None:
start_errgobble = errgobble
# Only issue a message and track down the line numer if
@@ -2072,7 +2072,7 @@ def run_code(encoding, outputdir, workin
# Get the gobbleation. This is used to determine if
# other lines containing the basename are a continuation,
# or separate messages.
- errgobble = match('(\s*)', line).groups()[0]
+ errgobble = match(r'(\s*)', line).groups()[0]
if start_errgobble is None:
start_errgobble = errgobble
# Only issue a message and track down the line numer if

186556
texlive.tlpdb

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,8 @@
diff -up source/texk/dvi2tty/dvi2tty-5.3.4/DVI.format source/texk/dvi2tty/dvi2tty-5.3.4/DVI
diff -up source/texk/dvidvi/dvidvi.c.format source/texk/dvidvi/dvidvi.c
--- source/texk/dvidvi/dvidvi.c.format 2015-07-28 21:21:51.170212574 -0400
+++ source/texk/dvidvi/dvidvi.c 2015-07-28 21:22:27.842988620 -0400
@@ -327,7 +327,7 @@ static void stringdvibuf(integer p, inte
diff -up texlive-base-20180414/source/texk/dvi2tty/dvi2tty-src/DVI.format texlive-base-20180414/source/texk/dvi2tty/dvi2tty-src/DVI
diff -up texlive-base-20180414/source/texk/dvidvi/dvidvi.c.format texlive-base-20180414/source/texk/dvidvi/dvidvi.c
--- texlive-base-20180414/source/texk/dvidvi/dvidvi.c.format 2017-06-23 10:55:46.000000000 -0400
+++ texlive-base-20180414/source/texk/dvidvi/dvidvi.c 2018-04-30 13:07:17.910020544 -0400
@@ -349,7 +349,7 @@ static void stringdvibuf(integer p, inte
* Print a usage error messsage, and quit.
*/
static void usage(void) {
@ -11,7 +11,7 @@ diff -up source/texk/dvidvi/dvidvi.c.format source/texk/dvidvi/dvidvi.c
(void)fprintf(stderr,"Usage: dvidvi [options] input[.dvi] [output]\n");
(void)fprintf(stderr,"where options are:\n");
(void)fprintf(stderr," [-f n] first page printed [-l n] last page printed\n");
@@ -806,7 +806,7 @@ default:
@@ -828,7 +828,7 @@ default:
} /* else argument with '-' */
} /* for */
if (*iname == 0) {
@ -20,7 +20,7 @@ diff -up source/texk/dvidvi/dvidvi.c.format source/texk/dvidvi/dvidvi.c
error("! no input file specified");
}
/* Inserted by djc@dsmail.hmi.de 3.8.1994 */
@@ -817,7 +817,7 @@ default:
@@ -839,7 +839,7 @@ default:
}
if (*oname != 0 && !quiet) {
@ -29,118 +29,9 @@ diff -up source/texk/dvidvi/dvidvi.c.format source/texk/dvidvi/dvidvi.c
(void)fprintf(stderr, "%s -> %s\n",iname,oname);
temp = nextstring ;
}
diff -up source/texk/ps2pk/objects.h.format source/texk/ps2pk/objects.h
--- source/texk/ps2pk/objects.h.format 2015-07-28 21:24:03.356405337 -0400
+++ source/texk/ps2pk/objects.h 2015-07-28 21:24:21.397295166 -0400
@@ -231,7 +231,7 @@ struct xobject {
/*SHARED*/
/* NDW: personally, I want to see status and error messages! */
#define IfTrace0(condition,model) \
- {if (condition) printf(model);}
+ {if (condition) printf("%s",model);}
#define IfTrace1(condition,model,arg0) \
{if (condition) printf(model,arg0);}
#define IfTrace2(condition,model,arg0,arg1) \
diff -up source/texk/web2c/cwebboot.cin.format source/texk/web2c/cwebboot.cin
--- source/texk/web2c/cwebboot.cin.format 2015-07-28 21:24:28.351252699 -0400
+++ source/texk/web2c/cwebboot.cin 2015-07-28 21:24:48.779127949 -0400
@@ -1098,7 +1098,7 @@ void
fatal(const char*s,const char*t)
#line 1182 "cwebdir/common.w"
{
-if(*s)printf(s);
+if(*s)printf("%s",s);
err_print(t);
history= fatal_message;exit(wrap_up());
}
diff -up source/texk/web2c/cwebdir/common.c.format source/texk/web2c/cwebdir/common.c
--- source/texk/web2c/cwebdir/common.c.format 2015-07-28 21:24:56.764079186 -0400
+++ source/texk/web2c/cwebdir/common.c 2015-07-28 21:25:24.830907788 -0400
@@ -1063,7 +1063,7 @@ void
fatal(s,t)
char*s,*t;
{
-if(*s)printf(s);
+if(*s)printf("%s",s);
err_print(t);
history= fatal_message;exit(wrap_up());
}
diff -up source/texk/web2c/cwebdir/common.w.format source/texk/web2c/cwebdir/common.w
--- source/texk/web2c/cwebdir/common.w.format 2015-07-28 21:25:32.886858591 -0400
+++ source/texk/web2c/cwebdir/common.w 2015-07-28 21:25:46.117777793 -0400
@@ -1180,7 +1180,7 @@ concatenated to print the final error me
fatal(s,t)
char *s,*t;
{
- if (*s) printf(s);
+ if (*s) printf("%s",s);
err_print(t);
history=fatal_message; exit(wrap_up());
}
diff -up source/texk/web2c/cwebdir/cweave.w.format source/texk/web2c/cwebdir/cweave.w
--- source/texk/web2c/cwebdir/cweave.w.format 2015-07-28 21:25:55.096722960 -0400
+++ source/texk/web2c/cwebdir/cweave.w 2015-07-28 21:26:13.680609471 -0400
@@ -1784,7 +1784,7 @@ void
print_cat(c) /* symbolic printout of a category */
eight_bits c;
{
- printf(cat_name[c]);
+ printf("%s",cat_name[c]);
}
@ The token lists for translated \TEX/ output contain some special control
diff -up source/texk/web2c/omegafonts/error_routines.c.format source/texk/web2c/omegafonts/error_routines.c
--- source/texk/web2c/omegafonts/error_routines.c.format 2015-07-28 21:26:21.654560776 -0400
+++ source/texk/web2c/omegafonts/error_routines.c 2015-07-28 21:27:54.356994659 -0400
@@ -62,7 +62,7 @@ void
yyerror(const_string fmt)
{
fprintf(stderr, "line %d (parsing): ", line_number);
- fprintf(stderr, fmt);
+ fprintf(stderr, "%s", fmt);
fprintf(stderr, "\n");
num_errors++;
}
@@ -72,7 +72,7 @@ void
warning_0(const_string fmt)
{
fprintf(stderr, "line %d (warning): ", line_number);
- fprintf(stderr, fmt);
+ fprintf(stderr, "%s", fmt);
fprintf(stderr, "\n");
}
@@ -120,7 +120,7 @@ void
fatal_error_0(const_string fmt)
{
fprintf(stderr, "line %d (fatal): ", line_number);
- fprintf(stderr, fmt);
+ fprintf(stderr, "%s", fmt);
fprintf(stderr, "\n");
exit(1);
}
@@ -156,7 +156,7 @@ void
internal_error_0(const_string fmt)
{
fprintf(stderr, "line %d (internal): ", line_number);
- fprintf(stderr, fmt);
+ fprintf(stderr, "%s", fmt);
fprintf(stderr, "\n");
exit(2);
}
diff -up source/texk/web2c/omegafonts/out_routines.c.format source/texk/web2c/omegafonts/out_routines.c
--- source/texk/web2c/omegafonts/out_routines.c.format 2015-07-28 21:28:09.547901891 -0400
+++ source/texk/web2c/omegafonts/out_routines.c 2015-07-28 21:28:22.209824567 -0400
@@ -368,5 +368,5 @@ out_digits(unsigned counter)
void
out(const_string sval)
{
- fprintf(file_output, sval);
+ fprintf(file_output, "%s", sval);
}
diff -up source/texk/web2c/tiedir/tie.c.format source/texk/web2c/tiedir/tie.c
--- source/texk/web2c/tiedir/tie.c.format 2015-07-28 21:28:30.242775511 -0400
+++ source/texk/web2c/tiedir/tie.c 2015-07-28 21:29:04.979563380 -0400
diff -up texlive-base-20180414/source/texk/web2c/tiedir/tie.c.format texlive-base-20180414/source/texk/web2c/tiedir/tie.c
--- texlive-base-20180414/source/texk/web2c/tiedir/tie.c.format 2016-11-25 13:24:38.000000000 -0500
+++ texlive-base-20180414/source/texk/web2c/tiedir/tie.c 2018-04-30 13:07:27.792787747 -0400
@@ -27,14 +27,14 @@
\
@ -158,35 +49,3 @@ diff -up source/texk/web2c/tiedir/tie.c.format source/texk/web2c/tiedir/tie.c
#define print2_ln(a,b){print2(a,b);term_new_line;}
#define print3_ln(a,b,c){print3(a,b,c);term_new_line;} \
diff -up source/texk/web2c/tiedir/tie.w.format source/texk/web2c/tiedir/tie.w
--- source/texk/web2c/tiedir/tie.w.format 2015-07-28 21:29:13.361512193 -0400
+++ source/texk/web2c/tiedir/tie.w 2015-07-28 21:30:18.135116633 -0400
@@ -458,14 +458,14 @@ for terminating an output line and writi
@^system dependencies@>
@d term_out stdout
-@d print(a) fprintf(term_out,a) /* `|print|' means write on the terminal */
+@d print(a) fprintf(term_out,"%s",a) /* `|print|' means write on the terminal */
@d print2(a,b) fprintf(term_out,a,b) /* same with two arguments */
@d print3(a,b,c) fprintf(term_out,a,b,c) /* same with three arguments */
@d print_c(v) fputc(v,term_out); /* print a single character */
@d new_line(v) fputc('\n',v) /* start new line */
@d term_new_line new_line(term_out)
/* start new line of the terminal */
-@d print_ln(v) {fprintf(term_out,v);term_new_line;}
+@d print_ln(v) {fprintf(term_out,"%s",v);term_new_line;}
/* `|print|' and then start new line */
@d print2_ln(a,b) {print2(a,b);term_new_line;} /* same with two arguments */
@d print3_ln(a,b,c) {print3(a,b,c);term_new_line;}
diff -up source/utils/devnag/src/devnag.c.format source/utils/devnag/src/devnag.c
--- source/utils/devnag/src/devnag.c.format 2015-07-28 21:23:26.446630739 -0400
+++ source/utils/devnag/src/devnag.c 2015-07-28 21:23:34.215583295 -0400
@@ -2400,7 +2400,7 @@ void put_macro(short macro) {
void err_ill(const char *str) {
fprintf(stderr, "Error: illegal character(s) \"%s\" detected at line %d:\n",
str, linenumber);
- fprintf(stderr, inbuf);
+ fprintf(stderr, "%s", inbuf);
exit(1);
}