Page MenuHomeFreeBSD

multimedia/libxine: Update to 1.2.9; fix options; unmark broken
ClosedPublic

Authored by tobik on Aug 22 2018, 11:25 AM.
Tags
None
Referenced Files
F105830426: D16840.id47135.diff
Sat, Dec 21, 9:10 AM
F105830107: D16840.id47456.diff
Sat, Dec 21, 9:03 AM
F105829837: D16840.id47089.diff
Sat, Dec 21, 8:56 AM
F105829734: D16840.id47281.diff
Sat, Dec 21, 8:54 AM
F105829722: D16840.id47397.diff
Sat, Dec 21, 8:53 AM
F105829707: D16840.id47086.diff
Sat, Dec 21, 8:53 AM
F105829632: D16840.id47372.diff
Sat, Dec 21, 8:51 AM
F105829631: D16840.id47465.diff
Sat, Dec 21, 8:51 AM

Details

Summary

multimedia/libxine:

  • Update to 1.2.9
  • Added ImageMagick to default options
    • gxine needs it to build
  • Put options in alphabetical order
    • makes it easier to read/find options
  • Fixed with/enable options
    • configure options changed

Changelog:
https://sourceforge.net/projects/xine/
files/xine-lib/1.2.9/README.txt/view

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 19070
Build 18701: arc lint + arc unit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
multimedia/libxine/Makefile
82–83

This is still wrong.

Why does the previous way with

ESOUND_USE=	GNOME=esound

not work?

85–87
GNOMEVFS2_USE=	GNOME=glib20,gconf2,gnomevfs2
116–117

xineplug_dmx_image.so could previously be built with IMAGEMAGICK=off and PIBXUF=on or with IMAGEMAGICK=on and PIXBUF=off or with both on.

The WITH_DMX_IMAGE thing was a way to encode this in the plist. But we can achieve the same thing with a DMX_IMAGE option as @mat suggested. The plist entry for xineplug_dmx_image.so also needs to make use of it again.

ndowens_yahoo.com added inline comments.
multimedia/libxine/Makefile
61

Must have been accidentally removed

64

configure: error: DVB support requested, but DVB not found

> Script "configure" failed unexpectedly.

Please report the problem to ports@FreeBSD.org [maintainer] and attach the
"/usr/local/poudriere/ports/head/multimedia/libxine/work/xine-lib-1.2.9/config.log"
including the output of the failure of your make command. Also, it might be
a good idea to provide an overview of all packages installed on your system
(e.g. a /usr/local/sbin/pkg-static info -g -Ea).

  • Error code 1
85

Is actually needed to build with support . Same with esound

ndowens_yahoo.com marked an inline comment as done.

Updating D16840: multimedia/libxine: Update to 1.2.9; fix options; unmark broken
Revised to use suggested changes

multimedia/libxine/pkg-plist
49–63

These seem to be strangely ordered. Please generate the plist with make makeplist and keep the order that it gives you.

multimedia/libxine/pkg-plist
49–63

Gonna have to do that, but try to put the OPTIONS in order as well, as for some reason OPTIONS_SUB=yes is not setting variables with make makeplist

Updating D16840: multimedia/libxine: Update to 1.2.9; fix options; unmark broken
Sorted pkg-plist using vim :sort

multimedia/libxine/pkg-plist
49–63

I do not understand what variables make makeplist should set.

It is now even worse than before. Please run make makeplist and add the %%FOO%% back to it. Do not change the order of the lines in that file.

Updating D16840: multimedia/libxine: Update to 1.2.9; fix options; unmark broken
Fixed plist ordering, per Mat

multimedia/libxine/Makefile
43

That comment is useless.
LLD_UNSAFE is only used on 12-CURRENT, so it is obvious.
You should either remove the comment, or make it useful, like saying why it is needed.

Updating D16840: multimedia/libxine: Update to 1.2.9; fix options; unmark broken
Remove lld_unsafe comment

multimedia/libxine/Makefile
64

The only reason this happens is because files/patch-configure was deleted. Please bring it back and put back --enable-dvb (or make it an option). It might need to be rebased but it still largely applies.

73

libxine has an sndio backend. Could you add an SNDIO option too?

multimedia/libxine/files/patch-configure
3–11

This hunk does not apply. Deleting it will make the patch usable against libxine 1.2.9.

26

DVB support on FreeBSD was patched in here.

multimedia/libxine/pkg-plist
26–27

Remove the extra whitespace at the beginning here.

Done, hope this is the last time of editing :) . Will upload updated one soon after testing

