[arch-commits] Commit in davfs2/trunk (3 files)

Thomas Bächler thomas at nymeria.archlinux.org
Mon Jan 13 22:05:25 UTC 2014


    Date: Monday, January 13, 2014 @ 23:05:25
  Author: thomas
Revision: 203670

upgpkg: davfs2 1.4.7-3: Fix FS#37002, make davfs2 build again

Added:
  davfs2/trunk/davfs2-1.4.7-fix-neon-version-check.patch
  davfs2/trunk/davfs2-1.4.7-system.diff
Modified:
  davfs2/trunk/PKGBUILD

-------------------------------------------+
 PKGBUILD                                  |   22 +++-
 davfs2-1.4.7-fix-neon-version-check.patch |   12 ++
 davfs2-1.4.7-system.diff                  |  150 ++++++++++++++++++++++++++++
 3 files changed, 180 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2014-01-13 20:48:15 UTC (rev 203669)
+++ PKGBUILD	2014-01-13 22:05:25 UTC (rev 203670)
@@ -2,7 +2,7 @@
 # Maintainer: Thomas Baechler <thomas at archlinux.org>
 pkgname=davfs2
 pkgver=1.4.7
-pkgrel=2
+pkgrel=3
 pkgdesc="File system driver that allows you to mount a WebDAV folder"
 arch=(i686 x86_64)
 url="http://savannah.nongnu.org/projects/davfs2"
@@ -9,9 +9,22 @@
 license=('GPL')
 depends=('neon')
 backup=(etc/davfs2/davfs2.conf etc/davfs2/secrets)
-source=(http://mirrors.zerg.biz/nongnu/davfs2/${pkgname}-${pkgver}.tar.gz)
-sha256sums=('50c0ee2a12e8d09fc6a852d32bdfebb1f784939433a85f05254bc7ef28cff044')
+source=(http://mirrors.zerg.biz/nongnu/davfs2/${pkgname}-${pkgver}.tar.gz
+        davfs2-1.4.7-system.diff
+        davfs2-1.4.7-fix-neon-version-check.patch)
+sha256sums=('50c0ee2a12e8d09fc6a852d32bdfebb1f784939433a85f05254bc7ef28cff044'
+            '1d7e921da5edf07bddbd2bfbbf5010a690b4d47166a86ab5abaa6de4dc82125e'
+            'd637ccfcac85bf642083525018ca6799754b3728766483a616de27213318c1a1')
 
+prepare() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -p1 -i "${srcdir}"/davfs2-1.4.7-system.diff
+  # Some autotools files are missing, so autoreconf fails!
+  # Running autoconf may fail here, it does work for now
+  patch -p1 -i "${srcdir}"/davfs2-1.4.7-fix-neon-version-check.patch
+  autoconf  
+}
+
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   dav_user=nobody dav_group=network ./configure --prefix=/usr --sbindir=/usr/bin --sysconfdir=/etc --disable-debug
@@ -22,6 +35,7 @@
   cd "${srcdir}/${pkgname}-${pkgver}"
   make DESTDIR="${pkgdir}" install
 
-  rm -rf ${pkgdir}/sbin
+  # This directory contains worthless symlinks
+  rm -r ${pkgdir}/sbin
   rm -f ${pkgdir}/usr/share/davfs2/{BUGS,COPYING,FAQ,NEWS,TODO,ChangeLog,GPL,README,THANKS}
 }

Added: davfs2-1.4.7-fix-neon-version-check.patch
===================================================================
--- davfs2-1.4.7-fix-neon-version-check.patch	                        (rev 0)
+++ davfs2-1.4.7-fix-neon-version-check.patch	2014-01-13 22:05:25 UTC (rev 203670)
@@ -0,0 +1,12 @@
+diff -Nur davfs2-1.4.7.orig/configure.ac davfs2-1.4.7/configure.ac
+--- davfs2-1.4.7.orig/configure.ac	2012-07-19 13:38:47.000000000 +0200
++++ davfs2-1.4.7/configure.ac	2014-01-13 23:00:15.021471570 +0100
+@@ -36,7 +36,7 @@
+ # Checks for libraries.
+ AM_GNU_GETTEXT_VERSION(0.14.4)
+ AM_GNU_GETTEXT([external])
+-NE_REQUIRE_VERSIONS([0], [25 26 27 28 29])
++NE_REQUIRE_VERSIONS([0], [25 26 27 28 29 30])
+ DAV_CHECK_NEON
+ 
+ # Checks for header files.

