All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Arthur Korn" <arthur@korn.ch>
To: autofs@linux.kernel.org
Subject: Debian diff remaining in autofs 4.1.3
Date: Sat, 4 Sep 2004 22:06:54 +0200	[thread overview]
Message-ID: <20040904200654.GA26488@turing> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 6034 bytes --]

Hi

I'm the new Debian autofs Maintainer. As such, I had the
privilege to merge 1092 lines of many small patches when
updating to 4.1.3 ...

Here the updated patches that address issues that I couldn't see
fixed otherwise.




Mount is called like this "mount -t fstype -o what fullpath"
because options is allocated but empty.

--- autofs-4.1.3/modules/mount_changer.c.orig	2004-05-10 14:44:30.000000000 +0200
+++ autofs-4.1.3/modules/mount_changer.c	2004-09-03 23:49:18.000000000 +0200
@@ -94,7 +94,7 @@
 	}
 
 	wait_for_lock();
-	if (options) {
+	if (options && options[0]) {
 		debug(MODPREFIX "calling mount -t %s " SLOPPY "-o %s %s %s",
 		    fstype, options, what, fullpath);
 
--- autofs-4.1.3/modules/mount_ext2.c.orig	2004-05-10 14:44:30.000000000 +0200
+++ autofs-4.1.3/modules/mount_ext2.c	2004-09-03 23:49:47.000000000 +0200
@@ -73,7 +73,7 @@
 		return 0;
 	}
 
-	if (options) {
+	if (options && options[0]) {
 		for (p = options; (p1 = strchr(p, ',')); p = p1)
 			if (!strncmp(p, "ro", p1 - p) && ++p1 - p == sizeof("ro"))
 				ro = 1;
--- autofs-4.1.3/modules/mount_generic.c.orig	2004-05-10 14:44:30.000000000 +0200
+++ autofs-4.1.3/modules/mount_generic.c	2004-09-03 23:50:19.000000000 +0200
@@ -72,7 +72,7 @@
 	}
 
 	wait_for_lock();
-	if (options) {
+	if (options && options[0]) {
 		debug(MODPREFIX "calling mount -t %s " SLOPPY "-o %s %s %s",
 		      fstype, options, what, fullpath);
 






For program-maps, last character read from STDIN was being
doubled (pretty strange experience).


diff -ruN autofs-4.1.3.orig/modules/lookup_program.c autofs-4.1.3/modules/lookup_program.c
--- autofs-4.1.3.orig/modules/lookup_program.c	2004-01-29 17:01:22.000000000 +0100
+++ autofs-4.1.3/modules/lookup_program.c	2004-09-03 23:58:42.000000000 +0200
@@ -159,6 +159,7 @@
 			if (read(pipefd[0], &ch, 1) < 1) {
 				FD_CLR(pipefd[0], &ourfds);
 				files_left--;
+				state = st_done;
 			}
 
 			if (!quoted && ch == '\\') {







Add crude support for hesiod priorities.

--- autofs-4.1.3/modules/lookup_hesiod.c.orig	2004-09-03 23:18:31.000000000 +0200
+++ autofs-4.1.3/modules/lookup_hesiod.c	2004-09-03 23:18:35.000000000 +0200
@@ -9,6 +9,7 @@
 
 #include <sys/types.h>
 #include <ctype.h>
+#include <limits.h>
 #include <string.h>
 #include <syslog.h>
 #include <unistd.h>
@@ -70,6 +71,8 @@ int lookup_mount(const char *root, const
 	char **hes_result;
 	struct lookup_context *ctxt = (struct lookup_context *) context;
 	int rv;
+	char **record, *best_record = NULL, *p;
+	int priority, lowest_priority = INT_MAX;	
 
 	debug(MODPREFIX "looking up root=\"%s\", name=\"%s\"", root, name);
 
@@ -78,14 +81,30 @@ int lookup_mount(const char *root, const
 
 	hes_result = hes_resolve(name, "filsys");
 
-	if (!hes_result) {
+	if (!hes_result || !hes_result[0]) {
 		warn(MODPREFIX "entry \"%s\" not found in map\n", name);
 		return 1;
 	}
 
-	debug(MODPREFIX "lookup for \"%s\" gave \"%s\"", name, hes_result[0]);
+	/* autofs doesn't support falling back to alternate records, so just
+	   find the record with the lowest priority and hope it works.
+	   -- Aaron Ucko <amu@alum.mit.edu> 2002-03-11 */
+	for (record = hes_result; *record; ++record) {
+	    p = strrchr(*record, ' ');
+	    if ( p && isdigit(p[1]) ) {
+		priority = atoi(p+1);
+	    } else {
+		priority = INT_MAX - 1;
+	    }
+	    if (priority < lowest_priority) {
+		lowest_priority = priority;
+		best_record = *record;
+	    }
+	}
 
-	rv = ctxt->parser->parse_mount(root, name, name_len, hes_result[0],
+	debug(MODPREFIX "lookup for \"%s\" gave \"%s\"", name, best_record);
+
+	rv = ctxt->parser->parse_mount(root, name, name_len, best_record,
 				       ctxt->parser->context);
 	free(hes_result);
 	return rv;




The comment says it.

--- bak/modules/mount_afs.c.orig	2004-01-29 17:01:22.000000000 +0100
+++ bak/modules/mount_afs.c	2004-09-03 23:03:04.000000000 +0200
@@ -39,6 +39,10 @@
 	strncat(dest, "/", sizeof(dest));
 	strncat(dest, name, sizeof(dest));
 
+	/* remove trailing slash (http://bugs.debian.org/141775) */
+	if (dest[strlen(dest)-1] == '/')
+	    dest[strlen(dest)-1] = '\0';
+
 	debug(MODPREFIX "mounting AFS %s -> %s", dest, what);
 
 	return symlink(what, dest);	/* Try it.  If it fails, return the error. */






Rather cosmetic: When there are errors in subdirectories on
build, make will continue. I need this so build-daemons can't
upload incomplete binary packages:

diff -ruN autofs-4.1.3.orig/Makefile autofs-4.1.3/Makefile
--- autofs-4.1.3.orig/Makefile	2003-09-29 10:22:35.000000000 +0200
+++ autofs-4.1.3/Makefile	2004-09-04 20:23:42.000000000 +0200
@@ -13,26 +13,26 @@
 all:	daemon samples
 
 daemon:
-	for i in $(SUBDIRS); do $(MAKE) -C $$i all; done 
+	set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i all; done 
 
 kernel:
-	if [ -d kernel ]; then $(MAKE) -C kernel all; fi
+	set -e; if [ -d kernel ]; then $(MAKE) -C kernel all; fi
 
 samples:
-	if [ -d samples ]; then $(MAKE) -C samples all; fi
+	set -e; if [ -d samples ]; then $(MAKE) -C samples all; fi
 
 clean:
 	for i in $(SUBDIRS) samples kernel; do \
 		if [ -d $$i ]; then $(MAKE) -C $$i clean; fi; done 	
 
 install:
-	for i in $(SUBDIRS); do $(MAKE) -C $$i install; done 	
+	set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i install; done 	
 
 install_kernel:
-	if [ -d kernel ]; then $(MAKE) -C kernel install; fi
+	set -e; if [ -d kernel ]; then $(MAKE) -C kernel install; fi
 
 install_samples:
-	if [ -d samples ]; then $(MAKE) -C samples install; fi
+	set -e; if [ -d samples ]; then $(MAKE) -C samples install; fi
 
 mrproper distclean: clean
 	find . -noleaf \( -name '*~' -o -name '#*' -o -name '*.orig' -o -name '*.rej' -o -name '*.old' \) -print0 | xargs -0 rm -f



HTH, 2ri
-- 
Help securing email, spread GPG, clearsign all mail. http://www.gnupg.org
.
					/\ .__|_|_    ._ |/ _ ._._  
				       /--\|  |_| ||_||  |\(_)| | |

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 140 bytes --]

_______________________________________________
autofs mailing list
autofs@linux.kernel.org
http://linux.kernel.org/mailman/listinfo/autofs

             reply	other threads:[~2004-09-04 20:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-04 20:06 Arthur Korn [this message]
2004-09-05  2:35 ` Debian diff remaining in autofs 4.1.3 raven
2004-09-05 11:40   ` Arthur Korn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040904200654.GA26488@turing \
    --to=arthur@korn.ch \
    --cc=autofs@linux.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.