Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 08 Jun 2013 15:42:23 +1000
From:      Kubilay Kocak <koobs.freebsd@gmail.com>
To:        Janet Sullivan <janets@nairial.net>
Cc:        "ports@freebsd.org" <ports@freebsd.org>
Subject:   Re: REWARD for working pam_mount
Message-ID:  <51B2C43F.5010300@FreeBSD.org>
In-Reply-To: <0a9ae9e0df704d13b643ee26d487e73a@BY2PR07MB043.namprd07.prod.outlook.com>
References:  <0a9ae9e0df704d13b643ee26d487e73a@BY2PR07MB043.namprd07.prod.outlook.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------050409030706090702020605
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

On 8/06/2013 1:57 PM, Janet Sullivan wrote:
> The /usr/ports/sysutils/pam_mount port is broken, because it's
> expecting an older version of libHX.   I'd really like to have a
> working pam_mount, and am willing to paypal US $50 over to the first
> person who gets it working.   I'm not subscribed to the list, so
> please email me directly to claim the prize.

Janet,

Your offer is commendable but unnecessary :)

Try this patch I just created (cherry picked from upstream), and let me
know how it goes. You'll want to apply it to the pam_mount port directory.

There's also something you can do to ensure pam_mount will work going
forward:

I had to backport the fix because the new pam_mount 2.13 version
requires libmount. Let upstream know that FreeBSD doesn't have libmount,
and request they make it optional and configurable (--without-libmount
configure option for example), even if it disables certain functionality.

If it works for you, let me know so I can commit the change, and feel
free to consider donating to the FreeBSD Foundation instead

Koobs

--------------050409030706090702020605
Content-Type: text/plain; charset=windows-1252;
 name="pam_mount-fix-libHX.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="pam_mount-fix-libHX.patch"

Index: Makefile
===================================================================
--- Makefile	(revision 320195)
+++ Makefile	(working copy)
@@ -14,7 +14,7 @@
 MAINTAINER=	gahr@FreeBSD.org
 COMMENT=	A PAM that can mount volumes for a user session
 
-LIB_DEPENDS=	HX.27:${PORTSDIR}/lang/libhx
+LIB_DEPENDS=	HX:${PORTSDIR}/lang/libhx
 
 USE_GNOME=	pkgconfig libxml2
 USE_PERL5=	yes
