knights, bump to version 24.12.3, switch to KF6 (#12042)

This commit is contained in:
Schrijvers Luc
2025-03-22 15:27:08 +00:00
committed by GitHub
parent ea42f043f9
commit d2ddc5f8c5
4 changed files with 229 additions and 205 deletions

View File

@@ -1,165 +0,0 @@
SUMMARY="Chess board program"
DESCRIPTION="KNights is a chess game. As a player, your goal is to defeat your opponent by checkmating their king.
Features:
* Local play between two players on the same computer
* Play against any computer program that supports the XBoard protocol
* Play on the Free Internet Chess Server (FICS)
* Watching two computer engines play against each other
* Support for legal move checking
* Markers for possible moves, opponents last move and sources of check
* Board borders and site notations
* Complete time control, with Plasma-styled clocks
* Several themes, with the possibility of downloading new ones from within the program
* Animated moves (configurable)
* Views for playing on a chess server, including a seek graph, text console, and chat widget
* Option to undo and redo moves
* Graphic interface for making and receiving offers from remote players
* Support for the UCI protocol (used by Stockfish, Chessbase, and many others)
* Support for saving and loading Portable game notation (PGN) files
* Use of Jovie, the KDE text-to-speak program, to speak opponents moves
* Ability to control the program via a D-Bus interface"
HOMEPAGE="https://apps.kde.org/en/knights"
COPYRIGHT="2010-2023 KDE Organisation"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="https://download.kde.org/stable/release-service/$portVersion/src/knights-$portVersion.tar.xz"
CHECKSUM_SHA256="5633236fca8183614f148f3995c6ff71719234dab35c27ee3714842f321bbe83"
SOURCE_DIR="knights-$portVersion"
PATCHES="knights-$portVersion.patchset"
ADDITIONAL_FILES="knights.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
knights$secondaryArchSuffix = $portVersion
app:KNights$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
cmd:gnuchess
cmd:stockfish
lib:libKF5Archive$secondaryArchSuffix
lib:libKF5Auth$secondaryArchSuffix
lib:libKF5Bookmarks$secondaryArchSuffix
lib:libKF5Codecs$secondaryArchSuffix
lib:libKF5Completion$secondaryArchSuffix
lib:libKF5ConfigCore$secondaryArchSuffix
lib:libKF5ConfigGui$secondaryArchSuffix
lib:libKF5ConfigWidgets$secondaryArchSuffix
lib:libKF5CoreAddons$secondaryArchSuffix
lib:libKF5Crash$secondaryArchSuffix
lib:libKF5DBusAddons$secondaryArchSuffix
lib:libKF5GuiAddons$secondaryArchSuffix
lib:libKF5I18n$secondaryArchSuffix
lib:libKF5IconThemes$secondaryArchSuffix
lib:libKF5ItemViews$secondaryArchSuffix
lib:libKF5KDEGames$secondaryArchSuffix
lib:libKF5Package$secondaryArchSuffix
lib:libKF5Plasma$secondaryArchSuffix
lib:libKF5Plotting$secondaryArchSuffix
lib:libKF5Service$secondaryArchSuffix
lib:libKF5Solid$secondaryArchSuffix
lib:libKF5SonnetUi$secondaryArchSuffix
lib:libKF5TextEditor$secondaryArchSuffix
lib:libKF5TextWidgets$secondaryArchSuffix
lib:libKF5Wallet$secondaryArchSuffix
lib:libKF5WidgetsAddons$secondaryArchSuffix
lib:libKF5WindowSystem$secondaryArchSuffix
lib:libKF5XmlGui$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5DBus$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libQt5Xml$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
extra_cmake_modules$secondaryArchSuffix >= 5.115
devel:libKF5Archive$secondaryArchSuffix
devel:libKF5Auth$secondaryArchSuffix
devel:libKF5Bookmarks$secondaryArchSuffix
devel:libKF5Codecs$secondaryArchSuffix
devel:libKF5Completion$secondaryArchSuffix
devel:libKF5ConfigCore$secondaryArchSuffix
devel:libKF5ConfigWidgets$secondaryArchSuffix
devel:libKF5CoreAddons$secondaryArchSuffix
devel:libKF5Crash$secondaryArchSuffix
devel:libKF5DBusAddons$secondaryArchSuffix
devel:libKF5DocTools$secondaryArchSuffix
devel:libKF5GuiAddons$secondaryArchSuffix
devel:libKF5I18n$secondaryArchSuffix
devel:libKF5IconThemes$secondaryArchSuffix
devel:libKF5ItemModels$secondaryArchSuffix
devel:libKF5ItemViews$secondaryArchSuffix
devel:libKF5JobWidgets$secondaryArchSuffix
devel:libKF5KDEGames$secondaryArchSuffix
devel:libKF5KIOCore$secondaryArchSuffix
devel:libKF5Package$secondaryArchSuffix
devel:libKF5Plasma$secondaryArchSuffix
devel:libKF5Plotting$secondaryArchSuffix
devel:libKF5Service$secondaryArchSuffix
devel:libKF5Solid$secondaryArchSuffix
devel:libKF5SonnetUi$secondaryArchSuffix
devel:libKF5TextEditor$secondaryArchSuffix
devel:libKF5TextWidgets$secondaryArchSuffix
devel:libKF5Wallet$secondaryArchSuffix
devel:libKF5WidgetsAddons$secondaryArchSuffix
devel:libKF5WindowSystem$secondaryArchSuffix
devel:libKF5XmlGui$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:lrelease$secondaryArchSuffix >= 5
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
# disable docs generation
sed -e '/add_subdirectory(doc)/ s/^#*/#/' -i CMakeLists.txt
sed -e '/kdoctools_install(po)/ s/^#*/#/' -i CMakeLists.txt
mkdir -p build
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$appsDir \
-DCMAKE_INSTALL_DATADIR=$dataDir \
-DCMAKE_INSTALL_DATAROOTDIR=$dataDir \
-DSHARE_INSTALL_PREFIX=$dataDir \
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake
make $jobArgs
}
INSTALL()
{
cd build
make install
mv $appsDir/bin/knights $appsDir/KNights
rm -rf $appsDir/bin
local APP_SIGNATURE="application/x-vnd.kde-knights"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/knights.rdef.in > knights.rdef
addResourcesToBinaries knights.rdef $appsDir/KNights
addAppDeskbarSymlink $appsDir/KNights
}

