19702624 Update Midnight Commander s11-update
authorMilan Cermak <Milan.Cermak@oracle.com>
Tue, 27 Jan 2015 11:02:10 +0100
branchs11-update
changeset 3691 baec2c9153f9
parent 3683 7933c1b5b4f7
child 3696 fbfdc5cc094f
19702624 Update Midnight Commander
components/mc/Makefile
components/mc/patches/infopanel-cant-statvfs.patch
components/mc/patches/infopanel-follow-symlinks.patch
--- a/components/mc/Makefile	Sun Jan 25 17:21:19 2015 -0800
+++ b/components/mc/Makefile	Tue Jan 27 11:02:10 2015 +0100
@@ -20,22 +20,22 @@
 #
 
 #
-# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mc
-COMPONENT_VERSION=	4.8.8
+COMPONENT_VERSION=	4.8.13
 COMPONENT_PROJECT_URL=	http://www.midnight-commander.org/
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:7b5e6f90e6709d1c1bcb4a2bf6d2a62b9494adef3ff4325ffdb3551c29e42a1c
+    sha256:22e1b809edba957eb9a392138bf87fea3877f7ca0b7463b7cc2eb94afa6f3e49
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)downloads/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/mc
 
-TPNO=			13150
+TPNO=			20604
 
 include ../../make-rules/prep.mk
 include ../../make-rules/configure.mk
@@ -53,6 +53,8 @@
 CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
 
 # common targets
+configure:	$(CONFIGURE_64)
+
 build:		$(BUILD_64)
 
 install:	$(INSTALL_64)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/mc/patches/infopanel-cant-statvfs.patch	Tue Jan 27 11:02:10 2015 +0100
@@ -0,0 +1,29 @@
+Upstream bugId: #3277
+Synopsis: Info panel can't obtain file system statistics
+Bug record: https://www.midnight-commander.org/ticket/3277
+
+diff -Naur mc-4.8.13.old/src/filemanager/mountlist.c mc-4.8.13.new/src/filemanager/mountlist.c
+--- mc-4.8.13.old/src/filemanager/mountlist.c	2014-09-02 11:23:58.000000000 +0200
++++ mc-4.8.13.new/src/filemanager/mountlist.c	2014-09-26 17:07:08.135044849 +0200
+@@ -999,9 +999,9 @@
+         char *table = MNTTAB;
+         FILE *fp;
+         int ret;
+-        int lockfd;
+ 
+ #if defined F_RDLCK && defined F_SETLKW
++        int lockfd;
+         /* MNTTAB_LOCK is a macro name of our own invention; it's not present in
+            e.g. Solaris 2.6.  If the SVR4 folks ever define a macro
+            for this file name, we should use their macro name instead.
+@@ -1056,8 +1056,10 @@
+             ret = fclose (fp) == EOF ? errno : 0 < ret ? 0 : -1;
+         }
+ 
++#if defined F_RDLCK && defined F_SETLKW
+         if (lockfd >= 0 && close (lockfd) != 0)
+             ret = errno;
++#endif
+ 
+         if (ret >= 0)
+         {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/mc/patches/infopanel-follow-symlinks.patch	Tue Jan 27 11:02:10 2015 +0100
@@ -0,0 +1,53 @@
+Upstream bugID: #3278
+Synopsis: Info panel should follow symlinks
+Bug record: https://www.midnight-commander.org/ticket/3278
+
+diff -Naur mc-4.8.13.old/src/filemanager/mountlist.c mc-4.8.13.new/src/filemanager/mountlist.c
+--- mc-4.8.13.old/src/filemanager/mountlist.c	2014-09-02 11:23:58.000000000 +0200
++++ mc-4.8.13.new/src/filemanager/mountlist.c	2014-09-26 17:07:08.135044849 +0200
+@@ -1598,18 +1600,22 @@
+ my_statfs (struct my_statfs *myfs_stats, const char *path)
+ {
+ #ifdef HAVE_INFOMOUNT_LIST
++    const char *rpath;
+     size_t len = 0;
+     struct mount_entry *entry = NULL;
+     struct mount_entry *temp = mc_mount_list;
+     struct fs_usage fs_use;
+ 
++    if ((rpath = realpath(path, NULL)) == NULL)
++        rpath = path;
++
+     while (temp)
+     {
+         size_t i;
+ 
+         i = strlen (temp->me_mountdir);
+-        if (i > len && (strncmp (path, temp->me_mountdir, i) == 0))
+-            if (!entry || (path[i] == PATH_SEP || path[i] == '\0'))
++        if (i > len && (strncmp (rpath, temp->me_mountdir, i) == 0))
++            if (!entry || (rpath[i] == PATH_SEP || rpath[i] == '\0'))
+             {
+                 len = i;
+                 entry = temp;
+@@ -1620,7 +1626,7 @@
+     if (entry)
+     {
+         memset (&fs_use, 0, sizeof (struct fs_usage));
+-        get_fs_usage (entry->me_mountdir, NULL, &fs_use);
++        get_fs_usage (rpath, NULL, &fs_use);
+ 
+         myfs_stats->type = entry->me_dev;
+         myfs_stats->typename = entry->me_type;
+@@ -1672,6 +1678,11 @@
+         myfs_stats->nfree = 0;
+         myfs_stats->nodes = 0;
+     }
++
++#ifdef HAVE_INFOMOUNT_LIST
++    if (rpath != path)
++        free((void *) rpath);
++#endif /* HAVE_INFOMOUNT_LIST */
+ }
+ 
+ /* --------------------------------------------------------------------------------------------- */