Я неопытный писун ебилдов эмаксом, но вот попытался сотряпать такой ебилд. Просьба указать на недочёты.
yacy-1.68.20140209.9000.ebuild
# Copyright 2014 CarelessChaser
# Distributed under the terms of the GNU General Public License v3 or higher
# $HEADER: $
inherit eutils systemd versionator user
MAJOR_PV="$(get_version_component_range 1-2)"
REL_PV="$(get_version_component_range 3)"
SVN_PV="$(get_version_component_range 4)"
DESCRIPTION="YaCy - p2p based distributed web-search engine"
HOMEPAGE="http://www.yacy.net/"
SRC_URI="http://www.yacy.net/release/yacy_v${MAJOR_PV}_${REL_PV}_${SVN_PV}.tar.gz"
SLOT="0"
KEYWORDS="~x86 ~amd64"
DEPEND=">=virtual/jdk-1.6"
LICENSE="GPL-2"
IUSE="initscript"
S="${WORKDIR}/yacy"
pkg_setup() {
enewgroup yacy
enewuser yacy -1 -1 /var/lib/yacy yacy
}
src_install() {
# remove win-only stuff
find "${S}" -name "*.bat" -exec rm '{}' \; || die
# remove sources
rm -r ${S}/source || die
rm ${S}/build.properties ${S}/build.xml
# remove init-scripts
rm ${S}/*.sh || die
dodoc AUTHORS COPYRIGHT NOTICE gpl.txt readme.txt || die
dodoc lib/*License || die
yacy_home="${EROOT}usr/share/${PN}"
dodir ${yacy_home} || die
cp -r ${S}/* ${D}${yacy_home} || die
rm ${D}${yacy_home}/{AUTHORS,COPYRIGHT,NOTICE,gpl.txt,readme.txt}
rm -r ${D}${yacy_home}/lib/*License
dodir /var/log/yacy || die
chown yacy:yacy "${D}/var/log/yacy" || die
dosym /var/lib/yacy /${yacy_home}/DATA || die
systemd_newunit "${FILESDIR}"/${PN}.service ${PN}.service
}
pkg_postinst() {
einfo "yacy.logging will write logfiles into /var/lib/yacy/LOG"
einfo "To setup YaCy, open http://localhost:8090 in your browser."
}
0. Надо бы мне сделать компиляцию и по возможности отказаться от bundled-libs. Только в сборке java я пока ещё совершенно не разбираюсь.
1. Надо бы ещё добавить возможность выбора языков. Только сперва уточнить, можно ли в /usr/share/yacy/langstats/ просто оставить нужные, а все остальные удалить.
2. Наверное, можно безболезненно выкинуть мусор вроде addon/windowsService и addon/Notepad++.
UPD:
Я не хотел бы всё ставить в /opt, и решил начать распихивать файлы согласно FHS. Только здесь много вопросов, поскольку так близко с работой Java я сталкиваюсь впервые.
Но, например, был выбор — или патчить YaCy, чтобы оно писало свои данные в /var/lib/yacy, или просто сделать симлинк /usr/share/yacy/DATA → /var/lib/yacy (подсмотрел решение у Debian).
UPD²:
Здесь нет init-скрипта для OpenRC, мне пока его лень делать.
Какие ещё советы?