diff options
author | Bart Ribbers <bribbers@disroot.org> | 2021-04-17 19:33:06 +0200 |
---|---|---|
committer | Bart Ribbers <bribbers@disroot.org> | 2021-04-17 19:38:25 +0200 |
commit | 99d07abbb1c92d2787c48d1d3ec49140fe77899b (patch) | |
tree | e4715438384d4e4b745713b7e28fc0b0c6f52017 | |
parent | 2f850044c75400c738801147fae26c291c8eac34 (diff) |
testing/mapplauncherd-qt: new aport
-rw-r--r-- | testing/mapplauncherd-qt/APKBUILD | 30 | ||||
-rw-r--r-- | testing/mapplauncherd-qt/fix-cmake.patch | 212 | ||||
-rw-r--r-- | testing/mapplauncherd-qt/fix-musl-incompability.patch | 62 | ||||
-rw-r--r-- | testing/mapplauncherd-qt/pkgconfig.patch | 70 |
4 files changed, 374 insertions, 0 deletions
diff --git a/testing/mapplauncherd-qt/APKBUILD b/testing/mapplauncherd-qt/APKBUILD new file mode 100644 index 00000000000..11bb635da9d --- /dev/null +++ b/testing/mapplauncherd-qt/APKBUILD @@ -0,0 +1,30 @@ +# Contributor: Bart Ribbers <bribbers@disroot.org> +# Maintainer: Bart Ribbers <bribbers@disroot.org> +pkgname=mapplauncherd-qt +pkgver=1.1.17 +pkgrel=0 +pkgdesc="Application launch boosters for Qt5" +url="https://git.sailfishos.org/mer-core/mapplauncherd-qt" +arch="all" +license="LGPL-2.1-only" +depends_dev=" + libxml2-dev + mapplauncherd-dev + qt5-qtbase-dev + qt5-qtdeclarative-dev + " +makedepends="$depends_dev" +subpackages="$pkgname-dev" +source="https://git.sailfishos.org/mer-core/mapplauncherd-qt/-/archive/$pkgver/mapplauncherd-qt-$pkgver.tar.gz" +options="!check" # No tests + +build() { + qmake-qt5 \ + PREFIX=/usr + make +} + +package() { + INSTALL_ROOT="$pkgdir" make install +} +sha512sums="da9be4f6c121927627ef2a18e07c82a5973bc3a8086e49955677a44c13673a78eef441b159b7d6c43003564fa12d1f8b3e93ed2917baf3a1e0dd36c37da950fe mapplauncherd-qt-1.1.17.tar.gz" diff --git a/testing/mapplauncherd-qt/fix-cmake.patch b/testing/mapplauncherd-qt/fix-cmake.patch new file mode 100644 index 00000000000..6e9e261db76 --- /dev/null +++ b/testing/mapplauncherd-qt/fix-cmake.patch @@ -0,0 +1,212 @@ +From 3d8837e75e9ee7cd1c895814ad5a83cb206fb3c4 Mon Sep 17 00:00:00 2001 +From: Bart Ribbers <bribbers@disroot.org> +Date: Tue, 31 Mar 2020 12:52:50 +0200 +Subject: [PATCH 1/4] Fix linking to systemd on non-glibc systems + +Yes, systemd doesn't even run on non-glibc systems, but elogind does and +this way it links to both systemd and elogind +--- + src/launcherlib/CMakeLists.txt | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/src/launcherlib/CMakeLists.txt b/src/launcherlib/CMakeLists.txt +index 50f1efe..e8c0458 100644 +--- a/src/launcherlib/CMakeLists.txt ++++ b/src/launcherlib/CMakeLists.txt +@@ -2,7 +2,12 @@ include(GNUInstallDirs) + + set(COMMON ${CMAKE_HOME_DIRECTORY}/src/common) + +-include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${COMMON}) ++# Find systemd ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(SYSTEMD "libsystemd" REQUIRED) ++ ++# Set include dirs ++include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${SYSTEMD_INCLUDE_DIRS} ${COMMON}) + + # Hide all symbols except the ones explicitly exported in the code (like main()) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") +@@ -14,14 +19,13 @@ set(SRC appdata.cpp booster.cpp connection.cpp daemon.cpp logger.cpp + set(HEADERS appdata.h booster.h connection.h daemon.h logger.h launcherlib.h + singleinstance.h socketmanager.h ${COMMON}/protocol.h) + +-# Set libraries to be linked. Shared libraries to be preloaded are not linked in anymore, +-# but dlopen():ed and listed in src/launcher/preload.h instead. +-link_libraries(${LIBDL} "-L/lib -lsystemd") +- + # Set executable + add_library(applauncherd MODULE ${SRC} ${MOC_SRC}) + set_target_properties(applauncherd PROPERTIES VERSION 0.1 SOVERSION 0) + ++target_link_libraries(applauncherd ${SYSTEMD_LIBRARIES}) ++ ++ + # Add install rule + install(TARGETS applauncherd DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) + install(FILES ${HEADERS} DESTINATION /usr/include/applauncherd +-- +2.23.0 + + +From 2d01ee5e9a53adf77b4dc9e5ca27ea407340df6b Mon Sep 17 00:00:00 2001 +From: Bart Ribbers <bribbers@disroot.org> +Date: Tue, 31 Mar 2020 12:53:44 +0200 +Subject: [PATCH 2/4] Fix the install rules for executables + +--- + src/invoker/CMakeLists.txt | 2 +- + src/single-instance/CMakeLists.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/invoker/CMakeLists.txt b/src/invoker/CMakeLists.txt +index 6531ca0..3a35a6b 100644 +--- a/src/invoker/CMakeLists.txt ++++ b/src/invoker/CMakeLists.txt +@@ -19,6 +19,6 @@ add_executable(invoker ${SRC}) + target_link_libraries(invoker ${DBUS_LDFLAGS}) + + # Add install rule +-install(PROGRAMS invoker DESTINATION /usr/bin/) ++install(TARGETS invoker DESTINATION /usr/bin/) + + +diff --git a/src/single-instance/CMakeLists.txt b/src/single-instance/CMakeLists.txt +index cc04ba2..acc1439 100644 +--- a/src/single-instance/CMakeLists.txt ++++ b/src/single-instance/CMakeLists.txt +@@ -26,4 +26,4 @@ link_libraries(${DBUS_LDFLAGS}) + add_executable(single-instance ${SRC}) + + # Add install rule +-install(PROGRAMS single-instance DESTINATION /usr/bin/) ++install(TARGETS single-instance DESTINATION /usr/bin/) +-- +2.23.0 + + +From 000443e01e881aa26fc0f4bb4f3a337aacbe20ce Mon Sep 17 00:00:00 2001 +From: Bart Ribbers <bribbers@disroot.org> +Date: Tue, 31 Mar 2020 13:50:00 +0200 +Subject: [PATCH 3/4] Make CMake respect current source dir when generating + docs + +--- + CMakeLists.txt | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0c5e5b4..1a91369 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -47,7 +47,10 @@ add_subdirectory(src) + # Target for documentation (make doc) + find_program(Doxygen NAMES doxygen) + if (EXISTS ${Doxygen}) +- add_custom_target(doc COMMAND cd doc && ${Doxygen} doxygen-impldoc.conf COMMAND cd doc && ${Doxygen} doxygen-userdoc.conf COMMAND cd doc && ${Doxygen} doxygen-mdeclarativecache.conf) ++ add_custom_target(doc ++ COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/doc && ${Doxygen} doxygen-impldoc.conf ++ COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/doc && ${Doxygen} doxygen-userdoc.conf ++ COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/doc && ${Doxygen} doxygen-mdeclarativecache.conf) + else (EXISTS ${Doxygen}) + message(STATUS "Doxygen not found: you're not able to build documentation.") + endif (EXISTS ${Doxygen}) +-- +2.23.0 + + +From 0e30366e48f9c26ce5d5de9e883bef9d5f0e8946 Mon Sep 17 00:00:00 2001 +From: Bart Ribbers <bribbers@disroot.org> +Date: Fri, 13 Nov 2020 15:16:22 +0100 +Subject: [PATCH 4/4] Respect GNUInstallDirs + +This allows packagers to set the proper directories to install stuff +too using CMAKE_INSTALL_PREFIX, CMAKE_INSTALL_LIBDIR, etc. + +Also make installing systemd unit files optional, for systemd without +systemd, but enable them by default +--- + CMakeLists.txt | 11 ++++++++--- + src/booster-generic/CMakeLists.txt | 7 +++++-- + src/invoker/CMakeLists.txt | 4 +--- + src/launcherlib/CMakeLists.txt | 2 +- + src/single-instance/CMakeLists.txt | 2 +- + 5 files changed, 16 insertions(+), 10 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1a91369..05bb06b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,6 +3,11 @@ project(Applauncherd) + cmake_minimum_required(VERSION 2.6) + cmake_policy(VERSION 2.6) + ++include(FeatureSummary) ++include(GNUInstallDirs) ++ ++option(INSTALL_SYSTEMD_UNITS "Install systemd unit files" ON) ++ + # + # NOTE: For verbose build use VERBOSE=1 + # +@@ -56,6 +61,6 @@ else (EXISTS ${Doxygen}) + endif (EXISTS ${Doxygen}) + + # Install html documentation +-install(DIRECTORY doc/implementation-documentation DESTINATION /usr/share/doc/applauncherd OPTIONAL) +-install(DIRECTORY doc/user-documentation DESTINATION /usr/share/doc/applauncherd OPTIONAL) +-install(DIRECTORY doc/mdeclarativecache-documentation DESTINATION /usr/share/doc/applauncherd OPTIONAL) ++install(DIRECTORY doc/implementation-documentation DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR} OPTIONAL) ++install(DIRECTORY doc/user-documentation DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR} OPTIONAL) ++install(DIRECTORY doc/mdeclarativecache-documentation DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR} OPTIONAL) +diff --git a/src/booster-generic/CMakeLists.txt b/src/booster-generic/CMakeLists.txt +index 2b0672b..71be130 100644 +--- a/src/booster-generic/CMakeLists.txt ++++ b/src/booster-generic/CMakeLists.txt +@@ -17,5 +17,8 @@ add_executable(booster-generic ${SRC} ${MOC_SRC}) + add_dependencies(booster-generic applauncherd) + + # Add install rule +-install(TARGETS booster-generic DESTINATION /usr/libexec/mapplauncherd/) +-install(FILES booster-generic.service DESTINATION /usr/lib/systemd/user/) ++install(TARGETS booster-generic DESTINATION ${CMAKE_INSTALL_FULL_LIBEXECDIR}/mapplauncherd/) ++ ++if(INSTALL_SYSTEMD_UNITS) ++ install(FILES booster-generic.service DESTINATION /usr/lib/systemd/user/) ++endif() +diff --git a/src/invoker/CMakeLists.txt b/src/invoker/CMakeLists.txt +index 3a35a6b..78be60c 100644 +--- a/src/invoker/CMakeLists.txt ++++ b/src/invoker/CMakeLists.txt +@@ -19,6 +19,4 @@ add_executable(invoker ${SRC}) + target_link_libraries(invoker ${DBUS_LDFLAGS}) + + # Add install rule +-install(TARGETS invoker DESTINATION /usr/bin/) +- +- ++install(TARGETS invoker DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) +diff --git a/src/launcherlib/CMakeLists.txt b/src/launcherlib/CMakeLists.txt +index e8c0458..a704668 100644 +--- a/src/launcherlib/CMakeLists.txt ++++ b/src/launcherlib/CMakeLists.txt +@@ -28,5 +28,5 @@ target_link_libraries(applauncherd ${SYSTEMD_LIBRARIES}) + + # Add install rule + install(TARGETS applauncherd DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) +-install(FILES ${HEADERS} DESTINATION /usr/include/applauncherd ++install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/applauncherd + PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) +diff --git a/src/single-instance/CMakeLists.txt b/src/single-instance/CMakeLists.txt +index acc1439..fd9be9c 100644 +--- a/src/single-instance/CMakeLists.txt ++++ b/src/single-instance/CMakeLists.txt +@@ -26,4 +26,4 @@ link_libraries(${DBUS_LDFLAGS}) + add_executable(single-instance ${SRC}) + + # Add install rule +-install(TARGETS single-instance DESTINATION /usr/bin/) ++install(TARGETS single-instance DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) +-- +2.23.0 + diff --git a/testing/mapplauncherd-qt/fix-musl-incompability.patch b/testing/mapplauncherd-qt/fix-musl-incompability.patch new file mode 100644 index 00000000000..0b1c64c1bc6 --- /dev/null +++ b/testing/mapplauncherd-qt/fix-musl-incompability.patch @@ -0,0 +1,62 @@ +diff --git a/src/invoker/invoker.c b/src/invoker/invoker.c +index ba81f7b..1a806d9 100644 +--- a/src/invoker/invoker.c ++++ b/src/invoker/invoker.c +@@ -26,7 +26,6 @@ + #include <string.h> + #include <signal.h> + #include <sys/socket.h> +-#include <bits/socket.h> + #include <sys/un.h> + #include <sys/uio.h> + #include <sys/time.h> +diff --git a/src/launcherlib/booster.cpp b/src/launcherlib/booster.cpp +index 235f2a0..3495503 100644 +--- a/src/launcherlib/booster.cpp ++++ b/src/launcherlib/booster.cpp +@@ -46,6 +46,7 @@ + #include <sys/types.h> + #include <sys/socket.h> + #include <grp.h> ++#include <libgen.h> + + #include "coverage.h" + +@@ -327,9 +328,12 @@ void Booster::renameProcess(int parentArgc, char** parentArgv, + } + + // Set the process name using prctl, 'killall' and 'top' use it +- if ( prctl(PR_SET_NAME, basename(sourceArgv[0])) == -1 ) ++ char* processName = strdup(sourceArgv[0]); ++ if ( prctl(PR_SET_NAME, basename(processName)) == -1 ) + Logger::logError("Booster: on set new process name: %s ", strerror(errno)); + ++ std::free(processName); ++ + setenv("_", sourceArgv[0], true); + } + } +@@ -583,7 +587,7 @@ void* Booster::loadMain() + else + dlopenFlags |= RTLD_LOCAL; + +-#if (PLATFORM_ID == Linux) ++#if (PLATFORM_ID == Linux) && defined(__GLIBC__) + if (m_appData->dlopenDeep()) + dlopenFlags |= RTLD_DEEPBIND; + #endif +diff --git a/src/launcherlib/connection.cpp b/src/launcherlib/connection.cpp +index b5dd89d..71bd405 100644 +--- a/src/launcherlib/connection.cpp ++++ b/src/launcherlib/connection.cpp +@@ -281,8 +281,8 @@ bool Connection::receiveArgs() + { + // Get argc + recvMsg(&m_argc); +- const uint32_t ARG_MAX = 1024; +- if (m_argc > 0 && m_argc < ARG_MAX) ++ const uint32_t argMax = 1024; ++ if (m_argc > 0 && m_argc < argMax) + { + // Reserve memory for argv + m_argv = new const char * [m_argc]; diff --git a/testing/mapplauncherd-qt/pkgconfig.patch b/testing/mapplauncherd-qt/pkgconfig.patch new file mode 100644 index 00000000000..41a2917951f --- /dev/null +++ b/testing/mapplauncherd-qt/pkgconfig.patch @@ -0,0 +1,70 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 05bb06b..bbaff7b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,8 @@ +-project(Applauncherd) ++cmake_minimum_required(VERSION 3.6.0) ++cmake_policy(VERSION 3.6.0) + +-cmake_minimum_required(VERSION 2.6) +-cmake_policy(VERSION 2.6) ++project(Applauncherd ++ VERSION 4.1.40) + + include(FeatureSummary) + include(GNUInstallDirs) +diff --git a/src/launcherlib/CMakeLists.txt b/src/launcherlib/CMakeLists.txt +index a704668..0fb3665 100644 +--- a/src/launcherlib/CMakeLists.txt ++++ b/src/launcherlib/CMakeLists.txt +@@ -1,5 +1,3 @@ +-include(GNUInstallDirs) +- + set(COMMON ${CMAKE_HOME_DIRECTORY}/src/common) + + # Find systemd +@@ -21,12 +19,23 @@ set(HEADERS appdata.h booster.h connection.h daemon.h logger.h launcherlib.h + + # Set executable + add_library(applauncherd MODULE ${SRC} ${MOC_SRC}) +-set_target_properties(applauncherd PROPERTIES VERSION 0.1 SOVERSION 0) +- + target_link_libraries(applauncherd ${SYSTEMD_LIBRARIES}) + ++set_target_properties(applauncherd PROPERTIES ++ VERSION ${PROJECT_VERSION} ++ SOVERSION ${PROJECT_VERSION_MAJOR}) ++ ++# Configure and install the pkgconfig file ++configure_file(applauncherd.pc.in ++ ${CMAKE_CURRENT_BINARY_DIR}/applauncherd.pc ++ @ONLY) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/applauncherd.pc ++ DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig) + + # Add install rule +-install(TARGETS applauncherd DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) +-install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/applauncherd +- PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) ++install(TARGETS applauncherd ++ LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) ++install(FILES ${HEADERS} ++ DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/applauncherd ++ COMPONENT Devel ++ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) +diff --git a/src/launcherlib/applauncherd.pc.in b/src/launcherlib/applauncherd.pc.in +new file mode 100644 +index 0000000..2a8edad +--- /dev/null ++++ b/src/launcherlib/applauncherd.pc.in +@@ -0,0 +1,9 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++exec_prefix=${prefix} ++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ ++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/applauncherd ++ ++Name: applauncherd ++Version: @PROJECT_VERSION@ ++Libs: -lapplauncherd ++Cflags: -I${includedir} |