diff options
Diffstat (limited to 'debian/patches/procfs-update.patch')
-rw-r--r-- | debian/patches/procfs-update.patch | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/debian/patches/procfs-update.patch b/debian/patches/procfs-update.patch new file mode 100644 index 00000000..fc5cb4a7 --- /dev/null +++ b/debian/patches/procfs-update.patch @@ -0,0 +1,131 @@ +Split the argument handling into a common part and one for +fsys_update_options. Handle the --update parameter; for procfs this is +a no-op. + +* procfs/main.c (common_options): New variable. +(runtime_argp_parser): Handle --update. +(startup_argp): New variable. +(netfs_runtime_argp_): New variable. +--- + procfs/main.c | 93 ++++++++++++++++++++++++++++++++++++++++----------------- + 1 file changed, 65 insertions(+), 28 deletions(-) + +diff --git a/procfs/main.c b/procfs/main.c +index 1b19c01..ba74e87 100644 +--- a/procfs/main.c ++++ b/procfs/main.c +@@ -109,45 +109,82 @@ argp_parser (int key, char *arg, struct argp_state *state) + return 0; + } + ++struct argp_option common_options[] = { ++ { "clk-tck", 'h', "HZ", 0, ++ "Unit used for the values expressed in system clock ticks " ++ "(default: sysconf(_SC_CLK_TCK))" }, ++ { "stat-mode", 's', "MODE", 0, ++ "The [pid]/stat file publishes information which on Hurd is only " ++ "available to the process owner. " ++ "You can use this option to override its mode to be more permissive " ++ "for compatibility purposes. " ++ "(default: 0400)" }, ++ { "fake-self", 'S', "PID", OPTION_ARG_OPTIONAL, ++ "Provide a fake \"self\" symlink to the given PID, for compatibility " ++ "purposes. If PID is omitted, \"self\" will point to init. " ++ "(default: no self link)" }, ++ { "kernel-process", 'k', "PID", 0, ++ "Process identifier for the kernel, used to retreive its command " ++ "line, as well as the global up and idle times. " ++ "(default: 2)" }, ++ { "compatible", 'c', NULL, 0, ++ "Try to be compatible with the Linux procps utilities. " ++ "Currently equivalent to -h 100 -s 0444 -S 1." }, ++ { "anonymous-owner", 'a', "USER", 0, ++ "Make USER the owner of files related to processes without one. " ++ "Be aware that USER will be granted access to the environment and " ++ "other sensitive information about the processes in question. " ++ "(default: use uid 0)" }, ++ {} ++}; ++ + struct argp argp = { +- .options = (struct argp_option []) { +- { "clk-tck", 'h', "HZ", 0, +- "Unit used for the values expressed in system clock ticks " +- "(default: sysconf(_SC_CLK_TCK))" }, +- { "stat-mode", 's', "MODE", 0, +- "The [pid]/stat file publishes information which on Hurd is only " +- "available to the process owner. " +- "You can use this option to override its mode to be more permissive " +- "for compatibility purposes. " +- "(default: 0400)" }, +- { "fake-self", 'S', "PID", OPTION_ARG_OPTIONAL, +- "Provide a fake \"self\" symlink to the given PID, for compatibility " +- "purposes. If PID is omitted, \"self\" will point to init. " +- "(default: no self link)" }, +- { "kernel-process", 'k', "PID", 0, +- "Process identifier for the kernel, used to retreive its command " +- "line, as well as the global up and idle times. " +- "(default: 2)" }, +- { "compatible", 'c', NULL, 0, +- "Try to be compatible with the Linux procps utilities. " +- "Currently equivalent to -h 100 -s 0444 -S 1." }, +- { "anonymous-owner", 'a', "USER", 0, +- "Make USER the owner of files related to processes without one. " +- "Be aware that USER will be granted access to the environment and " +- "other sensitive information about the processes in question. " +- "(default: use uid 0)" }, ++ .options = common_options, ++ .parser = argp_parser, ++ .doc = "A virtual filesystem emulating the Linux procfs.", ++ .children = (struct argp_child []) { ++ { &netfs_std_startup_argp, }, + {} + }, ++}; ++ ++static error_t ++runtime_argp_parser (int key, char *arg, struct argp_state *state) ++{ ++ switch (key) ++ { ++ case 'u': ++ /* do nothing */ ++ break; ++ ++ default: ++ return ARGP_ERR_UNKNOWN; ++ } ++ ++ return 0; ++} ++ ++struct argp runtime_argp = { ++ .options = (struct argp_option []) { ++ { "update", 'u', NULL, 0, "remount; for procfs this does nothing" }, ++ {}, ++ }, ++ .parser = runtime_argp_parser, ++}; ++ ++struct argp netfs_runtime_argp_ = { ++ .options = common_options, + .parser = argp_parser, + .doc = "A virtual filesystem emulating the Linux procfs.", + .children = (struct argp_child []) { +- { &netfs_std_startup_argp, }, ++ { &runtime_argp, }, ++ { &netfs_std_runtime_argp, }, + {} + }, + }; + + /* Used by netfs_set_options to handle runtime option parsing. */ +-struct argp *netfs_runtime_argp = &argp; ++struct argp *netfs_runtime_argp = &netfs_runtime_argp_; + + error_t + root_make_node (struct ps_context *pc, struct node **np) +-- +1.7.10.4 + + |