1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
ChangeLog
version 1.6 / 17-Aug-2015
* tcllauncher::demonize when invoked with the -noclose option will still
redirect any stdio files (stdin, stdout, stderr) to/from /dev/null if
the corresponding stdio handle does not exist.
* clean and distclean make targets fixed/improved
* configure script now included in distribution
* remove all reference to Windows
version 1.5 / 3-Oct-2014
* tcllauncher no longer generates or references a shared library.
* tcllauncher now is linked against the thread library to avoid
deadlocking if Tcl is built with threads
* Sync Makefile.in with TEA 3.9; clean up the generation of the object
file and the executable
* tcllauncher-support.tcl is now macro-substituted from
tcllauncher-support.tcl.in to get package and version right every time
version 1.4 / 2-Sep-2014
* reassert lock on pidfile during pidfile_write
The documented usage of pidfile_open and pidfile_write did not actually work
because the flock on the pidfile would not survive the daemonize call to fork
to a background process. Now we re-assert the lock on the pidfile when calling
pidfile_write (aborting if the lock cannot be obtained) so that the pidfile can
be reliably used as a lockfile as documented.
* Updated build instructions for Debian.
* Corrected unclear pidfile_open documentation.
* manual page rendering improvements.
* Update README and license and remove superfluous stuff from launcher.h
* Support for Tcl 8.6
* In pid_open properly handle the case of specifying the path to the pid
file. Also properly support the file mode argument.
version 1.3 / 26-Nov-2012
* Catch the sourcing of the app's main.tcl file and if there is an error,
customize the error message to include that it's a tcllauncher app and
the command line arguments, then write it to stderr and exit with a
nonzero exit status.
* Change the name of the startup routine to the more standard "main".
version 1.2 / 18-Jan-2011
* Upgrade to Tcl Extension Architecture (TEA) 3.8.
* Add aclocal.m4 to create a rule for finding the path to dtplite and modify
configure.in to use that rule.
* Merge daemonize.tcl and pidfile.tcl into tcllauncher.tcl
* Reference Tcl 8.5 in docs and whatnot.
* Add support for Mac OS X
version 1.1 / 11-Jun-2009
* Alter Makefile.in to have rules for building the tcllauncher.n
manpage using dtplite based on the tcllauncher.man Tcl doctools file.
* Deploy pidfile_* and daemonize functions.
* Document pidfile functions.
* Builds cleanly on Debian. Added README.Debin with configure instructions.
* Upgrade to Tcl Extension Architecture (TEA) 3.7
version 1.0 / 18-Mar-2008
* Create a global variable, launchdir, containing the directory that
the main.tcl is being run out of, if the path to the executable
is .../bin/programName, else set that variable to "." This provides
a way for programs to find other files they installed alongside
their main.tcl.
* When invoked as a shell, [info nameofexecutable] returns nothing.
Detect that condition and, if so, use the SHELL environment variable to
form the basis of what we do. For instance, if the shell is /usr/local/bin/farsh,
we'll run /usr/local/lib/farsh/main.tcl.
* Make sure tcllauncher gets installed into the bin directory.
* When allocating memory to fiddle command line arguments before
invoking Tcl_Main, use malloc instead of ckalloc because whatever
ckalloc needs hasn't necessarily been initialized yet.
* Using $(COMPILE) instead of $(CC) for compiling the main routine
makes it work on FreeBSD as well as the Mac.
|