Codebase list texlive-bin / 8077004
Merge tag 'upstream/2016.20160507.40923' into experimental Upstream version 2016.20160507.40923 # gpg: Signature made Sat 07 May 2016 08:34:24 AM JST # gpg: using RSA key 0xEC00B8DAD32266AA # gpg: Good signature from "Norbert Preining <norbert@preining.info>" [ultimate] # gpg: aka "Norbert Preining <preining@logic.at>" [ultimate] # gpg: aka "Norbert Preining <preining@debian.org>" [ultimate] # gpg: aka "Norbert Preining <preining@jaist.ac.jp>" [ultimate] # gpg: aka "[jpeg image of size 4185]" [ultimate] # Primary key fingerprint: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13 # Subkey fingerprint: 5871 F824 2DCC 3660 2362 BE7D EC00 B8DA D322 66AA Norbert Preining 8 years ago
26 changed file(s) with 413 addition(s) and 171 deletion(s). Raw diff Collapse all Expand all
00 (This file public domain. Originally written by Mojca Miklavec, 2015-16.)
11
22 Compiling TeX binaries on Solaris
3
4 (The document describes the procedures used on Sparc Solaris binaries,
5 but the same rules should apply to i386 and x86_64 as well.)
63
74 Solaris 9 has been out of official support for a while and making
85 software compile on that platform is challenging, so it hardly makes any
4037 SUNW_0.8;
4138 SUNW_0.7;
4239
40 Building for 64-bit
41 ===================
42
43 All binaries have been compiled with gcc-5.2.
44 The only thing that is needed to build for 64-bit is to define
45 export CC="/path/to/gcc-5.2 -m64"
46 export CXX="/path/to/g++-5.2 -m64"
47
4348 Building wget
4449 =============
4550
6974 The binary was built with gcc 5.2.
7075 The definition '#define _XOPEN_SOURCE 500' has been removed from 'src/sysdep.h'
7176 to avoid compile error due to the fact that GCC 5 switched to -std=99.
77
78 On i386 and x86_64 one has to manually add "-lsocket -lnsl" to the last linker command.
79 This should be reported upstream.
7280
7381 > pvs Master/tlpkg/installer/wget/wget.sparc-solaris
7482 libsocket.so.1 (SUNW_1.4);
107115 If users need binaries to run on even older systems, we can target what
108116 is desired by changing the map file.
109117
118 Building asymptote
119 ==================
120
121 Asymptote has been built with the following flags:
122
123 export CC=/opt/csw/bin/gcc-5.2
124 export CXX=/opt/csw/bin/g++-5.2
125 ./configure --prefix=/tmp/asyinst --enable-texlive-build \
126 --disable-fftw --disable-offscreen \
127 --disable-gl --disable-gsl --disable-readline
128
129 Even though GL, GSL and readline should generally not be disabled,
130 the resulting binaries would not be portable enough otherwise.
131
132 Because a newer gcc compiler was used we had to link statically against stdlib.
133 In the last command that builds the asy binary the following part:
134 -lnsl -lrt -lz -lm gc-7.4.2/.libs/libgc.a
135 was replaced by:
136 gc-7.4.2/.libs/libgc.a -nodefaultlibs -Wl,-Bstatic -lstdc++ \
137 -Wl,-Bdynamic -lnsl -lrt -lz -lm -lgcc_eh -lgcc -lc
138
139 The resulting binary depends on:
140
141 > pvs asy
142 libnsl.so.1 (SUNW_0.7);
143 librt.so.1 (SUNW_1.2);
144 libm.so.2 (SUNW_1.2);
145 libc.so.1 (SUNW_1.22, SUNWprivate_1.1);
146 > ldd asy
147 libnsl.so.1 => /lib/libnsl.so.1
148 librt.so.1 => /lib/librt.so.1
149 libz.so.1 => /usr/lib/libz.so.1
150 libm.so.2 => /lib/libm.so.2
151 libc.so.1 => /lib/libc.so.1
152 libmp.so.2 => /lib/libmp.so.2
153 libmd.so.1 => /lib/libmd.so.1
154 libscf.so.1 => /lib/libscf.so.1
155 libaio.so.1 => /lib/libaio.so.1
156 libdoor.so.1 => /lib/libdoor.so.1
157 libuutil.so.1 => /lib/libuutil.so.1
158 libgen.so.1 => /lib/libgen.so.1
159
160 Additional notes:
161
162 * gc-7.4.2 doesn't support sparc properly, so the sources for sparc were fetched from
163 https://github.com/ivmai/bdwgc/tree/release-7_4
164 and put into gc-7.4.2
165 Running ./autogen.sh was needed before proceeding
166
167 * Workarounds were needed for:
168 * https://github.com/vectorgraphics/asymptote/issues/19
169 CC and CXX env variables are not respected when building GC
170 * https://github.com/vectorgraphics/asymptote/issues/20
171 Provide a configure-time option to disable sigsegv
172 * https://github.com/vectorgraphics/asymptote/pull/21
173 Makefile.in: replace 'test ! -e' => 'test ! -s'
174 * https://github.com/vectorgraphics/asymptote/issues/22
175 Wrong expansion of revision in Bourne Shell
176
177 * Patches used are listed below.
178
110179 Building texlive
111180 ================
112181
116185 The '--without-iconv' makes sure to avoid linking against libiconv
117186 which is not available on SunOS by default.
118187
188
189
190 Patches for Asymptote
191 =====================
192
193 --- Makefile.in (revision 40918)
194 +++ Makefile.in (working copy)
195 @@ -114,7 +114,7 @@
196 fi
197
198 version: $(GCLIB) $(FILES:=.o)
199 - if test ! -e revision.cc -o "$(revision)" != "$(last)"; then \
200 + if test ! -s revision.cc -o "$(revision)" != "$(last)"; then \
201 echo $(REVISION)\"$(revision)\"\; > revision.cc; \
202 fi
203 $(CXX) $(OPTS) $(INCL) -o revision.o -c revision.cc;
204 @@ -160,7 +160,7 @@
205 mv gc-7.2 gc-7.2d; \
206 fi
207 cd $(GC) && \
208 - ./configure $(GCOPTIONS); \
209 + ./configure CC="$(CC)" CXX="$(CXX)" $(GCOPTIONS); \
210 $(MAKE) check
211
212 $(GCPPLIB): $(GCLIB)
213 --- configure.ac (revision 40918)
214 +++ configure.ac (working copy)
215 @@ -223,15 +223,15 @@
216 AC_SUBST(OPTIONS)
217
218 # Checks for libraries.
219 -AC_CHECK_LIB([ncurses], [setupterm], [AC_DEFINE(HAVE_LIBCURSES)
220 - LIBS=$LIBS"-lncurses "],
221 - AC_CHECK_LIB([curses], [setupterm]))
222 +#AC_CHECK_LIB([ncurses], [setupterm], [AC_DEFINE(HAVE_LIBCURSES)
223 +# LIBS=$LIBS"-lncurses "],
224 +# AC_CHECK_LIB([curses], [setupterm]))
225 AC_CHECK_LIB([m], [sqrt],,
226 AC_MSG_ERROR([*** Please install libm on your system ***]))
227 AC_CHECK_LIB([z], [deflate],,
228 AC_MSG_ERROR([*** Please install libz or zlib-devel on your system ***]))
229 AX_PTHREAD
230 -AC_CHECK_LIB([sigsegv], [stackoverflow_install_handler])
231 +#AC_CHECK_LIB([sigsegv], [stackoverflow_install_handler])
232 AC_CHECK_LIB([rt], [sched_yield])
233
234 AC_ARG_ENABLE(readline,
235 @@ -254,7 +254,7 @@
236 # Checks for header files.
237 AC_HEADER_SYS_WAIT
238 AC_CHECK_HEADERS([fenv.h stddef.h libintl.h])
239 -AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h], [break])
240 +#AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h], [break])
241 AC_CHECK_HEADERS(fpu_control.h)
242
243 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include "xstream.h"])],
244
0 2016-05-04 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
1
2 * pdfdoc.c, pdfencrypt.c, pdffont.c, pdfobj.h, xbb.c: Improve the
3 support of SOURCE_DATE_EPOCH.
4
05 2016-05-02 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
16
27 * pdfdoc.c, xbb.c: Apply the patch by Alexis,
442442 time_t gmtoff;
443443
444444 now = get_unique_time_if_given();
445 if (now == 0) {
445 if (now == INVALID_EPOCH_VALUE) {
446446 now = time(NULL);
447447 localtime_r(&now, &local);
448448 gmtime_r(&now, &tm);
466466 struct tm *bd_time;
467467
468468 current_time = get_unique_time_if_given();
469 if (current_time == 0) {
469 if (current_time == INVALID_EPOCH_VALUE) {
470470 time(&current_time);
471471 bd_time = localtime(&current_time);
472472
100100 struct pdf_sec *p = &sec_data;
101101
102102 current_time = get_unique_time_if_given();
103 if (current_time == 0)
103 if (current_time == INVALID_EPOCH_VALUE)
104104 current_time = time(NULL);
105105 srand(current_time); /* For AES IV */
106106 p->setting.use_aes = use_aes;
126126
127127 date_string = NEW(15, char);
128128 current_time = get_unique_time_if_given();
129 if (current_time == 0) {
129 if (current_time == INVALID_EPOCH_VALUE) {
130130 time(&current_time);
131131 bd_time = localtime(&current_time);
132132 } else {
8989
9090 /* If an environment variable SOURCE_DATE_EPOCH is correctly defined like
9191 * SOURCE_DATE_EPOCH=1456304492, then returns this value, to be used as the
92 * 'current time', otherwise returns 0.
92 * 'current time', otherwise returns INVALID_EPOCH_VALUE (= 0x7fffffffffffffffULL).
93 * In the case of Microsoft Visual Studio 2010, the value should be less
94 * than 32535291600.
9395 */
9496
9597 time_t
98100 const char *source_date_epoch;
99101 int64_t epoch;
100102 char *endptr;
101 time_t ret = 0;
103 time_t ret = INVALID_EPOCH_VALUE;
102104
103105 source_date_epoch = getenv("SOURCE_DATE_EPOCH");
104106 if (source_date_epoch) {
120122 if (first) {
121123 time_t current_time;
122124 current_time = get_unique_time_if_given();
123 if (current_time == 0)
125 if (current_time == INVALID_EPOCH_VALUE)
124126 current_time = time(NULL);
125127 srand(current_time);
126128 first = 0;
198198 extern pdf_obj *pdf_new_indirect (pdf_file *pf, unsigned label, unsigned short generation);
199199
200200 extern time_t get_unique_time_if_given(void);
201 #define INVALID_EPOCH_VALUE 0x7fffffffffffffffULL
201202
202203 #endif /* _PDFOBJ_H_ */
9494 struct tm *bd_time;
9595
9696 current_time = get_unique_time_if_given();
97 if (current_time == 0) {
97 if (current_time == INVALID_EPOCH_VALUE) {
9898 time(&current_time);
9999 bd_time = localtime(&current_time);
100100 } else {
0 2016-05-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
1
2 * output.c: Avoid to crash for to large a value of SOURCE_DATE_EPOCH
3 (w32 only).
4
5 2016-05-04 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
6
7 * output.c: Support SOURCE_DATE_EPOCH for %%CreationDate.
8
09 2016-03-24 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
110
211 * writet1.c: Fix one-byte buffer overflow bug reported by Hanno Boeck:
8484 #endif
8585 #include <time.h> /* asctime() and localtime(), at least on BSD Unix */
8686 static time_t jobtime;
87 #endif
87
88 #if defined(_MSC_VER)
89 #define strtoll _strtoi64
90 #endif
91
92 #define INVALID_EPOCH_VALUE 0x7fffffffffffffffULL
93
94 static time_t
95 get_unique_time_if_given(void)
96 {
97 const char *source_date_epoch;
98 int64_t epoch;
99 char *endptr;
100 time_t ret = INVALID_EPOCH_VALUE;
101
102 source_date_epoch = getenv("SOURCE_DATE_EPOCH");
103 if (source_date_epoch) {
104 errno = 0;
105 epoch = strtoll(source_date_epoch, &endptr, 10);
106 if (!(epoch < 0 || *endptr != '\0' || errno != 0)) {
107 ret = (time_t) epoch;
108 #if defined(_MSC_VER)
109 if (ret > 32535291599ULL)
110 ret = 32535291599ULL;
111 #endif
112 }
113 }
114 return ret;
115 }
116 #endif /* CREATIONDATE */
117
88118 /*
89119 * This routine copies a file down the pipe. Search path uses the
90120 * header path.
13871417 if (*iname)
13881418 fprintf(bitfile, "%%%%Title: %s\n", iname);
13891419 #ifdef CREATIONDATE
1390 jobtime=time(0);
1391 fprintf(bitfile, "%%%%CreationDate: %s",
1392 asctime(localtime(&jobtime)));
1420 jobtime = get_unique_time_if_given();
1421 if (jobtime == INVALID_EPOCH_VALUE) {
1422 jobtime = time(0);
1423 fprintf(bitfile, "%%%%CreationDate: %s",
1424 asctime(localtime(&jobtime)));
1425 } else {
1426 fprintf(bitfile, "%%%%CreationDate: %s",
1427 asctime(gmtime(&jobtime)));
1428 }
13931429 #endif
13941430 if (! isepsf) {
13951431 /*
66 -- LICENSE: GPL v2.0
77 -----------------------------------------------------------------------
88
9 luaotfload = luaotfload or { }
10 local version = "2.7"
11 luaotfload.version = version
12 luaotfload.self = "luaotfload-tool"
9 luaotfload = luaotfload or { }
10 local version = "2.7"
11 luaotfload.version = version
12 luaotfload.min_luatex_version = { 0, 95, 0 } --- i. e. 0.95.0
13 luaotfload.self = "luaotfload-tool"
1314
1415 --[[doc--
1516
3132 --doc]]--
3233
3334 kpse.set_program_name "luatex"
34
35 --[[doc--
36
37 We test for Lua 5.1 by means of capability detection to see if
38 we’re running an outdated Luatex. If so, we bail.
39
40 \url{http://lua-users.org/wiki/LuaVersionCompatibility}
41
42 --doc]]--
43
4435
4536 local iowrite = io.write
4637 local kpsefind_file = kpse.find_file
5849 local tonumber = tonumber
5950 local type = type
6051
61 local runtime
62 if _G.getfenv ~= nil then -- 5.1 or LJ
63 if _G.jit ~= nil then
64 runtime = { "jit", jit.version }
65 else
66 runtime = { "stock", _VERSION }
67 print "FATAL ERROR"
68 print "Luaotfload requires a Luatex version >=0.76."
69 print "Please update your TeX distribution!"
70 os.exit (-1)
71 end
72 else -- 5.2
73 runtime = { "stock", _VERSION }
52 do
53 local runtime = _G.jit and { "jit" , jit.version }
54 or { "stock", _VERSION }
55 local stats = status and status.list ()
56 local minimum = luaotfload.min_luatex_version
57 local actual = { 0, 0, 0 }
58 if stats then
59 local major = stats.luatex_version / 100
60 local minor = stats.luatex_version % 100
61 local revision = stats.luatex_revision --[[ : string ]]
62 local revno = tonumber (revision)
63 actual = { major, minor, revno or 0 }
64 end
65
66 if actual [1] < minimum [1] or actual [2] < minimum [2]
67 or actual [3] < minimum [3]
68 then
69 texio.write_nl ("term and log",
70 string.format ("\tFATAL ERROR\n\z
71 \tLuaotfload requires a Luatex version >= %d.%d.%d.\n\z
72 \tPlease update your TeX distribution!\n\n",
73 (unpack or table.unpack) (minimum)))
74 error "version check failed"
75 end
76 luaotfload.runtime = runtime
77 luaotfload.luatex_version = actual
7478 end
7579
7680 local C, Ct, P, S = lpeg.C, lpeg.Ct, lpeg.P, lpeg.S
335339 local out = function (...) texiowrite_nl (stringformat (...)) end
336340 local uname = os.uname ()
337341 local meta = fonts.names.getmetadata ()
338 local info = status.list ()
342
343 local runtime = luaotfload.runtime
344 local actual = luaotfload.luatex_version
345 local status = config.luaotfload.status
346 local notes = status and status.notes or { }
347
339348 out (about, luaotfload.self)
340349 out ("%s version: %q", luaotfload.self, version)
341 out ("Revision: %q", config.luaotfload.status.notes.revision)
350 if notes.description then
351 out ("Luaotfload: %q", notes.description)
352 end
353 out ("Revision: %q", notes.revision)
342354 out ("Lua interpreter: %s; version %q", runtime[1], runtime[2])
343355 --[[out ("Luatex SVN revision: %d", info.luatex_svn)]] --> SVN r5624
344 out ("Luatex version: %.2f.%d",
345 info.luatex_version / 100,
346 info.luatex_revision)
356 out ("Luatex version: %d.%d", actual [1], actual [2])
347357 out ("Platform: type=%s name=%s", os.type, os.name)
348358
349359 local uname_vars = tablesortedkeys (uname)
355365 out("No database metadata available.")
356366 else
357367 out ("Index: version=%q created=%q modified=%q",
358 config.luaotfload.status.notes.revision,
368 meta.version or "too old",
359369 meta.created or "ages ago",
360370 meta.modified or "ages ago")
361371 end
11591169 tmpspec.size = 655360 --- assume 10pt
11601170 end
11611171
1162 local foundname, subfont, success
1163
1164 if tmpspec.lookup == "name"
1165 or tmpspec.lookup == "anon" --- not *exactly* as resolvers.anon
1166 then
1167 foundname, _, success = fonts.names.lookup_font_name (tmpspec)
1168 if foundname then
1169 foundname, _, success = fonts.names.lookup_font_file (foundname)
1172 local foundname, subfont, success, needle
1173
1174 if tmpspec.lookup == "name" then
1175 if fonts.definers.resolvers.name (tmpspec) then
1176 needle = tmpspec.resolved
1177 end
1178 elseif tmpspec.lookup == "anon" then
1179 if fonts.definers.resolvers.anon (tmpspec) then
1180 needle = tmpspec.resolved or tmpspec.name
11701181 end
11711182 elseif tmpspec.lookup == "file" then
1183 needle = tmpspec.name
1184 end
1185
1186 if needle then
11721187 foundname, _, success = fonts.names.lookup_font_file (tmpspec.name)
11731188 end
11741189
00 #!/usr/bin/env perl
1 # $Id: tlmgr.pl 40800 2016-04-28 17:56:52Z karl $
1 # $Id: tlmgr.pl 40844 2016-05-02 23:46:44Z karl $
22 #
33 # Copyright 2008-2016 Norbert Preining
44 # This file is licensed under the GNU General Public License version 2
55 # or any later version.
66 #
77
8 my $svnrev = '$Revision: 40800 $';
9 my $datrev = '$Date: 2016-04-28 19:56:52 +0200 (Thu, 28 Apr 2016) $';
8 my $svnrev = '$Revision: 40844 $';
9 my $datrev = '$Date: 2016-05-03 01:46:44 +0200 (Tue, 03 May 2016) $';
1010 my $tlmgrrevision;
1111 my $prg;
1212 if ($svnrev =~ m/: ([0-9]+) /) {
76367636
76377637 =over 4
76387638
7639 =item C<auto-remove, value 0 or 1 (default 1), same as command-line
7639 =item C<auto-remove>, value 0 or 1 (default 1), same as command-line
76407640 option.
76417641
76427642 =item C<gui-expertmode>, value 0 or 1 (default 1).
76607660
76617661 =over 4
76627662
7663 =item C<allowed-actions> I<action1[,I<action>,...]
7663 =item C<allowed-actions> I<action1> [,I<action>,...]
76647664 The value is a comma-separated list of C<tlmgr> actions which are
76657665 allowed to be executed when C<tlmgr> is invoked in system mode (that is,
76667666 without C<--usermode>).
76787678 disables this.
76797679
76807680 The checksum algorithm is SHA-512. Your system must have (looked for in
7681 this order) the Perl L<Digest::SHA> module, the C<openssl> program
7682 (L<openssl.org>), or the C<sha512sum> program (from GNU Coreutils,
7683 L<http://www.gnu.org/software/coreutils>). If none of these are
7684 available, a warning is issued and C<tlmgr> proceeds without checking
7685 checksums. (Incidentally, other SHA implementations, such as the pure
7686 Perl and pure Lua modules, are much too slow to be usable in our
7687 context.) C<no-checksums> also avoids the warning.
7681 this order) the Perl C<Digest::SHA> module, the C<openssl> program
7682 (L<http://openssl.org>), or the C<sha512sum> program (from GNU
7683 Coreutils, L<http://www.gnu.org/software/coreutils>). If none of these
7684 are available, a warning is issued and C<tlmgr> proceeds without
7685 checking checksums. (Incidentally, other SHA implementations, such as
7686 the pure Perl and pure Lua modules, are much too slow to be usable in
7687 our context.) C<no-checksums> also avoids the warning.
76887688
76897689
76907690 =head1 CRYPTOGRAPHIC VERIFICATION
0 2016-05-04 Karl Berry <karl@freefriends.org>
1
2 * texmfmp-help.h (PDFTEXHELP) [pdfTeX]: mention pdftex.org.
3
04 2016-02-27 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
15
26 * help.h: Add an option -charcode-format in omfonts for compatibility.
0 2016-05-06 Karl Berry <karl@tug.org>
1
2 * texmfmp.c (init_start_time, get_date_and_time) [onlyTeX]:
3 ignore SOURCE_DATE_EPOCH... envvars for original TeX.
4
5 2016-05-05 Akira Kakuto <kakuto@fuk.kinidai.ac.jp>
6
7 * texmfmp.c (strtoull) [_MSC_VER]: #define as _strtoui64.
8
9 2016-05-04 Karl Berry <karl@freefriends.org>
10
11 * texmfmp.c (init_start_time): new fn, factored out from
12 initstarttime.
13 (get_date_and_time): if envvar SOURCE_DATE_EPOCH_TEX_PRIMITIVES
14 is set, initialize minutes, day, month, year, from
15 SOURCE_DATE_EPOCH value. Requested by Debian, thread starting at
16 http://tug.org/pipermail/tex-k/2016-May/002691.html.
17
018 2016-04-14 Akira Kakuto <kakuto@fuk.kinidai.ac.jp>
119
220 * texmfmp.c: Fix a bug to show input file name in the case of pipe input.
21992199 }
22002200 #endif /* not WIN32 */
22012201
2202 #if defined(_MSC_VER)
2203 #define strtoull _strtoui64
2204 #endif
2205
2206 static boolean start_time_set = false;
2207 static time_t start_time = 0;
2208
2209 void init_start_time() {
2210 char *source_date_epoch;
2211 unsigned long long epoch;
2212 char *endptr;
2213 if (!start_time_set) {
2214 start_time_set = true;
2215 #ifndef onlyTeX
2216 source_date_epoch = getenv("SOURCE_DATE_EPOCH");
2217 if (source_date_epoch) {
2218 errno = 0;
2219 epoch = strtoull(source_date_epoch, &endptr, 10);
2220 if (epoch < 0 || *endptr != '\0' || errno != 0) {
2221 FATAL1 ("invalid epoch-seconds-timezone value for environment variable $SOURCE_DATE_EPOCH: %s",
2222 source_date_epoch);
2223 }
2224 start_time = epoch;
2225 } else
2226 #endif /* not onlyTeX */
2227 {
2228 start_time = time((time_t *) NULL);
2229 }
2230 }
2231 }
2232
22022233 /* Besides getting the date and time here, we also set up the interrupt
22032234 handler, for no particularly good reason. It's just that since the
22042235 `fix_date_and_time' routine is called early on (section 1337 in TeX,
22092240 get_date_and_time (integer *minutes, integer *day,
22102241 integer *month, integer *year)
22112242 {
2212 time_t myclock = time ((time_t *) 0);
2213 struct tm *tmptr = localtime (&myclock);
2243 struct tm *tmptr;
2244 #ifndef onlyTeX
2245 string sde_texprim = getenv ("SOURCE_DATE_EPOCH_TEX_PRIMITIVES");
2246 if (sde_texprim && STREQ (sde_texprim, "1")) {
2247 init_start_time ();
2248 tmptr = gmtime (&start_time);
2249 } else
2250 #endif /* not onlyTeX */
2251 {
2252 /* whether the envvar was not set (usual case) or invalid,
2253 use current time. */
2254 time_t myclock = time ((time_t *) 0);
2255 tmptr = localtime (&myclock);
2256
2257 #ifndef onlyTeX
2258 /* warn if they gave an invalid value, empty (null string) ok. */
2259 if (sde_texprim && strlen (sde_texprim) > 0
2260 && !STREQ (sde_texprim, "0")) {
2261 WARNING1 ("invalid value (expected 0 or 1) for environment variable $SOURCE_DATE_EPOCH_TEX_PRIMITIVES: %s",
2262 sde_texprim);
2263 }
2264 #endif /* not onlyTeX */
2265 }
22142266
22152267 *minutes = tmptr->tm_hour * 60 + tmptr->tm_min;
22162268 *day = tmptr->tm_mday;
29292981 #endif /* not pdfTeX */
29302982
29312983 #if !defined(XeTeX)
2932 static boolean start_time_set = false;
2933 static time_t start_time = 0;
2984
29342985 #define TIME_STR_SIZE 30
29352986 char start_time_str[TIME_STR_SIZE];
29362987 static char time_str[TIME_STR_SIZE];
29893040 }
29903041 }
29913042
2992 #if defined(_MSC_VER)
2993 #define strtoll _strtoi64
2994 #endif
2995
29963043 void initstarttime(void)
29973044 {
2998 char *source_date_epoch;
2999 int64_t epoch;
3000 char *endptr;
30013045 if (!start_time_set) {
3002 start_time_set = true;
3003 source_date_epoch = getenv("SOURCE_DATE_EPOCH");
3004 if (source_date_epoch) {
3005 errno = 0;
3006 epoch = strtoll(source_date_epoch, &endptr, 10);
3007 if (epoch < 0 || *endptr != '\0' || errno != 0) {
3008 FATAL1 ("invalid value for environment variable $SOURCE_DATE_EPOCH: %s",
3009 source_date_epoch);
3010 }
3011 start_time = epoch;
3012 makepdftime(start_time, start_time_str, /* utc= */true);
3013 }
3014 else {
3015 start_time = time((time_t *) NULL);
3016 makepdftime(start_time, start_time_str, /* utc= */false);
3046 init_start_time ();
3047 if (getenv ("SOURCE_DATE_EPOCH")) {
3048 makepdftime (start_time, start_time_str, /* utc= */true);
3049 } else {
3050 makepdftime (start_time, start_time_str, /* utc= */false);
30173051 }
30183052 }
30193053 }
524524 expand_macros_in_tokenlist(p);
525525 old_setting = selector;
526526 j = write_stream(p);
527 if (write_open[j]) {
527 if (file_can_be_written(j)) {
528528 selector = j;
529529 } else if ((j == term_only) && (selector == term_and_log)) {
530530 /* write to the terminal if file isn't open */
0 .TH PDFTEX 1 "16 June 2015" "Web2C @VERSION@"
0 .TH PDFTEX 1 "4 May 2016" "Web2C @VERSION@"
11 .\"=====================================================================
22 .if n .ds MF Metafont
33 .if t .ds MF Metafont
317317 Print version information and exit.
318318 .\"=====================================================================
319319 .SH ENVIRONMENT
320 See the Kpathsearch library documentation (the `Path specifications'
320 See the Kpathsea library documentation (e.g., the `Path specifications'
321321 node) for precise details of how the environment variables are used.
322322 The
323323 .B kpsewhich
363363 .B TEXFORMATS
364364 Search path for format files.
365365 .TP
366 .B TEXPOOL
367 search path for
368 .B pdftex
369 internal strings.
370 .TP
371366 .B TEXEDIT
372367 Command template for switching to editor. The default, usually
373368 .BR vi ,
377372 Search path for font metric
378373 .RI ( .tfm )
379374 files.
375 .TP
376 .B SOURCE_DATE_EPOCH
377 If set, its value, taken to be in epoch-seconds, will be used for the
378 timestamps in the PDF output, such as the CreationDate and ModDate keys.
379 This is useful for making reproducible builds.
380 .TP
381 .B SOURCE_DATE_EPOCH_TEX_PRIMITIVES
382 If set to the value "1", the time-related \*(TX primitives
383 .RI ( \eyear ,
384 .IR \emonth ,
385 .IR \eday ,
386 .IR \etime )
387 are also initialized from the value of SOURCE_DATE_EPOCH. This is not
388 recommended if there is any viable alternative.
389 .br
390 pdf\*(TX also has several primitives to support reproducible builds,
391 which are preferable to setting these environment variables; see the
392 main manual.
393 .PP
394 Many, many more environment variables may be consulted related to path
395 searching. See the Kpathsea manual.
380396 .\"=====================================================================
381397 .SH FILES
382398 The location of the files mentioned below varies from system to
384400 .B kpsewhich
385401 utility to find their locations.
386402 .TP
387 .I pdftex.pool
388 Text file containing pdf\*(TX's internal strings.
389 .TP
390403 .I pdftex.map
391 Filename mapping definitions.
404 Font name mapping definitions.
392405 .TP
393406 .I *.tfm
394407 Metric files for pdf\*(TX's fonts.
408421 .IR "Web2C: A TeX implementation" .
409422 .\"=====================================================================
410423 .SH BUGS
411 This version of pdf\*(TX implements a number of optional extensions.
412 In fact, many of these extensions conflict to a greater or lesser
413 extent with the definition of pdf\*(TX. When such extensions are
414 enabled, the banner printed when pdf\*(TX starts is changed to print
415 .B pdfTeXk
416 instead of
417 .BR pdfTeX .
418 .PP
419424 This version of pdf\*(TX fails to trap arithmetic overflow when
420425 dimensions are added or subtracted. Cases where this occurs are rare,
421426 but when it does the generated
426431 .\"=====================================================================
427432 .SH AVAILABILITY
428433 pdf\*(TX is available for a large variety of machine architectures
429 and operation systems.
434 and operating systems.
430435 pdf\*(TX is part of all major \*(TX distributions.
431 .P
432 Information on how to get pdf\*(TX and related information
433 is available at the
434 .B http://www.pdftex.org
435 .IR "pdf\*(TX"
436 web site.
437 .P
438 The following pdfe\*(TX related mailing list is available:
439 .BR pdftex@tug.org .
440 This is a mailman list;
441 to subscribe send a message containing
442 .I subscribe
443 to
444 .BR pdftex-request@tug.org .
445 A web interface and list archives can be found at the
446 .B "http://lists.tug.org/pdftex"
447 mailing list web site.
436 .br
437 The pdf\*(TX home page: http://www.pdftex.org.
438 .br
439 pdf\*(TX on CTAN: http://www.ctan.org/pkg/pdftex.
440 .br
441 pdf\*(TX mailing list for all discussion: http://lists.tug.org/pdftex.
448442 .\"=====================================================================
449443 .SH "SEE ALSO"
444 The full pdf\*(TX manual can be accessed from the home page or CTAN page.
445 Same for the Web2C, Kpathsea, and other manuals.
446 Some related programs:
450447 .BR epstopdf (1),
451448 .BR etex (1),
452449 .BR latex (1),
454451 .BR mptopdf (1),
455452 .BR tex (1),
456453 .BR mf (1).
457 http://pdftex.org, http://tug.org/web2c.
458454 .\"=====================================================================
459455 .SH AUTHORS
460456 The primary authors of pdf\*(TX are Han The Thanh, Petr Sojka,
00 pdfTeX 3.14159265-2.6-1.40.17 (TeX Live 2016)
11 - changes:
2 - if environment variable SOURCE_DATE_EPOCH is set, use its value for
3 the CreationDate and ModDate values, and to seed the trailer /ID.
2 - if the environment variable SOURCE_DATE_EPOCH is set, use its value for
3 the PDF CreationDate and ModDate values, and to seed the trailer /ID.
44 This by itself should suffice to create reproducible PDFs. The
5 other changes support more granular output tweaks along the same lines.
5 new primitives below support more granular output tweaks with the
6 same intent.
7 - if the environment variable SOURCE_DATE_EPOCH_TEX_PRIMITIVES is set
8 to 1, the \year, \day, and \time primitives are also initialized
9 from the SOURCE_DATE_EPOCH value, instead of the current time.
610
711 - new primitive \pdfinfoomitdate to omit CreationDate and ModDate keys.
812 - new primitive \pdftrailerid to set seed for the trailer /ID
11 TeX source files and enhance the result of TeX typesetting with the help
22 of PDF. When PDF output is not selected, pdfTeX produces normal DVI
33 output, otherwise it produces PDF output that looks essentially
4 identical to the DVI output. An important aspect of this project was to
5 investigate alternative justification algorithms, resulting in the
6 margin kerning and font expansion "microtypgraphy" features, inspired by
7 Peter Karow.
4 identical to the DVI output
85
9 pdfTeX is based on the original e-TeX sources and Web2c, and has been
10 successfully compiled on many systems. It is actively maintained, but
11 stability is paramount now; only bug fixes and small enhancements are expected.
6 An important aspect of this project was to investigate alternative
7 justification algorithms, resulting in the "microtypography" features of
8 margin kerning and font expansion. This was inspired by Peter Karow's
9 and Hermann Zapf's work.
10
11 pdfTeX is integrated with the original e-TeX sources and Web2c. It is
12 actively maintained, but stability is paramount now; only bug fixes and
13 small enhancements are expected. Releases are made through TeX Live.
1214
1315 See the file NEWS for changes to the program.
1416 Documentation about pdfTeX can be found at http://www.pdftex.org.
00 /* The help messages for TeX & MF family of programs.
11
2 Copyright 1995, 1996, 2008-2015 Karl Berry.
2 Copyright 1995, 1996, 2008-2016 Karl Berry.
33 Copyright 2001-05 Olaf Weber.
44
55 This program is free software; you can redistribute it and/or modify
463463 "-8bit make all characters printable by default",
464464 "-help display this help and exit",
465465 "-version output version information and exit",
466 "",
467 "pdfTeX home page: <http://pdftex.org>",
466468 NULL
467469 };
468470 #endif /* pdfTeX */
+0
-0
utils/devnag/NEWS less more
(Empty file)
+0
-20
utils/devnag/README less more
0 =============================================================================
1 Devanagari for TeX Release Notes
2 version 2.0 23 January 2000
3 =============================================================================
4
5 Preprocessor: devnag.c has been updated and greatly enhanced. If you have
6 a previously installed version of devnag, you must recompile the source.
7 A 32-bit DOS/Win95 executable (devnag.exe) has been provided.
8
9 Package: dev.sty has been revised to fix certain catcode problems. Several
10 new features have been implemented in the package. Refer to the manual
11 for descriptions.
12
13 Font: The fonts have been revised. Certain characters have been modified.
14 The font metrics have not been changed.
15
16 Please refer to the manual for further information.
17
18 =============================================================================
19
00 /* $Id: devnag.c,v 1.15 2008-03-09 15:57:59 icebearsoft Exp $
1 Version 2.15
1 Version 2.16
22
33 *
44 Preprocessor for Devanagari for TeX package
5 Copyright (C) 1991-1998 University of Groningen, The Netherlands
5 Copyright (C) 1991-2016 University of Groningen, The Netherlands
66 *
77 Author : Frans J. Velthuis <velthuis@rc.rug.nl>
88 Date : 09 May 1991
276276 (requested by Karl Berry)
277277 */
278278
279 const char *version = "2.15";
279 /*
280 Modifications in version 2.16:
281
282 Character and string handling commands were improved by TeX Live developers,
283 these commands cuased errors in several platforms.
284
285 */
286
287 const char *version = "2.16";
280288
281289 #include <stdio.h>
282290 #include <ctype.h>
0 \def\DevnagVersion{2.15}%@modernhindi
0 \def\DevnagVersion{2.16}%@modernhindi
11 \def\datemodernhindi{\def\today{\@datenumeric\day\space\ifcase\month\or
22 {\dn jnvrF}\or
33 {\dn \327wrvrF}\or
0 \def\DevnagVersion{2.15}%@hyphen
0 \def\DevnagVersion{2.16}%@hyphen
11 \documentclass[12pt]{article}
22 \usepackage{devanagari}
33 \parindent=0pt
0 \def\DevnagVersion{2.15}\documentclass[11pt]{article}
0 \def\DevnagVersion{2.16}\documentclass[11pt]{article}
11 \usepackage{devanagari}
22
33 \def\portraitpage{%
0 \def\DevnagVersion{2.15}\input dnmacs
0 \def\DevnagVersion{2.16}\input dnmacs
11 \font\dnhead=dvnc10 at 20pt
22 \font\rmhead=cmr10 at 14pt
33 \def\newpage{\vfill\eject}