forked from Lainports/freebsd-ports
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/
142 lines
4.9 KiB
Text
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);
|
|
|