freebsd-ports/sysutils/syslinux/files/patch-1
Luigi Rizzo c7564382f2 The syslinux program installs a linux bootloader on a FAT-formatted
filesystem or disk image.
This FreeBSD port can additionally operate on plain files containing
a FAT image, thus requiring no special privilege. The program relies
on mtools to perform the manipulation of the FAT filesystem.

WWW: http://syslinux.zytor.com/
2008-12-31 11:43:34 +00:00

142 lines
4.9 KiB
Text

diff -ubwr ./Makefile ../../work/syslinux-3.72/Makefile
--- ./Makefile 2008-09-26 01:46:02.000000000 +0200
+++ ../../work/syslinux-3.72/Makefile 2008-11-25 11:38:14.000000000 +0100
@@ -48,18 +48,18 @@
# Note: libinstaller is both a BSUBDIR and an ISUBDIR. It contains
# files that depend only on the B phase, but may have to be regenerated
# for "make installer".
-BSUBDIRS = codepage core memdisk modules com32 mbr memdump gpxe sample \
+BSUBDIRS_ = codepage core memdisk modules com32 mbr memdump gpxe sample \
libinstaller dos win32
ITARGET =
IOBJECTS = $(ITARGET) dos/copybs.com \
utils/gethostip utils/isohybrid utils/mkdiskimage \
- mtools/syslinux linux/syslinux extlinux/extlinux
-ISUBDIRS = libinstaller mtools linux extlinux utils
+ mtools/syslinux
+ISUBDIRS = libinstaller mtools
# Things to install in /usr/bin
INSTALL_BIN = mtools/syslinux
# Things to install in /sbin
-INSTALL_SBIN = extlinux/extlinux
+INSTALL_SBIN = #extlinux/extlinux
# Things to install in /usr/lib/syslinux
INSTALL_AUX = core/pxelinux.0 gpxe/gpxelinux.0 core/isolinux.bin \
core/isolinux-debug.bin \
diff -ubwr ./com32/lib/MCONFIG ../../work/syslinux-3.72/com32/lib/MCONFIG
--- ./com32/lib/MCONFIG 2008-09-26 01:46:02.000000000 +0200
+++ ../../work/syslinux-3.72/com32/lib/MCONFIG 2008-11-25 11:32:22.000000000 +0100
@@ -47,7 +47,7 @@
$(CC) $(CFLAGS) -S -o $@ $<
.S.o:
- $(CC) $(CFLAGS) -D__ASSEMBLY__ -c -o $@ $<
+ $(CC) $(filter-out -std=gnu99, $(CFLAGS)) -D__ASSEMBLY__ -c -o $@ $<
.S.s:
$(CC) $(CFLAGS) -D__ASSEMBLY__ -E -o $@ $<
diff -ubwr ./com32/libutil/md5.c ../../work/syslinux-3.72/com32/libutil/md5.c
--- ./com32/libutil/md5.c 2008-09-26 01:46:02.000000000 +0200
+++ ../../work/syslinux-3.72/com32/libutil/md5.c 2008-11-25 11:32:22.000000000 +0100
@@ -27,7 +27,7 @@
*/
#include <string.h>
-#include <endian.h>
+#include <machine/endian.h>
#include <md5.h>
static void MD5Transform(uint32_t [4], const unsigned char [64]);
diff -ubwr ./com32/libutil/sha256crypt.c ../../work/syslinux-3.72/com32/libutil/sha256crypt.c
--- ./com32/libutil/sha256crypt.c 2008-09-26 01:46:02.000000000 +0200
+++ ../../work/syslinux-3.72/com32/libutil/sha256crypt.c 2008-11-25 11:32:22.000000000 +0100
@@ -1,8 +1,8 @@
/* SHA256-based Unix crypt implementation.
Released into the Public Domain by Ulrich Drepper <drepper@redhat.com>. */
-#include <alloca.h>
-#include <endian.h>
+#include <stdlib.h>
+#include <machine/endian.h>
#include <errno.h>
#include <limits.h>
#include <stdint.h>
diff -ubwr ./com32/libutil/sha512crypt.c ../../work/syslinux-3.72/com32/libutil/sha512crypt.c
--- ./com32/libutil/sha512crypt.c 2008-09-26 01:46:02.000000000 +0200
+++ ../../work/syslinux-3.72/com32/libutil/sha512crypt.c 2008-11-25 11:32:22.000000000 +0100
@@ -1,8 +1,8 @@
/* SHA512-based Unix crypt implementation.
Released into the Public Domain by Ulrich Drepper <drepper@redhat.com>. */
-#include <alloca.h>
-#include <endian.h>
+#include <stdlib.h>
+#include <machine/endian.h>
#include <errno.h>
#include <limits.h>
#include <stdbool.h>
diff -ubwr ./mtools/syslinux.c ../../work/syslinux-3.72/mtools/syslinux.c
--- ./mtools/syslinux.c 2008-09-26 01:46:02.000000000 +0200
+++ ../../work/syslinux-3.72/mtools/syslinux.c 2008-11-25 11:32:22.000000000 +0100
@@ -38,6 +38,8 @@
#include "syslinux.h"
#include "libfat.h"
+int verbose=0;
+
char *program; /* Name of program */
char *device; /* Device to install to */
pid_t mypid;
@@ -159,6 +161,8 @@
while ( *opt ) {
if ( *opt == 's' ) {
stupid = 1;
+ } else if ( *opt == 'v' ) {
+ verbose++;
} else if ( *opt == 'r' ) {
raid_mode = 1;
} else if ( *opt == 'f' ) {
@@ -217,11 +221,9 @@
fprintf(mtc,
/* "MTOOLS_NO_VFAT=1\n" */
"MTOOLS_SKIP_CHECK=1\n" /* Needed for some flash memories */
- "drive s:\n"
- " file=\"/proc/%lu/fd/%d\"\n"
+ "drive s: file=\"%s\"\n"
" offset=%llu\n",
- (unsigned long)mypid,
- dev_fd,
+ device,
(unsigned long long)filesystem_offset);
fclose(mtc);
@@ -234,8 +236,10 @@
}
/* This command may fail legitimately */
+if (verbose) fprintf(stderr, "doing mattrib\n");
system("mattrib -h -r -s s:/ldlinux.sys 2>/dev/null");
+if (verbose) fprintf(stderr, "doing mcopy\n");
mtp = popen("mcopy -D o -D O -o - s:/ldlinux.sys", "w");
if ( !mtp ||
(fwrite(syslinux_ldlinux, 1, syslinux_ldlinux_len, mtp)
@@ -248,7 +252,9 @@
* Now, use libfat to create a block map
*/
fs = libfat_open(libfat_xpread, dev_fd);
+if (verbose) fprintf(stderr, "libfat_open returns %p\n", fs);
ldlinux_cluster = libfat_searchdir(fs, 0, "LDLINUX SYS", NULL);
+if (verbose) fprintf(stderr, "libfat_searchdir returns %d\n", ldlinux_cluster);
secp = sectors;
nsectors = 0;
s = libfat_clustertosector(fs, ldlinux_cluster);
@@ -256,6 +262,7 @@
*secp++ = s;
nsectors++;
s = libfat_nextsector(fs, s);
+if (verbose) fprintf(stderr, "libfat_nextsector returns %d\n", s);
}
libfat_close(fs);