enable some qt5-dependent packages

%ci:no-build
This commit is contained in:
Leonid Pliushch 2021-10-26 16:34:57 +00:00 committed by Yaksh Bariya
parent f6e69c60be
commit 1455972447
No known key found for this signature in database
GPG Key ID: F7486BA7D3D27581
86 changed files with 3430 additions and 0 deletions

View File

@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://github.com/tsujan/Arqiver
TERMUX_PKG_DESCRIPTION="A simple Qt archiver manager based on libarchive"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="Yisus7u7"
TERMUX_PKG_VERSION=0.8.0
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://github.com/tsujan/Arqiver/releases/download/V${TERMUX_PKG_VERSION}/Arqiver-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_SHA256=96e1f02236fdf38bad0221aa94b732313d93f2c9be2f062085a56cfc23d61897
TERMUX_PKG_DEPENDS="hicolor-icon-theme, qt5-qtbase, qt5-qtsvg, qt5-qtx11extras, libarchive, bsdtar, zip"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,12 @@
TERMUX_PKG_HOMEPAGE=https://audacious-media-player.org
TERMUX_PKG_DESCRIPTION="Plugins for Audacious"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=4.1
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL=https://distfiles.audacious-media-player.org/audacious-plugins-${TERMUX_PKG_VERSION}.tar.bz2
TERMUX_PKG_SHA256=dad6fc625055349d589e36e8e5c8ae7dfafcddfe96894806509696d82bb61d4c
TERMUX_PKG_DEPENDS="audacious, qt5-qtbase, qt5-qtmultimedia, qt5-qtx11extras, zlib, libflac, libcue, libcurl, mpg123, libogg, libsndfile, libsoxr, libvorbis, libxrender, libxcomposite, ffmpeg"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-gtk --disable-wavpack --disable-qtglspectrum --disable-neon"

View File

@ -0,0 +1,16 @@
TERMUX_PKG_HOMEPAGE=https://audacious-media-player.org
TERMUX_PKG_DESCRIPTION="An advanced audio player"
TERMUX_PKG_LICENSE="BSD"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=4.1
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL=https://distfiles.audacious-media-player.org/audacious-${TERMUX_PKG_VERSION}.tar.bz2
TERMUX_PKG_SHA256=1f58858f9789e867c513b5272987f13bdfb09332b03c2814ad4c6e29f525e35c
TERMUX_PKG_DEPENDS="qt5-qtbase, dbus-glib"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_RECOMMENDS="audacious-plugins"
# Audacious out-of-source build doesn't seem to work
TERMUX_PKG_BUILD_IN_SRC=true
# Audacious has switched to Qt toolkit and it's the default GUI option now
# Disable GTK to reduce the size and dependencies
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--enable-qt --disable-gtk"

View File

@ -0,0 +1,22 @@
TERMUX_PKG_HOMEPAGE=https://github.com/ThiBsc/debpac
TERMUX_PKG_DESCRIPTION="A Debian package creator assistant"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="Yisus7u7 <jesuspixel5@gmail.com>"
TERMUX_PKG_VERSION=1.7
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL="https://github.com/ThiBsc/debpac/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256=402f9dfcc739fb64666832f1a0d5b47295c900a22232150af4cc069b420515c9
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtsvg"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qttools-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross" \
PREFIX="${TERMUX_PREFIX}"
}
termux_step_make_install () {
cd ${TERMUX_PKG_SRCDIR}
install -Dm700 -t ${TERMUX_PREFIX}/bin ./debpac
}

View File

@ -0,0 +1,13 @@
diff --git a/debpac.pro b/debpac.pro
index 96c2353..dac466c 100644
--- a/debpac.pro
+++ b/debpac.pro
@@ -5,7 +5,7 @@
#-------------------------------------------------
QT += core gui
-
+DEFINES += USE_TERMUX_PATH
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
QMAKE_CXXFLAGS += -std=c++11

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://github.com/tsujan/FeatherNotes
TERMUX_PKG_DESCRIPTION="Lightweight Qt Notes-Manager for Linux"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="Yisus7u7"
TERMUX_PKG_VERSION=0.9.0
TERMUX_PKG_REVISION=1
_COMMIT=087f522d62deed421b40d8fe96d66ecef0f38bf3
TERMUX_PKG_SRCURL=https://github.com/tsujan/FeatherNotes/archive/${_COMMIT}.zip
TERMUX_PKG_SHA256=cca635e42322b66e539908be36e12b760d6739c9ee5bef4136c10518068ae7b0
TERMUX_PKG_DEPENDS="hicolor-icon-theme, qt5-qtbase, qt5-qtsvg, qt5-qtx11extras, hunspell, libx11"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://github.com/tsujan/FeatherPad
TERMUX_PKG_DESCRIPTION="Lightweight Qt Plain-Text Editor"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.18.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL=https://github.com/tsujan/FeatherPad/releases/download/V${TERMUX_PKG_VERSION}/FeatherPad-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_SHA256=f95c5494451890eefa7177022b065648b0633d5096715ae7f47c2cc7d784aec8
TERMUX_PKG_DEPENDS="hicolor-icon-theme, qt5-qtbase, qt5-qtsvg, qt5-qtx11extras, hunspell"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://www.kde.org/
TERMUX_PKG_DESCRIPTION="Qt 5 addon providing access to numerous types of archives (KDE)"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.71.0
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="http://download.kde.org/stable/frameworks/${TERMUX_PKG_VERSION%.*}/karchive-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=cc81e856365dec2bcf3ec78aa01d42347ca390a2311ea12050f309dfbdb09624
TERMUX_PKG_DEPENDS="qt5-qtbase, zlib, liblzma, libbz2"
TERMUX_PKG_BUILD_DEPENDS="extra-cmake-modules, qt5-qtbase-cross-tools"

View File

@ -0,0 +1,15 @@
TERMUX_PKG_HOMEPAGE=https://keepassxc.org/
TERMUX_PKG_DESCRIPTION="Cross-platform community-driven port of Keepass password manager"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=2.6.6
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL="https://github.com/keepassxreboot/keepassxc/releases/download/${TERMUX_PKG_VERSION}/keepassxc-${TERMUX_PKG_VERSION}-src.tar.xz"
TERMUX_PKG_SHA256=3603b11ac39b289c47fac77fa150e05fd64b393d8cfdf5732dc3ef106650a4e2
TERMUX_PKG_DEPENDS="argon2, libcurl, libgcrypt, libqrencode, libsodium, libxtst, qt5-qtbase, qt5-qtsvg, qt5-qtx11extras"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qttools-cross-tools"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-DWITH_XC_NETWORKING=ON
-DWITH_XC_SSHAGENT=ON
-DWITH_XC_UPDATECHECK=OFF
"

View File

@ -0,0 +1,14 @@
diff -uNr keepassxc-2.6.6/src/core/FileWatcher.cpp keepassxc-2.6.6.mod/src/core/FileWatcher.cpp
--- keepassxc-2.6.6/src/core/FileWatcher.cpp 2021-06-12 05:13:52.000000000 +0300
+++ keepassxc-2.6.6.mod/src/core/FileWatcher.cpp 2021-07-25 20:21:11.853398555 +0300
@@ -47,8 +47,9 @@
#if defined(Q_OS_LINUX)
struct statfs statfsBuf;
bool forcePolling = false;
+#ifndef NFS_SUPER_MAGIC
const auto NFS_SUPER_MAGIC = 0x6969;
-
+#endif
if (!statfs(filePath.toLocal8Bit().constData(), &statfsBuf)) {
forcePolling = (statfsBuf.f_type == NFS_SUPER_MAGIC);
} else {

View File

@ -0,0 +1,31 @@
diff -uNr keepassxc-2.6.6/src/gui/entry/EntryView.cpp keepassxc-2.6.6.mod/src/gui/entry/EntryView.cpp
--- keepassxc-2.6.6/src/gui/entry/EntryView.cpp 2021-06-12 05:13:52.000000000 +0300
+++ keepassxc-2.6.6.mod/src/gui/entry/EntryView.cpp 2021-07-25 20:39:53.910034225 +0300
@@ -18,7 +18,7 @@
#include "EntryView.h"
-#include <QAccessible>
+#include <QCoreApplication>
#include <QHeaderView>
#include <QKeyEvent>
#include <QMenu>
@@ -150,18 +150,15 @@
int last = m_model->rowCount() - 1;
if (last > 0) {
- QAccessibleEvent accessibleEvent(this, QAccessible::PageChanged);
if (event->key() == Qt::Key_Up && currentIndex().row() == 0) {
QModelIndex index = m_sortModel->mapToSource(m_sortModel->index(last, 0));
setCurrentEntry(m_model->entryFromIndex(index));
- QAccessible::updateAccessibility(&accessibleEvent);
return;
}
if (event->key() == Qt::Key_Down && currentIndex().row() == last) {
QModelIndex index = m_sortModel->mapToSource(m_sortModel->index(0, 0));
setCurrentEntry(m_model->entryFromIndex(index));
- QAccessible::updateAccessibility(&accessibleEvent);
return;
}
}

View File

@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://www.kde.org/
TERMUX_PKG_DESCRIPTION="KDE Gettext-based UI text internationalization"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.71.0
TERMUX_PKG_REVISION=6
TERMUX_PKG_SRCURL="http://download.kde.org/stable/frameworks/${TERMUX_PKG_VERSION%.*}/ki18n-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=f2fc8c40c10576da8b74070b7dc8e752fdd04204cb2bfe522f37a0458fbaf881
TERMUX_PKG_DEPENDS="qt5-qtbase, gettext"
TERMUX_PKG_BUILD_DEPENDS="extra-cmake-modules, python, qt5-qtbase-cross-tools, qt5-qtdeclarative"

View File

@ -0,0 +1,11 @@
--- ../src-CMakeLists.txt.orig 2021-10-15 17:34:25.460656823 +0000
+++ ./src/CMakeLists.txt 2021-10-15 17:34:39.275431640 +0000
@@ -60,8 +60,6 @@
REQUIRED_HEADERS KI18n_HEADERS
)
-find_package(PythonModuleGeneration)
-
if (PythonModuleGeneration_FOUND)
ecm_generate_python_binding(
TARGET KF5::I18n

View File

@ -0,0 +1,92 @@
From 9ea169167bb792b5128e707dbb76e4f659dc22e2 Mon Sep 17 00:00:00 2001
From: Wolfgang Bauer <wbauer@tmo.at>
Date: Tue, 9 Jun 2020 08:27:30 +0200
Subject: [PATCH] Revert "Watch for language change events, and forward those
to the QML engine"
This reverts commit 9b7cae898ed7d9b58e65035b8216ec6ff78bfa17.
It causes several KCMs to crash, with Qt 5.12 at least.
References: boo#1167690, kde#419008
---
src/kirigamiplugin.cpp | 33 ---------------------------------
src/kirigamiplugin.h | 5 -----
2 files changed, 38 deletions(-)
diff --git a/src/kirigamiplugin.cpp b/src/kirigamiplugin.cpp
index acdefbc4..4670eb86 100644
--- a/src/kirigamiplugin.cpp
+++ b/src/kirigamiplugin.cpp
@@ -50,33 +50,6 @@ class CopyHelperPrivate : public QObject
}
};
-// we can't do this in the plugin object directly, as that can live in a different thread
-// and event filters are only allowed in the same thread as the filtered object
-class LanguageChangeEventFilter : public QObject
-{
- Q_OBJECT
-public:
- bool eventFilter(QObject *receiver, QEvent *event) override
- {
- if (event->type() == QEvent::LanguageChange && receiver == QCoreApplication::instance()) {
- emit languageChangeEvent();
- }
- return QObject::eventFilter(receiver, event);
- }
-
-Q_SIGNALS:
- void languageChangeEvent();
-};
-
-KirigamiPlugin::KirigamiPlugin(QObject *parent)
- : QQmlExtensionPlugin(parent)
-{
- auto filter = new LanguageChangeEventFilter;
- filter->moveToThread(QCoreApplication::instance()->thread());
- QCoreApplication::instance()->installEventFilter(filter);
- connect(filter, &LanguageChangeEventFilter::languageChangeEvent, this, &KirigamiPlugin::languageChangeEvent);
-}
-
QUrl KirigamiPlugin::componentUrl(const QString &fileName) const
{
for (const QString &style : qAsConst(m_stylesFallbackChain)) {
@@ -266,10 +239,4 @@ void KirigamiPlugin::registerTypes(const char *uri)
qmlProtectModule(uri, 2);
}
-void KirigamiPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
-{
- Q_UNUSED(uri);
- connect(this, &KirigamiPlugin::languageChangeEvent, engine, &QQmlEngine::retranslate);
-}
-
#include "kirigamiplugin.moc"
diff --git a/src/kirigamiplugin.h b/src/kirigamiplugin.h
index 22279421..caa95f1e 100644
--- a/src/kirigamiplugin.h
+++ b/src/kirigamiplugin.h
@@ -20,9 +20,7 @@ class KirigamiPlugin : public QQmlExtensionPlugin
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
public:
- KirigamiPlugin(QObject *parent = nullptr);
void registerTypes(const char *uri) override;
- void initializeEngine(QQmlEngine *engine, const char *uri) override;
#ifdef KIRIGAMI_BUILD_TYPE_STATIC
static KirigamiPlugin& getInstance()
@@ -39,9 +37,6 @@ public:
}
#endif
-Q_SIGNALS:
- void languageChangeEvent();
-
private:
QUrl componentUrl(const QString &fileName) const;
QString resolveFilePath(const QString &path) const
--
2.26.2

View File

@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://www.kde.org/
TERMUX_PKG_DESCRIPTION="KDE Kirigami2 QtQuick components based on Qt Quick Controls 2"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.71.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="http://download.kde.org/stable/frameworks/${TERMUX_PKG_VERSION%.*}/kirigami2-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=f323efb96a809dc9e572a0e68e04c4f485fc27f9ae65ffa3988830e348151356
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtdeclarative, qt5-qtquickcontrols2, qt5-qtsvg"
TERMUX_PKG_BUILD_DEPENDS="extra-cmake-modules, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,20 @@
--- src/src/colorutils.cpp 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/colorutils.cpp 2021-05-19 13:29:45.054114359 +0100
@@ -8,6 +8,7 @@
#include <QIcon>
#include <QtMath>
+#include <QDebug>
#include <cmath>
#include <map>
--- src/src/shadowedrectangle.h 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/shadowedrectangle.h 2021-05-19 13:29:03.678325202 +0100
@@ -8,6 +8,7 @@
#include <memory>
#include <QQuickItem>
+#include <QColor>
class PaintedRectangleItem;

View File

