| Submitter | Andy Leiserson |
|---|---|
| Date | 2013-01-17 06:42:46 |
| Message ID | <20130117064246.GC19815@leiserson.org> |
| Download | mbox | patch |
| Permalink | /patch/3178/ |
| State | Changes Requested |
| Delegated to: | Jonas Gorski |
| Headers | show |
Comments
For anyone looking for a working rygel package, I would suggest one of: * Attitude adjustment with the packages from https://github.com/aandyl/openwrt-packages/tree/rygel-attitude-adjustment * Trunk at revisions >= r34528 and < r35523, with the patch at http://patchwork.openwrt.org/patch/3178/, or newer revisions with the same patch and with r35523 reverted. The audio issues I mentioned previously should be resolved in kernel 3.7.7 and 3.8. More detail on my most recent experience building rygel for openwrt follows. I'll pause here to ask whether there's interest in maintaining the package in openwrt archive. If not, I would probably invest less effort in updating dependency packages in a way that's generally useful, and I'd also suggest removing rygel, gupnp*, vala, and libgee from the archive rather than let them go stale. (FWIW, there was an inquiry about building rygel in the forum, so there's at least some interest.) As for the current state of the build: r35523 updated gupnp to the latest version, 0.19.4 (and also updated gssdp). The packaged version of rygel (0.14.1) doesn't work with gupnp 0.19.4. I've worked on updating to the latest rygel. It involves quite a few updates to various dependencies, including updating to GStreamer 1.0. More troubling is the issue of generating vapi (Vala API) files for the newer gupnp releases. Previously the generated vapi were shipped in the gupnp-vala dist tarball, which avoided the issue. (I didn't realize the distribution included these generated files when I packaged it.) The recent gupnp releases no longer ship vapi files, so they must be generated. The flow for generating the vapi files involves generating a .gir with the gobject introspection tools, and then generating the .vapi from the .gir with vapigen. The gobject introspection tools compile *and run* a test program linked against the library being "introspected". Because of this, gobject introspection does not in general support cross compiling (see https://bugzilla.gnome.org/show_bug.cgi?id=592311). However, the .gir and the .vapi are portable across architectures. I have considered either doing host builds of gupnp (and all its dependencies) so that the .gir and .vapi can be generated on the host and then copied from the host build area to the target build area, or shipping generated .vapi with the openwrt packages. In the latter case, I would still need to maintain the host builds for gupnp+deps to generate the vapi when updating the packages, but the host builds wouldn't be needed to build the packages, and wouldn't need to be added to the packages repo.
On Thu, Jan 17, 2013 at 7:42 AM, Andy Leiserson <andy@leiserson.org> wrote: > manually specify vapidirs in staging_dir > correct libgupnp-vala package name in depends > > Signed-off-by: Andy Leiserson <andy@leiserson.org> rygel currently doesn't build with gcc 4.6 and newer it seems, so I didn't apply it. I updated gupnp-av to a compiling version though. Rygel is apparently fixed in 17.1 and later. Since this is a major version bump and I lack the ability to test rygel, it would be good if you could provide a patch for it.
On Tue, Apr 23, 2013 at 11:53:47AM +0200, Jonas Gorski wrote: >rygel currently doesn't build with gcc 4.6 and newer it seems, so I >didn't apply it. I updated gupnp-av to a compiling version though. >Rygel is apparently fixed in 17.1 and later. Since this is a major >version bump and I lack the ability to test rygel, it would be good if >you could provide a patch for it. I have recent rygel (0.18.2) working locally. The changes are available at: https://github.com/aandyl/openwrt-packages/commits/rygel The two patches to the main tree that I just sent to the list are required for the build to work. Among the package changes needed are an update to gstreamer 1.0 and addition of host builds for a number of packages (for reasons I explained previously in this thread). I expect that updating to gstreamer 1.0 will break other packages, which might be resolvable by version bumps, or might require more extensive work. I do intend to try this but may not get to it for a few more weeks.
Patch
diff --git a/multimedia/rygel/Makefile b/multimedia/rygel/Makefile index ce9c4e7..93e12d0 100644 --- a/multimedia/rygel/Makefile +++ b/multimedia/rygel/Makefile @@ -16,7 +16,7 @@ PKG_SOURCE_URL:=@GNOME/rygel/0.14/ PKG_SHA256SUM:=c4f79fb30bc1a062a2ffdadc7a55dd91fa58240302f152fb070d8c674bdddd67 PKG_FIXUP:=autoreconf -PKG_BUILD_DEPENDS:=vala/host intltool/host vala gupnp-vala +PKG_BUILD_DEPENDS:=vala/host intltool/host vala libgupnp-vala include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk diff --git a/multimedia/rygel/patches/010-vapidirs-from-pkg-config.patch b/multimedia/rygel/patches/010-vapidirs-from-pkg-config.patch deleted file mode 100644 index 70023c5..0000000 --- a/multimedia/rygel/patches/010-vapidirs-from-pkg-config.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- a/m4/rygel.m4 2012-04-12 08:47:08.000000000 -0700 -+++ b/m4/rygel.m4 2012-06-15 11:55:36.000000000 -0700 -@@ -99,6 +99,25 @@ - [dnl check for vala - AM_PROG_VALAC([$1]) - -+ dnl See where we should look for vapi files. If it's under -+ dnl $datadir, then assume it's one of the standard locations where -+ dnl vala will look. Otherwise, specify explicitly. -+ dnl -+ dnl Note the distinction between these directories (where we look -+ dnl for APIs when we do vala builds) and VAPIDIR, which is where we -+ dnl install our own vapi files. -+ -+ for var in vapidir vapidir_versioned; do -+ AS_IF([dir=`$PKG_CONFIG --variable=$var vapigen`], -+ [ -+ AC_MSG_NOTICE([got $var=$dir from pkg-config]) -+ AS_IF([expr "$dir" : "${datadir}"], -+ [], -+ [RYGEL_ADD_VALAFLAGS([--vapidir $dir])]) -+ ], -+ [AC_MSG_NOTICE([pkg-config didn't return a value for $var, relying on valac built-in defaults])]) -+ done -+ - AS_IF([test x$VALAC = "x"], - [AC_MSG_ERROR([Cannot find the "valac" compiler in your PATH])], - [ diff --git a/multimedia/rygel/patches/010-vapidirs.patch b/multimedia/rygel/patches/010-vapidirs.patch new file mode 100644 index 0000000..6a4b353 --- /dev/null +++ b/multimedia/rygel/patches/010-vapidirs.patch @@ -0,0 +1,12 @@ +--- a/m4/rygel.m4 2012-04-12 08:47:08.000000000 -0700 ++++ b/m4/rygel.m4 2012-12-17 22:59:38.000000000 -0800 +@@ -99,6 +99,9 @@ + [dnl check for vala + AM_PROG_VALAC([$1]) + ++ RYGEL_ADD_VALAFLAGS([--vapidir $STAGING_DIR/usr/share/vala/vapi]) ++ RYGEL_ADD_VALAFLAGS([--vapidir $STAGING_DIR/usr/share/vala-0.16/vapi]) ++ + AS_IF([test x$VALAC = "x"], + [AC_MSG_ERROR([Cannot find the "valac" compiler in your PATH])], + [
manually specify vapidirs in staging_dir correct libgupnp-vala package name in depends Signed-off-by: Andy Leiserson <andy@leiserson.org> --- For prior discussion, see http://patchwork.openwrt.org/patch/2524/, this eliminates the need for that patch. I am having problems with audio output using the latest trunk, which I'm still looking into. But this patch only changes the build, and I think should make rygel work when built for AA and possibly even for trunk in environments different from mine. multimedia/rygel/Makefile | 2 +- .../patches/010-vapidirs-from-pkg-config.patch | 28 -------------------- multimedia/rygel/patches/010-vapidirs.patch | 12 +++++++++ 3 files changed, 13 insertions(+), 29 deletions(-) delete mode 100644 multimedia/rygel/patches/010-vapidirs-from-pkg-config.patch create mode 100644 multimedia/rygel/patches/010-vapidirs.patch