Vacuum: fix build

* remove outdated recipe files
* fix crash on exit
This commit is contained in:
Gerasim Troeglazov
2019-03-30 11:55:02 +10:00
parent ee7c00fcca
commit 53a8c6f88b
5 changed files with 45 additions and 394 deletions

View File

@@ -1,4 +1,4 @@
From 0b0c3a80f2342904f6e895ae7d087723a7edc71e Mon Sep 17 00:00:00 2001 From b9f30f4071fb445779629401067dd2820c921cd4 Mon Sep 17 00:00:00 2001
From: Sergei Reznikov <diver@gelios.net> From: Sergei Reznikov <diver@gelios.net>
Date: Thu, 4 May 2017 17:26:25 +0300 Date: Thu, 4 May 2017 17:26:25 +0300
Subject: Fix build on Haiku Subject: Fix build on Haiku
@@ -226,5 +226,46 @@ index 126c946..65a0db1 100644
+bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods){return false;} +bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods){return false;}
+bool QxtGlobalShortcutPrivate::unregisterShortcut(quint32 nativeKey, quint32 nativeMods){return false;} +bool QxtGlobalShortcutPrivate::unregisterShortcut(quint32 nativeKey, quint32 nativeMods){return false;}
-- --
2.12.2 2.19.1
From e7f43b351d36b2c8ea083e4e079c627b02f6e4af Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sat, 30 Mar 2019 11:54:01 +1000
Subject: Ugly fix for crash on exit
diff --git a/src/loader/main.cpp b/src/loader/main.cpp
index ed632c3..01b514f 100644
--- a/src/loader/main.cpp
+++ b/src/loader/main.cpp
@@ -2,6 +2,12 @@
#include <QApplication>
#include "pluginmanager.h"
+#ifdef __HAIKU__
+#include <unistd.h>
+#include <sys/types.h>
+#include <signal.h>
+#endif
+
int main(int argc, char *argv[])
{
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling,true);
@@ -16,7 +22,12 @@ int main(int argc, char *argv[])
PluginManager pm(&app);
pm.restart();
-
+#ifdef __HAIKU__
+ app.exec();
+ kill(::getpid(), SIGKILL);
+ return 0;
+#else
return app.exec();
+#endif
}
--
2.19.1

View File

