| 1 |
scarabeus |
1.62 |
# Copyright 1999-2012 Gentoo Foundation
|
| 2 |
flameeyes |
1.1 |
# Distributed under the terms of the GNU General Public License v2
|
| 3 |
zmedico |
1.63 |
# $Header: /var/cvsroot/gentoo-x86/net-irc/quassel/quassel-9999.ebuild,v 1.62 2012/03/31 11:20:35 scarabeus Exp $
|
| 4 |
flameeyes |
1.1 |
|
| 5 |
scarabeus |
1.56 |
EAPI=4
|
| 6 |
flameeyes |
1.1 |
|
| 7 |
zmedico |
1.63 |
inherit cmake-utils eutils pax-utils user versionator
|
| 8 |
|
|
|
| 9 |
jokey |
1.9 |
EGIT_REPO_URI="git://git.quassel-irc.org/quassel.git"
|
| 10 |
|
|
EGIT_BRANCH="master"
|
| 11 |
zmedico |
1.63 |
[[ "${PV}" == "9999" ]] && inherit git-2
|
| 12 |
scarabeus |
1.48 |
|
| 13 |
|
|
QT_MINIMAL="4.6.0"
|
| 14 |
|
|
KDE_MINIMAL="4.4"
|
| 15 |
|
|
|
| 16 |
jokey |
1.17 |
DESCRIPTION="Qt4/KDE4 IRC client suppporting a remote daemon for 24/7 connectivity."
|
| 17 |
flameeyes |
1.1 |
HOMEPAGE="http://quassel-irc.org/"
|
| 18 |
scarabeus |
1.49 |
[[ "${PV}" == "9999" ]] || SRC_URI="http://quassel-irc.org/pub/${P/_/-}.tar.bz2"
|
| 19 |
flameeyes |
1.1 |
|
| 20 |
|
|
LICENSE="GPL-3"
|
| 21 |
scarabeus |
1.32 |
KEYWORDS=""
|
| 22 |
flameeyes |
1.1 |
SLOT="0"
|
| 23 |
scarabeus |
1.62 |
IUSE="ayatana crypt dbus debug kde monolithic phonon postgres +server +ssl syslog webkit X"
|
| 24 |
flameeyes |
1.1 |
|
| 25 |
scarabeus |
1.29 |
SERVER_RDEPEND="
|
| 26 |
scarabeus |
1.62 |
>=x11-libs/qt-script-${QT_MINIMAL}:4
|
| 27 |
scarabeus |
1.58 |
crypt? (
|
| 28 |
|
|
app-crypt/qca:2
|
| 29 |
|
|
app-crypt/qca-ossl
|
| 30 |
|
|
)
|
| 31 |
scarabeus |
1.53 |
!postgres? ( >=x11-libs/qt-sql-${QT_MINIMAL}:4[sqlite] dev-db/sqlite[threadsafe,-secure-delete] )
|
| 32 |
scarabeus |
1.38 |
postgres? ( >=x11-libs/qt-sql-${QT_MINIMAL}:4[postgres] )
|
| 33 |
scarabeus |
1.62 |
syslog? ( virtual/logger )
|
| 34 |
scarabeus |
1.29 |
"
|
| 35 |
|
|
|
| 36 |
|
|
GUI_RDEPEND="
|
| 37 |
scarabeus |
1.38 |
>=x11-libs/qt-gui-${QT_MINIMAL}:4
|
| 38 |
scarabeus |
1.30 |
ayatana? ( dev-libs/libindicate-qt )
|
| 39 |
scarabeus |
1.45 |
dbus? (
|
| 40 |
|
|
>=x11-libs/qt-dbus-${QT_MINIMAL}:4
|
| 41 |
|
|
dev-libs/libdbusmenu-qt
|
| 42 |
|
|
)
|
| 43 |
scarabeus |
1.29 |
kde? (
|
| 44 |
scarabeus |
1.38 |
>=kde-base/kdelibs-${KDE_MINIMAL}
|
| 45 |
|
|
>=kde-base/oxygen-icons-${KDE_MINIMAL}
|
| 46 |
tampakrap |
1.33 |
ayatana? ( kde-misc/plasma-widget-message-indicator )
|
| 47 |
scarabeus |
1.29 |
)
|
| 48 |
dilfridge |
1.59 |
phonon? ( || ( media-libs/phonon >=x11-libs/qt-phonon-${QT_MINIMAL} ) )
|
| 49 |
scarabeus |
1.38 |
webkit? ( >=x11-libs/qt-webkit-${QT_MINIMAL}:4 )
|
| 50 |
scarabeus |
1.29 |
"
|
| 51 |
|
|
|
| 52 |
scarabeus |
1.12 |
RDEPEND="
|
| 53 |
scarabeus |
1.53 |
>=x11-libs/qt-core-${QT_MINIMAL}:4[ssl?]
|
| 54 |
jokey |
1.15 |
monolithic? (
|
| 55 |
scarabeus |
1.29 |
${SERVER_RDEPEND}
|
| 56 |
|
|
${GUI_RDEPEND}
|
| 57 |
jokey |
1.15 |
)
|
| 58 |
|
|
!monolithic? (
|
| 59 |
scarabeus |
1.29 |
server? ( ${SERVER_RDEPEND} )
|
| 60 |
|
|
X? ( ${GUI_RDEPEND} )
|
| 61 |
scarabeus |
1.12 |
)
|
| 62 |
|
|
"
|
| 63 |
patrick |
1.21 |
DEPEND="${RDEPEND}"
|
| 64 |
jokey |
1.7 |
|
| 65 |
jokey |
1.9 |
DOCS="AUTHORS ChangeLog README"
|
| 66 |
flameeyes |
1.1 |
|
| 67 |
scarabeus |
1.51 |
S="${WORKDIR}/${P/_/-}"
|
| 68 |
|
|
|
| 69 |
scarabeus |
1.56 |
REQUIRED_USE="
|
| 70 |
|
|
|| ( X server monolithic )
|
| 71 |
|
|
crypt? ( || ( server monolithic ) )
|
| 72 |
|
|
postgres? ( || ( server monolithic ) )
|
| 73 |
scarabeus |
1.62 |
syslog? ( || ( server monolithic ) )
|
| 74 |
scarabeus |
1.56 |
kde? ( || ( X monolithic ) )
|
| 75 |
|
|
phonon? ( || ( X monolithic ) )
|
| 76 |
|
|
dbus? ( || ( X monolithic ) )
|
| 77 |
|
|
ayatana? ( || ( X monolithic ) )
|
| 78 |
|
|
webkit? ( || ( X monolithic ) )
|
| 79 |
|
|
"
|
| 80 |
|
|
|
| 81 |
flameeyes |
1.1 |
pkg_setup() {
|
| 82 |
reavertm |
1.39 |
if use server; then
|
| 83 |
|
|
QUASSEL_DIR=/var/lib/${PN}
|
| 84 |
|
|
QUASSEL_USER=${PN}
|
| 85 |
|
|
# create quassel:quassel user
|
| 86 |
|
|
enewgroup "${QUASSEL_USER}"
|
| 87 |
|
|
enewuser "${QUASSEL_USER}" -1 -1 "${QUASSEL_DIR}" "${QUASSEL_USER}"
|
| 88 |
|
|
fi
|
| 89 |
flameeyes |
1.1 |
}
|
| 90 |
|
|
|
| 91 |
scarabeus |
1.12 |
src_configure() {
|
| 92 |
scarabeus |
1.36 |
local mycmakeargs=(
|
| 93 |
scarabeus |
1.27 |
$(cmake-utils_use_with ayatana LIBINDICATE)
|
| 94 |
scarabeus |
1.12 |
$(cmake-utils_use_want X QTCLIENT)
|
| 95 |
scarabeus |
1.19 |
$(cmake-utils_use_want server CORE)
|
| 96 |
jokey |
1.15 |
$(cmake-utils_use_want monolithic MONO)
|
| 97 |
scarabeus |
1.27 |
$(cmake-utils_use_with webkit)
|
| 98 |
|
|
$(cmake-utils_use_with phonon)
|
| 99 |
|
|
$(cmake-utils_use_with kde)
|
| 100 |
|
|
$(cmake-utils_use_with dbus)
|
| 101 |
scarabeus |
1.19 |
$(cmake-utils_use_with ssl OPENSSL)
|
| 102 |
scarabeus |
1.62 |
$(cmake-utils_use_with syslog)
|
| 103 |
scarabeus |
1.25 |
$(cmake-utils_use_with !kde OXYGEN)
|
| 104 |
scarabeus |
1.42 |
$(cmake-utils_use_with crypt)
|
| 105 |
scarabeus |
1.36 |
"-DEMBED_DATA=OFF"
|
| 106 |
|
|
)
|
| 107 |
|
|
|
| 108 |
scarabeus |
1.19 |
cmake-utils_src_configure
|
| 109 |
flameeyes |
1.1 |
}
|
| 110 |
|
|
|
| 111 |
|
|
src_install() {
|
| 112 |
jokey |
1.7 |
cmake-utils_src_install
|
| 113 |
flameeyes |
1.1 |
|
| 114 |
jokey |
1.9 |
if use server ; then
|
| 115 |
scarabeus |
1.62 |
# needs PAX marking wrt bug#346255
|
| 116 |
|
|
pax-mark m "${ED}/usr/bin/quasselcore" || die
|
| 117 |
|
|
|
| 118 |
scarabeus |
1.36 |
# prepare folders in /var/
|
| 119 |
reavertm |
1.39 |
keepdir "${QUASSEL_DIR}"
|
| 120 |
|
|
fowners "${QUASSEL_USER}":"${QUASSEL_USER}" "${QUASSEL_DIR}"
|
| 121 |
scarabeus |
1.36 |
|
| 122 |
|
|
# init scripts
|
| 123 |
|
|
newinitd "${FILESDIR}"/quasselcore.init quasselcore || die "newinitd failed"
|
| 124 |
|
|
newconfd "${FILESDIR}"/quasselcore.conf quasselcore || die "newconfd failed"
|
| 125 |
jokey |
1.9 |
|
| 126 |
scarabeus |
1.36 |
# logrotate
|
| 127 |
scarabeus |
1.54 |
insinto /etc/logrotate.d
|
| 128 |
|
|
newins "${FILESDIR}/quassel.logrotate" quassel || die "newins failed"
|
| 129 |
jokey |
1.7 |
fi
|
| 130 |
|
|
}
|
| 131 |
|
|
|
| 132 |
|
|
pkg_postinst() {
|
| 133 |
scarabeus |
1.56 |
if use monolithic && use ssl ; then
|
| 134 |
scarabeus |
1.19 |
elog "Information on how to enable SSL support for client/core connections"
|
| 135 |
|
|
elog "is available at http://bugs.quassel-irc.org/wiki/quassel-irc."
|
| 136 |
jokey |
1.7 |
fi
|
| 137 |
scarabeus |
1.36 |
|
| 138 |
scarabeus |
1.46 |
if use server; then
|
| 139 |
|
|
einfo "If you want to generate SSL certificate remember to run:"
|
| 140 |
|
|
einfo " emerge --config =${CATEGORY}/${PF}"
|
| 141 |
|
|
fi
|
| 142 |
|
|
|
| 143 |
scarabeus |
1.62 |
if use server || use monolithic ; then
|
| 144 |
|
|
einfo "Quassel can use net-misc/oidentd package if installed on your system."
|
| 145 |
|
|
einfo "Consider installing it if you want to run quassel within identd daemon."
|
| 146 |
|
|
fi
|
| 147 |
|
|
|
| 148 |
scarabeus |
1.36 |
# temporary info mesage
|
| 149 |
scarabeus |
1.61 |
if use server && [[ $(get_version_component_range 2 ${REPLACING_VERSIONS}) -lt 7 ]]; then
|
| 150 |
scarabeus |
1.46 |
echo
|
| 151 |
scarabeus |
1.36 |
ewarn "Please note that all configuration moved from"
|
| 152 |
|
|
ewarn "/home/\${QUASSEL_USER}/.config/quassel-irc.org/"
|
| 153 |
reavertm |
1.39 |
ewarn "to: ${QUASSEL_DIR}."
|
| 154 |
scarabeus |
1.36 |
echo
|
| 155 |
scarabeus |
1.50 |
ewarn "For migration, stop the core, move quasselcore files (pretty much"
|
| 156 |
scarabeus |
1.46 |
ewarn "everything apart from quasselclient.conf and settings.qss) into"
|
| 157 |
|
|
ewarn "new location and then start server again."
|
| 158 |
|
|
fi
|
| 159 |
|
|
}
|
| 160 |
|
|
|
| 161 |
|
|
pkg_config() {
|
| 162 |
|
|
if use server && use ssl; then
|
| 163 |
|
|
# generate the pem file only when it does not already exist
|
| 164 |
|
|
if [ ! -f "${QUASSEL_DIR}/quasselCert.pem" ]; then
|
| 165 |
|
|
einfo "Generating QUASSEL SSL certificate to: \"${QUASSEL_DIR}/quasselCert.pem\""
|
| 166 |
|
|
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
|
| 167 |
|
|
-keyout "${QUASSEL_DIR}/quasselCert.pem" \
|
| 168 |
|
|
-out "${QUASSEL_DIR}/quasselCert.pem"
|
| 169 |
|
|
# permissions for the key
|
| 170 |
|
|
chown ${QUASSEL_USER}:${QUASSEL_USER} "${QUASSEL_DIR}/quasselCert.pem"
|
| 171 |
|
|
chmod 400 "${QUASSEL_DIR}/quasselCert.pem"
|
| 172 |
|
|
else
|
| 173 |
|
|
einfo "Certificate \"${QUASSEL_DIR}/quasselCert.pem\" already exists."
|
| 174 |
|
|
einfo "Remove it if you want to create new one."
|
| 175 |
|
|
fi
|
| 176 |
scarabeus |
1.36 |
fi
|
| 177 |
flameeyes |
1.1 |
}
|