File syslinux-4.04-mtime.patch of Package syslinux

Index: syslinux-4.04/core/Makefile
===================================================================
--- syslinux-4.04.orig/core/Makefile
+++ syslinux-4.04/core/Makefile
@@ -63,7 +63,7 @@ PREPCORE = ../lzo/prepcore
 # official release.  Otherwise, substitute a hex string that is pretty much
 # guaranteed to be unique to be unique from build to build.
 ifndef HEXDATE
-HEXDATE := $(shell $(PERL) ../now.pl $(SRCS))
+HEXDATE := $(shell $(PERL) ../now.pl $(ALLSRC))
 endif
 ifndef DATE
 DATE    := $(shell sh ../gen-id.sh $(VERSION) $(HEXDATE))
Index: syslinux-4.04/libinstaller/bin2c.pl
===================================================================
--- syslinux-4.04.orig/libinstaller/bin2c.pl
+++ syslinux-4.04/libinstaller/bin2c.pl
@@ -71,8 +71,4 @@ if ($align != 0) {
 
 printf "\n};\n\nconst unsigned int %s_len = %u;\n", $table_name, $total_len;
 
-@st = stat STDIN;
-
-printf "\nconst int %s_mtime = %d;\n", $table_name, $st[9];
-
 exit 0;
Index: syslinux-4.04/libinstaller/syslinux.h
===================================================================
--- syslinux-4.04.orig/libinstaller/syslinux.h
+++ syslinux-4.04/libinstaller/syslinux.h
@@ -20,11 +20,9 @@
 /* The standard boot sector and ldlinux image */
 extern unsigned char syslinux_bootsect[];
 extern const unsigned int syslinux_bootsect_len;
-extern const int syslinux_bootsect_mtime;
 
 extern unsigned char syslinux_ldlinux[];
 extern const unsigned int syslinux_ldlinux_len;
-extern const int syslinux_ldlinux_mtime;
 
 #define boot_sector	syslinux_bootsect
 #define boot_sector_len syslinux_bootsect_len
@@ -33,7 +31,6 @@ extern const int syslinux_ldlinux_mtime;
 
 extern unsigned char syslinux_mbr[];
 extern const unsigned int syslinux_mbr_len;
-extern const int syslinux_mbr_mtime;
 
 /* Sector size assumptions... */
 #define SECTOR_SHIFT	9
Index: syslinux-4.04/now.pl
===================================================================
--- syslinux-4.04.orig/now.pl
+++ syslinux-4.04/now.pl
@@ -1,21 +1,22 @@
-#!/usr/bin/perl
-#
-# Print the time (possibly the mtime of a file) as a hexadecimal integer
-# If more than one file, print the mtime of the *newest* file.
-#
-
-undef $now;
-
-foreach $file ( @ARGV ) {
-    ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,
-     $ctime,$blksize,$blocks) = stat($file);
-    if ( !defined($now) || $now < $mtime ) {
-	$now = $mtime;
-    }
-}
+#! /usr/bin/perl
+
+# Use checksum over all sources and source file names to create some unique id.
+
+use Digest::SHA;
+
+use strict;
 
-if ( !defined($now) ) {
-    $now = time;
+my $digest = Digest::SHA->new(256);
+
+# print STDERR "now.pl: ", join(" ", @ARGV) , "\n";
+
+for (sort @ARGV) {
+  $digest->add($_);
+  $digest->addfile($_);
 }
 
-printf "0x%08x\n", $now;
+my $val = substr($digest->hexdigest, 0, 8);
+
+# printf STDERR "now.pl: = 0x$val\n";
+
+print "0x$val\n";
openSUSE Build Service is sponsored by