diff --git a/packages/catch2/build.sh b/packages/catch2/build.sh new file mode 100644 index 00000000000000..9af4b8bb92cf5c --- /dev/null +++ b/packages/catch2/build.sh @@ -0,0 +1,9 @@ +TERMUX_PKG_HOMEPAGE="https://github.com/catchorg/catch2" +TERMUX_PKG_DESCRIPTION="Modern, C++-native, header-only, test framework for unit-tests, TDD and BDD" +TERMUX_PKG_LICENSE="BSL-1.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=3.7.1 +TERMUX_PKG_SRCURL=git+https://github.com/catchorg/Catch2 +TERMUX_PKG_GIT_BRANCH="v$TERMUX_PKG_VERSION" +TERMUX_PKG_UPDATE_TAG_TYPE="newest-tag" +TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/fftw/build.sh b/packages/fftw/build.sh index 9c842348155463..2e13edbc117e13 100644 --- a/packages/fftw/build.sh +++ b/packages/fftw/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Library for computing the Discrete Fourier Transform (DF TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=3.3.10 -TERMUX_PKG_REVISION=3 +TERMUX_PKG_REVISION=4 TERMUX_PKG_SRCURL=http://www.fftw.org/fftw-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467 TERMUX_PKG_BREAKS="fftw-dev" @@ -19,9 +19,20 @@ termux_step_post_make_install() { local feature for feature in float long-double; do make clean + # cmake: create FFTW3LibraryDepends.cmake by configuring (but not building) + local -a _config_cmake="" + if [ "${feature}" = "float" ]; then + _config_cmake="-DENABLE_FLOAT=ON" + elif [ "${feature}" = "long-double" ]; then + _config_cmake="-DENABLE_LONG_DOUBLE=ON" + fi + TERMUX_PKG_EXTRA_CONFIGURE_ARGS="$_config_cmake" TERMUX_PKG_FORCE_CMAKE=true termux_step_configure + # ./configure TERMUX_PKG_EXTRA_CONFIGURE_ARGS="$COMMON_ARGS --enable-$feature" rm -Rf $TERMUX_PKG_TMPDIR/config-scripts termux_step_configure make -j $TERMUX_PKG_MAKE_PROCESSES install done + sed -e 's|\(IMPORTED_LOCATION_NONE\).*|\1 "'$TERMUX_PREFIX'/lib/libfftw3.so"|' -i ./FFTW3LibraryDepends.cmake + install -vDm 644 ./FFTW3LibraryDepends.cmake -t "$TERMUX_PREFIX/lib/cmake/fftw3/" } diff --git a/packages/immer/build.sh b/packages/immer/build.sh new file mode 100644 index 00000000000000..7eb081d6c6fb3c --- /dev/null +++ b/packages/immer/build.sh @@ -0,0 +1,10 @@ +TERMUX_PKG_HOMEPAGE='https://sinusoid.es/immer' +TERMUX_PKG_DESCRIPTION='Postmodern immutable and persistent data structures for C++' +TERMUX_PKG_LICENSE="BSL-1.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=0.8.1 +TERMUX_PKG_SRCURL=https://github.com/arximboldi/immer/archive/v${TERMUX_PKG_VERSION}/immer-${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=de8411c84830864604bb685dc8f2e3c0dbdc40b95b2f6726092f7dcc85e75209 +TERMUX_PKG_DEPENDS="catch2, cmake" +TERMUX_PKG_BUILD_DEPENDS="catch2, cmake" +TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/lager/build.sh b/packages/lager/build.sh new file mode 100644 index 00000000000000..54072fb54c3070 --- /dev/null +++ b/packages/lager/build.sh @@ -0,0 +1,13 @@ +TERMUX_PKG_HOMEPAGE='https://sinusoid.es/lager' +TERMUX_PKG_DESCRIPTION='C++ library for value-oriented design using the unidirectional data-flow architecture' +TERMUX_PKG_LICENSE="BSL-1.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=0.1.1 +TERMUX_PKG_SRCURL=https://github.com/arximboldi/lager/archive/v${TERMUX_PKG_VERSION}/lager-${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=9e4743c3fe2c95c1653c3fd088a2200108f09d758725697831852dc91d15d174 +TERMUX_PKG_DEPENDS="cmake" +TERMUX_PKG_AUTO_UPDATE=true +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +-Dlager_BUILD_EXAMPLES=OFF +-Dlager_BUILD_TESTS=OFF +" diff --git a/packages/libunibreak/build.sh b/packages/libunibreak/build.sh new file mode 100644 index 00000000000000..816cabe0a0b18b --- /dev/null +++ b/packages/libunibreak/build.sh @@ -0,0 +1,12 @@ +TERMUX_PKG_HOMEPAGE="https://github.com/adah1972/libunibreak/" +TERMUX_PKG_DESCRIPTION="An implementation of the line breaking algorithm as described in Unicode 5.2.0 Standard Annex 14, Revision 24" +TERMUX_PKG_LICENSE="ZLIB, Libpng" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=6.1 +TERMUX_PKG_SRCURL="https://github.com/adah1972/libunibreak/archive/libunibreak_${TERMUX_PKG_VERSION//./_}.tar.gz" +TERMUX_PKG_SHA256=890674996168ef5ba143d80d49ab8b61594a4eb70198dcac76caf6e1bd264a41 +TERMUX_PKG_AUTO_UPDATE=true + +termux_step_pre_configure() { + NOCONFIGURE=1 ./autogen.sh +} diff --git a/packages/xsimd/build.sh b/packages/xsimd/build.sh new file mode 100644 index 00000000000000..1ff551c9e0ef6b --- /dev/null +++ b/packages/xsimd/build.sh @@ -0,0 +1,10 @@ +TERMUX_PKG_HOMEPAGE='https://github.com/QuantStack/xsimd' +TERMUX_PKG_DESCRIPTION='QuantStack tools library - Multi-dimensional arrays with broadcasting and lazy computing' +TERMUX_PKG_LICENSE="BSD" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=13.0.0 +TERMUX_PKG_SRCURL=git+https://github.com/QuantStack/xsimd +TERMUX_PKG_GIT_BRANCH="$TERMUX_PKG_VERSION" +TERMUX_PKG_UPDATE_TAG_TYPE="newest-tag" +TERMUX_PKG_BUILD_DEPENDS="googletest" +TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/zug/build.sh b/packages/zug/build.sh new file mode 100644 index 00000000000000..2d90b5d04efe13 --- /dev/null +++ b/packages/zug/build.sh @@ -0,0 +1,10 @@ +TERMUX_PKG_HOMEPAGE='https://sinusoid.es/zug/' +TERMUX_PKG_DESCRIPTION='Transducers for C++' +TERMUX_PKG_LICENSE="BSL-1.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=0.1.1 +TERMUX_PKG_SRCURL=https://github.com/arximboldi/zug/archive/v${TERMUX_PKG_VERSION}/zug-${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=1b9c8f962e40baa6f0c6af35f957444850063d550078a3ebd0227727b8ef193c +TERMUX_PKG_DEPENDS="catch2, cmake" +TERMUX_PKG_BUILD_DEPENDS="catch2" +TERMUX_PKG_AUTO_UPDATE=true diff --git a/x11-packages/krita/build.sh b/x11-packages/krita/build.sh new file mode 100644 index 00000000000000..1d9df5d2eecf06 --- /dev/null +++ b/x11-packages/krita/build.sh @@ -0,0 +1,34 @@ +TERMUX_PKG_HOMEPAGE='https://krita.org' +TERMUX_PKG_DESCRIPTION='Edit and paint images' +TERMUX_PKG_LICENSE="GPL-3.0" +TERMUX_PKG_MAINTAINER="@termux" +# TERMUX_PKG_VERSION=5.2.9 +# TERMUX_PKG_SRCURL="https://download.kde.org/stable/krita/$TERMUX_PKG_VERSION/krita-$TERMUX_PKG_VERSION.tar.gz" +# TERMUX_PKG_SHA256=08c9af556debf26931bd6506792e391b4b7a3334a5a20f516b324904334acba6 +TERMUX_PKG_VERSION=6.0.0-prealpha +TERMUX_PKG_SRCURL=git+https://github.com/KDE/krita +TERMUX_PKG_GIT_BRANCH=master +TERMUX_PKG_DEPENDS="exiv2, ffmpeg, fftw, fontconfig, freetype, fribidi, giflib, gsl, harfbuzz, imath, kf6-kcompletion, kf6-kconfig, kf6-kcoreaddons, kf6-kguiaddons, kf6-ki18n, kf6-kitemmodels, kf6-kitemviews, kf6-kwidgetsaddons, kf6-kwindowsystem, kf6-kcolorscheme, littlecms, libjpeg-turbo, libpng, libtiff, libunibreak, libwebp, libx11, mlt, opencolorio, openexr, openjpeg, qt6-qt5compat, qt6-qtbase, qt6-qtsvg, quazip-qt6, zlib" +TERMUX_PKG_BUILD_DEPENDS="boost, eigen, extra-cmake-modules, libheif, libjxl, libmypaint, poppler-qt6, qt6-qttools, immer, zug, lager, xsimd, libjpeg-turbo-static" +TERMUX_PKG_PYTHON_COMMON_DEPS="sip" +TERMUX_PKG_RECOMMENDS="libheif, libjxl, libmypaint, poppler-qt6" +# REMOVED due to using Qt5: kseexpr +# IGNORE these packages first: kimageformats, krita-plugin-gmic, pyqt6 +# REMOVED from RECOMMENDS: kcrash +# REMOVED from RECOMMENDS: kimageformats, krita-plugin-gmic +# REMOVED from BUILD_DEPS: kdoctools5, pyqt5 +TERMUX_PKG_AUTO_UPDATE=true +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +-DCMAKE_SYSTEM_NAME=Linux +-DBUILD_TESTING=OFF +-DBUILD_WITH_QT6=ON +-DTIFF_CAN_WRITE_PSD_TAGS=OFF +" +# -DBUILD_KRITA_QT_DESIGNER_PLUGINS=ON + +# needed only when qt5-qtbase is also installed in the system and causing -I$TERMUX_PREFIX/include overriding -isystem $TERMUX_PREFIX/include/qt6. +termux_step_pre_configure() { + CFLAGS="-I$TERMUX_PREFIX/include/qt6 -I$TERMUX_PREFIX/include/qt6/QtCore5Compat $CFLAGS" + CPPFLAGS="-I$TERMUX_PREFIX/include/qt6 -I$TERMUX_PREFIX/include/qt6/QtCore5Compat $CPPFLAGS" + CXXFLAGS="-I$TERMUX_PREFIX/include/qt6 -I$TERMUX_PREFIX/include/qt6/QtCore5Compat $CXXFLAGS" +} diff --git a/x11-packages/libkdcraw/build.sh b/x11-packages/libkdcraw/build.sh new file mode 100644 index 00000000000000..99b9d9ae638cba --- /dev/null +++ b/x11-packages/libkdcraw/build.sh @@ -0,0 +1,13 @@ +TERMUX_PKG_HOMEPAGE='https://www.kde.org/' +TERMUX_PKG_DESCRIPTION='A C++ interface used to decode RAW picture' +TERMUX_PKG_LICENSE="GPL-2.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=24.08.1 +TERMUX_PKG_SRCURL=https://download.kde.org/stable/release-service/${TERMUX_PKG_VERSION}/src/libkdcraw-${TERMUX_PKG_VERSION}.tar.xz +TERMUX_PKG_SHA256=dceda2ebbf7479ba232e9108d1cf58d613df0fa76c990106ee59dbba8c9c32f6 +TERMUX_PKG_DEPENDS="libraw" +TERMUX_PKG_BUILD_DEPENDS="extra-cmake-modules, qt6-qt5compat, qt6-qtbase" +TERMUX_PKG_AUTO_UPDATE=true +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +-DQT_MAJOR_VERSION=6 +" diff --git a/x11-packages/poppler-qt6/build.sh b/x11-packages/poppler-qt6/build.sh new file mode 100644 index 00000000000000..221b3968a0aaa1 --- /dev/null +++ b/x11-packages/poppler-qt6/build.sh @@ -0,0 +1,51 @@ +TERMUX_PKG_HOMEPAGE=https://poppler.freedesktop.org/ +TERMUX_PKG_DESCRIPTION="Poppler Qt wrapper" +TERMUX_PKG_LICENSE="GPL-2.0" +TERMUX_PKG_MAINTAINER="@termux" +# Please align the version with `poppler` package. +TERMUX_PKG_VERSION="24.05.0" +# Do not forget to bump revision of reverse dependencies and rebuild them +# when SOVERSION is changed. +_POPPLER_SOVERSION=137 +TERMUX_PKG_SRCURL=https://poppler.freedesktop.org/poppler-${TERMUX_PKG_VERSION}.tar.xz +TERMUX_PKG_SHA256=d8c5eb30b50285ad9f0af8c6335cc2d3b9597fca475cbc2598a5479fa379f779 +# The package must be updated at the same time as poppler, auto updater script does not support that. +TERMUX_PKG_AUTO_UPDATE=false +TERMUX_PKG_DEPENDS="freetype, libc++, littlecms, poppler (>= ${TERMUX_PKG_VERSION}), qt6-qtbase" +TERMUX_PKG_BUILD_DEPENDS="boost, boost-headers" +#texlive needs the xpdf headers +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +-DENABLE_GLIB=ON +-DENABLE_GOBJECT_INTROSPECTION=OFF +-DENABLE_UNSTABLE_API_ABI_HEADERS=ON +-DENABLE_QT5=OFF +-DENABLE_QT6=ON +-DFONT_CONFIGURATION=fontconfig +" + +termux_step_pre_configure() { + # Certain packages are not safe to build on device because their + # build.sh script deletes specific files in $TERMUX_PREFIX. + if $TERMUX_ON_DEVICE_BUILD; then + termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." + fi + + if ! test "${_POPPLER_SOVERSION}"; then + termux_error_exit "Please set _POPPLER_SOVERSION variable." + fi + local sover_main=$(. $TERMUX_SCRIPTDIR/packages/poppler/build.sh; echo $_POPPLER_SOVERSION) + if [ "${sover_main}" != "${_POPPLER_SOVERSION}" ]; then + termux_error_exit "SOVERSION mismatch with \"poppler\" package." + fi + local sover_cmake=$(sed -En 's/^set\(POPPLER_SOVERSION_NUMBER "([0-9]+)"\)$/\1/p' CMakeLists.txt) + if [ "${sover_cmake}" != "${_POPPLER_SOVERSION}" ]; then + termux_error_exit "SOVERSION guard check failed (CMakeLists.txt: \"${sover_cmake}\")." + fi + + CPPFLAGS+=" -DCMS_NO_REGISTER_KEYWORD" +} + +termux_step_make_install() { + cmake --build "${TERMUX_PKG_BUILDDIR}" --target qt6/install + install -Dm600 -t "${TERMUX_PREFIX}"/lib/pkgconfig "${TERMUX_PKG_BUILDDIR}"/poppler-qt6.pc +} diff --git a/x11-packages/poppler-qt6/force-termux-include-dirs.patch b/x11-packages/poppler-qt6/force-termux-include-dirs.patch new file mode 100644 index 00000000000000..7f850fbb70d53b --- /dev/null +++ b/x11-packages/poppler-qt6/force-termux-include-dirs.patch @@ -0,0 +1,12 @@ +--- ./CMakeLists.txt.orig 2020-03-01 20:52:52.000000000 +0100 ++++ ./CMakeLists.txt 2020-03-20 07:09:18.713276868 +0100 +@@ -316,6 +316,9 @@ + set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS} ${CMAKE_CXX_FLAGS}") + endif() + ++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I@TERMUX_PREFIX@/include") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I@TERMUX_PREFIX@/include") ++ + include(ConfigureChecks.cmake) + configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) + configure_file(poppler/poppler-config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/poppler/poppler-config.h) diff --git a/x11-packages/poppler-qt6/gstrtod.cc.patch b/x11-packages/poppler-qt6/gstrtod.cc.patch new file mode 100644 index 00000000000000..c29f55e5e9ae93 --- /dev/null +++ b/x11-packages/poppler-qt6/gstrtod.cc.patch @@ -0,0 +1,26 @@ +diff -u -r ../poppler-0.26.2/goo/gstrtod.cc ./goo/gstrtod.cc +--- ../poppler-0.26.2/goo/gstrtod.cc 2014-04-26 17:37:22.000000000 +0200 ++++ ./goo/gstrtod.cc 2014-06-26 08:44:42.000000000 +0200 +@@ -41,7 +41,9 @@ + { + char *fail_pos; + double val; ++#ifndef __ANDROID__ + struct lconv *locale_data; ++#endif + const char *decimal_point; + int decimal_point_len; + const char *p, *decimal_point_pos; +@@ -50,8 +52,12 @@ + + fail_pos = nullptr; + ++#ifdef __ANDROID__ ++ decimal_point = "."; ++#else + locale_data = localeconv(); + decimal_point = locale_data->decimal_point; ++#endif + decimal_point_len = strlen(decimal_point); + + decimal_point_pos = nullptr; diff --git a/x11-packages/quazip-qt6/build.sh b/x11-packages/quazip-qt6/build.sh new file mode 100644 index 00000000000000..416c272cb42ecc --- /dev/null +++ b/x11-packages/quazip-qt6/build.sh @@ -0,0 +1,17 @@ +TERMUX_PKG_HOMEPAGE=https://stachenov.github.io/quazip/ +TERMUX_PKG_DESCRIPTION="Qt/C++ wrapper over minizip library" +TERMUX_PKG_LICENSE="LGPL-2.1" +TERMUX_PKG_LICENSE_FILE="COPYING" +TERMUX_PKG_MAINTAINER="@Yisus7u7" +TERMUX_PKG_VERSION=1.4 +TERMUX_PKG_SRCURL=https://github.com/stachenov/quazip/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=79633fd3a18e2d11a7d5c40c4c79c1786ba0c74b59ad752e8429746fe1781dd6 +TERMUX_PKG_DEPENDS="libbz2, libc++, qt6-qt5compat, qt6-qtbase, zlib" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +-DQUAZIP_QT_MAJOR_VERSION=6 +" + +# needed only when qt5-qtbase is also installed in the system and causing -I$TERMUX_PREFIX/include overriding -isystem $TERMUX_PREFIX/include/qt6. +termux_step_pre_configure() { + export CXXFLAGS+=" -I$TERMUX_PREFIX/include/qt6 -I$TERMUX_PREFIX/include/qt6/QtCore5Compat" +}