git: 50712684774f - main - graphics/lux: update to 1.1.4

From: Neel Chauhan <nc_at_FreeBSD.org>
Date: Sat, 27 Aug 2022 22:03:06 UTC
The branch main has been updated by nc:

URL: https://cgit.FreeBSD.org/ports/commit/?id=50712684774f643484ec8e382c490616673c80fe

commit 50712684774f643484ec8e382c490616673c80fe
Author:     Robert Clausecker <fuz@fuz.su>
AuthorDate: 2022-08-27 02:58:53 +0000
Commit:     Neel Chauhan <nc@FreeBSD.org>
CommitDate: 2022-08-27 22:02:47 +0000

    graphics/lux: update to 1.1.4
    
     - unbundle noto fonts
     - only ship one copy of icons
     - replace custom .desktop file with upstream's
     - switch to Google highway throughout
     - add options for the various SIMD flavors
     - supply -march=i686 on i386 for a bare minimum of performance
    
    Upstream changes:
    
     - fix uninitialized variable related crash in light balance
     - processing of panoramas with stacks
     - support of all PTO include and exclude masks
     - support of PTO lens/source image cropping
    
    Full ChangeLog: https://groups.google.com/g/hugin-ptx/c/bfX6Fu3mwy0
    
    PR:     266075
---
 graphics/lux/Makefile                   | 66 ++++++++++++++++++---------------
 graphics/lux/distinfo                   |  6 +--
 graphics/lux/files/patch-CMakeLists.txt | 58 +++++++++++++++++------------
 graphics/lux/files/patch-options.h      | 11 ++++++
 graphics/lux/pkg-plist                  |  5 +++
 5 files changed, 90 insertions(+), 56 deletions(-)

diff --git a/graphics/lux/Makefile b/graphics/lux/Makefile
index 2c40f5fac9fc..a3a710a047a9 100644
--- a/graphics/lux/Makefile
+++ b/graphics/lux/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	lux
-PORTVERSION=	1.1.1
+PORTVERSION=	1.1.4
 CATEGORIES=	graphics
 MASTER_SITES=	https://bitbucket.org/kfj/pv/get/
 PKGNAMESUFFIX=	-pv	# distinguish from www/lux
@@ -8,49 +8,57 @@ DISTNAME=	${COMMIT}
 MAINTAINER=	fuz@fuz.su
 COMMENT=	Panorama and image viewer
 
-LICENSE=	GPLv3 SANSATION
-LICENSE_COMB=	multi
-LICENSE_NAME_SANSATION=	Sansation freeware font family license
-LICENSE_FILE_GPLv3=	${WRKSRC}/LICENSE
-LICENSE_FILE_SANSATION=	${WRKSRC}/Sansation_1.31_ReadMe.txt
-LICENSE_PERMS_SANSATION=	dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BROKEN_armv6=	address space exhaustion in compiler
 BROKEN_armv7=	address space exhaustion in compiler
 
-LIB_DEPENDS=	libvigraimpex.so:graphics/vigra \
+LIB_DEPENDS=	libhwy.so:devel/highway \
 		libsfml-window.so:devel/sfml \
-		libexiv2.so:graphics/exiv2
+		libexiv2.so:graphics/exiv2 \
+		libvigraimpex.so:graphics/vigra
+RUN_DEPENDS=	${GUIFONT}:x11-fonts/noto-basic
+GUIFONT=	${LOCALBASE}/share/fonts/noto/NotoSans-Regular.ttf
 
-USES=		cmake dos2unix pkgconfig tar:bz2
+USES=		cmake desktop-file-utils dos2unix pkgconfig tar:bz2
 DOS2UNIX_FILES=	tinyfiledialogs.c
+CMAKE_ON=	USE_HWY_LIBRARY
+CXXFLAGS+=	-Wno-deprecated-declarations
 CONFLICTS=	lux
-DESKTOP_ENTRIES=	"Lux Panorama Viewer" \
-			"panorama and image viewer" "lux-pv" "lux" \
-			"Graphics;ImageProcessing;Photography;Viewer;" \
-			false
 
 WRKSRC=		${WRKDIR}/kfj-pv-${COMMIT}
