mirror of
https://github.com/pentoo/pentoo-overlay
synced 2026-05-02 11:40:51 +02:00
154 lines
4.2 KiB
Bash
154 lines
4.2 KiB
Bash
# Copyright 1999-2019 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=6
|
|
|
|
inherit eutils gnome2-utils toolchain-funcs xdg-utils
|
|
|
|
DESCRIPTION="A web visual tool for information security specialists"
|
|
HOMEPAGE="https://www.capanalysis.net https://github.com/xplico/CapAnalysis"
|
|
SRC_URI="https://github.com/xplico/CapAnalysis/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
|
KEYWORDS="~amd64 ~x86"
|
|
LICENSE="GPL-2"
|
|
SLOT=0
|
|
IUSE=""
|
|
|
|
RDEPEND="
|
|
dev-db/postgresql:11
|
|
dev-db/sqlite:3
|
|
dev-libs/openssl:0=
|
|
net-analyzer/xplico
|
|
net-libs/libpcap"
|
|
|
|
# vim-core (xxd) and jdk need for preparing a WebUI assets
|
|
DEPEND="${RDEPEND}
|
|
app-editors/vim-core
|
|
virtual/jdk
|
|
virtual/pkgconfig"
|
|
|
|
S="${WORKDIR}"/CapAnalysis-${PV}
|
|
|
|
src_prepare() {
|
|
# prepare WebUI assets
|
|
./uipkg.sh || die
|
|
|
|
# fix CFLAGS/LDFLAGS
|
|
sed -e 's/ -O[0-3a-z]*//' \
|
|
-e "s/^CFLAGS +=/CFLAGS += ${CFLAGS}/" \
|
|
-e "s/^LDFLAGS +=/LDFLAGS += ${LDFLAGS}/" \
|
|
-i Makefile || die
|
|
sed -e 's/ -O[0-3a-z]*//' \
|
|
-e "s/^CFLAGS =/CFLAGS = ${CFLAGS}/" \
|
|
-e "s/^LDFLAGS =/LDFLAGS = ${LDFLAGS}/" \
|
|
-i pcapseek/Makefile || die
|
|
|
|
eapply_user
|
|
}
|
|
|
|
src_compile() {
|
|
emake capanalysis CC="$(tc-getCC)"
|
|
cd pcapseek || die
|
|
emake pcapseek CC="$(tc-getCC)"
|
|
}
|
|
|
|
src_install() {
|
|
local dist_dir="/opt/${PN}"
|
|
|
|
exeinto "${dist_dir}"/bin
|
|
doexe capanalysis pcapseek/pcapseek
|
|
dosym \
|
|
"../../xplico/bin/xplico" \
|
|
"${dist_dir}/bin/xplico"
|
|
|
|
find "/opt/xplico/bin/modules" -iname "*.so" -prune | while read l; do
|
|
dosym \
|
|
"../../../xplico/bin/modules/$(basename ${l})" \
|
|
"${dist_dir}/bin/modules/$(basename ${l})"
|
|
done
|
|
|
|
insinto "${dist_dir}"/db
|
|
doins -r db/*
|
|
|
|
newins db/postgresql/items.sql postgres_items.sql
|
|
newins db/postgresql/ips.sql postgres_ips.sql
|
|
|
|
insinto "${dist_dir}"/cfg
|
|
doins -r config/*
|
|
|
|
insinto "${dist_dir}"/www
|
|
doins -r wwwinst/*
|
|
|
|
dosym \
|
|
"../../..${dist_dir}/cfg/apache_capana.conf" \
|
|
"/etc/apache2/vhosts.d/10_apache_capana.conf"
|
|
|
|
dodir "${dist_dir}"/{log,tmp}
|
|
|
|
fowners -R apache:apache "${dist_dir}"/{www,tmp}
|
|
fperms -R g=u "${dist_dir}"/{www,tmp}
|
|
|
|
newinitd "${FILESDIR}"/capanalysis.initd capanalysis
|
|
|
|
domenu debian/applications/capanalysis.desktop
|
|
dodoc README.md debian/changelog
|
|
}
|
|
|
|
pkg_config() {
|
|
einfo "\nYou can modify options passed by editing:"
|
|
einfo " ${EROOT%/}/opt/${PN}/cfg/canalysis.cfg\n"
|
|
[[ -f "${EROOT%/}/opt/${PN}/cfg/canalysis.cfg" ]] \
|
|
&& source "${EROOT%/}/opt/${PN}/cfg/canalysis.cfg"
|
|
|
|
DB_USER="${DB_USER:-capana}"
|
|
DB_PASSWORD="${DB_PASSWORD:-123456}"
|
|
|
|
einfo "Please provide a password for the postgres '${DB_USER}' user now"
|
|
ewarn "Avoid [\"'\\_%] characters in the password:"
|
|
read -rsp " > " pswd1 ; echo
|
|
einfo "Retype the password:"
|
|
read -rsp " > " pswd2 ; echo
|
|
[[ "x$pswd1" == "x$pswd2" ]] || die "Passwords are not the same"
|
|
DB_PASSWORD="${pswd2}"
|
|
|
|
einfo "\nChecking postgresql-11 service ..."
|
|
rc-service --ifexists -- postgresql-11 --ifstopped start
|
|
|
|
einfo "\nInitializing the database ..."
|
|
su postgres -c "psql -c \"CREATE ROLE ${DB_USER} WITH LOGIN ENCRYPTED PASSWORD '${DB_PASSWORD}';\""
|
|
if ! su postgres -c "psql -lqt | cut -d \| -f 1 | grep -qw ${DB_NAME}"; then
|
|
cd "${EROOT%/}/opt/${PN}/db/postgresql" && su postgres -c "psql -f create_db.sql"
|
|
fi
|
|
|
|
mkdir -p --mode 0770 "${EROOT%/}/opt/${PN}/www/app/tmp"/{cache/models,cache/persistent,logs,sessions} \
|
|
|| die 'failed to create a "tmp" dir'
|
|
}
|
|
|
|
pkg_preinst() {
|
|
gnome2_icon_savelist
|
|
}
|
|
|
|
pkg_postinst() {
|
|
gnome2_icon_cache_update
|
|
xdg_desktop_database_update
|
|
|
|
einfo "\nSteps"
|
|
einfo "-----"
|
|
einfo "1) Install and configure APACHE2 and PHP5 manually"
|
|
einfo "Warning: You need to enable the \"access_compat\" module in APACHE2_MODULES=\"\" and enable \"pdo postgres\" use flags for PHP"
|
|
einfo " https://wiki.gentoo.org/wiki/Apache"
|
|
einfo " https://wiki.gentoo.org/wiki/PHP"
|
|
einfo "\n2) Launch the command:"
|
|
einfo " ~$ sudo emerge --config net-analyzer/capanalysis"
|
|
einfo "\n3) From file php.ini (/etc/php/apache2-<YOUR_PHP_VERSION>/php.ini) change the line:"
|
|
einfo " memory_limit = 128M"
|
|
einfo " to:"
|
|
einfo " memory_limit = 300M"
|
|
einfo "\n4) Start the \"capanalysis\" service:"
|
|
einfo " ~$ sudo rc-service capanalysis start"
|
|
einfo "\n5) Open in your browser: http://localhost:9877/capinstall\n"
|
|
}
|
|
|
|
pkg_postrm() {
|
|
gnome2_schemas_update
|
|
xdg_desktop_database_update
|
|
}
|