AgeCommit message (Collapse)AuthorFiles
12 daysFix initialization of precious variables in configure.acHEADmasterSergey Poznyakoff1
12 daysUpgrade grecs to ebf9926Sergey Poznyakoff1
12 daysMake preprocessor include path configurable.Sergey Poznyakoff8
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-06-07Minor fixSergey Poznyakoff1
* src/pies.c (init_detect): Set init_process to 0 if PIES_SYSVINIT_ENABLED is 0
2021-06-03Version 1.5.83Sergey Poznyakoff2
2021-06-03Fix reloading of the configuration files.Sergey Poznyakoff4
* lib/envop.c (environ_free): Free the env block itself. (envop_cmp): New function. * lib/envop.h (envop_cmp): New proto. * src/comp.c (argvcmp): Fix segmentation fault that occurred when both a and b were NULL. (component_match): Compare command, envop, and umask.
2021-05-09Version 1.5.92Sergey Poznyakoff2
2021-05-09When checking pidfile, ignore it if the reported pid equals getpid()Sergey Poznyakoff1
This is mainly to avoid failures on stale pidfiles when ruinning with PID 1 (init or docker entrypoint) and also for less-probable cases when starting with the same PID as the one stored in the stale pidfile.
2021-03-10Version 1.5.91Sergey Poznyakoff2
2021-03-09Fix docker autodetectionSergey Poznyakoff1
* src/pies.c (is_docker): Fix parsing of the /proc/self/cgroup file.
2021-02-12Fix preprocessor use and config file precedence in piesctlSergey Poznyakoff5
* 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 Poznyakoff25
* 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 Poznyakoff101
2020-12-14Update .gitignoresSergey Poznyakoff1
2020-12-14Version 1.5release-1.5Sergey Poznyakoff4
2020-12-09Version 1.4.97Sergey Poznyakoff3
2020-12-09Emit explicit syslog marks when truncating very long messages.Sergey Poznyakoff1
* src/syslog.c (log_message): New field: trunc. (log_message_in_create): Initialize trunc (log_message_in_format): Raise trunc on buffer overflow. (log_message_enqueue): Emit the "message truncated" diagnostics when needed.
2020-12-09Fix handling of very long captured linesSergey Poznyakoff1
* src/progman.c (redirect_read): Break the loop if no newline is found.
2020-12-09Rework generation of the web docsSergey Poznyakoff8
2020-12-08Global env statement.Sergey Poznyakoff24
* 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-08Improve syslog redirectionSergey Poznyakoff3
* NEWS: Change wording a bit. * src/progman.c (redirect_to_file): Close and deregister the descriptor on error and EOF. * src/syslog.c (pies_log_tag): Rename to log_tag. (reopen_logger): Use PIES_LOG_DEV if log_dev is NULL. (pies_syslog_set_dev): Free previously allocated log_tag (if any).
2020-12-07BugfixSergey Poznyakoff2
* src/syslog.c (pies_syslog_set_dev): Fix the return value.
2020-12-07Fix changing of the syslog dev. Fix bugs in closing unnecessary fds. Version ↵Sergey Poznyakoff7
1.4.96 * lib/closefds.c [HAVE_FUNC_PROC_PIDINFO] (close_fds_sys): Fix algorithm. * src/pies.c (cb_syslog_dev): New callback. Handle "dev" using it. (main): Don't close fd 2 before restarting. * src/pies_syslog.h (pies_syslog_set_dev): New proto. * src/progman.c (prog_start,run_command): Don't close necessary fds. * src/syslog.c (pies_log_dev): Mark as static. (pies_syslog_set_dev): New function.
2020-12-07Version 1.4.95Sergey Poznyakoff6
* 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-07Add missing fileSergey Poznyakoff1
2020-12-07New API endpoint /alive. Improve documentation.Sergey Poznyakoff7
* 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 Poznyakoff9
* 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-05Accept full facility.priority in std{out,err} syslog statement.Sergey Poznyakoff2
* src/pies.c (string_to_syslog_facility): Take additional length argument. (string_to_syslog_fp): New function. (_cb_redir): Accept full facility.priority specification. * src/piesctl.c: Remove legacy redirector support.
2020-12-04Rewrite stdout/stderr redirectionSergey Poznyakoff12
Instead of spawning a subprocess for each redirection, read the output directly from pipe and send it to syslog using an asynchronous syslog implementation. * src/syslog.c: New file. * src/pies_syslog.h: New file. * src/Makefile.am: Add syslog.c and pies_syslog.h * src/comp.c (component_create): Use pies_log_facility. * src/ctl.c (auth_prog) (prog_serialize): Remove TYPE_REDIRECTOR case * src/diag.c (syslog_printer): Use pies_vsyslog. (syslog_open): Use pies_syslog_open. (syslog_close): Use pies_syslog_close. (diag_setup): Use pies_syslog_open. * src/pies.c (log_facility, log_tag): Remove globals. Use pies_log_facility and pies_log_tag instead. New configuration statement syslog.dev * src/pies.h: Include pies_syslog.h (register_socket,register_program_socket): Additional argument: free_data. * src/prog.h (TYPE_REDIRECTOR): Remove. (prog.v.p.redir): Change data type. (prog.v.r): Remove. * src/progman.c (prog_tag) (destroy_prog) (progman_cleanup): Remove TYPE_REDIRECTOR case (prog_stop_redirectors): Deregister fds (redir_tag,register_redir) (update_redir): Remove. (open_redirector): Rewrite. Set up direct reader from the stream, instead of spawning a subprocess. (prog_start): Change open_redirector actual arguments. * src/socket.c (sockinst): New member: free_data. (register_socket): Initialize the free_data member. (register_program_socket): Likewise.
2020-12-02Version 1.4.94Sergey Poznyakoff2
2020-12-02Actually fix the reporting of argv when expandenv is set.Sergey Poznyakoff1
* src/progman.c (prog_start_prologue): Split into two functions: prog_init, invoked before fork, and prog_start_prologue proper, invoked after fork. prog_init initializes the environment, argc, and argv associated with prog. (progman_run_comp): Call prog_init before calling prog_start_prologue (the function is called from child process). (prog_start): Run prog_init before forking.
2020-12-02Fix reporting of the argv over the control interface (improves c0f4c3b99b)Sergey Poznyakoff7
2020-12-02Version 1.4.92Sergey Poznyakoff2
2020-12-02Improve documentationSergey Poznyakoff3
* 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 Poznyakoff10
* 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-18Fix cyclic dependecy detection and reporting.Sergey Poznyakoff6
Use modified Floyd-Warshall algorithm for cyclic dependecy detection. The computed next vertex indices are used when reporting the cycles found. This fixes dead loops that occurred in earlier versions when trying to report cycles. One of inputs that caused such behavior is used as a new test in cyclic.at. * src/depmap.c: Rewrite using modified Floyd-Warshall algorithm. (depmap_cycle_detect,depmap_path_free): New functions. * src/comp.c (report_cyclic_dependency): Take struct depmap_path * as argument. (component_build_depmap): Use depmap_cycle_detect to detect cyclic dependencies. (depmap_dump): Special handling for zero-sized depmap. * tests/cyclic.at: Add new test. * src/pies.h (depmap_dim, depmap_free) (depmap_cycle_detect,depmap_path_free): New protos. * NEWS: Document changes.
2020-10-17Update copyright yearsSergey Poznyakoff94
2020-10-17Automatically detect if pies is started from dockerSergey Poznyakoff6
* 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
2020-10-12Make sure exited preprocessor gets cleaned up when running with PID 1.Sergey Poznyakoff3
* NEWS: Version 1.4.90 * configure.ac: Version 1.4.90 * src/pies.c (main): When running with PID 1, install a minimal SIGCHLD handler before parsing configuration files.
2020-06-14Fix datetime testsSergey Poznyakoff1
* tests/builtin.at (IT_SPECIAL): Force TZ=0 to avoid false failures due to DST.
2020-06-14Use grecs with wordsplit v1.1Sergey Poznyakoff1
2019-07-10Switch to grecs b06fb7d3Sergey Poznyakoff3
2019-07-02Fix doc/manual generationSergey Poznyakoff1
2019-07-02Version 1.4release-1.4Sergey Poznyakoff3
2019-06-24Add missing libintl libraries in testsSergey Poznyakoff1
2019-06-24Minor changesSergey Poznyakoff10
* configure.ac: Minor changes * lib/libpies.h: Add missing include. * src/Makefile.am (pies_LDADD piesctl_LDADD): Add libintl libs * src/progman.c: Remove useless code. * tests/accept.at: Use canonical ordering of options and arguments. * tests/builtin.at: Likewise. * tests/inet.at: Likewise. * tests/maxinst.at: Likewise. * tests/passfd.at: Likewise. * tests/version.at: Don't expect GNU sed
2019-06-24Enable/disable SystemV init code at compile timeSergey Poznyakoff11
* configure.ac: New option --enable-sysvinit. Disable the init code if RUN_LVL is not available. (PIES_SYSVINIT_ENABLED): New configuration define. (PIES_COND_SYSVINIT): New condition Print configuration settings summary. * src/pies.h (is_sysvinit): Check for PIES_SYSVINIT_ENABLED. (SYSVINIT_ACTIVE): New macro. * grecs: Upgrade. * src/Makefile.am: Conditionally link sysvinit-related code. * src/cmdline.opt: Disable the --telinit option if sysvinit support is not available. (parse_options): Use SYSVINIT_ACTIVE in the conditional. * src/comp.c (component_verify): Check if component definition is allowed by the current state of the sysvinit support. * src/ctl.c: Disable the /runlevel entry point if sysvinit support is not compiled. * src/diag.c (stderr_open): Make sure sysvinit-related code is not compiled if the sysvinit support is not available. * src/pies.c (config_syntax_tab): Add entry for CONF_INITTAB only if sysvinit support is available. (_cb_initdefault,_cb_runlevels): Remove. Use cb_initdefault and cb_runlevels instead. (component_keywords): Disable runlevels without sysvinit support. (pies_keywords): Same for initdefault. Use SYSVINIT_ACTIVE to suppress compilation of sysvinit code without sysvinit support. * src/progman.c: Use SYSVINIT_ACTIVE to suppress compilation of sysvinit code without sysvinit support. * src/sysvinit.c (cb_initdefault,cb_runlevels): New functions.
2019-06-13Minor fixesSergey Poznyakoff2
* grecs: Pull 12304127b5 * src/pies.c: Fix help message.
2019-06-12Version 1.3.92Sergey Poznyakoff10

Return to:

Send suggestions and report system problems to the System administrator.