From 51e5f1903abc9a2d9e5db85f5563bbc0fa1cbae9bbafc16e938cf0da65878152 Mon Sep 17 00:00:00 2001 From: Dave Plater Date: Sat, 29 Dec 2018 13:26:53 +0000 Subject: [PATCH] Accepting request 661961 from home:plater MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Patched up crippled build with new perl, the perl scripts no longer work. - Added xine-lib-nukefaadetc.patch for the same reason. - Build with libmpeg2. - Rebase fix-non-x86-build.diff to fix arm build. - Update to release 1.2.9 and add xine-lib-a52dec.patch. - Moved xineplug_decode_mad and xineplug_decode_a52 into the main package as they are now unrestricted. - Enabled sdl and jack subpackages. - Upstream changes: * Add LIBXINE_VERBOSITY environment var override. * Add auto gapless switch. Play clips to their very end when that is likely what the user wants. * Add video single step feature. * Add generic keyframe index feature. * Add x32 (x86 32 on 64bit) support. * Add some more debug logging. * Join 4 network input plugins into a single file. * Matroska fixes. * Build fixes. * Directx2 audio fixes. * VAAPI fixes. * XCB video fixes and optimizations. * Return driver held video frames on shutdown properly. * FAAD audio compatibility fixes. * Fix VP9 playback. * Fix post filtering crash. * Make xml parser thread safe. * More user configuration safety. * Inline assembly fixes. * Failed memory allocation safety fixes. * Memory leak fixes. * Debug and LOG build fixes. * Again, lots of small fixes and optimizations. * Better multiengine client safety. * Hide yuv2rgb implementation details. * Use a single libyuv2rgb copy in both engine and plugins. * Minor ffmpeg optimization. * Lift a few video engine handbrakes. Less CPU load, fewer frame drops, faster seeking. * Optimize audio engine. * Optimize demux buffering system. * Optimize metronom clock. * Optimize port tickets. * Optimize sse/mmx2 memcpy. * Code simplification and cleanup. * Update german translation. * Add LIBXINE_VERBOSITY environment var override. * Add auto gapless switch. Play clips to their very end when that is likely what the user wants. * Add video single step feature. * Add generic keyframe index feature. * Add x32 (x86 32 on 64bit) support. * Add some more debug logging. * Join 4 network input plugins into a single file. * Matroska fixes. * Build fixes. * Directx2 audio fixes. * VAAPI fixes. * XCB video fixes and optimizations. * Return driver held video frames on shutdown properly. * FAAD audio compatibility fixes. * Fix VP9 playback. * Fix post filtering crash. * Make xml parser thread safe. * More user configuration safety. * Inline assembly fixes. * Failed memory allocation safety fixes. * Memory leak fixes. * Debug and LOG build fixes. * Again, lots of small fixes and optimizations. * Better multiengine client safety. * Hide yuv2rgb implementation details. * Use a single libyuv2rgb copy in both engine and plugins. * Minor ffmpeg optimization. * Lift a few video engine handbrakes. Less CPU load, fewer frame drops, faster seeking. * Optimize audio engine. * Optimize demux buffering system. * Optimize metronom clock. * Optimize port tickets. * Optimize sse/mmx2 memcpy. * Code simplification and cleanup. * Update german translation. - Cleanup buildrequires so neither Mesa-devel nor xorg-x11-devel meta/mega packages are required anymore. - Build unconditionally with modplug and pulseaudio - Remove dependency to gcc5 - Use simple bcond for ffmpeg - Update to release 1.2.8 - Remove patches fixed upstream: xine-lib-crippled-ffmpeg3.0.patch, xine-lib-ffmpeg3.0.patch and xine-lib-link-xcb.patch. - Removed precheckin_cripple_tarball.sh and integrated it into the spec file. - Upstream changes: * Add HEVC to QT demuxer. * Add libOpenHEVC decoder. * Add h.265/HEVC decoding to VAAPI. * Detach VAAPI video out from ffmpeg. * VAAPI fixes. * Improved Matroska compatibility (TrueHD and PCM sound, HDMV/Text subtitles). * Add faad LATM support. * Add faad preamp gain control and channel mixer. * Update/fix internal libfaad. * Integrate 6 basic plugins into libxine. * ffmpeg fixes and optimizations. * Use external libdvdnav by default. * Optimize video out. * AVFormat demuxer fixes. * (XCB)XV video out fixes. * Lots of small fixes and optimizations. * Build fixes (newer automake, xcb, libdvdcss, dxr3, make dist, 32+64bit dual install, gcc 4.x with GNU ld 2.26 ...). * Better C++ compatibility. * Add support for avi WAVE_FORMAT_EXTENSIBLE. * Add "Time Domain Audio Analyzer" Visualization Post Plugin. * Add support for compressed HDMV PGS subtitles in Matroska. * Add HW accelerated OSD for Raspberry Pi. * Add simple deep color (9/10bit) support via ffmpeg. * Join 15 video demuxers into a single multiplugin lib. * Join 5 vdpau decoders into a single multiplugin lib. * Join 3 raw video decoders into a single multiplugin lib. * Make ffmpeg/postproc optional. * Log individual items when loading multiplugin libs. * Improved qt/mp4 edit list handling. * Detect mp3 files with large id3v2 tags. * Auto recover from temporary DVB signal loss. * Fix demuxing low framerate mp4. * DVB AAC sound compatibility fix. * ffmpeg audio downmix level fix and optimization. * ffmpeg multithreading fixes. * ffmpeg compatibility fixes. * BluRay subtitle fixes. * Various small fixes. * OpenGL(2) video out fixes and optimizations. * Fix some issues with heavy stream seeking. * Build fixes, including missing vcd libs and much less warnings. * Code simplifications. - fix build with ImageMagick 7 + xine-lib-ImageMagick7.patch - Fixed build in Leap:42.2 by building with gcc5. - Removed conditinals for old openSUSE versions from spec file. - Modified pre checkin script to enable build with the ffmpeg libs that are in the distribution. - Added xine-lib-crippled-ffmpeg3.0.patch to enable leap and above to build with ffmpeg3. - Removed unused build flags. - Accept any ffmpeg version in BuildRequires - Add xine-lib-link-xcb.patch: fix linking of libxcb. As our code uses the functions, we must not rely on 3rd parties to hopefully bring the right libraries to link. https://bugs.xine-project.org/show_bug.cgi?id=573 - Drop libsmbclient BuildRequires: requiring a library to build is in any case wrong. It's the responsibility of a -devel package to pull in the real libraries. - Added xine-lib-ffmpeg3.0.patch to build against ffmpeg-3.0 libraries on PMBS. - Add pkgconfig(libva-glx) to BuildRequires because it's a separate package for openSUSE > 13.2. - Replace implicit Requires from old ffmpeg with BuildRequires to fix build in packman - update to 1.2.6 * Add libmmal video output plugin for Raspberry Pi. * Add libmmal HW video decoder plugin for Raspberry Pi. * Add overlay colormatrix support. * Add "sqare monitor pixels" config option. * Add VAAPI colormatrix and fullrange video support. * Add "radeonhd" XV colormatrix support. * Add Opus audio support. * Update german translation. * Optimize OpenGL2 video out. * Optimize raw RGB video decoder. * Fix multithread ffmpeg video decoding. * Fix/optimize DVB subtitles. * Fix external text subtitles. * BSD build fixes. * Clang build fixes. * Build optimization fixes (aliasing). * AVformat demux build fix. * More safety on memory allocation failure. * Fix detection of and compilation with libcaca 0.99 beta 19. - use the xz compressed tarball provided by upstream and change precheckin_cripple_tarball.sh accordingly - should fix boo#913588 - update to 1.2.5 * Update german translation. * Add bass downmix support to AC3 decoder. * Add experimental YCgCo colorspace support. * Add avformat demux plugin. - Support for new formats and protocols. - Proper rtsp support (with avformat+rtsp://, rtsp+tcp:// and rtsp+http:// mrls). - by default native xine demux plugins are probed first. This can be overridden in config, by selecting demuxer in mrl (#demux:avformat), or by using "avformat+" mrl prefix. * Add avio (libavformat) input plugin: - Support for new protocols (https://, ftp://, sftp://, ...). - Support for seekable http streams (with "avio+http://" mrl). - By default native xine input plugins are used. This can be overridden in config or by using "avio+" mrl prefix. * Recognise & use HEVC/H.265. (ffmpeg) * Add support for HEVC/H.265 to the mpeg-ts demuxer. * Add support for HEVC/H.265 and VP9 to the matroska demuxer. * Add VP8/VP9 decoder using libvpx. * Modernise Quicktime demuxer: - Multiple user selectable audio traks. - Support AC3, EAC3, vorbis, Purevoice audio. - Support ISO fragment media files. - More safety on broken files. - Slightly faster. * Recognise & use ADPCM G.726 and ATRAC3. (ffmpeg/libva) * Build fixes. * Fix HDMV subtitle channel. * FFmpeg compatibility fixes. * Some colour format conversion fixes. * Fix RealVideo re-ordered PTS: pass through, let the decoder re-order it. * Fix some problems with COOK audio. - from 1.2.4 * Some VAAPI plugin fixes (build, image size changes). * ffmpeg multi-channel playback fixes: - Handle channel configuration changes sooner. - Generic layout if none provided; follow user changes. - Defer opening output if nothing to play. - Don't re-open with identical settings. - Don't use the bits-per-sample value (may not match decoder output). * ffmpeg video fixes: - Default to square pixels, avoiding black bars & unnecessary scaling. - Avoid CODEC_FLAG_EMU_EDGE (and some possible segfaults). - Use MPEG2VIDEO. * OpenGL2 output: don't render into invalid drawable. * Fix a possible xine_play() hang related to display locking. * FLV demuxer rewrite: - Improved metadata parsing. - PTS/DTS fixes. - Large file support on 32-bit. - Much improved seeking. - Much optimisation. - More codecs supported. * audio_out speed control fixes. * Optimised RGB→YUY2 conversion. * Avoid a possible performance penalty where AVX-optimised memcpy is used. * Add BD-J (BluRay Java) support with ARGB overlay capable video drivers (opengl2, vaapi, vdpau) * Add support for theora 4:2:2 and 4:4:4 pixel formats - Removed xine-lib-missing-include-1.2.3.patch, the missing file is now included in the upstream tarball - detect smbclient - update to 1.2.3 * Add VAAPI HW decoding support * Add OpenGL 2.0 output plugin * Add crop support to XShm output plugins * Add color matrix and full range support to OpenGL/Xv/XShm output plugins * Add test image generator input plugin * Add fast libjpeg based JPEG decoder * Add max. Xv image size detection to Xv video output plugin * Fix crash when trying to display too large jpeg image with Xv output plugin * Fix possible crash when stopping playback with deinterlacing enabled * Support large PAT in MPEG TS * Handle EAC3 audio (via ffmpeg) - update license to new format - Added xine-lib-theora.patch to add fourcc code to xine - fix build for non-x86 architectures (disable deinterlace plugin) - don't include .la files in libxine-devel to avoid bogus libtool errors - provide and obsolete xine-devel and xine-lib for backward compat - update to 1.2.2 * Fix musepack decoder compilation if libmpcdec headers aren't available. * Configure tests for xinerama & VideoCD support now soft-fail properly. * The DVB plugin is working again. * OpenGL OSD fix. * YUV conversion MMX/SSE optimisations. * YUV420 H.264 is playable now; YUVJ444P is correctly handled. * Support FLAC in Matroska; support BMP. * Various build fixes for Windows. - updated crippled version, removed mad and a52dec - Remove dependency from libxine-devel to libffmpeg-devel - update to 1.2.1 * The "I'm at Tyneside LUG" release. * Enable PulseAudio, JACK and VDPAU on the Hurd. * Rewrite of VDPAU OSD handling. * sndio plugin is now buildable. * Various bug fixes. - first build of xine-lib-12 for packman OBS-URL: https://build.opensuse.org/request/show/661961 OBS-URL: https://build.opensuse.org/package/show/multimedia:xine/xine-lib?expand=0&rev=112 --- xine-lib-nukefaadetc.patch | 11 ++++++ xine-lib.changes | 8 +++++ xine-lib.spec | 69 +++++++++++++++++++++++++------------- 3 files changed, 64 insertions(+), 24 deletions(-) create mode 100644 xine-lib-nukefaadetc.patch diff --git a/xine-lib-nukefaadetc.patch b/xine-lib-nukefaadetc.patch new file mode 100644 index 0000000..10cab92 --- /dev/null +++ b/xine-lib-nukefaadetc.patch @@ -0,0 +1,11 @@ +Index: contrib/Makefile.am +=================================================================== +--- contrib/Makefile.am.orig 2018-01-11 14:49:46.000000000 +0200 ++++ contrib/Makefile.am 2018-12-29 14:25:07.143736494 +0200 +@@ -1,5 +1,4 @@ +-SUBDIRS = libmpcdec libxdg-basedir libdca nosefart gsm610 libmad a52dec \ +- libfaad ++SUBDIRS = libmpcdec libxdg-basedir libdca nosefart gsm610 libmad a52dec + + + if BUILD_DHA_KMOD diff --git a/xine-lib.changes b/xine-lib.changes index b390bf6..2800d52 100644 --- a/xine-lib.changes +++ b/xine-lib.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Sat Dec 29 12:53:21 UTC 2018 - davejplater@gmail.com + +- Patched up crippled build with new perl, the perl scripts no + longer work. +- Added xine-lib-nukefaadetc.patch for the same reason. +- Build with libmpeg2. + ------------------------------------------------------------------- Sat Jun 2 23:32:45 UTC 2018 - bjorn.lie@gmail.com diff --git a/xine-lib.spec b/xine-lib.spec index 4bea4d1..1d64fab 100644 --- a/xine-lib.spec +++ b/xine-lib.spec @@ -28,6 +28,7 @@ Name: xine-lib %bcond_with onlynondistributable %if 0%{?suse_version} > 1320 BuildRequires: gcc +BuildRequires: pkgconfig(libmpeg2) %else # Leap 42.3+ %if 0%{?leap_version} >= 420300 @@ -125,7 +126,7 @@ Version: 1.2.9 Release: 0 %define abiversion 2.7 Summary: Video Player with Plug-Ins -License: GPL-2.0+ and SUSE-Public-Domain +License: GPL-2.0-or-later AND SUSE-Public-Domain Group: Productivity/Multimedia/Video/Players Url: https://www.xine-project.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -148,6 +149,10 @@ Patch4: xine-lib-theora.patch Patch8: xine-lib-ImageMagick7.patch # PATCH-FIX-UPSTREAM xine-lib-a52dec.patch davejplater@gmail.com -- Change in a52dec api. Patch6: xine-lib-a52dec.patch +%if %{with distributable} +#PATCH-Workaround xine-lib-nukefaadetc.patch davejplater@gmail.com - supliment do_nukeentry(). +Patch7: xine-lib-nukefaadetc.patch +%endif %description

