[SVN-Commit] r1701 - in trunk/www/linux-c6-freshplayerplugin: . files
svn-freebsd-gecko at chruetertee.ch
svn-freebsd-gecko at chruetertee.ch
Sun Sep 21 13:10:56 UTC 2014
Author: jbeich
Date: Sun Sep 21 13:10:40 2014
New Revision: 1701
Log:
Add a prototype port for PepperFlash wrapper, use with www/linux-firefox
Depends on:
sysutils/rinse from bug 193493
linux-c6-* infra ports
linux libEGL.so.1 from nvidia-driver
Added:
trunk/www/linux-c6-freshplayerplugin/
trunk/www/linux-c6-freshplayerplugin/Makefile
trunk/www/linux-c6-freshplayerplugin/distinfo
trunk/www/linux-c6-freshplayerplugin/files/
trunk/www/linux-c6-freshplayerplugin/files/patch-src__pp_resource.h
trunk/www/linux-c6-freshplayerplugin/files/patch-src__ppb_flash_menu.c
trunk/www/linux-c6-freshplayerplugin/pkg-descr
Added: trunk/www/linux-c6-freshplayerplugin/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/www/linux-c6-freshplayerplugin/Makefile Sun Sep 21 13:10:40 2014 (r1701)
@@ -0,0 +1,152 @@
+# $FreeBSD$
+
+PORTNAME= freshplayerplugin
+PORTVERSION= 0.2.0
+CATEGORIES= www linux emulators
+PKGNAMEPREFIX= linux-c6-
+
+MAINTAINER= gecko at FreeBSD.org
+COMMENT= PPAPI-host NPAPI-plugin adapter (Linux CentOS 6)
+
+LICENSE= MIT # excluding EXTRA_LIBS
+
+BUILD_DEPENDS= rinse:${PORTSDIR}/sysutils/rinse
+RUN_DEPENDS= ${LINUXBASE}/usr/lib/libEGL.so.1:${PORTSDIR}/x11/nvidia-driver
+
+USE_GITHUB= yes
+GH_ACCOUNT= i-rinat
+GH_TAGNAME= v${DISTVERSION}
+GH_COMMIT= e2c21b9
+
+USES= cmake webplugin:linux
+USE_LINUX= c6
+USE_LINUX_APPS= atk fontconfig gtk2 pango \
+ alsalib alsa-plugins-oss
+BUILD_WRKSRC= ${WRKDIR}/centos6
+WEBPLUGIN_FILES=libfreshwrapper-pepperflash.so
+PLIST_FILES= %%WEBPLUGIN_DIR%%/libfreshwrapper-pepperflash.so \
+ ${EXTRA_LIBS:S,^,${LINUXBASE},}
+PLIST_DIRSTRY= lib/browser_plugins
+EXTRA_LIBS= /usr/lib/libconfig.so.8 \
+ /usr/lib/libevent-2.0.so.5 \
+ /usr/lib/libevent_pthreads-2.0.so.5 \
+ /usr/lib/liburiparser.so.1
+
+YUM_INSTALL= ${CHROOT} ${BUILD_WRKSRC} /usr/bin/yum -y install
+
+.if defined(WRKDIRPREFIX)
+# Keep mount path short to avoid ENAMETOOLONG
+WRKDIR= ${WRKDIRPREFIX}/${UNIQUENAME}
+.endif
+
+post-patch:
+ ${REINPLACE_CMD} -e 's,/usr/lib,${LOCALBASE}/lib,' \
+ ${WRKSRC}/src/config_nacl.c \
+ ${WRKSRC}/src/config_pepperflash.c
+
+pre-configure:
+ @if [ ${UID} != 0 ]; then \
+ ${ECHO_MSG} "Requires root permissions for chroot(8)."; \
+ exit 1; \
+ fi
+
+do-configure:
+ rinse --arch i386 --distribution centos-6 \
+ --directory ${BUILD_WRKSRC}
+
+ ${MOUNT} -t devfs none ${BUILD_WRKSRC}/dev
+ ${MOUNT} -t linprocfs none ${BUILD_WRKSRC}/proc
+ ${MOUNT} -t nullfs ${WRKSRC} ${BUILD_WRKSRC}/root
+
+ ${MKDIR} /var/cache/yum
+ ${MOUNT} -t nullfs /var/cache/yum \
+ ${BUILD_WRKSRC}/var/cache/yum
+
+post-configure:
+ ${REINPLACE_CMD} -e '/keepcache/s/=0/=1/' \
+ ${BUILD_WRKSRC}/etc/yum.conf
+ ${BRANDELF} -t Linux ${BUILD_WRKSRC}/lib/ld-linux.so.2
+ ${CP} ${BUILD_WRKSRC}/usr/lib/locale/locale-archive.tmpl \
+ ${BUILD_WRKSRC}/usr/lib/locale/locale-archive
+
+pre-build:
+ ${YUM_INSTALL} epel-release \
+ http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm \
+ http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm \
+ http://rpms.famillecollet.com/enterprise/6/remi/i386/remi-release-6.5-1.el6.remi.noarch.rpm
+
+ # use http:// to skip upgrade
+ ${REINPLACE_CMD} 's/https/http/' ${BUILD_WRKSRC}/etc/yum.repos.d/epel*.repo
+
+ # fix broken depends
+ ${YUM_INSTALL} gamin shared-mime-info
+
+ ${YUM_INSTALL} \
+ cmake28 \
+ make \
+ gcc-c++ \
+ alsa-lib-devel \
+ gtk2-devel \
+ libconfig-devel
+
+ ${YUM_INSTALL} --enablerepo=rpmforge uriparser-devel
+ ${YUM_INSTALL} --enablerepo=remi libevent-last-devel
+ ${YUM_INSTALL} --enablerepo=elrepo-extras mesa-libGLES-devel
+
+do-build:
+ ${CHROOT} ${BUILD_WRKSRC} \
+ /bin/sh -c "cd /root && cmake28 . \
+ ${CMAKE_ARGS:M*FLAGS*} ${CMAKE_ARGS:M*BUILD_TYPE*}"
+ ${CHROOT} ${BUILD_WRKSRC} \
+ /usr/bin/make ${_MAKE_JOBS} -C /root
+
+do-install:
+ @${MKDIR} ${STAGEDIR}${WEBPLUGIN_DIR} ${STAGEDIR}${LINUXBASE}/usr/lib
+ ${INSTALL_LIB} ${WRKSRC}/libfreshwrapper-pepperflash.so \
+ ${STAGEDIR}${WEBPLUGIN_DIR}
+.for f in ${EXTRA_LIBS}
+ ${INSTALL_LIB} ${BUILD_WRKSRC}${f} \
+ ${STAGEDIR}${LINUXBASE}${f:H}
+.endfor
+
+pre-clean: test-clean
+ @${UMOUNT} ${BUILD_WRKSRC}/dev 2>/dev/null || ${TRUE}
+ @${UMOUNT} ${BUILD_WRKSRC}/proc 2>/dev/null || ${TRUE}
+ @${UMOUNT} ${BUILD_WRKSRC}/root 2>/dev/null || ${TRUE}
+ @${UMOUNT} ${BUILD_WRKSRC}/var/cache/yum 2>/dev/null || ${TRUE}
+
+pre-test: build
+ -${CP} ${LOCALBASE}/etc/asound.conf ${BUILD_WRKSRC}/etc
+ ${YUM_INSTALL} \
+ ncurses-base \
+ alsa-plugins-oss \
+ firefox
+
+ -${CHROOT} ${BUILD_WRKSRC} /usr/sbin/useradd -u 1001 -m foo
+ -${INSTALL} -o 1001 -g 1001 -m 600 \
+ ~/.Xauthority ${BUILD_WRKSRC}/home/foo
+ ${ECHO_CMD} 'export DISPLAY=$${DISPLAY-:0}' \
+ >>${BUILD_WRKSRC}/home/foo/.bashrc
+ ${INSTALL} -d -o 1001 -g 1001 \
+ ${BUILD_WRKSRC}/home/foo/.mozilla
+ ${INSTALL} -d -o 1001 -g 1001 \
+ ${BUILD_WRKSRC}/home/foo/.mozilla/plugins
+ ${LN} -sf /root/libfreshwrapper-pepperflash.so \
+ ${BUILD_WRKSRC}/home/foo/.mozilla/plugins
+
+ ${MOUNT} -t nullfs /tmp ${BUILD_WRKSRC}/tmp
+ ${MKDIR} ${BUILD_WRKSRC}${LOCALBASE}/lib/PepperFlash
+ ${MOUNT} -t nullfs ${LOCALBASE}/lib/PepperFlash \
+ ${BUILD_WRKSRC}${LOCALBASE}/lib/PepperFlash
+
+test: pre-test
+ ${SETENV} -u XAUTHORITY ${CHROOT} ${BUILD_WRKSRC} /bin/su foo -c \
+ "firefox -no-remote"
+
+test-clean:
+ @${UMOUNT} ${BUILD_WRKSRC}/tmp 2>/dev/null || ${TRUE}
+ @${UMOUNT} ${BUILD_WRKSRC}${LOCALBASE}/lib/PepperFlash 2>/dev/null || ${TRUE}
+
+.PHONY: pre-test test test-clean
+
+.include <bsd.port.mk>
Added: trunk/www/linux-c6-freshplayerplugin/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/www/linux-c6-freshplayerplugin/distinfo Sun Sep 21 13:10:40 2014 (r1701)
@@ -0,0 +1,2 @@
+SHA256 (freshplayerplugin-0.2.0.tar.gz) = 04fb5fa5257c37215c86e67139ece3a992757fc2fca7db552f189b2faca4072e
+SIZE (freshplayerplugin-0.2.0.tar.gz) = 258233
Added: trunk/www/linux-c6-freshplayerplugin/files/patch-src__pp_resource.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/www/linux-c6-freshplayerplugin/files/patch-src__pp_resource.h Sun Sep 21 13:10:40 2014 (r1701)
@@ -0,0 +1,41 @@
+--- src/pp_resource.h~
++++ src/pp_resource.h
+@@ -47,6 +47,38 @@
+ #include <cairo.h>
+ #include <asoundlib.h>
+ #include <gtk/gtk.h>
++#include <pthread.h>
++
++#if !GLIB_CHECK_VERSION(2, 31, 0)
++static inline
++GThread *
++g_thread_new(const gchar *unused, GThreadFunc func, gpointer data)
++{
++ GThread *thread = g_thread_create(func, data, TRUE, NULL);
++ if (!thread) {
++ g_error("g_thread_create failed");
++ }
++ return thread;
++}
++
++static inline
++void
++g_hash_table_add(GHashTable *table, gpointer key)
++{
++ g_hash_table_replace(table, key, key);
++}
++
++static inline
++gpointer
++g_async_queue_timeout_pop(GAsyncQueue *queue, guint64 timeout)
++{
++ GTimeVal end_time;
++
++ g_get_current_time(&end_time);
++ g_time_val_add(&end_time, timeout);
++ return g_async_queue_timed_pop(queue, &end_time);
++}
++#endif
+
+
+ #define free_and_nullify(obj, field) \
Added: trunk/www/linux-c6-freshplayerplugin/files/patch-src__ppb_flash_menu.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/www/linux-c6-freshplayerplugin/files/patch-src__ppb_flash_menu.c Sun Sep 21 13:10:40 2014 (r1701)
@@ -0,0 +1,11 @@
+--- src/ppb_flash_menu.c~
++++ src/ppb_flash_menu.c
+@@ -136,7 +136,7 @@ static
+ void
+ _destroy_flash_menu_ptac(void *param)
+ {
+- GMenu *menu = param;
++ void *menu = param;
+ g_object_unref(menu);
+ }
+
Added: trunk/www/linux-c6-freshplayerplugin/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/www/linux-c6-freshplayerplugin/pkg-descr Sun Sep 21 13:10:40 2014 (r1701)
@@ -0,0 +1,6 @@
+The main goal of this project is to get PPAPI (Pepper) Flash player
+working in Firefox. A wrapper is implemented, some kind of adapter
+which will look like browser to PPAPI plugin and look like NPAPI
+plugin for browser.
+
+WWW: https://github.com/i-rinat/freshplayerplugin
More information about the freebsd-gecko
mailing list