Added: davfs2-1.4.7-system.diff
===================================================================
--- davfs2-1.4.7-system.diff	                        (rev 0)
+++ davfs2-1.4.7-system.diff	2014-01-13 22:05:25 UTC (rev 203670)
@@ -0,0 +1,150 @@
+diff -ur davfs2-1.4.7/ChangeLog davfs2-1.4.7.new/ChangeLog
+--- davfs2-1.4.7/ChangeLog	2012-07-19 13:37:52.000000000 +0200
++++ davfs2-1.4.7.new/ChangeLog	2013-09-15 10:19:12.000000000 +0200
+@@ -1,6 +1,11 @@
+ ChangeLog for davfs2
+ --------------------
+ 
++2013-09-08 Werner Baumann (werner.baumann at onlinehome.de)
++    * kernel_interface.c, mount_davfs.c:
++      Don't create /dev/coda and /dev/fuse.
++      Remove insecure calls of system().
++
+ 2012-07-19 Werner Baumann (werner.baumann at onlinehome.de)
+     * Release version 1.4.7.
+ 
+diff -ur davfs2-1.4.7/src/kernel_interface.c davfs2-1.4.7.new/src/kernel_interface.c
+--- davfs2-1.4.7/src/kernel_interface.c	2012-07-19 12:58:48.000000000 +0200
++++ davfs2-1.4.7.new/src/kernel_interface.c	2013-09-15 10:15:07.000000000 +0200
+@@ -167,29 +167,6 @@
+         ++minor;
+     }
+ 
+-    if (*dev <= 0 && system("/sbin/modprobe coda &>/dev/null") == 0) {
+-        minor = 0;
+-        while (*dev <= 0 && minor < MAX_CODADEVS) {
+-            char *path;
+-            if (asprintf(&path, "%s/%s%i",
+-                         DAV_DEV_DIR, CODA_DEV_NAME, minor) < 0)
+-                abort();
+-            *dev = open(path, O_RDWR | O_NONBLOCK);
+-            if (*dev <= 0) {
+-                if (mknod(path, S_IFCHR, makedev(CODA_MAJOR, minor)) == 0) {
+-                    if (chown(path, 0, 0) == 0
+-                            && chmod(path, S_IRUSR | S_IWUSR) == 0) {
+-                        *dev = open(path, O_RDWR | O_NONBLOCK);
+-                    } else {
+-                        remove(path);
+-                    }
+-                }
+-            }
+-            free(path);
+-            ++minor;
+-        }
+-    }
+-
+     if (*dev <= 0) {
+         error(0, 0, _("no free coda device to mount"));
+         return -1;
+@@ -225,20 +202,6 @@
+             abort();
+ 
+     *dev = open(path, O_RDWR | O_NONBLOCK);
+-    if (*dev <= 0 && system("/sbin/modprobe fuse &>/dev/null") == 0) {
+-        *dev = open(path, O_RDWR | O_NONBLOCK);
+-    }
+-    if (*dev <= 0) {
+-        if (mknod(path, S_IFCHR, makedev(FUSE_MAJOR, FUSE_MINOR)) == 0) {
+-             if (chown(path, 0, 0) == 0
+-                    && chmod(path, S_IRUSR | S_IWUSR) == 0) {
+-                *dev = open(path, O_RDWR | O_NONBLOCK);
+-            } else {
+-                remove(path);
+-            }
+-        }
+-    }
+-
+     free(path);
+     if (*dev <= 0) {
+         error(0, 0, _("can't open fuse device"));
+diff -ur davfs2-1.4.7/src/mount_davfs.c davfs2-1.4.7.new/src/mount_davfs.c
+--- davfs2-1.4.7/src/mount_davfs.c	2012-07-19 13:35:11.000000000 +0200
++++ davfs2-1.4.7.new/src/mount_davfs.c	2013-09-15 10:15:22.000000000 +0200
+@@ -170,6 +170,9 @@
+ static int
+ arg_to_int(const char *arg, int base, const char *opt);
+ 
++static void
++cp_file(const char *src, const char *dest);
++
+ static int
+ debug_opts(const char *s);
+ 
+@@ -530,10 +533,7 @@
+             char *file_name = ne_concat(path, "/", DAV_CONFIG, NULL);
+             if (access(file_name, F_OK) != 0) {
+                 char *template = ne_concat(DAV_DATA_DIR, "/", DAV_CONFIG, NULL);
+-                char *command = ne_concat("cp ", template, " ", file_name,
+-                                          NULL);
+-                if (system(command) != 0);
+-                free(command);
++                cp_file(template, file_name);
+                 free(template);
+             }
+             free(file_name);
+@@ -542,11 +542,7 @@
+             if (access(file_name, F_OK) != 0) {
+                 char *template = ne_concat(DAV_DATA_DIR, "/", DAV_SECRETS,
+                                            NULL);
+-                char *command = ne_concat("cp ", template, " ", file_name,
+-                                          NULL);
+-                if (system(command) == 0)
+-                    chmod(file_name, S_IRUSR | S_IWUSR);
+-                free(command);
++                cp_file(template, file_name);
+                 free(template);
+             }
+             free(file_name);
+@@ -1304,6 +1300,7 @@
+    opt    : name of the option, arg belongs to. Used in the error message.
+    return value: the value of the integer number in arg */
+ static int
++
+ arg_to_int(const char *arg, int base, const char *opt)
+ {
+     char *tail = NULL;
+@@ -1325,6 +1322,34 @@
+ }
+ 
+ 
++/* Creates a copy of src with name dest. */
++static void
++cp_file(const char *src, const char *dest)
++{
++    FILE *in = fopen(src, "r");
++    if (!in)
++        error(EXIT_FAILURE, errno, _("can't open file %s"), src);
++
++    FILE *out = fopen(dest, "w");
++    if (!out)
++        error(EXIT_FAILURE, errno, _("can't open file %s"), dest);
++
++    size_t n = 0;
++    char *line = NULL;
++    int length = getline(&line, &n, in);
++    while (length > 0) {
++        if (fputs(line, out) == EOF) 
++            error(EXIT_FAILURE, errno, _("error writing to file %s"), dest);
++        length = getline(&line, &n, in);
++    }
++
++    if (line)
++        free(line);
++    fclose(out);
++    fclose(in);
++}
++
++
+ /* Converts a debug option string s into numerical value. If s is not a
+    valid debug option, it returns 0. */
+ static int




More information about the arch-commits mailing list