Hello community,

here is the log from the commit of package fsarchiver for openSUSE:Factory 
checked in at 2012-03-09 21:22:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fsarchiver (Old)
 and      /work/SRC/openSUSE:Factory/.fsarchiver.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fsarchiver", Maintainer is ""

Changes:
--------
--- /work/SRC/openSUSE:Factory/fsarchiver/fsarchiver.changes    2011-12-21 
10:00:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.fsarchiver.new/fsarchiver.changes       
2012-03-09 21:22:49.000000000 +0100
@@ -1,0 +2,8 @@
+Mon Mar  5 07:53:34 UTC 2012 - [email protected]
+
+- Update to 0.6.13.
+  + Fixed detection of the root filesystem using
+    "/proc/self/mountinfo" instead of "/proc/mounts".
+- Use pkgconfig(*) as build dependencies.
+
+-------------------------------------------------------------------

Old:
----
  fsarchiver-0.6.12.tar.gz

New:
----
  fsarchiver-0.6.13.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fsarchiver.spec ++++++
--- /var/tmp/diff_new_pack.sfZfYq/_old  2012-03-09 21:22:50.000000000 +0100
+++ /var/tmp/diff_new_pack.sfZfYq/_new  2012-03-09 21:22:50.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package fsarchiver
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,25 +16,23 @@
 #
 
 
-
 Name:           fsarchiver
-Version:        0.6.12
-Release:        1
-License:        GPL-2.0
+Version:        0.6.13
+Release:        0
 Summary:        Filesystem Archiver
-Url:            http://www.fsarchiver.org
+License:        GPL-2.0
 Group:          Productivity/Archiving/Backup
+Url:            http://www.fsarchiver.org
 Source0:        
http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
 Source1:        HOWTO
-BuildRequires:  e2fsprogs
 BuildRequires:  e2fsprogs-devel
 BuildRequires:  libattr-devel
-BuildRequires:  libbz2-devel
 BuildRequires:  libgcrypt-devel
 BuildRequires:  lzo-devel
 BuildRequires:  pkg-config
-BuildRequires:  xz-devel
-BuildRequires:  zlib-devel
+BuildRequires:  pkgconfig(bzip2)
+BuildRequires:  pkgconfig(liblzma)
+BuildRequires:  pkgconfig(zlib)
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description

