ChangeLog-2003 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076
  1. 2003-05-01 Wolfgang Jährling <wolfgang@pro-linux.de>
  2. * service.scm (stop.<service>): Ignore the result of the
  3. user-defined stop code. Set the `running' slot of the service to
  4. `#f' in any case.
  5. (<service>): Adopted semantics of `stop' slot.
  6. * support.scm (opt-lambda): New macro.
  7. * self.scm (persistency): Use it.
  8. * service.scm (make-kill-destructor): Likewise.
  9. 2003-04-27 Wolfgang Jährling <wolfgang@pro-linux.de>
  10. * self.scm (enable-persistency): Renamed to ...
  11. (persistency): ... this. New action.
  12. (disable-persistency): Renamed to ...
  13. (no-persistency): ... this. New action.
  14. 2003-04-25 Wolfgang Jährling <wolfgang@pro-linux.de>
  15. * support.scm (label): New macro.
  16. * self.scm (enable-persistency): Use `label' and `case-lambda'
  17. instead of `lambda*'.
  18. * dmd.scm: Don't use module `(ice-9 optargs)'.
  19. * service.scm (doc.<service>): Don't break if given action is not
  20. provided by the service.
  21. (first-running): Simplify.
  22. 2003-04-24 Wolfgang Jährling <wolfgang@pro-linux.de>
  23. * self.scm (enable-persistency): New optional argument `file' for
  24. setting the persistency state file.
  25. * dmd.scm: Use module `(ice-9 optargs)'.
  26. 2003-04-21 Wolfgang Jährling <wolfgang@pro-linux.de>
  27. * dmd.scm (process-command): Fix handling of `dmd-status'. Also
  28. cleaned up the code.
  29. * service.scm (handle-unknown): New procedure.
  30. (make-actions): Bugfix: Exchange position of procedure and
  31. docstring in the created pairs.
  32. * self.scm (detailed-status): Updated to change of Apr 10.
  33. * service.scm (<service>): Default init value of `start' slot is
  34. now a procedure that takes no arguments. Similar for `stop': It
  35. accepts only one argument now.
  36. * examples/_unknown.scm (compose): New procedure.
  37. (unknown-service): Use it in the `start' action.
  38. (look-for-service): Cleaned up.
  39. 2003-04-20 Wolfgang Jährling <wolfgang@pro-linux.de>
  40. * service.scm (lookup-running): New procedure.
  41. (depends-resolved?.<service>): Use it.
  42. (launch-service): Likewise.
  43. (stop.<symbol>): Likewise.
  44. (action.<symbol>): Likewise.
  45. (status.<symbol>): Show status of running service, if any.
  46. Otherwise, show status of all who provide the symbol. Also
  47. display `dmd-status' only if service does not provide a `status'
  48. action.
  49. (lookup-running-or-providing): New procedure.
  50. (action.<symbol>): Use it.
  51. (status.<symbol>): Likewise.
  52. (<service>): Field `actions' is a list now instead of a hash.
  53. (action:name): New procedure.
  54. (action:proc): New procedure.
  55. (action:doc): New procedure.
  56. (lookup-action.<service>): New method.
  57. (defines-action?.<service>): Adopted to the new structure of the
  58. `actions' slot.
  59. (actions-list.<service>): Likewise.
  60. (action.<service>): Likewise.
  61. (doc.<service>): Likewise.
  62. (make-actions): Made the docstring optional. Also, adopted to new
  63. structure of `actions' slot of `<service>'.
  64. (action.<service>): Show `dmd-status' in the default
  65. implementation of `status'.
  66. (status.<symbol>): Removed.
  67. * dmd.scm (process-command): Don't handle `status' action here.
  68. 2003-04-18 Wolfgang Jährling <wolfgang@pro-linux.de>
  69. * support.scm (caught-error): Handle `wrong-number-of-args'
  70. specially.
  71. * service.scm (action.<service>): Check whether the number of args
  72. is ok. Display a useful message if not.
  73. * support.scm (can-apply?): New procedure.
  74. 2003-04-17 Wolfgang Jährling <wolfgang@pro-linux.de>
  75. (stop.<service>): If the service is respawnable, still set its
  76. running slot to `#f' before calling the destructor, but do call
  77. the destructor with the original value of the slot.
  78. * examples/_unknown.scm (look-for-service): Additional (optional)
  79. argument: A predicate that a service must satisfy.
  80. (unknown-service): Look for running or non-running services first,
  81. whichever makes more sense in the particular case.
  82. 2003-04-16 Wolfgang Jährling <wolfgang@pro-linux.de>
  83. * service.scm (<service>): Renamed slot `extra-actions' to
  84. `actions'.
  85. (defines-extra-action?.<service>): Renamed to ...
  86. (defines-action?.<service>): ... this. All callers changed.
  87. (extra-action.<service>): Renamed to ...
  88. (action.<service>): ... this. All callers changed.
  89. (extra-action.<symbol>): Renamed to ...
  90. (action.<symbol>): ... this. All callers changed.
  91. (make-extra-actions): Renamed to ...
  92. (make-actions): ... this. All callers changed.
  93. (make-forkexec-constructor): Use the arguments given to us, not
  94. those given to the created procedure.
  95. 2003-04-13 Wolfgang Jährling <wolfgang@pro-linux.de>
  96. * service.scm (status.<symbol>): Implement.
  97. * Makefile.am (EXTRA_DIST): Add file `QUESTIONS'.
  98. 2003-04-12 Wolfgang Jährling <wolfgang@pro-linux.de>
  99. * service.scm (extra-action.<service>): Handle `status' default
  100. action, but do nothing in its implementation.
  101. (status.<symbol>): New method.
  102. * dmd.scm (process-command): Handle `dmd-status' and `status'.
  103. 2003-04-10 Wolfgang Jährling <wolfgang@pro-linux.de>
  104. * service.scm (default-display-status.<service>): Renamed to ...
  105. (dmd-status.<service>): ... this. New procedure.
  106. (extra-action.<service>): Don't provide a default implementation
  107. of `status' here.
  108. 2003-04-09 Wolfgang Jährling <wolfgang@pro-linux.de>
  109. * args.scm (process-args): Make `--file -' and `-f -' work like
  110. `--file=-' and `-f-', repectively.
  111. * dmd.scm (main): Use `-' instead of `none' as file name to
  112. specify for readings commands from stdin (`--socket').
  113. 2003-04-08 Wolfgang Jährling <wolfgang@pro-linux.de>
  114. * NEWS: Forked off version -0.6.
  115. 2003-04-08 Wolfgang Jährling <wolfgang@pro-linux.de>
  116. * service.scm (extra-action.<symbol>): Prevent arguments from
  117. getting lost for the `doc' action.
  118. (doc.<service>): Make it work at all by using symbols instead of
  119. strings in the `case' structure.
  120. 2003-04-07 Wolfgang Jährling <wolfgang@pro-linux.de>
  121. * examples/_unknown.scm (differs-in-case?): Renamed to ...
  122. (differs-only-in-case?): ... this. New procedure. All callers
  123. changed.
  124. * service.scm (<service>): Every value in the `extra-actions' hash
  125. now consists of a pair with the procedure in the CAR and the
  126. docstring in the CDR.
  127. (extra-action.<service>): Adopted to new structure of the
  128. `extra-actions' slot.
  129. (make-extra-actions): Likewise.
  130. (doc.<service>): Display docstring on request.
  131. * support.scm (split-case): Removed.
  132. * service.scm (doc.<service>): Don't use `split-case' anymore.
  133. 2003-03-28 Wolfgang Jährling <wolfgang@pro-linux.de>
  134. * service.scm (make-childexec-constructor): Renamed to ...
  135. (make-forkexec-constructor): ... this. New procedure.
  136. (make-kill-destructor): Default to SIGTERM.
  137. * dmd.scm: Use module `(srfi srfi-16)'.
  138. 2003-03-25 Wolfgang Jährling <wolfgang@pro-linux.de>
  139. * comm.scm (terminatimg-string): Moved out of dmd specific code,
  140. as it is also used by deco.
  141. 2003-03-23 Wolfgang Jährling <wolfgang@pro-linux.de>
  142. * examples/_unknown.scm (look-for-service): New procedure.
  143. (unknown-service): New extra-actions `stop' and `extra-action'.
  144. Let `start' use `look-for-service'.
  145. * service.scm (register-services): Verfify that canonical names
  146. are actually canonical.
  147. (make-childexec-constructor): Accept arguments, but ignore them.
  148. (make-kill-destructor): Likewise.
  149. (make-system-constructor): Likewise.
  150. (make-system-destructor): Likewise.
  151. (make-init.d-service): Updated to use the new names of the
  152. procedures. This should have been done *much* earlier.
  153. (extra-action.<symbol>): Actually make the ``unknown service''
  154. feature work.
  155. 2003-03-15 Wolfgang Jährling <wolfgang@pro-linux.de>
  156. * dmd.scm: Use module `(ice-9 readline)'.
  157. (main): Enable readline if we read commands from stdin
  158. and it is a non-dumb terminal. Exit on `C-d'.
  159. 2003-03-12 Wolfgang Jährling <wolfgang@pro-linux.de>
  160. * service.scm (conflicts-with.<service>): Cleaned up.
  161. (find-running): Renamed to ...
  162. (first-running): ... this. New procedure. All callers changed.
  163. 2003-03-09 Wolfgang Jährling <wolfgang@pro-linux.de>
  164. * configure.in: Check for version of Guile being at least 1.5.x.
  165. 2003-03-08 Wolfgang Jährling <wolfgang@pro-linux.de>
  166. * examples/_unknown.scm: New file.
  167. (lacks-char-from?): New procedure.
  168. (differs-by-missing-char?): New procedure.
  169. (differs-by-switched-chars?): New procedure.
  170. (differs-by-one-char?): New procedure.
  171. (differs-in-case?): New procedure.
  172. (similar?): New procedure.
  173. (unknown): New service.
  174. * examples/Makefile.am (EXTRA_DIST): Add the new file.
  175. 2003-03-02 Wolfgang Jährling <wolfgang@pro-linux.de>
  176. * support.scm (without-system-error): Renamed to ...
  177. (catch-system-error): ... this. New macro. All callers changed.
  178. (local-output): Don't send data to deco.
  179. (extra-output-sender-enabled): Removed.
  180. (without-extra-output): Removed (new implementation in comm.scm).
  181. * comm.scm (without-extra-output): New macro.
  182. (dmd-output-port): Send data to deco. Buffer the output for the
  183. logfile line-wise.
  184. * deco.scm (main): Don't display additional newlines.
  185. * support.scm (extra-output-sender): Moved to ...
  186. * comm.scm (extra-output-sender): ... here.
  187. * support.scm (open-extra-sender): Moved to ...
  188. * comm.scm (open-extra-sender): ... here.
  189. * support.scm (close-extra-sender): Moved to ...
  190. * comm.scm (close-extra-sender): ... here.
  191. * support.scm (terminating-string): Moved to ...
  192. * comm.scm (terminating-string): ... here.
  193. 2003-02-25 Wolfgang Jährling <wolfgang@pro-linux.de>
  194. * support.scm (display-version): Display stuff directly.
  195. * config.scm.in (banner): Removed.
  196. * support.scm (local-output): Don't do logging here anymore.
  197. (real-output-port, void-output-port): Removed.
  198. (log-output-port): Moved to ...
  199. * comm.scm (log-output-port): ... here. Conditional for dmd.
  200. (dmd-output-port): Do logging here now.
  201. * support.scm (without-extra-output): When catching an error, set
  202. `extra-output-sender-enabled' to `#t', not to `#f'.
  203. 2003-02-23 Wolfgang Jährling <wolfgang@pro-linux.de>
  204. * support.scm (begin-dmd): New macro.
  205. * comm.scm (dmd-output-port): Define only for dmd, not for deco.
  206. (original-output-port): Likewise.
  207. (silent): Likewise.
  208. (be-silent, be-verbose): Likewise.
  209. * support.scm (verify-dir): Code cleanup.
  210. * service.scm (start.<service>): Simplified. The different cond
  211. clauses don't need to give a return value anyway, so these got
  212. removed.
  213. * self.scm (cd): New extra-action for dmd.
  214. 2003-02-22 Wolfgang Jährling <wolfgang@pro-linux.de>
  215. * support.scm (be-silent, be-verbose): Removed.
  216. * comm.scm (original-output-port): New variable.
  217. (dmd-output-port): New variable. Use it as current output port.
  218. (silent): New variable.
  219. (be-silent, be-verbose): New procedures.
  220. 2003-02-21 Wolfgang Jährling <wolfgang@pro-linux.de>
  221. * dmd.scm (process-command): Don't handle `list-actions' here.
  222. * service.scm (extra-action.<service>): Don't handle `doc' here.
  223. (extra-action.<symbol>): Handle both of them here instead.
  224. (doc.<service>): New method.
  225. (display-extra-actions.<symbol>): Removed.
  226. * support.scm (split-case): New macro.
  227. 2003-02-20 Wolfgang Jährling <wolfgang@pro-linux.de>
  228. * self.scm (dmd-service): Added docstrings for the service and all
  229. its extra-actions.
  230. * service.scm (make-extra-actions): Accept docstring argument. It
  231. gets ignored for now. Also, made code more readable by using the
  232. extended `for-each' from SRFI-1.
  233. (<service>): New slot `docstring'.
  234. (extra-action.<service>): Default action takes arguments, new
  235. handled action `doc'.
  236. 2003-02-20 Wolfgang Jährling <wolfgang@pro-linux.de>
  237. * NEWS: Forked off version -0.7
  238. 2003-02-17 Wolfgang Jährling <wolfgang@pro-linux.de>
  239. * dmd.scm (main): Read commands from stdin if `none' was specified
  240. as socket file name.
  241. 2003-01-25 Wolfgang Jährling <wolfgang@pro-linux.de>
  242. * support.scm (extra-output-sender-enabled?): Renamed to ...
  243. (extra-output-sender-enabled): ... this. New variable. All users
  244. changed.
  245. 2003-01-01 Wolfgang Jährling <wolfgang@pro-linux.de>
  246. * config.scm.in (copyright): Updated year.
  247. * service.scm (defines-extra-action?.<service>): New method.
  248. (launch-service, stop.<symbol>, extra-action.<symbol>): Only use
  249. the unknown service as fallback if it provides the relevant
  250. extra-action.
  251. (<service>): Require slot `extra-actions' to never contain #f, but
  252. always contain a hash table.
  253. (extra-action.<service>): Simplify.
  254. (depends-resolved?.<service>): Don't apply `find-running' on the
  255. service symbol directly.
  256. (stop.<service>, extra-action.<service>): If dmd does quit, use
  257. the correct quit value.
  258. (extra-action-list.<service>): New method.
  259. (display-extra-actions.<symbol>): New method.
  260. * dmd.scm (process-command): Handle action `list-actions'.
  261. (main): Fail more gracefully if the persistency state file cannot
  262. be opened. Also cleaned up variable names.
  263. (persistency?): Renamed to ...
  264. (persistency): ... this. New variable. All users changed.
  265. * runlevel.scm (start-in-order): Implement.
  266. (register-runlevels): Take into account that `append!' is a
  267. linear-update procedure since the empty list cannot be modified.
  268. 2002-12-28 Wolfgang Jährling <wolfgang@pro-linux.de>
  269. * support.scm (define-simple-syntax): Renamed to ...
  270. (define-syntax-rule): ... this. New macro. All callers changed.
  271. * service.scm (launch-service): Display a clear useful message if
  272. no service provides what was requested.
  273. (start.<service>): If the problem is a dependency, tell the user
  274. about this fact.
  275. 2002-12-27 Wolfgang Jährling <wolfgang@pro-linux.de>
  276. * dmd.scm (main): Adopted options to recent changes in args.scm.
  277. * deco.scm (main): Likewise. Also fixed typo in option
  278. `--result-socket'.
  279. * support.scm (local-output): Don't pass `format' to `l10n', and
  280. don't try to pass the result of this to `apply'. This construct
  281. only ever worked because `l10n' is not yet implemented.
  282. * args.scm (arg-name.<option>): Removed. Now a getter for the
  283. slot `arg-name' of class `<option>'.
  284. 2002-12-26 Wolfgang Jährling <wolfgang@pro-linux.de>
  285. * service.scm (launch-service): Fix handling of unknown services.
  286. (extra-action.<service>): Simplify.
  287. (procedure-with-n-args?): Removed.
  288. 2002-12-20 Wolfgang Jährling <wolfgang@pro-linux.de>
  289. * service.scm (<service>): Fix what I messed up yesterday: Slot
  290. `start' must be callable without argument, `stop' must be callable
  291. with one argument.
  292. (list-of-symbols?): Fix typo.
  293. (launch-service): Fixed unknown service feature.
  294. (stop.<symbol>, extra-action.<symbol>): Likewise.
  295. * dmd.scm (process-args): Use `apply' instead of passing the
  296. argument list as single argument to `start', `enforce' and `stop'.
  297. * examples/wolfgangj.scm: Various minor fixes.
  298. 2002-12-19 Wolfgang Jährling <wolfgang@pro-linux.de>
  299. * comm.scm (receive-data.<receiver>): Fixed handling of invalid
  300. data. Should not happen, but better do it right anyway.
  301. * service.scm (<service>): The procedures stored in the start and
  302. stop slots must take an arbitrary amount of arguments now.
  303. (start.<service>, enforce.<service>, stop.<service>): Updated.
  304. (start.<symbol>, enforce.<symbol>, stop.<symbol>): Likewise.
  305. (launch-service): Updated, and fixed a bug that occured when the
  306. service is unknown and there is a `unknown' service that is
  307. supposed to handle this case.
  308. (procedure-with-n-args?): Don't yield a procedure anymore. There
  309. is no point in it since we use GOOPS now instead of our own
  310. system.
  311. (list-of-symbols?): Simplified.
  312. * dmd.scm: Don't use `(srfi srfi-8)' anymore.
  313. (process-command): Replaced `receive' with a `let',
  314. which is much simpler.
  315. * args.scm (<option>): Removed slot `takes-arg'. Added slots
  316. `takes-arg?', `optional-arg?' and `arg-name'. Removed unnecessary
  317. getter `description'.
  318. (takes-arg?.<option>): Removed (now a getter).
  319. (optional-arg?.<option>, long-option-string.<option>): Updated.
  320. (display-doc.<option>): Updated and fixed local procedure
  321. `fill-to' to not pass a string instead of a character to local
  322. procedure `output'.
  323. * self.scm (daemonize): Quit, not kill.
  324. * dmd.scm (extra-action.<service>): Allow all actions of `dmd' to
  325. quit. Now all actions need to take care that they don't invoke
  326. user-defined code without quit-protection.
  327. 2002-11-27 Wolfgang Jährling <wolfgang@pro-linux.de>
  328. * utils/dmd-gettext.scm (i18n-keywords): Renamed to ...
  329. (l10n-keywords): ... this. New variable.
  330. * utils/sysvconfig.scm: Clarified output header text.
  331. * args.scm (process-args): Minor cleanup of error output code.
  332. * comm.scm (receive-data.<receiver>): Likewise.
  333. 2002-11-26 Wolfgang Jährling <wolfgang@pro-linux.de>
  334. * dmd.scm: Use module `(srfi srfi-8)'.
  335. (process-command): Replace call-with-values with receive.
  336. 2002-11-08 Wolfgang Jährling <wolfgang@pro-linux.de>
  337. * args.scm (process-arg): Display long options for --usage.
  338. Fix display of short options.
  339. Display syntax of non-option arguments.
  340. Cleanup: Removed all usages of slot-ref.
  341. 2002-10-27 Wolfgang Jährling <wolfgang@pro-linux.de>
  342. * service.scm (make-childexec-constructor): Simplify.
  343. (procedure-with-n-args?): Use `=' instead of `equal?'.
  344. 2002-10-21 Wolfgang Jährling <wolfgang@pro-linux.de>
  345. * service.scm (extra-action.<symbol>): Invoke the service
  346. `unknown' if the service is not known.
  347. (stop.<symbol>): Likewise.
  348. (launch-service): Likewise.
  349. (make-init.d-service): Allow for passing arguments down to
  350. `make', so that e.g. dependencies can be specified.
  351. 2002-10-18 Wolfgang Jährling <wolfgang@pro-linux.de>
  352. * runlevel.scm (start-in-order): New procedure.
  353. * service.scm (depends-resolved?.<service>): New method.
  354. (running?.<service>): Beautify and optimize.
  355. 2002-10-17 Wolfgang Jährling <wolfgang@pro-linux.de>
  356. * self.scm (enable-persistency, disable-persistency): New
  357. extra-actions.
  358. * dmd.scm (main): Read list of services from file.
  359. * args.scm (long-option-string.<option>): Fix display. It is
  360. `opt-arg?' now, not `optional-arg?'.
  361. (process-args): Handle short options with optional argument
  362. correct if no argument was given.
  363. 2002-10-16 Wolfgang Jährling <wolfgang@pro-linux.de>
  364. * args.scm (process-args): Display short options for --usage.
  365. * dmd.scm (persistency?): New variable.
  366. (persistency-state-file): New variable.
  367. (main): New option: --persistency
  368. * self.scm (stop): Write state into the above when requested.
  369. * dmd.scm (main): New options: --silent and --quiet.
  370. 2002-10-14 Wolfgang Jährling <wolfgang@pro-linux.de>
  371. * args.scm (optional-arg?.<option>): New method.
  372. (long-option-string.<option>): Use it.
  373. (process-args): Handle `--usage'.
  374. * utils/sysvconfig.scm: New file.
  375. (services-dir): New variable.
  376. (make-config, init.d-services): New procedures.
  377. * utils/Makefile.am (EXTRA_DIST): Add sysvconfig.scm.
  378. 2002-10-13 Wolfgang Jährling <wolfgang@pro-linux.de>
  379. * service.scm (procedure-with-n-args?): Don't assume that `arity'
  380. is always the first field.
  381. 2002-10-12 Wolfgang Jährling <wolfgang@pro-linux.de>
  382. * utils: New directory.
  383. * Makefile.sm (SUBDIRS): Add it.
  384. * configure.in (AC_OUTPUT): Likewise.
  385. * utils/Makefile.am: New file.
  386. * utils/dmd-gettext.scm: New file.
  387. (puts, found-string, extract-strings): New procedures.
  388. (i18n-keywords): New variable.
  389. * support.scm (l10n, local-output): Write it with lambda.
  390. 2002-10-10 Wolfgang Jährling <wolfgang@pro-linux.de>
  391. * examples/README: New file.
  392. * examples/Makefile.am (EXTRA_DIST): Add it.
  393. * service.scm (make-service-group): New macro. Suggested by
  394. Alfred M. Szmidt <ams@gnu.org>.
  395. * support.scm (define-simple-syntax): New macro. All callers of
  396. define-syntax changed to use this instead.
  397. 2002-10-09 Wolfgang Jährling <wolfgang@pro-linux.de>
  398. * runlevel.scm (enter.<runlevel>): Fixes, cleanups and
  399. extensions. Still far from being finished.
  400. 2002-10-08 Wolfgang Jährling <wolfgang@pro-linux.de>
  401. * dmd.scm (main): New option: `--logfile' (`-l').
  402. * self.scm (daemonize): Undo last change.
  403. * config.scm.in (bug-address): New variable.
  404. * args.scm (process-args): Use it.
  405. * deco.scm (main): Use letrec instead of named let.
  406. * dmd.scm (main): Likewise.
  407. * service.scm (list-of-symbols?): Likewise.
  408. 2002-10-07 Wolfgang Jährling <wolfgang@pro-linux.de>
  409. * service.scm (respawn-service): Ignore system errors.
  410. (<service>): New slots: `waiting-for-termination?' and
  411. `stop-delay?'.
  412. (stop.<service>): Mark service as waiting for termination if the
  413. corresponding option is set.
  414. (respawn-service): Do not respawn it if stop is supposed to
  415. prevent respawning and it has been stopped. Instead, mark it as
  416. stopped.
  417. * Makefile.am (%.in->%): Also depend on Makefile.
  418. * support.scm (log-output-port): New variables.
  419. (start-logging, stop-logging, l10n): New procedure.
  420. (local-output): Write to the logfile, including date.
  421. (user-homedir, default-logfile): New variables.
  422. * dmd.scm, deco.scm: Use module (ice-9 rdelim).
  423. * self.scm (daemonize): Activate the logging.
  424. 2002-10-06 Wolfgang Jährling <wolfgang@pro-linux.de>
  425. * service.scm (respawn-service): If the service is disabled, don't
  426. try to restart it again, but enable it.
  427. 2002-10-05 Wolfgang Jährling <wolfgang@pro-linux.de>
  428. * deco.scm (main): Pass working directory to dmd.
  429. * dmd.scm (main): Take working directory from deco and cd to it.
  430. * support.scm (without-extra-output): New macro.
  431. (extra-output-sender-enabled?): New variable.
  432. (local-output): Send text to socket only when desired.
  433. * service.scm (respawn-service): Use `without-extra-output'.
  434. 2002-10-04 Wolfgang Jährling <wolfgang@pro-linux.de>
  435. * self.scm (daemonize): New extra-action.
  436. 2002-10-04 Wolfgang Jährling <wolfgang@pro-linux.de>
  437. * NEWS: Forked off version -0.8
  438. 2002-10-02 Wolfgang Jährling <wolfgang@pro-linux.de>
  439. * service.scm (make-childexec-constructor): New procedure.
  440. (make-kill-destructor): New procedure.
  441. (stop.<service>): Set the `running' slot to #f before executing
  442. the destructor for respawnable services.
  443. 2002-09-30 Wolfgang Jährling <wolfgang@pro-linux.de>
  444. * dirs.scm.in: Renamed to ...
  445. * config.scm.in: ... this. New file.
  446. * Makefile.am (templates): Updated.
  447. (dmd_DATA): Updated.
  448. * deco.scm: Updated.
  449. (program-name): New variable.
  450. * dmd.scm: Updated.
  451. (program-name): New variable.
  452. (banner, copyright): Moved to ...
  453. * config.scm.in (banner, copyright): ... here. New variables.
  454. * args.scm (display-doc.<option>): New method.
  455. (long-option-string.<option>): New method.
  456. (process-args): Display options on `--help'.
  457. Take argument syntax, description and default handler as
  458. arguments.
  459. * dmd.scm (main): Updated.
  460. * deco.scm (main): Updated.
  461. 2002-09-29 Wolfgang Jährling <wolfgang@pro-linux.de>
  462. * service.scm (service-destructor-system): Renamed to ...
  463. (make-system-destructor): ... this. New procedure.
  464. (service-constructor-system): Renamed to ...
  465. (make-system-constructor): ... this. New procedure.
  466. (make-system-destructor): Return `#f' on success, as is expected
  467. from a destructor.
  468. (conflicts-with-running.<service>): New method. Code taken from
  469. start.<service>.
  470. (start.<service>): Updated.
  471. (enforce.<service>): New method.
  472. (launch-service): New procedure. Code taken from start.<symbol>.
  473. (start.<symbol>): Use the above.
  474. (enforce.<symbol>): New method.
  475. * dmd.scm (process-command): Added `enforce' action.
  476. 2002-09-27 Wolfgang Jährling <wolfgang@pro-linux.de>
  477. * service.scm (extra-action.<service>): Don't handle `enable' and
  478. `disable' here at all.
  479. (extra-action.<symbol>): Handle them here instead.
  480. (find-running): Return service instead of canonical name. All
  481. callers changed.
  482. * dmd.scm (main): Catch errors in the configuration file, but
  483. abort when they occur.
  484. 2002-09-26 Wolfgang Jährling <wolfgang@pro-linux.de>
  485. * service.scm (respawn-limit): New variable.
  486. (<service>): Use the above to initialize `last-respawns'.
  487. (respawn-service): Use `respawn-limit'.
  488. * support.scm (local-output): Protect against system error when
  489. using extra-output-sender.
  490. (open-extra-sender, close-extra-sender): Protect entire procedure
  491. against system errors.
  492. * service.scm (extra-action.<service>): Make default actions
  493. callable even when the service is not running.
  494. (extra-action.<symbol>): Apply on all if none of the possibilities
  495. is running.
  496. 2002-09-25 Wolfgang Jährling <wolfgang@pro-linux.de>
  497. * comm.scm: New file.
  498. (<sender>): New class.
  499. (initialize.<sender>): New method.
  500. (send-data.<sender>): New method.
  501. (<receiver>): New class.
  502. (initialize.<receiver>): New method.
  503. (receive-data.<receiver>): New method.
  504. * support.scm (default-deco-socket-file): New variable.
  505. (select+recv!, get-message): Removed. The functionality is now in
  506. receive-data.<receiver>.
  507. (local-output): Also send output to deco.
  508. (extra-output-sender): New variable.
  509. (terminating-string): New variable.
  510. (open-extra-sender, close-extra-sender): New procedures.
  511. (verify-dir): New procedure.
  512. * dmd.scm: Load comm.scm.
  513. (main): Use <sender> and <receiver> to exchange command and
  514. resulting output.
  515. (process-args): Take additional file name argument into account.
  516. * deco.scm: Load comm.scm.
  517. (main): Like in dmd.scm.
  518. * Makefile.am (dmd_data): Added comm.scm.
  519. * service.scm (<service>): New slots: `enabled?' and
  520. `last-respawns'.
  521. (start.<service>): Don't start if not enabled.
  522. (respawn-service): Disable if respawning too fast.
  523. (extra-action.<service>): New default actions `enable' and
  524. `disable'.
  525. (default-display-status.<service>): Display whether the service is
  526. enabled or not.
  527. 2002-09-22 Wolfgang Jährling <wolfgang@pro-linux.de>
  528. * args.scm (<option>): Renamed `takes-arg?' slot to `takes-arg'
  529. and changed the semantics. Deleted getter. All users changed.
  530. (process-args): Updated. Also abort in some error cases.
  531. (takes-arg?.<option>): New method.
  532. * dmd.scm (select+recv!): Moved to ...
  533. * support.scm (select+recv!): ... here. New macro.
  534. (get-message): New procedure. Code taken from procedure `main' in
  535. dmd.scm.
  536. 2002-09-21 Wolfgang Jährling <wolfgang@pro-linux.de>
  537. * NEWS: Forked off version -0.9
  538. 2002-09-21 Wolfgang Jährling <wolfgang@pro-linux.de>
  539. * dmd.scm (process-command): Don't crash when called with too few
  540. args.
  541. * deco.in, dmd.in: Don't use a `--' argument, as Guile stopps
  542. processing args after the script name was given anyway.
  543. * Makefile.am (install-hook): Renamed to ...
  544. (install-data-local): ... this. New target.
  545. * deco.scm, dmd.scm: Load dirs.scm.
  546. * support.scm (default-config-file, default-socket-dir): Use
  547. Prefix-dir as file/directory name prefix.
  548. * examples: New directory.
  549. * Makefile.am (SUBDIRS): New variable.
  550. * configure.in (AC_OUTPUT): Add new directory.
  551. * examples/Makefile.am: New file.
  552. * examples/wolfgangj.scm: New file.
  553. 2002-09-20 Wolfgang Jährling <wolfgang@pro-linux.de>
  554. * dmd.scm (main): Fail if no argument given to options --config
  555. and --socket.
  556. * COPYING.DOC: New file. The GNU Free Documentation License,
  557. version 1.1.
  558. * configure.in: New file.
  559. * Makefile.am (dmd, deco, dirs.scm): Unite into one target.
  560. (%.in->%): Use `,' as seperator for directory name replacing.
  561. (dmd_data): New variable.
  562. (dmd_DATA): Use the above.
  563. (templates): New variable.
  564. (EXTRA_DIST): New variable.
  565. * testcase.scm: Removed.
  566. * INSTALL, install-sh, missing, mkinstalldirs, texinfo.tex: New
  567. files. Ok, I didn't add those, automake did it for me.
  568. * aclocal.m4: New file, created with aclocal.
  569. 2002-09-19 Wolfgang Jährling <wolfgang@pro-linux.de>
  570. * dmd.scm (main): Kill socket on startup if it exists, so that we
  571. can use it. It seems strange that we have to do this, though.
  572. * support.scm (without-system-error): New macro.
  573. * deco.scm: Actually call main.
  574. (main): Send correct number of messages as handshake again.
  575. 2002-09-18 Wolfgang Jährling <wolfgang@pro-linux.de>
  576. * dmd.scm (main): New command line option: `--insecure' (`-I').
  577. Ensure that the socket directory setup is secure if this option
  578. was not given.
  579. * Makefile.am: Generate dirs.scm.
  580. * dirs.scm.in: New file.
  581. * support.scm (default-socket-dir): New variable.
  582. * dmd.scm (main): Create default socket directory on startup, if
  583. we need it.
  584. * deco.scm: Load the same modules as dmd does. Also load
  585. support.scm and args.scm.
  586. (main): New procedure. New option `--socket' (`-s').
  587. * dmd.scm (display-version): Moved to ...
  588. * support.scm (display-version): ... here. New procedure.
  589. * THANKS: New file.
  590. 2002-09-17 Wolfgang Jährling <wolfgang@pro-linux.de>
  591. * Makefile.am, deco.in, dmd.in: New files. Suggested by Jeff
  592. Bailey <jbailey@nisa.net>.
  593. 2002-09-17 Wolfgang Jährling <wolfgang@pro-linux.de>
  594. * NEWS: Released version -0.9.6
  595. 2002-09-17 Wolfgang Jährling <wolfgang@pro-linux.de>
  596. * args.scm (process-args): Handle short options.
  597. * service.scm (respawn-service): New procedure. Active it as
  598. handler for SIGCHLD.
  599. * dmd.scm (main): Protect `recv!' calls with `select'.
  600. Suggested by Rob Browning <rlb@defaultvalue.org>.
  601. (select+recv!): New macro.
  602. * testcase: Make a service respawnable.
  603. 2002-09-16 Wolfgang Jährling <wolfgang@pro-linux.de>
  604. * dmd.scm (process-command): Actually interpret the command.
  605. * self.scm (stop): Don't try to stop yourself recursively. Eeek.
  606. * service.scm (stop.<service>): Allow user-defined code to call
  607. `quit' if it is from the dmd-service.
  608. * dmd.scm (process-command): Removed rescue-exit, because stopping
  609. dmd now works correct.
  610. * service.scm (stop.<symbol>): Don't display superfluous
  611. information.
  612. (extra-action.<symbol>): Cleaned up a bit.
  613. (conflicts-with): Turned `let*' into normal let.
  614. * service.scm (<service>): Initialize extra-actions to `#f'.
  615. (extra-action.<service>): Take into account that if we have no
  616. extra-actions, the slot may not contain a hash-table.
  617. * default.scm (default-config-file): New variable.
  618. (default-socket-file): New variable.
  619. * dmd.scm (main): Use those.
  620. * args.scm (process-args): Recognize unambigous abbreviations for
  621. long options. Also make it possible to stop further
  622. interpretation of arguments (`--').
  623. 2002-09-16 Wolfgang Jährling <wolfgang@pro-linux.de>
  624. * NEWS: Released version -0.9.7
  625. 2002-09-16 Wolfgang Jährling <wolfgang@pro-linux.de>
  626. * dmd.scm (main): Read commands from the socket. Use default
  627. socket "/var/run/dmd/$USER/default".
  628. (process-command): New procedure.
  629. * deco.scm: New file.
  630. * testcase.scm: Disable testing code for now.
  631. 2002-09-15 Wolfgang Jährling <wolfgang@pro-linux.de>
  632. * args.scm (process-args): Recognize long options.
  633. * dmd.scm: Load args.scm again.
  634. New options: -c (--config) and -s (--socket).
  635. * service.scm (start.<symbol>): Simplified using find-running.
  636. (stop.<symbol>): Likewise. Also use local-output.
  637. (default-display-status.<service>): Display `respawn?' value.
  638. (display.<service>): Removed. Obsoleted by the above.
  639. * support.scm (puts): Removed. All previous callers now use
  640. local-output instead (hopefully).
  641. 2002-09-14 Wolfgang Jährling <wolfgang@pro-linux.de>
  642. * service.scm (start.<service>): Catch possible errors in
  643. user-defined action.
  644. (stop.<service>): Likewise.
  645. (extra-action.<service>): Likewise.
  646. * support.scm (caught-error): New procedure.
  647. * self.scm (load): Do not catch anymore yourself.
  648. * support.scm (call/ec): Implement efficiently.
  649. (assert): Throw an exception.
  650. * dmd.scm: Load module (srfi srfi-13).
  651. * args.scm (process-args): Started reimplementation for GOOPS.
  652. (<option>): Removed slot `occured?', added slot `takes-arg?' and
  653. removed init-value for slot `action'.
  654. (<option-with-arg>): Removed. Its functionality is covered by the
  655. now generalized <option> class.
  656. * service.scm (conflicts-with.<service>): New method.
  657. (default-display-status.<service>): Use the above instead of doing
  658. the same thing yourself.
  659. 2002-09-14 Wolfgang Jährling <wolfgang@pro-linux.de>
  660. * NEWS: Released version -0.9.8
  661. 2002-09-14 Wolfgang Jährling <wolfgang@pro-linux.de>
  662. * self.scm: New file.
  663. (dmd-service): New variable.
  664. (start, stop, status, load, restart): New extra-actions.
  665. * dmd.scm: Load self.scm.
  666. * testcase.scm: Display dmd status.
  667. * args.scm (<option>): New slot: action.
  668. Added getter for `occured?'.
  669. (<option-with-arg>): New slot: action.
  670. * support.scm (silent): Removed. It was never used.
  671. (real-output-port, void-output-port): New variables.
  672. (be-silent, be-verbose): New procedures.
  673. * self.scm (silent, verbose): New extra-actions.
  674. * service.scm (extra-action.<service>): Make passing an arbitrary
  675. number of arguments to the extra-action possible.
  676. (extra-action.<symbol>): Likewise.
  677. * testcase.scm: Pass an additional argument to an extra-action.
  678. * support.scm (local-output): New procedure. Most callers of
  679. `puts' changed to use this instead.
  680. * self.scm (detailed-status): New extra-action.
  681. * dmd.scm: Load module (srfi srfi-1).
  682. * service.scm (default-display-status.<service>): New method.
  683. (extra-action.<service>): Use the above.
  684. 2002-09-13 Wolfgang Jährling <wolfgang@pro-linux.de>
  685. * service.scm (start.<symbol>, stop.<symbol>): Try all
  686. possibilities.
  687. (start.<service>): Start dependencies via symbol.
  688. (make-init.d-service): Updated to GOOPS.
  689. (init.d-add): Removed.
  690. * support.scm (call/ec): New procedure. Updated all to use it
  691. instead of call/cc.
  692. * service.scm (extra-action.<service>): New method.
  693. (extra-action.<symbol>): New method.
  694. (find-running): New procedure.
  695. * testcase.scm: Use extra-actions.
  696. 2002-09-12 Wolfgang Jährling <wolfgang@pro-linux.de>
  697. * support.scm (ewal, define-struct): Removed. Obsoleted by
  698. GOOPS.
  699. * service.scm (copy-hashq-table): Moved to ...
  700. * support.scm (copy-hashq-table): ... here.
  701. * args.scm (<option>, <option-with-arg>): New classes.
  702. 2002-09-12 Wolfgang Jährling <wolfgang@pro-linux.de>
  703. * NEWS: Released version -0.9.9
  704. 2002-09-12 Wolfgang Jährling <wolfgang@pro-linux.de>
  705. * runlevel.scm (define-runlevel): Removed. Obsoleted due to
  706. GOOPS.
  707. (services-to-start, dequeue-service, enqueue-service): Likewise.
  708. (depending-running-services): Likewise.
  709. * service.scm (do-restart-service, call-method): Likewise.
  710. * dmd.scm: Don't load args.scm for now.
  711. (main): New procedure.
  712. * service.scm (start.<symbol>, stop.<symbol>): New methods.
  713. (display.<service>): New method.
  714. * testcase.scm: New file. Contains testing code.
  715. (c, d): New procedures.
  716. * dmd.scm (main): Process configuration file.
  717. 2002-09-11 Wolfgang Jährling <wolfgang@pro-linux.de>
  718. * runlevel.scm (enter.<service>): Restructured to prepare for a
  719. working implementation.
  720. 2002-09-10 Wolfgang Jährling <wolfgang@pro-linux.de>
  721. * service.scm (for-each-service): New procedure.
  722. (start.<service>): Updated to use `for-each-service'.
  723. (stop.<service>): Implement stopping of other services.
  724. (<service>): Added getter for slot `requires'.
  725. * runlevel.scm (enter.<runlevel>): Renamed to ...
  726. (enter-selector.<runlevel>): ... this. New method.
  727. (leave.<runlevel>): Renamed to ...
  728. (leave-selector.<runlevel>): ... this. New method
  729. (enter.<runlevel>): New method with different semantics.
  730. (current-runlevel): New variable.
  731. * support.scm (silent): New procedure.
  732. 2002-09-09 Wolfgang Jährling <wolfgang@pro-linux.de>
  733. * service.scm (start.<service>): Avoid that two conflicting
  734. services can get started.
  735. (stop.<service>): New method.
  736. (<service>): Added getter for slot `provides'.
  737. (do-start-service, do-stop-service): Removed. They are obsolete
  738. due to conversion to GOOPS.
  739. * warning.scm: Removed file. Also obsolete now.
  740. 2002-09-08 Wolfgang Jährling <wolfgang@pro-linux.de>
  741. * service.scm (make-extra-actions): New macro.
  742. (register-service): Renamed to ...
  743. (register-services): ... this. New procedure.
  744. (services-max-cnt, services-cnt): New variables.
  745. (register-services): Dynamically resize the hash table on demand.
  746. (copy-hashq-table): New procedure.
  747. 2002-09-07 Wolfgang Jährling <wolfgang@pro-linux.de>
  748. * service.scm (running?.<service>): New method.
  749. (start.<service>): Resolve dependencies.
  750. (lookup-service): Renamed to ...
  751. (lookup-services): ... this. New procedure.
  752. (<service>): New slot: extra-actions.
  753. 2002-09-06 Wolfgang Jährling <wolfgang@pro-linux.de>
  754. * service.scm (canonical-name.<service>, start.<service>): New
  755. methods.
  756. 2002-08-31 Wolfgang Jährling <wolfgang@pro-linux.de>
  757. * service.scm (services): Now a hash-table instead of a list.
  758. (find-service): Renamed to ...
  759. (lookup-service): ... this. New procedure. All callers changed.
  760. Also adopted to use the hash table.
  761. (find-service-from): Removed.
  762. (register-service): Adopted to use the hash table.
  763. 2002-08-30 Wolfgang Jährling <wolfgang@pro-linux.de>
  764. * dmd.texi, configure, Makefile: New files.
  765. 2002-08-29 Wolfgang Jährling <wolfgang@pro-linux.de>
  766. * dmd.scm: Load the GOOPS module.
  767. * service.scm (<service>): New class.
  768. * runlevel.scm (<runlevel>, <runlevel-exact>, <runlevel-changes>):
  769. New classes.
  770. (enter.<runlevel>, leave.<runlevel>): New methods for <runlevel>
  771. and all subclasses.
  772. 2002-08-28 Wolfgang Jährling <wolfgang@pro-linux.de>
  773. * NEWS, README: New files.
  774. 2002-08-28 Wolfgang Jährling <wolfgang@pro-linux.de>
  775. * args.scm, runlevel.scm, service.scm, support.scm, warning.scm:
  776. New files.
  777. 2002-08-28 Wolfgang Jährling <wolfgang@pro-linux.de>
  778. * AUTHORS, ChangeLog, COPYING, dmd.scm: New files.