From 2d4abfe2b7d1155ebb2945d0ad3f76b75690f330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20F=C3=B6rster?= Date: Thu, 20 Sep 2018 12:17:02 +0200 Subject: [PATCH] [net-im/spectrum] update from PR --- .../spectrum/files/remove_debug_cflags.patch | 13 ++ net-im/spectrum/files/spectrum2.initd | 29 +++-- net-im/spectrum/files/systemd/spectrum2.conf | 4 - .../spectrum/files/use_qt5_libcommuni.patch | 55 ++++++++ net-im/spectrum/spectrum-9999.ebuild | 122 ++++++++++-------- 5 files changed, 153 insertions(+), 70 deletions(-) create mode 100644 net-im/spectrum/files/remove_debug_cflags.patch delete mode 100644 net-im/spectrum/files/systemd/spectrum2.conf create mode 100644 net-im/spectrum/files/use_qt5_libcommuni.patch diff --git a/net-im/spectrum/files/remove_debug_cflags.patch b/net-im/spectrum/files/remove_debug_cflags.patch new file mode 100644 index 0000000..86b0200 --- /dev/null +++ b/net-im/spectrum/files/remove_debug_cflags.patch @@ -0,0 +1,13 @@ +--- a/CMakeLists.txt 2018-04-27 12:27:02.000000000 +0200 ++++ b/CMakeLists.txt 2018-04-29 18:17:42.157170288 +0200 +@@ -399,10 +399,6 @@ + endif() + + if(CMAKE_BUILD_TYPE MATCHES Debug) +- if (CMAKE_COMPILER_IS_GNUCXX) +- ADD_DEFINITIONS(-O0) +- ADD_DEFINITIONS(-ggdb) +- endif() + ADD_DEFINITIONS(-DDEBUG) + message("Debug : yes") + else(CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/net-im/spectrum/files/spectrum2.initd b/net-im/spectrum/files/spectrum2.initd index 5c2e2b1..d311d92 100644 --- a/net-im/spectrum/files/spectrum2.initd +++ b/net-im/spectrum/files/spectrum2.initd @@ -1,24 +1,35 @@ #!/sbin/openrc-run -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -LOGFILE=/var/log/spectrum2/std.log +SPECTRUM2_GROUP="spectrum" +SPECTRUM2_MANAGER="/usr/bin/spectrum2_manager" +SPECTRUM2_USER="spectrum" depend() { need net } start() { - [ -d /var/run/spectrum2 ] || mkdir /var/run/spectrum2 && chown jabber:jabber /var/run/spectrum2 && chmod 750 /var/run/spectrum2 - ebegin "Starting ${PROTOCOL} Spectrum Transport" - start-stop-daemon --start --user jabber --group jabber \ - --exec /usr/bin/spectrum2_manager start &> $LOGFILE + ebegin "Starting Spectrum2 Transport" + start-stop-daemon --start --group ${SPECTRUM2_GROUP} --user ${SPECTRUM2_USER} \ + --exec ${SPECTRUM2_MANAGER} start + eend $? +} + +start_pre() { + checkpath -d -o ${SPECTRUM2_USER}:${SPECTRUM2_GROUP} -q /run/spectrum2 +} + +status() { + ebegin "Status Spectrum2 Transport" + ${SPECTRUM2_MANAGER} status eend $? } stop() { - ebegin "Stopping ${PROTOCOL} Spectrum Transport" - start-stop-daemon --user jabber --group jabber \ - --exec /usr/bin/spectrum2_manager stop 1>>$LOGFILE 2>&1 + ebegin "Stopping Spectrum2 Transport" + start-stop-daemon --start --group ${SPECTRUM2_GROUP} --user ${SPECTRUM2_USER} \ + --exec ${SPECTRUM2_MANAGER} stop eend $? } diff --git a/net-im/spectrum/files/systemd/spectrum2.conf b/net-im/spectrum/files/systemd/spectrum2.conf deleted file mode 100644 index 3644eb8..0000000 --- a/net-im/spectrum/files/systemd/spectrum2.conf +++ /dev/null @@ -1,4 +0,0 @@ -# systemd tmpfile settings for spectrum2 -# See tmpfiles.d(5) for details - -d /var/run/spectrum2 0750 jabber jabber - diff --git a/net-im/spectrum/files/use_qt5_libcommuni.patch b/net-im/spectrum/files/use_qt5_libcommuni.patch new file mode 100644 index 0000000..bcf407c --- /dev/null +++ b/net-im/spectrum/files/use_qt5_libcommuni.patch @@ -0,0 +1,55 @@ +--- a/CMakeLists.txt 2018-02-07 11:57:43.000000000 +0100 ++++ b/CMakeLists.txt 2018-04-04 22:12:33.000000000 +0200 +@@ -200,8 +200,7 @@ + set(Communi_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") + find_package(Communi) + +- INCLUDE(FindQt4) +- FIND_PACKAGE(Qt4 COMPONENTS QtCore QtNetwork) ++ FIND_PACKAGE(Qt5 COMPONENTS Core Network) + # ADD_DEFINITIONS(${SWIFTEN_CFLAGS}) + ADD_DEFINITIONS(-DSUPPORT_LEGACY_CAPS) + # ADD_DEFINITIONS(-DBOOST_FILESYSTEM_VERSION=2) +@@ -341,7 +340,6 @@ + message("IRC plugin : yes") + include_directories(${QT_QTNETWORK_INCLUDE_DIR}) + include_directories(${IRC_INCLUDE_DIR}) +- include(${QT_USE_FILE}) + else() + if(ENABLE_IRC) + message("IRC plugin : no (install libCommuni and libprotobuf-dev)") +--- a/backends/libcommuni/CMakeLists.txt 2018-02-07 11:57:43.000000000 +0100 ++++ b/backends/libcommuni/CMakeLists.txt 2018-04-04 22:20:11.000000000 +0200 +@@ -1,14 +1,15 @@ + cmake_minimum_required(VERSION 2.6) ++find_package(Qt5Network REQUIRED) + FILE(GLOB SRC *.cpp) + FILE(GLOB HEADERS *.h) +-QT4_WRAP_CPP(SRC ${HEADERS} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED) +-add_definitions(-DQT_NO_KEYWORDS) ++QT5_WRAP_CPP(SRC ${HEADERS} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED) + ADD_EXECUTABLE(spectrum2_libcommuni_backend ${SRC}) ++include_directories(${Qt5Core_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS}) + + if (NOT WIN32) +- target_link_libraries(spectrum2_libcommuni_backend ${IRC_LIBRARY} Qt4::QtNetwork Qt4::QtCore transport pthread) ++ target_link_libraries(spectrum2_libcommuni_backend ${IRC_LIBRARY} Qt5::Network Qt5::Core transport pthread) + else () +- target_link_libraries(spectrum2_libcommuni_backend ${IRC_LIBRARY} Qt4::QtNetwork Qt4::QtCore transport) ++ target_link_libraries(spectrum2_libcommuni_backend ${IRC_LIBRARY} Qt5::Network Qt5::Core transport) + endif() + INSTALL(TARGETS spectrum2_libcommuni_backend RUNTIME DESTINATION bin) + +--- a/cmake_modules/CommuniConfig.cmake 2018-02-07 11:57:43.000000000 +0100 ++++ b/cmake_modules/CommuniConfig.cmake 2018-04-04 22:14:07.000000000 +0200 +@@ -1,8 +1,7 @@ +-find_package(Qt4) +-include( ${QT_USE_FILE} ) ++find_package(Qt5Network) + + FIND_LIBRARY(IRC_LIBRARY NAMES IrcCore PATHS ${QT_LIBRARY_DIR}) +-FIND_PATH(IRC_INCLUDE_DIR NAMES "IrcCore/ircglobal.h" PATHS ${QT_INCLUDE_DIR} PATH_SUFFIXES Communi) ++FIND_PATH(IRC_INCLUDE_DIR NAMES "IrcCore/ircglobal.h" PATHS ${Qt5Core_INCLUDE_DIRS} ${Qt5Core_INCLUDE_DIRS}"/.." PATH_SUFFIXES Communi) + + # message( STATUS ${IRC_LIBRARY}) + if( IRC_LIBRARY AND IRC_INCLUDE_DIR ) diff --git a/net-im/spectrum/spectrum-9999.ebuild b/net-im/spectrum/spectrum-9999.ebuild index 029ce49..477b694 100644 --- a/net-im/spectrum/spectrum-9999.ebuild +++ b/net-im/spectrum/spectrum-9999.ebuild @@ -1,75 +1,90 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI="6" -inherit cmake-utils systemd versionator - -MY_PN="spectrum2" +inherit cmake-utils user if [[ ${PV} = "9999" ]] ; then - EGIT_REPO_URI="git://github.com/hanzz/${MY_PN}.git" + EGIT_REPO_URI="git://github.com/SpectrumIM/${PN}.git" inherit git-r3 KEYWORDS="" else RESTRICT="mirror" - MY_PV=$(replace_version_separator '_' '-') - MY_P="${MY_PN}-${MY_PV}" - SRC_URI="https://github.com/hanzz/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" - S="${WORKDIR}/${MY_P}" + SRC_URI="https://github.com/SpectrumIM/spectrum2/archive/${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="~amd64 ~x86" fi -DESCRIPTION="Spectrum is a XMPP transport/gateway" -HOMEPAGE="http://spectrum.im" +DESCRIPTION="An open source instant messaging transport" +HOMEPAGE="https://www.spectrum.im" -LICENSE="GPL-2" +LICENSE="GPL-2+" SLOT="0" -IUSE_PLUGINS="frotz irc jabber purple sms twitter" -IUSE="debug doc libev mysql postgres sqlite test ${IUSE_PLUGINS}" +IUSE="debug doc frotz irc mysql postgres purple sms +sqlite test twitter xmpp" +REQUIRED_USE="|| ( mysql postgres sqlite )" -RDEPEND="${RDEPEND} - >=net-im/swiften-3.0 - dev-libs/boost:= +DEPEND="dev-libs/boost:= + dev-libs/expat dev-libs/log4cxx + dev-libs/jsoncpp:= dev-libs/openssl:0= dev-libs/popt dev-libs/protobuf:= - mysql? ( virtual/mysql ) - postgres? ( dev-libs/libpqxx ) - sqlite? ( dev-db/sqlite:3 ) - irc? ( net-im/libcommuni[qt4] ) - sms? ( app-mobilephone/smstools ) - purple? ( - >=net-im/pidgin-2.6.0 - libev? ( dev-libs/libev ) - )" - -DEPEND="${RDEPEND} - sys-devel/gettext + net-dns/libidn + net-misc/curl + sys-libs/zlib doc? ( app-doc/doxygen ) + frotz? ( !games-engines/frotz ) + irc? ( net-im/libcommuni ) + mysql? ( || ( dev-db/mariadb-connector-c dev-db/mysql-connector-c ) ) + postgres? ( dev-db/postgresql:= ) + purple? ( dev-libs/glib + dev-libs/libev + net-im/pidgin ) + sms? ( app-mobilephone/smstools ) + sqlite? ( dev-db/sqlite:3 ) test? ( dev-util/cppunit ) - " + twitter? ( net-misc/curl ) + xmpp? ( net-im/swift:=[ft] )" -REQUIRED_USE="|| ( sqlite mysql postgres )" +RDEPEND="${DEPEND}" -CMAKE_IN_SOURCE_BUILD=1 +PATCHES=( "${FILESDIR}/remove_debug_cflags.patch" "${FILESDIR}/use_qt5_libcommuni.patch" ) + +pkg_setup() { + enewgroup spectrum + enewuser spectrum -1 -1 /var/lib/spectrum2 spectrum +} + +src_prepare() { + # Respect users LDFLAGS + sed -i -e "s/-Wl,-export-dynamic/& ${LDFLAGS}/" spectrum/src/CMakeLists.txt || die + + # Respect users CFLAGS, when compiling for debug mode. + # Since Spectrum2 searches for a qt4 compiled libcommuni, + # it must be patched, to find the qt5 compiled libcommuni. + # See: https://github.com/SpectrumIM/spectrum2/pull/253 + cmake-utils_src_prepare +} src_configure() { + if use debug; then + CMAKE_BUILD_TYPE="Debug" + fi + local mycmakeargs=( - $(cmake-utils_use_find_package libev event) - -DENABLE_MYSQL="$(usex mysql)" - -DENABLE_PQXX="$(usex postgres)" - -DENABLE_SQLITE3="$(usex sqlite)" - -DENABLE_DOCS="$(usex doc)" - -DENABLE_FROTZ="$(usex frotz)" - -DENABLE_IRC="$(usex irc)" - -DENABLE_XMPP="$(usex jabber)" - -DENABLE_PURPLE="$(usex purple)" - -DENABLE_SMSTOOLS3="$(usex sms)" - -DENABLE_TWITTER="$(usex twitter)" - -DENABLE_TESTS="$(usex test)" - -DLIB_INSTALL_DIR=$(get_libdir) + -DENABLE_DOCS="$(usex doc)" \ + -DENABLE_FROTZ="$(usex frotz)" \ + -DENABLE_IRC="$(usex irc)" \ + -DENABLE_MYSQL="$(usex mysql)" \ + -DENABLE_PQXX="$(usex postgres)" \ + -DENABLE_PURPLE="$(usex purple)" \ + -DENABLE_SMSTOOLS3="$(usex sms)" \ + -DENABLE_SQLITE3="$(usex sqlite)" \ + -DENABLE_TESTS="$(usex test)" \ + -DENABLE_TWITTER="$(usex twitter)" \ + -DENABLE_XMPP="$(usex xmpp)" \ + -DLIB_INSTALL_DIR="$(get_libdir)" ) cmake-utils_src_configure @@ -78,17 +93,10 @@ src_configure() { src_install() { cmake-utils_src_install - newinitd "${FILESDIR}"/spectrum2.initd spectrum2 - systemd_dotmpfilesd "${FILESDIR}"/systemd/spectrum2.conf - keepdir "${EPREFIX}"/var/lib/spectrum2 - keepdir "${EPREFIX}"/var/log/spectrum2 -} + einstalldocs -pkg_postinst() { - chown jabber:jabber -R "/etc/spectrum2" || die - chown jabber:jabber -R "${EPREFIX}/var/lib/spectrum2" || die - chown jabber:jabber -R "${EPREFIX}/var/log/spectrum2" || die - chmod 750 "/etc/spectrum2" || die - chmod 750 "${EPREFIX}/var/lib/spectrum2" || die - chmod 750 "${EPREFIX}/var/log/spectrum2" || die + diropts -o spectrum -g spectrum + keepdir /var/log/spectrum2 /var/lib/spectrum2 + + newinitd "${FILESDIR}"/spectrum2.initd spectrum2 }