@ -0,0 +1,190 @@
Qt on Termux doesn't have OpenGL. This dirty patch comments out all OpenGL related code so
it can be compiled. However, this means the Kirigami 2 might not function completely or
correctly.
--- src/src/scenegraph/shadowedrectanglematerial.cpp 2021-05-19 13:40:06.865745704 +0100
+++ src.mod/src/scenegraph/shadowedrectanglematerial.cpp 2021-05-19 13:41:00.549263960 +0100
@@ -6,7 +6,9 @@
#include "shadowedrectanglematerial.h"
+#ifndef __ANDROID__
#include <QOpenGLContext>
+#endif
QSGMaterialType ShadowedRectangleMaterial::staticType;
@@ -43,6 +45,7 @@
ShadowedRectangleShader::ShadowedRectangleShader()
{
+#ifndef __ANDROID__
auto header = QOpenGLContext::currentContext()->isOpenGLES() ? QStringLiteral("header_es.glsl") : QStringLiteral("header_desktop.glsl");
auto shaderRoot = QStringLiteral(":/org/kde/kirigami/shaders/");
@@ -57,6 +60,7 @@
shaderRoot + QStringLiteral("sdf.glsl"),
shaderRoot + QStringLiteral("shadowedrectangle.frag")
});
+#endif
}
const char *const * ShadowedRectangleShader::attributeNames() const
@@ -68,6 +72,7 @@
void ShadowedRectangleShader::initialize()
{
QSGMaterialShader::initialize();
+#ifndef __ANDROID__
m_matrixLocation = program()->uniformLocation("matrix");
m_aspectLocation = program()->uniformLocation("aspect");
m_opacityLocation = program()->uniformLocation("opacity");
@@ -76,10 +81,12 @@
m_colorLocation = program()->uniformLocation("color");
m_shadowColorLocation = program()->uniformLocation("shadowColor");
m_offsetLocation = program()->uniformLocation("offset");
+#endif
}
void ShadowedRectangleShader::updateState(const QSGMaterialShader::RenderState& state, QSGMaterial* newMaterial, QSGMaterial* oldMaterial)
{
+#ifndef __ANDROID__
auto p = program();
if (state.isMatrixDirty()) {
@@ -99,4 +106,5 @@
p->setUniformValue(m_shadowColorLocation, material->shadowColor);
p->setUniformValue(m_offsetLocation, material->offset);
}
+#endif
}
--- src/src/scenegraph/shadowedrectanglematerial.h 2021-05-19 13:40:06.865745704 +0100
+++ src.mod/src/scenegraph/shadowedrectanglematerial.h 2021-05-19 13:33:30.284974868 +0100
@@ -9,6 +9,7 @@
#include <QSGMaterial>
#include <QSGMaterialShader>
#include <QColor>
+#include <QVector2D>
/**
* A material rendering a rectangle with a shadow.
--- src/src/scenegraph/shadowedborderrectanglematerial.cpp 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/scenegraph/shadowedborderrectanglematerial.cpp 2021-05-19 13:47:43.418072767 +0100
@@ -6,7 +6,9 @@
#include "shadowedborderrectanglematerial.h"
+#ifndef __ANDROID__
#include <QOpenGLContext>
+#endif
QSGMaterialType ShadowedBorderRectangleMaterial::staticType;
@@ -42,6 +44,7 @@
ShadowedBorderRectangleShader::ShadowedBorderRectangleShader()
{
+#ifndef __ANDROID__
auto header = QOpenGLContext::currentContext()->isOpenGLES() ? QStringLiteral("header_es.glsl") : QStringLiteral("header_desktop.glsl");
auto shaderRoot = QStringLiteral(":/org/kde/kirigami/shaders/");
@@ -51,19 +54,23 @@
shaderRoot + QStringLiteral("sdf.glsl"),
shaderRoot + QStringLiteral("shadowedborderrectangle.frag")
});
+#endif
}
void ShadowedBorderRectangleShader::initialize()
{
ShadowedRectangleShader::initialize();
+#ifndef __ANDROID__
m_borderWidthLocation = program()->uniformLocation("borderWidth");
m_borderColorLocation = program()->uniformLocation("borderColor");
+#endif
}
void ShadowedBorderRectangleShader::updateState(const QSGMaterialShader::RenderState& state, QSGMaterial* newMaterial, QSGMaterial* oldMaterial)
{
ShadowedRectangleShader::updateState(state, newMaterial, oldMaterial);
+#ifndef __ANDROID__
auto p = program();
if (!oldMaterial || newMaterial->compare(oldMaterial) != 0 || state.isCachedMaterialDataDirty()) {
@@ -71,4 +78,5 @@
p->setUniformValue(m_borderWidthLocation, material->borderWidth);
p->setUniformValue(m_borderColorLocation, material->borderColor);
}
+#endif
}
--- src/src/scenegraph/shadowedtexturematerial.cpp 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/scenegraph/shadowedtexturematerial.cpp 2021-05-19 13:50:42.636813685 +0100
@@ -6,7 +6,9 @@
#include "shadowedtexturematerial.h"
+#ifndef __ANDROID__
#include <QOpenGLContext>
+#endif
QSGMaterialType ShadowedTextureMaterial::staticType;
@@ -44,6 +46,7 @@
ShadowedTextureShader::ShadowedTextureShader()
{
+#ifndef __ANDROID__
auto header = QOpenGLContext::currentContext()->isOpenGLES() ? QStringLiteral("header_es.glsl") : QStringLiteral("header_desktop.glsl");
auto shaderRoot = QStringLiteral(":/org/kde/kirigami/shaders/");
@@ -58,12 +61,15 @@
shaderRoot + QStringLiteral("sdf.glsl"),
shaderRoot + QStringLiteral("shadowedtexture.frag")
});
+#endif
}
void ShadowedTextureShader::initialize()
{
ShadowedRectangleShader::initialize();
+#ifndef __ANDROID__
program()->setUniformValue("textureSource", 0);
+#endif
}
void ShadowedTextureShader::updateState(const QSGMaterialShader::RenderState& state, QSGMaterial* newMaterial, QSGMaterial* oldMaterial)
--- src/src/scenegraph/shadowedbordertexturematerial.cpp 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/scenegraph/shadowedbordertexturematerial.cpp 2021-05-19 13:52:35.692051057 +0100
@@ -6,7 +6,9 @@
#include "shadowedbordertexturematerial.h"
+#ifndef __ANDROID__
#include <QOpenGLContext>
+#endif
QSGMaterialType ShadowedBorderTextureMaterial::staticType;
@@ -44,6 +46,7 @@
ShadowedBorderTextureShader::ShadowedBorderTextureShader()
{
+#ifndef __ANDROID__
auto header = QOpenGLContext::currentContext()->isOpenGLES() ? QStringLiteral("header_es.glsl") : QStringLiteral("header_desktop.glsl");
auto shaderRoot = QStringLiteral(":/org/kde/kirigami/shaders/");
@@ -58,12 +61,15 @@
shaderRoot + QStringLiteral("sdf.glsl"),
shaderRoot + QStringLiteral("shadowedbordertexture.frag")
});
+#endif
}
void ShadowedBorderTextureShader::initialize()
{
ShadowedBorderRectangleShader::initialize();
+#ifndef __ANDROID__
program()->setUniformValue("textureSource", 0);
+#endif
}
void ShadowedBorderTextureShader::updateState(const QSGMaterialShader::RenderState& state, QSGMaterial* newMaterial, QSGMaterial* oldMaterial)

View File

@ -0,0 +1,39 @@
--- src/CMakeLists.txt 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/CMakeLists.txt 2021-05-19 13:56:28.854533182 +0100
@@ -98,23 +98,16 @@
)
#use dbus on linux, bsd etc, but not andoid and apple stuff
-if (UNIX AND NOT ANDROID AND NOT(APPLE) AND NOT(DISABLE_DBUS))
+if (UNIX AND NOT(APPLE) AND NOT(DISABLE_DBUS))
find_package(Qt5DBus)
add_definitions(-DKIRIGAMI_ENABLE_DBUS)
endif()
-if(BUILD_EXAMPLES AND ANDROID)
- find_package(Qt5AndroidExtras ${REQUIRED_QT_VERSION} REQUIRED)
-endif()
-
-
ecm_find_qmlmodule(QtGraphicalEffects 1.0)
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00)
add_subdirectory(src)
-if (NOT ANDROID)
- add_subdirectory(templates)
-endif()
+add_subdirectory(templates)
if (BUILD_EXAMPLES AND BUILD_SHARED_LIBS)
add_subdirectory(examples)
--- src/src/libkirigami/CMakeLists.txt 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/libkirigami/CMakeLists.txt 2021-05-19 13:59:42.909309847 +0100
@@ -8,7 +8,7 @@
)
#use dbus on linux, bsd etc, but not andoid and apple stuff
-if (UNIX AND NOT ANDROID AND NOT(APPLE) AND NOT(DISABLE_DBUS))
+if (UNIX AND NOT(APPLE) AND NOT(DISABLE_DBUS))
qt5_add_dbus_interface(libkirigami_SRCS org.kde.KWin.TabletModeManager.xml tabletmodemanager_interface)
set(LIBKIRIGAMKI_EXTRA_LIBS Qt5::DBus)
endif()

View File

@ -0,0 +1,145 @@
Qt build on Termux doesn't have accessibility feature. It needs to be removed.
diff --color -uNr src/src/controls/LinkButton.qml src.mod/src/controls/LinkButton.qml
--- src/src/controls/LinkButton.qml 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/controls/LinkButton.qml 2021-05-26 15:04:01.628823854 +0100
@@ -25,9 +25,6 @@
property Action action: null
property alias acceptedButtons: area.acceptedButtons
property alias mouseArea: area
- Accessible.role: Accessible.Button
- Accessible.name: text
- Accessible.onPressAction: control.clicked(null)
text: action ? action.text : ""
enabled: !action || action.enabled
diff --color -uNr src/src/controls/swipenavigator/PrivateSwipeHighlight.qml src.mod/src/controls/swipenavigator/PrivateSwipeHighlight.qml
--- src/src/controls/swipenavigator/PrivateSwipeHighlight.qml 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/controls/swipenavigator/PrivateSwipeHighlight.qml 2021-05-26 15:04:22.268673726 +0100
@@ -10,8 +10,6 @@
import org.kde.kirigami 2.12 as Kirigami
Rectangle {
- Accessible.ignored: true
-
anchors {
bottom: Kirigami.Settings.isMobile ? undefined : parent.bottom
top: Kirigami.Settings.isMobile ? parent.top : undefined
@@ -30,4 +28,4 @@
// Unlike most things, we don't want to scale with the em grid, so we don't use a Unit.
height: 2
-}
\ No newline at end of file
+}
diff --color -uNr src/src/controls/swipenavigator/PrivateSwipeProgress.qml src.mod/src/controls/swipenavigator/PrivateSwipeProgress.qml
--- src/src/controls/swipenavigator/PrivateSwipeProgress.qml 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/controls/swipenavigator/PrivateSwipeProgress.qml 2021-05-26 15:04:32.540599175 +0100
@@ -14,8 +14,6 @@
property var progress
Rectangle {
- Accessible.ignored: true
-
anchors {
top: parent.top
bottom: parent.bottom
@@ -41,8 +39,6 @@
Rectangle {
- Accessible.ignored: true
-
anchors {
top: parent.top
bottom: parent.bottom
@@ -65,4 +61,4 @@
height: 2
}
}
-}
\ No newline at end of file
+}
diff --color -uNr src/src/controls/swipenavigator/PrivateSwipeTab.qml src.mod/src/controls/swipenavigator/PrivateSwipeTab.qml
--- src/src/controls/swipenavigator/PrivateSwipeTab.qml 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/controls/swipenavigator/PrivateSwipeTab.qml 2021-05-26 15:04:52.672453373 +0100
@@ -38,28 +38,6 @@
}
}
- Accessible.name: modelData.title
- Accessible.description: {
- if (!!modelData.progress) {
- if (index == columnView.currentIndex) {
- return i18nc("Accessibility text for a page tab. Keep the text as concise as possible and don't use a percent sign.", "Current page. Progress: %1 percent.", Math.round(modelData.progress*100))
- } else {
- return i18nc("Accessibility text for a page tab. Keep the text as concise as possible.", "Navigate to %1. Progress: %1 percent.", modelData.title, Math.round(modelData.progress*100))
- }
- } else {
- if (index == columnView.currentIndex) {
- return i18nc("Accessibility text for a page tab. Keep the text as concise as possible.", "Current page.")
- } else if (modelData.needsAttention) {
- return i18nc("Accessibility text for a page tab that's requesting the user's attention. Keep the text as concise as possible.", "Navigate to %1. Demanding attention.", modelData.title)
- } else {
- return i18nc("Accessibility text for a page tab that's requesting the user's attention. Keep the text as concise as possible.", "Navigate to %1.", modelData.title)
- }
- }
- }
- Accessible.role: Accessible.PageTab
- Accessible.focusable: true
- Accessible.onPressAction: columnView.currentIndex = index
-
implicitWidth: small ? smallTitleRow.implicitWidth : largeTitleRow.implicitWidth
border {
width: activeFocus ? 2 : 0
@@ -91,7 +69,6 @@
RowLayout {
id: smallTitleRow
anchors.fill: parent
- Accessible.ignored: true
visible: small
ColumnLayout {
@@ -120,7 +97,6 @@
RowLayout {
id: largeTitleRow
anchors.fill: parent
- Accessible.ignored: true
visible: !small
RowLayout {
@@ -149,7 +125,6 @@
MouseArea {
id: mouse
anchors.fill: parent
- Accessible.ignored: true
onClicked: {
columnView.currentIndex = index
}
@@ -157,4 +132,4 @@
Layout.fillHeight: true
Layout.alignment: Qt.AlignHCenter
-}
\ No newline at end of file
+}
diff --color -uNr src/src/controls/swipenavigator/SwipeNavigator.qml src.mod/src/controls/swipenavigator/SwipeNavigator.qml
--- src/src/controls/swipenavigator/SwipeNavigator.qml 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/controls/swipenavigator/SwipeNavigator.qml 2021-05-26 15:04:13.336738638 +0100
@@ -159,7 +159,6 @@
Layout.fillWidth: true
- Accessible.role: Accessible.PageTabList
}
StackView {
diff --color -uNr src/src/controls/templates/AbstractListItem.qml src.mod/src/controls/templates/AbstractListItem.qml
--- src/src/controls/templates/AbstractListItem.qml 2020-06-07 19:29:04.000000000 +0100
+++ src.mod/src/controls/templates/AbstractListItem.qml 2021-05-26 15:03:49.128915000 +0100
@@ -153,6 +153,5 @@
property bool indicateActiveFocus: listItem.pressed || Settings.tabletMode || listItem.activeFocus || (view ? view.activeFocus : false)
}
- Accessible.role: Accessible.ListItem
highlighted: focus && ListView.isCurrentItem && ListView.view && ListView.view.keyNavigationEnabled
}

View File

@ -0,0 +1,371 @@
QtGraphicalEffects module is not available because it depends on OpenGL.
This patch removes all usage of QtGraphicalEffects (shadows and gradients).
diff --color -uNr src/CMakeLists.txt src.mod/CMakeLists.txt
--- src/CMakeLists.txt 2021-05-26 15:17:14.799260147 +0100
+++ src.mod/CMakeLists.txt 2021-05-26 14:20:31.085469568 +0100
@@ -103,8 +103,6 @@
add_definitions(-DKIRIGAMI_ENABLE_DBUS)
endif()
-ecm_find_qmlmodule(QtGraphicalEffects 1.0)
-
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00)
add_subdirectory(src)
add_subdirectory(templates)
diff --color -uNr src/src/controls/AbstractApplicationItem.qml src.mod/src/controls/AbstractApplicationItem.qml
--- src/src/controls/AbstractApplicationItem.qml 2021-05-26 15:17:14.799260147 +0100
+++ src.mod/src/controls/AbstractApplicationItem.qml 2021-05-26 14:33:20.951241121 +0100
@@ -9,7 +9,6 @@
import QtQuick.Window 2.2
import "templates/private"
import org.kde.kirigami 2.4
-import QtGraphicalEffects 1.0
/**
* A window that provides some basic features needed for all apps
diff --color -uNr src/src/controls/AbstractApplicationWindow.qml src.mod/src/controls/AbstractApplicationWindow.qml
--- src/src/controls/AbstractApplicationWindow.qml 2021-05-26 15:17:14.799260147 +0100
+++ src.mod/src/controls/AbstractApplicationWindow.qml 2021-05-26 14:32:33.647649364 +0100
@@ -8,7 +8,6 @@
import QtQuick.Controls 2.0 as QQC2
import "templates/private"
import org.kde.kirigami 2.4
-import QtGraphicalEffects 1.0
/**
* A window that provides some basic features needed for all apps
diff --color -uNr src/src/controls/ApplicationItem.qml src.mod/src/controls/ApplicationItem.qml
--- src/src/controls/ApplicationItem.qml 2021-05-26 15:17:14.799260147 +0100
+++ src.mod/src/controls/ApplicationItem.qml 2021-05-26 14:32:12.723837137 +0100
@@ -7,7 +7,6 @@
import QtQuick 2.5
import "templates/private"
import org.kde.kirigami 2.4 as Kirigami
-import QtGraphicalEffects 1.0
/**
* A window that provides some basic features needed for all apps
diff --color -uNr src/src/controls/ApplicationWindow.qml src.mod/src/controls/ApplicationWindow.qml
--- src/src/controls/ApplicationWindow.qml 2021-05-26 15:17:14.799260147 +0100
+++ src.mod/src/controls/ApplicationWindow.qml 2021-05-26 14:26:30.126563514 +0100
@@ -7,7 +7,6 @@
import QtQuick 2.5
import "templates/private"
import org.kde.kirigami 2.4 as Kirigami
-import QtGraphicalEffects 1.0
/**
* A window that provides some basic features needed for all apps
diff --color -uNr src/src/controls/GlobalDrawer.qml src.mod/src/controls/GlobalDrawer.qml
--- src/src/controls/GlobalDrawer.qml 2021-05-26 15:17:14.799260147 +0100
+++ src.mod/src/controls/GlobalDrawer.qml 2021-05-26 14:25:00.691132069 +0100
@@ -8,7 +8,6 @@
import QtQuick.Templates 2.0 as T2
import QtQuick.Controls 2.2 as QQC2
import QtQuick.Layouts 1.2
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.4
import "private"
diff --color -uNr src/src/controls/ItemViewHeader.qml src.mod/src/controls/ItemViewHeader.qml
--- src/src/controls/ItemViewHeader.qml 2021-05-26 15:17:14.799260147 +0100
+++ src.mod/src/controls/ItemViewHeader.qml 2021-05-26 14:25:29.138945315 +0100
@@ -6,7 +6,6 @@
import QtQuick 2.5
import QtQuick.Templates 2.0 as T2
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.4 as Kirigami
import "private"
@@ -89,13 +88,6 @@
elide: Text.ElideRight
layer.enabled: root.backgroundImage.hasImage
- layer.effect: DropShadow {
- horizontalOffset: 0
- verticalOffset: 2
- radius: Kirigami.Units.smallSpacing*2
- samples: 32
- color: Qt.rgba(0, 0, 0, 0.7)
- }
}
}
}
diff --color -uNr src/src/controls/OverlayDrawer.qml src.mod/src/controls/OverlayDrawer.qml
--- src/src/controls/OverlayDrawer.qml 2021-05-26 15:17:14.799260147 +0100
+++ src.mod/src/controls/OverlayDrawer.qml 2021-05-26 14:25:58.214760590 +0100
@@ -5,7 +5,6 @@
*/
import QtQuick 2.1
-import QtGraphicalEffects 1.0
import QtQuick.Templates 2.0 as T2
import org.kde.kirigami 2.5
@@ -42,16 +41,6 @@
parent: root.handle
anchors.fill: parent
- DropShadow {
- anchors.fill: handleGraphics
- visible: !parent.parent.handleAnchor || !parent.parent.handleAnchor.visible || root.handle.pressed || (root.modal && root.position > 0)
- horizontalOffset: 0
- verticalOffset: Units.devicePixelRatio
- radius: Units.gridUnit /2
- samples: 16
- color: Qt.rgba(0, 0, 0, root.handle.pressed ? 0.6 : 0.4)
- source: handleGraphics
- }
Rectangle {
id: handleGraphics
anchors.centerIn: parent
diff --color -uNr src/src/controls/plugins.qmltypes src.mod/src/controls/plugins.qmltypes
--- src/src/controls/plugins.qmltypes 2021-05-26 15:17:14.799260147 +0100
+++ src.mod/src/controls/plugins.qmltypes 2021-05-26 14:29:00.917680399 +0100
@@ -8,7 +8,6 @@
Module {
dependencies: [
- "QtGraphicalEffects 1.0",
"QtQml 2.1",
"QtQml.Models 2.2",
"QtQuick 2.9",
diff --color -uNr src/src/controls/private/ActionButton.qml src.mod/src/controls/private/ActionButton.qml
--- src/src/controls/private/ActionButton.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/private/ActionButton.qml 2021-05-26 14:31:39.908141743 +0100
@@ -7,7 +7,6 @@
import QtQuick 2.1
import QtQuick.Layouts 1.2
import QtQuick.Controls 2.0 as Controls
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.7
import "../templates/private"
@@ -357,16 +356,6 @@
}
}
}
-
- DropShadow {
- anchors.fill: background
- horizontalOffset: 0
- verticalOffset: Units.devicePixelRatio
- radius: Units.gridUnit /2
- samples: 16
- color: Qt.rgba(0, 0, 0, mouseArea.pressed ? 0.6 : 0.4)
- source: background
- }
}
}
@@ -390,16 +379,6 @@
width: Units.iconSizes.smallMedium + Units.smallSpacing*2
height: width
-
- DropShadow {
- anchors.fill: handleGraphics
- horizontalOffset: 0
- verticalOffset: Units.devicePixelRatio
- radius: Units.gridUnit /2
- samples: 16
- color: Qt.rgba(0, 0, 0, fakeContextMenuButton.pressed ? 0.6 : 0.4)
- source: handleGraphics
- }
Rectangle {
id: handleGraphics
anchors.fill: parent
diff --color -uNr src/src/controls/private/BannerImage.qml src.mod/src/controls/private/BannerImage.qml
--- src/src/controls/private/BannerImage.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/private/BannerImage.qml 2021-05-26 14:29:26.989532396 +0100
@@ -6,7 +6,6 @@
import QtQuick 2.6
import QtQuick.Layouts 1.2
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.12 as Kirigami
/**
diff --color -uNr src/src/controls/private/CornerShadow.qml src.mod/src/controls/private/CornerShadow.qml
--- src/src/controls/private/CornerShadow.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/private/CornerShadow.qml 2021-05-26 14:30:32.924808566 +0100
@@ -5,7 +5,6 @@
*/
import QtQuick 2.1
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.4
RadialGradient {
diff --color -uNr src/src/controls/private/EdgeShadow.qml src.mod/src/controls/private/EdgeShadow.qml
--- src/src/controls/private/EdgeShadow.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/private/EdgeShadow.qml 2021-05-26 15:17:44.551056384 +0100
@@ -5,10 +5,9 @@
*/
import QtQuick 2.1
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.4
-LinearGradient {
+Item {
id: shadow
/**
* edge: enumeration
@@ -25,26 +24,5 @@
property int radius: Units.gridUnit
implicitWidth: radius
implicitHeight: radius
-
- start: Qt.point((edge !== Qt.RightEdge ? 0 : width), (edge !== Qt.BottomEdge ? 0 : height))
- end: Qt.point((edge !== Qt.LeftEdge ? 0 : width), (edge !== Qt.TopEdge ? 0 : height))
- gradient: Gradient {
- GradientStop {
- position: 0.0
- color: Qt.rgba(0, 0, 0, 0.25)
- }
- GradientStop {
- position: 0.20
- color: Qt.rgba(0, 0, 0, 0.1)
- }
- GradientStop {
- position: 0.35
- color: Qt.rgba(0, 0, 0, 0.02)
- }
- GradientStop {
- position: 1.0
- color: "transparent"
- }
- }
}
diff --color -uNr src/src/controls/private/RefreshableScrollView.qml src.mod/src/controls/private/RefreshableScrollView.qml
--- src/src/controls/private/RefreshableScrollView.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/private/RefreshableScrollView.qml 2021-05-26 15:01:26.477968469 +0100
@@ -7,7 +7,6 @@
import QtQuick 2.7
import QtQuick.Window 2.2
import QtQuick.Controls 2.0 as QQC2
-import QtGraphicalEffects 1.0
import QtQuick.Layouts 1.2
import org.kde.kirigami 2.4
import "../templates/private" as P
@@ -96,17 +95,6 @@
//also take into account the listview header height if present
property real progress: supportsRefreshing && !refreshing ? ((parent.y - busyIndicatorFrame.headerItemHeight)/busyIndicatorFrame.height) : 0
}
- ConicalGradient {
- source: spinnerProgress
- visible: spinnerProgress.visible
- anchors.fill: spinnerProgress
- gradient: Gradient {
- GradientStop { position: 0.00; color: Theme.highlightColor }
- GradientStop { position: spinnerProgress.progress; color: Theme.highlightColor }
- GradientStop { position: spinnerProgress.progress + 0.01; color: "transparent" }
- GradientStop { position: 1.00; color: "transparent" }
- }
- }
onYChanged: {
//it's overshooting enough and not reachable: start countdown for reachability
diff --color -uNr src/src/controls/qmldir src.mod/src/controls/qmldir
--- src/src/controls/qmldir 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/qmldir 2021-05-26 14:32:42.943567427 +0100
@@ -2,6 +2,5 @@
plugin kirigamiplugin
classname KirigamiPlugin
depends QtQuick.Controls 2.0
-depends QtGraphicalEffects 1.0
designersupported
diff --color -uNr src/src/controls/templates/OverlaySheet.qml src.mod/src/controls/templates/OverlaySheet.qml
--- src/src/controls/templates/OverlaySheet.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/templates/OverlaySheet.qml 2021-05-26 14:27:26.994223196 +0100
@@ -9,7 +9,6 @@
import QtQuick.Layouts 1.2
import QtQuick.Window 2.2
import org.kde.kirigami 2.11
-import QtGraphicalEffects 1.0
import QtQuick.Templates 2.0 as T2
import "private"
import "../private"
diff --color -uNr src/src/controls/templates/private/ContextIcon.qml src.mod/src/controls/templates/private/ContextIcon.qml
--- src/src/controls/templates/private/ContextIcon.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/templates/private/ContextIcon.qml 2021-05-26 14:28:17.245930577 +0100
@@ -6,7 +6,6 @@
import QtQuick 2.1
import QtQuick.Layouts 1.2
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.4
Item {
diff --color -uNr src/src/controls/templates/private/GenericDrawerIcon.qml src.mod/src/controls/templates/private/GenericDrawerIcon.qml
--- src/src/controls/templates/private/GenericDrawerIcon.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/templates/private/GenericDrawerIcon.qml 2021-05-26 14:27:53.350068967 +0100
@@ -6,7 +6,6 @@
import QtQuick 2.1
import QtQuick.Layouts 1.2
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.4 as Kirigami
Item {
diff --color -uNr src/src/controls/templates/private/MenuIcon.qml src.mod/src/controls/templates/private/MenuIcon.qml
--- src/src/controls/templates/private/MenuIcon.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/templates/private/MenuIcon.qml 2021-05-26 14:28:05.761996928 +0100
@@ -6,7 +6,6 @@
import QtQuick 2.1
import QtQuick.Layouts 1.2
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.4
Item {
diff --color -uNr src/src/controls/templates/private/PassiveNotification.qml src.mod/src/controls/templates/private/PassiveNotification.qml
--- src/src/controls/templates/private/PassiveNotification.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/controls/templates/private/PassiveNotification.qml 2021-05-26 14:28:41.845789264 +0100
@@ -8,7 +8,6 @@
import QtQuick.Controls 2.3 as Controls
import QtQuick.Layouts 1.2
import QtQuick.Window 2.2
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.12 as Kirigami
/**
diff --color -uNr src/src/qmldir src.mod/src/qmldir
--- src/src/qmldir 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/qmldir 2021-05-26 14:23:47.035655017 +0100
@@ -2,7 +2,6 @@
classname KirigamiPlugin
depends QtQuick.Controls 2.0
-depends QtGraphicalEffects 1.0
designersupported
typeinfo plugins.qmltypes
diff --color -uNr src/src/styles/Material/InlineMessage.qml src.mod/src/styles/Material/InlineMessage.qml
--- src/src/styles/Material/InlineMessage.qml 2021-05-26 15:17:14.803260119 +0100
+++ src.mod/src/styles/Material/InlineMessage.qml 2021-05-26 14:23:23.219840986 +0100
@@ -7,7 +7,6 @@
*/
import QtQuick 2.7
-import QtGraphicalEffects 1.0
import org.kde.kirigami 2.5 as Kirigami
import "../../private"
@@ -104,12 +103,5 @@
}
layer.enabled: true
- layer.effect: DropShadow {
- horizontalOffset: 0
- verticalOffset: 1
- radius: 12
- samples: 32
- color: Qt.rgba(0, 0, 0, 0.5)
- }
}
}

View File

@ -0,0 +1,14 @@
TERMUX_PKG_HOMEPAGE=https://github.com/tsujan/Kvantum
TERMUX_PKG_DESCRIPTION="SVG-based theme engine for Qt5"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.20.1
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL="https://github.com/tsujan/Kvantum/releases/download/V${TERMUX_PKG_VERSION}/Kvantum-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=c823c70eabd7b02ac4661b989d858ac411da29d7a0de96afd464da8855132925
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, qt5-qtsvg, kwindowsystem"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qttools-cross-tools"
termux_step_post_get_source() {
TERMUX_PKG_SRCDIR+="/Kvantum"
}

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://launchpad.net/libdbusmenu-qt
TERMUX_PKG_DESCRIPTION="dbusmenu library for Qt"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION="0.9.3+16.04.20160218-0ubuntu1"
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://github.com/unity8-team/libdbusmenu-qt/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256=bc2c3960c0c6b520e42e652b6a71b769cff6cb651adece92d2a0bc6bdff37c29
TERMUX_PKG_DEPENDS="qt5-qtbase"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DUSE_QT4=OFF -DUSE_QT5=ON -DWITH_DOC=OFF"

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="Library providing components to build desktop file managers"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.1
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL="https://github.com/lxqt/libfm-qt/releases/download/${TERMUX_PKG_VERSION}/libfm-qt-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=aa3f8f4d8035d106ed80e0b0ae5fced5ad61d4dac3f960392f3a71fb42a521a5
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, glib, libxcb, libexif, menu-cache"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,24 @@
diff --color -uNr src/src/core/fileinfo.cpp src.mod/src/core/fileinfo.cpp
--- src/src/core/fileinfo.cpp 2021-04-16 12:08:23.000000000 +0100
+++ src.mod/src/core/fileinfo.cpp 2021-05-22 16:52:50.186775465 +0100
@@ -360,7 +360,7 @@
which may be considered as a safe desktop entry path
then check if that is a shortcut to a native file
otherwise it is a link to a file under menu:// */
- if (!g_str_has_prefix(target_.c_str(), "/usr/share/")) {
+ if (!g_str_has_prefix(target_.c_str(), "@TERMUX_PREFIX@/share/")) {
auto target = FilePath::fromPathStr(target_.c_str());
bool is_native = target.isNative();
if (is_native) {
diff --color -uNr src/src/core/vfs/vfs-menu.c src.mod/src/core/vfs/vfs-menu.c
--- src/src/core/vfs/vfs-menu.c 2021-04-16 12:08:23.000000000 +0100
+++ src.mod/src/core/vfs/vfs-menu.c 2021-05-22 16:54:14.278451100 +0100
@@ -165,7 +165,7 @@
child = fm_xml_file_item_new(menuTag_MergeFile);
fm_xml_file_item_set_attribute(child, "type", "parent");
/* FIXME: what is correct way to handle this? is it required at all? */
- path = g_strdup_printf("/etc/xdg/menus/%s", basename);
+ path = g_strdup_printf("@TERMUX_PREFIX@/etc/xdg/menus/%s", basename);
fm_xml_file_item_append_text(child, path, -1, FALSE);
g_free(path);
fm_xml_file_item_append_child(item, child);

View File

@ -0,0 +1,262 @@
diff -uNr src/CMakeLists.txt src.mod/CMakeLists.txt
--- src/CMakeLists.txt 2021-05-21 08:58:40.268102000 +0000
+++ src.mod/CMakeLists.txt 2021-05-21 08:46:53.277571000 +0000
@@ -142,6 +142,8 @@
lxqtrotatedwidget.cpp
lxqtbacklight.cpp
lxqtbacklight/virtual_backend.cpp
+
+ wordexp.c
)
if (NOT APPLE)
diff -uNr src/wordexp.c src.mod/wordexp.c
--- src/wordexp.c 1970-01-01 00:00:00.000000000 +0000
+++ src.mod/wordexp.c 2021-05-21 08:58:23.662102000 +0000
@@ -0,0 +1,184 @@
+// Copied from http://git.musl-libc.org/cgit/musl/plain/src/misc/wordexp.c
+// pthread-related lines are removed because they're missing on Android
+#include <wordexp.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+#include <limits.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <sys/wait.h>
+#include <signal.h>
+#include <errno.h>
+#include <fcntl.h>
+
+static void reap(pid_t pid)
+{
+ int status;
+ while (waitpid(pid, &status, 0) < 0 && errno == EINTR);
+}
+
+static char *getword(FILE *f)
+{
+ char *s = 0;
+ return getdelim(&s, (size_t [1]){0}, 0, f) < 0 ? 0 : s;
+}
+
+static int do_wordexp(const char *s, wordexp_t *we, int flags)
+{
+ size_t i, l;
+ int sq=0, dq=0;
+ size_t np=0;
+ char *w, **tmp;
+ char *redir = (flags & WRDE_SHOWERR) ? "" : "2>/dev/null";
+ int err = 0;
+ FILE *f;
+ size_t wc = 0;
+ char **wv = 0;
+ int p[2];
+ pid_t pid;
+ sigset_t set;
+
+ if (flags & WRDE_REUSE) wordfree(we);
+
+ if (flags & WRDE_NOCMD) for (i=0; s[i]; i++) switch (s[i]) {
+ case '\\':
+ if (!sq && !s[++i]) return WRDE_SYNTAX;
+ break;
+ case '\'':
+ if (!dq) sq^=1;
+ break;
+ case '"':
+ if (!sq) dq^=1;
+ break;
+ case '(':
+ if (np) {
+ np++;
+ break;
+ }
+ case ')':
+ if (np) {
+ np--;
+ break;
+ }
+ case '\n':
+ case '|':
+ case '&':
+ case ';':
+ case '<':
+ case '>':
+ case '{':
+ case '}':
+ if (!(sq|dq|np)) return WRDE_BADCHAR;
+ break;
+ case '$':
+ if (sq) break;
+ if (s[i+1]=='(' && s[i+2]=='(') {
+ i += 2;
+ np += 2;
+ break;
+ } else if (s[i+1] != '(') break;
+ case '`':
+ if (sq) break;
+ return WRDE_CMDSUB;
+ }
+
+ if (flags & WRDE_APPEND) {
+ wc = we->we_wordc;
+ wv = we->we_wordv;
+ }
+
+ i = wc;
+ if (flags & WRDE_DOOFFS) {
+ if (we->we_offs > SIZE_MAX/sizeof(void *)/4)
+ goto nospace;
+ i += we->we_offs;
+ } else {
+ we->we_offs = 0;
+ }
+
+ if (pipe2(p, O_CLOEXEC) < 0) goto nospace;
+ pid = fork();
+ if (pid < 0) {
+ close(p[0]);
+ close(p[1]);
+ goto nospace;
+ }
+ if (!pid) {
+ if (p[1] == 1) fcntl(1, F_SETFD, 0);
+ else dup2(p[1], 1);
+ execl("/bin/sh", "sh", "-c",
+ "eval \"printf %s\\\\\\\\0 x $1 $2\"",
+ "sh", s, redir, (char *)0);
+ _exit(1);
+ }
+ close(p[1]);
+
+ f = fdopen(p[0], "r");
+ if (!f) {
+ close(p[0]);
+ kill(pid, SIGKILL);
+ reap(pid);
+ goto nospace;
+ }
+
+ l = wv ? i+1 : 0;
+
+ free(getword(f));
+ if (feof(f)) {
+ fclose(f);
+ reap(pid);
+ return WRDE_SYNTAX;
+ }
+
+ while ((w = getword(f))) {
+ if (i+1 >= l) {
+ l += l/2+10;
+ tmp = realloc(wv, l*sizeof(char *));
+ if (!tmp) break;
+ wv = tmp;
+ }
+ wv[i++] = w;
+ wv[i] = 0;
+ }
+ if (!feof(f)) err = WRDE_NOSPACE;
+
+ fclose(f);
+ reap(pid);
+
+ if (!wv) wv = calloc(i+1, sizeof *wv);
+
+ we->we_wordv = wv;
+ we->we_wordc = i;
+
+ if (flags & WRDE_DOOFFS) {
+ if (wv) for (i=we->we_offs; i; i--)
+ we->we_wordv[i-1] = 0;
+ we->we_wordc -= we->we_offs;
+ }
+ return err;
+
+nospace:
+ if (!(flags & WRDE_APPEND)) {
+ we->we_wordc = 0;
+ we->we_wordv = 0;
+ }
+ return WRDE_NOSPACE;
+}
+
+int wordexp(const char *restrict s, wordexp_t *restrict we, int flags)
+{
+ int r, cs;
+ r = do_wordexp(s, we, flags);
+ return r;
+}
+
+void wordfree(wordexp_t *we)
+{
+ size_t i;
+ if (!we->we_wordv) return;
+ for (i=0; i<we->we_wordc; i++) free(we->we_wordv[we->we_offs+i]);
+ free(we->we_wordv);
+ we->we_wordv = 0;
+ we->we_wordc = 0;
+}
diff -uNr src/wordexp.h src.mod/wordexp.h
--- src/wordexp.h 1970-01-01 00:00:00.000000000 +0000
+++ src.mod/wordexp.h 2021-05-21 08:58:53.085923000 +0000
@@ -0,0 +1,58 @@
+/* Copyright (C) 1991, 92, 1996-1999, 2001, 2003 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+#ifndef _WORDEXP_H
+#define _WORDEXP_H 1
+#include <features.h>
+#define __need_size_t
+#include <stddef.h>
+__BEGIN_DECLS
+/* Bits set in the FLAGS argument to `wordexp'. */
+enum
+ {
+ WRDE_DOOFFS = (1 << 0), /* Insert PWORDEXP->we_offs NULLs. */
+ WRDE_APPEND = (1 << 1), /* Append to results of a previous call. */
+ WRDE_NOCMD = (1 << 2), /* Don't do command substitution. */
+ WRDE_REUSE = (1 << 3), /* Reuse storage in PWORDEXP. */
+ WRDE_SHOWERR = (1 << 4), /* Don't redirect stderr to /dev/null. */
+ WRDE_UNDEF = (1 << 5), /* Error for expanding undefined variables. */
+ __WRDE_FLAGS = (WRDE_DOOFFS | WRDE_APPEND | WRDE_NOCMD |
+ WRDE_REUSE | WRDE_SHOWERR | WRDE_UNDEF)
+ };
+/* Structure describing a word-expansion run. */
+typedef struct
+ {
+ size_t we_wordc; /* Count of words matched. */
+ char **we_wordv; /* List of expanded words. */
+ size_t we_offs; /* Slots to reserve in `we_wordv'. */
+ } wordexp_t;
+/* Possible nonzero return values from `wordexp'. */
+enum
+ {
+#ifdef __USE_XOPEN
+ WRDE_NOSYS = -1, /* Never used since we support `wordexp'. */
+#endif
+ WRDE_NOSPACE = 1, /* Ran out of memory. */
+ WRDE_BADCHAR, /* A metachar appears in the wrong place. */
+ WRDE_BADVAL, /* Undefined var reference with WRDE_UNDEF. */
+ WRDE_CMDSUB, /* Command substitution with WRDE_NOCMD. */
+ WRDE_SYNTAX /* Shell syntax error. */
+ };
+/* Do word expansion of WORDS into PWORDEXP. */
+extern int wordexp (__const char *__restrict __words,
+ wordexp_t *__restrict __pwordexp, int __flags);
+/* Free the storage allocated by a `wordexp' call. */
+extern void wordfree (wordexp_t *__wordexp);
+__END_DECLS
+#endif /* wordexp.h */

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="The core library of LXQt"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://github.com/lxqt/liblxqt/releases/download/${TERMUX_PKG_VERSION}/liblxqt-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=d44e3b4c0963537d5032328ac29bb0d61d454dc28d0fac7e1ddcb9d7be91c32b
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, kwindowsystem, libqtxdg, libxss"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DBUILD_BACKLIGHT_LINUX_BACKEND=OFF"

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="Qt 5 implementation of freedesktop.org XDG specifications"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=3.7.1
TERMUX_PKG_REVISION=7
TERMUX_PKG_SRCURL="https://github.com/lxqt/libqtxdg/releases/download/${TERMUX_PKG_VERSION}/libqtxdg-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=477cbe76b3305071ff5f5bfa31dbcddcc51f3434b9ed75d91988219296d88a9b
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtsvg, glib"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,40 @@
--- src/src/qtxdg/xdgdirs.cpp 2021-04-16 09:29:21.000000000 +0000
+++ src.mod/src/qtxdg/xdgdirs.cpp 2021-05-12 16:50:56.461844000 +0000
@@ -46,6 +46,8 @@
QLatin1String("Videos")
};
+static const char* TERMUX_PREFIX = "@TERMUX_PREFIX@";
+
// Helper functions prototypes
void fixBashShortcuts(QString &s);
void removeEndingSlash(QString &s);
@@ -108,7 +110,7 @@
const QString home = QFile::decodeName(qgetenv("HOME"));
if (home.isEmpty())
- return QString::fromLatin1("/tmp");
+ return QString::fromLatin1(TERMUX_PREFIX) + QString::fromLatin1("/tmp");
else if (dir == XdgDirs::Desktop)
fallback = QString::fromLatin1("%1/%2").arg(home, QLatin1String("Desktop"));
else
@@ -270,8 +272,8 @@
#endif
if (dirs.isEmpty()) {
- dirs.append(QString::fromLatin1("/usr/local/share"));
- dirs.append(QString::fromLatin1("/usr/share"));
+ dirs.append(QString::fromLatin1(TERMUX_PREFIX) + QString::fromLatin1("/local/share"));
+ dirs.append(QString::fromLatin1(TERMUX_PREFIX) + QString::fromLatin1("/share"));
} else {
QMutableListIterator<QString> it(dirs);
while (it.hasNext()) {
@@ -293,7 +295,7 @@
QStringList dirs;
const QString env = QFile::decodeName(qgetenv("XDG_CONFIG_DIRS"));
if (env.isEmpty())
- dirs.append(QString::fromLatin1("/etc/xdg"));
+ dirs.append(QString::fromLatin1(TERMUX_PREFIX) + QString::fromLatin1("/etc/xdg"));
else
#if (QT_VERSION >= QT_VERSION_CHECK(5,15,0))
dirs = env.split(QLatin1Char(':'), Qt::SkipEmptyParts);

View File

@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="A library to query system information"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.4.5
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://github.com/lxqt/libsysstat/releases/download/${TERMUX_PKG_VERSION}/libsysstat-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=f19b6550d78939cc1ad11c5788e2a7293f7f886d037837cd1cf56ebcdf2b5ed2
TERMUX_PKG_DEPENDS="qt5-qtbase"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools"

View File

@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="LXQt Image Viewer"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://github.com/lxqt/lximage-qt/releases/download/${TERMUX_PKG_VERSION}/lximage-qt-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=2e284f3f42506d5b6df6091982d24e1dc41c99c838037939844f70d703d1d03c
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, qt5-qtsvg, libfm-qt, libexif, libxfixes"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="LXQt dialog showing information about LXQt and the system"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-about/releases/download/${TERMUX_PKG_VERSION}/lxqt-about-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=f5033a4eb339f64de5b0eea32ee9178ab06aad6b60fd428fc196add785c33113
TERMUX_PKG_DEPENDS="qt5-qtbase, liblxqt"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools"

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="A simple & lightweight Qt file archiver"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.4.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-archiver/releases/download/${TERMUX_PKG_VERSION}/lxqt-archiver-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=9f8c00b517771d99ceaf05ff7d72609580def47aae13842b461d9eecd9c1ef3b
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, libfm-qt, glib, json-glib"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="Building tools required by LXQt project"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_LICENSE_FILE="BSD-3-Clause"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.9.0
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-build-tools/releases/download/${TERMUX_PKG_VERSION}/lxqt-build-tools-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=9782878d6c0cc896d4a54fce5cc322561cdf1df270b8f941b2088a434b535e4d
TERMUX_PKG_DEPENDS="cmake, qt5-qtbase"
TERMUX_PKG_PLATFORM_INDEPENDENT=true

View File

@ -0,0 +1,20 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="Tools to configure LXQt and the underlying operating system"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.1
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-config/releases/download/${TERMUX_PKG_VERSION}/lxqt-config-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=23c1c9a3aa3bf3537b3433439501463ea3e29950ecf2381679bf30ef4c1b245b
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, liblxqt, libxcb, zlib, shared-mime-info"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"
# libinput is required to switch on input configuration
# libkscreen is required to switch on monitor configuration, which in turn requires wayland
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DWITH_INPUT=OFF -DWITH_MONITOR=OFF"
termux_step_pre_configure() {
# This is required because of the private lib used by lxqt-config-appearance
LDFLAGS+=" -Wl,-rpath=${TERMUX_PREFIX}/lib/lxqt-config"
export LDFLAGS
}

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="Tools to set global keyboard shortcuts in LXQt sessions"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-globalkeys/releases/download/${TERMUX_PKG_VERSION}/lxqt-globalkeys-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=90c409e95efefb2ee87e99504b955a2a84d4404157d2c1b7b7992b0571c4de5e
TERMUX_PKG_DEPENDS="qt5-qtbase, kwindowsystem, liblxqt"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="The LXQt notification daemon"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-notificationd/releases/download/${TERMUX_PKG_VERSION}/lxqt-notificationd-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=d392cac3d7300a6b8be3431fdde37f453ac439b6fd52b39e6bdeba9ad7a1cab7
TERMUX_PKG_DEPENDS="qt5-qtbase, liblxqt"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="GUI to query passwords on behalf of SSH agents"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-openssh-askpass/releases/download/${TERMUX_PKG_VERSION}/lxqt-openssh-askpass-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=19322332443151ceadc24f4eea12188eb7dd08c77fb0f41dcd6ee92018f2ac3d
TERMUX_PKG_DEPENDS="qt5-qtbase, liblxqt"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,27 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="The LXQt desktop panel"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.1
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-panel/releases/download/${TERMUX_PKG_VERSION}/lxqt-panel-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=1830fb5a595495176eed61cb0fc9d5535e3954ed6b8f04a741a4295883764ccc
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, kwindowsystem, liblxqt, libsysstat, lxqt-globalkeys, libdbusmenu-qt, libxcb, pulseaudio, lxmenu-data"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"
# TODO
# CPULOAD and NETWORKMONITOR require libstatgrab
# MOUNT plugin requires KF5Solid
# SENSORS plugin requires lm_sensors
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-DCPULOAD_PLUGIN=OFF
-DNETWORKMONITOR_PLUGIN=OFF
-DMOUNT_PLUGIN=OFF
-DSENSORS_PLUGIN=OFF
-DVOLUME_USE_ALSA=OFF
"
termux_step_pre_configure() {
# Add RUNPATH to the private libraries used by lxqt-panel's plugins
LDFLAGS+=" -Wl,-rpath=${TERMUX_PREFIX}/lib/lxqt-panel"
export LDFLAGS
}

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="LXQt platform integration plugin for Qt 5"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-qtplugin/releases/download/${TERMUX_PKG_VERSION}/lxqt-qtplugin-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=65ef1156eb3257bd875e944963968585b042262d6b673ec6506d8fe7fa528691
TERMUX_PKG_DEPENDS="qt5-qtbase, kwindowsystem, libqtxdg, libfm-qt, libexif, libdbusmenu-qt"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,269 @@
diff -uNr src/CMakeLists.txt src.mod/CMakeLists.txt
--- src/CMakeLists.txt 2021-04-11 09:01:40.000000000 +0000
+++ src.mod/CMakeLists.txt 2021-05-21 09:09:57.339178000 +0000
@@ -71,6 +71,7 @@
providers.h
yamlparser.h
configuredialog/configuredialog.h
+ wordexp.h
)
set(lxqt-runner_CPP_FILES
@@ -81,6 +82,7 @@
providers.cpp
yamlparser.cpp
configuredialog/configuredialog.cpp
+ wordexp.c
)
set(lxqt-runner_UI_FILES
diff -uNr src/wordexp.c src.mod/wordexp.c
--- src/wordexp.c 1970-01-01 00:00:00.000000000 +0000
+++ src.mod/wordexp.c 2021-05-21 09:10:10.115178000 +0000
@@ -0,0 +1,184 @@
+// Copied from http://git.musl-libc.org/cgit/musl/plain/src/misc/wordexp.c
+// pthread-related lines are removed because they're missing on Android
+#include <wordexp.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+#include <limits.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <sys/wait.h>
+#include <signal.h>
+#include <errno.h>
+#include <fcntl.h>
+
+static void reap(pid_t pid)
+{
+ int status;
+ while (waitpid(pid, &status, 0) < 0 && errno == EINTR);
+}
+
+static char *getword(FILE *f)
+{
+ char *s = 0;
+ return getdelim(&s, (size_t [1]){0}, 0, f) < 0 ? 0 : s;
+}
+
+static int do_wordexp(const char *s, wordexp_t *we, int flags)
+{
+ size_t i, l;
+ int sq=0, dq=0;
+ size_t np=0;
+ char *w, **tmp;
+ char *redir = (flags & WRDE_SHOWERR) ? "" : "2>/dev/null";
+ int err = 0;
+ FILE *f;
+ size_t wc = 0;
+ char **wv = 0;
+ int p[2];
+ pid_t pid;
+ sigset_t set;
+
+ if (flags & WRDE_REUSE) wordfree(we);
+
+ if (flags & WRDE_NOCMD) for (i=0; s[i]; i++) switch (s[i]) {
+ case '\\':
+ if (!sq && !s[++i]) return WRDE_SYNTAX;
+ break;
+ case '\'':
+ if (!dq) sq^=1;
+ break;
+ case '"':
+ if (!sq) dq^=1;
+ break;
+ case '(':
+ if (np) {
+ np++;
+ break;
+ }
+ case ')':
+ if (np) {
+ np--;
+ break;
+ }
+ case '\n':
+ case '|':
+ case '&':
+ case ';':
+ case '<':
+ case '>':
+ case '{':
+ case '}':
+ if (!(sq|dq|np)) return WRDE_BADCHAR;
+ break;
+ case '$':
+ if (sq) break;
+ if (s[i+1]=='(' && s[i+2]=='(') {
+ i += 2;
+ np += 2;
+ break;
+ } else if (s[i+1] != '(') break;
+ case '`':
+ if (sq) break;
+ return WRDE_CMDSUB;
+ }
+
+ if (flags & WRDE_APPEND) {
+ wc = we->we_wordc;
+ wv = we->we_wordv;
+ }
+
+ i = wc;
+ if (flags & WRDE_DOOFFS) {
+ if (we->we_offs > SIZE_MAX/sizeof(void *)/4)
+ goto nospace;
+ i += we->we_offs;
+ } else {
+ we->we_offs = 0;
+ }
+
+ if (pipe2(p, O_CLOEXEC) < 0) goto nospace;
+ pid = fork();
+ if (pid < 0) {
+ close(p[0]);
+ close(p[1]);
+ goto nospace;
+ }
+ if (!pid) {
+ if (p[1] == 1) fcntl(1, F_SETFD, 0);
+ else dup2(p[1], 1);
+ execl("/bin/sh", "sh", "-c",
+ "eval \"printf %s\\\\\\\\0 x $1 $2\"",
+ "sh", s, redir, (char *)0);
+ _exit(1);
+ }
+ close(p[1]);
+
+ f = fdopen(p[0], "r");
+ if (!f) {
+ close(p[0]);
+ kill(pid, SIGKILL);
+ reap(pid);
+ goto nospace;
+ }
+
+ l = wv ? i+1 : 0;
+
+ free(getword(f));
+ if (feof(f)) {
+ fclose(f);
+ reap(pid);
+ return WRDE_SYNTAX;
+ }
+
+ while ((w = getword(f))) {
+ if (i+1 >= l) {
+ l += l/2+10;
+ tmp = realloc(wv, l*sizeof(char *));
+ if (!tmp) break;
+ wv = tmp;
+ }
+ wv[i++] = w;
+ wv[i] = 0;
+ }
+ if (!feof(f)) err = WRDE_NOSPACE;
+
+ fclose(f);
+ reap(pid);
+
+ if (!wv) wv = calloc(i+1, sizeof *wv);
+
+ we->we_wordv = wv;
+ we->we_wordc = i;
+
+ if (flags & WRDE_DOOFFS) {
+ if (wv) for (i=we->we_offs; i; i--)
+ we->we_wordv[i-1] = 0;
+ we->we_wordc -= we->we_offs;
+ }
+ return err;
+
+nospace:
+ if (!(flags & WRDE_APPEND)) {
+ we->we_wordc = 0;
+ we->we_wordv = 0;
+ }
+ return WRDE_NOSPACE;
+}
+
+int wordexp(const char *restrict s, wordexp_t *restrict we, int flags)
+{
+ int r, cs;
+ r = do_wordexp(s, we, flags);
+ return r;
+}
+
+void wordfree(wordexp_t *we)
+{
+ size_t i;
+ if (!we->we_wordv) return;
+ for (i=0; i<we->we_wordc; i++) free(we->we_wordv[we->we_offs+i]);
+ free(we->we_wordv);
+ we->we_wordv = 0;
+ we->we_wordc = 0;
+}
diff -uNr src/wordexp.h src.mod/wordexp.h
--- src/wordexp.h 1970-01-01 00:00:00.000000000 +0000
+++ src.mod/wordexp.h 2021-05-21 09:10:06.255178000 +0000
@@ -0,0 +1,58 @@
+/* Copyright (C) 1991, 92, 1996-1999, 2001, 2003 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+#ifndef _WORDEXP_H
+#define _WORDEXP_H 1
+#include <features.h>
+#define __need_size_t
+#include <stddef.h>
+__BEGIN_DECLS
+/* Bits set in the FLAGS argument to `wordexp'. */
+enum
+ {
+ WRDE_DOOFFS = (1 << 0), /* Insert PWORDEXP->we_offs NULLs. */
+ WRDE_APPEND = (1 << 1), /* Append to results of a previous call. */
+ WRDE_NOCMD = (1 << 2), /* Don't do command substitution. */
+ WRDE_REUSE = (1 << 3), /* Reuse storage in PWORDEXP. */
+ WRDE_SHOWERR = (1 << 4), /* Don't redirect stderr to /dev/null. */
+ WRDE_UNDEF = (1 << 5), /* Error for expanding undefined variables. */
+ __WRDE_FLAGS = (WRDE_DOOFFS | WRDE_APPEND | WRDE_NOCMD |
+ WRDE_REUSE | WRDE_SHOWERR | WRDE_UNDEF)
+ };
+/* Structure describing a word-expansion run. */
+typedef struct
+ {
+ size_t we_wordc; /* Count of words matched. */
+ char **we_wordv; /* List of expanded words. */
+ size_t we_offs; /* Slots to reserve in `we_wordv'. */
+ } wordexp_t;
+/* Possible nonzero return values from `wordexp'. */
+enum
+ {
+#ifdef __USE_XOPEN
+ WRDE_NOSYS = -1, /* Never used since we support `wordexp'. */
+#endif
+ WRDE_NOSPACE = 1, /* Ran out of memory. */
+ WRDE_BADCHAR, /* A metachar appears in the wrong place. */
+ WRDE_BADVAL, /* Undefined var reference with WRDE_UNDEF. */
+ WRDE_CMDSUB, /* Command substitution with WRDE_NOCMD. */
+ WRDE_SYNTAX /* Shell syntax error. */
+ };
+/* Do word expansion of WORDS into PWORDEXP. */
+extern int wordexp (__const char *__restrict __words,
+ wordexp_t *__restrict __pwordexp, int __flags);
+/* Free the storage allocated by a `wordexp' call. */
+extern void wordfree (wordexp_t *__wordexp);
+__END_DECLS
+#endif /* wordexp.h */

View File

@ -0,0 +1,13 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="LXQt application launcher"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-runner/releases/download/${TERMUX_PKG_VERSION}/lxqt-runner-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=24a68c50961e1157aabdb9a3899727f50012b77e401c15447c9bdc3af792a358
TERMUX_PKG_DEPENDS="qt5-qtbase, libqtxdg, kwindowsystem, liblxqt, lxqt-globalkeys"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"
# TODO runner math depends on muparser
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DRUNNER_MATH=OFF"

View File

@ -0,0 +1,14 @@
We've disabled math plugin at the moment.
This patch is probably not needed when -DRUNNER_MATH=ON
--- src/dialog.cpp 2021-04-11 09:01:40.000000000 +0000
+++ src.mod/dialog.cpp 2021-05-20 16:11:59.594667000 +0000
@@ -498,8 +498,7 @@
if (res)
{
hide();
- if (!qobject_cast<const MathItem*>(command)) // don't clear math results
- ui->commandEd->clear();
+ ui->commandEd->clear();
}
}

View File

@ -0,0 +1,274 @@
diff -uNr src/lxqt-session/CMakeLists.txt src.mod/lxqt-session/CMakeLists.txt
--- src/lxqt-session/CMakeLists.txt 2021-05-21 09:21:12.474337000 +0000
+++ src.mod/lxqt-session/CMakeLists.txt 2021-05-21 09:19:27.994338000 +0000
@@ -28,6 +28,8 @@
src/numlock.h
src/log.cpp
src/procreaper.cpp
+ src/wordexp.h
+ src/wordexp.c
)
if (WITH_LIBUDEV)
list(APPEND lxqt-session_SRCS src/UdevNotifier.cpp)
diff -uNr src/lxqt-session/src/lxqtmodman.cpp src.mod/lxqt-session/src/lxqtmodman.cpp
--- src/lxqt-session/src/lxqtmodman.cpp 2021-04-16 16:36:14.000000000 +0000
+++ src.mod/lxqt-session/src/lxqtmodman.cpp 2021-05-21 09:21:32.128509000 +0000
@@ -43,7 +43,7 @@
#include <QDateTime>
#include "wmselectdialog.h"
#include "windowmanager.h"
-#include <wordexp.h>
+#include "wordexp.h"
#include "log.h"
#include <KWindowSystem/KWindowSystem>
diff -uNr src/lxqt-session/src/wordexp.c src.mod/lxqt-session/src/wordexp.c
--- src/lxqt-session/src/wordexp.c 1970-01-01 00:00:00.000000000 +0000
+++ src.mod/lxqt-session/src/wordexp.c 2021-05-21 09:17:56.854283000 +0000
@@ -0,0 +1,184 @@
+// Copied from http://git.musl-libc.org/cgit/musl/plain/src/misc/wordexp.c
+// pthread-related lines are removed because they're missing on Android
+#include "wordexp.h"
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+#include <limits.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <sys/wait.h>
+#include <signal.h>
+#include <errno.h>
+#include <fcntl.h>
+
+static void reap(pid_t pid)
+{
+ int status;
+ while (waitpid(pid, &status, 0) < 0 && errno == EINTR);
+}
+
+static char *getword(FILE *f)
+{
+ char *s = 0;
+ return getdelim(&s, (size_t [1]){0}, 0, f) < 0 ? 0 : s;
+}
+
+static int do_wordexp(const char *s, wordexp_t *we, int flags)
+{
+ size_t i, l;
+ int sq=0, dq=0;
+ size_t np=0;
+ char *w, **tmp;
+ char *redir = (flags & WRDE_SHOWERR) ? "" : "2>/dev/null";
+ int err = 0;
+ FILE *f;
+ size_t wc = 0;
+ char **wv = 0;
+ int p[2];
+ pid_t pid;
+ sigset_t set;
+
+ if (flags & WRDE_REUSE) wordfree(we);
+
+ if (flags & WRDE_NOCMD) for (i=0; s[i]; i++) switch (s[i]) {
+ case '\\':
+ if (!sq && !s[++i]) return WRDE_SYNTAX;
+ break;
+ case '\'':
+ if (!dq) sq^=1;
+ break;
+ case '"':
+ if (!sq) dq^=1;
+ break;
+ case '(':
+ if (np) {
+ np++;
+ break;
+ }
+ case ')':
+ if (np) {
+ np--;
+ break;
+ }
+ case '\n':
+ case '|':
+ case '&':
+ case ';':
+ case '<':
+ case '>':
+ case '{':
+ case '}':
+ if (!(sq|dq|np)) return WRDE_BADCHAR;
+ break;
+ case '$':
+ if (sq) break;
+ if (s[i+1]=='(' && s[i+2]=='(') {
+ i += 2;
+ np += 2;
+ break;
+ } else if (s[i+1] != '(') break;
+ case '`':
+ if (sq) break;
+ return WRDE_CMDSUB;
+ }
+
+ if (flags & WRDE_APPEND) {
+ wc = we->we_wordc;
+ wv = we->we_wordv;
+ }
+
+ i = wc;
+ if (flags & WRDE_DOOFFS) {
+ if (we->we_offs > SIZE_MAX/sizeof(void *)/4)
+ goto nospace;
+ i += we->we_offs;
+ } else {
+ we->we_offs = 0;
+ }
+
+ if (pipe2(p, O_CLOEXEC) < 0) goto nospace;
+ pid = fork();
+ if (pid < 0) {
+ close(p[0]);
+ close(p[1]);
+ goto nospace;
+ }
+ if (!pid) {
+ if (p[1] == 1) fcntl(1, F_SETFD, 0);
+ else dup2(p[1], 1);
+ execl("/bin/sh", "sh", "-c",
+ "eval \"printf %s\\\\\\\\0 x $1 $2\"",
+ "sh", s, redir, (char *)0);
+ _exit(1);
+ }
+ close(p[1]);
+
+ f = fdopen(p[0], "r");
+ if (!f) {
+ close(p[0]);
+ kill(pid, SIGKILL);
+ reap(pid);
+ goto nospace;
+ }
+
+ l = wv ? i+1 : 0;
+
+ free(getword(f));
+ if (feof(f)) {
+ fclose(f);
+ reap(pid);
+ return WRDE_SYNTAX;
+ }
+
+ while ((w = getword(f))) {
+ if (i+1 >= l) {
+ l += l/2+10;
+ tmp = realloc(wv, l*sizeof(char *));
+ if (!tmp) break;
+ wv = tmp;
+ }
+ wv[i++] = w;
+ wv[i] = 0;
+ }
+ if (!feof(f)) err = WRDE_NOSPACE;
+
+ fclose(f);
+ reap(pid);
+
+ if (!wv) wv = calloc(i+1, sizeof *wv);
+
+ we->we_wordv = wv;
+ we->we_wordc = i;
+
+ if (flags & WRDE_DOOFFS) {
+ if (wv) for (i=we->we_offs; i; i--)
+ we->we_wordv[i-1] = 0;
+ we->we_wordc -= we->we_offs;
+ }
+ return err;
+
+nospace:
+ if (!(flags & WRDE_APPEND)) {
+ we->we_wordc = 0;
+ we->we_wordv = 0;
+ }
+ return WRDE_NOSPACE;
+}
+
+int wordexp(const char *restrict s, wordexp_t *restrict we, int flags)
+{
+ int r, cs;
+ r = do_wordexp(s, we, flags);
+ return r;
+}
+
+void wordfree(wordexp_t *we)
+{
+ size_t i;
+ if (!we->we_wordv) return;
+ for (i=0; i<we->we_wordc; i++) free(we->we_wordv[we->we_offs+i]);
+ free(we->we_wordv);
+ we->we_wordv = 0;
+ we->we_wordc = 0;
+}
diff -uNr src/lxqt-session/src/wordexp.h src.mod/lxqt-session/src/wordexp.h
--- src/lxqt-session/src/wordexp.h 1970-01-01 00:00:00.000000000 +0000
+++ src.mod/lxqt-session/src/wordexp.h 2021-05-21 09:17:53.811283000 +0000
@@ -0,0 +1,58 @@
+/* Copyright (C) 1991, 92, 1996-1999, 2001, 2003 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+#ifndef _WORDEXP_H
+#define _WORDEXP_H 1
+#include <features.h>
+#define __need_size_t
+#include <stddef.h>
+__BEGIN_DECLS
+/* Bits set in the FLAGS argument to `wordexp'. */
+enum
+ {
+ WRDE_DOOFFS = (1 << 0), /* Insert PWORDEXP->we_offs NULLs. */
+ WRDE_APPEND = (1 << 1), /* Append to results of a previous call. */
+ WRDE_NOCMD = (1 << 2), /* Don't do command substitution. */
+ WRDE_REUSE = (1 << 3), /* Reuse storage in PWORDEXP. */
+ WRDE_SHOWERR = (1 << 4), /* Don't redirect stderr to /dev/null. */
+ WRDE_UNDEF = (1 << 5), /* Error for expanding undefined variables. */
+ __WRDE_FLAGS = (WRDE_DOOFFS | WRDE_APPEND | WRDE_NOCMD |
+ WRDE_REUSE | WRDE_SHOWERR | WRDE_UNDEF)
+ };
+/* Structure describing a word-expansion run. */
+typedef struct
+ {
+ size_t we_wordc; /* Count of words matched. */
+ char **we_wordv; /* List of expanded words. */
+ size_t we_offs; /* Slots to reserve in `we_wordv'. */
+ } wordexp_t;
+/* Possible nonzero return values from `wordexp'. */
+enum
+ {
+#ifdef __USE_XOPEN
+ WRDE_NOSYS = -1, /* Never used since we support `wordexp'. */
+#endif
+ WRDE_NOSPACE = 1, /* Ran out of memory. */
+ WRDE_BADCHAR, /* A metachar appears in the wrong place. */
+ WRDE_BADVAL, /* Undefined var reference with WRDE_UNDEF. */
+ WRDE_CMDSUB, /* Command substitution with WRDE_NOCMD. */
+ WRDE_SYNTAX /* Shell syntax error. */
+ };
+/* Do word expansion of WORDS into PWORDEXP. */
+extern int wordexp (__const char *__restrict __words,
+ wordexp_t *__restrict __pwordexp, int __flags);
+/* Free the storage allocated by a `wordexp' call. */
+extern void wordfree (wordexp_t *__wordexp);
+__END_DECLS
+#endif /* wordexp.h */

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="The LXQt session manager"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.1
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-session/releases/download/${TERMUX_PKG_VERSION}/lxqt-session-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=d9058ceedb355a43ea2ef070292fc30b0fb740640cf0b579131aaefbac779c47
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, kwindowsystem, liblxqt, procps"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DWITH_LIBUDEV=OFF"

View File

@ -0,0 +1,53 @@
diff -uNr src/CMakeLists.txt src.mod/CMakeLists.txt
--- src/CMakeLists.txt 2021-05-21 09:22:54.192072000 +0000
+++ src.mod/CMakeLists.txt 2021-05-21 09:29:32.473671000 +0000
@@ -57,11 +57,11 @@
# startlxqt script
set(PREDEF_XDG_DATA_DIRS "$XDG_DATA_HOME")
-if(NOT("${LXQT_DATA_DIR}" MATCHES "^/usr(/local)?/share$"))
+if(NOT("${LXQT_DATA_DIR}" MATCHES "^@TERMUX_PREFIX@(/local)?/share$"))
set(PREDEF_XDG_DATA_DIRS "${PREDEF_XDG_DATA_DIRS}:${LXQT_DATA_DIR}")
endif()
-set(PREDEF_XDG_DATA_DIRS "${PREDEF_XDG_DATA_DIRS}:/usr/local/share:/usr/share")
-set(PREDEF_XDG_CONFIG_DIRS "/etc:${LXQT_ETC_XDG_DIR}:/usr/share")
+set(PREDEF_XDG_DATA_DIRS "${PREDEF_XDG_DATA_DIRS}:@TERMUX_PREFIX@/local/share:@TERMUX_PREFIX@/share")
+set(PREDEF_XDG_CONFIG_DIRS "@TERMUX_PREFIX@/etc:${LXQT_ETC_XDG_DIR}:@TERMUX_PREFIX@/share")
configure_file(startlxqt.in startlxqt @ONLY)
install(PROGRAMS
"${CMAKE_CURRENT_BINARY_DIR}/startlxqt"
diff -uNr src/lxqt-config-session/autostartedit.cpp src.mod/lxqt-config-session/autostartedit.cpp
--- src/lxqt-config-session/autostartedit.cpp 2021-04-16 16:36:14.000000000 +0000
+++ src.mod/lxqt-config-session/autostartedit.cpp 2021-05-21 09:27:08.762448000 +0000
@@ -58,7 +58,7 @@
void AutoStartEdit::browse()
{
- QString filePath = QFileDialog::getOpenFileName(this, tr("Select Application"), QSL("/usr/bin/"));
+ QString filePath = QFileDialog::getOpenFileName(this, tr("Select Application"), QSL("@TERMUX_PREFIX@/bin/"));
if (!filePath.isEmpty())
ui->commandEdit->setText(filePath);
}
diff -uNr src/lxqt-config-session/sessionconfigwindow.cpp src.mod/lxqt-config-session/sessionconfigwindow.cpp
--- src/lxqt-config-session/sessionconfigwindow.cpp 2021-04-16 16:36:14.000000000 +0000
+++ src.mod/lxqt-config-session/sessionconfigwindow.cpp 2021-05-21 09:26:22.519701000 +0000
@@ -115,7 +115,7 @@
const QString &prompt
)
{
- QString fname = QFileDialog::getOpenFileName(cb, prompt, QSL("/usr/bin/"));
+ QString fname = QFileDialog::getOpenFileName(cb, prompt, QSL("@TERMUX_PREFIX@/bin/"));
if (fname.isEmpty())
return;
diff -uNr src/lxqt-session/src/wmselectdialog.cpp src.mod/lxqt-session/src/wmselectdialog.cpp
--- src/lxqt-session/src/wmselectdialog.cpp 2021-04-16 16:36:14.000000000 +0000
+++ src.mod/lxqt-session/src/wmselectdialog.cpp 2021-05-21 09:25:20.941811000 +0000
@@ -117,7 +117,7 @@
if (item->data(1, TYPE_ROLE) != SELECT_DLG_TYPE)
return;
- QString fname = QFileDialog::getOpenFileName(this, QString(), QSL("/usr/bin/"));
+ QString fname = QFileDialog::getOpenFileName(this, QString(), QSL("@TERMUX_PREFIX@/bin/"));
if (fname.isEmpty())
return;

View File

@ -0,0 +1,48 @@
--- src/CMakeLists.txt 2021-04-16 16:36:14.000000000 +0000
+++ src.mod/CMakeLists.txt 2021-05-20 14:57:23.675649000 +0000
@@ -32,12 +32,7 @@
find_package(X11 REQUIRED)
message(STATUS "Building with Qt${Qt5Core_VERSION}")
find_package(PkgConfig REQUIRED)
-if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
- pkg_search_module(PROCPS REQUIRED libprocps)
-endif()
-
-# Please don't move, must be after lxqt
-find_package(XdgUserDirs REQUIRED)
+pkg_search_module(PROCPS REQUIRED libprocps)
# Patch Version
set(LXQT_SESSION_PATCH_VERSION 1)
--- src/lxqt-session/CMakeLists.txt 2021-04-16 16:36:14.000000000 +0000
+++ src.mod/lxqt-session/CMakeLists.txt 2021-05-20 15:00:28.556372000 +0000
@@ -9,11 +9,9 @@
include_directories(
${X11_INCLUDE_DIR}
)
-if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
- include_directories(
- ${PROCPS_INCLUDE_DIRS}
- )
-endif()
+include_directories(
+ ${PROCPS_INCLUDE_DIRS}
+)
set(lxqt-session_HDRS "")
@@ -67,11 +65,9 @@
${X11_LIBRARIES}
KF5::WindowSystem
)
-if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
- target_link_libraries(lxqt-session
- ${PROCPS_LIBRARIES}
- )
-endif()
+target_link_libraries(lxqt-session
+ ${PROCPS_LIBRARIES}
+)
if (WITH_LIBUDEV)
target_link_libraries(lxqt-session ${UDEV_LIBS})

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="Themes, graphics and icons for LXQt"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL="https://github.com/lxqt/lxqt-themes/releases/download/${TERMUX_PKG_VERSION}/lxqt-themes-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=3ff1960f593ffb591ebf8ce48a54953f30e6f7fac4880ad6eb1dbe9ecd67bb4e
TERMUX_PKG_DEPENDS="hicolor-icon-theme"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools"
TERMUX_PKG_PLATFORM_INDEPENDENT=true

View File

@ -0,0 +1,12 @@
TERMUX_PKG_HOMEPAGE=https://github.com/termux/x11-packages
TERMUX_PKG_DESCRIPTION="A metapackage that installs all parts of the LXQt desktop environment"
TERMUX_PKG_LICENSE="Public Domain"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SKIP_SRC_EXTRACT=true
TERMUX_PKG_DEPENDS="pcmanfm-qt, qterminal, lxqt-session, lxqt-panel, lxqt-runner, lxqt-openssh-askpass, lxqt-notificationd, lxqt-globalkeys, lxqt-config, lxqt-archiver, lxqt-about, lximage-qt, obconf-qt, lxqt-qtplugin, lxqt-themes, pavucontrol-qt"
TERMUX_PKG_RECOMMENDS="kvantum"
TERMUX_PKG_SUGGESTS="papirus-icon-theme"
TERMUX_PKG_METAPACKAGE=true
TERMUX_PKG_PLATFORM_INDEPENDENT=true

24
x11-packages/lyx/build.sh Normal file
View File

@ -0,0 +1,24 @@
TERMUX_PKG_HOMEPAGE=http://www.lyx.org
TERMUX_PKG_DESCRIPTION="WYSIWYM (What You See Is What You Mean) Document Processor"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=2.3.6.1
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://ftp.lip6.fr/pub/lyx/stable/2.3.x/lyx-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=c6bed2633419898e01a7cc350310d7d934bf591cab7259fc2581aa4c00eafa78
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtsvg, zlib, imagemagick, ghostscript, texlive-bin, hunspell"
TERMUX_PKG_BUILD_DEPENDS="boost, qt5-qtbase-cross-tools"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--enable-build-type=rel
--enable-qt5
--without-included-boost
--without-aspell
--with-hunspell
"
TERMUX_PKG_RM_AFTER_INSTALL="share/lyx/examples"
termux_step_pre_configure() {
# This is to allow the build script find the `moc` on cross-build host
export PATH+=":${TERMUX_PREFIX}/opt/qt/cross/bin"
}

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="OpenBox window manager configuration tool"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.16.1
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://github.com/lxqt/obconf-qt/releases/download/${TERMUX_PKG_VERSION}/obconf-qt-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=458d96b63dca8a09a4f477d42030d829e8090aae0ea39b3994fcf0b8da8e8b42
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, glib, openbox, liblxqt, hicolor-icon-theme"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="Qt port of volume control of sound server PulseAudio"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://github.com/lxqt/pavucontrol-qt/releases/download/${TERMUX_PKG_VERSION}/pavucontrol-qt-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=6c274cd3a80a699c4b3f4dbf4eccaef3fafdc677c6240e2b45672bafe46da170
TERMUX_PKG_DEPENDS="qt5-qtbase, kwindowsystem, liblxqt, pulseaudio-glib"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,11 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="PCManFM-Qt is the file manager of LXQt"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL="https://github.com/lxqt/pcmanfm-qt/releases/download/${TERMUX_PKG_VERSION}/pcmanfm-qt-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=74acbf55cdb22bd4d0068ef22ba298254ce6de72374624fcf3087c016d3bbaab
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, libfm-qt, liblxqt, lxmenu-data"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,16 @@
TERMUX_PKG_HOMEPAGE=https://github.com/tibirna/qgit
TERMUX_PKG_DESCRIPTION="A git GUI viewer"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=2.9
TERMUX_PKG_REVISION=22
TERMUX_PKG_SRCURL=https://github.com/tibirna/qgit/archive/qgit-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=69788efda7d434d1bc094bb414bd92c269dc7894326320634500b05d63c008e8
TERMUX_PKG_DEPENDS="git, hicolor-icon-theme, qt5-qtbase"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
termux_step_configure() {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}

View File

@ -0,0 +1,32 @@
TERMUX_PKG_HOMEPAGE=https://riverbankcomputing.com/software/qscintilla
TERMUX_PKG_DESCRIPTION="QScintilla is a port to Qt of the Scintilla editing component"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=2.12.1
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL="https://www.riverbankcomputing.com/static/Downloads/QScintilla/${TERMUX_PKG_VERSION}/QScintilla_src-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256=a7331c44b5d7320cbf58cb2382c38857e9e9f4fa52c405bd7776c8b6649836c2
TERMUX_PKG_DEPENDS="qt5-qtbase"
# qttools is only needed to build Qt Designer's plugins
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qttools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
TERMUX_PKG_EXTRA_MAKE_ARGS="-C src"
termux_step_configure () {
for i in src designer; do
cd "${TERMUX_PKG_SRCDIR}/${i}" && {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
done
unset i
}
termux_step_post_make_install() {
cd "${TERMUX_PKG_SRCDIR}/designer" && {
make -j "${TERMUX_MAKE_PROCESSES}"
make install
}
}

View File

@ -0,0 +1,12 @@
qt5-qtbase in Termux doesn't build accessibility
--- src/src/qscintilla.pro 2021-05-09 12:23:05.233865021 +0000
+++ src.mod/src/qscintilla.pro 2021-05-09 12:22:58.033891538 +0000
@@ -23,6 +23,8 @@
TEMPLATE = lib
CONFIG += qt warn_off thread exceptions hide_symbols
+DEFINES += QT_NO_ACCESSIBILITY
+
CONFIG(debug, debug|release) {
mac: {
TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}_debug

View File

@ -0,0 +1,133 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="The Qt Declarative module provides classes for using GUIs created using QML"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/5.12/${TERMUX_PKG_VERSION}/submodules/qtdeclarative-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=1267e029abc8424424c419bc1681db069ec76e51270cc220994e0f442c9f78d3
TERMUX_PKG_DEPENDS="qt5-qtbase"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
# Ignore bootstrap changes because of the hijacking
TERMUX_PKG_RM_AFTER_INSTALL="
opt/qt/cross/lib/libQt5Bootstrap.*
"
# Replacing the old qt5-base packages
TERMUX_PKG_REPLACES="qt5-declarative"
termux_step_pre_configure () {
#######################################################
##
## Hijack the bootstrap library for cross building
##
#######################################################
for i in a prl; do
cp -p "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5Bootstrap.${i}" \
"${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5Bootstrap.${i}.bak"
ln -s -f "${TERMUX_PREFIX}/lib/libQt5Bootstrap.${i}" \
"${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5Bootstrap.${i}"
done
unset i
}
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_post_make_install () {
#######################################################
##
## Compiling necessary binaries for target.
##
#######################################################
## Qt Declarative utilities.
for i in qmlcachegen qmlimportscanner qmllint qmlmin; do
cd "${TERMUX_PKG_SRCDIR}/tools/${i}" && {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
make -j "${TERMUX_MAKE_PROCESSES}"
install -Dm700 "../../bin/${i}" "${TERMUX_PREFIX}/bin/${i}"
}
done
# Install the QmlDevTools for target (needed by some packages such as qttools)
install -Dm644 ${TERMUX_PKG_SRCDIR}/lib/libQt5QmlDevTools.a "${TERMUX_PREFIX}/lib/libQt5QmlDevTools.a"
install -Dm644 ${TERMUX_PKG_SRCDIR}/lib/libQt5QmlDevTools.prl "${TERMUX_PREFIX}/lib/libQt5QmlDevTools.prl"
sed -i 's|/opt/qt/cross/|/|g' "${TERMUX_PREFIX}/lib/libQt5QmlDevTools.prl"
#######################################################
##
## Restore the bootstrap library
##
#######################################################
for i in a prl; do
rm -f "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5Bootstrap.${i}"
cp -p "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5Bootstrap.${i}.bak" \
"${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5Bootstrap.${i}"
rm -f "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5Bootstrap.${i}.bak"
done
unset i
#######################################################
##
## Compiling necessary binaries for the host
##
#######################################################
## libQt5QmlDevTools.a (qt5-declarative)
cd "${TERMUX_PKG_SRCDIR}/src/qmldevtools" && {
make clean
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-host"
make -j "${TERMUX_MAKE_PROCESSES}"
install -Dm644 ../../lib/libQt5QmlDevTools.a "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5QmlDevTools.a"
install -Dm644 ../../lib/libQt5QmlDevTools.prl "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5QmlDevTools.prl"
}
## Qt Declarative utilities.
for i in qmlcachegen qmlimportscanner qmllint qmlmin; do
cd "${TERMUX_PKG_SRCDIR}/tools/${i}" && {
make clean
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-host"
make -j "${TERMUX_MAKE_PROCESSES}"
install -Dm700 "../../bin/${i}" "${TERMUX_PREFIX}/opt/qt/cross/bin/${i}"
}
done
#######################################################
##
## Fixes & cleanup.
##
#######################################################
# Limit the scope, otherwise it'll touch qtbase files
for pref in Qml Quick Packet; do
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5${pref}*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
done
unset pref
sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5QmlDevTools.prl"
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
find "${TERMUX_PREFIX}/opt/qt/cross/lib" -iname \*.la -delete
}
termux_step_create_debscripts() {
# Some clean-up is happening via `postinst`
# Because we're using this package in both host (Ubuntu glibc) and device (Termux)
cp -f "${TERMUX_PKG_BUILDER_DIR}/postinst" ./
}

View File

@ -0,0 +1,12 @@
#!/data/data/com.termux/files/usr/bin/sh
PREFIX="/data/data/com.termux/files/usr"
if [ `uname -o` = 'Android' ]; then
echo "Patching Qt installation configuration files ..."
## Make sure the cmake configurations point to the on-device programs instead of the host tools
sed -i \
's|install_prefix}/opt/qt/cross/|install_prefix}/|g' \
"${PREFIX}/lib/cmake/Qt5QuickCompiler/Qt5QuickCompilerConfig.cmake"
fi

View File

@ -0,0 +1,5 @@
TERMUX_SUBPKG_DESCRIPTION="Qt declarative module for cross build (NOT for Termux)"
TERMUX_SUBPKG_DEPENDS="qt5-qtdeclarative"
TERMUX_SUBPKG_INCLUDE="
opt/qt/cross/*
"

View File

@ -0,0 +1,35 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt 5 Location Library"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/5.12/${TERMUX_PKG_VERSION}/submodules/qtlocation-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=a3384357703f76fa2e352e4dfaa30d197098b77a3672ea85bd8925dbe357f00b
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtdeclarative"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_post_make_install() {
#######################################################
##
## Fixes & cleanup.
##
#######################################################
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5Location*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5Position*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
}

View File

@ -0,0 +1,40 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt 5 Multimedia Library"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/5.12/${TERMUX_PKG_VERSION}/submodules/qtmultimedia-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=918d253e9b5bca4f030e4207b2329d6a96c9901a5f52c5ed84725709aa54ee27
# qt5-qtdeclarative is not needed because quick widget requires OpenGL
TERMUX_PKG_DEPENDS="qt5-qtbase, pulseaudio, openal-soft, gstreamer, gst-plugins-base, gst-plugins-bad"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross" \
GST_VERSION=1.0 \
INCLUDEPATH+="${TERMUX_PREFIX}/include/gstreamer-1.0/" \
INCLUDEPATH+="${TERMUX_PREFIX}/include/glib-2.0/" \
INCLUDEPATH+="${TERMUX_PREFIX}/lib/glib-2.0/include"
}
termux_step_make_install() {
make install
#######################################################
##
## Fixes & cleanup.
##
#######################################################
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5Multimedia*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
}

View File

@ -0,0 +1,34 @@
--- src/src/multimedia/configure.json 2021-05-08 17:50:32.795445138 +0000
+++ src.mod/src/multimedia/configure.json 2021-05-08 17:49:30.639754395 +0000
@@ -71,7 +71,8 @@
"test": "gstreamer_appsrc",
"use": "gstreamer_1_0",
"sources": [
- { "type": "pkgConfig", "args": "gstreamer-app-1.0" }
+ { "type": "pkgConfig", "args": "gstreamer-app-1.0" },
+ { "libs": "-lgstapp-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0" }
]
},
"gstreamer_photography_0_10": {
@@ -120,7 +121,8 @@
"label": "PulseAudio >= 0.9.10",
"test": "pulseaudio",
"sources": [
- { "type": "pkgConfig", "args": "libpulse >= 0.9.10 libpulse-mainloop-glib" }
+ { "type": "pkgConfig", "args": "libpulse >= 0.9.10 libpulse-mainloop-glib" },
+ { "libs": "-lpulse", "condition": "config.unix" }
]
},
"wmf": {
--- src/src/multimedia/configure.json 2021-05-16 13:53:50.128205372 +0000
+++ src.mod/src/multimedia/configure.json 2021-05-16 13:41:51.186432131 +0000
@@ -53,7 +53,8 @@
"test": "gstreamer",
"sources": [
{ "type": "pkgConfig",
- "args": "gstreamer-1.0 gstreamer-base-1.0 gstreamer-audio-1.0 gstreamer-video-1.0 gstreamer-pbutils-1.0" }
+ "args": "gstreamer-1.0 gstreamer-base-1.0 gstreamer-audio-1.0 gstreamer-video-1.0 gstreamer-pbutils-1.0" },
+ { "libs": "-lgstpbutils-1.0 -lgstaudio-1.0 -lgstvideo-1.0 -lgstbase-1.0 -lgsttag-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0" }
]
},
"gstreamer_app_0_10": {

View File

@ -0,0 +1,29 @@
--- src/config.tests/gstreamer/gstreamer.pro 2020-10-15 06:53:20.000000000 +0000
+++ src.mod/config.tests/gstreamer/gstreamer.pro 2021-05-16 13:59:14.419703082 +0000
@@ -1,2 +1,5 @@
SOURCES += main.cpp
+INCLUDEPATH += "/data/data/com.termux/files/usr/include/gstreamer-1.0/"
+INCLUDEPATH += "/data/data/com.termux/files/usr/include/glib-2.0/"
+INCLUDEPATH += "/data/data/com.termux/files/usr/lib/glib-2.0/include"
--- src/config.tests/gstreamer_photography/gstreamer_photography.pro 2020-10-15 06:53:20.000000000 +0000
+++ src.mod/config.tests/gstreamer_photography/gstreamer_photography.pro 2021-05-16 13:59:57.407079643 +0000
@@ -1 +1,4 @@
SOURCES += main.cpp
+INCLUDEPATH += "/data/data/com.termux/files/usr/include/gstreamer-1.0/"
+INCLUDEPATH += "/data/data/com.termux/files/usr/include/glib-2.0/"
+INCLUDEPATH += "/data/data/com.termux/files/usr/lib/glib-2.0/include"
--- src/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro 2020-10-15 06:53:20.000000000 +0000
+++ src.mod/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro 2021-05-16 14:03:35.948676966 +0000
@@ -1 +1,4 @@
SOURCES += main.cpp
+INCLUDEPATH += "/data/data/com.termux/files/usr/include/gstreamer-1.0/"
+INCLUDEPATH += "/data/data/com.termux/files/usr/include/glib-2.0/"
+INCLUDEPATH += "/data/data/com.termux/files/usr/lib/glib-2.0/include"
--- src/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro 2020-10-15 06:53:20.000000000 +0000
+++ src.mod/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro 2021-05-16 14:02:47.817110561 +0000
@@ -1 +1,4 @@
SOURCES += main.cpp
+INCLUDEPATH += "/data/data/com.termux/files/usr/include/gstreamer-1.0/"
+INCLUDEPATH += "/data/data/com.termux/files/usr/include/glib-2.0/"
+INCLUDEPATH += "/data/data/com.termux/files/usr/lib/glib-2.0/include"

View File

@ -0,0 +1,20 @@
diff -uNr src/config.tests/pulseaudio/pulseaudio.cpp src.mod/config.tests/pulseaudio/pulseaudio.cpp
--- src/config.tests/pulseaudio/pulseaudio.cpp 2020-10-15 06:53:20.000000000 +0000
+++ src.mod/config.tests/pulseaudio/pulseaudio.cpp 2021-05-08 17:18:24.844729781 +0000
@@ -27,7 +27,7 @@
****************************************************************************/
#include <pulse/pulseaudio.h>
-#include <pulse/glib-mainloop.h>
+#include <pulse/mainloop.h>
#if !defined(PA_API_VERSION) || PA_API_VERSION-0 != 12
# error "Incompatible PulseAudio API version"
@@ -37,6 +37,6 @@
{
const char *headers = pa_get_headers_version();
const char *library = pa_get_library_version();
- pa_glib_mainloop_new(0);
+ pa_mainloop_new();
return (headers - library) * 0;
}

View File

@ -0,0 +1,29 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt Quick Controls module"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/${TERMUX_PKG_VERSION%.*}/${TERMUX_PKG_VERSION}/submodules/${TERMUX_PKG_NAME#qt5-}-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=cd6b81fda691ab15d25ac60b6a3437667a892e401438e07a64c88cadd3481389
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtdeclarative"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_post_make_install() {
#######################################################
##
## Fixes & cleanup.
##
#######################################################
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
}

View File

@ -0,0 +1,35 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt Quick Controls2 module"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/5.12/${TERMUX_PKG_VERSION}/submodules/qtquickcontrols2-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=c05585f42db7c17fb7f344f8a9cabd38a4e9dff17b3d04ec35e8edab7ead355c
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtdeclarative"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_post_make_install() {
#######################################################
##
## Fixes & cleanup.
##
#######################################################
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5QuickControls2*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5QuickTemplates2*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
}

View File

@ -0,0 +1,33 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt 5 Sensors Library"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/${TERMUX_PKG_VERSION%.*}/${TERMUX_PKG_VERSION}/submodules/${TERMUX_PKG_NAME#qt5-}-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=47b957c3334bbb5eda5e12a68f91505dd80dfc2337dadd63d4826aa72c430506
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtdeclarative"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_post_make_install() {
#######################################################
##
## Fixes & cleanup.
##
#######################################################
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5Sensors*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
}

View File

@ -0,0 +1,31 @@
--- src/src/plugins/sensors/dummy/dummy.pro 2020-10-15 06:53:19.000000000 +0000
+++ src.mod/src/plugins/sensors/dummy/dummy.pro 2021-05-14 14:22:51.194482639 +0000
@@ -12,8 +12,6 @@
OTHER_FILES = plugin.json
-unix:!darwin:!qnx:!android:!openbsd: LIBS += -lrt
-
PLUGIN_TYPE = sensors
PLUGIN_CLASS_NAME = dummySensorPlugin
load(qt_plugin)
--- src/src/plugins/sensors/linux/linux.pro 2020-10-15 06:53:19.000000000 +0000
+++ src.mod/src/plugins/sensors/linux/linux.pro 2021-05-14 14:22:09.604788205 +0000
@@ -3,7 +3,6 @@
OTHER_FILES = plugin.json
-!android:LIBS += -lrt
HEADERS += linuxsysaccelerometer.h
SOURCES += linuxsysaccelerometer.cpp \
main.cpp
--- src/src/plugins/sensors/iio-sensor-proxy/iio-sensor-proxy.pro 2020-10-15 06:53:19.000000000 +0000
+++ src.mod/src/plugins/sensors/iio-sensor-proxy/iio-sensor-proxy.pro 2021-05-14 14:28:09.397847029 +0000
@@ -5,7 +5,6 @@
PLUGIN_CLASS_NAME = IIOSensorProxySensorPlugin
load(qt_plugin)
-!android:LIBS += -lrt
HEADERS += iiosensorproxysensorbase.h \
iiosensorproxylightsensor.h \
iiosensorproxyorientationsensor.h \

View File

@ -0,0 +1,35 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt SVG Library"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/5.12/${TERMUX_PKG_VERSION}/submodules/qtsvg-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=7a6857a2f68cfbebb9f791396b401a98e951c9bff9bfeb1b5b01914c3ea1a0ed
TERMUX_PKG_DEPENDS="qt5-qtbase"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_make_install() {
make install
#######################################################
##
## Fixes & cleanup.
##
#######################################################
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5Svg*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
}

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Categories=Qt;Development;Documentation;
Encoding=UTF-8
Exec=assistant
Name=Qt Assistant
GenericName=Document Browser
X-KDE-StartupNotify=true
MimeType=application/x-assistant;
Terminal=false
Type=Application
Icon=assistant

View File

@ -0,0 +1,232 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt Development Tools (Linguist, Assistant, Designer, etc.)"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/5.12/${TERMUX_PKG_VERSION}/submodules/qttools-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=98b2aaca230458f65996f3534fd471d2ffd038dd58ac997c0589c06dc2385b4f
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtdeclarative"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qtdeclarative-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
# Ignore the bootstrap library that is touched by the hijack
TERMUX_PKG_RM_AFTER_INSTALL="
opt/qt/cross/lib/libQt5Bootstrap.*
opt/qt/cross/lib/libQt5QmlDevTools.*
"
# Replacing the old qt5-base packages
TERMUX_PKG_REPLACES="qt5-tools"
termux_step_pre_configure () {
#######################################################
##
## Hijack the bootstrap library
##
#######################################################
for i in Bootstrap QmlDevTools; do
cp -p "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5${i}.a" \
"${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5${i}.a.bak"
ln -s -f "${TERMUX_PREFIX}/lib/libQt5${i}.a" \
"${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5${i}.a"
cp -p "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5${i}.prl" \
"${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5${i}.prl.bak"
ln -s -f "${TERMUX_PREFIX}/lib/libQt5${i}.prl" \
"${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5${i}.prl"
done
unset i
}
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_post_make_install() {
#######################################################
##
## Compiling necessary programs for target.
##
#######################################################
## Some top-level tools
# FIXME: qdoc cannot be built at the moment because qmake couldn't find libclang when built with -I
for i in makeqpf pixeltool qev qtattributionsscanner; do
cd "${TERMUX_PKG_SRCDIR}/src/${i}" && {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
make -j "${TERMUX_MAKE_PROCESSES}"
install -Dm700 "../../bin/${i}" "${TERMUX_PREFIX}/bin/${i}"
}
done
unset i
# QDbusViewer desktop file (the binary would be installed already)
install -D -m644 \
"${TERMUX_PKG_SRCDIR}/src/qdbus/qdbusviewer/images/qdbusviewer.png" \
"${TERMUX_PREFIX}/share/icons/hicolor/32x32/apps/qdbusviewer.png"
install -D -m644 \
"${TERMUX_PKG_SRCDIR}/src/qdbus/qdbusviewer/images/qdbusviewer-128.png" \
"${TERMUX_PREFIX}/share/icons/hicolor/128x128/apps/qdbusviewer.png"
install -D -m644 \
"${TERMUX_PKG_BUILDER_DIR}/qdbusviewer.desktop" \
"${TERMUX_PREFIX}/share/applications/qdbusviewer.desktop"
# qdistancefieldgenerator (it has a different directory name but supports make install)
cd "${TERMUX_PKG_SRCDIR}/src/distancefieldgenerator" && {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
make -j "${TERMUX_MAKE_PROCESSES}"
make install
}
#######################################################
##
## Qt Linguist
##
#######################################################
# Install the linguist utilities to the correct path
for i in lconvert lrelease lupdate; do
install -Dm700 "${TERMUX_PKG_SRCDIR}/bin/${i}" "${TERMUX_PREFIX}/bin/${i}"
done
# Build and install linguist program
cd "${TERMUX_PKG_SRCDIR}/src/linguist/linguist" && {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
make -j "${TERMUX_MAKE_PROCESSES}"
make install
}
# Install the linguist desktop file
install -Dm644 \
"${TERMUX_PKG_SRCDIR}/src/linguist/linguist/images/icons/linguist-32-32.png" \
"${TERMUX_PREFIX}/share/icons/hicolor/32x32/apps/linguist.png"
install -Dm644 \
"${TERMUX_PKG_SRCDIR}/src/linguist/linguist/images/icons/linguist-128-32.png" \
"${TERMUX_PREFIX}/share/icons/hicolor/128x128/apps/linguist.png"
install -Dm644 \
"${TERMUX_PKG_BUILDER_DIR}/linguist.desktop" \
"${TERMUX_PREFIX}/share/applications/linguist.desktop"
#######################################################
##
## Qt Assistant
##
#######################################################
for i in qcollectiongenerator qhelpgenerator assistant; do
cd "${TERMUX_PKG_SRCDIR}/src/assistant/${i}" && {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
make -j "${TERMUX_MAKE_PROCESSES}"
install -Dm700 "../../../bin/${i}" "${TERMUX_PREFIX}/bin/${i}"
}
done
install -Dm644 \
"${TERMUX_PKG_SRCDIR}/src/assistant/assistant/images/assistant.png" \
"${TERMUX_PREFIX}/share/icons/hicolor/32x32/apps/assistant.png"
install -Dm644 \
"${TERMUX_PKG_SRCDIR}/src/assistant/assistant/images/assistant-128.png" \
"${TERMUX_PREFIX}/share/icons/hicolor/128x128/apps/assistant.png"
install -Dm644 \
"${TERMUX_PKG_BUILDER_DIR}/assistant.desktop" \
"${TERMUX_PREFIX}/share/applications/assistant.desktop"
#######################################################
##
## Qt Designer
##
#######################################################
for i in lib components designer plugins; do
cd "${TERMUX_PKG_SRCDIR}/src/designer/src/${i}" && {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
make -j "${TERMUX_MAKE_PROCESSES}"
make install
}
done
install -Dm644 \
"${TERMUX_PKG_SRCDIR}/src/designer/src/designer/images/designer.png" \
"${TERMUX_PREFIX}/share/icons/hicolor/128x128/apps/designer.png"
install -Dm644 \
"${TERMUX_PKG_BUILDER_DIR}/designer.desktop" \
"${TERMUX_PREFIX}/share/applications/designer.desktop"
#######################################################
##
## Restore the bootstrap library
##
#######################################################
for i in Bootstrap QmlDevTools; do
mv "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5${i}.a.bak" \
"${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5${i}.a"
mv "${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5${i}.prl.bak" \
"${TERMUX_PREFIX}/opt/qt/cross/lib/libQt5${i}.prl"
done
#######################################################
##
## Compiling necessary programs for host
##
#######################################################
# These programs were built and linked for the target
# We need to build them again but for the host
cd "${TERMUX_PKG_SRCDIR}/src/qtattributionsscanner" && {
make clean
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-host"
make -j "${TERMUX_MAKE_PROCESSES}"
install -Dm700 \
"../../bin/qtattributionsscanner" \
"${TERMUX_PREFIX}/opt/qt/cross/bin/qtattributionsscanner"
}
for i in lconvert lrelease lupdate; do
cd "${TERMUX_PKG_SRCDIR}/src/linguist/${i}" && {
make clean
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-host"
make -j "${TERMUX_MAKE_PROCESSES}"
install -Dm700 "../../../bin/${i}" "${TERMUX_PREFIX}/opt/qt/cross/bin/${i}"
}
done
#######################################################
##
## Fixes & cleanup.
##
#######################################################
# Limit the scope, otherwise it'll touch qtbase files
for pref in Designer Help UiTools UiPlugin; do
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5${pref}*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
done
unset pref
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
find "${TERMUX_PREFIX}/opt/qt/cross/lib" -iname \*.la -delete
}
termux_step_create_debscripts() {
# Some clean-up is happening via `postinst`
# Because we're using this package in both host (Ubuntu glibc) and device (Termux)
cp -f "${TERMUX_PKG_BUILDER_DIR}/postinst" ./
}

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Categories=Qt;Development;GUIDesigner;
Encoding=UTF-8
Exec=designer
Name=Qt Designer
GenericName=Interface Designer
X-KDE-StartupNotify=true
MimeType=application/x-designer;
Icon=designer
Terminal=false
Type=Application

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Categories=Qt;Development;Translation;
Encoding=UTF-8
Exec=linguist
Name=Qt Linguist
GenericName=Translation Tool
X-KDE-StartupNotify=true
MimeType=application/x-linguist;
Terminal=false
Type=Application
Icon=linguist

View File

@ -0,0 +1,15 @@
#!/data/data/com.termux/files/usr/bin/sh
PREFIX="/data/data/com.termux/files/usr"
if [ `uname -o` = 'Android' ]; then
echo "Patching Qt installation configuration files ..."
## Make sure the cmake configurations point to the on-device programs instead of the host tools
sed -i \
's|install_prefix}/opt/qt/cross/|install_prefix}/|g' \
"${PREFIX}/lib/cmake/Qt5Help/Qt5HelpConfigExtras.cmake"
sed -i \
's|install_prefix}/opt/qt/cross/|install_prefix}/|g' \
"${PREFIX}/lib/cmake/Qt5LinguistTools/Qt5LinguistToolsConfig.cmake"
fi

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Categories=Qt;Development;Debugger;
Encoding=UTF-8
Exec=qdbusviewer
Name=Qt D-Bus Viewer
GenericName=D-Bus Debugger
Comment=Introspect D-Bus objects and messages
X-KDE-StartupNotify=true
Terminal=false
Type=Application
Icon=qdbusviewer

View File

@ -0,0 +1,6 @@
TERMUX_SUBPKG_DESCRIPTION="Tools from qttools module for cross build on the host machine"
TERMUX_SUBPKG_DEPENDS="qt5-qttools"
TERMUX_SUBPKG_INCLUDE="
opt/qt/cross/bin/*
opt/qt/cross/lib/*
"

View File

@ -0,0 +1,33 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt 5 WebChannel Library"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/${TERMUX_PKG_VERSION%.*}/${TERMUX_PKG_VERSION}/submodules/qtwebchannel-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=84fdf1eec5ae4be857d934f8035a1ee991088f94f3359b49a988310cdddd88e7
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtdeclarative, qt5-qtwebsockets"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_post_make_install() {
#######################################################
##
## Fixes & cleanup.
##
#######################################################
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5WebChannel*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
}

View File

@ -0,0 +1,32 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt 5 WebSockets Library"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/${TERMUX_PKG_VERSION%.*}/${TERMUX_PKG_VERSION}/submodules/qtwebsockets-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=ce3c8be18e96928f336fd43bb6c9f99d3ee97eddd44fc6788fadd1dd54c437c4
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtdeclarative"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_post_make_install() {
#######################################################
##
## Fixes & cleanup.
##
#######################################################
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "${TERMUX_PREFIX}/lib/libQt5WebSockets.prl"
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
}

View File

@ -0,0 +1,38 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt X11 Extras enables the Qt programmer to write applications for the Linux/X11 platform"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/5.12/${TERMUX_PKG_VERSION}/submodules/qtx11extras-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=32c51c32edf265394610e9e1ca019fba6007c9a9f2e38e127a24e0b80d0c76e3
TERMUX_PKG_DEPENDS="qt5-qtbase"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
# Replacing the old qt5-base packages
TERMUX_PKG_REPLACES="qt5-x11extras"
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_make_install() {
make install
#######################################################
##
## Fixes & cleanup.
##
#######################################################
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5X11*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
}

View File

@ -0,0 +1,27 @@
TERMUX_PKG_HOMEPAGE=https://www.qt.io/
TERMUX_PKG_DESCRIPTION="Qt XmlPatterns Library"
TERMUX_PKG_LICENSE="LGPL-3.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=5.12.11
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL="https://download.qt.io/official_releases/qt/5.12/${TERMUX_PKG_VERSION}/submodules/qtxmlpatterns-everywhere-src-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=1df0583ff804ef3334da298218ac5641d46c99b1dc692ca5097d9fead4afd0bc
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtdeclarative"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross"
}
termux_step_post_make_install() {
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5XmlPatterns*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
}

View File

@ -0,0 +1,19 @@
TERMUX_PKG_HOMEPAGE=https://sourceforge.net/projects/qt5ct
TERMUX_PKG_DESCRIPTION="Qt5 Configuration Tool"
TERMUX_PKG_LICENSE="BSD 2-Clause"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=1.3
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL="https://downloads.sf.net/qt5ct/qt5ct-${TERMUX_PKG_VERSION}.tar.bz2"
TERMUX_PKG_SHA256=dd443b14e590aff76a16e1316d56e688882e3248c470df4f71bc952569f3c3bc
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtsvg"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qttools-cross-tools"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure () {
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
-spec "${TERMUX_PREFIX}/lib/qt/mkspecs/termux-cross" \
PREFIX="${TERMUX_PREFIX}"
}

View File

@ -0,0 +1,22 @@
--- src/qt5ct.pro 2021-08-01 09:08:33.000000000 +0000
+++ src.mod/qt5ct.pro 2021-09-01 16:08:41.981527832 +0000
@@ -3,18 +3,7 @@
SUBDIRS += src/qt5ct-qtplugin src/qt5ct-style src/qt5ct
-unix:exists($$[QT_INSTALL_BINS]/lrelease){
-LRELEASE_EXECUTABLE = $$[QT_INSTALL_BINS]/lrelease
-}
-
-unix:exists($$[QT_INSTALL_BINS]/lrelease-qt5){
-LRELEASE_EXECUTABLE = $$[QT_INSTALL_BINS]/lrelease-qt5
-}
-
-
-win32:exists($$[QT_INSTALL_BINS]/lrelease.exe){
-LRELEASE_EXECUTABLE = $$[QT_INSTALL_BINS]/lrelease.exe
-}
+LRELEASE_EXECUTABLE = @TERMUX_PREFIX@/opt/qt/cross/bin/lrelease
isEmpty(LRELEASE_EXECUTABLE){

View File

@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="A lightweight Qt terminal emulator"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL="https://github.com/lxqt/qterminal/releases/download/${TERMUX_PKG_VERSION}/qterminal-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=a9859876205940566519e763f6fb33c3109e044dd0461615d20e55668d3adb65
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtx11extras, qtermwidget"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://lxqt.github.io
TERMUX_PKG_DESCRIPTION="A terminal emulator widget for Qt 5"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="Simeon Huang <symeon@librehat.com>"
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL="https://github.com/lxqt/qtermwidget/releases/download/${TERMUX_PKG_VERSION}/qtermwidget-${TERMUX_PKG_VERSION}.tar.xz"
TERMUX_PKG_SHA256=4e04b2fb71d7382266a1ea168bf02d1283e04df6127a42f760a30389cb219b82
TERMUX_PKG_DEPENDS="qt5-qtbase"
TERMUX_PKG_BUILD_DEPENDS="lxqt-build-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,49 @@
--- src/lib/kpty.cpp 2021-05-12 15:09:15.461686000 +0000
+++ src.mod/lib/kpty.cpp 2021-05-12 15:24:03.750599000 +0000
@@ -32,6 +32,10 @@
#define HAVE_LIBUTIL_H
#endif
+#if defined(__ANDROID__)
+#define HAVE_PTY_H
+#endif
+
#if defined(__OpenBSD__)
#define HAVE_LOGIN
#define HAVE_UTIL_H
@@ -588,10 +592,12 @@
# endif
# else
utmpname(_PATH_UTMP);
+#ifndef __ANDROID__
setutent();
pututline(&l_struct);
endutent();
updwtmp(_PATH_WTMP, &l_struct);
+#endif
# endif
# endif
#endif
@@ -641,7 +647,12 @@
# else
utmpname(_PATH_UTMP);
setutent();
+
+#ifndef __ANDROID__
if ((ut = getutline(&l_struct))) {
+#else
+ if ((ut = getutent())) {
+#endif
# endif
# ifdef HAVE_UTMPX
memset(ut->ut_user, 0, sizeof(*ut->ut_user));
@@ -662,7 +673,9 @@
endutxent();
# else
ut->ut_time = time(nullptr);
+#ifndef __ANDROID__
pututline(ut);
+#endif
}
endutent();
# endif

View File

@ -0,0 +1,10 @@
TERMUX_PKG_HOMEPAGE=https://stachenov.github.io/quazip/
TERMUX_PKG_DESCRIPTION="Qt/C++ wrapper over minizip library"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="Yisus7u7"
TERMUX_PKG_VERSION=1.1
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://github.com/stachenov/quazip/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=54edce9c11371762bd4f0003c2937b5d8806a2752dd9c0fd9085e90792612ad0
TERMUX_PKG_DEPENDS="qt5-qtbase, zlib"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qttools-cross-tools"

View File

@ -0,0 +1,9 @@
TERMUX_PKG_HOMEPAGE=https://www.xpdfreader.com/
TERMUX_PKG_DESCRIPTION="Xpdf is an open source viewer for Portable Document Format (PDF) files."
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=4.03
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL=https://dl.xpdfreader.com/xpdf-$TERMUX_PKG_VERSION.tar.gz
TERMUX_PKG_SHA256=0fe4274374c330feaadcebb7bd7700cb91203e153b26aa95952f02bf130be846
TERMUX_PKG_DEPENDS="qt5-qtbase, qt5-qtsvg"