summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Johannes Schoepfer <slackbuilds[at]schoepfer[dot]info>2018-07-12 19:44:16 +0700
committer Willy Sudiarto Raharjo <willysr@slackbuilds.org>2018-07-12 23:11:17 +0700
commitb74bcc93cdade9655159d5051551d38148aca0fb (patch)
treebc7847f601144eea753acdf64612203f2594795d
parent1ee0af95c37b333dc23690f2457f355bc6a068b6 (diff)
downloadslackbuilds-b74bcc93c.tar.gz
slackbuilds-b74bcc93c.tar.xz
office/texlive: Updated for version 2018.180630.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--office/texlive/README13
-rw-r--r--office/texlive/doinst.sh1
-rw-r--r--office/texlive/patches/20180625.diff688
-rw-r--r--office/texlive/prep/texmf_get.sh908
-rw-r--r--office/texlive/slack-desc12
-rw-r--r--office/texlive/texlive.SlackBuild57
-rw-r--r--office/texlive/texlive.info10
7 files changed, 1341 insertions, 348 deletions
diff --git a/office/texlive/README b/office/texlive/README
index 1498b10711..d08796d591 100644
--- a/office/texlive/README
+++ b/office/texlive/README
@@ -1,14 +1,13 @@
TeXLive (TeXLive binaries, support files, TeX formats)
-This package contains binaries (including xindy and biber)
-and many support files, TeX formats and packages, and other files included
-in the TeXLive TeX distribution. This should be adequate for the needs of
-most TeX users.
+This package contains binaries and many support files, TeX formats and
+packages, and other files included in the TeXLive TeX distribution.
+This should be adequate for the needs of most TeX users.
-The remaining stuff can be found in texlive-extra, texlive-fonts, and
-texlive-docs, all of which are also available at SlackBuilds.org.
+The remaining stuff can be found in texlive-extra and texlive-docs,
+all of which are also available at SlackBuilds.org.
-Have a look at the scripts in the prep/ directory to see how the texmf
+Have a look at the scripts in the prep/ directory to see how the texmf
archives were created from the original Texlive netarchives.
Note that this package conflicts with the tetex packages in Slackware,
diff --git a/office/texlive/doinst.sh b/office/texlive/doinst.sh
index 2a6c92bace..f864e767d6 100644
--- a/office/texlive/doinst.sh
+++ b/office/texlive/doinst.sh
@@ -1,4 +1,5 @@
chroot . /usr/bin/mktexlsr 1>/dev/null 2>/dev/null
printf "y\n" | chroot . /usr/bin/updmap-sys --syncwithtrees 1>/dev/null 2>/dev/null
+chroot . /usr/bin/updmap-sys 1>/dev/null 2>/dev/null
chroot . /usr/bin/fmtutil-sys --all 1>/dev/null 2>/dev/null
chroot . /usr/bin/mtxrun --generate 1>/dev/null 2>/dev/null
diff --git a/office/texlive/patches/20180625.diff b/office/texlive/patches/20180625.diff
new file mode 100644
index 0000000000..583d99486d
--- /dev/null
+++ b/office/texlive/patches/20180625.diff
@@ -0,0 +1,688 @@
+diff -ur ./texk/dvipdfm-x/ChangeLog ../b18/texk/dvipdfm-x/ChangeLog
+--- ./texk/dvipdfm-x/ChangeLog 2018-03-03 11:27:37.000000000 +0100
++++ ../b18/texk/dvipdfm-x/ChangeLog 2018-06-25 22:07:46.343277185 +0200
+@@ -1,3 +1,16 @@
++2018-05-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
++
++ * tt_cmap.c: Revert a part of changes in 2017-12-09,
++ which breaks to give tounicode entries for ligatures.
++ http://tug.org/pipermail/tex-live/2018-May/041608.html.
++ * configure.ac: Version 20180506.
++
++ 2018-04-28 Stefan Br\"uns <stefan.bruens@rwth-aachen.de>
++
++ * pngimage.c: Fix a bug which causes a segfault with 1/2/4-bit
++ transparent indexed PNGs.
++ * configure.ac: Version 20180428.
++
+ 2018-03-03 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * xbb.c: Remove unused lines.
+diff -ur ./texk/dvipdfm-x/configure ../b18/texk/dvipdfm-x/configure
+--- ./texk/dvipdfm-x/configure 2018-02-17 09:41:35.000000000 +0100
++++ ../b18/texk/dvipdfm-x/configure 2018-06-25 22:07:47.183276612 +0200
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.69 for dvipdfm-x (TeX Live) 20180217.
++# Generated by GNU Autoconf 2.69 for dvipdfm-x (TeX Live) 20180506.
+ #
+ # Report bugs to <tex-k@tug.org>.
+ #
+@@ -590,8 +590,8 @@
+ # Identity of this package.
+ PACKAGE_NAME='dvipdfm-x (TeX Live)'
+ PACKAGE_TARNAME='dvipdfm-x--tex-live-'
+-PACKAGE_VERSION='20180217'
+-PACKAGE_STRING='dvipdfm-x (TeX Live) 20180217'
++PACKAGE_VERSION='20180506'
++PACKAGE_STRING='dvipdfm-x (TeX Live) 20180506'
+ PACKAGE_BUGREPORT='tex-k@tug.org'
+ PACKAGE_URL=''
+
+@@ -1350,7 +1350,7 @@
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures dvipdfm-x (TeX Live) 20180217 to adapt to many kinds of systems.
++\`configure' configures dvipdfm-x (TeX Live) 20180506 to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1421,7 +1421,7 @@
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of dvipdfm-x (TeX Live) 20180217:";;
++ short | recursive ) echo "Configuration of dvipdfm-x (TeX Live) 20180506:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1551,7 +1551,7 @@
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-dvipdfm-x (TeX Live) configure 20180217
++dvipdfm-x (TeX Live) configure 20180506
+ generated by GNU Autoconf 2.69
+
+ Copyright (C) 2012 Free Software Foundation, Inc.
+@@ -2390,7 +2390,7 @@
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by dvipdfm-x (TeX Live) $as_me 20180217, which was
++It was created by dvipdfm-x (TeX Live) $as_me 20180506, which was
+ generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+@@ -8075,7 +8075,7 @@
+
+ # Define the identity of the package.
+ PACKAGE='dvipdfm-x--tex-live-'
+- VERSION='20180217'
++ VERSION='20180506'
+
+
+ cat >>confdefs.h <<_ACEOF
+@@ -14744,7 +14744,7 @@
+ Report bugs to <bug-libtool@gnu.org>."
+
+ lt_cl_version="\
+-dvipdfm-x (TeX Live) config.lt 20180217
++dvipdfm-x (TeX Live) config.lt 20180506
+ configured by $0, generated by GNU Autoconf 2.69.
+
+ Copyright (C) 2011 Free Software Foundation, Inc.
+@@ -16624,7 +16624,7 @@
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by dvipdfm-x (TeX Live) $as_me 20180217, which was
++This file was extended by dvipdfm-x (TeX Live) $as_me 20180506, which was
+ generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -16694,7 +16694,7 @@
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+-dvipdfm-x (TeX Live) config.status 20180217
++dvipdfm-x (TeX Live) config.status 20180506
+ configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+diff -ur ./texk/dvipdfm-x/configure.ac ../b18/texk/dvipdfm-x/configure.ac
+--- ./texk/dvipdfm-x/configure.ac 2018-02-28 00:14:55.000000000 +0100
++++ ../b18/texk/dvipdfm-x/configure.ac 2018-06-25 22:07:47.183276612 +0200
+@@ -7,7 +7,7 @@
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ dnl
+-AC_INIT([dvipdfm-x (TeX Live)], [20180217], [tex-k@tug.org])
++AC_INIT([dvipdfm-x (TeX Live)], [20180506], [tex-k@tug.org])
+ AC_PREREQ([2.65])
+ AC_CONFIG_SRCDIR([agl.c])
+ AC_CONFIG_AUX_DIR([../../build-aux])
+diff -ur ./texk/dvipdfm-x/pngimage.c ../b18/texk/dvipdfm-x/pngimage.c
+--- ./texk/dvipdfm-x/pngimage.c 2018-02-17 09:41:35.000000000 +0100
++++ ../b18/texk/dvipdfm-x/pngimage.c 2018-06-25 22:07:49.306275165 +0200
+@@ -964,12 +964,16 @@
+ png_bytep trans;
+ int num_trans;
+ png_uint_32 i;
++ png_byte bpc, mask, shift;
+
+ if (!png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ||
+ !png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, NULL)) {
+ WARN("%s: PNG does not have valid tRNS chunk but tRNS is requested.", PNG_DEBUG_STR);
+ return NULL;
+ }
++ bpc = png_get_bit_depth(png_ptr, info_ptr);
++ mask = 0xff >> (8 - bpc);
++ shift = 8 - bpc;
+
+ smask = pdf_new_stream(STREAM_COMPRESS);
+ dict = pdf_stream_dict(smask);
+@@ -981,7 +985,8 @@
+ pdf_add_dict(dict, pdf_new_name("ColorSpace"), pdf_new_name("DeviceGray"));
+ pdf_add_dict(dict, pdf_new_name("BitsPerComponent"), pdf_new_number(8));
+ for (i = 0; i < width*height; i++) {
+- png_byte idx = image_data_ptr[i];
++ /* data is packed for 1/2/4 bpc formats, msb first */
++ png_byte idx = (image_data_ptr[bpc * i / 8] >> (shift - bpc * i % 8)) & mask;
+ smask_data_ptr[i] = (idx < num_trans) ? trans[idx] : 0xff;
+ }
+ pdf_add_stream(smask, (char *)smask_data_ptr, width*height);
+diff -ur ./texk/dvipdfm-x/tt_cmap.c ../b18/texk/dvipdfm-x/tt_cmap.c
+--- ./texk/dvipdfm-x/tt_cmap.c 2017-12-09 15:07:09.000000000 +0100
++++ ../b18/texk/dvipdfm-x/tt_cmap.c 2018-06-25 22:07:49.617274953 +0200
+@@ -1,6 +1,6 @@
+ /* This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks.
+
+- Copyright (C) 2007-2017 by Jin-Hwan Cho and Shunsaku Hirata,
++ Copyright (C) 2007-2018 by Jin-Hwan Cho and Shunsaku Hirata,
+ the dvipdfmx project team.
+
+ This program is free software; you can redistribute it and/or modify
+@@ -928,19 +928,12 @@
+ }
+ #undef MAX_UNICODES
+ if (unicode_count == -1) {
+-#if defined(LIBDPX)
+ if(verbose > VERBOSE_LEVEL_MIN) {
+ if (name)
+ MESG("No Unicode mapping available: GID=%u, name=%s\n", gid, name);
+ else
+ MESG("No Unicode mapping available: GID=%u\n", gid);
+ }
+-#else
+- if (name)
+- MESG("No Unicode mapping available: GID=%u, name=%s\n", gid, name);
+- else
+- MESG("No Unicode mapping available: GID=%u\n", gid);
+-#endif /* LIBDPX */
+ } else {
+ /* the Unicode characters go into wbuf[2] and following, in UTF16BE */
+ /* we rely on WBUF_SIZE being more than adequate for MAX_UNICODES */
+@@ -1021,13 +1014,7 @@
+ {
+ USHORT count = 0;
+ USHORT cid = cffont ? cff_charsets_lookup_inverse(cffont, gid) : gid;
+-
+- /* Skip PUA characters and alphabetic presentation forms, allowing
+- * handle_subst_glyphs() as it might find better mapping. Fixes the
+- * mapping of ligatures encoded in PUA in fonts like Linux Libertine
+- * and old Adobe fonts.
+- */
+- if (is_used_char2(used_chars, cid) && !is_PUA_or_presentation(ch)) {
++ if (is_used_char2(used_chars, cid)) {
+ int len;
+ unsigned char *p = wbuf + 2;
+
+@@ -1038,11 +1025,18 @@
+ len = UC_UTF16BE_encode_char((int32_t) ch, &p, wbuf + WBUF_SIZE);
+ CMap_add_bfchar(cmap, wbuf, 2, wbuf + 2, len);
+
+- /* Avoid duplicate entry
+- * There are problem when two Unicode code is mapped to
+- * single glyph...
++ /* Skip PUA characters and alphabetic presentation forms, allowing
++ * handle_subst_glyphs() as it might find better mapping. Fixes the
++ * mapping of ligatures encoded in PUA in fonts like Linux Libertine
++ * and old Adobe fonts.
+ */
+- used_chars[cid / 8] &= ~(1 << (7 - (cid % 8)));
++ if (!is_PUA_or_presentation(ch)) {
++ /* Avoid duplicate entry
++ * There are problem when two Unicode code is mapped to
++ * single glyph...
++ */
++ used_chars[cid / 8] &= ~(1 << (7 - (cid % 8)));
++ }
+ }
+
+ return count;
+diff -ur ./texk/web2c/ptexdir/ChangeLog ../b18/texk/web2c/ptexdir/ChangeLog
+--- ./texk/web2c/ptexdir/ChangeLog 2018-02-05 13:35:05.000000000 +0100
++++ ../b18/texk/web2c/ptexdir/ChangeLog 2018-06-25 22:08:39.566240911 +0200
+@@ -1,3 +1,16 @@
++2018-05-06 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
++
++ * kanji.c: More strict check kanji token.
++
++2018-04-14 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
++
++ * ptex-base.ch: Fix issue GitHub:texjporg/tex-jp-build#57
++ that discontinuous KINSOKU/INHIBIT table cannot be
++ searched properly.
++ (regression caused by a commmit of 2017-09-11)
++ * tests/free_pena.tex, tests/free_ixsp.tex: Added.
++ * ptex_version.h: pTeX version p3.8.1.
++
+ 2018-02-05 Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+
+ * ptex-base.ch: Set subtype for JFM glue in math list.
+diff -ur ./texk/web2c/ptexdir/kanji.c ../b18/texk/web2c/ptexdir/kanji.c
+--- ./texk/web2c/ptexdir/kanji.c 2016-11-25 19:24:38.000000000 +0100
++++ ../b18/texk/web2c/ptexdir/kanji.c 2018-06-25 22:08:39.675240837 +0200
+@@ -4,6 +4,7 @@
+ */
+
+ #include "kanji.h"
++#define CS_TOKEN_FLAG 0xFFFF
+
+ #if !defined(WIN32)
+ int sjisterminal;
+@@ -12,7 +13,8 @@
+ /* TOKEN */
+ boolean check_kanji(integer c)
+ {
+- return is_char_kanji(c);
++ if (c >= CS_TOKEN_FLAG) return false;
++ else return is_char_kanji(c);
+ }
+
+ boolean is_char_ascii(integer c)
+diff -ur ./texk/web2c/ptexdir/ptex-base.ch ../b18/texk/web2c/ptexdir/ptex-base.ch
+--- ./texk/web2c/ptexdir/ptex-base.ch 2018-02-05 13:35:05.000000000 +0100
++++ ../b18/texk/web2c/ptexdir/ptex-base.ch 2018-06-25 22:08:39.677240836 +0200
+@@ -58,6 +58,7 @@
+ % pTeX p3.7.1.
+ % (2017-09-07) HK pTeX p3.7.2 More restrictions on direction change commands.
+ % (2018-01-21) HK Added \ptexversion primitive and co. pTeX p3.8.
++% (2018-04-14) HK pTeX p3.8.1 Bug fix for discontinuous KINSOKU table.
+ %
+
+ @x
+@@ -73,8 +74,8 @@
+ @y
+ @d pTeX_version=3
+ @d pTeX_minor_version=8
+-@d pTeX_revision==".0"
+-@d pTeX_version_string=='-p3.8.0' {current \pTeX\ version}
++@d pTeX_revision==".1"
++@d pTeX_version_string=='-p3.8.1' {current \pTeX\ version}
+ @#
+ @d pTeX_banner=='This is pTeX, Version 3.14159265',pTeX_version_string
+ @d pTeX_banner_k==pTeX_banner
+@@ -6397,6 +6398,8 @@
+ @d inhibit_both=0 {disable to insert space before 2byte-char and after it}
+ @d inhibit_previous=1 {disable to insert space before 2byte-char}
+ @d inhibit_after=2 {disable to insert space after 2byte-char}
++@d inhibit_none=3 {enable to insert space before/after 2byte-char}
++@d inhibit_unused=4 {unused entry}
+ @d no_entry=1000
+ @d new_pos=0
+ @d cur_pos=1
+@@ -6427,14 +6430,15 @@
+ begin s:=calc_pos(c); p:=s;
+ if n=new_pos then
+ begin repeat
+- if (inhibit_xsp_code(p)=0)or(inhibit_xsp_code(p)=c) then goto done;
++ if (inhibit_xsp_type(p)=inhibit_unused)or(inhibit_xsp_code(p)=0)
++ or(inhibit_xsp_code(p)=c) then goto done;
+ incr(p); if p>255 then p:=0;
+ until s=p; p:=no_entry;
+ end
+ else
+ begin repeat
+- if inhibit_xsp_code(p)=0 then goto done1;
+- if inhibit_xsp_code(p)=c then goto done;
++ if inhibit_xsp_code(p)=0 then goto done1
++ else if (inhibit_xsp_type(p)<>inhibit_unused)and(inhibit_xsp_code(p)=c) then goto done;
+ incr(p); if p>255 then p:=0;
+ until s=p;
+ done1: p:=no_entry;
+@@ -6447,9 +6451,10 @@
+ begin p:=cur_chr; scan_int; n:=cur_val; scan_optional_equals; scan_int;
+ if is_char_kanji(n) then
+ begin j:=get_inhibit_pos(tokanji(n),new_pos);
+- if (j<>no_entry)and(cur_val>inhibit_after)and(global or cur_level=level_one) then
+- begin n:=0; cur_val:=0 end
+- { remove the entry from inhibit table }
++ if (j<>no_entry)and(cur_val>inhibit_after) then
++ begin if global or(cur_level=level_one) then cur_val:=inhibit_unused
++ { remove the entry from inhibit table }
++ else cur_val:=inhibit_none; end
+ else if j=no_entry then
+ begin print_err("Inhibit table is full!!");
+ help1("I'm skipping this control sequences.");@/
+@@ -6466,7 +6471,7 @@
+
+ @ @<Fetch inhibit type from some table@>=
+ begin scan_int; q:=get_inhibit_pos(tokanji(cur_val),cur_pos);
+-cur_val_level:=int_val; cur_val:=3;
++cur_val_level:=int_val; cur_val:=inhibit_none;
+ if q<>no_entry then cur_val:=inhibit_xsp_type(q);
+ end
+
+@@ -6476,6 +6481,7 @@
+
+ @d pre_break_penalty_code=1
+ @d post_break_penalty_code=2
++@d kinsoku_unused_code=3
+
+ @<Put each...@>=
+ primitive("prebreakpenalty",assign_kinsoku,pre_break_penalty_code);
+@@ -6502,15 +6508,16 @@
+ gubed
+ if n=new_pos then
+ begin repeat
+- if (kinsoku_type(p)=0)or(kinsoku_code(p)=c) then goto done;
++ if (kinsoku_type(p)=0)or(kinsoku_type(p)=kinsoku_unused_code)
++ or(kinsoku_code(p)=c) then goto done;
+ incr(p); if p>255 then p:=0;
+ until s=p;
+ p:=no_entry;
+ end
+ else
+ begin repeat
+- if kinsoku_type(p)=0 then goto done1;
+- if kinsoku_code(p)=c then goto done;
++ if kinsoku_type(p)=0 then goto done1
++ else if (kinsoku_type(p)<>kinsoku_unused_code)and(kinsoku_code(p)=c) then goto done;
+ incr(p); if p>255 then p:=0;
+ until s=p;
+ done1: p:=no_entry;
+@@ -6523,8 +6530,8 @@
+ begin p:=cur_chr; scan_int; n:=cur_val; scan_optional_equals; scan_int;
+ if is_char_ascii(n) or is_char_kanji(n) then
+ begin j:=get_kinsoku_pos(tokanji(n),new_pos);
+- if (j<>no_entry)and(cur_val=0)and(global or cur_level=level_one) then
+- define(kinsoku_base+j,0,0) { remove the entry from KINSOKU table }
++ if (j<>no_entry)and(cur_val=0)and(global or(cur_level=level_one)) then
++ define(kinsoku_base+j,kinsoku_unused_code,0) { remove the entry from KINSOKU table }
+ else begin
+ if j=no_entry then begin
+ print_err("KINSOKU table is full!!");
+diff -ur ./texk/web2c/ptexdir/ptex_version.h ../b18/texk/web2c/ptexdir/ptex_version.h
+--- ./texk/web2c/ptexdir/ptex_version.h 2018-01-21 04:48:06.000000000 +0100
++++ ../b18/texk/web2c/ptexdir/ptex_version.h 2018-06-25 22:08:39.678240835 +0200
+@@ -1 +1 @@
+-#define PTEX_VERSION "p3.8.0"
++#define PTEX_VERSION "p3.8.1"
+diff -ur ./texk/web2c/uptexdir/kanji.c ../b18/texk/web2c/uptexdir/kanji.c
+--- ./texk/web2c/uptexdir/kanji.c 2018-02-25 01:31:25.000000000 +0100
++++ ../b18/texk/web2c/uptexdir/kanji.c 2018-06-25 22:08:41.864239345 +0200
+@@ -18,7 +18,7 @@
+ /* TOKEN */
+ boolean check_kanji (integer c)
+ {
+- if (c > CS_TOKEN_FLAG) return false;
++ if (c >= CS_TOKEN_FLAG) return false;
+ else if (!(XXHi(c)>=KCAT_KANJI && XXHi(c)<=KCAT_HANGUL)) return false;
+ else return is_char_kanji(c);
+ }
+diff -ur ./utils/README ../b18/utils/README
+--- ./utils/README 2018-04-08 22:08:33.000000000 +0200
++++ ../b18/utils/README 2018-06-25 22:08:45.738236705 +0200
+@@ -1,4 +1,4 @@
+-$Id: README 47384 2018-04-08 20:08:33Z karl $
++$Id: README 47642 2018-05-08 16:06:43Z karl $
+ Public domain. Originally written 2005 by Karl Berry.
+
+ Extra utilities we (optionally) compile for TeX Live.
+@@ -16,7 +16,7 @@
+
+ lacheck - maintained here, by us
+
+-m-tx 0.63 - checked 09jan18
++m-tx 0.63a - checked 29apr18
+ http://ctan.org/pkg/m-tx/
+
+ pmx 2.8.4 - checked 14feb18
+diff -ur ./utils/m-tx/ChangeLog ../b18/utils/m-tx/ChangeLog
+--- ./utils/m-tx/ChangeLog 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/ChangeLog 2018-06-25 22:08:49.771233956 +0200
+@@ -1,3 +1,7 @@
++2018-04-29 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
++
++ * Import m-tx 0.63a.
++
+ 2018-01-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * Import m-tx 0.63.
+diff -ur ./utils/m-tx/TLpatches/ChangeLog ../b18/utils/m-tx/TLpatches/ChangeLog
+--- ./utils/m-tx/TLpatches/ChangeLog 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/TLpatches/ChangeLog 2018-06-25 22:08:49.772233956 +0200
+@@ -1,3 +1,7 @@
++2018-04-29 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
++
++ * patch-01-write-bin: Update for 0.63a.
++
+ 2018-01-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * patch-01-write-bin: Update for 0.63.
+diff -ur ./utils/m-tx/TLpatches/TL-Changes ../b18/utils/m-tx/TLpatches/TL-Changes
+--- ./utils/m-tx/TLpatches/TL-Changes 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/TLpatches/TL-Changes 2018-06-25 22:08:49.772233956 +0200
+@@ -1,4 +1,4 @@
+-Changes applied to the mtx-0.63 tree as obtained from:
++Changes applied to the mtx-0.63a tree as obtained from:
+ http://www.ctan.org/tex-archive/support/m-tx/
+
+ Remove:
+diff -ur ./utils/m-tx/TLpatches/patch-01-write-bin ../b18/utils/m-tx/TLpatches/patch-01-write-bin
+--- ./utils/m-tx/TLpatches/patch-01-write-bin 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/TLpatches/patch-01-write-bin 2018-06-25 22:08:49.772233956 +0200
+@@ -1,6 +1,21 @@
+-diff -ur mtx-0.63.orig/globals.c mtx-0.63/globals.c
+---- mtx-0.63.orig/globals.c Tue Jan 09 01:39:42 2018
+-+++ mtx-0.63/globals.c Tue Jan 09 08:46:40 2018
++diff -ur mtx-0.63a/files.c mtx-src/files.c
++--- mtx-0.63a/files.c Tue Jan 09 01:39:42 2018
+++++ mtx-src/files.c Wed Apr 25 18:07:12 2018
++@@ -289,9 +289,9 @@
++ pushFile(infilename);
++ strcpy(outfile_NAME, outfilename);
++ if (outfile != NULL)
++- outfile = freopen(outfile_NAME, "w", outfile);
+++ outfile = freopen(outfile_NAME, "wb", outfile);
++ else
++- outfile = fopen(outfile_NAME, "w");
+++ outfile = fopen(outfile_NAME, "wb");
++ _SETIO(outfile != NULL, FileNotFound);
++ strcpy(stylefile_NAME, stylefilename);
++ if (stylefile != NULL)
++diff -ur mtx-0.63a/globals.c mtx-src/globals.c
++--- mtx-0.63a/globals.c Tue Jan 09 01:39:42 2018
+++++ mtx-src/globals.c Wed Apr 25 18:07:37 2018
+ @@ -230,7 +230,7 @@
+ if (outfile != NULL)
+ fclose(outfile);
+diff -ur ./utils/m-tx/configure ../b18/utils/m-tx/configure
+--- ./utils/m-tx/configure 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/configure 2018-06-25 22:08:49.879233883 +0200
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.69 for m-tx (TeX Live) 0.63.
++# Generated by GNU Autoconf 2.69 for m-tx (TeX Live) 0.63a.
+ #
+ # Report bugs to <tex-k@tug.org>.
+ #
+@@ -580,8 +580,8 @@
+ # Identity of this package.
+ PACKAGE_NAME='m-tx (TeX Live)'
+ PACKAGE_TARNAME='m-tx--tex-live-'
+-PACKAGE_VERSION='0.63'
+-PACKAGE_STRING='m-tx (TeX Live) 0.63'
++PACKAGE_VERSION='0.63a'
++PACKAGE_STRING='m-tx (TeX Live) 0.63a'
+ PACKAGE_BUGREPORT='tex-k@tug.org'
+ PACKAGE_URL=''
+
+@@ -1275,7 +1275,7 @@
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures m-tx (TeX Live) 0.63 to adapt to many kinds of systems.
++\`configure' configures m-tx (TeX Live) 0.63a to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1341,7 +1341,7 @@
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of m-tx (TeX Live) 0.63:";;
++ short | recursive ) echo "Configuration of m-tx (TeX Live) 0.63a:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1438,7 +1438,7 @@
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-m-tx (TeX Live) configure 0.63
++m-tx (TeX Live) configure 0.63a
+ generated by GNU Autoconf 2.69
+
+ Copyright (C) 2012 Free Software Foundation, Inc.
+@@ -1861,7 +1861,7 @@
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by m-tx (TeX Live) $as_me 0.63, which was
++It was created by m-tx (TeX Live) $as_me 0.63a, which was
+ generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+@@ -3784,7 +3784,7 @@
+
+ # Define the identity of the package.
+ PACKAGE='m-tx--tex-live-'
+- VERSION='0.63'
++ VERSION='0.63a'
+
+
+ cat >>confdefs.h <<_ACEOF
+@@ -5868,7 +5868,7 @@
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by m-tx (TeX Live) $as_me 0.63, which was
++This file was extended by m-tx (TeX Live) $as_me 0.63a, which was
+ generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -5925,7 +5925,7 @@
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+-m-tx (TeX Live) config.status 0.63
++m-tx (TeX Live) config.status 0.63a
+ configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+diff -ur ./utils/m-tx/mtx-src/Corrections ../b18/utils/m-tx/mtx-src/Corrections
+--- ./utils/m-tx/mtx-src/Corrections 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/Corrections 2018-06-25 22:08:49.880233882 +0200
+@@ -3,6 +3,12 @@
+
+ Newest items at top. You might also want to look at file `MAINTENANCE`.
+
++Version 0.63a
++-------------
++
++Commented out apparently spurious begin...end block in preambleDefaults
++in preamble.pas. (RDT)
++
+ Version 0.63
+ ------------
+
+diff -ur ./utils/m-tx/mtx-src/files.c ../b18/utils/m-tx/mtx-src/files.c
+--- ./utils/m-tx/mtx-src/files.c 2016-11-25 19:24:43.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/files.c 2018-06-25 22:08:49.882233881 +0200
+@@ -289,9 +289,9 @@
+ pushFile(infilename);
+ strcpy(outfile_NAME, outfilename);
+ if (outfile != NULL)
+- outfile = freopen(outfile_NAME, "w", outfile);
++ outfile = freopen(outfile_NAME, "wb", outfile);
+ else
+- outfile = fopen(outfile_NAME, "w");
++ outfile = fopen(outfile_NAME, "wb");
+ _SETIO(outfile != NULL, FileNotFound);
+ strcpy(stylefile_NAME, stylefilename);
+ if (stylefile != NULL)
+diff -ur ./utils/m-tx/mtx-src/libp2c/p2clib.c ../b18/utils/m-tx/mtx-src/libp2c/p2clib.c
+--- ./utils/m-tx/mtx-src/libp2c/p2clib.c 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/libp2c/p2clib.c 2018-06-25 22:08:49.883233880 +0200
+@@ -73,8 +73,8 @@
+ {
+ register char *dd = (char *)d, *ss = (char *)s;
+ if (dd < ss || dd - ss >= n) {
+-#if defined(bcopy) && defined(memcpy)
+- my_memcpy(dd, ss, n);
++#if defined(bcopy) && defined(memcpy)
++ Anyptr my_memcpy(Anyptr d, Const Anyptr s, size_t n);
+ #else
+ memcpy(dd, ss, n);
+ #endif
+diff -ur ./utils/m-tx/mtx-src/preamble.c ../b18/utils/m-tx/mtx-src/preamble.c
+--- ./utils/m-tx/mtx-src/preamble.c 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/preamble.c 2018-06-25 22:08:49.953233832 +0200
+@@ -801,8 +801,8 @@
+ stave_size[i] = unspec;
+ for (i = 0; i <= maxstaves; i++)
+ nspace[i] = unspec;
+- nspace[i] = unspec;
+- stave_size[i-1] = unspec;
++ /* next line seems to be spurious. 0.63a RDT */
++ /* begin nspace[i]:=unspec; stave_size[i]:=unspec; end; */
+ n_pages = 1;
+ n_systems = 1;
+ readStyles();
+diff -ur ./utils/m-tx/mtx-src/preamble.pas ../b18/utils/m-tx/mtx-src/preamble.pas
+--- ./utils/m-tx/mtx-src/preamble.pas 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/preamble.pas 2018-06-25 22:08:49.953233832 +0200
+@@ -501,7 +501,8 @@
+ for i:=1 to maxvoices do setVocal(i,false);
+ for i:=1 to maxstaves do stave_size[i]:=unspec;
+ for i:=0 to maxstaves do nspace[i]:=unspec;
+- begin nspace[i]:=unspec; stave_size[i]:=unspec; end;
++ { next line seems to be spurious. 0.63a RDT }
++ { begin nspace[i]:=unspec; stave_size[i]:=unspec; end; }
+ n_pages:=1; n_systems:=1;
+ readStyles; old_known_styles := known_styles;
+ for i:=1 to lines_in_paragraph do omit_line[i]:=false;
+diff -ur ./utils/m-tx/mtx-src/prepmx.c ../b18/utils/m-tx/mtx-src/prepmx.c
+--- ./utils/m-tx/mtx-src/prepmx.c 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/prepmx.c 2018-06-25 22:08:49.954233832 +0200
+@@ -66,8 +66,8 @@
+
+ /** M-Tx preprocessor to PMX Dirk Laurie */
+
+-#define version "0.63"
+-#define version_date "<7 January 2018>"
++#define version "0.63a"
++#define version_date "<8 April 2018>"
+
+ /** See file "Corrections" for updates */
+
+@@ -758,7 +758,7 @@
+ Static void topOfPMXfile(void)
+ {
+ Char STR2[24];
+- Char STR3[32];
++ Char STR3[30];
+
+ putLine("---");
+ sprintf(STR2, "\\def\\mtxversion{%s}", version);
+diff -ur ./utils/m-tx/mtx-src/prepmx.pas ../b18/utils/m-tx/mtx-src/prepmx.pas
+--- ./utils/m-tx/mtx-src/prepmx.pas 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/mtx-src/prepmx.pas 2018-06-25 22:08:49.954233832 +0200
+@@ -5,8 +5,8 @@
+ { CMO: addition/change by Christian Mondrup }
+
+ {* M-Tx preprocessor to PMX Dirk Laurie }
+-const version = '0.63';
+- version_date = '<7 January 2018>';
++const version = '0.63a';
++ version_date = '<8 April 2018>';
+
+ {* See file "Corrections" for updates }
+
+diff -ur ./utils/m-tx/tests/mozart.pmx ../b18/utils/m-tx/tests/mozart.pmx
+--- ./utils/m-tx/tests/mozart.pmx 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/tests/mozart.pmx 2018-06-25 22:08:50.059233760 +0200
+@@ -1,6 +1,6 @@
+ ---
+-\def\mtxversion{0.63}
+-\def\mtxdate{<7 January 2018>}
++\def\mtxversion{0.63a}
++\def\mtxdate{<8 April 2018>}
+ \input mtx
+ \mtxComposerLine{}{W. A. Mozart (1756--1791)}
+ \mtxTitleLine{Riff in C}
+diff -ur ./utils/m-tx/version.ac ../b18/utils/m-tx/version.ac
+--- ./utils/m-tx/version.ac 2018-01-09 04:41:12.000000000 +0100
++++ ../b18/utils/m-tx/version.ac 2018-06-25 22:08:50.059233760 +0200
+@@ -8,4 +8,4 @@
+ dnl --------------------------------------------------------
+ dnl
+ dnl m4-include this file to define the current mtx version
+-m4_define([mtx_version], [0.63])
++m4_define([mtx_version], [0.63a])
diff --git a/office/texlive/prep/texmf_get.sh b/office/texlive/prep/texmf_get.sh
index 396fdcebf8..7d7c37d2d2 100644
--- a/office/texlive/prep/texmf_get.sh
+++ b/office/texlive/prep/texmf_get.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# texmf_get.sh (c) 2016-2017 Johannes Schoepfer, Germany, slackbuilds[at]schoepfer[dot]info
+# texmf_get.sh (c) 2016-2018 Johannes Schoepfer, Germany, slackbuilds[at]schoepfer[dot]info
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,250 +20,262 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
-# V 0.14.2
+# V 15.0.0
#
# Prepare xz-compressed tarballs of texlive-texmf-trees based on texlive.tlpdb
-# This script takes care of dependencies(as far as these are present in texlive.tlpdb) of collections and packages,
-# and that every texlive-package is included only once.
-# The editions(base/extra/fonts/docs) should contain nobinaries(exception biber)
-# -base: the most usefull stuff, all metafonts, all manpages, the most
-# binaries/scripts, 65mb 2017-11-07
+# This script takes care of dependencies(as far as these are present in texlive.tlpdb)
+# of collections and packages, and that every texlive-package is included only once.
+# The editions(base/extra/docs) should contain no binaries(exception biber)
+# -base: the most usefull stuff, most binaries/scripts,
+# manpages for compiled binaries 65mb 2017-11-07
# -docs: -base documentation only, no manpages/GNU infofiles
-# -fonts: fonts only, no metafonts
# -extra: remaining stuff
#
-# texlive netarchive policy: Every package is included as dependency
+# texlive netarchive policy: Every package is included as dependency
# in exactly one collection. A package may have dependencies on other
# packages from any collection.
# package source: http://mirror.ctan.org/systems/texlive/tlnet/archive/
#set -e
-MAJORVERSION=2017
+MAJORVERSION=2018
-# globally excluded packages, which e.g. are
+# -excluded packages, which are
# -useless without tlmgr-installer
# -non-linux
-# -covered by an external package
-# -obsolete
+# -covered by an external package e.g. asymptote on SBo
+# -obsolete
+# -binaries provided already by texlive.Slackbuild
+# -does only contain sources, or hyphen directives, e.g. metatype1, patch, ...
+# -does only contain hyphen directives, e.g. hyphen-farsi ...
global_exclude="
+ hyphen-farsi
+ hyphen-arabic
asymptote
tlcockpit
tlshell
+ texlive.infra
+ texlive-docindex
+ texlive-scripts
+ texlive-msg-translations
texosquery
+ texliveonfly
+ texworks
aleph
omega
antomega
omegaware
lambda
otibet
+ ocherokee
+ oinuit
cslatex
+ bibarts
+ metatype1
+ patch
+ wintools.win32
+ dviout.win32
+ "
+
+ # special packages, move their type1 fonts(if metfonts are present)
+ # and/or docs to -extra
+special_packages="
+ koma-script
+ velthuis
+ armtex
+ montex
+ vntex
+ pl
+ cc-pl
+ cs
+ musixtex-fonts
+ tipa
+ cbfonts
+ ptex-fonts
+ uptex-fonts
+ "
+#Todo: split type1 fonts, or keep subset of type1 fonts in base
+# cm-super
+
+# keep precompiled binaries, list binary, not package name
+keep_precompiled="
+ biber
"
texmf_editions () {
- # At first, $corepackages for the base, and other essentials
- PACKAGES="
- $(cat $corepackages)
- collection-basic
- collection-latex
- collection-metapost
- collection-plaingeneric
- collection-fontutils
- collection-luatex
- collection-context
- cbfonts-fd
- xetex-devanagari
- " texmfget base || exit 1
- # Now the fonts package to make sure that big fonts like cm-super are not included elsewhere as dependency
+ # "excludes from -base", also dependencies are excluded
PACKAGES="
cm-super
- cbfonts
- ipaex
- wadalab
- ethiop-t1
- fonts-tlwg
- uhc
- fandol
- arphic
- arphic-ttf
- nanumtype1
- baekmuk
- unfonts-extra
- unfonts-core
- " texmfget fonts || exit 1
-
- # put some stuff in "extra" to before these make their way into "base" as dependency
- PACKAGES="
- $(grep ^"name biblatex" $db | grep -v '\.' | cut -d' ' -f2 )
- biber.x86_64-linux
- biber.i386-linux
+ biber
bib2gls
- bibarts
- arara
- latex2nemeth
- ghsystem
- adobemapping
knitting
pgfornament
pgfplots
- arabi
- nwejm
- uantwerpendocs
- sduthesis
- stellenbosch
- fithesis
- gregoriotex
- lilyglyphs
- musixtex-fonts
- beebe
- velthuis
- mwe
- pdfx
- media9
pst-cox
pst-poker
pst-vectorian
pst-geo
- quran
- ijsra
- fibeamer
- udesoftec
- xduthesis
- hustthesis
- bangorcsthesis
- sapthesis
- uowthesis
- cs
- pl
- cc-pl
- tipa
- kerkis
- amiri
- cns
- vntex
- montex
- xcharter
- fonts-churchslavonic
- japanese-otf
- sanskrit-t1
- skaknew
- padauk
+ bclogo
+ $(grep ^"name .*biblatex" $db | cut -d' ' -f2 )
" texmfget extra || exit 1
- # Completing the base
+ # packages/collections and their dependencies for -base
PACKAGES="
- collection-langcyrillic
+ $(cat $corepackages)
+ etoolbox
+ xcolor
+ memoir
+ velthuis
+ wasy
+ ptex
+ platex
+ revtex
+ uptex
+ uplatex
+ collection-basic
+ collection-latex
+ collection-metapost
+ collection-plaingeneric
+ collection-luatex
+ collection-context
+ collection-fontutils
collection-langczechslovak
collection-langeuropean
collection-langenglish
collection-langfrench
- collection-langgerman
- collection-langgreek
collection-langitalian
collection-langpolish
collection-langportuguese
collection-langspanish
+ collection-latexrecommended
+ $(collection_by_size fontsextra 70000 || exit 1)
+ $(collection_by_size publishers 10000 || exit 1)
+ " texmfget base
+
+ # packages/collections and their dependencies for -extra
+ PACKAGES="
+ amiri
+ arabi
+ arabi-add
+ arara
+ arev
+ bangorcsthesis
+ beamer2thesis
+ beamertheme-detlevcm
+ beamertheme-epyt
+ beamertheme-saintpetersburg
+ beebe
+ bhcexam
+ bxtexlogo
+ churchslavonic
+ collection-fontsextra
+ collection-langchinese
+ collection-langcjk
collection-langjapanese
collection-langkorean
+ collection-publishers
+ collection-texworks
+ collection-wintools
+ ctan-o-mat
+ ctanify
+ ctanupload
+ dad
+ ethiop-t1
+ fibeamer
+ fithesis
+ ghsystem
+ gregoriotex
+ hustthesis
+ ijsra
+ iwhdp
+ jpsj
+ kerkis
+ ketcindy
+ kpfonts
+ langsci
+ latex2nemeth
+ libertine
+ lilyglyphs
+ lni
+ luatexko
+ media9
+ musuos
+ mwe
+ newtx
+ nwejm
+ padauk
+ pdfwin
+ pdfx
+ powerdot-tuliplab
+ powerdot-FUBerlin
+ quran
+ resumecls
+ sanskrit-t1
+ sapthesis
+ sduthesis
+ seuthesix
+ simurgh
+ skaknew
+ stellenbosch
+ suanpan
+ tudscr
+ uantwerpendocs
+ ucs
+ udesoftec
+ universalis
+ uowthesis
+ wasy2-ps
+ xduthesis
+ xetexko
+ xq
+ " texmfget extra || exit 1
+
+ # What's left, for base again
+ PACKAGES="
+ collection-fontsrecommended
+ collection-xetex
+ collection-langcyrillic
collection-langarabic
- collection-langchinese
- collection-langcjk
+ collection-langgerman
+ collection-langgreek
collection-langother
- collection-xetex
collection-humanities
collection-mathscience
collection-pictures
- collection-publishers
+ collection-pstricks
collection-music
collection-games
- collection-fontsrecommended
- collection-latexrecommended
collection-binextra
collection-bibtexextra
collection-formatsextra
collection-latexextra
- acro
- acronym
- acroterm
- enumitem
- enumitem-zref
- yfonts
- doublestroke
- was
- xypic
- barcodes
- qrcode
- lastpage
- appendix
- changebar
- footmisc
- multirow
- overpic
- subfigure
- titlesec
- siunitx
- combelow
- csquotes
- etoolbox
- etextools
- idxlayout
- bidi
- filecontents
- eplain
- texsis
- mltex
- lollipop
- moreverb
- indextools
- splitindex
- eepic
- bigfoot
- xstring
- showexpl
- cweb-latex
- hypdvips
- ptex
- perltex
- collection-pstricks
- $(collection_by_size fontsextra 20000 || exit 1)
" texmfget base || exit 1
- # Put all remaining stuff in "extra"
- # Pull some bin-packages from tlnet, which aren't provided by the texlive source tarball
- PACKAGES="
- collection-texworks
- collection-wintools
- wasy2-ps
- " texmfget extra || exit 1
-
- # Call "fonts" at the end to add remaining fonts
- PACKAGES="
- collection-fontsextra
- " texmfget fonts || exit 1
-
}
# ==== Nothing to edit beyond this line ====
usage () {
echo
- echo "Generate texmf trees/editions based on collections/packages and their dependencies."
- echo "./texmf_get.sh [base|docs|extra|fonts]"
+ echo "Generate texmf trees/editions based on collections/packages"
+ echo "and their (hard)dependencies."
+ echo "./texmf_get.sh [base|docs|extra|lint]"
echo
echo "-base: texfiles, no docs"
echo "-docs: docs of -base"
echo "-extra: remaining texfiles and docs"
- echo "-fonts: fonts and docs"
- echo
+ echo "[lint]: compare filename contents of all generated editions,"
+ echo " to detect overlapping files"
+ echo
echo "Only new/updated/missing tex packages are downloaded."
echo "The first run takes \"long\", tex packages(about 2500Mb)"
- echo "need to be downloaded and metafiles are generated."
+ echo "need to be downloaded."
echo "To check out a new version/release, delete"
echo "$db"
- echo "A new ascii database is pulled on the next run,"
- echo "and a new version yymmdd is set."
+ echo "A new ascii index file/database(texlive.tlpdb) is will be"
+ echo "pulled on the next run, and a new version yymmdd will be set."
echo
echo "All generated tarballs, logs etc. are going to"
echo "$TMP"
@@ -271,7 +283,7 @@ usage () {
}
collection_by_size () {
- # from collection $1, pull packages smaller $2 bytes
+ # from collection $1, pull packages smaller $2 bytes
start_n="$(grep -n ^"name collection-$1"$ $db | cut -d':' -f1)"
# find end of package/collection
for emptyline in $emptylines
@@ -283,7 +295,7 @@ collection_by_size () {
fi
done
extrapackages="$(sed "${start_n},${end_n}!d" $db | grep ^"depend " | grep -v ^"depend collection" | sed "s/^depend//g" )"
-
+
# add if smaller than ...
for checksize in $extrapackages
do
@@ -310,7 +322,7 @@ package_meta () {
fi
done
# Don't handle collections as dependency of other collections
- sed "${start_n},${end_n}!d;/^depend collection/d" $db > $texmf/$1.meta
+ sed "${start_n},${end_n}!d;/^depend collection/d" $db > $texmf/$1.meta
fi
}
@@ -328,7 +340,7 @@ download () {
fi
# If no success by downloading, write error log
[ ! -s ${1}${flavour}.tar.xz ] && echo "Downloading ${1}${flavour}.tar.xz did not work, writing to $errorlog" && echo "$VERSION" >> $errorlog && echo "Error downloading ${1}${flavour}.tar.xz" >> $errorlog && exit 1
-
+
# check sha512, give three tries for downloading again(diffrent mirrors are used automatically)
if [ "$flavour" = ".doc" ]
then
@@ -336,7 +348,7 @@ download () {
else
sha512="$(grep ^containerchecksum $texmf/$1.meta | cut -d' ' -f2 )"
fi
-
+
for run in {1..10}
do
if [ "$(sha512sum ${1}${flavour}.tar.xz | cut -d' ' -f1 )" != "$sha512" ]
@@ -362,36 +374,116 @@ download () {
}
untar () {
- # leave if $1 has no content. Therea collections with basically no used package, e.g. texworks
+ # leave if $1 has no content
if [ -s "$1" ]
then
while read package
do
+ echo "untar $package"
# untar all packages, check for relocation, "relocate 1" -> untar in texmf-dist
download $package || exit 1
- # untar the tex package
- unset relocated
- [ -n "$(grep -w ^"relocated 1" $texmf/$package.meta)" ] && relocated="-C texmf-dist"
- tar vxf ${package}${flavour}.tar.xz --exclude tlpkg $relocated || exit 1
-
- # if binaries are present, put them in texmf-dist
- [ -d bin ] && cp -a bin texmf-dist && rm -rf bin
+ # untar the tex package, relocate to texmf-dist if necessary, binpackages always need relocation
+ relocated='.'
+ [ -n "$(grep -w ^"relocated 1" $texmf/$package.meta)" -o -n "$(grep ^"binfiles " $texmf/$package.meta)" ] && relocated="texmf-dist"
+ # if not .doc package, investigate files for dependencies/provides
+ if [ -n "$flavour" ]
+ then
+ tar xf ${package}${flavour}.tar.xz --exclude tlpkg -C $relocated || exit 1
+ else
+ #tar vxf ${package}${flavour}.tar.xz --exclude tlpkg -C $relocated
+ tar vxf ${package}${flavour}.tar.xz --exclude tlpkg -C $relocated | egrep '\.sty$|\.bbx$|\.cls$' > $texmf/$package.deps
+ if [ -n "$texmf/$package.deps" ]
+ then
+ unset provide
+ unset depends
+ for depfile in $(cat $texmf/$package.deps)
+ do
+ filename="$( echo $depfile | rev | cut -d'.' -f2- | cut -d'/' -f1 | rev)"
+ # always add $filename as "ProvidesPackage", if it's a .sty
+ echo $depfile | grep '\.sty'$ &>/dev/null
+ [ $? = 0 ] && provide+="${filename},"
+ # remove comments, if there are backslashes ignore that content, except it is \filename
+ #provide+="$(sed "s/%.*//g" $texmf/$relocated/$depfile | sed -n "s/.*\\\ProvidesPackage{\([^}]*\)}.*/\1/p" | sed "s/\\\filename/$filename/g;/\\\/d" | sort -u | tr '\n' ',')"
+ #sed -z "s/.*\\\Provides\(Package\|ExplPackage\|File\|Class\)*.\n//g" | sed "s/[[:space:]]//
+ #provide+="$(sed "s/%.*//g" $texmf/$relocated/$depfile | sed -z "s/.*\\\Provides\(Package\|ExplPackage\|File\|Class\)*.\n//g" | sed "s/[[:space:]]// | sed -n "s/.*\\\Provides\(Package\|ExplPackage\|File\|Class\){\([^}]*\)}.*/\2/p" | sed "s/\\\filename/$filename/g;s/\\\ExplFileName/$filename/g;/\\\/d" | sed "s/\(\.sty$\|\.cls$\)//g" | sort -u | tr '\n' ',')"
+ provide+="$(sed "s/%.*//g" $texmf/$relocated/$depfile | sed -z "s/\(Package\|ExplPackage\|File\|Class\)\n/\1/g" | sed "s/[[:space:]]//" | sed -n "s/.*\\\Provides\(Package\|ExplPackage\|File\|Class\){\([^}]*\)}.*/\2/p" | sed "s/\\\filename/$filename/g;s/\\\ExplFileName/$filename/g" | sed "s/\(\.sty$\|\.cls$\)//g" | sort -u | tr '\n' ',')"
+ #depends+="$(sed "s/%.*//g" $texmf/$relocated/$depfile | sed -n "s/.*\(\\\require\|\\\use\)package{\([^}]*\)}.*/\2/p" | sed "/\\\/d" | sort -u | tr '\n' ',')"
+ depends+="$(sed "s/%.*//g" $texmf/$relocated/$depfile | sed -n "s/.*\(\\\require\|\\\use\)package{\([^}]*\)}.*/\2/p" | sort -u | tr '\n' ',')"
+ #depends+="$(sed "s/%.*//g" $texmf/$relocated/$depfile | sed -n "s/.*\\\\(require\|use\)package{\([^}]*\)}.*/\2/p" | sed "/\\\/d" | sort -u | tr '\n' ',')"
+ done
+ if [ -n "$provide" ]
+ then
+ #echo "$package $provide | sort -u | tr '\n' ',' " >> $TMP/provides.run.$edition
+ echo "$package $provide" >> $TMP/provides.run.$edition
+ fi
+ if [ -n "$depends" ]
+ then
+ echo "$package $depends" >> $TMP/depends.run.$edition
+ fi
+ fi
+ fi
+
+ # Check for binaries, delete them as these should be provided
+ # by texlive.Slackbuild, keep symlinks and scripts
+
+ unset binaries
+ unset scripts
+ for arch in $platforms
+ do
+ if [ -d $texmf/texmf-dist/bin/$arch ]
+ then
+ [ ! -d $texmf/texmf-dist/linked_scripts ] \
+ && mkdir $texmf/texmf-dist/linked_scripts
+ # rewrite link target to fit systemwide installation
+ for link in $(find $texmf/texmf-dist/bin/$arch -type l)
+ do
+ ln -sf $(readlink $link | sed "s/^..\/..\(.*\)/..\/share\1/" ) $link || exit 1
+ done
+ # move symlinks/scripts to linked_scripts
+ find $texmf/texmf-dist/bin/$arch -type l -exec mv '{}' $texmf/texmf-dist/linked_scripts/ \;
+
+ binaries="$(find $texmf/texmf-dist/bin/$arch -type f -exec file '{}' + | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : )"
+ for bin in $binaries
+ do
+ # keep binaries of special packages
+ for binary in $keep_precompiled
+ do
+ if [ "$(echo $bin | rev | cut -d'/' -f1 | rev )" != "$binary" ]
+ then
+ rm $bin
+ echo $bin | rev | cut -d'/' -f1 | rev >> $binary_removed.$edition
+ fi
+ done
+ done
+ # move scripts to linked-scripts
+ scripts="$(find $texmf/texmf-dist/bin/$arch -type f -exec file '{}' + | grep -wv ELF | cut -f 1 -d : )"
+ for script in $scripts
+ do
+ mv $script $texmf/texmf-dist/linked_scripts/
+ done
+ fi
+ done
+
if [ "$flavour" = ".doc" ]
then
- size=$(( $(grep ^doccontainersize $texmf/$package.meta | cut -d' ' -f2 ) / 1024 ))
+ size=$(grep ^doccontainersize $texmf/$package.meta | cut -d' ' -f2)
else
- size=$(( $(grep ^containersize $texmf/$package.meta | cut -d' ' -f2 ) / 1024 ))
+ size=$(grep ^containersize $texmf/$package.meta | cut -d' ' -f2)
fi
shortdesc="$(grep ^shortdesc $texmf/$package.meta | cut -d' ' -f2- )"
- echo "$size Kb, $package$flavour: $shortdesc" >> $output.meta
- #grep ^"execute addMap" $texmf/$package.meta | sed "s/^execute //g" >> $output.updmap.cfg
+ echo "$size byte, $package$flavour: $shortdesc" >> $output.meta
+ # make index of uncompressed size of each package
+ echo "$(xz -l --verbose ${package}${flavour}.tar.xz | grep "Uncompressed size" | cut -d'(' -f2 | cut -d' ' -f1 ) byte, $package$flavour: $shortdesc" >> $output.meta.uncompressed
done < $1
-
+
# copy packages index to texmf-dist, so included packages are known in later installation
- cat $output.meta >> $output.$edition.meta
-
+ # don't list binary packages, as the binaries itself are not contained, only the symlinks.
+ cat $output.meta | grep -v '\-linux:' >> $output.$edition.meta
+ cat $output.meta.uncompressed | grep -v '\-linux:' >> $output.$edition.meta.uncompressed
+
# cleanup
[ -f $output.meta ] && rm $output.meta
+ [ -f $output.meta.uncompressed ] && rm $output.meta.uncompressed
fi
}
@@ -399,19 +491,24 @@ remove_cruft () {
# Remove m$-stuff, ConTeXt single-user-system stuff, source leftovers and pdf-versions of manpages
rm -rf texmf-dist/source
rm -rf texmf-dist/scripts/context/stubs/source/
- find texmf-dist/ -type d -name 'win32' -exec rm -rf {} +
- find texmf-dist/ -type d -name 'win64' -exec rm -rf {} +
- find texmf-dist/ -type d -name 'mswin' -exec rm -rf {} +
- find texmf-dist/ -type d -name 'win' -exec rm -rf {} +
- find texmf-dist/ -type d -name 'setup' -exec rm -rf {} +
- find texmf-dist/ -type d -name 'install' -exec rm -rf {} +
- find texmf-dist/ -type f -name '*.bat' -delete
- find texmf-dist/ -type f -name '*.bat.w95' -delete
- find texmf-dist/ -type f -name '*win32*' -delete
- find texmf-dist/ -type f -name 'winansi*' -delete
- find texmf-dist/ -type f -name '*-man.pdf' -delete
+ find texmf-dist/ -type d -name 'win32' -exec rm -rf {} +
+ find texmf-dist/ -type d -name 'win64' -exec rm -rf {} +
+ find texmf-dist/ -type d -name 'mswin' -exec rm -rf {} +
+ find texmf-dist/ -type d -name 'win' -exec rm -rf {} +
+ find texmf-dist/ -type d -name 'setup' -exec rm -rf {} +
+ find texmf-dist/ -type d -name 'install' -exec rm -rf {} +
+ find texmf-dist/ -type f -name 'uninstall*.sh' -delete
+ find texmf-dist/ -type f -name '*.bat' -delete
+ find texmf-dist/ -type f -name '*.bat.w95' -delete
+ find texmf-dist/ -type f -name '*win32*' -delete
+ find texmf-dist/ -type f -name 'winansi*' -delete
+ find texmf-dist/ -type f -name '*man1.pdf' -delete
+ find texmf-dist/ -type f -name '*man5.pdf' -delete
# Remove zero-length files, as these appear e.g. in hyph-utf8 tex-package.
- find . -type f -size 0c -delete
+ # find texmf-dist/ -type f -size 0c -delete
+ find texmf-dist/ -type f -empty -delete
+ # Remove empty directories recursively
+ find texmf-dist/ -type d -empty -delete
}
texmfget () {
@@ -421,12 +518,12 @@ texmfget () {
# Remove outputfile if already present
>$output
>$output_doc
-
+
# Only do something if $collection wasn't already done before
while [ -s $collections_tobedone ]
do
collection=$(tail -n1 $collections_tobedone)
-
+
# continue with next collection if collection was already done
if [ -s "$collections_done" ]
then
@@ -442,33 +539,66 @@ texmfget () {
continue
fi
fi
-
+
package_meta $collection || exit 1
-
- # Don't handle collections as dependency of other collections, as this destroys control over what packages to be added
+
# If $collection is a singel package(not a collection-), add it here
if [ -n "$(head -n1 $texmf/$collection.meta | fgrep -v "name collection" )" ]
then
- # if package contains only docs, add to docpackages
- if [ -z "$(grep ^runfiles $texmf/$collection.meta)" -a -n "$(grep ^docfiles $texmf/$collection.meta)" ]
+ addpackage=no
+ # if package contains docs, add to docpackages
+ if [ -n "$(grep ^docfiles $texmf/$collection.meta)" ]
then
- sed -i "/^$collection$/d" $collections_tobedone
- echo "$collection" >> $collections_done
echo "$collection" >> $output_doc
- echo "$collection added to -docs $1" >> $logfile
- continue
+ echo "$collection added to docs $1" >> $logfile
+ addpackage=yes
fi
- # if package contains also docs, add also to docpackages
- if [ -n "$(grep ^docfiles $texmf/$collection.meta)" ]
+ if [ -n "$(grep ^runfiles $texmf/$collection.meta)" -o -n "$(grep ^binfiles $texmf/$collection.meta)" ]
then
- echo "$collection" >> $output_doc
- echo "$collection added to -docs $1" >> $logfile
+ echo "$collection" >> $output
+ echo "$collection added to -$1" >> $logfile
+ addpackage=yes
+ fi
+ # very package should be added to one edition, abort if that didn't work
+ if [ $addpackage = no ]
+ then
+ echo "$collection doesn't contain any docfiles/runfiles/binfiles"
+ echo "Please exclude package/report to upstream mailinglist tex-live@tug.org, bye."
+ exit 1
fi
- echo "$collection" >> $output
- echo "$collection added to -$1" >> $logfile
fi
+
+ # Don't handle collections as dependency of other collections, as this destroys control over what packages to be added
# add dependend packages, but no binary(ARCH) and no packages conataining a '.'. Packges with dot indicate binary/texlive-manager/windows packages
- grep ^"depend " $texmf/$collection.meta | grep -v "ARCH$" | grep -v '\.' | cut -d' ' -f2- > $dependencies
+
+ grep ^"depend " $texmf/$collection.meta | cut -d' ' -f2- > $dependencies
+
+ if [ -s "$dependencies" ]
+ then
+ # check for .ARCH packages which may be binaries, scripts or links
+ # Binaries should all come from the sourcebuild(exception biber)
+ for dependency in $(cat $dependencies)
+ do
+ echo $dependency | grep '\.ARCH'$ &>/dev/null
+ if [ $? = 0 ]
+ then
+ for arch in $platforms
+ do
+ archpackage="$(echo $dependency | sed "s/\.ARCH$/\.$arch/")"
+ grep ^"name $archpackage"$ $db &>/dev/null && echo "$archpackage" >> $dependencies.verified_arch
+ done
+ else
+ echo $dependency >> $dependencies.verified_arch
+ fi
+ done
+ if [ -f $dependencies.verified_arch ]
+ then
+ mv $dependencies.verified_arch $dependencies
+ else
+ rm $dependencies
+ fi
+ fi
+
if [ -s "$dependencies" ]
then
echo "----------------" >> $logfile
@@ -493,7 +623,7 @@ texmfget () {
cat $dependencies >> $collections_tobedone
echo "----------------" >> $logfile
fi
-
+
sed -i "/^${collection}$/d" $collections_tobedone
echo "$collection" >> $collections_done
done
@@ -502,34 +632,35 @@ texmfget () {
# handle doc package index, one for each edition
cat $output_doc >> $TMP/packages.$1.doc
- # untar only one $edition, untar docs together with -extra/-fonts edition
+ # untar only one $edition, untar docs together with -extra edition
if [ "$1" = $edition -o docs = $edition ]
then
cd $texmf
-
+
# Cleanup tar-directory
[ -d $texmf/texmf-dist ] && rm -rf $texmf/texmf-dist
mkdir $texmf/texmf-dist
-
+
# Make tarball/checksum reproducible by setting mtime(clamp-mtime), owner, group and sort content
# --clamp-mtime --mtime doesn't work with tar 1.13, when makepkg creates the tarball:
# tar-1.13: time_t value 9223372036854775808 too large (max=68719476735)
+ echo "Adding files to $( echo $tarball | rev | cut -d'/' -f1 | rev ) ..."
case $edition in
base)
unset flavour
untar $output || exit 1
remove_cruft || exit 1
- tar vrf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
+ tar rf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
rm -rf texmf-dist
;;
- extra|fonts)
+ extra)
unset flavour
untar $output || exit 1
export flavour=".doc"
untar $output_doc || exit 1
remove_cruft || exit 1
#tar vrf $tarball --clamp-mtime --mtime --owner=0 --group=0 --sort=name texmf-dist || exit 1
- tar vrf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
+ tar rf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
rm -rf texmf-dist
;;
docs)
@@ -540,7 +671,7 @@ texmfget () {
untar $output_doc || exit 1
remove_cruft || exit 1
#tar vrf $tarball --clamp-mtime --mtime --owner=0 --group=0 --sort=name texmf-dist || exit 1
- tar vrf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
+ tar rf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
rm -rf texmf-dist
fi
;;
@@ -548,6 +679,48 @@ texmfget () {
fi
}
+lint () {
+
+echo "Comparing content of all editions, this may take a while ...";
+cd $TMP
+# check if all editions of same VERSION are there, take -base as reference
+lint_version=$( ls texlive-base-*tar.xz | head -n1 | cut -d'.' -f2 || exit 1)
+if [ -s texlive-extra-$MAJORVERSION.$lint_version.tar.xz \
+ -a -s texlive-docs-$MAJORVERSION.$lint_version.tar.xz ]
+then
+ for edition in base extra docs
+ do
+ echo "Extracting index of texlive-${edition}-$MAJORVERSION.$lint_version.tar.xz ..."
+ # don't list directories
+ tar tf texlive-${edition}-$MAJORVERSION.$lint_version.tar.xz | grep -v '/'$ > $TMP/packages.$edition.lint
+ done
+
+ # compare content
+ for edition in base extra docs
+ do
+ >$TMP/packages.$edition.lint.dup
+ case $edition in
+ base)
+ echo "check if files of base are present in another edition"
+ while read line
+ do
+ grep ^"$line"$ $TMP/packages.extra.lint >> $TMP/packages.base.lint.dup
+ grep ^"$line"$ $TMP/packages.docs.lint >> $TMP/packages.base.lint.dup
+ done < $TMP/packages.$edition.lint
+ ;;
+ esac
+ done
+else
+ echo "Not all editions are present to lint them. Create them first by"
+ echo "$0 [base|docs|extra]"
+ echo "bye."
+ exit 1
+fi
+
+exit 0
+
+}
+
# Main
# release mirror
@@ -566,32 +739,37 @@ collections_done=$TMP/done
collections_tobedone=$TMP/tobedone
corepackages=$TMP/corepackages
allcollections=$TMP/allcollections
-metafonts=$TMP/metafonts
+binary_removed=$TMP/binaries.removed
manpages=$TMP/manpages
dependencies=$TMP/deps
packages_base=$TMP/packages.base
packages_extra=$TMP/packages.extra
-packages_fonts=$TMP/packages.fonts
-packages_metafont=$TMP/packages.metafont
packages_manpages=$TMP/packages.manpages
+files_split=$TMP/files.split
+platforms="x86_64-linux i386-linux"
+
+mkdir -p $texmf
+cd $TMP
case "$1" in
- base|docs|extra|fonts) edition=$1; echo "Building $edition tarball ...";;
+ base|docs|extra) edition=$1;;
+ lint) lint ;;
*) usage; exit 0 ;;
esac
-
-mkdir -p $texmf
-cd $TMP
-# Set VERSION, get texlive.tlpdb and keep unshorten $db.orig
-if [ ! -s ${db}.orig -o ! -s $db ]
+echo "Building $edition tarball ..."
+
+# Set VERSION, get texlive.tlpdb and keep unshorten $db.orig
+if [ ! -s ${db}.orig -o ! -s $db -o ! -s VERSION ]
then
echo $MAJORVERSION.$(date +%y%m%d) > VERSION
- wget -c -O ${db}.orig ${mirror}tlpkg/texlive.tlpdb
- # remove most content from $db to be faster on later processing.
- # keep dependencies/manpages/metafonts/binfiles/shortdesc/sizes
- egrep '^\S|^ RELOC/doc/man|^ texmf-dist/doc/man/man|^ RELOC/doc/info/|^ texmf-dist/doc/info/|^ texmf-dist/fonts/source/public/|^ RELOC/fonts/source/public|^ bin|^$' ${db}.orig | grep -v ^longdesc > $db
-
+ wget -c -O ${db}.orig ${mirror}tlpkg/texlive.tlpdb
+ # remove most content from $db to be faster on later processing.
+ # keep dependencies/manpages/binfiles/shortdesc/sizes
+ egrep \
+ '^\S|^ RELOC/doc/man|^ texmf-dist/doc/man/man|^ RELOC/doc/info/|^ texmf-dist/doc/info/|^ bin|^$' \
+ ${db}.orig | grep -v ^longdesc > $db
+
# As $db (might be)/is new, remove the meta-files, might created again with (pontentionally) new content
rm -rf $texmf/*.meta
fi
@@ -599,18 +777,30 @@ fi
# Get linenumbers of empty lines from $db
emptylines="$(grep -n ^$ $db | cut -d':' -f1)"
-# Provide TLCore packages for -base, as these packages(and their dependencies) should be present in any case.
+# Provide TLCore packages for -base, as these packages(and their dependencies) should be present in any case.
grep -B1 ^'category TLCore' $db | grep -v ^'category TLCore' | grep -v ^-- | grep -v '\.' | cut -d' ' -f2 > $corepackages
# Make a list of all collections
grep ^"name collection-" $db | cut -d' ' -f2 > $allcollections
-
+
+# translate .ARCH to platforms in excludes, to make .ARCH packages excludeable by $global_exclude
+for exclude in $global_exclude
+do
+ if [ -n "$(echo $exclude | grep '\.ARCH'$ )" ]
+ then
+ for arch in $platforms
+ do
+ global_exclude+=" $(echo $exclude | sed "s/\.ARCH$/\.$arch/")"
+ done
+ global_exclude=${global_exclude/$exclude/}
+ fi
+done
# globally exclude from $corepackages
for exclude in $global_exclude
do
sed -i "/^${exclude}$/d" $corepackages
-done
-
+done
+
VERSION=$(cat $TMP/VERSION)
tarball=$TMP/texlive-$edition-$VERSION.tar
# set logfile
@@ -620,37 +810,35 @@ logfile=$TMP/$VERSION.log
>$logfile
>$tarball
>$collections_done
->$metafonts
+>$files_split
>$manpages
->$packages_metafont
>$packages_manpages
>$packages_base
>$packages_extra
->$packages_fonts
>$packages_base.doc
>$packages_extra.doc
->$packages_fonts.doc
>$TMP/packages.$edition.meta
+>$TMP/packages.$edition.meta.uncompressed
+>$TMP/provides.run.$edition
+>$TMP/depends.run.$edition
+>$binary_removed.$edition
-# put the editions base/extra/fonts together
+# put the editions base/extra together
texmf_editions || exit 1
-# Check if all collections ar part in at least one edition
+# Check if all collections are part in at least one edition
while read collection
do
grep -w "$collection" $collections_done &> /dev/null
if [ $? != 0 ]
then
- echo "Error: $collection was not handled, edit packages/collections inthe texmfget function in $0." | tee -a $logfile
+ echo "Error: $collection was not handled."
+ echo "Edit packages/collections in the texmfget function." | tee -a $logfile
exit 1
fi
done < $allcollections
-# meta data about added packages
-sort -n $output.$edition.meta > $tmpfile
-mv $tmpfile $output.$edition.meta
-
-# cleanup
+# cleanup
rm $allcollections
rm $corepackages
rm $collections_done
@@ -659,90 +847,204 @@ rm $output
rm $output_doc
rm $dependencies
+# untar special- and manpage packages to be splitted/moved to other editions
+# splitting special packages, files index
+echo "Prepare index of to be splitted/moved files from -base"
[ ! -d texmf-dist ] && mkdir texmf-dist
-# include all metafonts in base package, plus packages which misses font-mf tag on CTAN
-echo "Looking for metafont files to be included in -base ..."
-for metafont in $(paste -s $packages_extra $packages_fonts )
+for package in $special_packages
do
- if [ -n "$(egrep "(fonts/source/public/)" $texmf/$metafont.meta )" ]
+ echo "Splitting $package"
+ # special packages have to be in -base, as only here are special
+ # tasks done to reduce size of -base edition
+ if [ -z "$( grep ^"$package"$ $packages_base )" ]
then
- # include all metafonts in -base, write index for later exclution from other editions.
- package_meta $metafont || exit 1
- echo "Adding metafonts from $metafont to -base"
- unset flavour
- download $metafont || exit 1
- unset relocated
- pathprefix="texmf-dist/"
- [ -n "$(grep -w ^"relocated 1" $texmf/$metafont.meta)" ] && relocated="-C texmf-dist" && unset pathprefix
- tar vxf $texmf/$metafont.tar.xz $relocated ${pathprefix}fonts/source ${pathprefix}tex/latex 2>/dev/null | sed "s/^fonts/texmf-dist\/fonts/g;s/^tex\//texmf-dist\/tex\//g" >> $metafonts
- echo $metafont >> $packages_metafont
+ echo "$package was not found to be part of -base"
+ echo "Edit \$special_packages in $0"
+ echo "to contain only packages from -base, bye."
+ exit 1
+ fi
+ unset relocated
+ pathprefix="texmf-dist/"
+ [ -n "$(grep -w ^"relocated 1" $texmf/$package.meta)" ] && \
+ relocated="-C texmf-dist" && unset pathprefix
+ # avoid big pdf docs which are also present as html
+ # move (big)type1 fonts to -extra
+ # $files_split lists files to be moved from -base -extra
+ if [ $package = "cm-super" ]
+ then
+ # cm-super minimal for -base, create index of extended cm-super
+ tar tf $texmf/$package.tar.xz | sed \
+ "/1000\.pfb$/d;/^tlpkg/d;/\.sty$/d;/\.enc$/d;/\.GS$/d" \
+ | tee -a $files_split > $files_split.tmp
+ else
+ tar tf $texmf/${package}.tar.xz | sed \
+ -ne "/.*doc\/latex\/.*\.pdf$/p" \
+ -ne "/.*fonts\/map\/.*\.map$/p" \
+ -ne "/.*fonts\/enc\/.*\.enc$/p" \
+ -ne "/.*fonts\/afm\/.*\.\(afm\|afm\.gz\)$/p" \
+ -ne "/.*fonts\/type1\/.*\.pfb$/p" \
+ -ne "/.*fonts\/vf\/.*\.vf$/p" \
+ | tee -a $files_split > $files_split.tmp
+ fi
+
+ if [ $edition = base ]
+ then
+ # Calculate package-minimal size, uncompressed and compressed
+ mkdir -p calculate/texmf-dist
+ tar xf $texmf/$package.tar.xz -C calculate/texmf-dist --exclude-from=$files_split.tmp
+ tar cf calculate/calc.tar.xz -I 'xz -9' calculate/texmf-dist
+ size_minimal=$(du -bc calculate/calc.tar.xz | tail -n1 | sed "s/[[:space:]].*//")
+ size_minimal_uncompressed="$(xz -l --verbose calculate/calc.tar.xz | grep "Uncompressed size" | cut -d'(' -f2 | cut -d' ' -f1 )"
+ sed -i \
+ -e "s/^[0-9]* byte, $package: /$size_minimal byte, $package-minimal: /" \
+ $output.base.meta
+ sed -i \
+ -e "s/^[0-9]* byte, $package: /$size_minimal_uncompressed byte, $package-minimal: /" \
+ $output.base.meta.uncompressed
+ rm -rf calculate
+ fi
+
+ if [ $edition = extra ]
+ then
+ mkdir -p calculate/texmf-dist
+ tar xf $texmf/${package}.tar.xz -C calculate/texmf-dist $(paste $files_split.tmp)
+ tar cf calculate/calc.tar.xz -I 'xz -9' calculate/texmf-dist
+ size_extended=$(du -bc calculate/calc.tar.xz | tail -n1 | sed "s/[[:space:]].*//")
+ size_extended_uncompressed="$(xz -l --verbose calculate/calc.tar.xz | \
+ grep "Uncompressed size" | cut -d'(' -f2 | cut -d' ' -f1 )"
+
+ # put new sizes in package index uncompressed
+ sed -i \
+ -e "s/^[0-9]* byte, $package: /$size_extended byte, $package-extended: /" \
+ $output.extra.meta
+ sed -i \
+ -e "s/^[0-9]* byte, $package: /$size_extended_uncompressed byte, $package-extended: /" \
+ $output.extra.meta.uncompressed
+ rm -rf calculate
fi
+
+ # untar to provide files for -extra
+ tar xf $texmf/${package}.tar.xz $relocated $(paste $files_split.tmp)
+ if [ $package = "cm-super" ]
+ then
+ # create cm-super- minimal config/maps with 10pt glyphs only
+ sed "s/cm-super/cm-super-minimal/g" $texmf/texmf-dist/dvips/cm-super/config.cm-super \
+ > $texmf/texmf-dist/dvips/cm-super/config-minimal.cm-super
+ for map in t1 t2a t2b t2c ts1 x2
+ do
+ grep 1000 $texmf/texmf-dist/fonts/map/dvips/cm-super/cm-super-$map.map \
+ > $texmf/texmf-dist/fonts/map/dvips/cm-super/cm-super-minimal-$map.map
+ sed -i "/.*1000\.pfb/d" $texmf/texmf-dist/fonts/map/dvips/cm-super/cm-super-$map.map
+ done
+ fi
+
done
+
+# cleanup
+rm $files_split.tmp
+# fix relocation in index for splitted packages
+sed -i \
+ -e "s|^doc|texmf-dist\/doc|g" \
+ -e "s|^fonts|texmf-dist\/fonts|g" \
+ -e "s|^dvips|texmf-dist\/dvips|g" \
+ $files_split
+
+# sort meta data about added packages
+sort -n $output.$edition.meta > $tmpfile
+mv $tmpfile $output.$edition.meta
+sort -n $output.$edition.meta.uncompressed > $tmpfile
+mv $tmpfile $output.$edition.meta.uncompressed
+
+sort -u $binary_removed.$edition > $tmpfile
+mv $tmpfile $binary_removed.$edition
+
# include manpages/GNU infofiles in -base, write index for later exclution from other editions.
-# In -extra there should not be any manpage left.
+# In -extra/-docs there should not be any manpage left.
echo "Looking for manpages/GNU infofiles to be included in -base ..."
-for package in $(paste -s $packages_metafont $packages_base.doc | sort -u)
+for package in $(paste -s $packages_base.doc | sort -u)
do
if [ -n "$(egrep "(doc/man/man|doc/info/)" $texmf/$package.meta )" ]
then
- echo "Adding manpage from $package to -base"
+ echo "Adding manpage from $package.doc to -base"
flavour=".doc" download $package || exit 1
unset relocated
pathprefix="texmf-dist/"
- [ -n "$(grep -w ^"relocated 1" $texmf/$package.meta)" ] && relocated="-C texmf-dist" && unset pathprefix
- tar vxf $texmf/${package}.doc.tar.xz --exclude "*.man[15].pdf" $relocated ${pathprefix}doc/man/ ${pathprefix}doc/info 2>/dev/null | sed "s/^doc/texmf-dist\/doc/g" >> $manpages
+ [ -n "$(grep -w ^"relocated 1" $texmf/$package.meta)" ] \
+ && relocated="-C texmf-dist" && unset pathprefix
+ tar tf $texmf/${package}.doc.tar.xz | sed \
+ -ne "/.*doc\/man\/.*\.1$/p" \
+ -ne "/.*doc\/man\/.*\.5$/p" \
+ -ne "/.*doc\/info\/.*\.info$/p" \
+ | tee -a $manpages > $manpages.tmp
+ # untar to provide files for -/extra/-docs
+ tar xf $texmf/${package}.doc.tar.xz $relocated $(paste $manpages.tmp)
echo "$package" >> $packages_manpages
fi
-done
-
+done
+# cleanup
+rm $manpages.tmp
+sed -i \
+ -e "s/^doc/texmf-dist\/doc/g" \
+ $manpages
+
case $edition in
- base)
+ base)
# Content info
cat << EOF | gzip -9 >> $texmf/texmf-dist/packages.$edition.gz
Content of -$edition:
-$(sort $packages_base)
-
-Metafonts from packages:
-$(sort $packages_metafont)
-
-Manpages from packages:
-$(sort $packages_manpages)
+$(sed "/-linux$/d" $packages_base | sort)
EOF
-
- # add manpages/metafonts to the tarball
- tar rf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
- # cleanup extracted metafonts/manpages
- rm -rf texmf-dist
- # handle koma-script docs, the author wants the docs to be shipped along, html doc seems sufficient
- tar f $tarball --delete $(tar tf $tarball | grep /doc/.*koma-script.*pdf)
+#Splitted packages, type1 fonts/docs moved to -extra:
+#$(echo $special_packages)
+#EOF
+
+# add manpages/GNU infofiles to the tarball
+ tar rf $tarball --owner=0 --group=0 --sort=name \
+ texmf-dist/doc/man/ texmf-dist/doc/info/ \
+ texmf-dist/packages.$edition.gz \
+ || exit 1
+# # add cm-super minimal maps/config
+# tar rf $tarball --owner=0 --group=0 --sort=name \
+# texmf-dist/dvips/cm-super/config-minimal.cm-super \
+# --wildcards texmf-dist/fonts/map/dvips/cm-super/cm-super-minimal-*.map \
+# || exit 1
+ echo "Removing files -from base, splitted from special packages to be included in -extra"
+ tar f $tarball --delete $(paste $files_split) || exit 1
;;
- extra|fonts)
- # cleanup extracted metafonts/manpages
- rm -rf texmf-dist
- echo "Removing manpages/metafonts from -extra/-fonts/-docs which now reside in -base"
- tar -f $tarball --delete $(paste $manpages $metafonts) 2>/dev/null
+ extra)
+ echo "Removing manpages from $edition which now reside in -base"
+ tar f $tarball --delete $(paste $manpages) 2>/dev/null
# content info
- mkdir texmf-dist
echo "Content of -$edition, including documentation:" > $texmf/texmf-dist/packages.$edition
- sort $TMP/packages.$edition >> $texmf/texmf-dist/packages.$edition
+ sed "/-linux$/d" $TMP/packages.$edition | sort >> $texmf/texmf-dist/packages.$edition
gzip -9 $texmf/texmf-dist/packages.$edition
- tar rf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
+# # remove cm-super minimal config, which resides in -base
+# rm \
+# $texmf/texmf-dist/dvips/cm-super/config-minimal.cm-super \
+# $texmf/texmf-dist/fonts/map/dvips/cm-super/cm-super-minimal-*.map
+ tar rf $tarball --owner=0 --group=0 --sort=name \
+ --exclude texmf-dist/doc \
+ texmf-dist \
+ || exit 1
;;
docs)
- # cleanup extracted metafonts/manpages
- rm -rf texmf-dist
- echo "Removing manpages/metafonts from -extra/-fonts/-docs which no reside in -base"
- tar -f $tarball --delete $(paste $manpages $metafonts) 2>/dev/null
- # content info, this edition conains all docs from -base
- mkdir texmf-dist
+ # add docs splittet from base from special packages, add packages index
+ # content info, this edition contains all docs from -base
echo "Content of -$edition, documentation for -base:" > $texmf/texmf-dist/packages.$edition
sort $packages_base.doc >> $texmf/texmf-dist/packages.$edition
gzip -9 $texmf/texmf-dist/packages.$edition
- tar rf $tarball --owner=0 --group=0 --sort=name texmf-dist || exit 1
+ tar rf $tarball --owner=0 --group=0 --sort=name \
+ texmf-dist/doc/ \
+ texmf-dist/packages.$edition.gz \
+ || exit 1
+ echo "Removing manpages from $edition which now reside in -base"
+ tar f $tarball --delete $(paste $manpages) || exit 1
;;
esac
+rm -rf texmf-dist
+
# compress the tarball as everything is in place now
echo "Compressing $tarball ..."
[ -f $tarball.xz ] && rm $tarball.xz
diff --git a/office/texlive/slack-desc b/office/texlive/slack-desc
index 9646823dfe..4e573a1608 100644
--- a/office/texlive/slack-desc
+++ b/office/texlive/slack-desc
@@ -8,12 +8,12 @@
|-----handy-ruler------------------------------------------------------|
texlive: texlive (TeX binaries, support files, and formats)
texlive:
-texlive: This package contains binaries, support files, TeX formats and
-texlive: packages,and other files included in the TeXLive TeX distribution.
-texlive: Included are input files for TeX, runtime configuration files,
+texlive: This package contains binaries, support files, TeX formats and
+texlive: packages,and other files included in the TeXLive TeX distribution.
+texlive: Included are input files for TeX, runtime configuration files,
texlive: hyphenation tables, manpages, and the computer modern fonts.
-texlive:
-texlive: SlackBuilds.org has more texmf files and documentation in the
-texlive: texlive-extra, texlive-fonts, and texlive-docs packages.
+texlive:
+texlive: SlackBuilds.org has more texmf files and documentation in the
+texlive: texlive-extra and texlive-docs packages.
texlive:
texlive:
diff --git a/office/texlive/texlive.SlackBuild b/office/texlive/texlive.SlackBuild
index a140c9d9c8..63b97c33a5 100644
--- a/office/texlive/texlive.SlackBuild
+++ b/office/texlive/texlive.SlackBuild
@@ -2,9 +2,9 @@
# TeXLive build script for Slackware
-# Copyright 2009, 2017 Patrick J. Volkerding, Sebeka, MN, USA
-# Copyright 2009-2014 Robby Workman, Northport, AL, USA
-# Copyright 2016-2017 Johannes Schoepfer, Germany
+# Copyright 2009, 2017 - 2018 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2009 - 2014 Robby Workman, Northport, AL, USA
+# Copyright 2016 - 2017 Johannes Schoepfer, Germany
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,10 +26,11 @@
# URL: ftp://tug.org/historic/systems/texlive/
# Testrelease: ftp://tug.org/texlive/Images/test/
+# Upstream stable fixes: svn://tug.org/texlive/branches/branch2018/Build/source
PRGNAM=texlive
-SOURCEVERSION=20170520
-VERSION=${VERSION:-2017.171108}
+SOURCEVERSION=20180414
+VERSION=${VERSION:-2018.180630}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -63,7 +64,7 @@ fi
# recompiled with pretty much every poppler update, as they almost always
# bump the shared library version. But sometimes you do what you have
# to do...
-SYSTEMPOPPLER=${SYSTEMPOPPLER:-YES}
+SYSTEMPOPPLER=${SYSTEMPOPPLER:-NO}
if [ "$SYSTEMPOPPLER" = "NO" ]; then
POPPLER="--without-system-poppler --without-system-xpdf"
else
@@ -92,21 +93,23 @@ sed -i \
# prevent compiling Xdvi with libXp
sed -i 's|-lXp ||' texk/xdvik/configure
-# Thanks to the lfs-folks ...
-patch -Np1 -i $CWD/patches/texlive-20170524-source-gcc7-1.patch || exit 1
-patch -Np1 -i $CWD/patches/texlive-20170524-source-upstream_fixes-2.patch || exit 1
+# Upstream stable fixes
+patch -Np0 -i $CWD/patches/20180625.diff || exit 1
-## Needed on -current, 2017-10-06
-## Thanks to archlinux for the poppler-0.59 API fixup patch:
+# Needed on -current, 2018-05-06
+# The 2018 version of texlive ships with support for poppler-0.57.0 and older,
+# but it includes alternative newpoppler files which enable building with
+# poppler-0.62.0 or newer.
#if [ ! "$SYSTEMPOPPLER" = "NO" ]; then
-# patch -Np1 -i $CWD/patches/texlive-poppler-0.59.patch || exit 1
+# mv -v texk/web2c/pdftexdir/pdftoepdf{-newpoppler,}.cc || exit 1
+# mv -v texk/web2c/pdftexdir/pdftosrc{-newpoppler,}.cc || exit 1
#fi
# --with-system-harfbuzz requires graphite2 (and harfbuzz linked to it)
mkdir build
cd build
CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS -fpermissive" \
../configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
@@ -142,6 +145,7 @@ cd build
--without-system-harfbuzz \
--disable-aleph \
--disable-dump-share \
+ --disable-linked-scripts \
$POPPLER \
--build=$ARCH-slackware-linux || exit 1
@@ -149,29 +153,29 @@ cd build
# make check || exit 1
make install-strip DESTDIR=$PKG || exit 1
- # Don't ship .la files:
- rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+cd ..
- # Remove all files which are covered by tlnet
- rm -rf $PKG/usr/share $PKG/usr/man $PKG/usr/info
+# Don't ship .la files:
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
- # install the tlnet stuff
- mkdir -p $PKG/usr/share
- tar xvf $CWD/texlive-base-$VERSION.tar.xz -C $PKG/usr/share || exit 1
- chown -R root:root $PKG
- chmod -R u+w,go-w,a+rX-st $PKG
+# Remove all files which are covered by tlnet
+rm -rf $PKG/usr/share $PKG/usr/man $PKG/usr/info
- # Create symlinks
- make texlinks DESTDIR=$PKG || exit 1
+# install the tlnet stuff
+mkdir -p $PKG/usr/share
+tar xvf $CWD/texlive-base-$VERSION.tar.xz -C $PKG/usr/share || exit 1
+chown -R root:root $PKG
+chmod -R u+w,go-w,a+rX-st $PKG
-cd ..
+# use symlinks/scripts from tlnet
+mv $PKG/usr/share/texmf-dist/linked_scripts/* $PKG/usr/bin
+rmdir $PKG/usr/share/texmf-dist/linked_scripts
# set some paths
sed -i \
-e 's|^TEXMFROOT.*|TEXMFROOT = $SELFAUTODIR/share|' \
-e 's|^TEXMFLOCAL.*|TEXMFLOCAL = $TEXMFROOT/texmf-local|' \
-e 's|^OSFONTDIR.*|OSFONTDIR = ~/.fonts:/usr/share/fonts|' \
- -e 's|texlive20[0-9][0-9]|texlive|g' \
$PKG/usr/share/texmf-dist/web2c/texmf.cnf
# disable obsolete aleph/lamed/cslatex/pdfcslatex
@@ -186,7 +190,6 @@ sed -i \
sed -i \
-e 's|selfautoparent:|/usr/share/|g' \
-e 's|\(TEXMFLOCAL[ ]*=[ ]*\)[^,]*|\1"/usr/share/texmf-local"|' \
- -e 's|texlive20[0-9][0-9]|texlive|g' \
-e '/selfautodir/d' \
-e '/texmflocal/d' \
$PKG/usr/share/texmf-dist/web2c/texmfcnf.lua
diff --git a/office/texlive/texlive.info b/office/texlive/texlive.info
index b0c9538eea..eaec61b3cb 100644
--- a/office/texlive/texlive.info
+++ b/office/texlive/texlive.info
@@ -1,10 +1,10 @@
PRGNAM="texlive"
-VERSION="2017.171108"
+VERSION="2018.180630"
HOMEPAGE="http://tug.org/texlive/"
-DOWNLOAD="http://ponce.cc/slackware/sources/repo/texlive-20170520-source.tar.xz \
- http://slackware.schoepfer.info/slackbuilds/texlive/2017/texlive/texlive-base-2017.171108.tar.xz"
-MD5SUM="5456dfd7858fe53cdd0fda5f0eb4fd35 \
- a6cb0fdd5fbc870f3b728ec717d3a092"
+DOWNLOAD="http://mirrors.ctan.org/systems/texlive/Source/texlive-20180414-source.tar.xz \
+ http://slackware.schoepfer.info/slackbuilds/texlive/2018/texlive/texlive-base-2018.180630.tar.xz"
+MD5SUM="d7d5fa10e6d16efa76e5111f7a8eb580 \
+ afd68de4f3548bb1f7bb1594d2a2b9bd"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""