From ebb437fb4b27fa565b9aebb05cda1e9db4ec17ff Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 16 Sep 2013 00:17:32 +0000 Subject: New upstream snapshot --- devnode/devnode.c | 10 ++++ procfs/ChangeLog | 6 ++ procfs/main.c | 165 +++++++++++++++++++++++++++++++++++++++++------------- procfs/process.c | 24 +++++++- procfs/rootdir.c | 49 +++++++++++++++- ufs/pager.c | 11 +++- 6 files changed, 223 insertions(+), 42 deletions(-) create mode 100644 procfs/ChangeLog diff --git a/devnode/devnode.c b/devnode/devnode.c index 50011aa4..218b3081 100644 --- a/devnode/devnode.c +++ b/devnode/devnode.c @@ -164,6 +164,16 @@ ds_device_open (mach_port_t master_port, mach_port_t reply_port, || device_name == NULL) return D_NO_SUCH_DEVICE; + if (master_file != NULL) + { + if (master_device != MACH_PORT_NULL) + mach_port_deallocate (mach_task_self (), master_device); + + master_device = file_name_lookup (master_file, 0, 0); + if (master_device == MACH_PORT_NULL) + error (1, errno, "file_name_lookup"); + } + err = device_open (master_device, mode, device_name, device); *devicetype = MACH_MSG_TYPE_MOVE_SEND; return err; diff --git a/procfs/ChangeLog b/procfs/ChangeLog new file mode 100644 index 00000000..0cd74d02 --- /dev/null +++ b/procfs/ChangeLog @@ -0,0 +1,6 @@ +edb4593c38d421b5d538b221a991b50c36fdba15 is the last commit imported from CVS. +All commits after that one have valid author and committer information. + +Use this to examine the change log for earlier changes: + + $ git show edb4593c38d421b5d538b221a991b50c36fdba15:ChangeLog diff --git a/procfs/main.c b/procfs/main.c index 90b3e92c..54e96823 100644 --- a/procfs/main.c +++ b/procfs/main.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include "procfs.h" @@ -37,6 +38,13 @@ pid_t opt_fake_self; pid_t opt_kernel_pid; uid_t opt_anon_owner; +/* Default values */ +#define OPT_CLK_TCK sysconf(_SC_CLK_TCK) +#define OPT_STAT_MODE 0400 +#define OPT_FAKE_SELF -1 +#define OPT_KERNEL_PID 2 +#define OPT_ANON_OWNER 0 + #define NODEV_KEY -1 /* <= 0, so no short option. */ #define NOEXEC_KEY -2 /* Likewise. */ #define NOSUID_KEY -3 /* Likewise. */ @@ -120,50 +128,90 @@ argp_parser (int key, char *arg, struct argp_state *state) case NOSUID_KEY: /* Ignored for compatibility with Linux' procfs. */ ;; + + default: + return ARGP_ERR_UNKNOWN; } 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)" }, + { "nodev", NODEV_KEY, NULL, 0, + "Ignored for compatibility with Linux' procfs." }, + { "noexec", NOEXEC_KEY, NULL, 0, + "Ignored for compatibility with Linux' procfs." }, + { "nosuid", NOSUID_KEY, NULL, 0, + "Ignored for compatibility with Linux' procfs." }, + {} +}; + 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)" }, - { "nodev", NODEV_KEY, NULL, 0, - "Ignored for compatibility with Linux' procfs." }, - { "noexec", NOEXEC_KEY, NULL, 0, - "Ignored for compatibility with Linux' procfs." }, - { "nosuid", NOSUID_KEY, NULL, 0, - "Ignored for compatibility with Linux' procfs." }, + .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, }, {} }, }; @@ -171,6 +219,47 @@ struct argp argp = { /* Used by netfs_set_options to handle runtime option parsing. */ struct argp *netfs_runtime_argp = &argp; +/* Return an argz string describing the current options. Fill *ARGZ + with a pointer to newly malloced storage holding the list and *LEN + to the length of that storage. */ +error_t +netfs_append_args (char **argz, size_t *argz_len) +{ + char buf[80]; + error_t err = 0; + +#define FOPT(opt, default, fmt, args...) \ + do { \ + if (! err && opt != default) \ + { \ + snprintf (buf, sizeof buf, fmt, ## args); \ + err = argz_add (argz, argz_len, buf); \ + } \ + } while (0) + + FOPT (opt_clk_tck, OPT_CLK_TCK, + "--clk-tck=%d", opt_clk_tck); + + FOPT (opt_stat_mode, OPT_STAT_MODE, + "--stat-mode=%o", opt_stat_mode); + + FOPT (opt_fake_self, OPT_FAKE_SELF, + "--fake-self=%d", opt_fake_self); + + FOPT (opt_anon_owner, OPT_ANON_OWNER, + "--anonymous-owner=%d", opt_anon_owner); + + FOPT (opt_kernel_pid, OPT_KERNEL_PID, + "--kernel-process=%d", opt_kernel_pid); + +#undef FOPT + + if (! err) + err = netfs_append_std_options (argz, argz_len); + + return err; +} + error_t root_make_node (struct ps_context *pc, struct node **np) { @@ -196,11 +285,11 @@ int main (int argc, char **argv) mach_port_t bootstrap; error_t err; - opt_clk_tck = sysconf(_SC_CLK_TCK); - opt_stat_mode = 0400; - opt_fake_self = -1; - opt_kernel_pid = 2; - opt_anon_owner = 0; + opt_clk_tck = OPT_CLK_TCK; + opt_stat_mode = OPT_STAT_MODE; + opt_fake_self = OPT_FAKE_SELF; + opt_kernel_pid = OPT_KERNEL_PID; + opt_anon_owner = OPT_ANON_OWNER; err = argp_parse (&argp, argc, argv, 0, 0, 0); if (err) error (1, err, "Could not parse command line"); diff --git a/procfs/process.c b/procfs/process.c index c5ef7d8a..269a18bb 100644 --- a/procfs/process.c +++ b/procfs/process.c @@ -116,6 +116,26 @@ process_file_gc_stat (struct proc_stat *ps, char **contents) thread_basic_info_t thbi = proc_stat_thread_basic_info (ps); const char *fn = args_filename (proc_stat_args (ps)); + vm_address_t start_code = 1; /* 0 would make killall5.c consider it + a kernel process, thus use 1 as + default. */ + vm_address_t end_code = 1; + process_t p; + error_t err = proc_pid2proc (ps->context->server, ps->pid, &p); + if (! err) + { + boolean_t essential = 0; + proc_is_important (p, &essential); + if (essential) + start_code = end_code = 0; /* To make killall5.c consider it a + kernel process that is to be + left alone. */ + else + proc_get_code (p, &start_code, &end_code); + + mach_port_deallocate (mach_task_self (), p); + } + /* See proc(5) for more information about the contents of each field for the Linux procfs. */ return asprintf (contents, @@ -152,7 +172,9 @@ process_file_gc_stat (struct proc_stat *ps, char **contents) timeval_jiffies (thbi->creation_time), /* FIXME: ... since boot */ (long unsigned) tbi->virtual_size, (long unsigned) tbi->resident_size / PAGE_SIZE, 0L, - 0L, 0L, 0L, 0L, 0L, + start_code, + end_code, + 0L, 0L, 0L, 0L, 0L, 0L, 0L, (long unsigned) proc_stat_thread_rpc (ps), /* close enough */ 0L, 0L, diff --git a/procfs/rootdir.c b/procfs/rootdir.c index f234dd03..34bf91ce 100644 --- a/procfs/rootdir.c +++ b/procfs/rootdir.c @@ -1,5 +1,5 @@ /* Hurd /proc filesystem, permanent files of the root directory. - Copyright (C) 2010 Free Software Foundation, Inc. + Copyright (C) 2010,13 Free Software Foundation, Inc. This file is part of the GNU Hurd. @@ -404,6 +404,31 @@ rootdir_gc_fakeself (void *hook, char **contents, ssize_t *contents_len) return 0; } +/* The mtab translator to use by default for the "mounts" node. */ +#define MTAB_TRANSLATOR "/hurd/mtab" + +static error_t +rootdir_mounts_get_translator (void *hook, char **argz, size_t *argz_len) +{ + static const char const mtab_argz[] = MTAB_TRANSLATOR "\0/"; + + *argz = malloc (sizeof mtab_argz); + if (! *argz) + return ENOMEM; + + memcpy (*argz, mtab_argz, sizeof mtab_argz); + *argz_len = sizeof mtab_argz; + return 0; +} + +static int +rootdir_mounts_exists (void *dir_hook, const void *entry_hook) +{ + static int translator_exists = -1; + if (translator_exists == -1) + translator_exists = access (MTAB_TRANSLATOR, F_OK|X_OK) == 0; + return translator_exists; +} /* Glue logic and entries table */ @@ -426,6 +451,18 @@ rootdir_symlink_make_node (void *dir_hook, const void *entry_hook) return np; } +static struct node * +rootdir_translator_make_node (void *dir_hook, const void *entry_hook) +{ + struct node *np = procfs_make_node (entry_hook, dir_hook); + if (np) + { + procfs_node_chtype (np, S_IFREG | S_IPTRANS); + procfs_node_chmod (np, 0444); + } + return np; +} + static const struct procfs_dir_entry rootdir_entries[] = { { .name = "self", @@ -487,6 +524,16 @@ static const struct procfs_dir_entry rootdir_entries[] = { .cleanup_contents = procfs_cleanup_contents_with_free, }, }, + { + .name = "mounts", + .hook = & (struct procfs_node_ops) { + .get_translator = rootdir_mounts_get_translator, + }, + .ops = { + .make_node = rootdir_translator_make_node, + .exists = rootdir_mounts_exists, + } + }, #ifdef PROFILE /* In order to get a usable gmon.out file, we must apparently use exit(). */ { diff --git a/ufs/pager.c b/ufs/pager.c index 1e3d140c..5d3e44ab 100644 --- a/ufs/pager.c +++ b/ufs/pager.c @@ -450,6 +450,13 @@ pager_unlock_page (struct user_pager_info *pager, return err; } +void +pager_notify_evict (struct user_pager_info *pager, + vm_offset_t page) +{ + assert (!"unrequested notification on eviction"); +} + /* Implement the pager_report_extent callback from the pager library. See for the interface description. */ inline error_t @@ -502,7 +509,7 @@ create_disk_pager (void) upi->type = DISK; upi->np = 0; pager_bucket = ports_create_bucket (); - diskfs_start_disk_pager (upi, pager_bucket, MAY_CACHE, store->size, + diskfs_start_disk_pager (upi, pager_bucket, MAY_CACHE, 0, store->size, &disk_image); upi->p = diskfs_disk_pager; } @@ -595,7 +602,7 @@ diskfs_get_filemap (struct node *np, vm_prot_t prot) upi->unlocked_pagein_length = 0; diskfs_nref_light (np); upi->p = pager_create (upi, pager_bucket, - MAY_CACHE, MEMORY_OBJECT_COPY_DELAY); + MAY_CACHE, MEMORY_OBJECT_COPY_DELAY, 0); if (upi->p == 0) { diskfs_nrele_light (np); -- cgit v1.2.3 From 364c43604a6abce8dea4879d6921fae57c81700e Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Mon, 16 Sep 2013 00:45:55 +0000 Subject: control: Add build dependency on libdaemon --- debian/changelog | 3 +++ debian/control | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 30bf9d38..89ad949c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,9 @@ hurd (20130916-1) UNRELEASED; urgency=low - patches/{exec_filename_exec.patch, exec_filename_fs.patch, mount-test-opts.patch, proxy-defpager.diff}: Refresh. + [ Justus Winter ] + * control: Add build dependency on libdaemon + -- Samuel Thibault Sat, 27 Jul 2013 22:37:17 +0000 hurd (20130727-1) unstable; urgency=low diff --git a/debian/control b/debian/control index c9bca6c3..4ddb702e 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Build-Depends: mig (>= 1.3-2), gnumach-dev (>= 2:1.3.99.dfsg.cvs20070526), libc0.3-dev (>= 2.13-38~), texinfo, texi2html, libncursesw5-dev, debhelper (>= 7.0.50~), gcc-4.7, dpkg (>= 1.15.4) | install-info, autoconf, dh-autoreconf, libparted-dev, libpciaccess-dev, libx11-dev, x11proto-core-dev, pkg-config, - xkb-data, gawk, flex, bison, autotools-dev + xkb-data, gawk, flex, bison, autotools-dev, libdaemon-dev Uploaders: Michael Banck , Samuel Thibault Homepage: http://www.gnu.org/software/hurd/hurd.html -- cgit v1.2.3 From 3ac46c2ed35686f94343900202839677b80f1b96 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 16 Sep 2013 00:46:36 +0000 Subject: Add an initscript for hurd-console * hurd.hurd-console.init: Add an initscript for hurd-console. * patches/hurd_console_startup.patch: Drop, this is no longer necessary with the initscript in place. --- debian/changelog | 3 + debian/hurd.hurd-console.init | 125 ++++++++++++++++++++++++++++++ debian/patches/hurd_console_startup.patch | 32 -------- 3 files changed, 128 insertions(+), 32 deletions(-) create mode 100644 debian/hurd.hurd-console.init delete mode 100644 debian/patches/hurd_console_startup.patch diff --git a/debian/changelog b/debian/changelog index 89ad949c..3d152b80 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,9 @@ hurd (20130916-1) UNRELEASED; urgency=low mount-test-opts.patch, proxy-defpager.diff}: Refresh. [ Justus Winter ] + * hurd.hurd-console.init: Add an initscript for hurd-console. + * patches/hurd_console_startup.patch: Drop, this is no longer necessary with + the initscript in place. * control: Add build dependency on libdaemon -- Samuel Thibault Sat, 27 Jul 2013 22:37:17 +0000 diff --git a/debian/hurd.hurd-console.init b/debian/hurd.hurd-console.init new file mode 100644 index 00000000..25050fca --- /dev/null +++ b/debian/hurd.hurd-console.init @@ -0,0 +1,125 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: hurd-console +# Required-Start: $all +# Required-Stop: +# Default-Start: 1 2 3 4 5 +# Default-Stop: 0 6 +# Short-Description: Example initscript +# Description: This file should be used to construct scripts to be +# placed in /etc/init.d. +### END INIT INFO + +# Author: Justus Winter <4winter@informatik.uni-hamburg.de> + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/bin +DESC="Hurd console multiplexer" +NAME=console +DAEMON=/bin/$NAME +DAEMON_ARGS="--daemonize -d current_vcs -c /dev/vcs" +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/hurd-$NAME + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/hurd-$NAME ] && . /etc/default/hurd-$NAME + +# Augment the arguments. +DAEMON_ARGS="${DAEMON_ARGS} ${DISPLAY} ${KBD} ${KBD_REPEAT} \ + ${SPEAKER} ${MOUSE} ${MOUSE_REPEAT}" + +# Load the VERBOSE setting and other rcS variables +. /lib/init/vars.sh + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.2-14) to ensure that this file is present +# and status_of_proc is working. +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() +{ + # Touch the first tty so that the Hurd console is certain to pick it + # and not some random other tty. + touch /dev/tty1 + + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + RETVAL="$?" + + [ "$?" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + #rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "hurd-$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "hurd-$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "hurd-$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "hurd-$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/debian/patches/hurd_console_startup.patch b/debian/patches/hurd_console_startup.patch deleted file mode 100644 index 8e9301c8..00000000 --- a/debian/patches/hurd_console_startup.patch +++ /dev/null @@ -1,32 +0,0 @@ -Automatically startup the hurd console when enabled. ---- - daemons/runsystem.sh | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - ---- a/daemons/runsystem.sh -+++ b/daemons/runsystem.sh -@@ -127,10 +127,24 @@ while : ; do - trap "kill -$sig \${runttys_pid}" $sig - done - -+ # Touch the first tty so that the Hurd console is certain to pick it -+ # and not some random other tty. -+ touch /dev/tty1 -+ - # This program reads /etc/ttys and starts the programs it says to. - ${RUNTTYS} & - runttys_pid=$! - -+ # Startup the Hurd console if configured. -+ if [ -e /etc/default/hurd-console ]; then -+ unset DISPLAY KBD KBD_REPEAT MOUSE MOUSE_REPEAT SPEAKER -+ . /etc/default/hurd-console -+ fi -+ if [ "$ENABLE" = "true" ]; then -+ console ${DISPLAY} ${KBD} ${KBD_REPEAT} \ -+ ${SPEAKER} ${MOUSE} ${MOUSE_REPEAT} -d current_vcs -c /dev/vcs -+ fi -+ - # Wait for runttys to die, meanwhile handling trapped signals. - wait - -- cgit v1.2.3 From 50601ff21c03b7ad2aa8db70cb24d14b4b5708b1 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 16 Sep 2013 01:23:40 +0000 Subject: Fix link until libc gets rebuilt against new .defs * patches/newRPC.patch: New patch to fix link until libc gets rebuilt against new .defs. --- debian/changelog | 2 + debian/patches/newRPC.patch | 100 ++++++++++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 103 insertions(+) create mode 100644 debian/patches/newRPC.patch diff --git a/debian/changelog b/debian/changelog index 3d152b80..9bb727d8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,8 @@ hurd (20130916-1) UNRELEASED; urgency=low * patches/hurd_console_startup.patch: Drop, this is no longer necessary with the initscript in place. * control: Add build dependency on libdaemon + * patches/newRPC.patch: New patch to fix link until libc gets rebuilt + against new .defs. -- Samuel Thibault Sat, 27 Jul 2013 22:37:17 +0000 diff --git a/debian/patches/newRPC.patch b/debian/patches/newRPC.patch new file mode 100644 index 00000000..d971aafd --- /dev/null +++ b/debian/patches/newRPC.patch @@ -0,0 +1,100 @@ +Index: hurd-debian/init/Makefile +=================================================================== +--- hurd-debian.orig/init/Makefile 2013-09-16 00:16:22.000000000 +0000 ++++ hurd-debian/init/Makefile 2013-09-16 01:01:11.000000000 +0000 +@@ -21,7 +21,7 @@ + SRCS = init.c stubs.c + OBJS = $(SRCS:.c=.o) \ + startupServer.o notifyServer.o startup_replyUser.o msgServer.o \ +- startup_notifyUser.o ++ startup_notifyUser.o processUser.o + target = init + HURDLIBS = shouldbeinlibc + +Index: hurd-debian/libdiskfs/Makefile +=================================================================== +--- hurd-debian.orig/libdiskfs/Makefile 2013-09-16 00:37:43.000000000 +0000 ++++ hurd-debian/libdiskfs/Makefile 2013-09-16 01:01:58.000000000 +0000 +@@ -58,7 +58,7 @@ + + MIGSTUBS = fsServer.o fs_experimentalServer.o ioServer.o fsysServer.o exec_startupServer.o \ + fsys_replyUser.o fs_notifyUser.o ifsockServer.o \ +- startup_notifyServer.o ++ startup_notifyServer.o processUser.o + OBJS = $(sort $(SRCS:.c=.o) $(MIGSTUBS)) + + HURDLIBS = fshelp iohelp store ports shouldbeinlibc pager +Index: hurd-debian/libnetfs/Makefile +=================================================================== +--- hurd-debian.orig/libnetfs/Makefile 2013-09-16 00:37:43.000000000 +0000 ++++ hurd-debian/libnetfs/Makefile 2013-09-16 01:02:10.000000000 +0000 +@@ -59,7 +59,7 @@ + + installhdrs=netfs.h + +-MIGSTUBS= ioServer.o fsServer.o fs_experimentalServer.o fsysServer.o fsys_replyUser.o ifsockServer.o ++MIGSTUBS= ioServer.o fsServer.o fs_experimentalServer.o fsysServer.o fsys_replyUser.o ifsockServer.o processUser.o + + OBJS=$(sort $(SRCS:.c=.o) $(MIGSTUBS)) + +Index: hurd-debian/libtrivfs/Makefile +=================================================================== +--- hurd-debian.orig/libtrivfs/Makefile 2013-09-16 00:37:43.000000000 +0000 ++++ hurd-debian/libtrivfs/Makefile 2013-09-16 01:02:24.000000000 +0000 +@@ -44,7 +44,7 @@ + + SRCS=$(FSSRCS) $(IOSRCS) $(FSYSSRCS) $(OTHERSRCS) + +-MIGSTUBS=fsServer.o fs_experimentalServer.o ioServer.o fsysServer.o fsys_replyUser.o ++MIGSTUBS=fsServer.o fs_experimentalServer.o ioServer.o fsysServer.o fsys_replyUser.o processUser.o + + libname = libtrivfs + HURDLIBS = fshelp iohelp ports shouldbeinlibc +Index: hurd-debian/mach-defpager/Makefile +=================================================================== +--- hurd-debian.orig/mach-defpager/Makefile 2013-09-16 00:16:22.000000000 +0000 ++++ hurd-debian/mach-defpager/Makefile 2013-09-16 01:02:39.000000000 +0000 +@@ -27,7 +27,7 @@ + OBJS := $(SRCS:.c=.o) \ + $(addsuffix Server.o,\ + memory_object default_pager memory_object_default exc) \ +- default_pager_replyUser.o ++ default_pager_replyUser.o processUser.o + + OTHERLIBS:= -lpthread + LDFLAGS += -static +Index: hurd-debian/trans/Makefile +=================================================================== +--- hurd-debian.orig/trans/Makefile 2013-09-16 00:37:41.000000000 +0000 ++++ hurd-debian/trans/Makefile 2013-09-16 01:03:10.000000000 +0000 +@@ -28,7 +28,7 @@ + OBJS = $(SRCS:.c=.o) fsysServer.o ifsockServer.o passwordServer.o \ + crashServer.o crash_replyUser.o msgServer.o \ + ourdefault_pagerServer.o ourdefault_pagerUser.o \ +- device_replyServer.o elfcore.o fsysUser.o ++ device_replyServer.o elfcore.o fsysUser.o processUser.o + HURDLIBS = ports netfs trivfs iohelp fshelp pipe ihash shouldbeinlibc + LDLIBS += -lpthread + password-LDLIBS = $(LIBCRYPT) +@@ -40,7 +40,7 @@ + + vpath elfcore.c $(top_srcdir)/exec + +-symlink: fsysServer.o ++symlink: fsysServer.o processUser.o + ifsock: ifsockServer.o + crash: crashServer.o crash_replyUser.o msgServer.o elfcore.o + password: passwordServer.o +Index: hurd-debian/exec/Makefile +=================================================================== +--- hurd-debian.orig/exec/Makefile 2013-09-16 00:37:43.000000000 +0000 ++++ hurd-debian/exec/Makefile 2013-09-16 01:04:27.000000000 +0000 +@@ -22,7 +22,7 @@ + + SRCS = exec.c main.c hashexec.c hostarch.c + OBJS = main.o hostarch.o exec.o hashexec.o \ +- execServer.o exec_startupServer.o exec_experimentalServer.o ++ execServer.o exec_startupServer.o exec_experimentalServer.o processUser.o + + target = exec + #targets = exec exec.static diff --git a/debian/patches/series b/debian/patches/series index f86b2a38..f5d778e6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -40,3 +40,4 @@ exec_filename_fs.patch exec_filename_use.patch mount-loop.patch mount-test-opts.patch +newRPC.patch -- cgit v1.2.3 From d2ac13d26077f96a6c9c7ae4e7896a60279ae157 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 16 Sep 2013 07:46:12 +0000 Subject: debian/rc.patch: point /run/mtab to /proc/mounts. --- debian/changelog | 5 +++-- debian/patches/rc.patch | 19 ++++++++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index 9bb727d8..4ab94c31 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -hurd (20130916-1) UNRELEASED; urgency=low +hurd (20130916-1) unstable; urgency=low * New upstream snapshot. Closes: Bug#701516, Bug#313560. - patches/{ext2fs_large_stores.patch, ext2fs_large_stores_pthread.patch, @@ -8,6 +8,7 @@ hurd (20130916-1) UNRELEASED; urgency=low sutils-multiple-none.patch, umount.patch}: Remove, merged upstream. - patches/{exec_filename_exec.patch, exec_filename_fs.patch, mount-test-opts.patch, proxy-defpager.diff}: Refresh. + * debian/rc.patch: point /run/mtab to /proc/mounts. [ Justus Winter ] * hurd.hurd-console.init: Add an initscript for hurd-console. @@ -17,7 +18,7 @@ hurd (20130916-1) UNRELEASED; urgency=low * patches/newRPC.patch: New patch to fix link until libc gets rebuilt against new .defs. - -- Samuel Thibault Sat, 27 Jul 2013 22:37:17 +0000 + -- Samuel Thibault Mon, 16 Sep 2013 01:36:12 +0000 hurd (20130727-1) unstable; urgency=low diff --git a/debian/patches/rc.patch b/debian/patches/rc.patch index 228bb349..3bcff71f 100644 --- a/debian/patches/rc.patch +++ b/debian/patches/rc.patch @@ -3,9 +3,11 @@ More debianish rc scripts daemons/rc.sh | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) ---- a/daemons/rc.sh -+++ b/daemons/rc.sh -@@ -19,14 +19,17 @@ then +Index: hurd-debian/daemons/rc.sh +=================================================================== +--- hurd-debian.orig/daemons/rc.sh 2013-09-16 07:43:39.000000000 +0000 ++++ hurd-debian/daemons/rc.sh 2013-09-16 07:44:04.000000000 +0000 +@@ -19,14 +19,17 @@ echo Automatic boot in progress... date @@ -24,7 +26,7 @@ More debianish rc scripts ;; # Fsck couldn't fix it. 4 | 8) -@@ -85,7 +88,15 @@ if test -d /tmp; then +@@ -85,12 +88,20 @@ fi if test -d /var/run; then @@ -41,7 +43,14 @@ More debianish rc scripts fi echo done -@@ -104,15 +115,25 @@ touch /var/run/mtab +-# This file must exist for e2fsck to work. XXX +-touch /var/run/mtab ++# This file must exist for e2fsck to work. ++ln -s /proc/mounts /var/run/mtab + + #echo -n restoring pty permissions... + #chmod 666 /dev/tty[pqrs]* +@@ -104,15 +115,25 @@ chmod 664 /etc/motd -- cgit v1.2.3 From 0c4ea54e9207be617ef7da207cbef67ec31bf904 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 16 Sep 2013 10:31:07 +0000 Subject: Refresh --- debian/patches/run.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/debian/patches/run.patch b/debian/patches/run.patch index 50f584fb..a4fd4eb6 100644 --- a/debian/patches/run.patch +++ b/debian/patches/run.patch @@ -1,7 +1,7 @@ -Index: hurd/daemons/rc.sh +Index: hurd-debian/daemons/rc.sh =================================================================== ---- hurd.orig/daemons/rc.sh 2011-12-06 02:51:32.000000000 +0100 -+++ hurd/daemons/rc.sh 2011-12-06 02:52:16.000000000 +0100 +--- hurd-debian.orig/daemons/rc.sh 2013-09-16 10:29:05.000000000 +0000 ++++ hurd-debian/daemons/rc.sh 2013-09-16 10:29:05.000000000 +0000 @@ -98,6 +98,13 @@ chgrp utmp utmp fi; }) @@ -15,4 +15,4 @@ Index: hurd/daemons/rc.sh + echo done - # This file must exist for e2fsck to work. XXX + # This file must exist for e2fsck to work. -- cgit v1.2.3 From 0c607bd710019d1bf748b68c6b34d38f40f56bef Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 16 Sep 2013 12:14:38 +0000 Subject: Do not start the Hurd console in single-user mode --- debian/hurd.hurd-console.init | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/hurd.hurd-console.init b/debian/hurd.hurd-console.init index 25050fca..e26af525 100644 --- a/debian/hurd.hurd-console.init +++ b/debian/hurd.hurd-console.init @@ -3,8 +3,8 @@ # Provides: hurd-console # Required-Start: $all # Required-Stop: -# Default-Start: 1 2 3 4 5 -# Default-Stop: 0 6 +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 # Short-Description: Example initscript # Description: This file should be used to construct scripts to be # placed in /etc/init.d. -- cgit v1.2.3 From 4b8f7383153894c65461af3cc928a274179ad05b Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 16 Sep 2013 12:16:24 +0000 Subject: Make hurd-console explicitly depend on local_fs for /var --- debian/hurd.hurd-console.init | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/debian/hurd.hurd-console.init b/debian/hurd.hurd-console.init index e26af525..7194f0bb 100644 --- a/debian/hurd.hurd-console.init +++ b/debian/hurd.hurd-console.init @@ -1,13 +1,11 @@ #! /bin/sh ### BEGIN INIT INFO # Provides: hurd-console -# Required-Start: $all +# Required-Start: $local_fs $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 -# Short-Description: Example initscript -# Description: This file should be used to construct scripts to be -# placed in /etc/init.d. +# Short-Description: Start userland console ### END INIT INFO # Author: Justus Winter <4winter@informatik.uni-hamburg.de> -- cgit v1.2.3 From 9844a21e191e7c352978944e30130e51e30ebf2a Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 16 Sep 2013 13:40:43 +0000 Subject: Make lintian happier * rules, control: Switch to makeinfo. * Refresh lintian overrides. --- debian/changelog | 4 +++- debian/control | 2 +- debian/hurd-dev.lintian-overrides | 1 + debian/hurd-doc.docs | 2 +- debian/hurd.lintian-overrides | 2 +- debian/rules | 2 +- 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index 4ab94c31..457ea916 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,7 +8,9 @@ hurd (20130916-1) unstable; urgency=low sutils-multiple-none.patch, umount.patch}: Remove, merged upstream. - patches/{exec_filename_exec.patch, exec_filename_fs.patch, mount-test-opts.patch, proxy-defpager.diff}: Refresh. - * debian/rc.patch: point /run/mtab to /proc/mounts. + * patches/rc.patch: point /run/mtab to /proc/mounts. + * rules, control: Switch to makeinfo. + * Refresh lintian overrides. [ Justus Winter ] * hurd.hurd-console.init: Add an initscript for hurd-console. diff --git a/debian/control b/debian/control index 4ddb702e..7beea8f9 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,7 @@ Priority: required Maintainer: GNU Hurd Maintainers Standards-Version: 3.9.4 Build-Depends: mig (>= 1.3-2), gnumach-dev (>= 2:1.3.99.dfsg.cvs20070526), - libc0.3-dev (>= 2.13-38~), texinfo, texi2html, libncursesw5-dev, + libc0.3-dev (>= 2.13-38~), texinfo, texinfo, libncursesw5-dev, debhelper (>= 7.0.50~), gcc-4.7, dpkg (>= 1.15.4) | install-info, autoconf, dh-autoreconf, libparted-dev, libpciaccess-dev, libx11-dev, x11proto-core-dev, pkg-config, xkb-data, gawk, flex, bison, autotools-dev, libdaemon-dev diff --git a/debian/hurd-dev.lintian-overrides b/debian/hurd-dev.lintian-overrides index cde03032..1d40f324 100644 --- a/debian/hurd-dev.lintian-overrides +++ b/debian/hurd-dev.lintian-overrides @@ -13,3 +13,4 @@ unstripped-binary-or-object lib/*/libstore_part.a unstripped-binary-or-object lib/*/libstore_remap.a unstripped-binary-or-object lib/*/libstore_task.a unstripped-binary-or-object lib/*/libstore_zero.a +unstripped-binary-or-object usr/lib/*/libdde_linux26.o.a diff --git a/debian/hurd-doc.docs b/debian/hurd-doc.docs index 5d7f66d2..beba2b2e 100644 --- a/debian/hurd-doc.docs +++ b/debian/hurd-doc.docs @@ -1,2 +1,2 @@ -build/doc/hurd*html +build/doc/hurd doc/navigating diff --git a/debian/hurd.lintian-overrides b/debian/hurd.lintian-overrides index 9b19749e..d30a2226 100644 --- a/debian/hurd.lintian-overrides +++ b/debian/hurd.lintian-overrides @@ -3,5 +3,5 @@ setuid-binary bin/ids 4755 root/root setuid-binary bin/login 4755 root/root setuid-binary bin/ps-hurd 4755 root/root setuid-binary usr/bin/w-hurd 4755 root/root -possibly-insecure-handling-of-tmp-files-in-maintainer-script postinst:75 +possibly-insecure-handling-of-tmp-files-in-maintainer-script postinst:81 package-contains-empty-directory servers/socket/ diff --git a/debian/rules b/debian/rules index 273e139b..a1aa0674 100755 --- a/debian/rules +++ b/debian/rules @@ -37,7 +37,7 @@ override_dh_auto_configure: override_dh_auto_build: dh_auto_build -Bbuild - cd build/doc && texi2html -split chapter ../../doc/hurd.texi + cd build/doc && make && makeinfo --html --split=chapter ../../doc/hurd.texi $(MAKE) -C libdde-linux26 BUILDDIR=$(CURDIR)/build override_dh_auto_clean: -- cgit v1.2.3 From 3b35299a6a607c457b6d37457b0435b6d2d60f1c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 16 Sep 2013 13:43:49 +0000 Subject: $local_fs is needed by require-stop, not require-start --- debian/hurd.hurd-console.init | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/hurd.hurd-console.init b/debian/hurd.hurd-console.init index 7194f0bb..a14b0a5c 100644 --- a/debian/hurd.hurd-console.init +++ b/debian/hurd.hurd-console.init @@ -1,8 +1,8 @@ #! /bin/sh ### BEGIN INIT INFO # Provides: hurd-console -# Required-Start: $local_fs $all -# Required-Stop: +# Required-Start: $all +# Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start userland console -- cgit v1.2.3 From dc017ca300b2271706c0b167ac5f678b069e5003 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 16 Sep 2013 14:30:45 +0000 Subject: upload --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 457ea916..34f6fccb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,7 +20,7 @@ hurd (20130916-1) unstable; urgency=low * patches/newRPC.patch: New patch to fix link until libc gets rebuilt against new .defs. - -- Samuel Thibault Mon, 16 Sep 2013 01:36:12 +0000 + -- Samuel Thibault Mon, 16 Sep 2013 14:30:13 +0000 hurd (20130727-1) unstable; urgency=low -- cgit v1.2.3