Krita: add recipe for version 3.3.1

* 3.3.2 is unstable for now
This commit is contained in:
Gerasim Troeglazov
2017-11-19 16:51:35 +10:00
parent 068836688b
commit 2ea63a12bb
3 changed files with 448 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
resource app_flags B_MULTIPLE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_FINAL,
internal = 0,
short_info = "Krita",
long_info = "@LONG_INFO@"
};
resource app_signature "@APP_SIGNATURE@";
resource file_types message {
"types" = "image"
};
resource vector_icon {
$"6E63696612020306043C078BBE3A603E00733BA5904C23E048EB521DDE36D585"
$"FF82C3C97BDADEFFECE3600500044EB1020004020060ECE3FF60ECE302000602"
$"BA0F5F3C1324BBD1BBB9CACC482BE14A56C700FDFEEDFFFFF24B050002000603"
$"BA0F5F3C1324BBD1BBB9CACC482BE14A56C701D9D8FF83FDFEEDFF9A99CD0200"
$"0602B62D333C80B5BC4DA5B600CB4782F24A3D6000FDFEEDFFFFF24B02000603"
$"B348CE3C5C56BC5C56B348CE4784C54990D501D9D8FF83FDFEEDFF9A99CD0400"
$"3302000602AE2E47381491B81491AE2E474A71A64A7DB601CFD2DEFF7C7ED902"
$"010602379D18000000000000379D1849F43649B39600FFFFFFFFBEB333052205"
$"6605B30388888905E60201060239ADBE00000000000039ADBE48AF4049CB6600"
$"FE929DFFD91419100204BFA620B89120C6BC20CC4DBFA6CC4DB891CC4DC6BCBF"
$"A6CC4DC6BCCC4DB891CC4D20BFA620C6BC20B89102044030C34530BC3A303040"
$"30BC3A30C3454050BC3A50C34550504050C34550BC3A0A04BD3FC29AC169C138"
$"CB4AC162C846C4070204C02CBD9CC022BDF1BF25BD7DBE48C029BE53BDE6BE3E"
$"C26CBD6BC22DBD95C22DBDF4C257C226BF6BC250C2ABC1BDBF2C020BBED0BDBB"
$"BF28BD6FBE55BE26BE10C028BE16BEF1BE0BC16ABDB3C1E8BDD6C1CFBD6DC21A"
$"BCF2C223BCF7C207BCEDC23FBD5BC262BD40C25ABDC0C282C168C1ACC013C2B6"
$"C218C123C25EBF69C26AC061C25DBF56C243BF3CC253BF45C1C7BEF1C064BD9B"
$"C076BDE1C064BD9BC064BDA3C064BDA3C063BD87C033BD65C04FBD68BF9CBD53"
$"0202BFF5BD9CBFF5BD9ABFF5BD9ABFF5BD95BFF5BD98BFF5BD980207BE80C02A"
$"BE7CC117BE85BF19BF1ABE0FBEB9BE63BF53BDDDC029BDD3BFC3BDCCC073BE64"
$"C1EFBF8AC190BF49C1EFBF8EC1EFBF98C1EFBF93C1EFC056C124C154C1ABC0EB"
$"C049C1FEBE20C20CBEF1C216BE5BC1B30606BF0FC0DFBEFBC059BE74C16CBF88"
$"C230BFADC230BFADC480BE52CC28B4C0C6B9BD26CD09B365CC91B311CAF6B38D"
$"CC51B2ADC290B8FDC009BD86C164BB36C008BD860206CBC6B370CBD1B36AC3CA"
$"B89BC0C9BD44C215BB0CC0D8BD93C12EBE36C0FABE02C164BE6DC205BE8BC1C6"
$"BE83C43ABD41CBD5B3DEC6C1BBADCBEEB3AACBFAB363CC1CB380CBF1B3680204"
$"C12CBD3AC23DBB6BC13BBD6AC150BD90C14ABD88C154BD93C185BDA3C169BD9B"
$"C35838CBBBB374C7EAB900C633B7410204C12CBD3AC276BB8EC13BBD6AC150BD"
$"90C14ABD88C154BD93C185BDA3C169BD9BC2E3BC31CB92B38FC6C8B8BAC617B8"
$"400205C0DEBEFBC058BE75C16BBF88C230BFADC230BFADC2D9BF4AC43ABE63C3"
$"81BEEBC378BE0BC143BB91C19DBC59C0C4BC42C008BD86C068BCE3C008BD8602"
$"06C1F5BD36C15DBDC8C231BD62C35DBDE1C351BDEDC337BDC6C249BCE5C275BD"
$"13C21FBCBCC1D3BC6AC1F7BC92C11EBD20C068BDF0C0C3BD79C076BE20C0ADBE"
$"6AC09ABE55C101BE110606EF0FC008BD86C008BD86C164BB36CAF6B38DC290B8"
$"FDCC51B2ADCC91B311CC28B4C0CD09B365C6B9BD26C230BFADC480BE52C230BF"
$"ADC0DFBEFBC16CBF88C059BE740208CB33B3EBCBCFB386C31BB928C084BD90C1"
$"C8BB66C0A0BDD6C12EBEACC0DCBE5AC17FBEFDC21FBF36C1E8BF25C220BF35C2"
$"21BF34C221BF34C44DBDF0CBCBB483C68BBCA0CC33B3E2CC41B36DCC41B38ECC"
$"41B36CCC41B36CCC41B36CCC1FB3700207BBAEBE9EBC14BE75BAB9BEEFB8C5C1"
$"CDB87EC153B90DC248BB0BC314B921C33CBCF4C2EBBE8BC1FBBE39C238BEDC45"
$"BC3BC21DBD01C212BB69C229BAA5C153BAA5C1A5BAA5C069BBEBBF55BB69BFA6"
$"BC8EBEEF0C0A020101024170000000000000003FC000C870004700000A000100"
$"023F282339621AB961A23F27A646231A41B3F50A010100123F2F5C0000000000"
$"003F2EDE447C17447E0B01178300040A0B010302C058920000000000004038FA"
$"4C63793FFE900A050304050602C058920000000000004038FA4C63793FFE900A"
$"05010702C058920000000000004038FA4C63793FFE900A0C010802C058920000"
$"000000004038FA4C63793FFE900A0D010902C058920000000000004038FA4C63"
$"793FFE900A0E010A02C058920000000000004038FA4C63793FFE900A0F010B02"
$"C058920000000000004038FA4C63793FFE900A10010C02C05892000000000000"
$"4038FA4C63793FFE900A05020D0E02C058920000000000004038FA4C63793FFE"
$"90"
};