View File

@@ -0,0 +1,179 @@
SUMMARY="Chess board program"
DESCRIPTION="KNights is a chess game. As a player, your goal is to defeat your opponent by checkmating their king.
Features:
* Local play between two players on the same computer
* Play against any computer program that supports the XBoard protocol
* Play on the Free Internet Chess Server (FICS)
* Watching two computer engines play against each other
* Support for legal move checking
* Markers for possible moves, opponents last move and sources of check
* Board borders and site notations
* Complete time control, with Plasma-styled clocks
* Several themes, with the possibility of downloading new ones from within the program
* Animated moves (configurable)
* Views for playing on a chess server, including a seek graph, text console, and chat widget
* Option to undo and redo moves
* Graphic interface for making and receiving offers from remote players
* Support for the UCI protocol (used by Stockfish, Chessbase, and many others)
* Support for saving and loading Portable game notation (PGN) files
* Use of Jovie, the KDE text-to-speak program, to speak opponents moves
* Ability to control the program via a D-Bus interface"
HOMEPAGE="https://apps.kde.org/en/knights"
COPYRIGHT="2010-2025 KDE Organisation"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="https://download.kde.org/stable/release-service/$portVersion/src/knights-$portVersion.tar.xz"
CHECKSUM_SHA256="b9e7b2d92467dcb1ca68b3bf868ed5a4a5b57649d4ce3c856554b8b32b542979"
SOURCE_DIR="knights-$portVersion"
PATCHES="knights-$portVersion.patchset"
ADDITIONAL_FILES="knights.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
knights$secondaryArchSuffix = $portVersion
app:KNights$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
cmd:gnuchess
cmd:stockfish
lib:libGL$secondaryArchSuffix
lib:libKDEGames6$secondaryArchSuffix
# KF6
lib:libKF6Archive$secondaryArchSuffix
lib:libKF6AuthCore$secondaryArchSuffix
lib:libKF6Bookmarks$secondaryArchSuffix
lib:libKF6Codecs$secondaryArchSuffix
lib:libKF6ColorScheme$secondaryArchSuffix
lib:libKF6Completion$secondaryArchSuffix
lib:libKF6ConfigCore$secondaryArchSuffix
lib:libKF6ConfigGui$secondaryArchSuffix
lib:libKF6ConfigWidgets$secondaryArchSuffix
lib:libKF6CoreAddons$secondaryArchSuffix
lib:libKF6Crash$secondaryArchSuffix
lib:libKF6DBusAddons$secondaryArchSuffix
lib:libKF6GuiAddons$secondaryArchSuffix
lib:libKF6I18n$secondaryArchSuffix
lib:libKF6IconThemes$secondaryArchSuffix
lib:libKF6ItemViews$secondaryArchSuffix
lib:libKF6Package$secondaryArchSuffix
lib:libKF6Plotting$secondaryArchSuffix
lib:libKF6Service$secondaryArchSuffix
lib:libKF6Solid$secondaryArchSuffix
lib:libKF6SonnetUi$secondaryArchSuffix
lib:libKF6Svg$secondaryArchSuffix
lib:libKF6TextEditor$secondaryArchSuffix
lib:libKF6TextWidgets$secondaryArchSuffix
lib:libKF6Wallet$secondaryArchSuffix
lib:libKF6WidgetsAddons$secondaryArchSuffix
lib:libKF6WindowSystem$secondaryArchSuffix
lib:libKF6XmlGui$secondaryArchSuffix
# Qt6
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Core5Compat$secondaryArchSuffix
lib:libQt6DBus$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
lib:libQt6Qml$secondaryArchSuffix
lib:libQt6Svg$secondaryArchSuffix
lib:libQt6Widgets$secondaryArchSuffix
lib:libQt6Xml$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libKDEGames6$secondaryArchSuffix
# KF6
extra_cmake_modules$secondaryArchSuffix
devel:libKF6Archive$secondaryArchSuffix
devel:libKF6AuthCore$secondaryArchSuffix
devel:libKF6Bookmarks$secondaryArchSuffix
devel:libKF6Codecs$secondaryArchSuffix
devel:libKF6ColorScheme$secondaryArchSuffix
devel:libKF6Completion$secondaryArchSuffix
devel:libKF6ConfigCore$secondaryArchSuffix
devel:libKF6ConfigWidgets$secondaryArchSuffix
devel:libKF6CoreAddons$secondaryArchSuffix
devel:libKF6Crash$secondaryArchSuffix
devel:libKF6DBusAddons$secondaryArchSuffix
devel:libKF6DocTools$secondaryArchSuffix
devel:libKF6GuiAddons$secondaryArchSuffix
devel:libKF6I18n$secondaryArchSuffix
devel:libKF6IconThemes$secondaryArchSuffix
devel:libKF6ItemModels$secondaryArchSuffix
devel:libKF6ItemViews$secondaryArchSuffix
devel:libKF6JobWidgets$secondaryArchSuffix
devel:libKF6KIOCore$secondaryArchSuffix
devel:libKF6Package$secondaryArchSuffix
# devel:libKF6Plasma$secondaryArchSuffix
devel:libKF6Plotting$secondaryArchSuffix
devel:libKF6Service$secondaryArchSuffix
devel:libKF6Solid$secondaryArchSuffix
devel:libKF6SonnetUi$secondaryArchSuffix
devel:libKF6Svg$secondaryArchSuffix
devel:libKF6TextEditor$secondaryArchSuffix
devel:libKF6TextWidgets$secondaryArchSuffix
devel:libKF6Wallet$secondaryArchSuffix
devel:libKF6WidgetsAddons$secondaryArchSuffix
devel:libKF6WindowSystem$secondaryArchSuffix
devel:libKF6XmlGui$secondaryArchSuffix
# Qt6
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Core5Compat$secondaryArchSuffix
devel:libQt6Qml$secondaryArchSuffix
devel:libQt6Svg$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:make
cmd:msgfmt$secondaryArchSuffix
cmd:msgmerge$secondaryArchSuffix
cmd:pkg_config$secondaryArchSuffix
"
PATCH()
{
# disable docs generation
sed -e '/add_subdirectory(doc)/ s/^#*/#/' -i CMakeLists.txt
sed -e '/kdoctools_install(po)/ s/^#*/#/' -i CMakeLists.txt
}
BUILD()
{
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
$cmakeDirArgs \
-DCMAKE_INSTALL_BINDIR=$appsDir \
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake \
-Wno-dev
make -C build $jobArgs
}
INSTALL()
{
make -C build install
# cleanup
rm -rf $dataDir/{applications,icons,metainfo}
mv $appsDir/knights $appsDir/KNights
local APP_SIGNATURE="application/x-vnd.kde-knights"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/knights.rdef.in > knights.rdef
addResourcesToBinaries knights.rdef $appsDir/KNights
addAppDeskbarSymlink $appsDir/KNights
}

