[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Checking if handbrake compiles under kFreeBSD?



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.


Reply to: