diff --git a/multimedia/gpac/Makefile b/multimedia/gpac/Makefile index 4f86e442e9ab..03b2ef756aa6 100644 --- a/multimedia/gpac/Makefile +++ b/multimedia/gpac/Makefile @@ -1,75 +1,76 @@ PORTNAME= gpac DISTVERSIONPREFIX= v DISTVERSION= 26.02.0 +PORTREVISION= 1 CATEGORIES= multimedia MAINTAINER= olivier@FreeBSD.org COMMENT= Framework for processing and streaming content WWW= https://gpac.io/ LICENSE= LGPL21 USES= gmake pkgconfig ssl USE_GITHUB= yes GH_ACCOUNT= gpac CFLAGS+= -I${WRKSRC}/include -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib HAS_CONFIGURE= yes CONFIGURE_ARGS+= --prefix="${PREFIX}" --cc="${CC}" \ --X11-path="${LOCALBASE}" --enable-pic \ --extra-cflags="${CFLAGS}" --extra-ldflags="${LDFLAGS}" MAKE_ENV+= VERSION=${DISTVERSION} USE_LDCONFIG= yes OPTIONS_DEFINE= ALSA A52 CACA FAAD FFMPEG FREETYPE JACK JPEG MAD NGHTTP2 \ OGG OPENGL PULSEAUDIO QUICKJS PNG SDL2 THEORA VORBIS X11 XVID OPTIONS_DEFAULT= JPEG PNG OPTIONS_SUB= yes A52_LIB_DEPENDS= liba52.so:audio/liba52 A52_CONFIGURE_OFF= --use-a52=no ALSA_CONFIGURE_OFF= --disable-alsa ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib CACA_LIB_DEPENDS= libcaca.so:graphics/libcaca CACA_CONFIGURE_OFF= --use-libcaca=no FAAD_LIB_DEPENDS= libfaad.so:audio/faad FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg FFMPEG_CONFIGURE_OFF= --use-ffmpeg=no FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2 FREETYPE_CONFIGURE_OFF= --use-freetype=no JACK_CONFIGURE_ENABLE= jack JACK_LIB_DEPENDS= libjack.so:audio/jack JPEG_USES= jpeg JPEG_CONFIGURE_ON= --use-jpeg=system --use-openjpeg=no JPEG_CONFIGURE_OFF= --use-jpeg=no MAD_LIB_DEPENDS= libmad.so:audio/libmad MAD_CONFIGURE_OFF= --use-mad=no NGHTTP2_DESC= nghttp2 support NGHTTP2_LIB_DEPENDS= libnghttp2.so:www/libnghttp2 NGHTTP2_CONFIGURE_OFF= --use-nghttp2=no OGG_LIB_DEPENDS= libogg.so:audio/libogg OGG_CONFIGURE_OFF= --use-ogg=no OPENGL_USES= gl OPENGL_USE= GL=gl,glu PULSEAUDIO_CONFIGURE_OFF= --disable-pulseaudio PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PNG_LIB_DEPENDS= libpng.so:graphics/png PNG_CONFIGURE_OFF= --use-png=no QUICKJS_DESC= QuickJS Support QUICKJS_CONFIGURE_ENABLE= qjs SDL2_DESC= SDL2 support SDL2_USES= sdl SDL2_USE= SDL=sdl2 THEORA_LIB_DEPENDS= libtheora.so:multimedia/libtheora THEORA_CONFIGURE_OFF= --use-theora=no VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis VORBIS_CONFIGURE_OFF= --use-vorbis=no X11_USES= xorg desktop-file-utils X11_USE= XORG=x11,xv,xext X11_CONFIGURE_OFF= --disable-x11 --disable-x11-shm --disable-x11-xv XVID_LIB_DEPENDS= libxvidcore.so:multimedia/xvid XVID_CONFIGURE_OFF= --use-xvid=no .include diff --git a/multimedia/gpac/files/patch-src_utils_os__config__init.c b/multimedia/gpac/files/patch-src_utils_os__config__init.c new file mode 100644 index 000000000000..36be6e717ebc --- /dev/null +++ b/multimedia/gpac/files/patch-src_utils_os__config__init.c @@ -0,0 +1,62 @@ +--- src/utils/os_config_init.c.orig 2026-07-17 10:26:27 UTC ++++ src/utils/os_config_init.c +@@ -334,6 +334,12 @@ static Bool get_default_install_path(char file_path[GF + /*Linux, OSX, iOS*/ + #else + ++#include ++ ++#if defined(__FreeBSD__) ++#include ++#endif ++ + //dlinfo + #if defined(__DARWIN__) || defined(__APPLE__) || defined(__FreeBSD__) + #include +@@ -357,7 +363,7 @@ static Bool get_default_install_path(char file_path[GF + { + char app_path[GF_MAX_PATH]; + char *sep; +-#if (defined(__DARWIN__) || defined(__APPLE__) || defined(GPAC_CONFIG_LINUX) || defined(__FreeBSD__)) ++#if (defined(__DARWIN__) || defined(__APPLE__)) + u32 size; + #endif + +@@ -419,13 +425,30 @@ static Bool get_default_install_path(char file_path[GF + return 1; + } + +-#elif defined(GPAC_CONFIG_LINUX) || defined(__FreeBSD__) +- size = readlink("/proc/self/exe", file_path, GF_MAX_PATH-1); +- if (size>0) { +- file_path[size] = 0; +- sep = strrchr(file_path, '/'); +- if (sep) sep[0] = 0; +- return 1; ++#elif defined(__FreeBSD__) ++ { ++ int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; ++ size_t sz = GF_MAX_PATH; ++ if (sysctl(mib, 4, file_path, &sz, NULL, 0) == 0) { ++ sep = strrchr(file_path, '/'); ++ if (sep) sep[0] = 0; ++ return 1; ++ } ++ GF_LOG(GF_LOG_ERROR, GF_LOG_CORE, ("sysctl(KERN_PROC_PATHNAME) failed: %s\n", strerror(errno))); ++ return 0; ++ } ++ ++#elif defined(GPAC_CONFIG_LINUX) ++ { ++ ssize_t ssize = readlink("/proc/self/exe", file_path, GF_MAX_PATH-1); ++ if (ssize > 0) { ++ file_path[ssize] = 0; ++ sep = strrchr(file_path, '/'); ++ if (sep) sep[0] = 0; ++ return 1; ++ } ++ GF_LOG(GF_LOG_ERROR, GF_LOG_CORE, ("Cannot read /proc/self/exe: %s - is procfs mounted?\n", strerror(errno))); ++ return 0; + } + + #elif defined(GPAC_CONFIG_WIN32)