Updating D16840: multimedia/libxine: Update to 1.2.9; fix options; unmark broken
Added Option for ipv6 while here, Added sndio for Tobik, fixed plist white-space; DVB option also added

Done, hope this is the last time of editing :) . Will upload updated one soon after testing

Sorry, there are still problems.

multimedia/libxine/Makefile
44

In a quick test build I got

Error: /usr/local/lib/xine/plugins/2.7/xineplug_decode_spu.so is linked to /usr/local/lib/libdvdnav.so.4 from multimedia/libdvdnav but it is not declared as a dependency
Warning: you need LIB_DEPENDS+=libdvdnav.so:multimedia/libdvdnav

This was outside of Poudriere, so it might have been picked up accidentally. I'd suggest just adding it, because it looks like libxine would use a bundled libdvdnav otherwise. From a Poudriere build log:

checking for DVDNAV... no
*** no usable version of libdvdnav found, using internal copy ***
74

Enable DVB by default as it was before.

111–113

Thank you for adding it.

LIB_DEPENDS implies that the library must be available at both build and run time, so SNDIO_BUILD_DEPENDS should not really be needed.

multimedia/libxine/files/patch-src-libw32dll-wine-registry.c
1–13

This patch is still needed. It does not build in Poudriere on 10.4/i386 without it:

