summaryrefslogtreecommitdiff
path: root/debian/patches/exec_filename_use.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/exec_filename_use.patch')
-rw-r--r--debian/patches/exec_filename_use.patch113
1 files changed, 113 insertions, 0 deletions
diff --git a/debian/patches/exec_filename_use.patch b/debian/patches/exec_filename_use.patch
new file mode 100644
index 00000000..c806aea2
--- /dev/null
+++ b/debian/patches/exec_filename_use.patch
@@ -0,0 +1,113 @@
+From bbce8439190738efc9260490fa52f9dfe9600306 Mon Sep 17 00:00:00 2001
+From: Emilio Pozuelo Monfort <pochu27@gmail.com>
+Date: Wed, 26 May 2010 23:32:16 +0200
+Subject: [PATCH 3/3] Use the new _hurd_exec_file_name function
+
+* configure.in: Check for _hurd_exec_file_name.
+* utils/fakeauth.c: Call _hurd_exec_file_name instead of
+_hurd_exec if it's available.
+* utils/rpctrace.c: Likewise.
+* utils/shd.c: Likewise.
+---
+ configure.in | 4 ++--
+ utils/fakeauth.c | 9 +++++++--
+ utils/rpctrace.c | 6 +++++-
+ utils/shd.c | 9 ++++++---
+ 4 files changed, 20 insertions(+), 8 deletions(-)
+
+Index: hurd-debian/configure.ac
+===================================================================
+--- hurd-debian.orig/configure.ac 2012-06-05 00:38:18.000000000 +0000
++++ hurd-debian/configure.ac 2012-06-05 00:38:18.000000000 +0000
+@@ -160,8 +160,8 @@
+ fi
+ AC_SUBST(VERSIONING)
+
+-# Check if libc contains getgrouplist and/or uselocale.
+-AC_CHECK_FUNCS(getgrouplist uselocale file_exec_file_name exec_exec_file_name)
++# Check if libc contains these functions.
++AC_CHECK_FUNCS(getgrouplist uselocale file_exec_file_name exec_exec_file_name _hurd_exec_file_name)
+
+
+ # From glibc HEAD, 2007-11-07.
+Index: hurd-debian/utils/fakeauth.c
+===================================================================
+--- hurd-debian.orig/utils/fakeauth.c 2012-06-05 00:35:35.000000000 +0000
++++ hurd-debian/utils/fakeauth.c 2012-06-05 01:48:00.000000000 +0000
+@@ -1,5 +1,5 @@
+ /* fakeauth -- proxy auth server to lie to users about what their IDs are
+- Copyright (C) 2002 Free Software Foundation, Inc.
++ Copyright (C) 2002, 2010 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+@@ -388,7 +388,7 @@
+ /* We cannot use fork because it doesn't do the right thing with our send
+ rights that point to our own receive rights, i.e. the new auth port.
+ Since posix_spawn might be implemented with fork (prior to glibc 2.3),
+- we cannot use that simple interface either. We use _hurd_exec
++ we cannot use that simple interface either. We use _hurd_exec_file_name
+ directly to effect what posix_spawn does in the simple case. */
+ {
+ task_t newtask;
+@@ -413,7 +413,12 @@
+ if (err)
+ error (3, err, "proc_child");
+
++#ifdef HAVE__HURD_EXEC_FILE_NAME
++ err = _hurd_exec_file_name (newtask, execfile, argv[argi],
++ &argv[argi], environ);
++#else
+ err = _hurd_exec (newtask, execfile, &argv[argi], environ);
++#endif
+ mach_port_deallocate (mach_task_self (), newtask);
+ mach_port_deallocate (mach_task_self (), execfile);
+ if (err)
+Index: hurd-debian/utils/rpctrace.c
+===================================================================
+--- hurd-debian.orig/utils/rpctrace.c 2012-06-05 00:35:35.000000000 +0000
++++ hurd-debian/utils/rpctrace.c 2012-06-05 01:48:00.000000000 +0000
+@@ -1069,7 +1069,11 @@
+ /* Now actually run the command they told us to trace. We do the exec on
+ the actual task, so the RPCs to map in the program itself do not get
+ traced. Could have an option to use TASK_WRAPPER here instead. */
++#ifdef HAVE__HURD_EXEC_FILE_NAME
++ err = _hurd_exec_file_name (traced_task, file, *argv, argv, envp);
++#else
+ err = _hurd_exec (traced_task, file, argv, envp);
++#endif
+ if (err)
+ error (2, err, "cannot exec `%s'", argv[0]);
+
+Index: hurd-debian/utils/shd.c
+===================================================================
+--- hurd-debian.orig/utils/shd.c 2012-06-05 00:35:35.000000000 +0000
++++ hurd-debian/utils/shd.c 2012-06-05 01:48:00.000000000 +0000
+@@ -1,5 +1,5 @@
+ /*
+- Copyright (C) 1994,95,99,2002 Free Software Foundation
++ Copyright (C) 1994, 1995, 1999, 2002, 2010 Free Software Foundation
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+@@ -159,15 +159,18 @@
+ movefd (fd1, 1, &save1))
+ return -1;
+
++#ifdef HAVE__HURD_EXEC_FILE_NAME
++ err = _hurd_exec_file_name (task, file, program, argv, environ);
++#else
+ err = _hurd_exec (task, file, argv, environ);
+-
++#endif
+ if (restorefd (fd0, 0, &save0) ||
+ restorefd (fd1, 1, &save1))
+ return -1;
+
+ if (err)
+ {
+- error (0, err, "_hurd_exec");
++ error (0, err, "_hurd_exec_file_name");
+ err = task_terminate (task);
+ if (err)
+ error (0, err, "task_terminate");