Hi, Alle domenica 20 maggio 2012, Rogério Brito ha scritto: > I'm adding the HURD people here, so that they can test the package > and see if something should be done or not. > > For the HURD people, this is a reply to [my first e-mail][*] about > getting the HandBrake ripper/transcoder working on kFreeBSD and > patches that need to be added for building: > > [*]: http://lists.debian.org/debian-bsd/2012/05/msg00198.html Thanks for aking, although currently I cannot test it due to libfaac and libmp4v2 not being yet available. Although, I can provide some hints to help. > > > [2]: > > > http://anonscm.debian.org/gitweb/?p=pkg-multimedia/handbrake.git > > > ;a=blob;f=debian/patches/0004-Enable-compilation-on-kFreeBSD-arch > > > es.patch > > > > The patch seems to work, but I wonder if some of the tests for > > __FreeBSD_kernel__ should more accurately be testing for !linux and > > vice-versa. > > > > This doesn't matter for GNU/kFreeBSD, but it could affect future > > portability to another arch like like GNU/Hurd. > > I hope that the HURD people could let me know about this, so that I > can fix some potential problems and, if necessary, forward fixes to > upstream. Patch 0004 is wrong in a couple of bits: - gtk/src/callbacks.c: udev is not unavailable on win32 and on kfreebsd (but available everywhere), but available _only_ on linux; so make the udev code compile only on linux - gtk/configure.ac: instead of add a new kfreebsd case, copying as a whole (without gudev) the list of pkg-config packages to check, add gudev to the list only on linux attached there is an updated version of patch 0004. When building, I noticed it wget's from download.handbrake.fr a svn snapshot of libdvdread; note this is not acceptable at all in Debian for two reasons: - a package build must use only things available within the sources themselves (and of course stuff installed as build dependency too) - we have libdvdread in Debian already (which has been fixed for Hurd, unlike that copy that fails) Furthermore, please disable (or make it optional) the use of ccache; while it may be useful during test builds, it is close to useless when doing builds in buildds. Last, I attached a preliminary version of patch for Hurd support; as said above I couldn't go far in the build, although what I have so far would seem safe enough. -- Pino Toscano
From: Christian Marillat <marillat@debian.org>
Date: Tue, 15 May 2012 04:49:36 -0300
Subject: Enable compilation on kFreeBSD arches.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Forwarded: no
Last-Update: 2012-05-15
Reviewed-by: Rogério Theodoro de Brito <rbrito@ime.usp.br>
Signed-off-by: Rogério Theodoro de Brito <rbrito@ime.usp.br>
---
gtk/configure.ac | 3 +++
gtk/src/callbacks.c | 11 ++++++++---
libhb/ports.h | 2 +-
3 files changed, 12 insertions(+), 4 deletions(-)
--- a/gtk/configure.ac
+++ b/gtk/configure.ac
@@ -94,10 +94,15 @@ case $host in
mingw_flag=yes
;;
*)
+ case "$host_os" in)
+ linux*)
+ pkg_gudev="gudev-1.0"
+ ;;
+ esac
if test "x$gst_disable" = "xyes" ; then
- GHB_PACKAGES="gtk+-2.0 >= 2.10 gthread-2.0 gio-2.0 libnotify dbus-glib-1 gudev-1.0"
+ GHB_PACKAGES="gtk+-2.0 >= 2.10 gthread-2.0 gio-2.0 libnotify dbus-glib-1 $pkg_gudev"
else
- GHB_PACKAGES="gtk+-2.0 >= 2.10 gthread-2.0 gstreamer-0.10 gstreamer-interfaces-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gio-2.0 libnotify dbus-glib-1 gudev-1.0"
+ GHB_PACKAGES="gtk+-2.0 >= 2.10 gthread-2.0 gstreamer-0.10 gstreamer-interfaces-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gio-2.0 libnotify dbus-glib-1 $pkg_gudev"
fi
mingw_flag=no
;;
--- a/gtk/src/callbacks.c
+++ b/gtk/src/callbacks.c
@@ -28,7 +28,9 @@
#if !defined(_WIN32)
#include <poll.h>
#define G_UDEV_API_IS_SUBJECT_TO_CHANGE 1
+#if defined(__linux__)
#include <gudev/gudev.h>
+#endif
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
@@ -49,6 +51,9 @@
#endif
#include <gdk/gdkx.h>
+#ifndef NOTIFY_CHECK_VERSION
+#define NOTIFY_CHECK_VERSION(x,y,z) 0
+#endif
#else
#define WINVER 0x0500
#include <winsock2.h>
@@ -3943,14 +3948,14 @@ dvd_device_list()
return dvd_devices;
}
-#if !defined(_WIN32)
+#if defined(__linux__)
static GUdevClient *udev_ctx = NULL;
#endif
gboolean
ghb_is_cd(GDrive *gd)
{
-#if !defined(_WIN32)
+#if defined(__linux__)
gchar *device;
GUdevDevice *udd;
@@ -3984,7 +3989,7 @@ ghb_is_cd(GDrive *gd)
void
ghb_udev_init()
{
-#if !defined(_WIN32)
+#if defined(__linux__)
udev_ctx = g_udev_client_new(NULL);
#endif
}
--- a/libhb/ports.h
+++ b/libhb/ports.h
@@ -51,7 +51,7 @@ typedef struct hb_thread_s hb_thread_t;
#elif defined( SYS_DARWIN )
# define HB_LOW_PRIORITY 0
# define HB_NORMAL_PRIORITY 31
-#elif defined( SYS_LINUX ) || defined( SYS_FREEBSD ) || defined ( SYS_SunOS )
+#elif defined( SYS_LINUX ) || defined( SYS_FREEBSD ) || defined ( SYS_SunOS ) || defined ( __FreeBSD_kernel__ )
# define HB_LOW_PRIORITY 0
# define HB_NORMAL_PRIORITY 0
#elif defined( SYS_CYGWIN )
--- a/debian/rules
+++ b/debian/rules
@@ -8,6 +8,7 @@ CXX:=ccache $(CXX)
override_dh_auto_configure:
cp make/variant/linux.defs make/variant/kfreebsd.defs
+ cp make/variant/linux.defs make/variant/gnu.defs
./configure --prefix=/usr --build build \
--gcc=/usr/lib/ccache/gcc \
@@ -25,7 +26,7 @@ override_dh_builddeb:
override_dh_clean:
dh_clean \
download/*tar* \
- make/variant/kfreebsd.defs
+ make/variant/kfreebsd.defs make/variant/gnu.defs
override_dh_installchangelogs:
dh_installchangelogs NEWS
--- a/make/include/main.defs
+++ b/make/include/main.defs
@@ -67,6 +67,11 @@ ifeq (1-kfreebsd,$(FEATURE.gtk)-$(BUILD.
MODULES += gtk
endif
+ifeq (1-gnu,$(FEATURE.gtk)-$(BUILD.system))
+ ## build gtk when gtk+gnu
+ MODULES += gtk
+endif
+
ifeq (1,$(FEATURE.local_yasm))
MODULES += contrib/yasm
endif
--- a/debian/control
+++ b/debian/control
@@ -43,7 +43,7 @@ Build-Depends:
yasm
Package: handbrake-cli
-Architecture: amd64 i386 kfreebsd-amd64 kfreebsd-i386 powerpc
+Architecture: amd64 i386 kfreebsd-amd64 kfreebsd-i386 powerpc hurd-i386
Depends:
${misc:Depends},
${shlibs:Depends}
@@ -55,7 +55,7 @@ Description: versatile DVD ripper and vi
variant, HandBrakeCLI
Package: handbrake-gtk
-Architecture: amd64 i386 kfreebsd-amd64 kfreebsd-i386 powerpc
+Architecture: amd64 i386 kfreebsd-amd64 kfreebsd-i386 powerpc hurd-i386
Depends:
${misc:Depends},
${shlibs:Depends}
Attachment:
signature.asc
Description: This is a digitally signed message part.