registry.c:140:55: error: use of undeclared identifier 'S_IRUSR'
        fd = xine_create_cloexec(localregpathname, O_WRONLY, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
                                                             ^
registry.c:140:63: error: use of undeclared identifier 'S_IWUSR'
        fd = xine_create_cloexec(localregpathname, O_WRONLY, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
                                                                     ^
registry.c:140:71: error: use of undeclared identifier 'S_IRGRP'
        fd = xine_create_cloexec(localregpathname, O_WRONLY, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
                                                                             ^
registry.c:140:79: error: use of undeclared identifier 'S_IROTH'
        fd = xine_create_cloexec(localregpathname, O_WRONLY, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
                                                                                     ^

There are plist problems on i386 too after readding it:

===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: %%PLUGINSDIR%%/xineplug_decode_qt.so
Error: Orphaned: %%PLUGINSDIR%%/xineplug_decode_w32dll.so

Maybe adding a VIDIX option should be revisted?

multimedia/libxine/pkg-plist
74

Not sorted, move it below the pulseaudio one.

105

%%DVB%%

ndowens_yahoo.com added inline comments.
multimedia/libxine/pkg-plist
74

Mat said to make makeplist and use it’s ordering and add the options

Which I prefer more alphabetical ordering as well but that’s what I was told to do

105

Since it’s not gonna be an option, shouldn’t be need now

multimedia/libxine/pkg-plist
74

makeplist outputs:

%%PLUGINSDIR%%/xineplug_ao_out_pulseaudio.so
%%PLUGINSDIR%%/xineplug_ao_out_sndio.so

So please put the sndio plugin below pulseaudio.

105

I never said to remove the option. Just to put it into OPTIONS_DEFAULT.

ndowens_yahoo.com added inline comments.
multimedia/libxine/pkg-plist
105

Ah sorry misunderstood. As I remember it, it was not an option before so I thought that was what ya meant

Build fails on 11.1/i386 in a different way too. Adding this patch from OpenBSD ports fixes it: https://raw.githubusercontent.com/openbsd/ports/master/multimedia/xine-lib/patches/patch-include_config_h

In file included from memcpy.c:36:
../../include/config.h:31:10: warning: "configure did not detect ARCH_X86_X32!" [-W#warnings]
#        warning "configure did not detect ARCH_X86_X32!"
         ^
memcpy.c:464:7: error: invalid operand for instruction
      BUMPPTR("64","0")
      ^
memcpy.c:145:34: note: expanded from macro 'BUMPPTR'
#  define BUMPPTR(offs,num)   "\n\tleaq\t"offs"(%q"num"), %q"num
                                 ^
<inline asm>:14:17: note: instantiated into assembly here
        leaq    64(%esi), %esi
                          ^~~~
memcpy.c:469:7: error: invalid operand for instruction
      BUMPPTR("64","1")
      ^
memcpy.c:145:34: note: expanded from macro 'BUMPPTR'
#  define BUMPPTR(offs,num)   "\n\tleaq\t"offs"(%q"num"), %q"num
                                 ^
<inline asm>:19:17: note: instantiated into assembly here
        leaq    64(%edi), %edi
                          ^~~~

Build fails on 11.1/i386 in a different way too. Adding this patch from OpenBSD ports fixes it: https://raw.githubusercontent.com/openbsd/ports/master/multimedia/xine-lib/patches/patch-include_config_h

In file included from memcpy.c:36:
../../include/config.h:31:10: warning: "configure did not detect ARCH_X86_X32!" [-W#warnings]
#        warning "configure did not detect ARCH_X86_X32!"
         ^
memcpy.c:464:7: error: invalid operand for instruction
      BUMPPTR("64","0")
      ^
memcpy.c:145:34: note: expanded from macro 'BUMPPTR'
#  define BUMPPTR(offs,num)   "\n\tleaq\t"offs"(%q"num"), %q"num
                                 ^
<inline asm>:14:17: note: instantiated into assembly here
        leaq    64(%esi), %esi
                          ^~~~
memcpy.c:469:7: error: invalid operand for instruction
      BUMPPTR("64","1")
      ^
memcpy.c:145:34: note: expanded from macro 'BUMPPTR'
#  define BUMPPTR(offs,num)   "\n\tleaq\t"offs"(%q"num"), %q"num
                                 ^
<inline asm>:19:17: note: instantiated into assembly here
        leaq    64(%edi), %edi
                          ^~~~

Wow this port is a pain. Currently testing 11-386 but it’s building reps atm. Sorry for all the mistakes previously popping back up. I randomly rollback ports to clean up and thought my diff stored elsewhere was up2date but wasn’t. Started pulling patch using arc lately to try and avoid as much as possible

@tobik. Oh yea I took out vidix because when I looked at it previously I could not port the needed dep as it was too linux-centric and we don’t have the dep needed. So removed it from this coming update

I got figure out what’s going on. On amd64 no pkg-list issue but on i386 there are orphaned pkgs. The only way I can think that may work is add something like if i386 plist”” else “@comment

Or something similar as the options are the same on both archs

Edit: I think I may know what is doing it.

Updating D16840: multimedia/libxine: Update to 1.2.9; fix options; unmark broken
Fixed plist; Added w32codec option, is a must in order to avoid plist issue on i386(seems only builds if i386)

Updating D16840: multimedia/libxine: Update to 1.2.9; fix options; unmark broken
Fixed messed up configure patch

Updating D16840: multimedia/libxine: Update to 1.2.9; fix options; unmark broken
Finished correcting configure patch

Updating D16840: multimedia/libxine: Update to 1.2.9; fix options; unmark broken
Found out that w32codecs build on i386 but not possible on amd64 as there is no /usr/local/bin/win32/
Edited to fix plist issue for either/or

tobik added a reviewer: ndowens_yahoo.com.

It's good enough for me. Let me prepare this for a commit.

multimedia/libxine/Makefile
116–117

Oh, you brought the .if back :-(. I think the earlier attempt with an W32DLL option was much nicer and I think was the right approach.

116–117

You cannot use options helpers after .include <bsd.port.options.mk>. Options have been processed at that point. Any options helper must always be before it or bsd.port.pre.mk.

multimedia/libxine/files/patch-include-xine-xineutils.h
7–11

Patch is needed for building multimedia/phonon-xine:

In file included from xine/plugins.c:23:
In file included from /usr/local/include/xine/input_plugin.h:27:
/usr/local/include/xine/xineutils.h:197:8: error: unknown type name 'inline'
static inline void _x_freep(void *ptr) {
       ^
/usr/local/include/xine/xineutils.h:197:15: error: expected identifier or '('
static inline void _x_freep(void *ptr) {
              ^
2 errors generated.

I suppose we could add USE_CSTD=c99 to phonon-xine, but I think I prefer to just keep this patch.

  • Add W32DLL i386-only option to properly handle the w32dll and qt plugins
  • Readd files/patch-include-xine-xineutils.h to fix the build of multimedia/phonon-xine
  • Remove unrecognized configure args
  • Add missing multimedia/xine and multimedia/vdr-plugin-xineliboutput PLUGINSDIR bumps
  • Add multimedia/gxine plist fix from D16854 (w/o the additional changes to keep it minimal here)

Test build on 10.4/i386 was fine, others still pending.

For the record these are the ports that depend on libxine

# Build with `OPTIONS_SET+=XINE LIBXINE` in make.conf
devel/efl
graphics/opencv
graphics/osg-devel
graphics/osg
graphics/gimageview
x11/eaglemode
audio/atunes
www/npapi-xine
multimedia/phonon-xine
multimedia/quark
multimedia/k9copy-kde4
multimedia/gxine
multimedia/vdr-plugin-xineliboutput
multimedia/subtitlecomposer-kde4
multimedia/xine
  • ABI is not 100% backwards compatible between 1.2.6 and 1.2.9 (see [1]), so bump revisions of all dependents just in case

[1] https://abi-laboratory.pro/index.php?view=timeline&l=xine-lib

  • Remove bogus post-install-VIDIX-on
  • Add W32DLL i386-only option to properly handle the w32dll and qt plugins
  • Readd files/patch-include-xine-xineutils.h to fix the build of multimedia/phonon-xine
  • Remove unrecognized configure args
  • Add missing multimedia/xine and multimedia/vdr-plugin-xineliboutput PLUGINSDIR bumps
  • Add multimedia/gxine plist fix from D16854 (w/o the additional changes to keep it minimal here)

Test build on 10.4/i386 was fine, others still pending.

For the record these are the ports that depend on libxine

# Build with `OPTIONS_SET+=XINE LIBXINE` in make.conf
devel/efl
graphics/opencv
graphics/osg-devel
graphics/osg
graphics/gimageview
x11/eaglemode
audio/atunes
www/npapi-xine
multimedia/phonon-xine
multimedia/quark
multimedia/k9copy-kde4
multimedia/gxine
multimedia/vdr-plugin-xineliboutput
multimedia/subtitlecomposer-kde4
multimedia/xine

I’ve been working on the vdr-plugin-xineliboutput
It’s marked as broken on 12 current but I got it to built but it ends up missing two .so files that’s listed on pkg-plist

multimedia/libxine/Makefile
116–117

Ah looking at the Makefile didn’t remember could do option_plist

Patches aren’t applying cleanly for me after this revision

Patches aren’t applying cleanly for me after this revision

Can you provide more details please?

Patches aren’t applying cleanly for me after this revision

Can you provide more details please?

https://gist.github.com/f4482b503c89ac347543de49e393ba68

Patches aren’t applying cleanly for me after this revision

Can you provide more details please?

https://gist.github.com/f4482b503c89ac347543de49e393ba68

Deleted my ports tree and svn co a new one to see if this helps

Patches aren’t applying cleanly for me after this revision

Can you provide more details please?

https://gist.github.com/f4482b503c89ac347543de49e393ba68

There seems to be some left over files and other unclean state in your ports tree checkout:

===>   Ignoring patchfile patch-configure.orig
===>   Ignoring patchfile patch-include-xine-xineutils.h.orig
===>   Ignoring patchfile patch-include_config.h.orig
Ignoring previously applied (or reversed) patch.
1 out of 1 hunks ignored--saving rejects to src/libw32dll/wine/registry.c.rej
Ignoring previously applied (or reversed) patch.
=> FreeBSD patch patch-src_libw32dll_wine_registry.c failed to apply cleanly.

How did you apply it? I'd suggest to cleanup the previous attempt and use svn patch D16840.diff or patch -E -V none -i D16840.diff.

Patches aren’t applying cleanly for me after this revision

Can you provide more details please?

https://gist.github.com/f4482b503c89ac347543de49e393ba68

There seems to be some left over files and other unclean state in your ports tree checkout:

===>   Ignoring patchfile patch-configure.orig
===>   Ignoring patchfile patch-include-xine-xineutils.h.orig
===>   Ignoring patchfile patch-include_config.h.orig
Ignoring previously applied (or reversed) patch.
1 out of 1 hunks ignored--saving rejects to src/libw32dll/wine/registry.c.rej
Ignoring previously applied (or reversed) patch.
=> FreeBSD patch patch-src_libw32dll_wine_registry.c failed to apply cleanly.

How did you apply it? I'd suggest to cleanup the previous attempt and use svn patch D16840.diff or patch -E -V none -i D16840.diff.

I tried arc patch D16840

Update after starting with clean ports it worked

X11/eaglemode didn’t build on 12. I’ll work on that one next

x11/eaglemode/Makefile
24 ↗(On Diff #47478)

Remove, doesn't work on 12

Replace with:
CFLAGS+= -fPIC

works for me on 12-current

This revision was not accepted when it landed; it landed in state Needs Review.Aug 31 2018, 8:16 AM
This revision was automatically updated to reflect the committed changes.
x11/eaglemode/Makefile
24 ↗(On Diff #47478)

It looks like eaglemode does not respect LDFLAGS which is why LLD_UNSAFE is not working. You should run this by the maintainer.

x11/eaglemode was failing before on 12.0 and the libxine update hasn't made that worse, so I'd rather leave it as is for now and commit the update.