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
//=======================================================================
//