[net-im/spectrum] sync with tree

This commit is contained in:
Robert Förster 2019-01-12 04:05:59 +01:00
parent e84d7c7ca8
commit 6c3eff76fc
5 changed files with 74 additions and 85 deletions

View File

@ -2,30 +2,46 @@
# Copyright 1999-2018 Gentoo Authors # Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
command="/usr/bin/${RC_SVCNAME}_manager" command="/usr/bin/spectrum2_manager"
command_args="start"
command_background="true"
command_group="spectrum" command_group="spectrum"
command_user="spectrum" command_user="spectrum"
name="Spectrum2 Transport" name="Spectrum2 Transport"
pidfile="/run/${RC_SVCNAME}/${RC_SVCNAME}_manager.pid" shell="/bin/sh"
su="/bin/su"
depend() { depend() {
need net need net
} }
start() {
ebegin "Starting ${name}"
"${su}" "${command_user}" -c "${command} start" -s "${shell}"
eend $?
}
start_pre() { start_pre() {
checkpath -d -o "${command_user}:${command_group}" -q "/run/${RC_SVCNAME}" # Ensure /run/spectrum2 dir is owned by spectrum user.
# spectrum2_manager stores pidfiles of individual services here.
# See security related comment at the bottom.
checkpath -d -o "${command_user}:${command_group}" -q "/run/spectrum2"
} }
status() { status() {
ebegin "Status Spectrum2 Transport" ebegin "Status ${name}"
${command} status "${su}" "${command_user}" -c "${command} status" -s "${shell}"
eend $? eend $?
} }
stop() { stop() {
ebegin "Stopping Spectrum2 Transport" ebegin "Stopping ${name}"
${command} stop "${su}" "${command_user}" -c "${command} stop" -s "${shell}"
eend $? eend $?
} }
# Andrey Utkin <andrey_utkin@gentoo.org> (24 Nov 2018)
# Conrad Kostecki <conrad@kostecki.com> (24 Nov 2018)
# We are aware of many security issues caused by careless chowning, see
# http://michael.orlitzky.com/articles/end_root_chowning_now_(make_etc-init.d_great_again).xhtml
# We believe none of these issues apply.
# These pidfiles are not read by any privileged process.
# checkpath here chowns only the dir itself and doesn't act recursively.

View File

@ -0,0 +1,12 @@
[Unit]
Description=Spectrum2 Transport
After=network.target
[Service]
ExecStart=/usr/bin/spectrum2_manager start
ExecStop=/usr/bin/spectrum2_manager stop
User=spectrum
Group=spectrum
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1 @@
d /run/spectrum2 0700 specturm spectrum - -

View File

@ -1,55 +0,0 @@
--- 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/FindCommuni.cmake 2018-02-07 11:57:43.000000000 +0100
+++ b/cmake_modules/FindCommuni.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 )

View File

