aboutsummaryrefslogtreecommitdiff
path: root/src/pies.h
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2019-06-24 12:56:24 +0300
committerSergey Poznyakoff <gray@gnu.org>2019-06-24 12:56:24 +0300
commit006bfbc5235c181783445d321ce7a7e3c6d8bd8a (patch)
treef483e0d30c3e801add01b372b24a342281b70b86 /src/pies.h
parentcb90ca582a46ef9f0779837dc4c6fb00656e70c9 (diff)
downloadpies-006bfbc5235c181783445d321ce7a7e3c6d8bd8a.tar.gz
pies-006bfbc5235c181783445d321ce7a7e3c6d8bd8a.tar.bz2
Enable/disable SystemV init code at compile time
* 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.
Diffstat (limited to 'src/pies.h')
-rw-r--r--src/pies.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/pies.h b/src/pies.h
index 4d52ce4..201a719 100644
--- a/src/pies.h
+++ b/src/pies.h
@@ -276,7 +276,11 @@ struct component
pies_acl_t adm_acl; /* Administrative ACL (stop, start, etc.) */
};
-#define is_sysvinit(cp) ((cp)->mode >= pies_mark_sysvinit || (cp)->runlevels)
+#define is_sysvinit(cp) \
+ (PIES_SYSVINIT_ENABLED \
+ && ((cp)->mode >= pies_mark_sysvinit || (cp)->runlevels))
+
+#define SYSVINIT_ACTIVE (PIES_SYSVINIT_ENABLED && init_process)
enum pies_action {
ACTION_CONT,
@@ -565,6 +569,13 @@ int sysvinit_envlocate (char const *name, char **value);
int sysvinit_envdelete (char const *name);
int sysvinit_envupdate (char const *var);
+int cb_initdefault (enum grecs_callback_command cmd,
+ grecs_node_t *node,
+ void *varptr, void *cb_data);
+int cb_runlevels (enum grecs_callback_command cmd,
+ grecs_node_t *node,
+ void *varptr, void *cb_data);
+
extern char *sysvinit_environ_hint[];
extern char *init_fifo;

Return to:

Send suggestions and report system problems to the System administrator.