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
Index: Makefile
===================================================================
--- Makefile    (revision 320195)
+++ Makefile    (working copy)
@@ -14,7 +14,7 @@
 MAINTAINER=    g...@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
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to