View File

@@ -0,0 +1,176 @@
SUMMARY="Professional FREE and open source painting program"
DESCRIPTION="Krita is a free and open-source raster graphics editor designed primarily \
for digital painting and animation purposes. It features a low-distract UI, high-quality \
OpenGL accelerated canvas, color management support, advanced brush engine, non-destructive \
layers and masks, group-based layer management, vector artwork support and switchable customization profiles."
HOMEPAGE="http://www.krita.org/"
COPYRIGHT="2010-2017 KDE Organisation"
LICENSE="GNU LGPL v2"
REVISION="1"
SOURCE_URI="https://download.kde.org/stable/krita/$portVersion/krita-$portVersion.tar.gz"
CHECKSUM_SHA256="5fb86577753b28b8915ae993c80a417f388977d04159feb69f5afc0e592bfee9"
ADDITIONAL_FILES="krita.rdef.in"
PATCHES="krita-$portVersion.patchset"
ARCHITECTURES="?x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
krita$secondaryArchSuffix = $portVersion
app:Krita$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
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:libKF5GuiAddons$secondaryArchSuffix
lib:libKF5I18n$secondaryArchSuffix
lib:libKF5IconThemes$secondaryArchSuffix
lib:libKF5ItemViews$secondaryArchSuffix
lib:libKF5ItemModels$secondaryArchSuffix
lib:libKF5JobWidgets$secondaryArchSuffix
lib:libKF5KDELibs4Support$secondaryArchSuffix
lib:libKF5KIOCore$secondaryArchSuffix
lib:libKF5KIOFileWidgets$secondaryArchSuffix
lib:libKF5KIOWidgets$secondaryArchSuffix
lib:libKF5Notifications$secondaryArchSuffix
lib:libKF5Parts$secondaryArchSuffix
lib:libKF5Service$secondaryArchSuffix
lib:libKF5Solid$secondaryArchSuffix
lib:libKF5SonnetUi$secondaryArchSuffix
lib:libKF5TextWidgets$secondaryArchSuffix
lib:libKF5UnitConversion$secondaryArchSuffix
lib:libKF5WidgetsAddons$secondaryArchSuffix
lib:libKF5WindowSystem$secondaryArchSuffix
lib:libKF5XmlGui$secondaryArchSuffix
lib:libQt5Svg$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Multimedia$secondaryArchSuffix
lib:libQt5PrintSupport$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Xml$secondaryArchSuffix
lib:libQt5Concurrent$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:liblcms2$secondaryArchSuffix
lib:libexpat$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libexiv2$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libopencolorio$secondaryArchSuffix
lib:libraw$secondaryArchSuffix
lib:libilmimf$secondaryArchSuffix
lib:libboost_system$secondaryArchSuffix
lib:libfftw3$secondaryArchSuffix
lib:libpoppler${secondaryArchSuffix}_qt5
lib:libgsl$secondaryArchSuffix
"
BUILD_REQUIRES="
extra_cmake_modules >= 5.39
haiku${secondaryArchSuffix}_devel
devel:libkf5archive$secondaryArchSuffix
devel:libKF5Auth$secondaryArchSuffix
devel:libKF5Bookmarks$secondaryArchSuffix
devel:libKF5Codecs$secondaryArchSuffix
devel:libKF5Completion$secondaryArchSuffix
devel:libKF5ConfigCore$secondaryArchSuffix
devel:libKF5ConfigGui$secondaryArchSuffix
devel:libKF5ConfigWidgets$secondaryArchSuffix
devel:libkf5coreaddons$secondaryArchSuffix
devel:libKF5Crash$secondaryArchSuffix
devel:libKF5GuiAddons$secondaryArchSuffix
devel:libKF5I18n$secondaryArchSuffix
devel:libKF5IconThemes$secondaryArchSuffix
devel:libKF5ItemViews$secondaryArchSuffix
devel:libKF5ItemModels$secondaryArchSuffix
devel:libKF5JobWidgets$secondaryArchSuffix
devel:libKF5KDELibs4Support$secondaryArchSuffix
devel:libKF5KIOCore$secondaryArchSuffix
devel:libKF5KIOFileWidgets$secondaryArchSuffix
devel:libKF5KIOWidgets$secondaryArchSuffix
devel:libKF5Notifications$secondaryArchSuffix
devel:libKF5Parts$secondaryArchSuffix
devel:libKF5Service$secondaryArchSuffix
devel:libKF5Solid$secondaryArchSuffix
devel:libKF5SonnetUi$secondaryArchSuffix
devel:libKF5TextWidgets$secondaryArchSuffix
devel:libKF5UnitConversion$secondaryArchSuffix
devel:libKF5WidgetsAddons$secondaryArchSuffix
devel:libKF5WindowSystem$secondaryArchSuffix
devel:libKF5XmlGui$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix >= 5.7
devel:libiconv$secondaryArchSuffix
devel:liblcms2$secondaryArchSuffix
devel:libexpat$secondaryArchSuffix
devel:eigen$secondaryArchSuffix
devel:libexiv2$secondaryArchSuffix
devel:libopencolorio$secondaryArchSuffix
devel:libraw$secondaryArchSuffix
devel:libilmimf$secondaryArchSuffix
devel:libfftw3$secondaryArchSuffix
devel:libpoppler${secondaryArchSuffix}_qt5
devel:libgsl$secondaryArchSuffix
boost${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:make
cmd:python2
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
mkdir -p build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=$appsDir/Krita/ \
-DSHARE_INSTALL_PREFIX=$appsDir/Krita/share \
-DCMAKE_BUILD_TYPE=release \
-DBUILD_TESTING=FALSE \
-DHIDE_SAFE_ASSERTS=TRUE \
-DECM_MKSPECS_INSTALL_DIR=$dataDir/Qt5/mkspecs \
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake
make $jobArgs
}
INSTALL()
{
cd build
make install
mv $appsDir/Krita/bin/krita $appsDir/Krita/Krita
rm -rf $appsDir/Krita/bin
local APP_SIGNATURE="application/x-vnd.kde-krita"
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/krita.rdef.in > krita.rdef
addResourcesToBinaries krita.rdef $appsDir/Krita/Krita
mimeset -f $appsDir/Krita/Krita
addAppDeskbarSymlink $appsDir/Krita/Krita
}

