135 lines
4.6 KiB
Diff
135 lines
4.6 KiB
Diff
--- dvhtool-1.0.1.orig/dvh.h
|
|
+++ dvhtool-1.0.1/dvh.h
|
|
@@ -127,6 +127,8 @@
|
|
#define PTYPE_XFSLOG 11 /* partition is sgi XFS log */
|
|
#define PTYPE_XLV 12 /* partition is part of an XLV vol */
|
|
#define PTYPE_XVM 13 /* partition is sgi XVM */
|
|
+#define PTYPE_LSWAP 0x82 /* partition is Linux swap */
|
|
+#define PTYPE_LINUX 0x83 /* partition is Linux native */
|
|
#define NPTYPES 16
|
|
|
|
#define VHMAGIC 0xbe5a941 /* randomly chosen value */
|
|
--- dvhtool-1.0.1.orig/dvhlib.c
|
|
+++ dvhtool-1.0.1/dvhlib.c
|
|
@@ -50,6 +50,8 @@
|
|
case PTYPE_XFSLOG: return "XFS Log";
|
|
case PTYPE_XLV: return "XLV Volume";
|
|
case PTYPE_XVM: return "XVM Volume";
|
|
+ case PTYPE_LSWAP: return "Linux Swap";
|
|
+ case PTYPE_LINUX: return "Linux Native";
|
|
}
|
|
return "Unknown Partition Type";
|
|
}
|
|
@@ -325,8 +327,10 @@
|
|
if (res == -1)
|
|
die("Couldn't stat source file");
|
|
|
|
- /* XXX pad to blocksize? */
|
|
- size = vh->vh_pt[8].pt_nblks * blksize - istat.st_size;
|
|
+ /* calculate free blocks in vh */
|
|
+ size = vh->vh_pt[8].pt_nblks /* total vh size */
|
|
+ - ( vh->vh_pt[8].pt_firstlbn + 4 ) /* reserved area */
|
|
+ - (( istat.st_size + blksize - 1 ) / blksize ); /* pad to blocksize */
|
|
/*
|
|
* Are we replacing an existing file, check for enough space and free
|
|
* entry in volume header
|
|
@@ -336,16 +340,15 @@
|
|
/* It's an existing file, delete it. */
|
|
memset(vd->vd_name, 0, VDNAMESIZE);
|
|
vd->vd_nbytes = 0;
|
|
- break;
|
|
}
|
|
if ( vd->vd_nbytes ) {
|
|
- size -= vd->vd_nbytes;
|
|
+ size -= (vd->vd_nbytes + blksize - 1 ) / blksize; /* pad to blocksize */
|
|
num++;
|
|
}
|
|
vd++;
|
|
}
|
|
|
|
- if ( num == NVDIR )
|
|
+ if ( num == NVDIR )
|
|
die("No more free entries in volume header");
|
|
if ( size <= 0 )
|
|
die("Not enough space left in volume header");
|
|
@@ -403,7 +406,7 @@
|
|
die("Short write");
|
|
}
|
|
}
|
|
- dest += (vd->vd_nbytes + 511) / 512; /* XXX Blocksize */
|
|
+ dest += (vd->vd_nbytes + blksize - 1) / blksize;
|
|
vd++;
|
|
}
|
|
|
|
--- dvhtool-1.0.1.orig/dvhtool.8
|
|
+++ dvhtool-1.0.1/dvhtool.8
|
|
@@ -1,4 +1,4 @@
|
|
-.TH DVHTOOL 1 "July 2000"
|
|
+.TH DVHTOOL 8 "July 2000"
|
|
.UC 4
|
|
.SH NAME
|
|
dvhtool \- Disk volume header manipulation tool
|
|
@@ -85,4 +85,4 @@
|
|
.PP
|
|
.I dvhtool
|
|
was written by Ralf Baechle <ralf@oss.sgi.com>, Keith M. Wesolowski <wesolows@foobazco.org>,
|
|
-Tor Arntsen <tor@spacetec.no>, Guido Guenther <guido.guenther@gmx.net>.
|
|
+Tor Arntsen <tor@spacetec.no>, Guido Guenther <agx@debian.org>.
|
|
--- dvhtool-1.0.1.orig/Makefile.in
|
|
+++ dvhtool-1.0.1/Makefile.in
|
|
@@ -1,4 +1,4 @@
|
|
-# Makefile.in generated automatically by automake 1.4a from Makefile.am
|
|
+# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
|
|
|
|
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
|
# This Makefile.in is free software; the Free Software Foundation
|
|
@@ -46,10 +46,9 @@
|
|
AUTOHEADER = @AUTOHEADER@
|
|
|
|
INSTALL = @INSTALL@
|
|
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
-INSTALL_STRIP_FLAG =
|
|
transform = @program_transform_name@
|
|
|
|
NORMAL_INSTALL = :
|
|
@@ -104,7 +103,7 @@
|
|
|
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
|
|
|
-TAR = gtar
|
|
+TAR = tar
|
|
GZIP_ENV = --best
|
|
DEP_FILES = .deps/dvhlib.P .deps/dvhtool.P .deps/getopt.P \
|
|
.deps/getopt1.P .deps/pread.P
|
|
@@ -124,7 +123,7 @@
|
|
$(ACLOCAL_M4): configure.in acinclude.m4
|
|
cd $(srcdir) && $(ACLOCAL)
|
|
|
|
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
|
+config.status: $(srcdir)/configure.in $(CONFIG_STATUS_DEPENDENCIES)
|
|
$(SHELL) ./config.status --recheck
|
|
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
|
cd $(srcdir) && $(AUTOCONF)
|
|
@@ -173,8 +172,8 @@
|
|
$(mkinstalldirs) $(DESTDIR)$(sbindir)
|
|
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
|
|
if test -f $$p; then \
|
|
- echo " $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
|
|
- $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
|
|
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
|
|
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
|
|
else :; fi; \
|
|
done
|
|
|
|
@@ -382,7 +381,7 @@
|
|
all-am: Makefile $(PROGRAMS) $(MANS) $(HEADERS) config.h
|
|
all-redirect: all-am
|
|
install-strip:
|
|
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
|
|
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
|
|
installdirs:
|
|
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8
|
|
|