From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- net-irc/quassel/Manifest | 12 ++ net-irc/quassel/files/quassel.logrotate | 9 ++ net-irc/quassel/files/quasselcore.conf | 21 +++ net-irc/quassel/files/quasselcore.conf-r1 | 11 ++ net-irc/quassel/files/quasselcore.init | 62 +++++++++ net-irc/quassel/files/quasselcore.init-r1 | 22 ++++ net-irc/quassel/files/quasselcore.service | 11 ++ net-irc/quassel/metadata.xml | 56 ++++++++ net-irc/quassel/quassel-0.12.4.ebuild | 207 ++++++++++++++++++++++++++++++ net-irc/quassel/quassel-9999.ebuild | 171 ++++++++++++++++++++++++ 10 files changed, 582 insertions(+) create mode 100644 net-irc/quassel/Manifest create mode 100644 net-irc/quassel/files/quassel.logrotate create mode 100644 net-irc/quassel/files/quasselcore.conf create mode 100644 net-irc/quassel/files/quasselcore.conf-r1 create mode 100644 net-irc/quassel/files/quasselcore.init create mode 100644 net-irc/quassel/files/quasselcore.init-r1 create mode 100644 net-irc/quassel/files/quasselcore.service create mode 100644 net-irc/quassel/metadata.xml create mode 100644 net-irc/quassel/quassel-0.12.4.ebuild create mode 100644 net-irc/quassel/quassel-9999.ebuild (limited to 'net-irc/quassel') diff --git a/net-irc/quassel/Manifest b/net-irc/quassel/Manifest new file mode 100644 index 000000000000..555738aae826 --- /dev/null +++ b/net-irc/quassel/Manifest @@ -0,0 +1,12 @@ +AUX quassel.logrotate 105 SHA256 00c32e857d7a4346d09ac057768565692da9cacf41ed37cc7e357b395e033a45 SHA512 60371b4046c3c20c06d01f9cbf3f8465b40c9a989f392ed3e5a4724deff71960015eeb1707817af256618be8085b2aa5809377fec8cfae59e6b8fc958317e780 WHIRLPOOL 5b5185a6a68c12ce08ec5b41bb10644e487308f81b3e5d554524b05f70573410e31b299ac5fcec8806390deb37d0529ac69c435d0fcbaac005e59aec5a4095c5 +AUX quasselcore.conf 607 SHA256 2939b389370db7a3512f26e4c60b302e7c063519bd2c8d1cc8a04dd281eec2ec SHA512 b1fd0382d83c5983f6266c7500ac12dc00b964ff1f104cb20de9dd40b93edcbf90f98f5ab3f6f2cb87e6be63580c3ab2958f2e3ae57eb9569c24c49d8506bc38 WHIRLPOOL 31ada0d0b9fc364030ab319b641917e1c084b7eb075b92090a4400e7f4430f660151c873cff6ca32c334942762947ce50a0889b66e9f8380d8d64aafd3a7478a +AUX quasselcore.conf-r1 333 SHA256 7d7ea29e58f49a0cc56aa3df4cc54814a67510169ce6cefad7ad5e5493671df7 SHA512 7d3f320b5d5c9cc27db399a5460ea37f33688d523340d4509ebd2fcf20620b43d4b1a05cdb91fa07931798b18a2bdcee9f4f29c75e867bd4b5a7f170cd02ba90 WHIRLPOOL 1d680d8df581dcb63f41d26db4f0e7ae667afad116c4cd579188d89e3a5296f47ec263e53fab02651cd96009ada3221044760e3a379347cb9a26304b41d0795f +AUX quasselcore.init 1742 SHA256 c9fa4401dc8f58fdaba8b71f75edbcf362431490f3c09a84ea80d3db0d0cb2e7 SHA512 eddd620b43439becc3f714854b7d1c9f9a65b4784325b11298c94c9f15b6e1fe2547f566f8ae2ebf1134d6361228bdb047964df3ae439d540d57d8864cdecd6d WHIRLPOOL 9757ee2da43e14b22d79d68da54cf4f17cf04cdd03c0919b20273963a3ae0a02ec281a5d6be6ea8ee37afb7841cc7a753b66a5747f8bac069f462b51c3944f18 +AUX quasselcore.init-r1 490 SHA256 f533256d8406754b1aa471f58087f5f8b266187de769def783c4ce86e85450c7 SHA512 71b2381e834d86a29269516270fe2463adfe59de16d9916d9cc496959e6931719262bf980763662bfb309acb79c6508ae33c61ceacd53be912d3161105ba0c69 WHIRLPOOL 25ee3a393660faedff0e55069a69bce7a841845c490615062f19ee8597df9b11560014067f527905ca16022f0616a365489cb462e795002a2c4dc75731d66af0 +AUX quasselcore.service 189 SHA256 33c71f621f69f2eb6a5c613b979238c085a1e1aef3ee162011341c1a26821dae SHA512 3f0e15582dca70ca11beddb50aa6c6d993d4283ff89dc83a84b1acf2c0d2edba306fdab30eb05937f363cf507e34b7f884e0852d88be68748b68ac7b4013b776 WHIRLPOOL 97e88e0581d064305390a7e093bc550f1fcad9a782ca7d7bae941aa56d9f6fbd72a98d67c0d85b3cf6f17d282ddc76e4c61ddc83a2ee14079b4643f8b29cb5fd +DIST quassel-0.12.4.tar.bz2 3742639 SHA256 93e4e54cb3743cbe2e5684c2fcba94fd2bc2cd739f7672dee14341b49c29444d SHA512 66bc12a9634534e6492787172a199c774ef1642d1ddb268c24ed96608698628bca7b278021a006a4db76783b19b1e1dead9d019bb8a6cbe1e12b8857792e7b92 WHIRLPOOL 13a6078aa8f0a3d039e9c240c870a13744b3eb3324f45508f62a37aa8da13c0b00f94f53fe2602762503459a1110e3796673c104397b37297390cc406f2eaa66 +EBUILD quassel-0.12.4.ebuild 5569 SHA256 628e0bfb2ebe1f586a19af44f8a82dc5dacf95ae98a39778e2010a7aa280690f SHA512 5ccaeb6cb5f237d2fdd3b03102b410d71b029333c73938acc8a07edba21abbb521d7b01568a5c118c2176f65e5116f2bea3b1716841aeec262e76b1672ad56a7 WHIRLPOOL fa17861b2d59942ddf7bb5e61e1ef4339f7872dfb2e1e62d34494bc980f353429369539a785b6d5f5c4075c694b986f41a33d35447a2f2a6fd7fca531259be35 +EBUILD quassel-9999.ebuild 4677 SHA256 ad9df842153c0e2c6a138aa4b1a66020ef87247f48bbf57adac063df8047a050 SHA512 bb9cba8ce7b1389e51ab42c76e14419ec8b5adce5716cff68c4faec7343580099a24a8af5f38f8d4efa4931a224b8924a32bf88bce9cd1ca4d075cbe8fc7359f WHIRLPOOL a2685d11ac5890aa683f44dec753235254bbe6897a829c6d1056c8a9f5287d1abcf1dddb99ce308266be81fa43853eb5fca3b9304dee5ef720b7fb0a034bab72 +MISC ChangeLog 8551 SHA256 380523247326e53489799a60accf1e1d5f287e7bf63bdaa5c70847da1c848596 SHA512 d38a4cc3578fa19fc901f94aad58b9e57dbc81a9c161f8e6f9fd8dbae83e11c86b14ad855a505b5ca53086d4c3ba1616d23bb38a7f72f229154bf33d83371fd9 WHIRLPOOL 0832a8889e45cfc404d2001e1675d9f6086ef983e2c09137420365f11aed4c7155a15a3f8b23a142b43b302ec8d09a16c61ffe7f4f4bb4c92a91010c0bc4e7c7 +MISC ChangeLog-2015 33096 SHA256 73e43554c4b61045c50b6edc224d0aa77068a764b71defadb4bde57419acba53 SHA512 3a3a7ed10b819b958b6906982e7496d55c46f870239ae6309c521de86c917b8868ea31111236d17d9737a296fa1b1e3d529dee15c4c0dd1321160cf1b8d06194 WHIRLPOOL 5006e2dff2334ff22ac0f323981f6650f4576ad103ba487c7ff48bebbd8691d6feeb4865a0a474e676b50763b35b13cc83ed7e6b1dc000eb0f9ced79eaf6834f +MISC metadata.xml 1942 SHA256 05bd446a5ebec8d501520873ea2b64802fc74f39bd41df8d65bb75e5d03da3d9 SHA512 abf82cf9fe2bd552c1b26591e20da212cc3a118f6fb4ac92df8340d6ad5c7b6757e9290f8c6e8175dd95384b385dfd0399d6693d7fe6dc480b5a6d6f9b851d05 WHIRLPOOL 90c77de4ce540bff43cd606c4e992f98c587d178878eac3c56c4b21ad6f02ab1e28aace2ff58d3ea5eeab3da5ec58951b5db7358fddd024a1449fd8d96a61726 diff --git a/net-irc/quassel/files/quassel.logrotate b/net-irc/quassel/files/quassel.logrotate new file mode 100644 index 000000000000..8e7208350020 --- /dev/null +++ b/net-irc/quassel/files/quassel.logrotate @@ -0,0 +1,9 @@ +/var/log/quassel.log { + compress + rotate 4 + weekly + delaycompress + copytruncate + missingok + notifempty +} diff --git a/net-irc/quassel/files/quasselcore.conf b/net-irc/quassel/files/quasselcore.conf new file mode 100644 index 000000000000..960203500fe4 --- /dev/null +++ b/net-irc/quassel/files/quasselcore.conf @@ -0,0 +1,21 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Loglevel Debug|Info|Warning|Error. Default is: Info +# The logfile is located at /var/log/quassel.log. +#LOGLEVEL="Info" + +# The address(es) quasselcore will listen on. Default is 0.0.0.0 +#LISTEN="0.0.0.0" + +# The port quasselcore will listen at. Default is: 4242 +#PORT="4242" + +# User we want our daemon to run under. +#QUASSEL_USER="quassel" + +# Directory we store all quasselcore content. +#CONFIGDIR="/var/lib/quassel" + +# File quasselcore will log all its events into. +#LOGFILE="/var/log/quassel.log" diff --git a/net-irc/quassel/files/quasselcore.conf-r1 b/net-irc/quassel/files/quasselcore.conf-r1 new file mode 100644 index 000000000000..29e14467a8f3 --- /dev/null +++ b/net-irc/quassel/files/quasselcore.conf-r1 @@ -0,0 +1,11 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Loglevel Debug|Info|Warning|Error. Default is: Info +#LOGLEVEL="Info" + +# The address(es) quasselcore will listen on. Default is 0.0.0.0 +#LISTEN="0.0.0.0" + +# The port quasselcore will listen at. Default is: 4242 +#PORT="4242" diff --git a/net-irc/quassel/files/quasselcore.init b/net-irc/quassel/files/quasselcore.init new file mode 100644 index 000000000000..468c24ec2990 --- /dev/null +++ b/net-irc/quassel/files/quasselcore.init @@ -0,0 +1,62 @@ +#!/sbin/openrc-run +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need localmount net + after bootmisc postgres +} + +CORE="$(which quasselcore)" +PID="/var/run/quassel.pid" +LOGFILE=${LOGFILE:-"/var/log/quassel.log"} +CONFIGDIR=${CONFIGDIR:-"/var/lib/quassel"} +QUASSEL_USER=${QUASSEL_USER:-"quassel"} + +checkconfig() { + # set defaults + LOGLEVEL=${LOGLEVEL:-"Info"} + + # check config folder + if [ ! -d "${CONFIGDIR}" ]; then + mkdir "${CONFIGDIR}" || return 1 + fi + # permissions always changed just to avoid runtime issues + chown -R "${QUASSEL_USER}":"${QUASSEL_USER}" "${CONFIGDIR}" || return 1 + + # check log file + if [ ! -e "${LOGFILE}" ]; then + touch "${LOGFILE}" || return 1 + fi + # permissions always changed just to avoid runtime issues + chown "${QUASSEL_USER}":"${QUASSEL_USER}" "${LOGFILE}" || return 1 +} + +start() { + checkconfig || return 1 + + ebegin "Starting Quassel Core" + + if [ -n "${RC_UNAME}" ]; then + # running on baselayout-2/openrc + start-stop-daemon --start --user "${QUASSEL_USER}" --background --make-pidfile \ + --pidfile "${PID}" \ + --exec "${CORE}" -- --logfile="${LOGFILE}" --loglevel="${LOGLEVEL}" \ + ${LISTEN:+--listen="${LISTEN}"} ${PORT:+--port="${PORT}"} \ + --configdir="${CONFIGDIR}" + else + # running on baselayout-1 + start-stop-daemon --start --chuid "${QUASSEL_USER}" --background --make-pidfile \ + --pidfile "${PID}" --env HOME="${CONFIGDIR}" \ + --exec "${CORE}" -- --logfile="${LOGFILE}" --loglevel="${LOGLEVEL}" \ + ${LISTEN:+--listen="${LISTEN}"} ${PORT:+--port="${PORT}"} \ + --configdir="${CONFIGDIR}" + fi + eend $? +} + +stop() { + ebegin "Stopping Quassel Core" + start-stop-daemon --stop --pidfile "${PID}" --exec "${CORE}" + eend $? +} diff --git a/net-irc/quassel/files/quasselcore.init-r1 b/net-irc/quassel/files/quasselcore.init-r1 new file mode 100644 index 000000000000..5976235aafa4 --- /dev/null +++ b/net-irc/quassel/files/quasselcore.init-r1 @@ -0,0 +1,22 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + after logger postgres +} + +LISTEN=${LISTEN:-"0.0.0.0"} +LOGLEVEL=${LOGLEVEL:-"Info"} +PORT=${PORT:="4242"} + +command="/usr/bin/quasselcore" +command_args="--configdir=/var/lib/quassel + --listen=${LISTEN} + --loglevel=${LOGLEVEL} + --port=${PORT} + --syslog" +command_background="yes" +command_user="quassel" +description="Quassel Core" +pidfile="/run/quassel.pid" diff --git a/net-irc/quassel/files/quasselcore.service b/net-irc/quassel/files/quasselcore.service new file mode 100644 index 000000000000..f5b49ab0373b --- /dev/null +++ b/net-irc/quassel/files/quasselcore.service @@ -0,0 +1,11 @@ +[Unit] +Description=Quassel Core +After=network.target + +[Service] +User=quassel +Group=quassel +ExecStart=/usr/bin/quasselcore --configdir=/var/lib/quassel + +[Install] +WantedBy=multi-user.target diff --git a/net-irc/quassel/metadata.xml b/net-irc/quassel/metadata.xml new file mode 100644 index 000000000000..973e5423b38c --- /dev/null +++ b/net-irc/quassel/metadata.xml @@ -0,0 +1,56 @@ + + + + + patrick@gentoo.org + Patrick Lauer + + + johu@gentoo.org + Johannes Huber + + + + Support the Breeze and Breeze-Dark icon sets (default for Plasma 5). + + + Support core->network per-channel and per-query blowfish + encryption via app-crypt/qca SLOT 2. + + + Support desktop notifications via the StatusNotifier D-Bus service + (used by most modern desktop environments). + + + Build standalone client with integrated core, no external + quasselcore needed. Only useful if you don't want to use Quassel's + client/server model. The server and X flags are not needed in this + case but it is possible to enable them too. + + + Support the Oxygen icon set that was the default for KDE4. + + + Build client with phonon backend support. This enables sound + playback in client. + + + Build the server binary. If this USE flag is disabled, the + 'core' server binary for quassel is not built, and cannot be + used. You need this enabled on the server, but you might want to + disable it on the client. + + + Support for Snore notification framework. + + + Use QtWebEngine rendering engine for showing URL thumbnails. + + + Build the Qt5 GUI client for quassel. If this USE flag is + disabled, the GUI is not built, and cannot be used. You might + want to disable this on the server, but you need it enabled on + the client. + + + diff --git a/net-irc/quassel/quassel-0.12.4.ebuild b/net-irc/quassel/quassel-0.12.4.ebuild new file mode 100644 index 000000000000..4b8e4eb39bec --- /dev/null +++ b/net-irc/quassel/quassel-0.12.4.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit cmake-utils eutils pax-utils systemd user versionator + +EGIT_REPO_URI=( "https://github.com/${PN}/${PN}" "git://git.${PN}-irc.org/${PN}" ) +[[ "${PV}" == "9999" ]] && inherit git-r3 + +DESCRIPTION="Qt/KDE IRC client supporting a remote daemon for 24/7 connectivity" +HOMEPAGE="http://quassel-irc.org/" +[[ "${PV}" == "9999" ]] || SRC_URI="http://quassel-irc.org/pub/${P}.tar.bz2" + +LICENSE="GPL-3" +KEYWORDS="amd64 ~arm ~ppc x86 ~amd64-linux ~sparc-solaris" +SLOT="0" +IUSE="ayatana crypt dbus debug kde monolithic phonon postgres qt5 +server +snorenotify +ssl syslog webkit X" + +SERVER_RDEPEND=" + qt5? ( + dev-qt/qtscript:5 + crypt? ( app-crypt/qca:2[qt5,ssl] ) + postgres? ( dev-qt/qtsql:5[postgres] ) + !postgres? ( dev-qt/qtsql:5[sqlite] dev-db/sqlite:3[threadsafe(+),-secure-delete] ) + ) + !qt5? ( + dev-qt/qtscript:4 + crypt? ( app-crypt/qca:2[qt4,ssl] ) + postgres? ( dev-qt/qtsql:4[postgres] ) + !postgres? ( dev-qt/qtsql:4[sqlite] dev-db/sqlite:3[threadsafe(+),-secure-delete] ) + ) + syslog? ( virtual/logger ) +" + +GUI_RDEPEND=" + qt5? ( + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + dbus? ( + >=dev-libs/libdbusmenu-qt-0.9.3_pre20140619[qt5(+)] + dev-qt/qtdbus:5 + ) + kde? ( + kde-frameworks/kconfigwidgets:5 + kde-frameworks/kcoreaddons:5 + kde-frameworks/knotifications:5 + kde-frameworks/knotifyconfig:5 + kde-frameworks/ktextwidgets:5 + kde-frameworks/kwidgetsaddons:5 + kde-frameworks/kxmlgui:5 + kde-frameworks/sonnet:5 + ) + phonon? ( media-libs/phonon[qt5(+)] ) + snorenotify? ( >=x11-libs/snorenotify-0.7.0 ) + webkit? ( dev-qt/qtwebkit:5 ) + ) + !qt5? ( + dev-qt/qtgui:4 + ayatana? ( dev-libs/libindicate-qt ) + dbus? ( + >=dev-libs/libdbusmenu-qt-0.9.3_pre20140619[qt4] + dev-qt/qtdbus:4 + kde? ( + kde-frameworks/kdelibs:4 + kde-frameworks/oxygen-icons:* + ) + ) + phonon? ( media-libs/phonon[qt4] ) + ) +" + +RDEPEND=" + sys-libs/zlib + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtnetwork:5[ssl?] + ) + !qt5? ( dev-qt/qtcore:4[ssl?] ) + monolithic? ( + ${SERVER_RDEPEND} + ${GUI_RDEPEND} + ) + !monolithic? ( + server? ( ${SERVER_RDEPEND} ) + X? ( ${GUI_RDEPEND} ) + ) +" +DEPEND="${RDEPEND} + qt5? ( + dev-qt/linguist-tools:5 + kde-frameworks/extra-cmake-modules + ) +" + +DOCS=( AUTHORS ChangeLog README ) + +REQUIRED_USE=" + || ( X server monolithic ) + ayatana? ( || ( X monolithic ) ) + crypt? ( || ( server monolithic ) ) + dbus? ( || ( X monolithic ) ) + kde? ( || ( X monolithic ) phonon ) + phonon? ( || ( X monolithic ) ) + postgres? ( || ( server monolithic ) ) + qt5? ( !ayatana ) + snorenotify? ( qt5 || ( X monolithic ) ) + syslog? ( || ( server monolithic ) ) + webkit? ( qt5 || ( X monolithic ) ) +" + +pkg_setup() { + if use server; then + QUASSEL_DIR=/var/lib/${PN} + QUASSEL_USER=${PN} + # create quassel:quassel user + enewgroup "${QUASSEL_USER}" + enewuser "${QUASSEL_USER}" -1 -1 "${QUASSEL_DIR}" "${QUASSEL_USER}" + fi +} + +src_configure() { + local mycmakeargs=( + $(cmake-utils_use_find_package ayatana IndicateQt) + $(cmake-utils_use_find_package crypt QCA2) + $(cmake-utils_use_find_package crypt QCA2-QT5) + $(cmake-utils_use_find_package dbus dbusmenu-qt) + $(cmake-utils_use_find_package dbus dbusmenu-qt5) + -DWITH_KDE=$(usex kde) + -DWITH_OXYGEN=$(usex !kde) + -DWANT_MONO=$(usex monolithic) + $(cmake-utils_use_find_package phonon Phonon) + $(cmake-utils_use_find_package phonon Phonon4Qt5) + -DUSE_QT5=$(usex qt5) + -DWANT_CORE=$(usex server) + $(cmake-utils_use_find_package snorenotify LibsnoreQt5) + -DWITH_WEBKIT=$(usex webkit) + -DWANT_QTCLIENT=$(usex X) + -DEMBED_DATA=OFF + -DCMAKE_SKIP_RPATH=ON + ) + + # Something broke upstream detection since Qt 5.5 + if use ssl ; then + mycmakeargs+=("-DHAVE_SSL=TRUE") + fi + + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + + if use server ; then + # needs PAX marking wrt bug#346255 + pax-mark m "${ED}/usr/bin/quasselcore" + + # prepare folders in /var/ + keepdir "${QUASSEL_DIR}" + fowners "${QUASSEL_USER}":"${QUASSEL_USER}" "${QUASSEL_DIR}" + + # init scripts & systemd unit + newinitd "${FILESDIR}"/quasselcore.init quasselcore + newconfd "${FILESDIR}"/quasselcore.conf quasselcore + systemd_dounit "${FILESDIR}"/quasselcore.service + + # logrotate + insinto /etc/logrotate.d + newins "${FILESDIR}/quassel.logrotate" quassel + fi +} + +pkg_postinst() { + if use monolithic && use ssl ; then + elog "Information on how to enable SSL support for client/core connections" + elog "is available at http://bugs.quassel-irc.org/wiki/quassel-irc." + fi + + if use server; then + einfo "If you want to generate SSL certificate remember to run:" + einfo " emerge --config =${CATEGORY}/${PF}" + fi + + if use server || use monolithic ; then + einfo "Quassel can use net-misc/oidentd package if installed on your system." + einfo "Consider installing it if you want to run quassel within identd daemon." + fi +} + +pkg_config() { + if use server && use ssl; then + # generate the pem file only when it does not already exist + if [ ! -f "${QUASSEL_DIR}/quasselCert.pem" ]; then + einfo "Generating QUASSEL SSL certificate to: \"${QUASSEL_DIR}/quasselCert.pem\"" + openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ + -keyout "${QUASSEL_DIR}/quasselCert.pem" \ + -out "${QUASSEL_DIR}/quasselCert.pem" + # permissions for the key + chown ${QUASSEL_USER}:${QUASSEL_USER} "${QUASSEL_DIR}/quasselCert.pem" + chmod 400 "${QUASSEL_DIR}/quasselCert.pem" + else + einfo "Certificate \"${QUASSEL_DIR}/quasselCert.pem\" already exists." + einfo "Remove it if you want to create new one." + fi + fi +} diff --git a/net-irc/quassel/quassel-9999.ebuild b/net-irc/quassel/quassel-9999.ebuild new file mode 100644 index 000000000000..7bf54b67a40a --- /dev/null +++ b/net-irc/quassel/quassel-9999.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit cmake-utils eutils pax-utils systemd user + +EGIT_REPO_URI=( "https://github.com/${PN}/${PN}" "git://git.${PN}-irc.org/${PN}" ) +[[ "${PV}" == "9999" ]] && inherit git-r3 + +DESCRIPTION="Qt/KDE IRC client supporting a remote daemon for 24/7 connectivity" +HOMEPAGE="http://quassel-irc.org/" +[[ "${PV}" == "9999" ]] || SRC_URI="http://quassel-irc.org/pub/${P}.tar.bz2" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="" +IUSE="+breeze crypt +dbus debug kde monolithic oxygen postgres +server snorenotify +ssl syslog urlpreview X" + +SERVER_RDEPEND=" + dev-qt/qtscript:5 + crypt? ( app-crypt/qca:2[qt5,ssl] ) + postgres? ( dev-qt/qtsql:5[postgres] ) + !postgres? ( dev-qt/qtsql:5[sqlite] dev-db/sqlite:3[threadsafe(+),-secure-delete] ) + syslog? ( virtual/logger ) +" + +GUI_RDEPEND=" + dev-qt/qtgui:5 + dev-qt/qtmultimedia:5 + dev-qt/qtwidgets:5 + breeze? ( kde-frameworks/breeze-icons:5 ) + dbus? ( + >=dev-libs/libdbusmenu-qt-0.9.3_pre20140619[qt5(+)] + dev-qt/qtdbus:5 + ) + kde? ( + kde-frameworks/kconfigwidgets:5 + kde-frameworks/kcoreaddons:5 + kde-frameworks/knotifications:5 + kde-frameworks/knotifyconfig:5 + kde-frameworks/ktextwidgets:5 + kde-frameworks/kwidgetsaddons:5 + kde-frameworks/kxmlgui:5 + kde-frameworks/sonnet:5 + ) + oxygen? ( kde-frameworks/oxygen-icons:5 ) + snorenotify? ( >=x11-libs/snorenotify-0.7.0 ) + urlpreview? ( dev-qt/qtwebengine:5[widgets] ) +" + +RDEPEND=" + sys-libs/zlib + dev-qt/qtcore:5 + dev-qt/qtnetwork:5[ssl?] + monolithic? ( + ${SERVER_RDEPEND} + ${GUI_RDEPEND} + ) + !monolithic? ( + server? ( ${SERVER_RDEPEND} ) + X? ( ${GUI_RDEPEND} ) + ) +" +DEPEND="${RDEPEND} + dev-qt/linguist-tools:5 + kde-frameworks/extra-cmake-modules +" + +DOCS=( AUTHORS ChangeLog README.md ) + +REQUIRED_USE=" + || ( X server monolithic ) + crypt? ( || ( server monolithic ) ) + kde? ( || ( X monolithic ) ) + monolithic? ( || ( breeze oxygen ) ) + postgres? ( || ( server monolithic ) ) + snorenotify? ( || ( X monolithic ) ) + syslog? ( || ( server monolithic ) ) + X? ( || ( breeze oxygen ) ) +" + +pkg_setup() { + if use server; then + QUASSEL_DIR=/var/lib/${PN} + QUASSEL_USER=${PN} + # create quassel:quassel user + enewgroup "${QUASSEL_USER}" + enewuser "${QUASSEL_USER}" -1 -1 "${QUASSEL_DIR}" "${QUASSEL_USER}" + fi +} + +src_configure() { + local mycmakeargs=( + -DUSE_QT4=OFF + -DUSE_QT5=ON + -DWANT_CORE=$(usex server) + -DWANT_MONO=$(usex monolithic) + -DWANT_QTCLIENT=$(usex X) + -DWITH_KDE=$(usex kde) + -DWITH_WEBKIT=OFF + -DWITH_WEBENGINE=$(usex urlpreview) + -DWITH_BREEZE=OFF + -DWITH_BREEZE_DARK=OFF + -DWITH_OXYGEN=OFF + -DEMBED_DATA=OFF + -DCMAKE_SKIP_RPATH=ON + $(cmake-utils_use_find_package crypt QCA2-QT5) + $(cmake-utils_use_find_package dbus dbusmenu-qt5) + $(cmake-utils_use_find_package snorenotify LibsnoreQt5) + ) + + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + + if use server ; then + # needs PAX marking wrt bug#346255 + pax-mark m "${ED}/usr/bin/quasselcore" + + # prepare folders in /var/ + keepdir "${QUASSEL_DIR}" + fowners "${QUASSEL_USER}":"${QUASSEL_USER}" "${QUASSEL_DIR}" + + # init scripts & systemd unit + newinitd "${FILESDIR}"/quasselcore.init quasselcore + newconfd "${FILESDIR}"/quasselcore.conf quasselcore + systemd_dounit "${FILESDIR}"/quasselcore.service + + # logrotate + insinto /etc/logrotate.d + newins "${FILESDIR}/quassel.logrotate" quassel + fi +} + +pkg_postinst() { + if use monolithic && use ssl ; then + elog "Information on how to enable SSL support for client/core connections" + elog "is available at http://bugs.quassel-irc.org/projects/quassel-irc/wiki/Client-Core_SSL_support." + fi + + if use server; then + einfo "If you want to generate SSL certificate remember to run:" + einfo " emerge --config =${CATEGORY}/${PF}" + fi + + if use server || use monolithic ; then + einfo "Quassel can use net-misc/oidentd package if installed on your system." + einfo "Consider installing it if you want to run quassel within identd daemon." + fi +} + +pkg_config() { + if use server && use ssl; then + # generate the pem file only when it does not already exist + if [ ! -f "${QUASSEL_DIR}/quasselCert.pem" ]; then + einfo "Generating QUASSEL SSL certificate to: \"${QUASSEL_DIR}/quasselCert.pem\"" + openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ + -keyout "${QUASSEL_DIR}/quasselCert.pem" \ + -out "${QUASSEL_DIR}/quasselCert.pem" + # permissions for the key + chown ${QUASSEL_USER}:${QUASSEL_USER} "${QUASSEL_DIR}/quasselCert.pem" + chmod 400 "${QUASSEL_DIR}/quasselCert.pem" + else + einfo "Certificate \"${QUASSEL_DIR}/quasselCert.pem\" already exists." + einfo "Remove it if you want to create new one." + fi + fi +} -- cgit v1.2.3