Package: sudo
Version: 1.8.3p1-2
Severity: normal
Tags: upstream patch
User: [email protected]
Usertags: hurd

Hello,

Currently visudo fails to run on hurd-i386, because it uses lockf which
isn't implemented on Hurd. This has been previously tracked on Alioth[1].

The following output is produced when one tries to use visudo:

# visudo
visudo: /etc/sudoers busy, try again later

The attached quilt patch causes visudo to use flock instead of lockf on
hurd-i386, which fixes this problem. The diff is somewhat large because I
have regenerated the configure script with a newer version of autoconf to
effect the change to configure.in.

visudo does not run perfectly on hurd-i386 with this patch applied, but
the remaining issue is known to be unrelated to this one, so it is
irrelevant to this bug. It is being worked on separately.

Please let me know if you need any further information.

[1] 
https://alioth.debian.org/tracker/index.php?func=detail&aid=303084&group_id=30628&atid=411594


-- System Information:
Debian Release: wheezy/sid
  APT prefers unreleased
  APT policy: (500, 'unreleased'), (500, 'unstable')
Architecture: hurd-i386 (i686-AT386)

Kernel: GNU-Mach 1.3.99/Hurd-0.3
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages sudo depends on:
ii  libc0.3         2.13-24
ii  libpam-modules  1.1.3-6
ii  libpam0g        1.1.3-6

sudo recommends no packages.

sudo suggests no packages.

-- Configuration Files:
/etc/sudoers [Errno 1073741837] Permission denied: u'/etc/sudoers'
/etc/sudoers.d/README [Errno 1073741837] Permission denied: 
u'/etc/sudoers.d/README'

-- no debconf information
Use flock instead of lockf for visudo on hurd
Index: sudo-1.8.3p1/configure.in
===================================================================
--- sudo-1.8.3p1.orig/configure.in	2011-10-25 14:11:40.000000000 +0000
+++ sudo-1.8.3p1/configure.in	2012-01-08 04:05:23.000000000 +0000
@@ -1864,6 +1864,9 @@
 		;;
     *-gnu*)
 		OSDEFS="${OSDEFS} -D_GNU_SOURCE"
+		# lockf() isn't implemented on the Hurd -- use flock instead
+		ac_cv_func_lockf=no
+		ac_cv_func_flock=yes
 		;;
 esac
 
Index: sudo-1.8.3p1/configure
===================================================================
--- sudo-1.8.3p1.orig/configure	2011-10-25 14:11:54.000000000 +0000
+++ sudo-1.8.3p1/configure	2012-01-08 05:26:40.000000000 +0000
@@ -1483,7 +1483,7 @@
   --bindir=DIR            user executables [EPREFIX/bin]
   --sbindir=DIR           system admin executables [EPREFIX/sbin]
   --libexecdir=DIR        program executables [EPREFIX/libexec]
-  --sysconfdir=DIR        read-only single-machine data [/etc]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
   --libdir=DIR            object code libraries [EPREFIX/lib]
@@ -14287,6 +14287,9 @@
 		;;
     *-gnu*)
 		OSDEFS="${OSDEFS} -D_GNU_SOURCE"
+		# lockf() isn't implemented on the Hurd -- use flock instead
+		ac_cv_func_lockf=no
+		ac_cv_func_flock=yes
 		;;
 esac
 
@@ -17191,7 +17194,7 @@
 $as_echo "$as_me: WARNING: unable to find socket() trying -lsocket -lnsl" >&2;}
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
 $as_echo_n "checking for socket in -lsocket... " >&6; }
-if ${ac_cv_lib_socket_socket_lnsl+:} false; then :
+if ${ac_cv_lib_socket_socket+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -17215,17 +17218,17 @@
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_socket_socket_lnsl=yes
+  ac_cv_lib_socket_socket=yes
 else
-  ac_cv_lib_socket_socket_lnsl=no
+  ac_cv_lib_socket_socket=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket_lnsl" >&5
-$as_echo "$ac_cv_lib_socket_socket_lnsl" >&6; }
-if test "x$ac_cv_lib_socket_socket_lnsl" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
+$as_echo "$ac_cv_lib_socket_socket" >&6; }
+if test "x$ac_cv_lib_socket_socket" = xyes; then :
   NET_LIBS="${NET_LIBS} -lsocket -lnsl"; LIBS="${LIBS} -lsocket -lnsl"
 fi
 