++++++ fsarchiver-0.6.12.tar.gz -> fsarchiver-0.6.13.tar.gz ++++++
++++ 9178 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/fsarchiver-0.6.12/ChangeLog new/fsarchiver-0.6.13/ChangeLog
--- old/fsarchiver-0.6.12/ChangeLog     2010-12-25 11:13:08.000000000 +0100
+++ new/fsarchiver-0.6.13/ChangeLog     2012-03-04 10:40:05.000000000 +0100
@@ -1,5 +1,7 @@
 fsarchiver: Filesystem Archiver for Linux [http://www.fsarchiver.org]
 =====================================================================
+* 0.6.13 (2012-03-04):
+  - Fixed detection of the root filesystem using "/proc/self/mountinfo" 
instead of "/proc/mounts"
 * 0.6.12 (2010-12-25):
   - Fix: get correct mount info for root device when not listed in 
/proc/mounts (eg: missing "/dev/root")
 * 0.6.11 (2010-12-01):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/fsarchiver-0.6.12/config.h.in new/fsarchiver-0.6.13/config.h.in
--- old/fsarchiver-0.6.12/config.h.in   2010-12-25 11:24:38.000000000 +0100
+++ new/fsarchiver-0.6.13/config.h.in   2012-03-04 10:42:11.000000000 +0100
@@ -144,9 +144,6 @@
 /* Define to the one symbol short name of this package. */
 #undef PACKAGE_TARNAME
 
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/fsarchiver-0.6.12/configure.ac new/fsarchiver-0.6.13/configure.ac
--- old/fsarchiver-0.6.12/configure.ac  2010-12-25 11:15:57.000000000 +0100
+++ new/fsarchiver-0.6.13/configure.ac  2012-03-04 10:41:57.000000000 +0100
@@ -3,12 +3,12 @@
 
 AC_PREREQ(2.59)
 
-AC_INIT([fsarchiver], 0.6.12)
-AC_DEFINE([PACKAGE_RELDATE], "2010-12-25", [Define the date of the release])
+AC_INIT([fsarchiver], 0.6.13)
+AC_DEFINE([PACKAGE_RELDATE], "2012-03-04", [Define the date of the release])
 AC_DEFINE([PACKAGE_FILEFMT], "FsArCh_002", [Define the version of the file 
format])
 AC_DEFINE([PACKAGE_VERSION_A], 0, [Major version number])
 AC_DEFINE([PACKAGE_VERSION_B], 6, [Medium version number])
-AC_DEFINE([PACKAGE_VERSION_C], 12, [Minor version number])
+AC_DEFINE([PACKAGE_VERSION_C], 13, [Minor version number])
 AC_DEFINE([PACKAGE_VERSION_D], 0, [Patch version number])
 
 AC_CANONICAL_HOST([])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/fsarchiver-0.6.12/src/filesys.c new/fsarchiver-0.6.13/src/filesys.c
--- old/fsarchiver-0.6.12/src/filesys.c 2010-12-25 11:06:14.000000000 +0100
+++ new/fsarchiver-0.6.13/src/filesys.c 2012-03-04 10:39:47.000000000 +0100
@@ -20,10 +20,12 @@
 #endif
 
 #include <string.h>
+#include <stdlib.h>
 #include <sys/stat.h>
 #include <sys/vfs.h>
 #include <sys/utsname.h>
 #include <sys/mount.h>
+#include <sys/types.h>
 #include <errno.h>
 
 #include "fsarchiver.h"
@@ -144,7 +146,8 @@
     int devisroot=false;
     struct stat64 devstat;
     struct stat64 rootstat;
-    char delims[]=" \t\n";
+    long major, minor;
+    char delims[]=" \t\n:";
     struct utsname suname;
     char col_dev[128];
     char col_mnt[128];
@@ -163,7 +166,65 @@
     memset(mntbuf, 0, sizeof(mntbuf));
     memset(optbuf, 0, sizeof(optbuf));
 
-    // 1. workaround for systems not having the "/dev/root" node entry.
+    // ---- 1. attempt to find device in "/proc/self/mountinfo"
+    if ((stat64(devname, &devstat)==0) && 
((f=fopen("/proc/self/mountinfo","rb"))!=NULL))
+    {
+        msgprintf(MSG_DEBUG1, "device=[%s] has major=[%ld] and minor=[%ld]\n", 
devname, (long)major(devstat.st_rdev), (long)minor(devstat.st_rdev));
+
+        while(!feof(f))
+        {
+            if (stream_readline(f, line, 1024)>1)
+            {
+                result=strtok_r(line, delims, &saveptr);
+                major = -1; minor = -1;
+                col_dev[0]=col_mnt[0]=col_fs[0]=col_opt[0]=0;
+                for(i=0; result != NULL && i<=10; i++)
+                {
+                    switch (i)
+                    {
+                        case 2:
+                            major = atol(result);
+                            break;
+                        case 3:
+                            minor = atol(result);
+                            break;
+                        case 5:
+                            snprintf(col_mnt, sizeof(col_mnt), "%s", result);
+                            break;
+                        case 8:
+                            snprintf(col_fs, sizeof(col_fs), "%s", result);
+                            break;
+                        case 10:
+                            snprintf(col_opt, sizeof(col_opt), "%s", result);
+                            break;
+                    }
+                    result = strtok_r(NULL, delims, &saveptr);
+                }
+
+                msgprintf(MSG_DEBUG1, "mountinfo entry: major=[%ld] 
minor=[%ld] filesys=[%s] col_opt=[%s] col_mnt=[%s]\n", major, minor, col_fs, 
col_opt, col_mnt);
+
+                if ((major==major(devstat.st_rdev)) && 
(minor==minor(devstat.st_rdev)))
+                {
+                    if (generic_get_spacestats(devname, col_mnt, temp, 
sizeof(temp))==0)
+                    {
+                        msgprintf(MSG_DEBUG1, "found mountinfo entry for 
device=[%s]: mnt=[%s] fs=[%s] opt=[%s]\n", devname, col_mnt, col_fs, col_opt);
+                        *readwrite=generic_get_fsrwstatus(col_opt);
+                        snprintf(mntbuf, maxmntbuf, "%s", col_mnt);
+                        snprintf(optbuf, maxoptbuf, "%s", col_opt);
+                        snprintf(fsbuf, maxfsbuf, "%s", col_fs);
+                        fclose(f);
+                        return 0;
+                    }
+                }
+            }
+        }
+
+        fclose(f);
+    }
+
+    // ---- 2. if there is no /proc/self/mountinfo then use "/proc/mounts" 
instead
+
+    // workaround for systems not having the "/dev/root" node entry.
 
     // There are systems showing "/dev/root" in "/proc/mounts" instead
     // of the actual root partition such as "/dev/sda1".

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to