Toshaan Bharvani
5 months ago
commit
54b9e5b887
3 changed files with 624 additions and 0 deletions
@ -0,0 +1,302 @@ |
|||||||
|
From d7cba7410710cd3ec2c2d9fafd4d93437097f473 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Gao Xiang <hsiangkao@redhat.com> |
||||||
|
Date: Wed, 28 Sep 2022 15:10:52 -0400 |
||||||
|
Subject: [PATCH] xfsrestore: fix rootdir due to xfsdump bulkstat misuse |
||||||
|
|
||||||
|
If rootino is wrong and misspecified to a subdir inode #, |
||||||
|
the following assertion could be triggered: |
||||||
|
assert(ino != persp->p_rootino || hardh == persp->p_rooth); |
||||||
|
|
||||||
|
This patch adds a '-x' option (another awkward thing is that |
||||||
|
the codebase doesn't support long options) to address |
||||||
|
problamatic images by searching for the real dir, the reason |
||||||
|
that I don't enable it by default is that I'm not very confident |
||||||
|
with the xfsrestore codebase and xfsdump bulkstat issue will |
||||||
|
also be fixed immediately as well, so this function might be |
||||||
|
optional and only useful for pre-exist corrupted dumps. |
||||||
|
|
||||||
|
In details, my understanding of the original logic is |
||||||
|
1) xfsrestore will create a rootdir node_t (p_rooth); |
||||||
|
2) it will build the tree hierarchy from inomap and adopt |
||||||
|
the parent if needed (so inodes whose parent ino hasn't |
||||||
|
detected will be in the orphan dir, p_orphh); |
||||||
|
3) during this period, if ino == rootino and |
||||||
|
hardh != persp->p_rooth (IOWs, another node_t with |
||||||
|
the same ino # is created), that'd be definitely wrong. |
||||||
|
|
||||||
|
So the proposal fix is that |
||||||
|
- considering the xfsdump root ino # is a subdir inode, it'll |
||||||
|
trigger ino == rootino && hardh != persp->p_rooth condition; |
||||||
|
- so we log this node_t as persp->p_rooth rather than the |
||||||
|
initial rootdir node_t created in 1); |
||||||
|
- we also know that this node is actually a subdir, and after |
||||||
|
the whole inomap is scanned (IOWs, the tree is built), |
||||||
|
the real root dir will have the orphan dir parent p_orphh; |
||||||
|
- therefore, we walk up by the parent until some node_t has |
||||||
|
the p_orphh, so that's it. |
||||||
|
|
||||||
|
Cc: Donald Douwsma <ddouwsma@redhat.com> |
||||||
|
Signed-off-by: Gao Xiang <hsiangkao@redhat.com> |
||||||
|
Signed-off-by: Hironori Shiina <shiina.hironori@fujitsu.com> |
||||||
|
Reviwed-by: Eric Sandeen <sandeen@redhat.com> |
||||||
|
Signed-off-by: Carlos Maiolino <cem@kernel.org> |
||||||
|
Signed-off-by: Pavel Reichl <preichl@redhat.com> |
||||||
|
--- |
||||||
|
common/main.c | 1 + |
||||||
|
man/man8/xfsrestore.8 | 14 +++++++++ |
||||||
|
restore/content.c | 7 +++++ |
||||||
|
restore/getopt.h | 4 +-- |
||||||
|
restore/tree.c | 72 ++++++++++++++++++++++++++++++++++++++++--- |
||||||
|
restore/tree.h | 2 ++ |
||||||
|
6 files changed, 94 insertions(+), 6 deletions(-) |
||||||
|
|
||||||
|
diff --git a/common/main.c b/common/main.c |
||||||
|
index 1db07d4..6141ffb 100644 |
||||||
|
--- a/common/main.c |
||||||
|
+++ b/common/main.c |
||||||
|
@@ -988,6 +988,7 @@ usage(void) |
||||||
|
ULO(_("(contents only)"), GETOPT_TOC); |
||||||
|
ULO(_("<verbosity {silent, verbose, trace}>"), GETOPT_VERBOSITY); |
||||||
|
ULO(_("(use small tree window)"), GETOPT_SMALLWINDOW); |
||||||
|
+ ULO(_("(try to fix rootdir due to xfsdump issue)"),GETOPT_FIXROOTDIR); |
||||||
|
ULO(_("(don't restore extended file attributes)"), GETOPT_NOEXTATTR); |
||||||
|
ULO(_("(restore root dir owner/permissions)"), GETOPT_ROOTPERM); |
||||||
|
ULO(_("(restore DMAPI event settings)"), GETOPT_SETDM); |
||||||
|
diff --git a/man/man8/xfsrestore.8 b/man/man8/xfsrestore.8 |
||||||
|
index 60e4309..df7dde0 100644 |
||||||
|
--- a/man/man8/xfsrestore.8 |
||||||
|
+++ b/man/man8/xfsrestore.8 |
||||||
|
@@ -240,6 +240,20 @@ but does not create or modify any files or directories. |
||||||
|
It may be desirable to set the verbosity level to \f3silent\f1 |
||||||
|
when using this option. |
||||||
|
.TP 5 |
||||||
|
+.B \-x |
||||||
|
+This option may be useful to fix an issue which the files are restored |
||||||
|
+to orphanage directory because of xfsdump (v3.1.7 - v3.1.9) problem. |
||||||
|
+A normal dump cannot be restored with this option. This option works |
||||||
|
+only for a corrupted dump. |
||||||
|
+If a dump is created by problematic xfsdump (v3.1.7 - v3.1.9), you |
||||||
|
+should see the contents of the dump with \f3\-t\f1 option before |
||||||
|
+restoring. Then, if a file is placed to the orphanage directory, you need to |
||||||
|
+use this \f3\-x\f1 option to restore the dump. Otherwise, you can restore |
||||||
|
+the dump without this option. |
||||||
|
+ |
||||||
|
+In the cumulative mode, this option is required only for a base (level 0) |
||||||
|
+dump. You no longer need this option for level 1+ dumps. |
||||||
|
+.TP 5 |
||||||
|
\f3\-v\f1 \f2verbosity\f1 |
||||||
|
.\" set inter-paragraph distance to 0 |
||||||
|
.PD 0 |
||||||
|
diff --git a/restore/content.c b/restore/content.c |
||||||
|
index 8bb5fa4..488ae20 100644 |
||||||
|
--- a/restore/content.c |
||||||
|
+++ b/restore/content.c |
||||||
|
@@ -861,6 +861,7 @@ static int quotafilecheck(char *type, char *dstdir, char *quotafile); |
||||||
|
|
||||||
|
bool_t content_media_change_needed; |
||||||
|
bool_t restore_rootdir_permissions; |
||||||
|
+bool_t need_fixrootdir; |
||||||
|
char *media_change_alert_program = NULL; |
||||||
|
size_t perssz; |
||||||
|
|
||||||
|
@@ -958,6 +959,7 @@ content_init(int argc, char *argv[], size64_t vmsz) |
||||||
|
stsz = 0; |
||||||
|
interpr = BOOL_FALSE; |
||||||
|
restore_rootdir_permissions = BOOL_FALSE; |
||||||
|
+ need_fixrootdir = BOOL_FALSE; |
||||||
|
optind = 1; |
||||||
|
opterr = 0; |
||||||
|
while ((c = getopt(argc, argv, GETOPT_CMDSTRING)) != EOF) { |
||||||
|
@@ -1186,6 +1188,9 @@ content_init(int argc, char *argv[], size64_t vmsz) |
||||||
|
case GETOPT_FMT2COMPAT: |
||||||
|
tranp->t_truncategenpr = BOOL_TRUE; |
||||||
|
break; |
||||||
|
+ case GETOPT_FIXROOTDIR: |
||||||
|
+ need_fixrootdir = BOOL_TRUE; |
||||||
|
+ break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@@ -3129,6 +3134,8 @@ applydirdump(drive_t *drivep, |
||||||
|
return rv; |
||||||
|
} |
||||||
|
|
||||||
|
+ if (need_fixrootdir) |
||||||
|
+ tree_fixroot(); |
||||||
|
persp->s.dirdonepr = BOOL_TRUE; |
||||||
|
} |
||||||
|
|
||||||
|
diff --git a/restore/getopt.h b/restore/getopt.h |
||||||
|
index b5bc004..b0c0c7d 100644 |
||||||
|
--- a/restore/getopt.h |
||||||
|
+++ b/restore/getopt.h |
||||||
|
@@ -26,7 +26,7 @@ |
||||||
|
* purpose is to contain that command string. |
||||||
|
*/ |
||||||
|
|
||||||
|
-#define GETOPT_CMDSTRING "a:b:c:def:himn:op:qrs:tv:wABCDEFG:H:I:JKL:M:NO:PQRS:TUVWX:Y:" |
||||||
|
+#define GETOPT_CMDSTRING "a:b:c:def:himn:op:qrs:tv:wxABCDEFG:H:I:JKL:M:NO:PQRS:TUVWX:Y:" |
||||||
|
|
||||||
|
#define GETOPT_WORKSPACE 'a' /* workspace dir (content.c) */ |
||||||
|
#define GETOPT_BLOCKSIZE 'b' /* blocksize for rmt */ |
||||||
|
@@ -51,7 +51,7 @@ |
||||||
|
/* 'u' */ |
||||||
|
#define GETOPT_VERBOSITY 'v' /* verbosity level (0 to 4) */ |
||||||
|
#define GETOPT_SMALLWINDOW 'w' /* use a small window for dir entries */ |
||||||
|
-/* 'x' */ |
||||||
|
+#define GETOPT_FIXROOTDIR 'x' /* try to fix rootdir due to bulkstat misuse */ |
||||||
|
/* 'y' */ |
||||||
|
/* 'z' */ |
||||||
|
#define GETOPT_NOEXTATTR 'A' /* do not restore ext. file attr. */ |
||||||
|
diff --git a/restore/tree.c b/restore/tree.c |
||||||
|
index 5429b74..bfa07fe 100644 |
||||||
|
--- a/restore/tree.c |
||||||
|
+++ b/restore/tree.c |
||||||
|
@@ -15,7 +15,6 @@ |
||||||
|
* along with this program; if not, write the Free Software Foundation, |
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
||||||
|
*/ |
||||||
|
- |
||||||
|
#include <stdio.h> |
||||||
|
#include <unistd.h> |
||||||
|
#include <stdlib.h> |
||||||
|
@@ -262,6 +261,7 @@ extern void usage(void); |
||||||
|
extern size_t pgsz; |
||||||
|
extern size_t pgmask; |
||||||
|
extern bool_t restore_rootdir_permissions; |
||||||
|
+extern bool_t need_fixrootdir; |
||||||
|
|
||||||
|
/* forward declarations of locally defined static functions ******************/ |
||||||
|
|
||||||
|
@@ -328,10 +328,47 @@ static tran_t *tranp = 0; |
||||||
|
static char *persname = PERS_NAME; |
||||||
|
static char *orphname = ORPH_NAME; |
||||||
|
static xfs_ino_t orphino = ORPH_INO; |
||||||
|
+static nh_t orig_rooth = NH_NULL; |
||||||
|
|
||||||
|
|
||||||
|
/* definition of locally defined global functions ****************************/ |
||||||
|
|
||||||
|
+void |
||||||
|
+tree_fixroot(void) |
||||||
|
+{ |
||||||
|
+ nh_t rooth = persp->p_rooth; |
||||||
|
+ xfs_ino_t rootino; |
||||||
|
+ |
||||||
|
+ while (1) { |
||||||
|
+ nh_t parh; |
||||||
|
+ node_t *rootp = Node_map(rooth); |
||||||
|
+ |
||||||
|
+ rootino = rootp->n_ino; |
||||||
|
+ parh = rootp->n_parh; |
||||||
|
+ Node_unmap(rooth, &rootp); |
||||||
|
+ |
||||||
|
+ if (parh == rooth || |
||||||
|
+ /* |
||||||
|
+ * since all new node (including non-parent) |
||||||
|
+ * would be adopted into orphh |
||||||
|
+ */ |
||||||
|
+ parh == persp->p_orphh || |
||||||
|
+ parh == NH_NULL) |
||||||
|
+ break; |
||||||
|
+ rooth = parh; |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ if (rooth != persp->p_rooth) { |
||||||
|
+ persp->p_rooth = rooth; |
||||||
|
+ persp->p_rootino = rootino; |
||||||
|
+ disown(rooth); |
||||||
|
+ adopt(persp->p_rooth, persp->p_orphh, NH_NULL); |
||||||
|
+ |
||||||
|
+ mlog(MLOG_NORMAL, _("fix root # to %llu (bind mount?)\n"), |
||||||
|
+ rootino); |
||||||
|
+ } |
||||||
|
+} |
||||||
|
+ |
||||||
|
/* ARGSUSED */ |
||||||
|
bool_t |
||||||
|
tree_init(char *hkdir, |
||||||
|
@@ -746,7 +783,8 @@ tree_begindir(filehdr_t *fhdrp, dah_t *dahp) |
||||||
|
/* lookup head of hardlink list |
||||||
|
*/ |
||||||
|
hardh = link_hardh(ino, gen); |
||||||
|
- assert(ino != persp->p_rootino || hardh == persp->p_rooth); |
||||||
|
+ if (need_fixrootdir == BOOL_FALSE) |
||||||
|
+ assert(ino != persp->p_rootino || hardh == persp->p_rooth); |
||||||
|
|
||||||
|
/* already present |
||||||
|
*/ |
||||||
|
@@ -815,7 +853,6 @@ tree_begindir(filehdr_t *fhdrp, dah_t *dahp) |
||||||
|
adopt(persp->p_orphh, hardh, NRH_NULL); |
||||||
|
*dahp = dah; |
||||||
|
} |
||||||
|
- |
||||||
|
return hardh; |
||||||
|
} |
||||||
|
|
||||||
|
@@ -960,6 +997,7 @@ tree_addent(nh_t parh, xfs_ino_t ino, gen_t gen, char *name, size_t namelen) |
||||||
|
} |
||||||
|
} else { |
||||||
|
assert(hardp->n_nrh != NRH_NULL); |
||||||
|
+ |
||||||
|
namebuflen |
||||||
|
= |
||||||
|
namreg_get(hardp->n_nrh, |
||||||
|
@@ -1110,6 +1148,13 @@ tree_addent(nh_t parh, xfs_ino_t ino, gen_t gen, char *name, size_t namelen) |
||||||
|
ino, |
||||||
|
gen); |
||||||
|
} |
||||||
|
+ /* found the fake rootino from subdir, need fix p_rooth. */ |
||||||
|
+ if (need_fixrootdir == BOOL_TRUE && |
||||||
|
+ persp->p_rootino == ino && hardh != persp->p_rooth) { |
||||||
|
+ mlog(MLOG_NORMAL, |
||||||
|
+ _("found fake rootino #%llu, will fix.\n"), ino); |
||||||
|
+ persp->p_rooth = hardh; |
||||||
|
+ } |
||||||
|
return RV_OK; |
||||||
|
} |
||||||
|
|
||||||
|
@@ -3808,7 +3853,26 @@ selsubtree_recurse_down(nh_t nh, bool_t sensepr) |
||||||
|
static nh_t |
||||||
|
link_hardh(xfs_ino_t ino, gen_t gen) |
||||||
|
{ |
||||||
|
- return hash_find(ino, gen); |
||||||
|
+ nh_t tmp = hash_find(ino, gen); |
||||||
|
+ |
||||||
|
+ /* |
||||||
|
+ * XXX (another workaround): the simply way is that don't reuse node_t |
||||||
|
+ * with gen = 0 created in tree_init(). Otherwise, it could cause |
||||||
|
+ * xfsrestore: tree.c:1003: tree_addent: Assertion |
||||||
|
+ * `hardp->n_nrh != NRH_NULL' failed. |
||||||
|
+ * and that node_t is a dir node but the fake rootino could be a non-dir |
||||||
|
+ * plus reusing it could cause potential loop in tree hierarchy. |
||||||
|
+ */ |
||||||
|
+ if (need_fixrootdir == BOOL_TRUE && |
||||||
|
+ ino == persp->p_rootino && gen == 0 && |
||||||
|
+ orig_rooth == NH_NULL) { |
||||||
|
+ mlog(MLOG_NORMAL, |
||||||
|
+_("link out fake rootino %llu with gen=0 created in tree_init()\n"), ino); |
||||||
|
+ link_out(tmp); |
||||||
|
+ orig_rooth = tmp; |
||||||
|
+ return NH_NULL; |
||||||
|
+ } |
||||||
|
+ return tmp; |
||||||
|
} |
||||||
|
|
||||||
|
/* returns following node in hard link list |
||||||
|
diff --git a/restore/tree.h b/restore/tree.h |
||||||
|
index bf66e3d..f5bd4ff 100644 |
||||||
|
--- a/restore/tree.h |
||||||
|
+++ b/restore/tree.h |
||||||
|
@@ -18,6 +18,8 @@ |
||||||
|
#ifndef TREE_H |
||||||
|
#define TREE_H |
||||||
|
|
||||||
|
+void tree_fixroot(void); |
||||||
|
+ |
||||||
|
/* tree_init - creates a new tree abstraction. |
||||||
|
*/ |
||||||
|
extern bool_t tree_init(char *hkdir, |
||||||
|
-- |
||||||
|
2.41.0 |
||||||
|
|
@ -0,0 +1,57 @@ |
|||||||
|
From 8e97f9c2b3c362fa6dd872d72594713c713479bc Mon Sep 17 00:00:00 2001 |
||||||
|
From: Donald Douwsma <ddouwsma@redhat.com> |
||||||
|
Date: Thu, 24 Aug 2023 12:07:04 +1000 |
||||||
|
Subject: [PATCH] xfsrestore: suggest -x rather than assert for false roots |
||||||
|
|
||||||
|
If we're going to have a fix for false root problems its a good idea to |
||||||
|
let people know that there's a way to recover, error out with a useful |
||||||
|
message that mentions the `-x` option rather than just assert. |
||||||
|
|
||||||
|
Before |
||||||
|
|
||||||
|
xfsrestore: searching media for directory dump |
||||||
|
xfsrestore: reading directories |
||||||
|
xfsrestore: tree.c:757: tree_begindir: Assertion `ino != persp->p_rootino || hardh == persp->p_rooth' failed. |
||||||
|
Aborted |
||||||
|
|
||||||
|
After |
||||||
|
|
||||||
|
xfsrestore: ERROR: tree.c:791: tree_begindir: Assertion `ino != persp->p_rootino || hardh == persp->p_rooth` failed. |
||||||
|
xfsrestore: ERROR: False root detected. Recovery may be possible using the `-x` option |
||||||
|
Aborted |
||||||
|
|
||||||
|
Fixes: d7cba7410710 ("xfsrestore: fix rootdir due to xfsdump bulkstat misuse") |
||||||
|
Signed-off-by: Donald Douwsma <ddouwsma@redhat.com> |
||||||
|
Reviewed-by: Darrick J. Wong <djwong@kernel.org> |
||||||
|
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com> |
||||||
|
Signed-off-by: Carlos Maiolino <cem@kernel.org> |
||||||
|
Signed-off-by: Pavel Reichl <preichl@redhat.com> |
||||||
|
--- |
||||||
|
restore/tree.c | 11 +++++++++-- |
||||||
|
1 file changed, 9 insertions(+), 2 deletions(-) |
||||||
|
|
||||||
|
diff --git a/restore/tree.c b/restore/tree.c |
||||||
|
index bfa07fe..6f3180f 100644 |
||||||
|
--- a/restore/tree.c |
||||||
|
+++ b/restore/tree.c |
||||||
|
@@ -783,8 +783,15 @@ tree_begindir(filehdr_t *fhdrp, dah_t *dahp) |
||||||
|
/* lookup head of hardlink list |
||||||
|
*/ |
||||||
|
hardh = link_hardh(ino, gen); |
||||||
|
- if (need_fixrootdir == BOOL_FALSE) |
||||||
|
- assert(ino != persp->p_rootino || hardh == persp->p_rooth); |
||||||
|
+ if (need_fixrootdir == BOOL_FALSE && |
||||||
|
+ !(ino != persp->p_rootino || hardh == persp->p_rooth)) { |
||||||
|
+ mlog(MLOG_ERROR | MLOG_TREE, |
||||||
|
+"%s:%d: %s: Assertion `ino != persp->p_rootino || hardh == persp->p_rooth` failed.\n", |
||||||
|
+ __FILE__, __LINE__, __func__); |
||||||
|
+ mlog(MLOG_ERROR | MLOG_TREE, _( |
||||||
|
+"False root detected. Recovery may be possible using the `-x` option\n")); |
||||||
|
+ return NH_NULL; |
||||||
|
+ } |
||||||
|
|
||||||
|
/* already present |
||||||
|
*/ |
||||||
|
-- |
||||||
|
2.41.0 |
||||||
|
|
@ -0,0 +1,265 @@ |
|||||||
|
Summary: Backup and restore utilities for the XFS filesystem |
||||||
|
Name: xfsdump |
||||||
|
Version: 3.1.12 |
||||||
|
Release: 4%{?dist} |
||||||
|
# Licensing based on generic "GNU GENERAL PUBLIC LICENSE" |
||||||
|
# in source, with no mention of version. |
||||||
|
License: GPL+ |
||||||
|
Source0: http://kernel.org/pub/linux/utils/fs/xfs/%{name}/%{name}-%{version}.tar.xz |
||||||
|
Source1: http://kernel.org/pub/linux/utils/fs/xfs/%{name}/%{name}-%{version}.tar.sign |
||||||
|
Source2: https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git/plain/keys/13F703E6C11CF6F0.asc |
||||||
|
BuildRequires: make |
||||||
|
BuildRequires: gcc |
||||||
|
BuildRequires: libtool, gettext, gawk |
||||||
|
BuildRequires: xfsprogs-devel, libuuid-devel, libattr-devel ncurses-devel |
||||||
|
BuildRequires: gnupg2, xz |
||||||
|
Requires: xfsprogs >= 2.6.30, attr >= 2.0.0 |
||||||
|
|
||||||
|
Patch0: 0001-for-next-xfsrestore-fix-rootdir-due-to-xfsdump-bulkstat-misus.patch |
||||||
|
Patch1: 0002-v3.1.13-xfsrestore-suggest-x-rather-than-assert-for-false-ro.patch |
||||||
|
|
||||||
|
%description |
||||||
|
The xfsdump package contains xfsdump, xfsrestore and a number of |
||||||
|
other utilities for administering XFS filesystems. |
||||||
|
|
||||||
|
xfsdump examines files in a filesystem, determines which need to be |
||||||
|
backed up, and copies those files to a specified disk, tape or other |
||||||
|
storage medium. It uses XFS-specific directives for optimizing the |
||||||
|
dump of an XFS filesystem, and also knows how to backup XFS extended |
||||||
|
attributes. Backups created with xfsdump are "endian safe" and can |
||||||
|
thus be transfered between Linux machines of different architectures |
||||||
|
and also between IRIX machines. |
||||||
|
|
||||||
|
xfsrestore performs the inverse function of xfsdump; it can restore a |
||||||
|
full backup of a filesystem. Subsequent incremental backups can then |
||||||
|
be layered on top of the full backup. Single files and directory |
||||||
|
subtrees may be restored from full or partial backups. |
||||||
|
|
||||||
|
%prep |
||||||
|
xzcat '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=- |
||||||
|
%autosetup -p1 |
||||||
|
|
||||||
|
%build |
||||||
|
%configure |
||||||
|
|
||||||
|
make V=1 %{?_smp_mflags} |
||||||
|
|
||||||
|
%install |
||||||
|
rm -rf $RPM_BUILD_ROOT |
||||||
|
make DIST_ROOT=$RPM_BUILD_ROOT install |
||||||
|
# remove non-versioned docs location |
||||||
|
rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/xfsdump/ |
||||||
|
|
||||||
|
# Bit of a hack to move files from /sbin to /usr/sbin |
||||||
|
(cd $RPM_BUILD_ROOT/%{_sbindir}; mv ../../sbin/xfsdump .) |
||||||
|
(cd $RPM_BUILD_ROOT/%{_sbindir}; mv ../../sbin/xfsrestore .) |
||||||
|
|
||||||
|
# Create inventory dir (otherwise created @ runtime) |
||||||
|
mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/xfsdump/inventory |
||||||
|
|
||||||
|
%find_lang %{name} |
||||||
|
|
||||||
|
%files -f %{name}.lang |
||||||
|
%doc README doc/COPYING doc/CHANGES doc/README.xfsdump doc/xfsdump_ts.txt |
||||||
|
%{_mandir}/man8/* |
||||||
|
%{_sbindir}/* |
||||||
|
%{_sharedstatedir}/xfsdump/inventory |
||||||
|
|
||||||
|
%changelog |
||||||
|
* Fri Oct 26 2023 Pavel Reichl <preichl@redhat.com> - 3.1.12-4 |
||||||
|
- xfsdump/xfsrestore: suggest recovery for false roots may be possible using -x |
||||||
|
- Related: RHEL-14038 |
||||||
|
|
||||||
|
* Mon Jun 26 2023 Pavel Reichl <preichl@redhat.com> - 3.1.12-3 |
||||||
|
- xfsdump: restoring inventory prevents non-directory files being restored from tape, |
||||||
|
- actually fixed by rebase to 3.1.12 |
||||||
|
- related: bz#2166557 |
||||||
|
- xfsrestore: Files from the backup go to orphanage dir because of xfsdump issue |
||||||
|
- related: bz#2034327 |
||||||
|
|
||||||
|
* Tue Apr 18 2023 Pavel Reichl <preichl@redhat.com> - 3.1.12-2 |
||||||
|
- rebuilt, Fix wrongly associated bugzilla |
||||||
|
Related: rhbz#2181660 |
||||||
|
|
||||||
|
* Mon Apr 17 2023 Pavel Reichl <preichl@redhat.com> - 3.1.12-1 |
||||||
|
- New upstream release |
||||||
|
- Use Cem's pgp key instead of Eric's |
||||||
|
Related: rhbz#2181660 |
||||||
|
|
||||||
|
* Fri Feb 11 2022 Eric Sandeen <sandeen@redhat.com> 3.1.10-1 |
||||||
|
- New upstream release |
||||||
|
- Resolve issue with bind mounts / root inode mismatch (#2034324) |
||||||
|
|
||||||
|
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 3.1.9-6 |
||||||
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags |
||||||
|
Related: rhbz#1991688 |
||||||
|
|
||||||
|
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.1.9-5 |
||||||
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 |
||||||
|
|
||||||
|
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-4 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild |
||||||
|
|
||||||
|
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-3 |
||||||
|
- Second attempt - Rebuilt for |
||||||
|
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild |
||||||
|
|
||||||
|
* Fri Jan 31 2020 Eric Sandeen <sandeen@redhat.com> 3.1.9-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-7 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild |
||||||
|
|
||||||
|
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-6 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild |
||||||
|
|
||||||
|
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-5 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild |
||||||
|
|
||||||
|
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-4 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild |
||||||
|
|
||||||
|
* Mon Feb 26 2018 Eric Sandeen <sandeen@redhat.com> 3.1.8-3 |
||||||
|
- BuildRequires: gcc |
||||||
|
|
||||||
|
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu Sep 21 2017 Eric Sandeen <sandeen@redhat.com> 3.1.8-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-6 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-5 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu Jun 08 2017 Eric Sandeen <sandeen@redhat.com> 3.1.6-4 |
||||||
|
- Build with largefile support on 32-bit platforms |
||||||
|
|
||||||
|
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-3 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild |
||||||
|
|
||||||
|
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild |
||||||
|
|
||||||
|
* Tue Nov 10 2015 Eric Sandeen <sandeen@redhat.com> 3.1.6-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.4-3 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild |
||||||
|
|
||||||
|
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.4-2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu Jul 17 2014 Eric Sandeen <sandeen@redhat.com> 3.1.4-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Mon Jun 16 2014 Eric Sandeen <sandeen@redhat.com> 3.1.3-5 |
||||||
|
- Fix aarch64 build (#926800) |
||||||
|
|
||||||
|
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.3-4 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild |
||||||
|
|
||||||
|
* Mon Jan 20 2014 Eric Sandeen <sandeen@redhat.com> 3.1.3-3 |
||||||
|
- Add /var/lib/xfsdump/inventory to file list (was created runtime) |
||||||
|
|
||||||
|
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.3-2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed May 08 2013 Eric Sandeen <sandeen@redhat.com> 3.1.3-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.2-2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu Dec 13 2012 Eric Sandeen <sandeen@redhat.com> 3.1.2-1 |
||||||
|
- New upstream release, with non-broken tarball |
||||||
|
|
||||||
|
* Thu Dec 13 2012 Eric Sandeen <sandeen@redhat.com> 3.1.1-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.0-3 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Mar 28 2012 Eric Sandeen <sandeen@redhat.com> 3.1.0-2 |
||||||
|
- Move files out of /sbin to /usr/sbin |
||||||
|
|
||||||
|
* Fri Mar 23 2012 Eric Sandeen <sandeen@redhat.com> 3.1.0-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.6-2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild |
||||||
|
|
||||||
|
* Mon Oct 17 2011 Eric Sandeen <sandeen@redhat.com> 3.0.6-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Thu Mar 31 2011 Eric Sandeen <sandeen@redhat.com> 3.0.5-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.4-2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Jan 13 2010 Eric Sandeen <sandeen@redhat.com> 3.0.4-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Mon Nov 30 2009 Dennis Gregorovic <dgregor@redhat.com> - 3.0.1-3.1 |
||||||
|
- Rebuilt for RHEL 6 |
||||||
|
|
||||||
|
* Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.1-3 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild |
||||||
|
|
||||||
|
* Tue Jun 30 2009 Eric Sandeen <sandeen@redhat.com> 3.0.1-2 |
||||||
|
- Fix up build-requires after e2fsprogs splitup |
||||||
|
|
||||||
|
* Tue May 05 2009 Eric Sandeen <sandeen@redhat.com> 3.0.1-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.0-2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Feb 04 2009 Eric Sandeen <sandeen@redhat.com> 3.0.0-1 |
||||||
|
- New upstream release |
||||||
|
|
||||||
|
* Wed Nov 12 2008 Eric Sandeen <sandeen@redhat.com> 2.2.48-2 |
||||||
|
- Enable parallel builds |
||||||
|
|
||||||
|
* Sun Feb 10 2008 Eric Sandeen <sandeen@redhat.com> - 2.2.48-1 |
||||||
|
- Update to xfsdump version 2.2.48 |
||||||
|
- First build with gcc-4.3 |
||||||
|
|
||||||
|
* Mon Sep 10 2007 Eric Sandeen <sandeen@redhat.com> - 2.2.46-1 |
||||||
|
- Update to xfsdump version 2.2.46 |
||||||
|
- Dropped O_CREAT patch, now upstream |
||||||
|
|
||||||
|
* Fri Aug 24 2007 Eric Sandeen <sandeen@redhat.com> - 2.2.45-3 |
||||||
|
- Update license tag |
||||||
|
- Fix up O_CREAT opens with no mode |
||||||
|
- Add gawk to buildrequires |
||||||
|
|
||||||
|
* Tue Jun 19 2007 Eric Sandeen <sandeen@redhat.com> - 2.2.45-2 |
||||||
|
- Remove readline-devel & libtermcap-devel BuildRequires |
||||||
|
|
||||||
|
* Thu May 31 2007 Eric Sandeen <sandeen@redhat.com> - 2.2.45-1 |
||||||
|
- Update to xfsdump 2.2.45 |
||||||
|
|
||||||
|
* Thu Aug 31 2006 Russell Cattelan <cattelan@thebarn.com> - 2.2.42-2 |
||||||
|
- Remove Distribution: tag |
||||||
|
|
||||||
|
* Wed Aug 23 2006 Russell Cattelan <cattelan@thebarn.com> - 2.2.42-1 |
||||||
|
- update to version 2.2.42 |
||||||
|
|
||||||
|
* Tue Aug 22 2006 Russell Cattelan <cattelan@thebarn.com> - 2.2.38-3 |
||||||
|
- Fix the /usr/sbin sym links to relative links |
||||||
|
- Add the Distribution tag |
||||||
|
- Add ncurses-devel to buildrequires |
||||||
|
|
||||||
|
* Wed Aug 16 2006 Russell Cattelan <cattelan@thebarn.com> - 2.2.38-2 |
||||||
|
- install removes the makefile installed version of the docs |
||||||
|
package the docs based in the version specfic directory |
||||||
|
|
||||||
|
* Wed Aug 9 2006 Russell Cattelan <cattelan@thebarn.com> - 2.2.38-1 |
||||||
|
- Add xfsdump to Fedora |
Loading…
Reference in new issue