@@ -1,230 +0,0 @@
From 0b0c3a80f2342904f6e895ae7d087723a7edc71e Mon Sep 17 00:00:00 2001
From: Sergei Reznikov <diver@gelios.net>
Date: Thu, 4 May 2017 17:26:25 +0300
Subject: Fix build on Haiku
diff --git a/src/loader/pluginmanager.cpp b/src/loader/pluginmanager.cpp
index 6d65738..a5d6072 100644
--- a/src/loader/pluginmanager.cpp
+++ b/src/loader/pluginmanager.cpp
@@ -53,7 +53,7 @@
# define ENV_APP_DATA "HOME"
# define DIR_APP_DATA APPLICATION_NAME
# define PATH_APP_DATA "Library/Application Support/" DIR_APP_DATA
-#elif defined(Q_WS_HAIKU)
+#elif defined(Q_OS_HAIKU)
# define ENV_APP_DATA "APPDATA"
# define DIR_APP_DATA APPLICATION_NAME
# define PATH_APP_DATA ORGANIZATION_NAME "/" DIR_APP_DATA
diff --git a/src/thirdparty/minizip/ioapi.c b/src/thirdparty/minizip/ioapi.c
index 7f5c191..649255c 100644
--- a/src/thirdparty/minizip/ioapi.c
+++ b/src/thirdparty/minizip/ioapi.c
@@ -14,7 +14,7 @@
#define _CRT_SECURE_NO_WARNINGS
#endif
-#if defined(__APPLE__) || defined(IOAPI_NO_64)
+#if defined(__APPLE__) || defined(IOAPI_NO_64) || defined(__HAIKU__)
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
#define FTELLO_FUNC(stream) ftello(stream)
diff --git a/src/thirdparty/qxtglobalshortcut/qxtglobalshortcut_haiku.cpp b/src/thirdparty/qxtglobalshortcut/qxtglobalshortcut_haiku.cpp
index 126c946..65a0db1 100644
--- a/src/thirdparty/qxtglobalshortcut/qxtglobalshortcut_haiku.cpp
+++ b/src/thirdparty/qxtglobalshortcut/qxtglobalshortcut_haiku.cpp
@@ -28,185 +28,8 @@
#include <QWidget>
#include <QCoreApplication>
-bool QxtGlobalShortcutPrivate::eventFilter(void* message)
-{
- BMessage *msg = static_cast<BMessage*>(message);
- // if (msg->message == WM_HOTKEY)
- // {
- // const quint32 keycode = HIWORD(msg->lParam);
- // const quint32 modifiers = LOWORD(msg->lParam);
- // activateShortcut(keycode, modifiers);
- //}
- return false;
-}
-quint32 QxtGlobalShortcutPrivate::nativeModifiers(Qt::KeyboardModifiers modifiers)
-{
- // ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, and Mod5Mask
-/* quint32 native = 0;
- if (modifiers & Qt::ShiftModifier)
- native |= ShiftMask;
- if (modifiers & Qt::ControlModifier)
- native |= ControlMask;
- if (modifiers & Qt::AltModifier)
- native |= Mod1Mask;
- if (modifiers & Qt::MetaModifier)
- native |= Mod4Mask;
-*/
- // TODO: resolve these?
- //if (modifiers & Qt::MetaModifier)
- //if (modifiers & Qt::KeypadModifier)
- //if (modifiers & Qt::GroupSwitchModifier)
- //return native;
-}
-
-quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key)
-{
- switch (key)
- {
- case Qt::Key_Escape:
- return B_ESCAPE;
- case Qt::Key_Tab:
- case Qt::Key_Backtab:
- return B_TAB;
- case Qt::Key_Backspace:
- return B_BACKSPACE;
- case Qt::Key_Return:
- return B_RETURN;
- case Qt::Key_Enter:
- return B_ENTER;
- case Qt::Key_Insert:
- return B_INSERT;
- case Qt::Key_Delete:
- return B_DELETE;
- case Qt::Key_Pause:
- return B_PAUSE_KEY;
- case Qt::Key_Print:
- return B_PRINT_KEY;
-// case Qt::Key_Clear:
-// return B_CLEAR;
- case Qt::Key_Home:
- return B_HOME;
- case Qt::Key_End:
- return B_END;
- case Qt::Key_Left:
- return B_LEFT_ARROW;
- case Qt::Key_Up:
- return B_UP_ARROW;
- case Qt::Key_Right:
- return B_RIGHT_ARROW;
- case Qt::Key_Down:
- return B_DOWN_ARROW;
- case Qt::Key_PageUp:
- return B_PAGE_UP;
- case Qt::Key_PageDown:
- return B_PAGE_DOWN;
- case Qt::Key_F1:
- return B_F1_KEY;
- case Qt::Key_F2:
- return B_F2_KEY;
- case Qt::Key_F3:
- return B_F3_KEY;
- case Qt::Key_F4:
- return B_F4_KEY;
- case Qt::Key_F5:
- return B_F5_KEY;
- case Qt::Key_F6:
- return B_F6_KEY;
- case Qt::Key_F7:
- return B_F7_KEY;
- case Qt::Key_F8:
- return B_F8_KEY;
- case Qt::Key_F9:
- return B_F9_KEY;
- case Qt::Key_F10:
- return B_F10_KEY;
- case Qt::Key_F11:
- return B_F11_KEY;
- case Qt::Key_F12:
- return B_F12_KEY;
- case Qt::Key_Space:
- return B_SPACE;
-/* case Qt::Key_Asterisk:
- return B_MULTIPLY;
- case Qt::Key_Plus:
- return B_ADD;
- case Qt::Key_Comma:
- return B_SEPARATOR;
- case Qt::Key_Minus:
- return B_SUBTRACT;
- case Qt::Key_Slash:
- return B_DIVIDE;
- case Qt::Key_MediaNext:
- return B_MEDIA_NEXT_TRACK;
- case Qt::Key_MediaPrevious:
- return B_MEDIA_PREV_TRACK;
- case Qt::Key_MediaPlay:
- return B_MEDIA_PLAY_PAUSE;
- case Qt::Key_MediaStop:
- return B_MEDIA_STOP;
- // couldn't find those in B_*
- //case Qt::Key_MediaLast:
- //case Qt::Key_MediaRecord:
- case Qt::Key_VolumeDown:
- return B_VOLUME_DOWN;
- case Qt::Key_VolumeUp:
- return B_VOLUME_UP;
- case Qt::Key_VolumeMute:
- return B_VOLUME_MUTE;
-*/
- // numbers
- case Qt::Key_0:
- case Qt::Key_1:
- case Qt::Key_2:
- case Qt::Key_3:
- case Qt::Key_4:
- case Qt::Key_5:
- case Qt::Key_6:
- case Qt::Key_7:
- case Qt::Key_8:
- case Qt::Key_9:
- return key;
-
- // letters
- case Qt::Key_A:
- case Qt::Key_B:
- case Qt::Key_C:
- case Qt::Key_D:
- case Qt::Key_E:
- case Qt::Key_F:
- case Qt::Key_G:
- case Qt::Key_H:
- case Qt::Key_I:
- case Qt::Key_J:
- case Qt::Key_K:
- case Qt::Key_L:
- case Qt::Key_M:
- case Qt::Key_N:
- case Qt::Key_O:
- case Qt::Key_P:
- case Qt::Key_Q:
- case Qt::Key_R:
- case Qt::Key_S:
- case Qt::Key_T:
- case Qt::Key_U:
- case Qt::Key_V:
- case Qt::Key_W:
- case Qt::Key_X:
- case Qt::Key_Y:
- case Qt::Key_Z:
- return key;
-
- default:
- return 0;
- }
-}
-
-bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods)
-{
- // return RegisterHotKey(0, nativeMods ^ nativeKey, nativeMods, nativeKey);
-}
-
-bool QxtGlobalShortcutPrivate::unregisterShortcut(quint32 nativeKey, quint32 nativeMods)
-{
- // return UnregisterHotKey(0, nativeMods ^ nativeKey);
-}
+bool QxtGlobalShortcutPrivate::nativeEventFilter(const QByteArray & eventType, void *message, long *result){return false;}
+quint32 QxtGlobalShortcutPrivate::nativeModifiers(Qt::KeyboardModifiers modifiers){return false;}
+quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key){return 0;}
+bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods){return false;}
+bool QxtGlobalShortcutPrivate::unregisterShortcut(quint32 nativeKey, quint32 nativeMods){return false;}
--
2.12.2