-COMMIT=		9ec3fe36f96a
-PLIST_FILES=	bin/lux \
-		share/icons/hicolor/512x512/apps/lux-pv.png \
-		share/lux/fonts/Sansation_1.31_ReadMe.txt \
-		share/lux/fonts/Sansation_Regular.ttf
+COMMIT=		402942545a06
+
+OPTIONS_DEFINE_amd64=	SSSE3 SSE42 AVX AVX2 AVX512
+OPTIONS_DEFINE_i386=	SSE2 SSSE3 SSE42 AVX AVX2 AVX512
+OPTIONS_DEFAULT_amd64=	SSSE3 SSE42 AVX AVX2 AVX512
+OPTIONS_DEFAULT_i386=	SSSE3 SSE42 AVX AVX2 AVX512
+
+SSE2_DESC=	build port for Pentium 4 or newer
+SSSE3_DESC=	support SSSE3 flavor
+SSE42_DESC=	support SSE4.2 flavor
+AVX_DESC=	support AVX flavor
+AVX2_DESC=	support AVX2 flavor
+AVX512_DESC=	support AVX-512F flavor
+
+SSE2_CXXFLAGS_OFF=	${${OSVERSION}>=1300000:?-march=i686:}
+SSE2_CXXFLAGS=		-march=pentium4
+SSSE3_CMAKE_BOOL=	FLV_SSSE3
+SSE42_CMAKE_BOOL=	FLV_SSE42
+AVX_CMAKE_BOOL=		FLV_AVX
+AVX2_CMAKE_BOOL=	FLV_AVX2
+AVX512_CMAKE_BOOL=	FLV_AVX512f
 
 .include <bsd.port.pre.mk>
 
 # cannot use CMAKE_ON after bsd.port.pre.mk
-.if ${ARCH} == 'amd64' || ${ARCH} == 'i386'
-BUILD_DEPENDS=	vc>0:devel/vc
-CMAKE_ARGS+=	-DFLV_SSSE3=ON -DFLV_SSE42=ON
-.else
-LIB_DEPENDS+=	libhwy.so:devel/highway
-CMAKE_ARGS+=	-DUSE_HWY_LIBRARY=ON -DFLV_NATIVE=ON
+# this disables the flavor dispatch code on non-x86
+.if ${ARCH} != amd64 && ${ARCH} != i386
+CMAKE_ARGS+=	-DFLV_NATIVE=ON
 .endif
 
