svn commit: r351236 - in head/sysutils/fusefs-afuse: . files
Alex Kozlov
ak at FreeBSD.org
Sun Apr 13 18:48:53 UTC 2014
Author: ak
Date: Sun Apr 13 18:48:51 2014
New Revision: 351236
URL: http://svnweb.freebsd.org/changeset/ports/351236
QAT: https://qat.redports.org/buildarchive/r351236/
Log:
- Update to 0.4.1
- Support STAGEDIR
- Take maintainership
Modified:
head/sysutils/fusefs-afuse/Makefile
head/sysutils/fusefs-afuse/distinfo
head/sysutils/fusefs-afuse/files/patch-src_afuse.c
head/sysutils/fusefs-afuse/pkg-descr
Modified: head/sysutils/fusefs-afuse/Makefile
==============================================================================
--- head/sysutils/fusefs-afuse/Makefile Sun Apr 13 18:10:50 2014 (r351235)
+++ head/sysutils/fusefs-afuse/Makefile Sun Apr 13 18:48:51 2014 (r351236)
@@ -2,12 +2,12 @@
# $FreeBSD$
PORTNAME= afuse
-PORTVERSION= 0.2
+PORTVERSION= 0.4.1
CATEGORIES= sysutils
-MASTER_SITES= SF
+MASTER_SITES= ${MASTER_SITE_GOOGLE_CODE}
PKGNAMEPREFIX= fusefs-
-MAINTAINER= ports at FreeBSD.org
+MAINTAINER= ak at FreeBSD.org
COMMENT= File system automounting implemented in user-space using FUSE
LICENSE= GPLv2
@@ -15,21 +15,16 @@ LICENSE= GPLv2
USES= fuse pkgconfig
GNU_CONFIGURE= yes
+SUB_FILES= pkg-message
+
PORTDOCS= AUTHORS ChangeLog README
-PLIST_FILES= bin/${PORTNAME}
-MAN1= afuse.1
-OPTIONS_DEFINE= DOCS
+PLIST_FILES= bin/${PORTNAME} man/man1/afuse.1.gz
-NO_STAGE= yes
-.include <bsd.port.options.mk>
+OPTIONS_DEFINE= DOCS
post-install:
- ${INSTALL_MAN} ${WRKSRC}/${MAN1} ${MAN1PREFIX}/man/man1
-.if ${PORT_OPTIONS:MDOCS}
- @${MKDIR} ${DOCSDIR}
- ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${DOCSDIR}
- @${CAT} ${PKGMESSAGE}
-SUB_FILES= pkg-message
-.endif
+ ${INSTALL_MAN} ${WRKSRC}/afuse.1 ${STAGEDIR}${MAN1PREFIX}/man/man1
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}
.include <bsd.port.mk>
Modified: head/sysutils/fusefs-afuse/distinfo
==============================================================================
--- head/sysutils/fusefs-afuse/distinfo Sun Apr 13 18:10:50 2014 (r351235)
+++ head/sysutils/fusefs-afuse/distinfo Sun Apr 13 18:48:51 2014 (r351236)
@@ -1,2 +1,2 @@
-SHA256 (afuse-0.2.tar.gz) = 92faa853bfeaa1446b80edbc6bb29a29f8dcf07149958be5eafc2da0679342d2
-SIZE (afuse-0.2.tar.gz) = 100568
+SHA256 (afuse-0.4.1.tar.gz) = c6e0555a65d42d3782e0734198bbebd22486386e29cb00047bc43c3eb726dca8
+SIZE (afuse-0.4.1.tar.gz) = 121957
Modified: head/sysutils/fusefs-afuse/files/patch-src_afuse.c
==============================================================================
--- head/sysutils/fusefs-afuse/files/patch-src_afuse.c Sun Apr 13 18:10:50 2014 (r351235)
+++ head/sysutils/fusefs-afuse/files/patch-src_afuse.c Sun Apr 13 18:48:51 2014 (r351236)
@@ -1,229 +1,10 @@
---- src/afuse.c.orig 2009-03-03 13:17:22.000000000 +0900
-+++ src/afuse.c 2009-03-03 13:17:27.000000000 +0900
-@@ -36,7 +36,6 @@
+Index: src/afuse.c
+@@ -29,7 +29,7 @@
#include <string.h>
#include <stddef.h>
#include <unistd.h>
-#include <alloca.h>
++//#include <alloca.h>
#include <fcntl.h>
#include <dirent.h>
#include <errno.h>
-@@ -280,14 +280,19 @@
- }
-
-
--// !!FIXME!! allow escaping of %'s
- // Note: this method strips out quotes and applies them itself as should be appropriate
--char *expand_template(const char *template, const char *mount_point, const char *root_name)
-+bool run_template(const char *template, const char *mount_point, const char *root_name)
- {
- int len = 0;
-+ int nargs = 1;
- int i;
-- char *expanded_name;
-- char *expanded_name_start;
-+ char *buf;
-+ char *p;
-+ char **args;
-+ char **arg;
-+ bool quote = false;
-+ pid_t pid;
-+ int status;
-
- // calculate length
- for(i = 0; template[i]; i++)
-@@ -295,53 +300,100 @@
- switch(template[i + 1])
- {
- case 'm':
-- len += strlen(mount_point) + 2;
-+ len += strlen(mount_point);
- i++;
- break;
- case 'r':
-- len += strlen(root_name) + 2;
-+ len += strlen(root_name);
-+ i++;
-+ break;
-+ case '%':
-+ len++;
- i++;
- break;
- }
-- } else if(template[i] != '"')
-+ } else if(template[i] == ' ' && !quote) {
-+ len++;
-+ nargs++;
-+ } else if(template[i] == '"')
-+ quote = !quote;
-+ else if(template[i] == '\\' && template[i + 1])
-+ len++, i++;
-+ else
- len++;
-
-- expanded_name_start = expanded_name = my_malloc(len + 1);
-+ buf = my_malloc(len + 1);
-+ args = my_malloc((nargs + 1) * sizeof(*args));
-+
-+ p = buf;
-+ arg = args;
-+ *arg++ = p;
-
- for(i = 0; template[i]; i++)
- if(template[i] == '%') {
-- int j = 0;
- switch(template[i + 1])
- {
- case 'm':
-- *expanded_name++ = '"';
-- while(mount_point[j])
-- *expanded_name++ = mount_point[j++];
-- *expanded_name++ = '"';
-+ strcpy(p, mount_point);
-+ p += strlen(mount_point);
- i++;
- break;
- case 'r':
-- *expanded_name++ = '"';
-- while(root_name[j])
-- *expanded_name++ = root_name[j++];
-- *expanded_name++ = '"';
-+ strcpy(p, root_name);
-+ p += strlen(root_name);
-+ i++;
-+ break;
-+ case '%':
-+ *p++ = '%';
- i++;
- break;
- }
-- } else if(template[i] != '"')
-- *expanded_name++ = template[i];
--
-- *expanded_name = '\0';
--
-- return expanded_name_start;
-+ } else if(template[i] == ' ' && !quote) {
-+ *p++ = '\0';
-+ *arg++ = p;
-+ } else if(template[i] == '"')
-+ quote = !quote;
-+ else if(template[i] == '\\' && template[i + 1])
-+ *p++ = template[++i];
-+ else
-+ *p++ = template[i];
-+
-+ *p = '\0';
-+ *arg = NULL;
-+
-+ pid = fork();
-+ if(pid == -1) {
-+ fprintf(stderr, "Failed to fork (%s)\n", strerror(errno));
-+ free(args);
-+ free(buf);
-+ return false;
-+ }
-+ if(pid == 0) {
-+ execvp(args[0], args);
-+ abort();
-+ }
-+ pid = waitpid(pid, &status, 0);
-+ if(pid == -1) {
-+ fprintf(stderr, "Failed to waitpid (%s)\n", strerror(errno));
-+ free(args);
-+ free(buf);
-+ return false;
-+ }
-+ if(!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
-+ fprintf(stderr, "Failed to invoke command: %s\n", args[0]);
-+ free(args);
-+ free(buf);
-+ return false;
-+ }
-+ free(args);
-+ free(buf);
-+ return true;
- }
-
- mount_list_t *do_mount(const char *root_name)
- {
- char *mount_point;
-- char *mount_command;
- mount_list_t *mount;
-- int sysret;
-
- fprintf(stderr, "Mounting: %s\n", root_name);
-
-@@ -351,57 +403,33 @@
- return NULL;
- }
-
-- mount_command = expand_template(user_options.mount_command_template,
-- mount_point, root_name);
-- sysret = system(mount_command);
--
-- fprintf(stderr, "sysret: %.8x\n", sysret);
--
-- if(sysret) {
-- fprintf(stderr, "Failed to invoke mount command: '%s' (%s)\n",
-- mount_command, sysret != -1 ?
-- "Error executing mount" :
-- strerror(errno));
--
-+ if(!run_template(user_options.mount_command_template,
-+ mount_point, root_name)) {
- // remove the now unused directory
- if( rmdir(mount_point) == -1 )
- fprintf(stderr, "Failed to remove mount point dir: %s (%s)",
- mount_point, strerror(errno));
-
-- free(mount_command);
- free(mount_point);
- return NULL;
- }
-
- mount = add_mount(root_name, mount_point);
--
-- free(mount_command);
- return mount;
- }
-
- int do_umount(mount_list_t *mount)
- {
-- char *unmount_command;
-- int sysret;
--
- fprintf(stderr, "Unmounting: %s\n", mount->root_name);
-
-- unmount_command = expand_template(user_options.unmount_command_template,
-- mount->mount_point, mount->root_name);
-- sysret = system(unmount_command);
-- if(sysret) {
-- fprintf(stderr, "Failed to invoke unmount command: '%s' (%s)\n",
-- unmount_command, sysret != -1 ?
-- "Error executing mount" :
-- strerror(errno));
-- /* Still unmount anyway */
-- }
-+ run_template(user_options.unmount_command_template,
-+ mount->mount_point, mount->root_name);
-+ /* Still unmount anyway */
-
- if( rmdir(mount->mount_point) == -1 )
- fprintf(stderr, "Failed to remove mount point dir: %s (%s)",
- mount->mount_point, strerror(errno));
- remove_mount(mount);
-- free(unmount_command);
- return 1;
- }
-
-@@ -1504,7 +1504,8 @@
- fuse_opt_add_arg(&args, "-s");
-
- // Adjust user specified timeout from seconds to microseconds as required
-- user_options.auto_unmount_delay *= 1000000;
-+ if(user_options.auto_unmount_delay != UINT64_MAX)
-+ user_options.auto_unmount_delay *= 1000000;
-
- auto_unmount_ph_init(&auto_unmount_ph);
-
Modified: head/sysutils/fusefs-afuse/pkg-descr
==============================================================================
--- head/sysutils/fusefs-afuse/pkg-descr Sun Apr 13 18:10:50 2014 (r351235)
+++ head/sysutils/fusefs-afuse/pkg-descr Sun Apr 13 18:48:51 2014 (r351236)
@@ -4,7 +4,7 @@ be expected by an automounter; that is i
directories. If one of these virtual directories is accessed and is not
already automounted, afuse will attempt to mount a filesystem onto that
directory. If the mount succeeds the requested access proceeds as normal,
-otherwise it will fail with an error.
+otherwise it will fail with an error.
The advantage of using afuse over traditional automounters is that afuse
is designed to run entirely in user-space by individual users. This way an
More information about the svn-ports-all
mailing list