From 659dae458991d3a88865c528cb6450094a977098 Mon Sep 17 00:00:00 2001 From: ziggi Date: Wed, 9 Dec 2020 17:10:32 +0000 Subject: [PATCH] add libSDL2; update ffmpeg --- devel/libSDL2/Makefile | 87 ++++++++++++++++++ devel/libSDL2/distinfo | 3 + .../libSDL2/files/patch-include_SDL__endian.h | 11 +++ devel/libSDL2/files/patch-noegl | 12 +++ .../files/patch-src_cpuinfo_SDL__cpuinfo.c | 24 +++++ devel/libSDL2/files/patch-x-Makefile.in | 11 +++ devel/libSDL2/pkg-descr | 8 ++ devel/libSDL2/pkg-plist | 89 +++++++++++++++++++ media/ffmpeg/Makefile | 70 ++++----------- media/ffmpeg/pkg-plist | 3 + 10 files changed, 267 insertions(+), 51 deletions(-) create mode 100644 devel/libSDL2/Makefile create mode 100644 devel/libSDL2/distinfo create mode 100644 devel/libSDL2/files/patch-include_SDL__endian.h create mode 100644 devel/libSDL2/files/patch-noegl create mode 100644 devel/libSDL2/files/patch-src_cpuinfo_SDL__cpuinfo.c create mode 100644 devel/libSDL2/files/patch-x-Makefile.in create mode 100644 devel/libSDL2/pkg-descr create mode 100644 devel/libSDL2/pkg-plist diff --git a/devel/libSDL2/Makefile b/devel/libSDL2/Makefile new file mode 100644 index 00000000..671dadea --- /dev/null +++ b/devel/libSDL2/Makefile @@ -0,0 +1,87 @@ +# $FreeBSD: head/devel/sdl20/Makefile 551250 2020-10-03 02:21:47Z pkubaj $ + +PORTNAME= SDL2 +PORTVERSION= 2.0.12 +CATEGORIES= devel +MASTER_SITES= https://www.libsdl.org/release/ +#DISTNAME= SDL2-${PORTVERSION} + +MAINTAINER= amdmi3@FreeBSD.org +COMMENT= Cross-platform multimedia development API + +PKGNAMEPREFIX= lib + + +GNU_CONFIGURE= yes +USES= gmake localbase:ldflags pathfix pkgconfig +USE_CSTD= c99 +USE_LDCONFIG= yes + +CONFIGURE_ARGS+= --disable-arts \ + --enable-diskaudio \ + --enable-dummyaudio \ + --enable-video-dummy \ + --disable-dbus \ + --disable-input-tslib \ + --disable-rpath + +#CONFIGURE_ARGS+= --disable-mmx +#CONFIGURE_ARGS+= --disable-3dnow +#CONFIGURE_ARGS+= --disable-sse +#CONFIGURE_ARGS+= --disable-sse2 +#CONFIGURE_ARGS+= --disable-sse3 + +MAKE_ENV= V=1 + +.include + +# Similar to x11/pixman +.if ${ARCH} == "armv6" || ${ARCH} == "armv7" +BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils +CFLAGS+= -B${LOCALBASE}/bin -no-integrated-as +.endif + +CONFIGURE_ARGS+= --disable-alsa --disable-alsa-shared +CONFIGURE_ARGS+= --disable-jack --disable-jack-shared +CONFIGURE_ARGS+= --disable-esd --disable-esd-shared +CONFIGURE_ARGS+= --disable-nas --disable-nas-shared +CONFIGURE_ARGS+= --enable-oss + +CONFIGURE_ARGS+= --disable-pulseaudio --disable-pulseaudio-shared +#CONFIGURE_ARGS+= --enable-sndio --enable-sndio-shared +CONFIGURE_ARGS+= --disable-sndio --disable-sndio-shared + +#CONFIGURE_ARGS+= --enable-video-kmsdrm --enable-kmsdrm-shared +CONFIGURE_ARGS+= --disable-video-kmsdrm --disable-video-kmsdrm +CONFIGURE_ARGS+= --disable-video-opengl +CONFIGURE_ARGS+= --enable-video-x11 \ + --enable-x11-shared \ + --enable-video-x11-xcursor \ + --enable-video-x11-xinerama \ + --enable-video-x11-xinput \ + --enable-video-x11-xrandr \ + --enable-video-x11-scrnsaver \ + --enable-video-x11-xshape \ + --enable-video-x11-vm +CONFIGURE_ARGS+= --disable-video-opengles \ + --disable-video-opengles2 +CONFIGURE_ARGS+= --disable-video-wayland \ + --disable-wayland-shared + +.include + +#.if !empty(ICONV_LIB) +#CONFIGURE_ARGS+= ac_cv_lib_iconv_iconv_open=yes ac_cv_func_iconv=yes +#.endif + +post-patch: + ${REINPLACE_CMD} -e '/ CheckInputEvents$$/d' \ + -e 's/-liconv/${ICONV_LIB}/g' ${WRKSRC}/configure +# Clang does not provide _m_prefetch + ${REINPLACE_CMD} 's/_m_prefetch/__builtin_prefetch/' \ + ${WRKSRC}/configure ${WRKSRC}/src/video/SDL_blit_A.c + +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libSDL2.so + +.include diff --git a/devel/libSDL2/distinfo b/devel/libSDL2/distinfo new file mode 100644 index 00000000..7a03c9f7 --- /dev/null +++ b/devel/libSDL2/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1583890578 +SHA256 (SDL2-2.0.12.tar.gz) = 349268f695c02efbc9b9148a70b85e58cefbbf704abd3e91be654db7f1e2c863 +SIZE (SDL2-2.0.12.tar.gz) = 5720162 diff --git a/devel/libSDL2/files/patch-include_SDL__endian.h b/devel/libSDL2/files/patch-include_SDL__endian.h new file mode 100644 index 00000000..5b061933 --- /dev/null +++ b/devel/libSDL2/files/patch-include_SDL__endian.h @@ -0,0 +1,11 @@ +--- include/SDL_endian.h.orig 2020-10-03 02:13:42 UTC ++++ include/SDL_endian.h +@@ -44,6 +44,8 @@ + #define SDL_BYTEORDER __BYTE_ORDER + #elif defined(__OpenBSD__) + #include ++#elif defined(__FreeBSD__) ++#include + #define SDL_BYTEORDER BYTE_ORDER + #else + #if defined(__hppa__) || \ diff --git a/devel/libSDL2/files/patch-noegl b/devel/libSDL2/files/patch-noegl new file mode 100644 index 00000000..90baf48a --- /dev/null +++ b/devel/libSDL2/files/patch-noegl @@ -0,0 +1,12 @@ +--- src/video/kmsdrm/SDL_kmsdrmvideo.c.orig 2020-03-11 01:36:18 UTC ++++ src/video/kmsdrm/SDL_kmsdrmvideo.c +@@ -391,7 +391,9 @@ KMSDRM_CreateSurfaces(_THIS, SDL_Window * window) + Uint32 height = dispdata->mode.vdisplay; + Uint32 surface_fmt = GBM_FORMAT_XRGB8888; + Uint32 surface_flags = GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING; ++#if SDL_VIDEO_OPENGL_EGL + EGLContext egl_context; ++#endif + + if (!KMSDRM_gbm_device_is_format_supported(viddata->gbm, surface_fmt, surface_flags)) { + SDL_LogWarn(SDL_LOG_CATEGORY_VIDEO, "GBM surface format not supported. Trying anyway."); diff --git a/devel/libSDL2/files/patch-src_cpuinfo_SDL__cpuinfo.c b/devel/libSDL2/files/patch-src_cpuinfo_SDL__cpuinfo.c new file mode 100644 index 00000000..7bb8d70d --- /dev/null +++ b/devel/libSDL2/files/patch-src_cpuinfo_SDL__cpuinfo.c @@ -0,0 +1,24 @@ +--- src/cpuinfo/SDL_cpuinfo.c.orig 2020-03-11 01:36:18 UTC ++++ src/cpuinfo/SDL_cpuinfo.c +@@ -49,7 +49,7 @@ + #endif + #if defined(__MACOSX__) && (defined(__ppc__) || defined(__ppc64__)) + #include /* For AltiVec check */ +-#elif defined(__OpenBSD__) && defined(__powerpc__) ++#elif (defined(__OpenBSD__) || defined(__FreeBSD__)) && defined(__powerpc__) + #include + #include /* For AltiVec check */ + #include +@@ -314,9 +314,11 @@ CPU_haveAltiVec(void) + { + volatile int altivec = 0; + #ifndef SDL_CPUINFO_DISABLED +-#if (defined(__MACOSX__) && (defined(__ppc__) || defined(__ppc64__))) || (defined(__OpenBSD__) && defined(__powerpc__)) ++#if (defined(__MACOSX__) && (defined(__ppc__) || defined(__ppc64__))) || (defined(__OpenBSD__) && defined(__powerpc__)) || (defined(__FreeBSD__) && defined(__powerpc__)) + #ifdef __OpenBSD__ + int selectors[2] = { CTL_MACHDEP, CPU_ALTIVEC }; ++#elif __FreeBSD__ ++ int selectors[2] = { CTL_HW, PPC_FEATURE_HAS_ALTIVEC }; + #else + int selectors[2] = { CTL_HW, HW_VECTORUNIT }; + #endif diff --git a/devel/libSDL2/files/patch-x-Makefile.in b/devel/libSDL2/files/patch-x-Makefile.in new file mode 100644 index 00000000..f48ef948 --- /dev/null +++ b/devel/libSDL2/files/patch-x-Makefile.in @@ -0,0 +1,11 @@ +--- ./Makefile.in.orig 2020-12-08 22:15:25.560200000 +0200 ++++ ./Makefile.in 2020-12-08 22:29:19.279633000 +0200 +@@ -126,7 +126,7 @@ + LT_CURRENT = @LT_CURRENT@ + LT_RELEASE = @LT_RELEASE@ + LT_REVISION = @LT_REVISION@ +-LT_LDFLAGS = -no-undefined -rpath $(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) ++LT_LDFLAGS = -no-undefined -rpath $(libdir) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) + + all: $(srcdir)/configure Makefile $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET) + diff --git a/devel/libSDL2/pkg-descr b/devel/libSDL2/pkg-descr new file mode 100644 index 00000000..3fbdb249 --- /dev/null +++ b/devel/libSDL2/pkg-descr @@ -0,0 +1,8 @@ +This library is designed to make it easy to write games that run on UNIX, +Win32, MacOS X and other platforms using the various native high-performance +media interfaces (for video, audio, etc) and presenting a single source-code +level API to your application. This is a fairly low level API, but using this, +completely portable applications can be written with a great deal of +flexibility. + +WWW: https://www.libsdl.org/ diff --git a/devel/libSDL2/pkg-plist b/devel/libSDL2/pkg-plist new file mode 100644 index 00000000..afbebf7b --- /dev/null +++ b/devel/libSDL2/pkg-plist @@ -0,0 +1,89 @@ +bin/sdl2-config +include/SDL2/begin_code.h +include/SDL2/close_code.h +include/SDL2/SDL_assert.h +include/SDL2/SDL_atomic.h +include/SDL2/SDL_audio.h +include/SDL2/SDL_bits.h +include/SDL2/SDL_blendmode.h +include/SDL2/SDL_clipboard.h +include/SDL2/SDL_config.h +include/SDL2/SDL_cpuinfo.h +include/SDL2/SDL_egl.h +include/SDL2/SDL_endian.h +include/SDL2/SDL_error.h +include/SDL2/SDL_events.h +include/SDL2/SDL_filesystem.h +include/SDL2/SDL_gamecontroller.h +include/SDL2/SDL_gesture.h +include/SDL2/SDL_haptic.h +include/SDL2/SDL_hints.h +include/SDL2/SDL_joystick.h +include/SDL2/SDL_keyboard.h +include/SDL2/SDL_keycode.h +include/SDL2/SDL_loadso.h +include/SDL2/SDL_log.h +include/SDL2/SDL_main.h +include/SDL2/SDL_messagebox.h +include/SDL2/SDL_metal.h +include/SDL2/SDL_mouse.h +include/SDL2/SDL_mutex.h +include/SDL2/SDL_name.h +include/SDL2/SDL_opengl_glext.h +include/SDL2/SDL_opengl.h +include/SDL2/SDL_opengles.h +include/SDL2/SDL_opengles2_gl2.h +include/SDL2/SDL_opengles2_gl2ext.h +include/SDL2/SDL_opengles2_gl2platform.h +include/SDL2/SDL_opengles2_khrplatform.h +include/SDL2/SDL_opengles2.h +include/SDL2/SDL_pixels.h +include/SDL2/SDL_platform.h +include/SDL2/SDL_power.h +include/SDL2/SDL_quit.h +include/SDL2/SDL_rect.h +include/SDL2/SDL_render.h +include/SDL2/SDL_revision.h +include/SDL2/SDL_rwops.h +include/SDL2/SDL_scancode.h +include/SDL2/SDL_sensor.h +include/SDL2/SDL_shape.h +include/SDL2/SDL_stdinc.h +include/SDL2/SDL_surface.h +include/SDL2/SDL_system.h +include/SDL2/SDL_syswm.h +include/SDL2/SDL_test_assert.h +include/SDL2/SDL_test_common.h +include/SDL2/SDL_test_compare.h +include/SDL2/SDL_test_crc32.h +include/SDL2/SDL_test_font.h +include/SDL2/SDL_test_fuzzer.h +include/SDL2/SDL_test_harness.h +include/SDL2/SDL_test_images.h +include/SDL2/SDL_test_log.h +include/SDL2/SDL_test_md5.h +include/SDL2/SDL_test_memory.h +include/SDL2/SDL_test_random.h +include/SDL2/SDL_test.h +include/SDL2/SDL_thread.h +include/SDL2/SDL_timer.h +include/SDL2/SDL_touch.h +include/SDL2/SDL_types.h +include/SDL2/SDL_version.h +include/SDL2/SDL_video.h +include/SDL2/SDL_vulkan.h +include/SDL2/SDL.h +lib/cmake/SDL2/sdl2-config-version.cmake +lib/cmake/SDL2/sdl2-config.cmake +lib/libSDL2_test.a +lib/libSDL2_test.la +lib/libSDL2.a +lib/libSDL2.la +lib/libSDL2.so +lib/libSDL2.so.12 +lib/libSDL2main.a +lib/libSDL2main.la +lib/pkgconfig/sdl2.pc +share/aclocal/sdl2.m4 +@dir include/SDL2 +@dir lib/cmake/SDL2 diff --git a/media/ffmpeg/Makefile b/media/ffmpeg/Makefile index dfb04420..6d7e7cbb 100644 --- a/media/ffmpeg/Makefile +++ b/media/ffmpeg/Makefile @@ -11,17 +11,9 @@ COMMENT= Realtime audio/video encoder/converter and streaming server BUILD_DEPENDS= yasm:devel/yasm -LIB_DEPENDS+= libX11.so:x11/libX11 -LIB_DEPENDS+= libXau.so:x11/libXau -LIB_DEPENDS+= libXdmcp.so:x11/libXdmcp -LIB_DEPENDS+= libXext.so:x11/libXext -LIB_DEPENDS+= libXfixes.so:x11/libXfixes -LIB_DEPENDS+= libXv.so:x11/libXv - -#LIB_DEPENDS+= libaom.so:media/libaom +LIB_DEPENDS+= libSDL2.so:devel/libSDL2 LIB_DEPENDS+= libdrm.so:system/libdrm - LIB_DEPENDS+= libfreetype.so:graph/libfreetype2 LIB_DEPENDS+= libgmp.so:math/libgmp LIB_DEPENDS+= libgnutls.so:crypto/libgnutls @@ -29,77 +21,50 @@ LIB_DEPENDS+= libgsm.so:media/libgsm LIB_DEPENDS+= libhogweed.so:crypto/libnettle LIB_DEPENDS+= libiconv.so:text/libiconv LIB_DEPENDS+= libidn2.so:net/libidn2 - LIB_DEPENDS+= libintl.so:devel/gettext LIB_DEPENDS+= libmodplug.so:media/libmodplug LIB_DEPENDS+= libmp3lame.so:media/lame - LIB_DEPENDS+= libnettle.so:crypto/libnettle - LIB_DEPENDS+= libogg.so:media/libogg + LIB_DEPENDS+= libopencore-amrnb.so:media/libopencore-amr LIB_DEPENDS+= libopencore-amrwb.so:media/libopencore-amr + +LIB_DEPENDS+= libopenh264.so:media/libopenh264 LIB_DEPENDS+= libopus.so:media/libopus LIB_DEPENDS+= libp11-kit.so:crypto/libp11-kit LIB_DEPENDS+= libpng16.so:graph/libpng -LIB_DEPENDS+= libpostproc.so:media/ffmpeg LIB_DEPENDS+= libspeex.so:media/libspeex -LIB_DEPENDS+= libswresample.so:media/ffmpeg -LIB_DEPENDS+= libswscale.so:media/ffmpeg + LIB_DEPENDS+= libtasn1.so:crypto/libtasn1 + LIB_DEPENDS+= libtheoradec.so:media/libtheora LIB_DEPENDS+= libtheoraenc.so:media/libtheora + LIB_DEPENDS+= libva-drm.so:media/libva LIB_DEPENDS+= libva-x11.so:media/libva LIB_DEPENDS+= libva.so:media/libva -LIB_DEPENDS+= libvorbisenc.so:media/libvorbis + LIB_DEPENDS+= libvorbis.so:media/libvorbis +LIB_DEPENDS+= libvorbisenc.so:media/libvorbis LIB_DEPENDS+= libwavpack.so:media/libwavpack +LIB_DEPENDS+= libX11.so:x11/libX11 LIB_DEPENDS+= libx264.so:media/libx264 LIB_DEPENDS+= libx265.so:media/libx265 +LIB_DEPENDS+= libXau.so:x11/libXau LIB_DEPENDS+= libxcb-shape.so:x11/libxcb LIB_DEPENDS+= libxcb-shm.so:x11/libxcb LIB_DEPENDS+= libxcb-xfixes.so:x11/libxcb LIB_DEPENDS+= libxcb.so:x11/libxcb +LIB_DEPENDS+= libXdmcp.so:x11/libXdmcp +LIB_DEPENDS+= libXext.so:x11/libXext +LIB_DEPENDS+= libXfixes.so:x11/libXfixes +LIB_DEPENDS+= libXv.so:x11/libXv LIB_DEPENDS+= libxvidcore.so:media/libxvid -LIB_DEPENDS+= libgnutls.so:crypto/libgnutls -LIB_DEPENDS+= libintl.so:devel/gettext - -LIB_DEPENDS+= libSDL.so:devel/libSDL - -LIB_DEPENDS+= libgmp.so:math/libgmp -LIB_DEPENDS+= libfreetype.so:graph/libfreetype2 -LIB_DEPENDS+= libpng.so:graph/libpng -LIB_DEPENDS+= libmp3lame.so:media/lame -LIB_DEPENDS+= libfaac.so:media/libfaac -LIB_DEPENDS+= libgsm.so:media/libgsm -LIB_DEPENDS+= libogg.so:media/libogg - -LIB_DEPENDS+= libopencore-amrnb.so:media/libopencore-amr -LIB_DEPENDS+= libopencore-amrwb.so:media/libopencore-amr - -LIB_DEPENDS+= libspeex.so:media/libspeex -LIB_DEPENDS+= libtheoradec.so:media/libtheora -LIB_DEPENDS+= libtheoraenc.so:media/libtheora -LIB_DEPENDS+= libvorbis.so:media/libvorbis -LIB_DEPENDS+= libvorbisenc.so:media/libvorbis -LIB_DEPENDS+= libwavpack.so:media/libwavpack -LIB_DEPENDS+= libx264.so:media/libx264 -LIB_DEPENDS+= libxvidcore.so:media/libxvid -LIB_DEPENDS+= libiconv.so:text/libiconv - -LIB_DEPENDS+= libmodplug.so:media/libmodplug -LIB_DEPENDS+= libopus.so:media/libopus - -LIB_DEPENDS+= libX11.so:x11/libX11 -LIB_DEPENDS+= libXv.so:x11/libXv - -LIB_DEPENDS+= libopenh264.so:media/libopenh264 - BUILD_DEPENDS+= ${PREFIX}/lib/pkgconfig/xau.pc:x11/libXau BUILD_DEPENDS+= ${PREFIX}/lib/pkgconfig/xdmcp.pc:x11/libXdmcp BUILD_DEPENDS+= ${PREFIX}/lib/pkgconfig/xproto.pc:xproto/xproto @@ -127,6 +92,9 @@ CONFIGURE_ARGS+= --enable-postproc CONFIGURE_ARGS+= --enable-avfilter CONFIGURE_ARGS+= --enable-avresample +CONFIGURE_ARGS+= --enable-ffplay + + CONFIGURE_ARGS+= --cc="${CC}" CONFIGURE_ARGS+= --prefix="${PREFIX}" @@ -137,7 +105,7 @@ CONFIGURE_ARGS+= --enable-pthreads CONFIGURE_ARGS+= --enable-shared CONFIGURE_ARGS+= --disable-debug -CONFIGURE_ARGS+= --disable-outdev=sdl +#CONFIGURE_ARGS+= --disable-outdev=sdl CONFIGURE_ARGS+= --disable-htmlpages CONFIGURE_ARGS+= --disable-podpages diff --git a/media/ffmpeg/pkg-plist b/media/ffmpeg/pkg-plist index 4a97d520..4a4c363a 100644 --- a/media/ffmpeg/pkg-plist +++ b/media/ffmpeg/pkg-plist @@ -1,4 +1,5 @@ bin/ffmpeg +bin/ffplay bin/ffprobe include/libavcodec/ac3_parser.h include/libavcodec/adts_parser.h @@ -174,6 +175,8 @@ man/man1/ffmpeg-resampler.1.gz man/man1/ffmpeg-scaler.1.gz man/man1/ffmpeg-utils.1.gz man/man1/ffmpeg.1.gz +man/man1/ffplay-all.1.gz +man/man1/ffplay.1.gz man/man1/ffprobe-all.1.gz man/man1/ffprobe.1.gz man/man3/libavcodec.3.gz