diff --git a/bootstrap b/bootstrap index a0b6469..86709bf 100755 --- a/bootstrap +++ b/bootstrap @@ -3,5 +3,8 @@ aclocal libtoolize --copy --force autoconf -autoheader + +# ts A61101 : libburn is not prepared for config.h +# autoheader + automake --foreign --add-missing --copy --include-deps diff --git a/cdrskin/README b/cdrskin/README index 9b4e55e..7bebef8 100644 --- a/cdrskin/README +++ b/cdrskin/README @@ -26,7 +26,7 @@ following possible. cdrskin. By Thomas Schmitt Integrated sub project of libburn.pykix.org but also published via: http://scdbackup.sourceforge.net/cdrskin_eng.html -http://scdbackup.sourceforge.net/cdrskin-0.2.4.tar.gz +http://scdbackup.sourceforge.net/cdrskin-0.2.4.pl01.tar.gz Copyright (C) 2006 Thomas Schmitt ------------------------------------------------------------------------------ @@ -59,9 +59,9 @@ systems, including 64 bit systems. (Further reports are welcome.) Compilation, First Glimpse, Installation -Obtain cdrskin-0.2.4.tar.gz , take it to a directory of your choice and do: +Obtain cdrskin-0.2.4.pl01.tar.gz ,take it to a directory of your choice and do: - tar xzf cdrskin-0.2.4.tar.gz + tar xzf cdrskin-0.2.4.pl01.tar.gz cd cdrskin-0.2.4 Or obtain a libburn.pykix.org SVN snapshot, diff --git a/cdrskin/add_ts_changes_to_libburn_0_2_4_patch01 b/cdrskin/add_ts_changes_to_libburn_0_2_4_patch01 new file mode 100755 index 0000000..5d753c8 --- /dev/null +++ b/cdrskin/add_ts_changes_to_libburn_0_2_4_patch01 @@ -0,0 +1,193 @@ +#!/bin/sh + +set -x + +# This script was used for producing cdrskin-0.2.4.pl01 from +# the svn snapshot made for cdrskin-0.2.4.pl00 and some changes +# in a patch directory. +# +# Script results are a source tarball and two binaries +# one dynamic and one static in respect to system libs. +# Both binaries are static in respect to libburn. +# +# The script is to be run in the directory above the toplevel +# directory of libburn resp. cdrskin development. +# +# libburn version used: http://libburn.pykix.org +# Downloaded by: +# $ svn co http://libburn-svn.pykix.org/trunk libburn_pykix +# packed up in a tarball just to save it from inadverted changes by +# $ tar czf libburn_svn.tgz libburn_pykix +# Then it went through cdrskin/add_ts_changes_to_libburn_0_2_4 where +# the following svn snapshot emerged. +original="./cdrskin-0.2.4.svn.tar.gz" + +# The top level directory in that snapshot is named +intermediate="./cdrskin-0.2.4" + +# My changes are in +changes="./cdrskin-0.2.4.patch01" + +# Version parameters +skin_release="0.2.4" +patch_level=".pl01" +skin_rev="$skin_release""$patch_level" + +# The result directory and the name of the result tarballs +target="./cdrskin-${skin_release}" +cdrskin_tarball="./cdrskin-${skin_rev}.tar.gz" +cdrskin_tarball_svn="./cdrskin-${skin_rev}.svn.tar.gz" + +# Where to work +compile_dir="$target" +compile_cmd="./cdrskin/compile_cdrskin.sh" +compile_static_opts="-static" +compile_result="cdrskin/cdrskin" + +bintarget_dynamic="cdrskin_${skin_rev}-x86-suse9_0" +bintarget_static="$bintarget_dynamic"-static + +if test -d "$changes" +then + dummy=dummy +else + echo "$0 : FATAL : no directory $changes" >&2 + exit 1 +fi + +for i in "$target" "$intermediate" +do + if test -e "$i" + then + echo "$0 : FATAL : already existing $i" >&2 + exit 2 + fi +done + +if test -f "$original" +then + dummy=dummy +else + echo "$0 : FATAL : no file $original" >&2 + exit 3 +fi + + +# Unpack SVN snapshot. +tar xzf "$original" + + +# Rename the directory to the cdrskin name +if test "$intermediate" = "$target" +then + dummy=dummy +else + mv "$intermediate" "$target" +fi + + +# Copy the changes from the patch tree +# +cdrskin_dir="$changes"/cdrskin +libburn_dir="$changes"/libburn +test_dir="$changes"/test +cdrskin_target="$target"/cdrskin +libburn_target="$target"/libburn +test_target="$target"/test + +# Create version timestamp +timestamp="$(date -u '+%Y.%m.%d.%H%M%S')" +echo "$timestamp" +echo '#define Cdrskin_timestamP "'"$timestamp"' (pl01)"' \ + >"$cdrskin_dir"/cdrskin_timestamp.h + +# +# Do the repair of patch01 +# +# configure.ac used macro AM_CONFIG_HEADER() and thus disabled all +# other compile time configure macros. Among them were those which +# enabled 64 bit off_t in libburn. They were always set in cdrskin +# so that there was a 64<>32 bit mess-up. +# Negative consequences are to be expected at least with big-endian +# processors (i.e non-Intel compatible, MSB-first) on systems with +# 32 bit off_t default. +# +# bootstrap called a program named autoheader which is obsolete +# without the AM_CONFIG_HEADER macro. +# +cp -a "$changes"/bootstrap "$target" +cp -a "$changes"/configure.ac "$target" + +# Unlike cdrskin, libburner is not depending on 64 bit off_t +# so the according code part has been removed. A similar remedy in +# cdrskin took place in version 0.2.5. Its consequences are wider +# than would be appropriate for this patch. +cp -a "$test_dir"/libburner.c "$test_target" + +# Mention changed tarball name +cp -a "$cdrskin_dir"/README "$cdrskin_target" + +# Fetch this script +cp -a "$cdrskin_dir"/add_ts_changes_to_libburn_0_2_4_patch01 "$cdrskin_target" + +# Mark the patch +cp -a "$cdrskin_dir"/cdrskin_timestamp.h "$cdrskin_target" + +# +# end of repair for patch01 +# + + +# Make SVN state tarball for the libburn team +tar czf "$cdrskin_tarball_svn" "$target" + + +# Get over dependecy on autotools. Rely only on cc, make et. al. +# This is not the same as "make dist" but i can do it without +# having to evaluate the quality of said "make dist" +# +( cd "$target" ; ./bootstrap ) + +# Remove unwanted stuff after bootstrap +for i in "$target"/autom4te.cache +do + if echo "$i" | grep '\*' >/dev/null + then + dummy=dummy + else + if test -e "$i" + then + rm -rf "$i" + fi + fi +done + + +# Pack it up to the new libburn+cdrskin-tarball +tar czf "$cdrskin_tarball" "$target" + +# Produce a static and a dynamic binary +( + cd "$compile_dir" || exit 1 + ./configure + make + $compile_cmd -do_strip + cp "$compile_result" "../$bintarget_dynamic" + if test -n "$compile_static_opts" + then + $compile_cmd $compile_static_opts -do_strip + cp "$compile_result" "../$bintarget_static" + fi +) + +# Remove the build area +# Disable this for debugging the merge process +rm -rf "$target" + +# Show the result +./"$bintarget_dynamic" -version +./"$bintarget_static" -version +ls -l "$cdrskin_tarball" +ls -l "$bintarget_dynamic" +ls -l "$bintarget_static" + diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index b18dbaa..9ff02c2 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2006.10.28.132532" +#define Cdrskin_timestamP "2006.11.02.140329 (pl01)" diff --git a/configure.ac b/configure.ac index d7784f8..29113dd 100644 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,11 @@ AC_CANONICAL_TARGET AM_INIT_AUTOMAKE([subdir-objects]) -AM_CONFIG_HEADER(config.h) +dnl A61101 This breaks Linux build (makes 32 bit off_t) +dnl http://sourceware.org/autobook/autobook/autobook_96.html says +dnl one must include some config.h and this was a pitfall. +dnl So why dig the pit at all ? +dnl AM_CONFIG_HEADER(config.h) dnl Making releases: dnl BURN_MICRO_VERSION += 1; diff --git a/test/libburner.c b/test/libburner.c index 1f14190..e89637e 100644 --- a/test/libburner.c +++ b/test/libburner.c @@ -35,17 +35,10 @@ */ -/* We shall prepare for times when more than 2 GB of data are to be handled. - This gives POSIX-ly 64 bit off_t */ -#ifndef _LARGEFILE_SOURCE -#define _LARGEFILE_SOURCE 1 -#endif -#ifndef _FILE_OFFSET_BITS -#define _FILE_OFFSET_BITS 64 -#endif - /** See this for the decisive API specs . libburn.h is The Original */ -#include +/* For using the installed header file : #include */ +/* This program insists in the own headerfile. */ +#include "../libburn/libburn.h" /* libburn is intended for Linux systems with kernel 2.4 or 2.6 for now */ #include