-post-install:
-	${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/512x512/apps
-	${INSTALL_DATA} ${WRKSRC}/scripts/PV_512x512x32.png \
-	    ${STAGEDIR}${PREFIX}/share/icons/hicolor/512x512/apps/lux-pv.png
+pre-configure:
+	@${REINPLACE_CMD} -e 's,%%GUIFONT%%,${GUIFONT},' ${WRKSRC}/options.h
 
 .include <bsd.port.post.mk>
diff --git a/graphics/lux/distinfo b/graphics/lux/distinfo
index a7dddb571ff9..c7984ec8661a 100644
--- a/graphics/lux/distinfo
+++ b/graphics/lux/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1661221714
-SHA256 (9ec3fe36f96a.tar.bz2) = 339351a7cb9783292bdf6692f9bbe13001ce3ac4219c38714995c38d1e9dee7e
-SIZE (9ec3fe36f96a.tar.bz2) = 895682
+TIMESTAMP = 1661566212
+SHA256 (402942545a06.tar.bz2) = d266d5cb1308aa033af619eff4e81d0c9e4fec9f406a29177ee519b5d92f36cc
+SIZE (402942545a06.tar.bz2) = 1143378
diff --git a/graphics/lux/files/patch-CMakeLists.txt b/graphics/lux/files/patch-CMakeLists.txt
index 8fb3a862b519..c94ff78923fa 100644
--- a/graphics/lux/files/patch-CMakeLists.txt
+++ b/graphics/lux/files/patch-CMakeLists.txt
@@ -1,4 +1,4 @@
---- CMakeLists.txt.orig	2022-08-22 09:29:31 UTC
+--- CMakeLists.txt.orig	2022-08-26 12:57:31 UTC
 +++ CMakeLists.txt
 @@ -96,8 +96,8 @@ message(STATUS "***** SYSTEM PROCESSOR ${CMAKE_SYSTEM_
  set(i86 FALSE)
@@ -11,28 +11,38 @@
  	  set(i86 TRUE)
    endif()
  elseif(WIN32)
-@@ -558,24 +558,6 @@ install(FILES Sansation_Regular.ttf Sansation_1.31_Rea
+@@ -268,7 +268,7 @@ set(AVX2_FLAGS "${RENDERING_FLAGS} \
+ # about it and I don't have an AVX512 machine.
  
- find_program(LUX_GITVERSION git)
- set(LUX_PACKAGE_RELEASE "UNDEFINED")
--if(LUX_GITVERSION)
--  message(STATUS "${LUX_GITVERSION} describe --match ${pv_major}.${pv_minor}.${pv_patch} --tags")
--  message(STATUS "WORKING_DIRECTORY = ${CMAKE_SOURCE_DIR}")
--  execute_process(COMMAND ${LUX_GITVERSION} describe --match ${pv_major}.${pv_minor}.${pv_patch} --tags
--    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
--    RESULT_VARIABLE tmp_GIT_RESULT
--    OUTPUT_VARIABLE tmp_LUX_PACKAGE_RELEASE
--    ERROR_VARIABLE tmp_GIT_ERROR
--    OUTPUT_STRIP_TRAILING_WHITESPACE)
--  if (tmp_GIT_RESULT EQUAL 0)
--    if (tmp_LUX_PACKAGE_RELEASE MATCHES "^${pv_major}.${pv_minor}.${pv_patch}-\([0-9]+\)")
--      set(LUX_PACKAGE_RELEASE ${CMAKE_MATCH_1})
--    elseif(tmp_LUX_PACKAGE_RELEASE MATCHES "^${pv_major}.${pv_minor}.${pv_patch}")
--      set(LUX_PACKAGE_RELEASE 0)
--    endif()
--  endif()
--  message(STATUS "LUX_PACKAGE_RELEASE = ${LUX_PACKAGE_RELEASE}")
--endif()
+ set(AVX512f_FLAGS "${RENDERING_FLAGS} \
+-  -mavx512f -march=skx \
++  -mavx512f -march=skylake-avx512 \
+   -D hn=hn_avx512 -D PV_ARCH=PV_AVX512f \
+   -D PV_ARCHNAME=\\\"avx512f\\\" \
+   -D PV_PRIORITY=0 -D PV_VIABILITY=has_avx512f -D FLV_AVX512f")
+@@ -553,9 +553,6 @@ install(TARGETS ${_project_name} DESTINATION bin)
+ # Copy the NotoSans-Regular font and the readme (as required by the license)
+ # to the platform-specific font directory
  
- set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX})
- set(CPACK_SET_DESTDIR "ON")
+-install(FILES NotoSans-Regular.ttf noto_font_license.txt DESTINATION
+- "${DataDir}/fonts")
+-
+ # KFJ 2022-08-24 simplified package versioning, only using a.b.c
+ 
+ set(LUX_PACKAGE_RELEASE "${pv_major}.${pv_minor}.${pv_patch}")
+@@ -618,15 +615,6 @@ install(FILES scripts/512X512/lux.png 
+ 
+ install(FILES scripts/1024X1024/lux.png
+         DESTINATION share/icons/hicolor/1024x1024/apps)
+-
+-install(FILES scripts/256X256/lux.png
+-        DESTINATION share/icons/gnome/256x256/apps)
+-
+-install(FILES scripts/512X512/lux.png 
+-        DESTINATION share/icons/gnome/512x512/apps)
+-
+-install(FILES scripts/1024X1024/lux.png
+-        DESTINATION share/icons/gnome/1024x1024/apps)
+ 
+ install(FILES scripts/lux.desktop 
+         DESTINATION share/applications)
diff --git a/graphics/lux/files/patch-options.h b/graphics/lux/files/patch-options.h
new file mode 100644
index 000000000000..567f5573c2dc
--- /dev/null
+++ b/graphics/lux/files/patch-options.h
@@ -0,0 +1,11 @@
+--- options.h.orig	2022-08-27 02:26:10 UTC
++++ options.h
+@@ -132,7 +132,7 @@ yes_no  ( fullscreen , true )
+ yes_no  ( fully_covered , false )
+ yes_no  ( fuse , false )
+ yes_no  ( grey_edge , true )
+-option  ( gui_font , "" )
++option  ( gui_font , "%%GUIFONT%%" )
+ integer ( gui_extent , 0 )
+ real    ( gui_scale_factor , 0.0 )
+ yes_no  ( hdr_merge , false )
diff --git a/graphics/lux/pkg-plist b/graphics/lux/pkg-plist
new file mode 100644
index 000000000000..c4ddc718b701
--- /dev/null
+++ b/graphics/lux/pkg-plist
@@ -0,0 +1,5 @@
+bin/lux
+share/applications/lux.desktop
+share/icons/hicolor/1024x1024/apps/lux.png
+share/icons/hicolor/256x256/apps/lux.png
+share/icons/hicolor/512x512/apps/lux.png