Package: helix-player Version: 1.0.5-1 Severity: important Tags: patch Justification: fails to build from source
The helix-player source package suffers from several small portability bugs (most upstream's fault, I believe) that keep it from building properly on most Debian architectures. I have attached a patch that addresses these just far enough to get it to build without errors on amd64; however, certain fixes (such as setting SYSTEM_ID properly) will need to be extended to the remaining architectures. (I also didn't bother encapsulating it as a dpatch, but that should be easy enough to fix.) BTW, you really ought to fix debian/rules clean to work from source trees that *aren't* already pristine, per Policy 4.8. As it is, a lot of generated files are getting left behind; at best, this would bloat the diff, but as it is, overwriting the top-level Makefile keeps 02_makefile.dpatch from being reversed, and the fact that many of these files are binaries makes dpkg-source choke. You may want to go in for a setup where you copy the whole non-debian/ tree (or extract it from a tarball) into a sandbox that the clean target can then safely blow away in its entirety. Thanks. -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable'), (500, 'stable') Architecture: amd64 (x86_64) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.12.6 Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Versions of packages helix-player depends on: ii libatk1.0-0 1.10.3-1 The ATK accessibility toolkit ii libc6 2.3.5-6 GNU C Library: Shared libraries an ii libgcc1 1:4.0.1-9 GCC support library ii libglib2.0-0 2.8.1-1 The GLib library of C routines ii libgtk2.0-0 2.6.10-1 The GTK+ graphical user interface ii libogg0 1.1.2-1 Ogg Bitstream Library ii libpango1.0-0 1.8.2-2 Layout and rendering of internatio ii libstdc++6 4.0.1-9 The GNU Standard C++ Library v3 ii libtheora0 0.0.0.alpha4-1.1 The Theora Video Compression Codec ii libvorbis0a 1.1.0-1 The Vorbis General Audio Compressi ii libx11-6 6.8.2.dfsg.1-7 X Window System protocol client li ii libxext6 6.8.2.dfsg.1-7 X Window System miscellaneous exte ii libxv1 6.8.2.dfsg.1-7 X Window System video extension li ii xlibs 6.8.2.dfsg.1-7 X Window System client libraries m helix-player recommends no packages. -- no debconf information
diff -u helix-player-1.0.5/debian/rules helix-player-1.0.5/debian/rules --- helix-player-1.0.5/debian/rules +++ helix-player-1.0.5/debian/rules @@ -23,6 +23,10 @@ export BUILDRC:=$(shell pwd)/buildrc export SYSTEM_ID:=linux-2.2-libc6-$(EXT) +ifeq (amd64,$(ARCH)) + export SYSTEM_ID:=linux-2.6-glibc23-amd64 +endif + build: build-stamp build-stamp: patch @echo "--- Compiling" only in patch2: unchanged: --- helix-player-1.0.5.orig/datatype/ogg/fileformat/unix.pcf +++ helix-player-1.0.5/datatype/ogg/fileformat/unix.pcf @@ -1,3 +1,4 @@ -project.AddLibraries(os.path.join(GetSDKPath("oggvorbissdk"), "lib", "libogg.a")) -project.AddLibraries(os.path.join(GetSDKPath("oggvorbissdk"), "lib", "libvorbis.a")) +# project.AddLibraries(os.path.join(GetSDKPath("oggvorbissdk"), "lib", "libogg.a")) +# project.AddLibraries(os.path.join(GetSDKPath("oggvorbissdk"), "lib", "libvorbis.a")) +project.AddSystemLibraries("ogg", "vorbis") only in patch2: unchanged: --- helix-player-1.0.5.orig/datatype/theora/renderer/linux2.pcf +++ helix-player-1.0.5/datatype/theora/renderer/linux2.pcf @@ -53,7 +53,7 @@ oggLibPath = os.path.join(GetSDKPath("oggvorbissdk"), "lib") -project.AddLibraries(os.path.join(oggLibPath, "libogg.a"), - os.path.join(oggLibPath, "libtheora.a")) +#project.AddLibraries(os.path.join(oggLibPath, "libogg.a"), +# os.path.join(oggLibPath, "libtheora.a")) -project.AddSystemLibraries("pthread") \ No newline at end of file +project.AddSystemLibraries("pthread", "ogg", "theora") only in patch2: unchanged: --- helix-player-1.0.5.orig/datatype/vorbis/renderer/unix.pcf +++ helix-player-1.0.5/datatype/vorbis/renderer/unix.pcf @@ -1,3 +1,4 @@ -project.AddLibraries(os.path.join(GetSDKPath("oggvorbissdk"), "lib", "libogg.a")) -project.AddLibraries(os.path.join(GetSDKPath("oggvorbissdk"), "lib", "libvorbis.a")) +# project.AddLibraries(os.path.join(GetSDKPath("oggvorbissdk"), "lib", "libogg.a")) +# project.AddLibraries(os.path.join(GetSDKPath("oggvorbissdk"), "lib", "libvorbis.a")) +project.AddSystemLibraries("ogg", "vorbis") only in patch2: unchanged: --- helix-player-1.0.5.orig/audio/fixptutil/pub/math64.h +++ helix-player-1.0.5/audio/fixptutil/pub/math64.h @@ -124,7 +124,7 @@ // GCC / i386 /////////////////////////////////////////////////////////////////////////////////////// -#if defined(__GNUC__) && defined(__i386__) && !defined(_NO_GNU_AS) +#if defined(__GNUC__) && (defined(__i386__) || defined(__amd64__)) && !defined(_NO_GNU_AS) #define HAVE_PLATFORM_MACROS @@ -199,7 +199,7 @@ #ifdef DEBUG #define ASSERT(x) if (!(x)) __asm__ __volatile ("int $3" :: ) #endif -#endif // defined(__GNUC__) && defined(__i386__) +#endif // defined(__GNUC__) && defined(__i386__|__amd64__) /////////////////////////////////////////////////////////////////////////////////////// // Sun native compiler / Sparc only in patch2: unchanged: --- helix-player-1.0.5.orig/build/umakecf/linux-2.6-glibc23-amd64.cf +++ helix-player-1.0.5/build/umakecf/linux-2.6-glibc23-amd64.cf @@ -63,6 +63,6 @@ platform.cc.args["default"] = platform.cc.args["default"] + \ " -m64 -D__amd64__" -project.RemoveSystemPaths("-L/usr/X11R6/lib") -project.AddSystemPaths("-L/usr/X11R6/lib64") +# project.RemoveSystemPaths("-L/usr/X11R6/lib") +# project.AddSystemPaths("-L/usr/X11R6/lib64") only in patch2: unchanged: --- helix-player-1.0.5.orig/common/import/gecko-sdk/nspr/include/prcpucfg.h +++ helix-player-1.0.5/common/import/gecko-sdk/nspr/include/prcpucfg.h @@ -182,6 +182,52 @@ #define PR_BYTES_PER_WORD_LOG2 3 #define PR_BYTES_PER_DWORD_LOG2 3 +#elif defined(__x86_64__) + +#define IS_LITTLE_ENDIAN 1 +#undef IS_BIG_ENDIAN +#define IS_64 + +#define PR_BYTES_PER_BYTE 1 +#define PR_BYTES_PER_SHORT 2 +#define PR_BYTES_PER_INT 4 +#define PR_BYTES_PER_INT64 8 +#define PR_BYTES_PER_LONG 8 +#define PR_BYTES_PER_FLOAT 4 +#define PR_BYTES_PER_DOUBLE 8 +#define PR_BYTES_PER_WORD 8 +#define PR_BYTES_PER_DWORD 8 + +#define PR_BITS_PER_BYTE 8 +#define PR_BITS_PER_SHORT 16 +#define PR_BITS_PER_INT 32 +#define PR_BITS_PER_INT64 64 +#define PR_BITS_PER_LONG 64 +#define PR_BITS_PER_FLOAT 32 +#define PR_BITS_PER_DOUBLE 64 +#define PR_BITS_PER_WORD 64 + +#define PR_BITS_PER_BYTE_LOG2 3 +#define PR_BITS_PER_SHORT_LOG2 4 +#define PR_BITS_PER_INT_LOG2 5 +#define PR_BITS_PER_INT64_LOG2 6 +#define PR_BITS_PER_LONG_LOG2 6 +#define PR_BITS_PER_FLOAT_LOG2 5 +#define PR_BITS_PER_DOUBLE_LOG2 6 +#define PR_BITS_PER_WORD_LOG2 6 + +#define PR_ALIGN_OF_SHORT 2 +#define PR_ALIGN_OF_INT 4 +#define PR_ALIGN_OF_LONG 8 +#define PR_ALIGN_OF_INT64 8 +#define PR_ALIGN_OF_FLOAT 4 +#define PR_ALIGN_OF_DOUBLE 8 +#define PR_ALIGN_OF_POINTER 8 +#define PR_ALIGN_OF_WORD 8 + +#define PR_BYTES_PER_WORD_LOG2 3 +#define PR_BYTES_PER_DWORD_LOG2 3 + #elif defined(__mc68000__) #undef IS_LITTLE_ENDIAN only in patch2: unchanged: --- helix-player-1.0.5.orig/common/system/pub/platform/unix/pthreadthreads.h +++ helix-player-1.0.5/common/system/pub/platform/unix/pthreadthreads.h @@ -102,10 +102,15 @@ #ifndef _MAC_UNIX +#ifdef __amd64__ +// sem_t is a union, and therefore can't be used as a base class. +typedef sem_t HXsem_t; +#else struct HXsem_t : public sem_t { char padding[64]; /* Flawfinder: ignore */ // different linux versions have different binary reps blechhhh! }; +#endif //======================================================================= //