tag 330190 + patch thanks Kilian <[EMAIL PROTECTED]> writes:
> Dear All, > > I'm trying to set up a software RAID 1 (two disks) with Debian on a > system with an AMD x86_64 Athlon processor. To install the MBR on both > discs, I need install-mbr (http://packages.debian.org/stable/base/mbr) > if I'm correct, but this package does not exist in the amd64 port... I > then tried to compile it myself, which fails, obviously, because the > package has not been ported to x86_64 yet as it seems (and I lack the > knowledge to do so...). > > I'm a bit stuck now.. what other tools can I use? > > Thanks for any hint! > > Greetz, > Kilian I went ahead and fixed mbr up for amd64. Apart from the obvious (Build-depends, gcc -m32) I also fixed up some of the more serious warnings and included running the testsuite as much as possible. The package compiles but someone has to risk his/her system and install the mbr now. MfG Goswin PS: Dear maintainer, consider this a notification of intent to NMU your package. ---------------------------------------------------------------------- diff -u mbr-1.1.5/debian/control mbr-1.1.5/debian/control --- mbr-1.1.5/debian/control +++ mbr-1.1.5/debian/control @@ -3,10 +3,10 @@ Priority: optional Maintainer: Santiago Garcia Mantinan <[EMAIL PROTECTED]> Standards-Version: 3.6.1 -Build-Depends: bin86 +Build-Depends: bin86, libc6-dev-i386 [amd64], ia32-libs [amd64] Package: mbr -Architecture: i386 +Architecture: i386 amd64 Depends: ${shlibs:Depends} Description: Master Boot Record for IBM-PC compatible computers. This is used in booting Linux from the hard disk. diff -u mbr-1.1.5/debian/changelog mbr-1.1.5/debian/changelog --- mbr-1.1.5/debian/changelog +++ mbr-1.1.5/debian/changelog @@ -1,3 +1,24 @@ +mbr (1.1.5-2.1) unstable; urgency=low + + * NMU: Port to amd64 (closes: #330190) + + debian/rules: set CC and LD + + debian/rules: add -W to CFLAGS for proper warnings + + debian/control: Build-Depend on libc6-dev-i386 [amd64] and + (temporary) on ia32-libs [amd64] for dpkg-shlibdeps to work + * Fix potentialy harmfull warnings + + harness/args.c:57: warning: suggest parentheses around arithmetic in operand of ^ + + harness/output.c:22: warning: comparison between signed and unsigned + + harness/process.c:25: warning: implicit declaration of function 'exit' + + install-mbr.c:617: warning: return type defaults to 'int' + + install-mbr.c:702: warning: comparison between signed and unsigned + + install-mbr.c:1357: warning: format '%d' expects type 'int', but argument 4 has type 'char *' + * Enable testsuite partialy + + remove tests for non existing old mbrs + + conditionaly remove runtime test that fail on amd64 + * Fix typo in manpage found by A Costa <[EMAIL PROTECTED]> (Closes: #311235) + + -- Goswin von Brederlow <[EMAIL PROTECTED]> Thu, 18 May 2006 18:43:42 +0000 + mbr (1.1.5-2) unstable; urgency=low * The "we are no longer required for anything" release. diff -u mbr-1.1.5/debian/rules mbr-1.1.5/debian/rules --- mbr-1.1.5/debian/rules +++ mbr-1.1.5/debian/rules @@ -3,8 +3,12 @@ package = mbr docdir = debian/tmp/usr/share/doc/$(package) -CC = gcc -CFLAGS = -g -Wall +KERNEL_ARCH := $(shell uname -m) + +CC = gcc -m32 +LD = ld -melf_i386 + +CFLAGS = -g -Wall -W INSTALL_PROGRAM = install ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) @@ -17,7 +21,13 @@ build: $(checkdir) ./configure --prefix=/ - $(MAKE) CC="$(CC)" CFLAGS="$(CFLAGS)" + $(MAKE) CC="$(CC)" LD="$(LD)" CFLAGS="$(CFLAGS)" +ifneq (,$(findstring x86_64,$(KERNEL_ARCH))) + # Limit the tests on x86_64 kernels + $(MAKE) TESTS="tests/inst-1 tests/inst-3 tests/inst-4 tests/inst-6 tests/inst-7 tests/inst-8" check-TESTS +else + $(MAKE) check-TESTS +endif touch build clean: only in patch2: unchanged: --- mbr-1.1.5.orig/Makefile.in +++ mbr-1.1.5/Makefile.in @@ -71,7 +71,7 @@ man_MANS = install-mbr.8 -TESTS = tests/version tests/inst-1 tests/inst-2 tests/inst-3 tests/inst-4 tests/inst-5 tests/inst-6 tests/inst-7 tests/inst-8 tests/mbr-1 tests/mbr-2 tests/mbr-3 tests/mbr-4 tests/mbr-5 tests/mbr-6 +TESTS = tests/inst-1 tests/inst-3 tests/inst-4 tests/inst-6 tests/inst-7 tests/inst-8 tests/mbr-1 tests/mbr-2 tests/mbr-3 tests/mbr-4 tests/mbr-5 tests/mbr-6 TESTS_ENVIRONMENT = sh ${srcdir}/wraptest @@ -478,13 +478,7 @@ check-TESTS: \ table.b \ - mbr.b \ - mbr-1.1.3.b \ - mbr-1.1.2.b \ - mbr-1.1.1.b \ - mbr-1.1.0.b \ - mbr-1.0.1.b \ - mbr-1.0.0.b + mbr.b .PRECIOUS: mbr.b only in patch2: unchanged: --- mbr-1.1.5.orig/Makefile.am +++ mbr-1.1.5/Makefile.am @@ -7,21 +7,15 @@ man_MANS = install-mbr.8 -TESTS = tests/version tests/inst-1 tests/inst-2 tests/inst-3 \ - tests/inst-4 tests/inst-5 tests/inst-6 tests/inst-7 tests/inst-8 \ +TESTS = tests/inst-1 tests/inst-3 \ + tests/inst-4 tests/inst-6 tests/inst-7 tests/inst-8 \ tests/mbr-1 tests/mbr-2 tests/mbr-3 tests/mbr-4 \ tests/mbr-5 tests/mbr-6 TESTS_ENVIRONMENT = sh ${srcdir}/wraptest check-TESTS: \ table.b \ - mbr.b \ - mbr-1.1.3.b \ - mbr-1.1.2.b \ - mbr-1.1.1.b \ - mbr-1.1.0.b \ - mbr-1.0.1.b \ - mbr-1.0.0.b + mbr.b EXTRA_DIST = table.S86 historic,v wraptest ${TESTS} ${man_MANS} only in patch2: unchanged: --- mbr-1.1.5.orig/install-mbr.c +++ mbr-1.1.5/install-mbr.c @@ -613,7 +613,7 @@ } } -static show_params(const struct change_params *cp) +static void show_params(const struct change_params *cp) { printf("Version: %d\n", cp->version); printf("Compatible: %d\n", cp->compat_version); @@ -687,7 +687,7 @@ do_io(io_func *fn, const struct file_desc *dsc, int fd, size_t min_size) { int res; - int done=0; + size_t done=0; while(done<BUFFER_SIZE) { res=fn(fd, dsc->data, BUFFER_SIZE-done); @@ -1353,7 +1353,7 @@ to_do=1; if(optarg[0]==0 || optarg[1]!=0) { - fprintf(stderr, "%s: Invalid partition number: %d\n", + fprintf(stderr, "%s: Invalid partition number: %s\n", prog_name, optarg); exit(1); } only in patch2: unchanged: --- mbr-1.1.5.orig/install-mbr.8 +++ mbr-1.1.5/install-mbr.8 @@ -47,7 +47,7 @@ .RB " [" --interrupt .RI < keys >] .RB " [" --partition -.RI < parition >] +.RI < partition >] .RB " [" --timeout .RI < timeout >] .. only in patch2: unchanged: --- mbr-1.1.5.orig/harness/args.c +++ mbr-1.1.5/harness/args.c @@ -54,7 +54,7 @@ unsigned long month = strtoul(*next-'-'?"0":next+1, &next, 0); unsigned long day = strtoul(*next-'-'?"0":next+1, &next, 0); if (year-1970>129 || month-1>11 || *next || - day-1>27+(month^2?2+(month>>3^month&1):!(year&3))) + day-1>27+(month^2?2+((month>>3)^(month&1)):!(year&3))) { fprintf(stderr, "Failed to parse date or out of range: %s\n" "Use format: YYYY-MM-DD. Year must be 1970-2099.\n", only in patch2: unchanged: --- mbr-1.1.5.orig/harness/output.c +++ mbr-1.1.5/harness/output.c @@ -4,7 +4,7 @@ #include <ctype.h> static int available_width = 0; -static int output_time = 0; +static unsigned long output_time = 0; static void new_line(void) { only in patch2: unchanged: --- mbr-1.1.5.orig/harness/process.c +++ mbr-1.1.5/harness/process.c @@ -5,6 +5,7 @@ #include <stdio.h> #include <errno.h> #include <string.h> +#include <stdlib.h> #include "harness.h" void process_init() -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

