aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason E. Hale <jhale@FreeBSD.org>2023-06-18 18:23:21 +0000
committerJason E. Hale <jhale@FreeBSD.org>2023-06-18 19:04:46 +0000
commitc3570df406b90a78b22972f24146ca662dd8cd75 (patch)
tree28c2f6f7bb4e1dac5cdf65d845608ffed249a25b
parentfb1a3b688a473e392317c80915fee5f01e3d392e (diff)
downloadports-c3570df406b90a78b22972f24146ca662dd8cd75.tar.gz
ports-c3570df406b90a78b22972f24146ca662dd8cd75.zip
graphics/frei0r*: Update to 2.3.0 [1]
Split cairo-dependent plugins out into graphics/frei0r-plugins-cairo. Shift pkg-plist and several variables out into the slave ports for easier maintainence, including PORTREVISION to facilitate usage of PORTREVISION bump scripts. Convert "extra" patches into regular patches for easier future maintainence. Ensure optional plugins are the same version as the frei0r base. https://github.com/dyne/frei0r/releases/tag/v2.3.0 PR: 272045 [1] Reported by: Olivier Duchateau <duchateau.olivier@gmail.com> [1]
-rw-r--r--graphics/Makefile1
-rw-r--r--graphics/frei0r-plugins-cairo/Makefile11
-rw-r--r--graphics/frei0r-plugins-cairo/pkg-plist4
-rw-r--r--graphics/frei0r-plugins-gavl/Makefile8
-rw-r--r--graphics/frei0r-plugins-gavl/pkg-plist3
-rw-r--r--graphics/frei0r-plugins-opencv/Makefile8
-rw-r--r--graphics/frei0r-plugins-opencv/pkg-plist2
-rw-r--r--graphics/frei0r-plugins/Makefile32
-rw-r--r--graphics/frei0r/Makefile80
-rw-r--r--graphics/frei0r/distinfo6
-rw-r--r--graphics/frei0r/files/extra-patch-CMakeLists.txt17
-rw-r--r--graphics/frei0r/files/extra-patch-frei0r-plugins125
-rw-r--r--graphics/frei0r/files/patch-CMakeLists.txt59
-rw-r--r--graphics/frei0r/files/patch-src_filter_CMakeLists.txt17
-rw-r--r--graphics/frei0r/files/patch-src_mixer2_CMakeLists.txt17
-rw-r--r--graphics/frei0r/pkg-plist21
-rw-r--r--graphics/frei0r/version.mk1
17 files changed, 197 insertions, 215 deletions
diff --git a/graphics/Makefile b/graphics/Makefile
index 9e36f44bc112..632281b66b59 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -225,6 +225,7 @@
SUBDIR += freetype-gl
SUBDIR += frei0r
SUBDIR += frei0r-plugins
+ SUBDIR += frei0r-plugins-cairo
SUBDIR += frei0r-plugins-gavl
SUBDIR += frei0r-plugins-opencv
SUBDIR += frogr
diff --git a/graphics/frei0r-plugins-cairo/Makefile b/graphics/frei0r-plugins-cairo/Makefile
new file mode 100644
index 000000000000..65bd9970e6f8
--- /dev/null
+++ b/graphics/frei0r-plugins-cairo/Makefile
@@ -0,0 +1,11 @@
+PORTREVISION= 0
+PKGNAMESUFFIX= -plugins-${SLAVE_PORT:tl}
+
+COMMENT= Frei0r ${SLAVE_PORT} plugins
+
+MASTERDIR= ${.CURDIR}/../frei0r
+PLIST= ${.CURDIR}/pkg-plist
+
+SLAVE_PORT= cairo
+
+.include "${MASTERDIR}/Makefile"
diff --git a/graphics/frei0r-plugins-cairo/pkg-plist b/graphics/frei0r-plugins-cairo/pkg-plist
new file mode 100644
index 000000000000..01c4f99c20e5
--- /dev/null
+++ b/graphics/frei0r-plugins-cairo/pkg-plist
@@ -0,0 +1,4 @@
+lib/frei0r-1/cairoaffineblend.so
+lib/frei0r-1/cairoblend.so
+lib/frei0r-1/cairogradient.so
+lib/frei0r-1/cairoimagegrid.so
diff --git a/graphics/frei0r-plugins-gavl/Makefile b/graphics/frei0r-plugins-gavl/Makefile
index b009ba744839..84128a9dc03a 100644
--- a/graphics/frei0r-plugins-gavl/Makefile
+++ b/graphics/frei0r-plugins-gavl/Makefile
@@ -1,5 +1,11 @@
+PORTREVISION= 0
+PKGNAMESUFFIX= -plugins-${SLAVE_PORT:tl}
+
+COMMENT= Frei0r ${SLAVE_PORT} plugins
+
MASTERDIR= ${.CURDIR}/../frei0r
+PLIST= ${.CURDIR}/pkg-plist
-BUILDING_FREI0R_GAVL= yes
+SLAVE_PORT= gavl
.include "${MASTERDIR}/Makefile"
diff --git a/graphics/frei0r-plugins-gavl/pkg-plist b/graphics/frei0r-plugins-gavl/pkg-plist
new file mode 100644
index 000000000000..f2f1824adc27
--- /dev/null
+++ b/graphics/frei0r-plugins-gavl/pkg-plist
@@ -0,0 +1,3 @@
+lib/frei0r-1/rgbparade.so
+lib/frei0r-1/scale0tilt.so
+lib/frei0r-1/vectorscope.so
diff --git a/graphics/frei0r-plugins-opencv/Makefile b/graphics/frei0r-plugins-opencv/Makefile
index 294f6d059a5b..2de52ca243eb 100644
--- a/graphics/frei0r-plugins-opencv/Makefile
+++ b/graphics/frei0r-plugins-opencv/Makefile
@@ -1,5 +1,11 @@
+PORTREVISION= 0
+PKGNAMESUFFIX= -plugins-${SLAVE_PORT:tl}
+
+COMMENT= Frei0r ${SLAVE_PORT} plugins
+
MASTERDIR= ${.CURDIR}/../frei0r
+PLIST= ${.CURDIR}/pkg-plist
-BUILDING_FREI0R_OPENCV= yes
+SLAVE_PORT= OpenCV
.include "${MASTERDIR}/Makefile"
diff --git a/graphics/frei0r-plugins-opencv/pkg-plist b/graphics/frei0r-plugins-opencv/pkg-plist
new file mode 100644
index 000000000000..fb51e8282601
--- /dev/null
+++ b/graphics/frei0r-plugins-opencv/pkg-plist
@@ -0,0 +1,2 @@
+lib/frei0r-1/facebl0r.so
+lib/frei0r-1/facedetect.so
diff --git a/graphics/frei0r-plugins/Makefile b/graphics/frei0r-plugins/Makefile
index 405bae34924d..c145afd91b07 100644
--- a/graphics/frei0r-plugins/Makefile
+++ b/graphics/frei0r-plugins/Makefile
@@ -1,23 +1,27 @@
+PORTNAME= frei0r
+PORTVERSION= ${FREI0R_VERSION}
+CATEGORIES= graphics
PKGNAMESUFFIX= -plugins
-COMMENT= Frei0r meta-port
+MAINTAINER= jhale@FreeBSD.org
+COMMENT= The "meta-port" for frei0r and additional plugins
+WWW= https://frei0r.dyne.org/
-RUN_DEPENDS= ${LOCALBASE}/include/frei0r.h:graphics/frei0r
+RUN_DEPENDS= frei0r>=${FREI0R_VERSION}:graphics/frei0r
-USES= metaport
+USES= metaport
-MASTERDIR= ${.CURDIR}/../frei0r
-PLIST= ${WRKDIR}/PLIST
+DESCR= ${.CURDIR}/../frei0r/pkg-descr
-BUILDING_FREI0R_METAPORT= yes
+OPTIONS_DEFINE= CAIRO GAVL OPENCV
+OPTIONS_DEFAULT= CAIRO GAVL OPENCV
-OPTIONS_DEFINE= GAVL OPENCV
-OPTIONS_DEFAULT= GAVL OPENCV
-GAVL_DESC= Install gavl plugins
-GAVL_RUN_DEPENDS= ${LOCALBASE}/lib/frei0r-1/rgbparade.so:graphics/frei0r-plugins-gavl
-OPENCV_DESC= Install OpenCV plugins
-OPENCV_RUN_DEPENDS= ${LOCALBASE}/lib/frei0r-1/facedetect.so:graphics/frei0r-plugins-opencv
-
-.include "${MASTERDIR}/Makefile"
+CAIRO_DESC= Install cairo plugins
+CAIRO_RUN_DEPENDS= frei0r-plugins-cairo>=${FREI0R_VERSION}:graphics/frei0r-plugins-cairo
+GAVL_DESC= Install gavl plugins
+GAVL_RUN_DEPENDS= frei0r-plugins-gavl>=${FREI0R_VERSION}:graphics/frei0r-plugins-gavl
+OPENCV_DESC= Install OpenCV plugins
+OPENCV_RUN_DEPENDS= frei0r-plugins-opencv>=${FREI0R_VERSION}:graphics/frei0r-plugins-opencv
+.include "${.CURDIR}/../frei0r/version.mk"
.include <bsd.port.mk>
diff --git a/graphics/frei0r/Makefile b/graphics/frei0r/Makefile
index 5fb844e6ed12..2a5cace02dc4 100644
--- a/graphics/frei0r/Makefile
+++ b/graphics/frei0r/Makefile
@@ -1,68 +1,50 @@
PORTNAME= frei0r
-PORTVERSION= 1.8.0
-DISTVERSIONPREFIX= plugins-
-PORTREVISION?= 1
+DISTVERSIONPREFIX= v
+DISTVERSION= ${FREI0R_VERSION}
+PORTREVISION?= 0
CATEGORIES= graphics
-MASTER_SITES?= https://files.dyne.org/frei0r/releases/
MAINTAINER= jhale@FreeBSD.org
COMMENT?= Minimalistic plugin API for video effects
WWW= https://frei0r.dyne.org/
-.if !defined(BUILDING_FREI0R_METAPORT)
-
LICENSE= GPLv2+
-LICENSE_FILE= ${WRKSRC}/COPYING.txt
+LICENSE_FILE= ${WRKSRC}/COPYING
USES= cmake compiler:c++11-lang pkgconfig
+USE_GITHUB= yes
+GH_ACCOUNT= dyne
-.if defined(BUILDING_FREI0R_OPENCV) && defined(BUILDING_FREI0R_GAVL)
-IGNORE= cannot build OpenCV and gavl plugins simultaneously
-.endif
-
-.if defined(BUILDING_FREI0R_OPENCV) || defined(BUILDING_FREI0R_GAVL)
-EXTRA_PATCHES= ${PATCHDIR}/extra-patch-frei0r-plugins
-
-USES+= localbase
-.endif
-
-.if defined(BUILDING_FREI0R_OPENCV)
-PORTREVISION= 0
-COMMENT= Frei0r OpenCV plugins
-PKGNAMESUFFIX= -plugins-opencv
-LIB_DEPENDS+= libopencv_core.so:graphics/opencv \
- libopencv_video.so:graphics/opencv
-FREI0R_PLUGINS= facebl0r facedetect
-
-CMAKE_ARGS+= -DWITHOUT_OPENCV:BOOL=OFF \
- -DWITHOUT_GAVL:BOOL=ON
-.elif defined(BUILDING_FREI0R_GAVL)
-PORTREVISION= 0
-COMMENT= Frei0r gavl plugins
-PKGNAMESUFFIX= -plugins-gavl
-LIB_DEPENDS+= libgavl.so:multimedia/gavl
-FREI0R_PLUGINS= rgbparade scale0tilt vectorscope
-
-CMAKE_ARGS+= -DWITHOUT_OPENCV:BOOL=ON \
- -DWITHOUT_GAVL:BOOL=OFF
-.else
-EXTRA_PATCHES= ${PATCHDIR}/extra-patch-CMakeLists.txt
-
+.if defined(SLAVE_PORT)
+RUN_DEPENDS= frei0r>=${FREI0R_VERSION}:graphics/frei0r
+. if ${SLAVE_PORT:tl} == "cairo"
USES+= gnome
-USE_GNOME= cairo
+USE_GNOME+= cairo
-CMAKE_ARGS+= -DWITHOUT_OPENCV:BOOL=ON \
- -DWITHOUT_GAVL:BOOL=ON
+CMAKE_ON= WITHOUT_GAVL \
+ WITHOUT_OPENCV
+CMAKE_OFF= WITHOUT_CAIRO
+. elif ${SLAVE_PORT:tl} == "gavl"
+LIB_DEPENDS+= libgavl.so:multimedia/gavl
-.endif # !defined(BUILDING_FREI0R_OPENCV) && !defined(BUILDING_FREI0R_GAVL)
+CMAKE_ON= WITHOUT_CAIRO \
+ WITHOUT_OPENCV
+CMAKE_OFF= WITHOUT_GAVL
+. elif ${SLAVE_PORT:tl} == "opencv"
+LIB_DEPENDS+= libopencv_core.so:graphics/opencv
-.if defined(FREI0R_PLUGINS)
-PLIST= ${WRKSRC}/PLIST
-. for FILE in ${FREI0R_PLUGINS}
-PLIST_FILES+= lib/frei0r-1/${FILE}.so
-. endfor
+CMAKE_ON= WITHOUT_CAIRO \
+ WITHOUT_GAVL
+CMAKE_OFF= WITHOUT_OPENCV
+. endif
+.else
+CMAKE_ON= WITHOUT_CAIRO \
+ WITHOUT_GAVL \
+ WITHOUT_OPENCV
+CMAKE_OFF= BUILD_EXTRA_PLUGINS
.endif
+.include "version.mk"
.include <bsd.port.pre.mk>
.if ${CHOSEN_COMPILER_TYPE} == gcc
@@ -73,5 +55,3 @@ CXXFLAGS+= -Wno-error
.endif
.include <bsd.port.post.mk>
-
-.endif # !defined(BUILDING_FREI0R_METAPORT)
diff --git a/graphics/frei0r/distinfo b/graphics/frei0r/distinfo
index 789329ccf23b..d9e0340ee5d5 100644
--- a/graphics/frei0r/distinfo
+++ b/graphics/frei0r/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1648552795
-SHA256 (frei0r-plugins-1.8.0.tar.gz) = 45a28655caf057227b442b800ca3899e93490515c81e212d219fdf4a7613f5c4
-SIZE (frei0r-plugins-1.8.0.tar.gz) = 823119
+TIMESTAMP = 1685672354
+SHA256 (dyne-frei0r-v2.3.0_GH0.tar.gz) = 00aa65a887445c806b2a467abc3ccc4b0855f7eaf38ed2011a1ff41e74844fa0
+SIZE (dyne-frei0r-v2.3.0_GH0.tar.gz) = 820018
diff --git a/graphics/frei0r/files/extra-patch-CMakeLists.txt b/graphics/frei0r/files/extra-patch-CMakeLists.txt
deleted file mode 100644
index a4a5ffa466eb..000000000000
--- a/graphics/frei0r/files/extra-patch-CMakeLists.txt
+++ /dev/null
@@ -1,17 +0,0 @@
---- CMakeLists.txt.orig 2019-12-06 16:20:37 UTC
-+++ CMakeLists.txt
-@@ -41,7 +41,7 @@ INCLUDE( cmake/modules/TargetDistclean.cmake OPTIONAL)
- # See this thread for a ridiculous discussion about the simple question how to install a header file with CMake: http://www.cmake.org/pipermail/cmake/2009-October/032874.html
- install (DIRECTORY include DESTINATION . FILES_MATCHING PATTERN "frei0r.h" PATTERN "msvc" EXCLUDE)
-
--add_subdirectory (doc)
-+#add_subdirectory (doc)
- add_subdirectory (src)
-
- # Generate frei0r.pc and install it.
-@@ -50,4 +50,4 @@ set (exec_prefix "${CMAKE_INSTALL_PREFIX}")
- set (libdir "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
- set (includedir "${CMAKE_INSTALL_PREFIX}/include")
- configure_file ("frei0r.pc.in" "frei0r.pc" @ONLY)
--install (FILES "${CMAKE_CURRENT_BINARY_DIR}/frei0r.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
-+install (FILES "${CMAKE_CURRENT_BINARY_DIR}/frei0r.pc" DESTINATION libdata/pkgconfig)
diff --git a/graphics/frei0r/files/extra-patch-frei0r-plugins b/graphics/frei0r/files/extra-patch-frei0r-plugins
deleted file mode 100644
index 1d739356d309..000000000000
--- a/graphics/frei0r/files/extra-patch-frei0r-plugins
+++ /dev/null
@@ -1,125 +0,0 @@
---- CMakeLists.txt.orig 2020-12-09 06:02:41 UTC
-+++ CMakeLists.txt
-@@ -11,8 +11,6 @@ if (NOT WITHOUT_OPENCV)
- find_package (OpenCV)
- endif ()
-
--find_package (Cairo)
--
- include(FindPkgConfig)
- option (WITHOUT_GAVL "Disable plugins dependent upon gavl" OFF)
- if (PKG_CONFIG_FOUND AND NOT WITHOUT_GAVL)
-@@ -38,16 +36,8 @@ set (FREI0R_1_1_DEF "${CMAKE_SOURCE_DIR}/msvc/frei0r_1
- # --- custom targets: ---
- INCLUDE( cmake/modules/TargetDistclean.cmake OPTIONAL)
-
--# See this thread for a ridiculous discussion about the simple question how to install a header file with CMake: http://www.cmake.org/pipermail/cmake/2009-October/032874.html
--install (DIRECTORY include DESTINATION . FILES_MATCHING PATTERN "frei0r.h" PATTERN "msvc" EXCLUDE)
-+add_subdirectory (src/filter)
-
--add_subdirectory (doc)
--add_subdirectory (src)
--
--# Generate frei0r.pc and install it.
- set (prefix "${CMAKE_INSTALL_PREFIX}")
- set (exec_prefix "${CMAKE_INSTALL_PREFIX}")
- set (libdir "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
--set (includedir "${CMAKE_INSTALL_PREFIX}/include")
--configure_file ("frei0r.pc.in" "frei0r.pc" @ONLY)
--install (FILES "${CMAKE_CURRENT_BINARY_DIR}/frei0r.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
---- src/filter/CMakeLists.txt.orig 2020-12-09 06:02:41 UTC
-+++ src/filter/CMakeLists.txt
-@@ -8,93 +8,3 @@ if (${OpenCV_FOUND})
- add_subdirectory (facebl0r)
- add_subdirectory (facedetect)
- endif (${OpenCV_FOUND})
--
--if (${Cairo_FOUND})
-- add_subdirectory (cairoimagegrid)
-- add_subdirectory (cairogradient)
--endif (${Cairo_FOUND})
--
--add_subdirectory (3dflippo)
--add_subdirectory (aech0r)
--add_subdirectory (alpha0ps)
--add_subdirectory (balanc0r)
--add_subdirectory (baltan)
--add_subdirectory (bluescreen0r)
--add_subdirectory (bgsubtract0r)
--add_subdirectory (blur)
--add_subdirectory (brightness)
--add_subdirectory (bw0r)
--add_subdirectory (cartoon)
--add_subdirectory (cluster)
--add_subdirectory (colgate)
--add_subdirectory (coloradj)
--add_subdirectory (colordistance)
--add_subdirectory (colorize)
--add_subdirectory (colorhalftone)
--add_subdirectory (colortap)
--add_subdirectory (contrast0r)
--add_subdirectory (c0rners)
--add_subdirectory (curves)
--add_subdirectory (d90stairsteppingfix)
--add_subdirectory (defish0r)
--add_subdirectory (delay0r)
--add_subdirectory (delaygrab)
--add_subdirectory (denoise)
--add_subdirectory (distort0r)
--add_subdirectory (dither)
--add_subdirectory (edgeglow)
--add_subdirectory (elastic_scale)
--add_subdirectory (emboss)
--add_subdirectory (equaliz0r)
--add_subdirectory (flippo)
--add_subdirectory (gamma)
--add_subdirectory (glow)
--add_subdirectory (glitch0r)
--#add_subdirectory (host_param_test)
--add_subdirectory (hueshift0r)
--add_subdirectory (invert0r)
--add_subdirectory (keyspillm0pup)
--add_subdirectory (lenscorrection)
--add_subdirectory (letterb0xed)
--add_subdirectory (levels)
--add_subdirectory (lightgraffiti)
--add_subdirectory (luminance)
--add_subdirectory (mask0mate)
--add_subdirectory (medians)
--if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-- # clang 3.1 on OSX fails to compile this one
-- add_subdirectory (measure)
--endif ()
--add_subdirectory (ndvi)
--add_subdirectory (nervous)
--add_subdirectory (normaliz0r)
--add_subdirectory (nosync0r)
--add_subdirectory (perspective)
--add_subdirectory (pixeliz0r)
--add_subdirectory (posterize)
--add_subdirectory (premultiply)
--add_subdirectory (primaries)
--add_subdirectory (RGB)
--add_subdirectory (rgbnoise)
--add_subdirectory (rgbsplit0r)
--add_subdirectory (saturat0r)
--add_subdirectory (scanline0r)
--add_subdirectory (select0r)
--add_subdirectory (sharpness)
--add_subdirectory (sigmoidaltransfer)
--add_subdirectory (sobel)
--add_subdirectory (softglow)
--add_subdirectory (sopsat)
--add_subdirectory (spillsupress)
--add_subdirectory (squareblur)
--add_subdirectory (tehroxx0r)
--add_subdirectory (three_point_balance)
--add_subdirectory (threelay0r)
--add_subdirectory (threshold0r)
--add_subdirectory (timeout)
--add_subdirectory (tint0r)
--add_subdirectory (transparency)
--add_subdirectory (tutorial)
--add_subdirectory (twolay0r)
--add_subdirectory (vertigo)
--add_subdirectory (vignette)
diff --git a/graphics/frei0r/files/patch-CMakeLists.txt b/graphics/frei0r/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..40d194744292
--- /dev/null
+++ b/graphics/frei0r/files/patch-CMakeLists.txt
@@ -0,0 +1,59 @@
+- Fix VERSION.
+- Make plugins dependent upon cairo optional.
+- Add logic so slave ports can build without installing base files or plugins.
+
+--- CMakeLists.txt.orig 2023-05-17 21:20:20 UTC
++++ CMakeLists.txt
+@@ -3,16 +3,21 @@ project (frei0r)
+ list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
+
+ project (frei0r)
+-set (VERSION 1.8)
++set (VERSION 2.3)
+
+ include(GNUInstallDirs)
+
++option (BUILD_EXTRA_PLUGINS "Build plugins with optional dependencies" ON)
++
+ option (WITHOUT_OPENCV "Disable plugins dependent upon OpenCV" OFF)
+ if (NOT WITHOUT_OPENCV)
+ find_package (OpenCV)
+ endif ()
+
+-find_package (Cairo)
++option (WITHOUT_CAIRO "Disable plugins dependent upon cairo" OFF)
++if (NOT WITHOUT_CAIRO)
++ find_package (Cairo)
++endif ()
+
+ include(FindPkgConfig)
+ option (WITHOUT_GAVL "Disable plugins dependent upon gavl" OFF)
+@@ -35,16 +40,22 @@ INCLUDE( cmake/modules/TargetDistclean.cmake OPTIONAL)
+ # --- custom targets: ---
+ INCLUDE( cmake/modules/TargetDistclean.cmake OPTIONAL)
+
+-# See this thread for a ridiculous discussion about the simple question how to install a header file with CMake: http://www.cmake.org/pipermail/cmake/2009-October/032874.html
+-install (DIRECTORY include DESTINATION . FILES_MATCHING PATTERN "frei0r.h" PATTERN "msvc" EXCLUDE)
++if (NOT BUILD_EXTRA_PLUGINS)
++ # See this thread for a ridiculous discussion about the simple question how to install a header file with CMake: http://www.cmake.org/pipermail/cmake/2009-October/032874.html
++ install (DIRECTORY include DESTINATION . FILES_MATCHING PATTERN "frei0r.h" PATTERN "msvc" EXCLUDE)
+
+-add_subdirectory (doc)
+-add_subdirectory (src)
++ add_subdirectory (src)
++else ()
++ add_subdirectory (src/filter)
++ add_subdirectory (src/mixer2)
++endif ()
+
+ # Generate frei0r.pc and install it.
+ set (prefix "${CMAKE_INSTALL_PREFIX}")
+ set (exec_prefix "${CMAKE_INSTALL_PREFIX}")
+ set (libdir "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+ set (includedir "${CMAKE_INSTALL_PREFIX}/include")
+-configure_file ("frei0r.pc.in" "frei0r.pc" @ONLY)
+-install (FILES "${CMAKE_CURRENT_BINARY_DIR}/frei0r.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
++if (NOT BUILD_EXTRA_PLUGINS)
++ configure_file ("frei0r.pc.in" "frei0r.pc" @ONLY)
++ install (FILES "${CMAKE_CURRENT_BINARY_DIR}/frei0r.pc" DESTINATION "libdata/pkgconfig")
++endif ()
diff --git a/graphics/frei0r/files/patch-src_filter_CMakeLists.txt b/graphics/frei0r/files/patch-src_filter_CMakeLists.txt
new file mode 100644
index 000000000000..b3cbcd82e5d9
--- /dev/null
+++ b/graphics/frei0r/files/patch-src_filter_CMakeLists.txt
@@ -0,0 +1,17 @@
+- Add logic so slave ports can build without installing base plugins.
+
+--- src/filter/CMakeLists.txt.orig 2023-01-14 18:22:37 UTC
++++ src/filter/CMakeLists.txt
+@@ -14,6 +14,7 @@ endif (${Cairo_FOUND})
+ add_subdirectory (cairogradient)
+ endif (${Cairo_FOUND})
+
++if (NOT BUILD_EXTRA_PLUGINS)
+ add_subdirectory (3dflippo)
+ add_subdirectory (aech0r)
+ add_subdirectory (alpha0ps)
+@@ -96,3 +97,4 @@ add_subdirectory (vignette)
+ add_subdirectory (twolay0r)
+ add_subdirectory (vertigo)
+ add_subdirectory (vignette)
++endif ()
diff --git a/graphics/frei0r/files/patch-src_mixer2_CMakeLists.txt b/graphics/frei0r/files/patch-src_mixer2_CMakeLists.txt
new file mode 100644
index 000000000000..d4e8f4cb0a0a
--- /dev/null
+++ b/graphics/frei0r/files/patch-src_mixer2_CMakeLists.txt
@@ -0,0 +1,17 @@
+- Add logic so slave ports can build without installing base plugins.
+
+--- src/mixer2/CMakeLists.txt.orig 2023-01-14 18:47:26 UTC
++++ src/mixer2/CMakeLists.txt
+@@ -3,6 +3,7 @@ endif (${Cairo_FOUND})
+ add_subdirectory (cairoblend)
+ endif (${Cairo_FOUND})
+
++if (NOT BUILD_EXTRA_PLUGINS)
+ add_subdirectory (addition)
+ add_subdirectory (addition_alpha)
+ add_subdirectory (alphaatop)
+@@ -34,3 +35,4 @@ add_subdirectory (sleid0r)
+ add_subdirectory (value)
+ add_subdirectory (xfade0r)
+ add_subdirectory (sleid0r)
++endif ()
diff --git a/graphics/frei0r/pkg-plist b/graphics/frei0r/pkg-plist
index 6528c2259601..9a7ca8b08a94 100644
--- a/graphics/frei0r/pkg-plist
+++ b/graphics/frei0r/pkg-plist
@@ -26,10 +26,6 @@ lib/frei0r-1/brightness.so
lib/frei0r-1/burn.so
lib/frei0r-1/bw0r.so
lib/frei0r-1/c0rners.so
-lib/frei0r-1/cairoaffineblend.so
-lib/frei0r-1/cairoblend.so
-lib/frei0r-1/cairogradient.so
-lib/frei0r-1/cairoimagegrid.so
lib/frei0r-1/cartoon.so
lib/frei0r-1/cluster.so
lib/frei0r-1/colgate.so
@@ -89,6 +85,7 @@ lib/frei0r-1/overlay.so
lib/frei0r-1/partik0l.so
lib/frei0r-1/perspective.so
lib/frei0r-1/pixeliz0r.so
+lib/frei0r-1/pixs0r.so
lib/frei0r-1/plasma.so
lib/frei0r-1/posterize.so
lib/frei0r-1/pr0be.so
@@ -104,6 +101,22 @@ lib/frei0r-1/screen.so
lib/frei0r-1/select0r.so
lib/frei0r-1/sharpness.so
lib/frei0r-1/sigmoidaltransfer.so
+lib/frei0r-1/sleid0r_push-down.so
+lib/frei0r-1/sleid0r_push-left.so
+lib/frei0r-1/sleid0r_push-right.so
+lib/frei0r-1/sleid0r_push-up.so
+lib/frei0r-1/sleid0r_slide-down.so
+lib/frei0r-1/sleid0r_slide-left.so
+lib/frei0r-1/sleid0r_slide-right.so
+lib/frei0r-1/sleid0r_slide-up.so
+lib/frei0r-1/sleid0r_wipe-barn-door-h.so
+lib/frei0r-1/sleid0r_wipe-barn-door-v.so
+lib/frei0r-1/sleid0r_wipe-circle.so
+lib/frei0r-1/sleid0r_wipe-down.so
+lib/frei0r-1/sleid0r_wipe-left.so
+lib/frei0r-1/sleid0r_wipe-rect.so
+lib/frei0r-1/sleid0r_wipe-right.so
+lib/frei0r-1/sleid0r_wipe-up.so
lib/frei0r-1/sobel.so
lib/frei0r-1/softglow.so
lib/frei0r-1/softlight.so
diff --git a/graphics/frei0r/version.mk b/graphics/frei0r/version.mk
new file mode 100644
index 000000000000..876251b358be
--- /dev/null
+++ b/graphics/frei0r/version.mk
@@ -0,0 +1 @@
+FREI0R_VERSION= 2.3.0