@ -1,9 +1,10 @@
# Copyright 1999-2018 Gentoo Authors # Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=6
inherit cmake-utils user PYTHON_COMPAT=( python2_7 )
inherit cmake-utils python-single-r1 systemd user
if [[ ${PV} = "9999" ]] ; then if [[ ${PV} = "9999" ]] ; then
EGIT_REPO_URI="https://github.com/SpectrumIM/${PN}2.git" EGIT_REPO_URI="https://github.com/SpectrumIM/${PN}2.git"
@ -23,56 +24,64 @@ SLOT="0"
IUSE="debug doc frotz irc mysql postgres purple sms +sqlite test twitter whatsapp xmpp" IUSE="debug doc frotz irc mysql postgres purple sms +sqlite test twitter whatsapp xmpp"
REQUIRED_USE="|| ( mysql postgres sqlite )" REQUIRED_USE="|| ( mysql postgres sqlite )"
DEPEND_RDEPEND=" RDEPEND="
dev-libs/boost:= dev-libs/boost:=
dev-libs/expat dev-libs/expat
dev-libs/libev:=
dev-libs/log4cxx dev-libs/log4cxx
dev-libs/jsoncpp:= dev-libs/jsoncpp:=
dev-libs/openssl:0= dev-libs/openssl:0=
dev-libs/popt dev-libs/popt
dev-libs/protobuf:= dev-libs/protobuf:=
net-dns/libidn:0= net-dns/libidn:0=
net-im/swift:=
net-misc/curl net-misc/curl
sys-libs/zlib:= sys-libs/zlib:=
frotz? ( !games-engines/frotz ) frotz? ( !games-engines/frotz )
irc? ( net-im/libcommuni ) irc? ( net-im/libcommuni )
mysql? ( || ( dev-db/mariadb-connector-c dev-db/mysql-connector-c ) ) mysql? (
postgres? ( dev-db/postgresql:= ) || (
purple? ( dev-libs/glib dev-db/mariadb-connector-c
dev-libs/libev:= dev-db/mysql-connector-c
net-im/pidgin:= ) )
)
postgres? ( dev-libs/libpqxx:= )
purple? (
dev-libs/glib
net-im/pidgin:=
)
sms? ( app-mobilephone/smstools ) sms? ( app-mobilephone/smstools )
sqlite? ( dev-db/sqlite:3 ) sqlite? ( dev-db/sqlite:3 )
twitter? ( net-misc/curl ) twitter? ( net-misc/curl )
whatsapp? ( net-im/transwhat ) whatsapp? ( net-im/transwhat )"
xmpp? ( net-im/swift:= )"
DEPEND=" DEPEND="
${DEPEND_RDEPEND} ${PYTHON_DEPS}
${RDEPEND}
doc? ( app-doc/doxygen ) doc? ( app-doc/doxygen )
test? ( dev-util/cppunit ) test? (
dev-python/sleekxmpp[${PYTHON_USEDEP}]
dev-util/cppunit
net-irc/ngircd
)
" "
RDEPEND="${DEPEND_BOTH}"
PATCHES=( PATCHES=(
"${FILESDIR}/remove_debug_cflags.patch" "${FILESDIR}/remove_debug_cflags.patch"
"${FILESDIR}/use_qt5_libcommuni.patch"
) )
pkg_setup() { pkg_setup() {
enewgroup spectrum enewgroup spectrum
enewuser spectrum -1 -1 /var/lib/spectrum2 spectrum enewuser spectrum -1 -1 /var/lib/spectrum2 spectrum
use test && python-single-r1_pkg_setup
} }
src_prepare() { src_prepare() {
# Respect users LDFLAGS # Respect users LDFLAGS
sed -i -e "s/-Wl,-export-dynamic/& ${LDFLAGS}/" spectrum/src/CMakeLists.txt || die sed -i -e "s/-Wl,-export-dynamic/& ${LDFLAGS}/" spectrum/src/CMakeLists.txt || die
# Respect users CFLAGS, when compiling for debug mode. # 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 cmake-utils_src_prepare
} }
@ -97,14 +106,20 @@ src_configure() {
cmake-utils_src_configure cmake-utils_src_configure
} }
src_test() {
cd tests/libtransport && "${EPYTHON}" ../start.py || die
}
src_install() { src_install() {
cmake-utils_src_install cmake-utils_src_install
einstalldocs
diropts -o spectrum -g spectrum diropts -o spectrum -g spectrum
keepdir /var/log/spectrum2 /var/lib/spectrum2 keepdir /var/log/spectrum2 /var/lib/spectrum2
diropts diropts
newinitd "${FILESDIR}"/spectrum2.initd spectrum2 newinitd "${FILESDIR}"/spectrum2.initd spectrum2
systemd_newunit "${FILESDIR}"/spectrum2.service spectrum2.service
systemd_newtmpfilesd "${FILESDIR}"/spectrum2.tmpfiles spectrum2.conf
einstalldocs
} }