View File

@@ -1,40 +0,0 @@
From 2c8898c8bc623ac93d31de426f1c2ee7d4375485 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sat, 2 Mar 2024 17:53:38 +1000
Subject: Disable stack protector
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1eb4898..81dc2d1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,7 +24,7 @@ find_package(ECM ${KF_MIN_VERSION} REQUIRED CONFIG)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
if(CMAKE_COMPILER_IS_GNUCXX)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpointer-arith -Wunreachable-code -fno-omit-frame-pointer -fstack-protector")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpointer-arith -Wunreachable-code -fno-omit-frame-pointer")
endif(CMAKE_COMPILER_IS_GNUCXX)
#set(CMAKE_CXX_FLAGS_PROFILE "-fprofile-arcs -ftest-coverage -pg")
@@ -90,7 +90,7 @@ add_definitions(
-DKF_DEPRECATED_WARNINGS_SINCE=0x060000
)
-add_subdirectory(doc)
+#add_subdirectory(doc)
add_subdirectory(icons)
add_subdirectory(sounds)
add_subdirectory(src)
@@ -99,7 +99,7 @@ add_subdirectory(themes)
ecm_qt_install_logging_categories(EXPORT KNIGHTS FILE knights.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
ki18n_install(po)
-kdoctools_install(po)
+#kdoctools_install(po)
feature_summary(WHAT ALL
INCLUDE_QUIET_PACKAGES
--
2.43.2

View File

@@ -0,0 +1,50 @@
From e82fa7682b717f4ec0385025a6450bfa43b31396 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sat, 2 Mar 2024 17:53:38 +1000
Subject: Disable stack protector
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 15ffcc0..3e955b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,7 +20,7 @@ find_package(ECM ${KF_MIN_VERSION} REQUIRED CONFIG)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${ECM_MODULE_PATH})
if(CMAKE_COMPILER_IS_GNUCXX)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpointer-arith -Wunreachable-code -fno-omit-frame-pointer -fstack-protector")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpointer-arith -Wunreachable-code -fno-omit-frame-pointer")
endif(CMAKE_COMPILER_IS_GNUCXX)
#set(CMAKE_CXX_FLAGS_PROFILE "-fprofile-arcs -ftest-coverage -pg")
--
2.48.1
From e8fb3daf97c477ad1cbace9d2c863965decc4e69 Mon Sep 17 00:00:00 2001
From: Schrijvers Luc <begasus@gmail.com>
Date: Wed, 24 Apr 2024 15:03:03 +0200
Subject: Disable libplasma
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e955b6..3bca371 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -69,11 +69,13 @@ find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS
Svg
)
+if(NOT HAIKU)
find_package(Plasma ${PLASMA_MIN_VERSION} REQUIRED)
set_package_properties(Plasma PROPERTIES
TYPE RUNTIME
PURPOSE "clock svg (part of the desktop theme)"
)
+endif()
find_package(KDEGames6 6.0.0 REQUIRED)
--
2.48.1