View File

@@ -0,0 +1,198 @@
From fd73beede56d6e70880bff91f861fbef4aeb3e66 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 19 Nov 2017 15:08:47 +1000
Subject: Fix build for Haiku
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ae27e7f..9fab0b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -264,7 +264,7 @@ set_package_properties(Qt5Multimedia PROPERTIES
macro_bool_to_01(Qt5Multimedia_FOUND HAVE_QT_MULTIMEDIA)
configure_file(config-qtmultimedia.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-qtmultimedia.h )
-if (NOT WIN32 AND NOT APPLE)
+if (NOT WIN32 AND NOT APPLE AND NOT HAIKU)
find_package(Qt5 ${MIN_QT_VERSION} REQUIRED X11Extras)
diff --git a/libs/ui/CMakeLists.txt b/libs/ui/CMakeLists.txt
index 1c8c43f..f402c9a 100644
--- a/libs/ui/CMakeLists.txt
+++ b/libs/ui/CMakeLists.txt
@@ -416,7 +416,7 @@ if(UNIX)
input/wintab/kis_tablet_support.cpp
qtlockedfile/qtlockedfile_unix.cpp
)
- if(NOT APPLE)
+ if(NOT APPLE AND NOT HAIKU)
set(kritaui_LIB_SRCS
${kritaui_LIB_SRCS}
input/wintab/kis_tablet_support_x11.cpp
@@ -524,7 +524,7 @@ if (HAVE_KIO)
target_link_libraries(kritaui KF5::KIOCore)
endif()
-if (NOT WIN32 AND NOT APPLE)
+if (NOT WIN32 AND NOT APPLE AND NOT HAIKU)
target_link_libraries(kritaui ${X11_X11_LIB}
${X11_Xinput_LIB}
${XCB_LIBRARIES})
@@ -535,11 +535,17 @@ if(APPLE)
target_link_libraries(kritaui ${APPKIT_LIBRARY})
endif ()
+if(HAIKU)
+ target_link_libraries(kritaui network)
+ target_link_libraries(kritaui expat)
+ target_link_libraries(kritaui iconv)
+ target_link_libraries(kritaui intl)
+endif ()
target_link_libraries(kritaui ${OPENEXR_LIBRARIES})
# Add VSync disable workaround
-if(NOT WIN32 AND NOT APPLE)
+if(NOT WIN32 AND NOT APPLE AND NOT HAIKU)
target_link_libraries(kritaui ${CMAKE_DL_LIBS} Qt5::X11Extras)
endif()
diff --git a/plugins/dockers/CMakeLists.txt b/plugins/dockers/CMakeLists.txt
index a2c0280..a407e59 100644
--- a/plugins/dockers/CMakeLists.txt
+++ b/plugins/dockers/CMakeLists.txt
@@ -12,7 +12,7 @@ add_subdirectory(tasksetdocker)
add_subdirectory(compositiondocker)
add_subdirectory(patterndocker)
add_subdirectory(griddocker)
-if(HAVE_OCIO)
+if(HAVE_OCIO AND NOT HAIKU)
add_subdirectory(lut)
endif()
add_subdirectory(overview)
--
2.15.0
From 5d145d8b8d9fffbfb2cebc73116df0fe07139906 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 19 Nov 2017 15:17:49 +1000
Subject: Fix paths
diff --git a/krita/main.cc b/krita/main.cc
index 1903d1a..8adb80c 100644
--- a/krita/main.cc
+++ b/krita/main.cc
@@ -153,8 +153,11 @@ extern "C" int main(int argc, char **argv)
// first create the application so we can create a pixmap
KisApplication app(key, argc, argv);
-#ifdef Q_OS_LINUX
+#if defined(Q_OS_LINUX)
qputenv("XDG_DATA_DIRS", QFile::encodeName(KoResourcePaths::getApplicationRoot() + "share") + ":" + qgetenv("XDG_DATA_DIRS"));
+#elif defined(Q_OS_HAIKU)
+ qputenv("KRITA_PLUGIN_PATH", QFile::encodeName(KoResourcePaths::getApplicationRoot() + "lib"));
+ qputenv("XDG_DATA_DIRS", QFile::encodeName(KoResourcePaths::getApplicationRoot() + "share/") + ":" + qgetenv("XDG_DATA_DIRS"));
#else
qputenv("XDG_DATA_DIRS", QFile::encodeName(KoResourcePaths::getApplicationRoot() + "share"));
#endif
diff --git a/libs/widgetutils/KoResourcePaths.cpp b/libs/widgetutils/KoResourcePaths.cpp
index ce21a2a..c9b6e2f 100644
--- a/libs/widgetutils/KoResourcePaths.cpp
+++ b/libs/widgetutils/KoResourcePaths.cpp
@@ -115,6 +115,8 @@ QString getInstallationPrefix() {
debugWidgetUtils << ">>>>>>>>>>>" << bundlePath;
return bundlePath;
+ #elif defined(Q_OS_HAIKU)
+ return qApp->applicationDirPath() + "/";
#else
return qApp->applicationDirPath() + "/../";
#endif
--
2.15.0
From cc146fb2a57a653f5bc5b0537413fa2925df9432 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 19 Nov 2017 15:19:23 +1000
Subject: Add memory size detection for Haiku platform
diff --git a/libs/image/kis_image_config.cpp b/libs/image/kis_image_config.cpp
index f0c8b73..af0c6d2 100644
--- a/libs/image/kis_image_config.cpp
+++ b/libs/image/kis_image_config.cpp
@@ -346,6 +346,8 @@ void KisImageConfig::setLazyFrameCreationEnabled(bool value)
#elif defined Q_OS_MAC
#include <sys/types.h>
#include <sys/sysctl.h>
+#elif defined Q_OS_HAIKU
+#include <OS.h>
#endif
#include <kis_debug.h>
@@ -376,6 +378,13 @@ int KisImageConfig::totalRAM()
if(!error) {
totalMemory = physmem >> 20;
}
+#elif defined Q_OS_HAIKU
+ system_info info;
+ error = get_system_info(&info)==B_OK?0:1;
+ if(!error) {
+ uint64_t size = (info.max_pages*B_PAGE_SIZE);
+ totalMemory = size >> 20;
+ }
#elif defined Q_OS_WIN
MEMORYSTATUSEX status;
status.dwLength = sizeof(status);
--
2.15.0
From a3a5e5e6ee975eee7bee79ab865f1943cb53dd99 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 19 Nov 2017 15:20:02 +1000
Subject: Disable floating windows
diff --git a/libs/ui/widgets/kis_floating_message.cpp b/libs/ui/widgets/kis_floating_message.cpp
index be98d8b..8c94a5a 100644
--- a/libs/ui/widgets/kis_floating_message.cpp
+++ b/libs/ui/widgets/kis_floating_message.cpp
@@ -129,6 +129,7 @@ KisFloatingMessage::KisFloatingMessage(const QString &message, QWidget *parent,
, m_priority(priority)
, m_alignment(alignment)
{
+#ifndef Q_OS_HAIKU
m_icon = KisIconUtils::loadIcon("calligrakrita").pixmap(256, 256).toImage();
setWindowFlags(Qt::FramelessWindowHint | Qt::ToolTip);
@@ -139,6 +140,7 @@ KisFloatingMessage::KisFloatingMessage(const QString &message, QWidget *parent,
m_timer.setSingleShot( true );
connect(&m_timer, SIGNAL(timeout()), SLOT(startFade()));
+#endif
}
void KisFloatingMessage::tryOverrideMessage(const QString message,
@@ -160,12 +162,13 @@ void KisFloatingMessage::tryOverrideMessage(const QString message,
void KisFloatingMessage::showMessage()
{
-
+#ifndef Q_OS_HAIKU
setGeometry(determineMetrics(fontMetrics().width('x')));
setWindowOpacity(OSD_WINDOW_OPACITY);
QWidget::setVisible(true);
m_timer.start(m_timeout);
+#endif
}
void KisFloatingMessage::setShowOverParent(bool show)
--
2.15.0