aboutsummaryrefslogtreecommitdiff
path: root/doc/pies.texi
AgeCommit message (Collapse)AuthorFiles
2023-07-30Version 1.18.90Sergey Poznyakoff1
2023-07-29Accept negated status codes and signal numbers in return-codeSergey Poznyakoff1
* doc/pies.texi: Document changes. * src/inetd.c (listel_dispose): Remove static qualifier. * src/pies.h (status_cond): New struct. (action): Replace nstat, status with cond_list. (listel_dispose): New prototype. * src/pies.c (action_free): Free cond_list. (create_action): Rewrite. * src/progman.c (status_matches_p): Rewrite.
2023-01-22Update copyright yearsSergey Poznyakoff1
2022-08-13Version 1.8release-1.8Sergey Poznyakoff1
2022-08-06Fix component shutdown.Sergey Poznyakoff1
* NEWS: Document changes. * doc/pies.texi: Document changes. * src/cmdline.opt: New option --list-shutdown-sequence * src/comp.c (compute_shutdown_sequence) (component_shutdown_list,components_list_shutdown_sequence) (components_shutdown_sequence_numbers): New functions. (component_config_commit): Compute shutdown sequences for each component. * src/pies.c: Handle the --list-shutdown-sequence option. * src/pies.h (component) <shutdown_seqno>: New field. (components_list_shutdown_sequence) (components_shutdown_sequence_numbers): New prototypes. * src/progman.c (progman_gc): Rewrite. (progman_stop): Rewrite. * tests/shdnseq.at: New test. * tests/sigwait.c: Take options -n and -f FILE. Open file in append mode. Lock it before writing. * tests/Makefile.am: Add new test. * tests/testsuite.at: Include new test.
2022-08-04Configurable termination signalSergey Poznyakoff1
* NEWS: Document changes. * doc/pies.texi: Document changes. * src/comp.c (component_create): Initialize sigterm field. * src/pies.h (component): New field: sigterm. * src/pies.c (strtosignum): New function. (create_action): Use strtosignum. (_cb_signal): New callback. (component_keywords): New keyword "sigterm". * src/progman.c (prog_sigterm): New function. (link_prog, progman_cleanup) (progman_stop_component): Use prog_sigterm. (print_status): Change semantics of expect_term: it means termination signal, if not 0. * tests/sigterm.at: New test. * tests/sigwait.c: New test program. * tests/Makefile.am: Add new test. (noinst_PROGRAMS): Add sigwait. * tests/testsuite.at: Include new test.
2022-01-02Update copyright yearSergey Poznyakoff1
2021-07-07Fix external cross-references in HTML outputSergey Poznyakoff1
2021-07-07Improve the docsSergey Poznyakoff1
* doc/pies.texi: Describe the use of xenv as a preprocessor.
2021-06-09Make preprocessor include path configurable.Sergey Poznyakoff1
The installation directory for pp-setup can be set at configure time using the --with-pp-setup option. To disable installing it, use --without-pp-setup. * NEWS: Raise patchlevel. * configure.ac (DEFAULT_INCLUDE_PATH): New variable. (PIES_INCDIR): New substitution variable. New option --with-pp-setup. * grecs: Pull 7427077b98. * src/Makefile.am (DEFAULT_VERSION_INCLUDE_DIR) (DEFAULT_INCLUDE_DIR): Replace by DEFAULT_INCLUDE_PATH. Install pp-setup conditionally. * src/cmdline.opt (pies_help_hook): Print include path. Fix arguments to grecs_find_include_file. * src/pies.c (config_init): Use DEFAULT_INCLUDE_PATH to initialize include path. * src/piesctl.c: Likewise.
2021-02-12Fix preprocessor use and config file precedence in piesctlSergey Poznyakoff1
* NEWS: Document changes. * doc/pies.texi: Document changes. * src/cmdline.opt: Don't set preprocessor if DEFAULT_PREPROCESSOR is NULL. * src/piesctl-cl.opt: New options: --preprocessor, --no-preprocessor. * src/piesctl.c (parse_config): If either client.url or default_url is set in the program-specific config, use it and don't parse pies.conf. This is consistent with the documented behavior. (main): Initialize grecs_preprocessor.
2021-02-03External preprocessor can be selected when building the package and at runtime.Sergey Poznyakoff1
* configure.ac: Report selected preprocessor. Version 1.5.90. * doc/Makefile.am: Don't distribute gendocs.pl and gendocs_template * grecs: Upgrade. * lib/pp.c (pp_command_line): Use the grecs_preprocessor variable instead of DEFAULT_PREPROCESSOR macro. * src/cmdline.opt: New options: --preprocessor and --no-preprocessor. Report the preprocessor command and setup file when called with --help. * src/pies.c (config_init): Initialize grecs_preprocessor. * NEWS: Document changes. * doc/pies.texi: Document new options. * tests/accept.at: Invoke pies with --no-preprocessor. * tests/builtin.at: Likewise. * tests/control.at: Likewise. * tests/cyclic.at: Likewise. * tests/env.at: Likewise. * tests/envglobal.at: Likewise. * tests/expandenv.at: Likewise. * tests/inet.at: Likewise. * tests/maxinst.at: Likewise. * tests/passfd.at: Likewise. * tests/redirect.at: Likewise. * tests/respawn.at: Likewise. * tests/ret-exec.at: Likewise. * tests/ret-notify.at: Likewise. * tests/shell.at: Likewise. * tests/shutdown.at: Likewise. * tests/startup.at: Likewise.
2021-01-06Update copyright yearsSergey Poznyakoff1
2020-12-09Rework generation of the web docsSergey Poznyakoff1
2020-12-08Global env statement.Sergey Poznyakoff1
* NEWS: Update. * doc/pies.texi: Document the global env statement. * src/pies.c: Modify "env" callbacks to expect a envop_t ** as modifiable target. Introduce global env statement. * tests/envglobal.at: New test. * tests/Makefile.am: Add new file.
2020-12-07Version 1.4.95Sergey Poznyakoff1
* NEWS: Version 1.4.95 * configure.ac: Likewise. * doc/ctl.texi: Fix formatting of JSON selectors. @deffn is unable to handle them properly. * doc/pies.texi: Minor changes. * src/progman.c (open_redirector): Minor change to avoid spurious varning. * src/syslog.c: Assume conservative value instead of unportable HOST_NAME_MAX.
2020-12-07New API endpoint /alive. Improve documentation.Sergey Poznyakoff1
* doc/Makefile.am: Add ctl.texi * doc/ctl.texi: New file. * doc/pies.texi: Add anchors for ctl.texi * src/ctl.c (json_error_reply_create): Set status depending on the HTTP response code. Use "message", instead of "error_message". New endpoint: /alive * src/inetd.c: Use grecs_getline instead of getline. * src/sysvinit.c: Likewise. * src/piesctl.c: Inspect "message", instead of "error_message".
2020-12-05Remove the component.facility keyword. Update the docs.Sergey Poznyakoff1
* NEWS: Update. * doc/pies.texi: Update. * src/pies.h (component): Remove the facility field. * src/comp.c: Likewise. * configure.ac: Select interface to use to close fds (imported from mailutils). * lib/closefds.c: New file (imported from mailutils). * lib/Makefile.am: Add closefds.c * lib/libpies.h (pies_close_fds): New proto. * src/pies.c: Use pies_close_fds * src/progman.c: Likewise.
2020-12-02Improve documentationSergey Poznyakoff1
* doc/pies.texi: Improve documentation of variable expansion and the use of pies in docker entry points. * src/pies.h (vlogmsg): New proto. * src/progman.c (prog_start_prologue): Set ws_error member to ensure errors from ${X:?WORD} construct are properly reported.
2020-12-02Minor fixes in the docsSergey Poznyakoff1
2020-12-02New component flag: expandenvSergey Poznyakoff1
* NEWS: Update. * doc/pies.texi: Document the expandenv flag. * src/comp.c (component_finish): Warn if both "shell" and "expandenv" are used together. Expand command to argc/argv only unless the CF_EXPANDENV flag is given. * src/pies.c (str_to_cf): New flag: expandenv * src/pies.h (CF_EXPANDENV): New define. * src/prog.h (struct prog): New member: argv. * src/progman.c (destroy_prog): Free argv. (prog_start_prologue): Expand the command line taking into account the current environment if CF_EXPANDENV flag is given. Otherwise, copy the component argv to the prog. (prog_execute): Use prog->v.p.argv * tests/Makefile.am: Add expandenv.at * tests/testsuite.at: Likewise. * tests/expandenv.at: New file.
2020-10-17Update copyright yearsSergey Poznyakoff1
2020-10-17Automatically detect if pies is started from dockerSergey Poznyakoff1
* lib/envop.c: Include sys/types.h (for ssize_t). * src/pies.c (is_docker,no_init_option,init_detect): New functions. (main): Call init_detect. * src/utmp.c: Additional cpp magic to determine WTMPX_FILE and UTMPX_FILE. * NEWS: Document the changes. * doc/pies.texi: Likewise. Also, fix improper node name (inetd.conf). * configure.ac: Version 1.4.91
2019-06-07Implement additional env.eval statementSergey Poznyakoff1
2019-06-06Change syntax of the env.clear statement.Sergey Poznyakoff1
It no longer requires an argument. The correct syntax is env { clear; }
2019-06-03Finish the env re-implementationSergey Poznyakoff1
* NEWS: Document the "env" statement and the PIES_MASTER_PID environment variable. Version 1.3.91 * configure.ac: Version 1.3.91 * doc/pies.texi: Document the new "env" statement syntax. Provide instructions on how to convert legacy "env" statement to the new form. * lib/envop.c (environ_unset): Take reference value as argument. If supplied, unset the variable only if its value matches the reference one. * lib/envop.h (environ_unset): Change proto. * src/pies.c (parse_legacy_env): Minor changes. (_cb_env_unset): Allow to specify value. * src/progman.c (run_command): Define PIES_MASTER_PID. * tests/env.at: Check the legacy env syntax. * tests/envop.at: Additional checks.
2019-06-02Speed up tests.Sergey Poznyakoff1
Presence of the ~/.netrc file can slow down execution because of eventual DNS calls in hostcmp. Provide an option to disable netrc parsing and use it in tests. * src/piesctl-cl.opt: New option: --no-netrc. * doc/pies.texi: Document --no-netrc * src/piesctl.c (shttp_connect): Don't read ~/.netrc if given --no-netrc. * tests/env.at: Pass --no-netrc to piesctl. * tests/respawn.at: Likewise. * tests/shell.at: Likewise. * tests/shutdown.at: Likewise. * tests/startup.at: Likewise.
2019-05-31Provide an option to run commands via sh -cSergey Poznyakoff1
The new flag "shell" instructs pies to run the command marked with it as '/bin/sh -c $command'. Alternative shell can be supplied ising the 'program' statement. This is useful if the command line uses shell-specific features (command or variable expansion, redirection, pipes, etc.) This commit also fixes a bug in the 'env' statement handling: a single argument with embedded whitespaces was undergoing word splitting and thus incorrectly handled as multiple arguments. * NEWS: Document changes. * doc/pies.texi: Likewise. * src/comp.c (component_free): Free command. (component_finish): Split command into argv/argc as directed by the CF_SHELL flag. * src/pies.c (_cb_command): Remove. Functionality moved to component_finish(). (_cb_env): Bugfix. Don't split arguments. * src/pies.h (CF_SHELL): New flag. (component) <command>: New member. * tests/Makefile.am: Add new tests. * tests/testsuite.at: Add new tests. * tests/aux/respawn: Change default timeout to 1 second. * tests/respawn.at: Minor change. * tests/shell.at: New test.
2019-05-28Document startup and shutdown componentsSergey Poznyakoff1
2019-05-20Document the --no-init option. Raise version number to 1.3.90Sergey Poznyakoff1
2017-01-02Happy GNU YearSergey Poznyakoff1
2016-07-16Don't concatenate adjacent strings in configuration files.Sergey Poznyakoff1
* grecs: Upgrade. * src/pies.h: Fix include paths. * src/piesctl.c: Likewise. * NEWS: Document changes. * doc/pies.texi: Likewise.
2016-03-19Add testsuteSergey Poznyakoff1
2016-03-12Spell-checkSergey Poznyakoff1
2016-03-07Improve docsSergey Poznyakoff1
* doc/pies.texi: Document piesctl and identity providers. * src/piesctl.c: Fix reference to the docs.
2016-03-06Reimplement the telinit legacy interface.Sergey Poznyakoff1
pies -T is now fully compatible with the legacy telinit command * src/telinit.opt: New file. * src/Makefile.am: Add telinit.opt * src/cmdline.opt (-T): Remove explicit variable. Rest of command line is processed specially. * src/pies.h (telinit): Change prototype. * src/sysvinit.c (telinit): Rewrite. * src/.gitignore: Update. * doc/pies.texi: Document telinit.
2016-03-05ACL reference statements.Sergey Poznyakoff1
All ACL keywords can be used in simple statement as well as in block form. As simple statements, they take a name of an already defined named ACL. E.g.: defacl forbid { deny any; } component foo { list-acl forbid; } This commit also fixes some eventual double-frees. * doc/pies.texi: Update. * src/acl.c (pies_acl)<refcnt>: New member. (pies_acl_use): New function. (pies_acl_create): Initialize refcnt. (pies_acl_destroy): New function. (pies_acl_free): Rewrite as a wrapper over pies_acl_destroy. (_parse_sub_acl): Call pies_acl_use when installing a named ACL. (_acl_common_section_parser): Handle grecs_callback_set_value. * src/acl.h (pies_acl_destroy) (pies_acl_use): New function. * src/comp.c (component_free): Free acl.
2016-03-02Improve docsSergey Poznyakoff1
2016-03-02BugfixesSergey Poznyakoff1
* src/comp.c (component_verify): Fix stdout redirection check. * src/meta1parse.c (meta1_translate_node): Skip simple statements. (meta1_translate_node): Allocate comp->dir * doc/pies.texi: Use @example instead of @smallexample
2016-03-01Improve documentationSergey Poznyakoff1
* doc/Makefile.am (check-sub-config): Fix regexps. * doc/pies.texi: Document init operation.
2016-02-13Stop disabled components when switching runlevels.Sergey Poznyakoff1
* src/prog.h (status_enabled, status_disabled): Remove. (status_stopped, status_running): New modes. All uses updated. * src/comp.c (component_finish): Disable ondemand component by default. * src/ctl.c (json_object_set_bool): New function. (pies_status_str): Update. (prog_serialize): Set "disabled" attribute. (fun_stop, fun_start): Use CF_DISABLED flag. (res_runlevel): Schedule ACTION_RELOAD. * src/pies.h (json_object_set_bool): New proto. * src/piesctl.c (status_trans): Reflect changes in modes. (print_comp): Check the "disabled" attribute. * src/progman.c (register_prog0) (prog_open_socket,prog_start,prog_stop) (progman_wake_sleeping) (prog_start_prerequisites) (react, progman_cleanup) (progman_stop_component): Update. (no_children_left): Fix. * src/sysvinit.c (enablecomp): Make CF_DISABLED flag persist for ondemand components. (runlevel_setup_prog): Use CF_DISABLED flag. (inittrans): Stop inactivated processes. * doc/pies.texi: Update.
2016-01-29BugfixSergey Poznyakoff1
* src/comp.c (component_link): Restore "next" link.
2016-01-08Uniformly use grecs memory management functions.Sergey Poznyakoff1
* gnulib.modules: Remove unneded modules. * ident/ident.h: Remove xalloc.h, include errno.h * ident/ident.c: Use standard allocation functions instead of x* * ident/pam.c: Remove. * ident/provider.c: Remove. * ident/system.c: Remove. * src/meta.c: Remove. * src/Makefile.am: Remove meta.c * src/progman.c: Use grecs_* allocation functions instead of x*. (notify): Use wordsplit to expand variables within message. Rename variables: program-name to program_name; canonical-program-name to canonical_program_name. * doc/pies.texi: Update. * src/depmap.c: Use grecs_* allocation functions instead of x*. (depmap_end): New function. * src/diag.c (logmsg_vprintf): Use grecs_txtacc instead of obstack. * src/pies.h (depmap_end): New proto. Remove unused includes. * src/acl.c: Use grecs_* allocation functions instead of x*. * src/ctl.c: Likewise. * src/inetd.c: Likewise. * src/limits.c: Likewise. * src/meta1gram.y: Likewise. * src/meta1lex.l: Likewise. * src/pies.c: Likewise. * src/socket.c: Likewise. * src/sysvinit.c: Likewise. * src/userprivs.c: Likewise.
2015-03-01Switch to Texinfo 5.0Sergey Poznyakoff1
* doc/Config: Rewrite. * doc/Makefile.am: Use Makeinfo 5 instead of texi2htm * doc/gendocs_template: Ps is not built * imprimatur: Upgrade.
2015-01-21New component flag: nullinputSergey Poznyakoff1
* NEWS: Update. * doc/pies.texi: Document nullinput flag. * src/pies.c (str_to_cf): New flag: nullinput * src/pies.h (CF_NULLINPUT): New flag. * src/progman.c (prog_start): If CF_NULLINPUT flag is set, redirect /dev/null to the stdin
2014-12-26Implement globbing patterns in include statements.Sergey Poznyakoff1
* grecs: Upgrade. * doc/pies.texi: Document built-in include and line directives. * src/cmdline.opt: New option -I (--include-directory). * configure.ac: Version 1.2.91 * NEWS: Update.
2013-01-06Update copyright years.Sergey Poznyakoff1
2011-10-24Document siggroup flag.Sergey Poznyakoff1
2011-10-08Use Imprimatur for docs processing.Sergey Poznyakoff1
* .gitmodules: Add imprimatur. * Makefile.am (ACLOCAL_AMFLAGS,SUBDIRS): Add imprimatur. * configure.ac: Require gettext 0.18. Call IMPRIMATUR_INIT. Define ATTRIBUTE_NORETURN, if not defined already. * doc/Makefile.am: Use imprimatur. Drop files that are no longer necessary. * doc/check-docs.sh: Delete. * doc/fix-sentence-spacing.sed: Delete. * doc/mastermenu.el: Delete. * doc/rendition.texi: Delete. * doc/untabify.el: Delete. * doc/pies.texi: Use @: where appropriate. * src/pies.c (main): Use _() instead of N_().
2010-01-02Update copyright years.Sergey Poznyakoff1
Happy GNU Year!

Return to:

Send suggestions and report system problems to the System administrator.