View File

@@ -1,70 +0,0 @@
SUMMARY="Crossplatform Jabber/XMPP client"
DESCRIPTION="Vacuum IM is a free/libre cross-platform Qt4-based Jabber client."
HOMEPAGE="http://www.vacuum-im.org"
COPYRIGHT="2008-2015 Vacuum Team"
LICENSE="GNU GPL v3"
REVISION="1"
SOURCE_URI="https://github.com/Vacuum-IM/vacuum-im/archive/$portVersion.tar.gz"
CHECKSUM_SHA256="3237933f68884fb5b3422ad0fc97083b40a7aae9d8c105a23720c09599ffe5da"
SOURCE_FILENAME="vacuum-im-$portVersion.tar.gz"
SOURCE_DIR="vacuum-im-$portVersion"
ADDITIONAL_FILES="vacuum.rdef"
ARCHITECTURES="!x86_gcc2 x86"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
vacuum$secondaryArchSuffix = $portVersion
app:Vacuum$secondaryArchSuffix
"
REQUIRES="
haiku${secondaryArchSuffix}
libqt4${secondaryArchSuffix} >= 4.8
lib:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
libqt4${secondaryArchSuffix}_devel >= 4.8
devel:libz${secondaryArchSuffix}
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++${secondaryArchSuffix}
cmd:make
"
PATCH()
{
sed -i 's/#ifdef __FreeBSD__/#if defined(__FreeBSD__) || defined(__HAIKU__)/g' \
src/thirdparty/minizip/ioapi.h
}
BUILD()
{
# TODO: Force usage of external libraries
#rm -rf src/thirdparty/{idn,minizip,zlib}
cmake -DINSTALL_APP_DIR=$appsDir/Vacuum-IM -DINSTALL_LIB_DIR=$appsDir/Vacuum-IM/lib \
-DINSTALL_SDK=ON -DLANGS="de pl ru uk" \
-DINSTALL_DOCS=OFF #-DFORCE_BUNDLED_MINIZIP=OFF
make $jobArgs
}
INSTALL()
{
# TODO: fix make install
mkdir -p $appsDir/Vacuum-IM/lib
cp vacuum $appsDir/Vacuum-IM/Vacuum
cp -r resources plugins $appsDir/Vacuum-IM
cp -r src/libs/*.so* $appsDir/Vacuum-IM/lib
cp -r src/translations $appsDir/Vacuum-IM
rm -rf $appsDir/Vacuum-IM/translations/{ts*,.tx}
addResourcesToBinaries $portDir/additional-files/vacuum.rdef \
$appsDir/Vacuum-IM/Vacuum
# For some reason attributes are missing without mimeset
mimeset -f $appsDir/Vacuum-IM/Vacuum
addAppDeskbarSymlink $appsDir/Vacuum-IM/Vacuum
}

View File

@@ -3,7 +3,7 @@ DESCRIPTION="Vacuum IM is a free/libre cross-platform Qt-based Jabber client."
HOMEPAGE="http://www.vacuum-im.org/" HOMEPAGE="http://www.vacuum-im.org/"
COPYRIGHT="2008-2018 Vacuum Team" COPYRIGHT="2008-2018 Vacuum Team"
LICENSE="GNU GPL v3" LICENSE="GNU GPL v3"
REVISION="2" REVISION="3"
SOURCE_URI="https://github.com/Vacuum-IM/vacuum-im/archive/$portVersion-Alpha.tar.gz" SOURCE_URI="https://github.com/Vacuum-IM/vacuum-im/archive/$portVersion-Alpha.tar.gz"
CHECKSUM_SHA256="0c34a9c4ce123085dd0ad572ea6bb252d881b188c42293007d0d16f92340ad52" CHECKSUM_SHA256="0c34a9c4ce123085dd0ad572ea6bb252d881b188c42293007d0d16f92340ad52"
SOURCE_DIR="vacuum-im-$portVersion-Alpha" SOURCE_DIR="vacuum-im-$portVersion-Alpha"
@@ -51,6 +51,7 @@ BUILD_REQUIRES="
" "
BUILD_PREREQUIRES=" BUILD_PREREQUIRES="
cmd:g++$secondaryArchSuffix cmd:g++$secondaryArchSuffix
cmd:lrelease$secondaryArchSuffix >= 5
cmd:make cmd:make
cmd:qmake$secondaryArchSuffix >= 5 cmd:qmake$secondaryArchSuffix >= 5
" "

View File

@@ -1,91 +0,0 @@
SUMMARY="Crossplatform Jabber/XMPP client"
DESCRIPTION="Vacuum IM is a free/libre cross-platform Qt-based Jabber client."
HOMEPAGE="http://www.vacuum-im.org/"
COPYRIGHT="2008-2018 Vacuum Team"
LICENSE="GNU GPL v3"
REVISION="3"
srcGitRev="dac287f7260782103c1cd8b177de7b4dcadced9d"
SOURCE_URI="https://github.com/Vacuum-IM/vacuum-im/archive/$srcGitRev.tar.gz"
CHECKSUM_SHA256="f87a640d950e1cbe16c94718051301557ddf6f141db9dcfd99adf1a5c1c5a95f"
SOURCE_DIR="vacuum-im-$srcGitRev"
PATCHES="vacuum-$portVersion.patchset"
ADDITIONAL_FILES="vacuum.rdef"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
vacuum$secondaryArchSuffix = $portVersion
app:Vacuum$secondaryArchSuffix
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libidn$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Multimedia$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libQt5PrintSupport$secondaryArchSuffix
lib:libQt5Sql$secondaryArchSuffix
lib:libQt5WebKit$secondaryArchSuffix
lib:libQt5WebKitWidgets$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libQt5Xml$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libidn$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Multimedia$secondaryArchSuffix
devel:libQt5Network$secondaryArchSuffix
devel:libQt5PrintSupport$secondaryArchSuffix
devel:libQt5Sql$secondaryArchSuffix
devel:libQt5WebKit$secondaryArchSuffix
devel:libQt5WebKitWidgets$secondaryArchSuffix
devel:libQt5Widgets$secondaryArchSuffix
devel:libQt5Xml$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:g++$secondaryArchSuffix
cmd:make
cmd:qmake >= 5
"
BUILD()
{
qmake
make $jobArgs
}
INSTALL()
{
# TODO: fix make install
mkdir -p $appsDir/Vacuum-IM/lib
cp vacuum $appsDir/Vacuum-IM/Vacuum
cp -r resources plugins $appsDir/Vacuum-IM
cp -r src/libs/*.so* $appsDir/Vacuum-IM/lib
cp -r src/translations $appsDir/Vacuum-IM
rm -rf $appsDir/Vacuum-IM/translations/{ts*,.tx}
local APP_SIGNATURE="application/x-vnd.vacuum"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
# TODO: temprary fix for "~git" suffix
# local MINOR="`echo "$portVersion" | cut -d. -f3`"
local MINOR="0"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
$portDir/additional-files/vacuum.rdef > vacuum.rdef
addResourcesToBinaries vacuum.rdef $appsDir/Vacuum-IM/Vacuum
addAppDeskbarSymlink $appsDir/Vacuum-IM/Vacuum
}