Index: files/patch-commit335500
===================================================================
--- files/patch-commit335500	(revision 0)
+++ files/patch-commit335500	(working copy)
@@ -0,0 +1,144 @@
+# Patch for commit 33550036cb0c9311c9dc4da9b3b359435319420e (pam-mount)
+# Log: src: update for libHX 3.12
+# Authored by: Jan Engelhardt 2011-12-02
+
+--- ./configure.ac.orig	2011-10-06 22:48:08.000000000 +1100
++++ ./configure.ac	2013-06-08 14:52:22.855624000 +1000
+@@ -63,7 +63,7 @@
+ AM_CONDITIONAL([HAVE_MDIO], [test "x$ac_cv_header_sys_mdioctl_h" = "xyes"])
+ AM_CONDITIONAL([HAVE_VND], [test "x$ac_cv_header_dev_vndvar_h" = "xyes"])
+ 
+-PKG_CHECK_MODULES([libHX], [libHX >= 3.10.1])
++PKG_CHECK_MODULES([libHX], [libHX >= 3.12])
+ PKG_CHECK_MODULES([libxml], [libxml-2.0 >= 2.6])
+ 
+ AC_ARG_WITH(
+--- ./src/autoloop.c.orig	2011-10-06 22:48:08.000000000 +1100
++++ ./src/autoloop.c		2013-06-08 14:45:47.846247000 +1000
+@@ -54,7 +54,8 @@
+ 		HXOPT_AUTOHELP,
+ 		HXOPT_TABLEEND,
+ 	};
+-	if (HX_getopt(options_table, argc, argv, HXOPT_USAGEONERR) <= 0)
++	if (HX_getopt(options_table, argc, argv, HXOPT_USAGEONERR) !=
++	    HXOPT_ERR_SUCCESS)
+ 		return false;
+ 	if (*argc != 2) {
+ 		fprintf(stderr, "Usage: %s file\n", HX_basename(**argv));
+--- ./src/ehd.c.orig	2011-10-06 22:48:08.000000000 +1100
++++ ./src/ehd.c		2013-06-08 14:46:27.566540000 +1000
+@@ -526,7 +526,8 @@
+ 		HXOPT_TABLEEND,
+ 	};
+ 
+-	if (HX_getopt(options_table, argc, argv, HXOPT_USAGEONERR) <= 0)
++	if (HX_getopt(options_table, argc, argv, HXOPT_USAGEONERR) !=
++	    HXOPT_ERR_SUCCESS)
+ 		return false;
+ 
+ 	pg->interactive = isatty(fileno(stdin));
+--- ./src/misc.c.orig	2011-10-06 22:48:08.000000000 +1100
++++ ./src/misc.c	2013-06-08 14:47:27.515576000 +1000
+@@ -159,7 +159,7 @@
+ {
+ 	char *filled;
+ 
+-	if (HXformat2_aprintf(vinfo, &filled, arg) == 0)
++	if (HXformat_aprintf(vinfo, &filled, arg) == 0)
+ 		/*
+ 		 * This case may happen with e.g. %(before="-o" OPTIONS) where
+ 		 * OPTIONS is empty. And options expanding to nothing are
+--- ./src/mount.c.orig	2011-10-06 22:48:08.000000000 +1100
++++ ./src/mount.c	2013-06-08 14:47:54.655610000 +1000
+@@ -487,7 +487,7 @@
+ 	string = HXmc_meminit(NULL, 0);
+ 
+ 	for (i = config->command[CMD_FSCK]->first; i != NULL; i = i->next) {
+-		if (HXformat2_aprintf(vinfo, &current, i->ptr) > 0) {
++		if (HXformat_aprintf(vinfo, &current, i->ptr) > 0) {
+ 			HXmc_strcat(&string, current);
+ 			HXmc_strcat(&string, " ");
+ 		}
+--- ./src/mtab.c.orig	2011-10-06 22:48:08.000000000 +1100
++++ ./src/mtab.c	2013-06-08 14:48:18.965526000 +1000
+@@ -138,7 +138,7 @@
+ 			l0g("HX_dirname: %s\n", strerror(errno));
+ 			return -errno;
+ 		}
+-		ret = HX_mkdir(dirname);
++		ret = HX_mkdir(dirname, S_IRUGO | S_IXUGO | S_IWUSR);
+ 		free(dirname);
+ 		if (ret < 0) {
+ 			l0g("HX_mkdir: %s\n", strerror(-ret));
+--- ./src/mtcrypt.c.orig	2011-10-06 22:48:08.000000000 +1100
++++ ./src/mtcrypt.c		2013-06-08 14:49:23.036264000 +1000
+@@ -185,7 +185,8 @@
+ 	bool kfpt;
+ 	int ret;
+ 
+-	if (HX_getopt(options_table, argc, argv, HXOPT_USAGEONERR) <= 0)
++	if (HX_getopt(options_table, argc, argv, HXOPT_USAGEONERR) !=
++	    HXOPT_ERR_SUCCESS)
+ 		return false;
+ 
+ 	pmtlog_path[PMTLOG_DBG][PMTLOG_STDERR] = Debug;
+@@ -508,7 +509,8 @@
+ 	};
+ 	int ret;
+ 
+-	if (HX_getopt(options_table, argc, argv, HXOPT_USAGEONERR) <= 0)
++	if (HX_getopt(options_table, argc, argv, HXOPT_USAGEONERR) !=
++	    HXOPT_ERR_SUCCESS)
+ 		return false;
+ 
+ 	pmtlog_path[PMTLOG_DBG][PMTLOG_STDERR] = Debug;
+--- ./src/pam_mount.h	2011-10-06 22:48:08.000000000 +1100
++++ ./src/pam_mount.h	2013-06-08 14:50:03.445549000 +1000
+@@ -15,12 +15,6 @@
+ #	define EXPORT_SYMBOL
+ #endif
+ 
+-#ifndef S_IRXG
+-#	define S_IRXG (S_IRGRP | S_IXGRP)
+-#endif
+-#ifndef S_IRXO
+-#	define S_IRXO (S_IROTH | S_IXOTH)
+-#endif
+ #define sizeof_z(x) (sizeof(x) - 1)
+ 
+ /*
+--- ./src/pmvarrun.c.orig	2011-10-06 22:48:08.000000000 +1100
++++ ./src/pmvarrun.c		2013-06-08 14:51:23.506567000 +1000
+@@ -296,10 +296,11 @@
+  */
+ static int create_var_run(void)
+ {
++	static const unsigned int mode = S_IRUGO | S_IXUGO | S_IWUSR;
+ 	int ret;
+ 
+ 	w4rn("creating " VAR_RUN_PMT);
+-	if (HX_mkdir(VAR_RUN_PMT) < 0) {
++	if (HX_mkdir(VAR_RUN_PMT, mode) < 0) {
+ 		ret = -errno;
+ 		l0g("unable to create " VAR_RUN_PMT ": %s\n", strerror(errno));
+ 		return ret;
+@@ -314,7 +315,7 @@
+ 	 * 0755: `su` creates file group owned by user and then releases root
+ 	 * permissions. User needs to be able to access file on logout.
+ 	 */
+-	if (chmod(VAR_RUN_PMT, S_IRWXU | S_IRXG | S_IRXO) < 0) {
++	if (chmod(VAR_RUN_PMT, mode) < 0) {
+ 		ret = -errno;
+ 		l0g("unable to chmod " VAR_RUN_PMT ": %s\n", strerror(errno));
+ 		return ret;
+--- ./src/rdconf1.c.orig	2011-10-06 22:48:08.000000000 +1100
++++ ./src/rdconf1.c		2013-06-08 14:51:47.165542000 +1000
+@@ -126,7 +126,7 @@
+ 
+ 	if (*dest_pptr == NULL)
+ 		return true;
+-	HXformat2_aprintf(vinfo, &tmp, *dest_pptr);
++	HXformat_aprintf(vinfo, &tmp, *dest_pptr);
+ 	*dest_pptr = xstrdup(tmp);
+ 	HXmc_free(tmp);
+ 	return true;

Property changes on: files/patch-commit335500
___________________________________________________________________
Added: fbsd:nokeywords
## -0,0 +1 ##
+yes
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property

--------------050409030706090702020605--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51B2C43F.5010300>