@@ -17325,7 +17328,7 @@
 $as_echo "$as_me: WARNING: unable to find inet_addr() trying -lsocket -lnsl" >&2;}
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_addr in -lsocket" >&5
 $as_echo_n "checking for inet_addr in -lsocket... " >&6; }
-if ${ac_cv_lib_socket_inet_addr_lnsl+:} false; then :
+if ${ac_cv_lib_socket_inet_addr+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -17349,17 +17352,17 @@
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_socket_inet_addr_lnsl=yes
+  ac_cv_lib_socket_inet_addr=yes
 else
-  ac_cv_lib_socket_inet_addr_lnsl=no
+  ac_cv_lib_socket_inet_addr=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_inet_addr_lnsl" >&5
-$as_echo "$ac_cv_lib_socket_inet_addr_lnsl" >&6; }
-if test "x$ac_cv_lib_socket_inet_addr_lnsl" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_inet_addr" >&5
+$as_echo "$ac_cv_lib_socket_inet_addr" >&6; }
+if test "x$ac_cv_lib_socket_inet_addr" = xyes; then :
   NET_LIBS="${NET_LIBS} -lsocket -lnsl"; LIBS="${LIBS} -lsocket -lnsl"
 fi
 
@@ -18050,7 +18053,7 @@
     #
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SD_Init in -laceclnt" >&5
 $as_echo_n "checking for SD_Init in -laceclnt... " >&6; }
-if ${ac_cv_lib_aceclnt_SD_Init_______lpthread_______+:} false; then :
+if ${ac_cv_lib_aceclnt_SD_Init+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -18077,17 +18080,17 @@
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_aceclnt_SD_Init_______lpthread_______=yes
+  ac_cv_lib_aceclnt_SD_Init=yes
 else
-  ac_cv_lib_aceclnt_SD_Init_______lpthread_______=no
+  ac_cv_lib_aceclnt_SD_Init=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_aceclnt_SD_Init_______lpthread_______" >&5
-$as_echo "$ac_cv_lib_aceclnt_SD_Init_______lpthread_______" >&6; }
-if test "x$ac_cv_lib_aceclnt_SD_Init_______lpthread_______" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_aceclnt_SD_Init" >&5
+$as_echo "$ac_cv_lib_aceclnt_SD_Init" >&6; }
+if test "x$ac_cv_lib_aceclnt_SD_Init" = xyes; then :
 
 	    AUTH_OBJS="$AUTH_OBJS securid5.lo";
 	    SUDOERS_LIBS="${SUDOERS_LIBS} -laceclnt -lpthread"
@@ -18346,10 +18349,9 @@
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-                as_ac_Lib=`$as_echo "ac_cv_lib_krb_main$K4LIBS" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lkrb" >&5
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lkrb" >&5
 $as_echo_n "checking for main in -lkrb... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
+if ${ac_cv_lib_krb_main+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -18367,25 +18369,23 @@
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
+  ac_cv_lib_krb_main=yes
 else
-  eval "$as_ac_Lib=no"
+  ac_cv_lib_krb_main=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb_main" >&5
+$as_echo "$ac_cv_lib_krb_main" >&6; }
+if test "x$ac_cv_lib_krb_main" = xyes; then :
   K4LIBS="-lkrb $K4LIBS"
 else
 
-	as_ac_Lib=`$as_echo "ac_cv_lib_krb4_main$K4LIBS" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lkrb4" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lkrb4" >&5
 $as_echo_n "checking for main in -lkrb4... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
+if ${ac_cv_lib_krb4_main+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -18403,18 +18403,17 @@
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
+  ac_cv_lib_krb4_main=yes
 else
-  eval "$as_ac_Lib=no"
+  ac_cv_lib_krb4_main=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb4_main" >&5
+$as_echo "$ac_cv_lib_krb4_main" >&6; }
+if test "x$ac_cv_lib_krb4_main" = xyes; then :
   K4LIBS="-lkrb4 $K4LIBS"
 else
   K4LIBS="-lkrb $K4LIBS"

Reply via email to