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]