Great video and multimediaplayer, supports DVD, MPEG, AVI, DivX, VCD, Quicktime ...

You need a frontend for xine-lib like xine-ui, gxine, kaffeine or totem.

Since 1-rc6 the package number is reduced, all you may miss, is in the base package

If you want to play css encrypted Video-DVD's, you need to install libdvdcss.

@@ -157,7 +162,7 @@ Patch6: xine-lib-a52dec.patch %package -n libxine2 Summary: Video Player with Plug-Ins -License: GPL-2.0+ +License: GPL-2.0-or-later Group: Productivity/Multimedia/Video/Players Provides: libxine2-syncfb = %{version}-%{release} Obsoletes: libxine2-syncfb < %{version}-%{release} @@ -212,7 +217,7 @@ Autoren: %package -n libxine-devel Summary: Development environment for xine-based media players -License: GPL-2.0+ and SUSE-Public-Domain +License: GPL-2.0-or-later AND SUSE-Public-Domain Group: Development/Libraries/C and C++ Requires: freetype2-devel Requires: glibc-devel @@ -275,7 +280,7 @@ Autoren: %package -n libxine2-pulse Summary: Pulseaudio plugin for xine -License: GPL-2.0+ and SUSE-Public-Domain +License: GPL-2.0-or-later AND SUSE-Public-Domain Group: Productivity/Multimedia/Video/Players Requires: libxine2 = %{version} Supplements: packageand(libpulse0:libxine2) @@ -302,7 +307,7 @@ Autoren: %package -n libxine2-sdl Summary: SDL plugin for xine -License: GPL-2.0+ and SUSE-Public-Domain +License: GPL-2.0-or-later AND SUSE-Public-Domain Group: Productivity/Multimedia/Video/Players Requires: libxine2 = %{version} @@ -329,7 +334,7 @@ Autoren: %package -n libxine2-aa Summary: Aalib and libcaca plugin for xine -License: GPL-2.0+ and SUSE-Public-Domain +License: GPL-2.0-or-later AND SUSE-Public-Domain Group: Productivity/Multimedia/Video/Players Requires: libxine2 = %{version} @@ -356,7 +361,7 @@ Autoren: %package -n libxine2-esd Summary: Esd plugin for xine -License: GPL-2.0+ and SUSE-Public-Domain +License: GPL-2.0-or-later AND SUSE-Public-Domain Group: Productivity/Multimedia/Video/Players Requires: libxine2 = %{version} @@ -383,7 +388,7 @@ Autoren: %package -n libxine2-jack Summary: Jack plugin for xine -License: GPL-2.0+ and SUSE-Public-Domain +License: GPL-2.0-or-later AND SUSE-Public-Domain Group: Productivity/Multimedia/Video/Players Requires: libxine2 = %{version} @@ -410,7 +415,7 @@ Autoren: %package -n libxine2-directfb Summary: Directfb plugin for xine -License: GPL-2.0+ and SUSE-Public-Domain +License: GPL-2.0-or-later AND SUSE-Public-Domain Group: Productivity/Multimedia/Video/Players Requires: libxine2 = %{version} @@ -437,7 +442,7 @@ Autoren: %package -n libxine2-gnome-vfs Summary: Gnome-vfs plugin for xine -License: GPL-2.0+ and SUSE-Public-Domain +License: GPL-2.0-or-later AND SUSE-Public-Domain Group: Productivity/Multimedia/Video/Players Requires: libxine2 = %{version} @@ -453,7 +458,7 @@ Eingabeplugin welches xine ermöglicht Gnome-vfs zu benutzen %package -n libxine2-codecs # these libs are possibly illegal and may not work without libdvdcss anyway Summary: Xine plugins for watching DVDs, DivX and more -License: GPL-2.0+ and SUSE-Public-Domain +License: GPL-2.0-or-later AND SUSE-Public-Domain Group: Productivity/Multimedia/Video/Players Requires: libxine2 = %{version} Provides: libxine2-dvd = %{version}-%{release} @@ -516,14 +521,26 @@ modplug: %{with modplug} EOF %setup -q %if %{with distributable} +%patch7 # Taken from precheckin_cripple_tarball.sh # $1: files $2: entries $3: prefix $4: postfix +# NOTE: the perl do_nukeentry has stopped working with the latest perl +# I've left it here hoping someone will fix it. Thanks +# Don't forget to remove xine-lib-nukefaadetc.patch when the perl scripts are functioning again. +%if 1 == 0 do_nukeentry() { for d in $1 ; do - perl -i -e 'undef $/; $_=<>; for $e (qw|'"$2"'|) { s|(?<=[^-a-zA-Z0-9_./])'"$3"'$e'"$4"'(?=[^-a-zA-Z0-9_./])||g }; print' $d + perl -i -e 'undef $/; $_=<>; for $e (qw|'"$2"'|) { s|(?<=[^-a-zA-Z0-9_./])'"$3"'$e'"$4"'(?=[^-a-zA-Z0-9_./])||g }; print' ${d} +done +} +%else +do_nukeentry() { +for i in ${2};do + cat ${1}|grep -v ${i} >${1}n;mv ${1}n ${1} done } +%endif # $1: files $2: entries $3: prefix $4: postfix do_nukeline() { for d in $1 ; do @@ -543,7 +560,7 @@ popd >/dev/null # combined/ffmpeg echo 1>&2 "Crippling..." -c_subdirs="dxr3 libdts libfaad libffmpeg libmpeg2 libspucc libspudec libspudvb libw32dll input/vcd" +c_subdirs="faad planar dxr3 asf dmx_video libdts libfaad libffmpeg libspucc libspudec libspudvb libw32dll input/vcd" c_demuxers="group_video.c demux_elem.c xineplug_dmx_asf.la asfheader.h asfheader.c demux_asf.c xineplug_dmx_mpeg.la demux_mpeg.c xineplug_dmx_mpeg_block.la demux_mpeg_block.c xineplug_dmx_mpeg_ts.la demux_ts.c xineplug_dmx_mpeg_elem.la demux_elem.c xineplug_dmx_mpeg_pes.la demux_mpeg_pes.c xineplug_dmx_yuv4mpeg2.la demux_yuv4mpeg2.c" c_input="xineplug_inp_mms.la input_mms.c mms.c mmsh.c ../demuxers/asfheader.c mms.h mmsh.h xineplug_inp_vcdo.la input_vcd.c vcd" c_libxineadec="xineplug_decode_gsm610.la xineplug_decode_nsf.la gsm610.c nsf.c gsm610 nosefart" @@ -551,6 +568,8 @@ c_libxineadec="xineplug_decode_gsm610.la xineplug_decode_nsf.la gsm610.c nsf.c do_nukeentry src/Makefile.am "$c_subdirs" do_nukeentry configure.ac "$c_subdirs" "src/" "/[a-zA-Z0-9_./]*Makefile" do_remove src "$c_subdirs" +do_nukeentry src/demuxers/Makefile.am "$c_subdirs" +do_nukeentry contrib/Makefile.am "$c_subdirs" do_nukeentry src/demuxers/Makefile.am "$c_demuxers" do_remove src/demuxers "$c_demuxers" do_nukeentry src/input/Makefile.am "$c_input" @@ -559,9 +578,9 @@ do_remove src/input "$c_input" #do_remove src/audio_dec "$c_audiodec" #do_nukeentry src/combined/Makefile.am "ffmpeg" #do_remove src/combined "ffmpeg" -do_nukeentry src/post/planar/Makefile.am "pp\.c \S*/libpostproc/libpostprocess\.la" -do_nukeline src/post/planar/planar.c "pp_init_plugin pp_special_info" -do_remove src/post/planar "pp.c" +do_nukeentry src/post/Makefile.am "planar" +#do_nukeline src/post/planar/planar.c "pp_init_plugin pp_special_info" +do_remove src/post/planar "*" %endif @@ -678,8 +697,16 @@ xineplug_inp_rtp xineplug_decode_rawvideo %if !%{with distributable} xineplug_decode_vdpau +post/xineplug_post_audio_filters +post/xineplug_post_goom +post/xineplug_post_mosaico +post/xineplug_post_switch +%ifarch %ix86 x86_64 +post/xineplug_post_tvtime %endif +post/xineplug_post_visualizations xineplug_dmx_video +%endif #end new xineplug_decode_lpcm xineplug_decode_real @@ -721,14 +748,6 @@ vidix/savage_vid vidix/sis_vid vidix/unichrome_vid %endif -post/xineplug_post_audio_filters -post/xineplug_post_goom -post/xineplug_post_mosaico -post/xineplug_post_switch -%ifarch %ix86 x86_64 -post/xineplug_post_tvtime -%endif -post/xineplug_post_visualizations # .pulse xineplug_ao_out_pulseaudio @@ -840,7 +859,9 @@ rm -rf %{buildroot} %doc %{_mandir}/man1/xine-list-*.gz #%%doc %%{_mandir}/man5/xine.* %{_defaultdocdir}/xine +%if !%{with distributable} %dir %{_libdir}/xine/plugins/%{abiversion}/post +%endif %{_libdir}/xine/plugins/%{abiversion}/mime.types # # xine fonts