From 4df3bf9762850b34cd1ead5c80374d1a0fc3362e Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 12 Jul 2021 08:41:54 +0100 Subject: gentoo resync : 12.07.2021 --- net-misc/stargazer/Manifest | 2 +- net-misc/stargazer/stargazer-2.408-r1.ebuild | 538 -------------------------- net-misc/stargazer/stargazer-2.408-r2.ebuild | 542 +++++++++++++++++++++++++++ 3 files changed, 543 insertions(+), 539 deletions(-) delete mode 100644 net-misc/stargazer/stargazer-2.408-r1.ebuild create mode 100644 net-misc/stargazer/stargazer-2.408-r2.ebuild (limited to 'net-misc/stargazer') diff --git a/net-misc/stargazer/Manifest b/net-misc/stargazer/Manifest index 9c034f33d017..c0b6f3e73784 100644 --- a/net-misc/stargazer/Manifest +++ b/net-misc/stargazer/Manifest @@ -22,5 +22,5 @@ AUX patches/stg-2.408-static-libs.patch 198 BLAKE2B 2ad854cd7ac7f9bf8a01aa8cfbb8 AUX rscriptd 453 BLAKE2B fb7d771ad0c29223d8a24196da05c05faf852291530fef644b60bf83893e3d038628a1ca7db92d3f3b8144cf44ccc7aa694686c77e6514867048841f1f57d61f SHA512 21cb21a5a14901f3b370f2cedb6ede9414c1080d3d4e073ed048f005f40622179cd91e8cf80f609f0a7b5cacecff5f15913a5cf954dfff56ad036649f4a0a48f AUX sgauth 462 BLAKE2B 9aeb1dfe4ce08f7626d6275813e8a3b2f3023ebc11b10841c7a6b01ff9110ed1193e3b2b367c7c1056c473d41f481c93ad25f4252f774fd7df5392af710255bd SHA512 a2d6ba8c2200095072a73342fab4cb5706470d52d9dc6a57f023b16dc895957d4377bc089a4a3cd57126bc9628020c2c1bb60347758e53576eccbc0c854c2364 DIST stg-2.408.tar.gz 5100291 BLAKE2B c5e50d5607f7c5253dcbb9d48fffdd55bf44829bfc3dba1e45227fa819d2592212366baff6b19dce70ef7a565f8b03e8f580204225441b12653de6271a030554 SHA512 200e08cfd629dbacda31ffd3134c2908a1ad58604421cc288ad0ec1bdcd60fe021d51fed50fdc2517bb7c2b61ef23b0b9c71a606babd09bc7804cb899e0b7f75 -EBUILD stargazer-2.408-r1.ebuild 17361 BLAKE2B 57d5aecbe3289c9da5b214664d5cfb1547f04566bb3897cfb9efd08da9db60b0b1da093eaad2705309fad6e5c028ca806d250590c4a5ab047b4bc4735f0486df SHA512 7f68d15263b281b1e1e308d0a49d378532c5446c6f864fd994890913d13157f5cbd0da055a9a0ef24c37cffa96e8ae0e1bff44ad8bfd6ff23e0ab8d8133b6f12 +EBUILD stargazer-2.408-r2.ebuild 17309 BLAKE2B 8dc32ea6b3ab497584f76eff7c3899683ecae557c82c34380980954b67a14fbd3b75a1f4d53b40682c37c796ed4f7e00db8f4910357844f91f94132131bbc977 SHA512 f33ee6086c1288cb8d408ed2088f8732048061b5aea20b97cfe4fc27cf97c6f53c163379d4fc936f196d87d95da731da227b7593b330ce891c6c70532b8d3eea MISC metadata.xml 4193 BLAKE2B db9820d399533519edf9c90f5c8acd3b6627b83ffbdecff58c3691779d940e481cebeff475edd045a924423c0947b00ee68c4725f26154604340c5004d30b0bc SHA512 51e64b32cc492a699a4acad7bf0044b1404be3df14d31ac8f6f239060ce312a908c392df47b86c899baf4e052345c55ac5a940e04f49dbf8dc0ed626bd00058c diff --git a/net-misc/stargazer/stargazer-2.408-r1.ebuild b/net-misc/stargazer/stargazer-2.408-r1.ebuild deleted file mode 100644 index f4c6cf050b71..000000000000 --- a/net-misc/stargazer/stargazer-2.408-r1.ebuild +++ /dev/null @@ -1,538 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PROJECTS="sgconv rlm_stg rscriptd sgauth sgconf sgconf_xml stargazer" - -STG_MODULES_AUTH="always_online internet_access freeradius" -STG_MODULES_CAPTURE="ipq ether netflow" -STG_MODULES_CONFIG="sgconfig rpcconfig" -STG_MODULES_OTHER="ping smux remote_script" -STG_MODULES_STORE="files firebird mysql postgres" - -declare -A MODULES -MODULES=( [module_auth_always_online]="authorization\/ao:mod_ao" - [module_auth_internet_access]="authorization\/inetaccess:mod_ia" - [module_auth_freeradius]="other\/radius:mod_radius" - [module_capture_ipq]="capture\/ipq_linux:mod_cap_ipq" - [module_capture_ether]="capture\/ether_linux:mod_cap_ether" - [module_capture_netflow]="capture\/cap_nf:mod_cap_nf" - [module_config_sgconfig]="configuration\/sgconfig:mod_sg" - [module_config_rpcconfig]="configuration\/rpcconfig:mod_rpc" - [module_other_ping]="other\/ping:mod_ping" - [module_other_smux]="other\/smux:mod_smux" - [module_other_remote_script]="other\/rscript:mod_remote_script" - [module_store_files]="store\/files:store_files" - [module_store_firebird]="store\/firebird:store_firebird" - [module_store_mysql]="store\/mysql:store_mysql" - [module_store_postgres]="store\/postgresql:store_postgresql" -) - -declare -A INIT -INIT=( [module_store_files]="11d" - [module_store_firebird]="11d;s/need net/need net firebird/" - [module_store_mysql]="11d;s/need net/need net mysql/" - [module_store_postgres]="11d;s/need net/need net postgresql/" -) - -MY_P="stg-${PV}" - -inherit flag-o-matic linux-info user - -DESCRIPTION="Billing system for small home and office networks" -HOMEPAGE="http://stg.dp.ua/" -SRC_URI="http://stg.dp.ua/download/server/${PV}/${MY_P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -RDEPEND=" - module_config_rpcconfig? ( - dev-libs/expat - dev-libs/xmlrpc-c[abyss,cxx] - ) - module_config_sgconfig? ( dev-libs/expat ) - module_store_firebird? ( dev-db/firebird ) - module_store_mysql? ( dev-db/mysql-connector-c:0= ) - module_store_postgres? ( dev-db/postgresql:= ) - sgconf? ( dev-libs/expat ) - sgconf_xml? ( dev-libs/expat )" -DEPEND="${RDEPEND}" - -S="${WORKDIR}/${MY_P}" - -REQUIRED_USE="stargazer? ( ^^ ( module_store_files module_store_firebird module_store_mysql module_store_postgres ) )" - -DOCS=( BUGS ../../ChangeLog CHANGES README TODO ) - -# Patches already in upstream's trunk -PATCHES=( - # Fix dependency on fbclient for module_store_firebird - "${FILESDIR}"/patches/stg-2.408-makefile-firebird-upstream.patch - # Rewrite config for rscriptd - "${FILESDIR}"/patches/stg-2.408-rscriptd.conf-upstream.patch - # Rewrite config for sgauth - "${FILESDIR}"/patches/stg-2.408-sgauth.conf-upstream.patch - # Standardization of 'On-scripts' - "${FILESDIR}"/patches/stg-2.408-on-upstream.patch - # Install demo scripts for rscriptd - "${FILESDIR}"/patches/stg-2.408-rscriptd-upstream.patch - # Fix crush on stop - "${FILESDIR}"/patches/stg-2.408-fix-crash-on-stop.patch - # Rename convertor to sgconv to avoid possible file name collisions - "${FILESDIR}"/patches/stg-2.408-sgconv-upstream.patch - # Debug support. Install radius lib to /usr/lib/freeradius - "${FILESDIR}"/patches/stg-2.408-makefile-build-upstream.patch - # Don't compile sgconv always with debug. Remove MAKEOPTS=-j1 - "${FILESDIR}"/patches/stg-2.408-build-upstream.patch - # FreeBSD install directory - "${FILESDIR}"/patches/stg-2.408-radius-upstream.patch -) - -IUSE="sgconv radius rscriptd sgauth sgconf sgconf_xml stargazer debug" - -for module in ${STG_MODULES_AUTH} ; do IUSE="${IUSE} module_auth_${module}" ; done -for module in ${STG_MODULES_CAPTURE} ; do IUSE="${IUSE} module_capture_${module}" ; done -for module in ${STG_MODULES_CONFIG} ; do IUSE="${IUSE} module_config_${module}" ; done -for module in ${STG_MODULES_OTHER} ; do IUSE="${IUSE} module_other_${module}" ; done -for module in ${STG_MODULES_STORE} ; do IUSE="${IUSE} module_store_${module}" ; done - -IUSE=${IUSE/stargazer/+stargazer} -IUSE=${IUSE/module_store_files/+module_store_files} - -src_prepare() { - # Rename convertor to sgconv to avoid possible file name collisions - mv projects/convertor/ projects/sgconv/ \ - || die "Couldn't move convertor folder" - mv projects/sgconv/convertor.conf \ - projects/sgconv/sgconv.conf || die "Couldn't move convertor config" - - default - - local project - for project in ${PROJECTS} ; do - # Rename build script to configure for further econf launch in every project - mv projects/$project/build projects/$project/configure \ - || die "Couldn't move build folder for $project" - # Change check for debug build - sed -i 's/if \[ "$1" = "debug" \]/if \[ "${10}" = "--enable-debug" \]/' \ - projects/$project/configure \ - || die "sed for debug check failed" - done - - # Correct working directory, user and group for sgconv.conf, store_files.conf - # Correct paths for rscriptd.conf, store_firebird.conf, mod_remote_scriptd.conf, stargazer.conf, rpcconfig.cpp, 00-base-00.sql - eapply "${FILESDIR}"/patches/stg-2.408-correct-paths.patch - - # Correct target install-data for stargazer, rscriptd, sgauth, remove debug symbols stripping - eapply "${FILESDIR}"/patches/stg-2.408-makefile.patch - - # Remove make from script (for keeping symbols), always add variable to Makefile.conf for all projects - eapply "${FILESDIR}"/patches/stg-2.408-build.patch - - # Remove static-libs - eapply "${FILESDIR}"/patches/stg-2.408-static-libs.patch - - # Define which module to compile - local module - for module in ${!MODULES[@]} ; do - if ! use $module ; then - sed -i "s/${MODULES[$module]%:*}//" \ - projects/stargazer/configure \ - || die "sed for module configure failed" - fi - done - - # Correct Gentoo init script - sed -i -e 's/opts/extra_commands/' \ - -e 's/runscript/openrc-run/' \ - projects/stargazer/inst/linux/etc/init.d/stargazer.gentoo \ - || die "sed for init-script failed" - local init - for init in ${!INIT[@]} ; do - if use $init ; then - sed -i "${INIT[$init]}" \ - projects/stargazer/inst/linux/etc/init.d/stargazer.gentoo \ - || die "sed for $init failed" - fi - done - - # Check for IPQ subsystem availability - if use module_capture_ipq && kernel_is ge 3 5 ; then - die "The IPQ subsystem requires kernel 3.5 or greater." - fi -} - -src_configure() { - use debug && filter-flags '-O?' - - # Define local variables, strip '+' symbol for used by default USE flags - local USEFLAGS=(${IUSE//+}) - local PROJECTS=($PROJECTS) - local i - - for (( i = 0 ; i < ${#PROJECTS[@]} ; i++ )) ; do - if use ${USEFLAGS[$i]} ; then - cd "${S}"/projects/${PROJECTS[$i]} \ - || die "cd to ${PROJECTS[$i]} failed" - econf $(use_enable debug) - fi - done -} - -src_compile() { - # Define local variables, strip '+' symbol for used by default USE flags - local USEFLAGS=(${IUSE//+}) - local PROJECTS=($PROJECTS) - local i - - # Set jobs to 1 for debug build - use debug && MAKEOPTS="-j1" - - # Build necessary libraries first - touch Makefile.conf - cd stglibs || die "cd to stglibs failed" - emake STG_LIBS="ia.lib srvconf.lib" - - for (( i = 0 ; i < ${#PROJECTS[@]} ; i++ )) ; do - if use ${USEFLAGS[$i]} ; then - cd "${S}"/projects/${PROJECTS[$i]} \ - || die "cd to ${PROJECTS[$i]} failed" - emake - fi - done -} - -src_install() { - if use rscriptd || use stargazer ; then - # Install config file for logrotate - insinto /etc/logrotate.d - newins "${FILESDIR}"/logrotate stargazer - - # Keeping logs directory - diropts -m 755 -o stg -g stg - keepdir /var/log/stargazer - if use stargazer ; then - diropts -m 775 -o stg -g stg - keepdir /var/lib/stargazer - fi - fi - - if use sgconv ; then - cd projects/sgconv || die "cd to sgconv failed" - - emake DESTDIR="${D}" PREFIX="${D}" install - - # Install files into specified directory - insinto /etc/stargazer - doins "${S}"/projects/sgconv/sgconv.conf - - # Install manual page - doman "${FILESDIR}"/mans/sgconv.1 - fi - - if use radius ; then - cd "${S}"/projects/rlm_stg || die "cd to rlm_stg failed" - - emake DESTDIR="${D}" PREFIX="${D}" install - fi - - if use rscriptd ; then - cd "${S}"/projects/rscriptd || die "cd to rscriptd failed" - - emake DESTDIR="${D}" PREFIX="${D}" install - - # Install Gentoo init script - doinitd "${FILESDIR}"/rscriptd - - # Correct permissions for file - fperms 0640 /etc/stargazer/rscriptd.conf - - # Install manual page - doman "${FILESDIR}"/mans/rscriptd.8 - fi - - if use sgauth ; then - cd "${S}"/projects/sgauth || die "cd to sgauth failed" - - emake DESTDIR="${D}" PREFIX="${D}" install - - # Correct permissions for file - fperms 0640 /etc/stargazer/sgauth.conf - - # Install manual page - doman "${FILESDIR}"/mans/sgauth.8 - fi - - if use sgconf ; then - cd "${S}"/projects/sgconf || die "cd to sgconf failed" - - emake DESTDIR="${D}" PREFIX="${D}" install - - # Install manual page - doman "${FILESDIR}"/mans/sgconf.1 - fi - - if use sgconf_xml ; then - cd "${S}"/projects/sgconf_xml || die "cd to sgconf_xml failed" - - emake DESTDIR="${D}" PREFIX="${D}" install - - # Install manual page - doman "${FILESDIR}"/mans/sgconf_xml.1 - fi - - if use stargazer ; then - cd "${S}"/projects/stargazer || die "cd to stargazer failed" - - emake DESTDIR="${D}" PREFIX="${D}" install - - # Install docs - einstalldocs - - # Install and rename Gentoo init script - newinitd "${S}"/projects/stargazer/inst/linux/etc/init.d/stargazer.gentoo stargazer - - # Install manual page - doman "${FILESDIR}"/mans/stargazer.8 - - # Install files needed for module_store_files - if use module_store_files ; then - # Install files into specified directory - insinto /var/lib - doins -r "${S}"/projects/stargazer/inst/var/stargazer - - # Correct user and group for files and directories - fowners -R stg:stg /var/lib/stargazer - fi - - if use module_store_firebird ; then - # Install files into specified directory - insinto /usr/share/stargazer/db/firebird - doins \ - "${S}"/projects/stargazer/inst/var/00-base-00.sql \ - "${S}"/projects/stargazer/inst/var/00-alter-01.sql - fi - - if use module_store_mysql ; then - # Install file into specified directory - insinto /usr/share/stargazer/db/mysql - doins "${S}"/projects/stargazer/inst/var/00-mysql-01.sql - fi - - if use module_store_postgres ; then - # Install files into specified directory - insinto /usr/share/stargazer/db/postgresql - doins \ - "${S}"/projects/stargazer/inst/var/00-base-00.postgresql.sql \ - "${S}"/projects/stargazer/inst/var/00-alter-01.postgresql.sql - fi - - if use module_other_smux ; then - # Install files into specified directory - insinto /usr/share/snmp/mibs - doins "${S}"/projects/stargazer/plugins/other/smux/STG-MIB.mib - fi - - if use module_other_remote_script ; then - # Create subnets file based on example from mod_remote_script.conf - grep 192 "${S}"/projects/stargazer/inst/linux/etc/stargazer/conf-available.d/mod_remote_script.conf \ - | sed 's/# //' > "${ED}"/etc/stargazer/subnets - - # Correct permissions for file - fperms 0640 /etc/stargazer/subnets - fi - - # Correct permissions for files - fperms 0640 \ - /etc/stargazer/rules \ - /etc/stargazer/stargazer.conf - - # Install files into specified directory for selected modules - insinto /etc/stargazer/conf-available.d - insopts -m 0640 - - local module - for module in ${!MODULES[@]} ; do - use $module && doins "${S}"/projects/stargazer/inst/linux/etc/stargazer/conf-available.d/${MODULES[$module]#*:}.conf - done - - # Create symlinks of configs for selected modules - for module in ${!MODULES[@]} ; do - use $module \ - && dosym \ - /etc/stargazer/conf-available.d/${MODULES[$module]#*:}.conf \ - /etc/stargazer/conf-enabled.d/${MODULES[$module]#*:}.conf - done - fi - - # Correct user and group for files and directories - if use sgconv || use rscriptd || use sgauth || use stargazer ; then - fowners -R stg:stg /etc/stargazer - fi - - # Put the files in the right folder to support multilib - if [ ! -e "${ED}"/usr/$(get_libdir) ] ; then - mv "${ED}"/usr/lib/ "${ED}"/usr/$(get_libdir) \ - || die "Failed to move library directory for multilib support" - fi -} - -pkg_setup() { - # Add user and group to system only when necessary - if use sgconv || use rscriptd || use sgauth || use stargazer ; then - enewgroup stg - enewuser stg -1 -1 -1 stg - fi -} - -pkg_postinst() { - if use sgconv ; then - einfo "\nSgconv:" - einfo "----------" - einfo "For further use edit /etc/stargazer/sgconv.conf." - fi - - if use radius ; then - einfo "\nRadius:" - einfo "-------" - einfo "For further use emerge net-dialup/freeradius.\n" - - einfo "Example config:\n" - - einfo "stg {" - einfo " local_port = 6667" - einfo " server = localhost" - einfo " port = 6666" - einfo " password = 123456" - einfo " }\n" - - einfo "You should place 'stg' into section Instantiate, Authorize." - einfo "In section Authentificate 'stg' should go in sub-section" - einfo "Auth-Type before other authentifications modules:\n" - - einfo "Auth-Type PAP {" - einfo " stg" - einfo " pap" - einfo "}\n" - - einfo "It also may be used in section Accounting and Post-Auth." - - use module_auth_freeradius || einfo "\nFor use RADIUS enable USE-flag module_auth_freeradius." - fi - - if use rscriptd ; then - einfo "\nRemote Script Executer:" - einfo "-----------------------" - einfo "For further use edit /etc/stargazer/rscriptd.conf." - einfo "You have to change 'Password' field at least." - fi - - if use sgauth ; then - einfo "\nSgauth:" - einfo "-------" - einfo "For further use edit /etc/stargazer/sgauth.conf." - einfo "You have to change 'ServerName', 'Login', 'Password' fields at least." - fi - - if use sgconf ; then - einfo "\nSgconf:" - einfo "-------" - use module_config_sgconfig \ - || einfo "For further use enable USE-flag module_config_sgconfig." - fi - - if use sgconf_xml ; then - einfo "\nSgconf_xml:" - einfo "-----------" - use module_config_rpcconfig \ - || einfo "For further use enable USE-flag module_config_rpcconfig." - fi - - if use stargazer ; then - einfo "\nStargazer:" - einfo "----------" - einfo "Modules availability:\n" - if use module_auth_always_online ; then - einfo "* module_auth_always_online available." - fi - if use module_auth_internet_access ; then - einfo "* module_auth_internet_access available." - fi - if use module_auth_freeradius ; then - einfo "* module_auth_freeradius available.\n" - einfo "For further use emerge net-dialup/freeradius.\n" - use radius || einfo "\n For use RADIUS enable use USE-flag radius." - fi - if use module_capture_ipq ; then - einfo "* module_capture_ipq available." - fi - if use module_capture_ether ; then - einfo "* module_capture_ether available." - fi - if use module_capture_netflow ; then - einfo "* module_capture_netflow available.\n" - einfo "For further use emerge any netflow sensor:\n" - einfo "net-firewall/ipt_netflow or net-analyzer/softflowd.\n" - fi - if use module_config_sgconfig ; then - einfo "* module_config_sgconfig available." - fi - if use module_config_rpcconfig ; then - einfo "* module_config_rpcconfig available.\n" - einfo "KNOWN BUG: Sometimes you can't configure Stargazer" - einfo "through xml-based configurator, because module is not responding." - einfo "This bug is introduced by xmlrpc-c library." - einfo "This bug proceeds very rare, but it still exists.\n" - fi - if use module_other_ping ; then - einfo "* module_other_ping available." - fi - if use module_other_smux ; then - einfo "* module_other_smux available.\n" - einfo "For further use emerge net-analyzer/net-snmp.\n" - fi - if use module_other_remote_script ; then - einfo "* module_other_remote_script available.\n" - einfo "For further use edit /etc/stargazer/subnets.\n" - fi - if use module_store_files ; then - einfo "* module_store_files available." - fi - if use module_store_firebird ; then - einfo "* module_store_firebird available.\n" - einfo "You should add 'firebird' user to stg group:\n" - einfo "# usermod -a -G stg firebird\n" - einfo "and restart firebird:\n" - einfo "# /etc/init.d/firebird restart\n" - einfo "Stargazer DB schema for Firebird is here: /usr/share/stargazer/db/firebird" - einfo "For new setup you should execute 00-base-00.sql:\n" - einfo "# fbsql -q -i /usr/share/stargazer/db/firebird/00-base-00.sql\n" - einfo "For upgrade from version 2.406 you should execute 00-alter-01.sql:\n" - einfo "# fbsql -i /usr/share/stargazer/db/firebird/00-alter-01.sql\n" - fi - if use module_store_mysql ; then - einfo "* module_store_mysql available.\n" - einfo "For upgrade from version 2.406 you should execute 00-mysql-01.sql:\n" - einfo "# mysql < /usr/share/stargazer/db/mysql/00-mysql-01.sql\n" - fi - if use module_store_postgres ; then - einfo "* module_store_postgres available.\n" - einfo "DB schema for PostgresSQL is here: /usr/share/stargazer/db/postgresql" - einfo "For new setup you should execute 00-base-00.postgresql.sql:\n" - einfo "# psql -f /usr/share/stargazer/db/postgresql/00-base-00.postgresql.sql\n" - einfo "For upgrade from version 2.406 you should execute 00-alter-01.sql:\n" - einfo "# psql -f /usr/share/stargazer/db/postgresql/00-alter-01.sql\n" - fi - einfo "\n For all storage backends:\n" - einfo "* Default admin login - admin, default admin password - 123456." - einfo "* Default subscriber login - test, default subscriber password - 123456.\n" - einfo "Don't run newer versions without reading their ChangeLog first," - einfo "it can be found in /usr/share/doc/${PF}" - fi - if use debug ; then - ewarn "\nThis is a debug build, avoid to use it in production." - fi -} diff --git a/net-misc/stargazer/stargazer-2.408-r2.ebuild b/net-misc/stargazer/stargazer-2.408-r2.ebuild new file mode 100644 index 000000000000..7f3667a702eb --- /dev/null +++ b/net-misc/stargazer/stargazer-2.408-r2.ebuild @@ -0,0 +1,542 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PROJECTS="sgconv rlm_stg rscriptd sgauth sgconf sgconf_xml stargazer" + +STG_MODULES_AUTH="always_online internet_access freeradius" +STG_MODULES_CAPTURE="ipq ether netflow" +STG_MODULES_CONFIG="sgconfig rpcconfig" +STG_MODULES_OTHER="ping smux remote_script" +STG_MODULES_STORE="files firebird mysql postgres" + +declare -A MODULES +MODULES=( [module_auth_always_online]="authorization\/ao:mod_ao" + [module_auth_internet_access]="authorization\/inetaccess:mod_ia" + [module_auth_freeradius]="other\/radius:mod_radius" + [module_capture_ipq]="capture\/ipq_linux:mod_cap_ipq" + [module_capture_ether]="capture\/ether_linux:mod_cap_ether" + [module_capture_netflow]="capture\/cap_nf:mod_cap_nf" + [module_config_sgconfig]="configuration\/sgconfig:mod_sg" + [module_config_rpcconfig]="configuration\/rpcconfig:mod_rpc" + [module_other_ping]="other\/ping:mod_ping" + [module_other_smux]="other\/smux:mod_smux" + [module_other_remote_script]="other\/rscript:mod_remote_script" + [module_store_files]="store\/files:store_files" + [module_store_firebird]="store\/firebird:store_firebird" + [module_store_mysql]="store\/mysql:store_mysql" + [module_store_postgres]="store\/postgresql:store_postgresql" +) + +declare -A INIT +INIT=( [module_store_files]="11d" + [module_store_firebird]="11d;s/need net/need net firebird/" + [module_store_mysql]="11d;s/need net/need net mysql/" + [module_store_postgres]="11d;s/need net/need net postgresql/" +) + +MY_P="stg-${PV}" + +inherit flag-o-matic linux-info + +DESCRIPTION="Billing system for small home and office networks" +HOMEPAGE="http://stg.dp.ua/" +SRC_URI="http://stg.dp.ua/download/server/${PV}/${MY_P}.tar.gz" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +CDEPEND=" + acct-group/stg + acct-user/stg +" + +RDEPEND=" + module_config_rpcconfig? ( + dev-libs/expat + dev-libs/xmlrpc-c[abyss,cxx] + ) + module_config_sgconfig? ( dev-libs/expat ) + module_store_firebird? ( dev-db/firebird ) + module_store_mysql? ( dev-db/mysql-connector-c:0= ) + module_store_postgres? ( dev-db/postgresql:= ) + rscriptd? ( ${CDEPEND} ) + sgauth? ( ${CDEPEND} ) + sgconf? ( + ${CDEPEND} + dev-libs/expat + ) + sgconf_xml? ( dev-libs/expat ) + stargazer? ( ${CDEPEND} ) +" + +DEPEND="${RDEPEND}" + +REQUIRED_USE="stargazer? ( ^^ ( module_store_files module_store_firebird module_store_mysql module_store_postgres ) )" + +DOCS=( BUGS ../../ChangeLog CHANGES README TODO ) + +# Patches already in upstream's trunk +PATCHES=( + # Fix dependency on fbclient for module_store_firebird + "${FILESDIR}"/patches/stg-2.408-makefile-firebird-upstream.patch + # Rewrite config for rscriptd + "${FILESDIR}"/patches/stg-2.408-rscriptd.conf-upstream.patch + # Rewrite config for sgauth + "${FILESDIR}"/patches/stg-2.408-sgauth.conf-upstream.patch + # Standardization of 'On-scripts' + "${FILESDIR}"/patches/stg-2.408-on-upstream.patch + # Install demo scripts for rscriptd + "${FILESDIR}"/patches/stg-2.408-rscriptd-upstream.patch + # Fix crush on stop + "${FILESDIR}"/patches/stg-2.408-fix-crash-on-stop.patch + # Rename convertor to sgconv to avoid possible file name collisions + "${FILESDIR}"/patches/stg-2.408-sgconv-upstream.patch + # Debug support. Install radius lib to /usr/lib/freeradius + "${FILESDIR}"/patches/stg-2.408-makefile-build-upstream.patch + # Don't compile sgconv always with debug. Remove MAKEOPTS=-j1 + "${FILESDIR}"/patches/stg-2.408-build-upstream.patch + # FreeBSD install directory + "${FILESDIR}"/patches/stg-2.408-radius-upstream.patch +) + +IUSE="sgconv radius rscriptd sgauth sgconf sgconf_xml stargazer debug" + +for module in ${STG_MODULES_AUTH} ; do IUSE="${IUSE} module_auth_${module}" ; done +for module in ${STG_MODULES_CAPTURE} ; do IUSE="${IUSE} module_capture_${module}" ; done +for module in ${STG_MODULES_CONFIG} ; do IUSE="${IUSE} module_config_${module}" ; done +for module in ${STG_MODULES_OTHER} ; do IUSE="${IUSE} module_other_${module}" ; done +for module in ${STG_MODULES_STORE} ; do IUSE="${IUSE} module_store_${module}" ; done + +IUSE=${IUSE/stargazer/+stargazer} +IUSE=${IUSE/module_store_files/+module_store_files} + +src_prepare() { + # Rename convertor to sgconv to avoid possible file name collisions + mv projects/convertor/ projects/sgconv/ \ + || die "Couldn't move convertor folder" + mv projects/sgconv/convertor.conf \ + projects/sgconv/sgconv.conf || die "Couldn't move convertor config" + + default + + local project + for project in ${PROJECTS} ; do + # Rename build script to configure for further econf launch in every project + mv projects/$project/build projects/$project/configure \ + || die "Couldn't move build folder for $project" + # Change check for debug build + sed -i 's/if \[ "$1" = "debug" \]/if \[ "${10}" = "--enable-debug" \]/' \ + projects/$project/configure \ + || die "sed for debug check failed" + done + + # Correct working directory, user and group for sgconv.conf, store_files.conf + # Correct paths for rscriptd.conf, store_firebird.conf, mod_remote_scriptd.conf, stargazer.conf, rpcconfig.cpp, 00-base-00.sql + eapply "${FILESDIR}"/patches/stg-2.408-correct-paths.patch + + # Correct target install-data for stargazer, rscriptd, sgauth, remove debug symbols stripping + eapply "${FILESDIR}"/patches/stg-2.408-makefile.patch + + # Remove make from script (for keeping symbols), always add variable to Makefile.conf for all projects + eapply "${FILESDIR}"/patches/stg-2.408-build.patch + + # Remove static-libs + eapply "${FILESDIR}"/patches/stg-2.408-static-libs.patch + + # Define which module to compile + local module + for module in ${!MODULES[@]} ; do + if ! use $module ; then + sed -i "s/${MODULES[$module]%:*}//" \ + projects/stargazer/configure \ + || die "sed for module configure failed" + fi + done + + # Correct Gentoo init script + sed -i -e 's/opts/extra_commands/' \ + -e 's/runscript/openrc-run/' \ + projects/stargazer/inst/linux/etc/init.d/stargazer.gentoo \ + || die "sed for init-script failed" + local init + for init in ${!INIT[@]} ; do + if use $init ; then + sed -i "${INIT[$init]}" \ + projects/stargazer/inst/linux/etc/init.d/stargazer.gentoo \ + || die "sed for $init failed" + fi + done + + # Check for IPQ subsystem availability + if use module_capture_ipq && kernel_is ge 3 5 ; then + die "The IPQ subsystem requires kernel 3.5 or greater." + fi +} + +src_configure() { + use debug && filter-flags '-O?' + + # Define local variables, strip '+' symbol for used by default USE flags + local USEFLAGS=(${IUSE//+}) + local PROJECTS=($PROJECTS) + local i + + for (( i = 0 ; i < ${#PROJECTS[@]} ; i++ )) ; do + if use ${USEFLAGS[$i]} ; then + cd "${S}"/projects/${PROJECTS[$i]} \ + || die "cd to ${PROJECTS[$i]} failed" + econf $(use_enable debug) + fi + done +} + +src_compile() { + # Define local variables, strip '+' symbol for used by default USE flags + local USEFLAGS=(${IUSE//+}) + local PROJECTS=($PROJECTS) + local i + + # Set jobs to 1 for debug build + use debug && MAKEOPTS="-j1" + + # Build necessary libraries first + touch Makefile.conf + cd stglibs || die "cd to stglibs failed" + emake STG_LIBS="ia.lib srvconf.lib" + + for (( i = 0 ; i < ${#PROJECTS[@]} ; i++ )) ; do + if use ${USEFLAGS[$i]} ; then + cd "${S}"/projects/${PROJECTS[$i]} \ + || die "cd to ${PROJECTS[$i]} failed" + emake + fi + done +} + +src_install() { + if use rscriptd || use stargazer ; then + # Install config file for logrotate + insinto /etc/logrotate.d + newins "${FILESDIR}"/logrotate stargazer + + # Keeping logs directory + diropts -m 755 -o stg -g stg + keepdir /var/log/stargazer + if use stargazer ; then + diropts -m 775 -o stg -g stg + keepdir /var/lib/stargazer + fi + fi + + if use sgconv ; then + cd projects/sgconv || die "cd to sgconv failed" + + emake DESTDIR="${D}" PREFIX="${D}" install + + # Install files into specified directory + insinto /etc/stargazer + doins "${S}"/projects/sgconv/sgconv.conf + + # Install manual page + doman "${FILESDIR}"/mans/sgconv.1 + fi + + if use radius ; then + cd "${S}"/projects/rlm_stg || die "cd to rlm_stg failed" + + emake DESTDIR="${D}" PREFIX="${D}" install + fi + + if use rscriptd ; then + cd "${S}"/projects/rscriptd || die "cd to rscriptd failed" + + emake DESTDIR="${D}" PREFIX="${D}" install + + # Install Gentoo init script + doinitd "${FILESDIR}"/rscriptd + + # Correct permissions for file + fperms 0640 /etc/stargazer/rscriptd.conf + + # Install manual page + doman "${FILESDIR}"/mans/rscriptd.8 + fi + + if use sgauth ; then + cd "${S}"/projects/sgauth || die "cd to sgauth failed" + + emake DESTDIR="${D}" PREFIX="${D}" install + + # Correct permissions for file + fperms 0640 /etc/stargazer/sgauth.conf + + # Install manual page + doman "${FILESDIR}"/mans/sgauth.8 + fi + + if use sgconf ; then + cd "${S}"/projects/sgconf || die "cd to sgconf failed" + + emake DESTDIR="${D}" PREFIX="${D}" install + + # Install manual page + doman "${FILESDIR}"/mans/sgconf.1 + fi + + if use sgconf_xml ; then + cd "${S}"/projects/sgconf_xml || die "cd to sgconf_xml failed" + + emake DESTDIR="${D}" PREFIX="${D}" install + + # Install manual page + doman "${FILESDIR}"/mans/sgconf_xml.1 + fi + + if use stargazer ; then + cd "${S}"/projects/stargazer || die "cd to stargazer failed" + + emake DESTDIR="${D}" PREFIX="${D}" install + + # Install docs + einstalldocs + + # Install and rename Gentoo init script + newinitd "${S}"/projects/stargazer/inst/linux/etc/init.d/stargazer.gentoo stargazer + + # Install manual page + doman "${FILESDIR}"/mans/stargazer.8 + + # Install files needed for module_store_files + if use module_store_files ; then + # Install files into specified directory + insinto /var/lib + doins -r "${S}"/projects/stargazer/inst/var/stargazer + + # Correct user and group for files and directories + fowners -R stg:stg /var/lib/stargazer + fi + + if use module_store_firebird ; then + # Install files into specified directory + insinto /usr/share/stargazer/db/firebird + doins \ + "${S}"/projects/stargazer/inst/var/00-base-00.sql \ + "${S}"/projects/stargazer/inst/var/00-alter-01.sql + fi + + if use module_store_mysql ; then + # Install file into specified directory + insinto /usr/share/stargazer/db/mysql + doins "${S}"/projects/stargazer/inst/var/00-mysql-01.sql + fi + + if use module_store_postgres ; then + # Install files into specified directory + insinto /usr/share/stargazer/db/postgresql + doins \ + "${S}"/projects/stargazer/inst/var/00-base-00.postgresql.sql \ + "${S}"/projects/stargazer/inst/var/00-alter-01.postgresql.sql + fi + + if use module_other_smux ; then + # Install files into specified directory + insinto /usr/share/snmp/mibs + doins "${S}"/projects/stargazer/plugins/other/smux/STG-MIB.mib + fi + + if use module_other_remote_script ; then + # Create subnets file based on example from mod_remote_script.conf + grep 192 "${S}"/projects/stargazer/inst/linux/etc/stargazer/conf-available.d/mod_remote_script.conf \ + | sed 's/# //' > "${ED}"/etc/stargazer/subnets + + # Correct permissions for file + fperms 0640 /etc/stargazer/subnets + fi + + # Correct permissions for files + fperms 0640 \ + /etc/stargazer/rules \ + /etc/stargazer/stargazer.conf + + # Install files into specified directory for selected modules + insinto /etc/stargazer/conf-available.d + insopts -m 0640 + + local module + for module in ${!MODULES[@]} ; do + use $module && doins "${S}"/projects/stargazer/inst/linux/etc/stargazer/conf-available.d/${MODULES[$module]#*:}.conf + done + + # Create symlinks of configs for selected modules + for module in ${!MODULES[@]} ; do + use $module \ + && dosym \ + /etc/stargazer/conf-available.d/${MODULES[$module]#*:}.conf \ + /etc/stargazer/conf-enabled.d/${MODULES[$module]#*:}.conf + done + fi + + # Correct user and gsroup for files and directories + if use sgconv || use rscriptd || use sgauth || use stargazer ; then + fowners -R stg:stg /etc/stargazer + fi + + # Put the files in the right folder to support multilib + if [ ! -e "${ED}"/usr/$(get_libdir) ] ; then + mv "${ED}"/usr/lib/ "${ED}"/usr/$(get_libdir) \ + || die "Failed to move library directory for multilib support" + fi +} + +pkg_postinst() { + if use sgconv ; then + einfo "\nSgconv:" + einfo "----------" + einfo "For further use edit /etc/stargazer/sgconv.conf." + fi + + if use radius ; then + einfo "\nRadius:" + einfo "-------" + einfo "For further use emerge net-dialup/freeradius.\n" + + einfo "Example config:\n" + + einfo "stg {" + einfo " local_port = 6667" + einfo " server = localhost" + einfo " port = 6666" + einfo " password = 123456" + einfo " }\n" + + einfo "You should place 'stg' into section Instantiate, Authorize." + einfo "In section Authentificate 'stg' should go in sub-section" + einfo "Auth-Type before other authentifications modules:\n" + + einfo "Auth-Type PAP {" + einfo " stg" + einfo " pap" + einfo "}\n" + + einfo "It also may be used in section Accounting and Post-Auth." + + use module_auth_freeradius || einfo "\nFor use RADIUS enable USE-flag module_auth_freeradius." + fi + + if use rscriptd ; then + einfo "\nRemote Script Executer:" + einfo "-----------------------" + einfo "For further use edit /etc/stargazer/rscriptd.conf." + einfo "You have to change 'Password' field at least." + fi + + if use sgauth ; then + einfo "\nSgauth:" + einfo "-------" + einfo "For further use edit /etc/stargazer/sgauth.conf." + einfo "You have to change 'ServerName', 'Login', 'Password' fields at least." + fi + + if use sgconf ; then + einfo "\nSgconf:" + einfo "-------" + use module_config_sgconfig \ + || einfo "For further use enable USE-flag module_config_sgconfig." + fi + + if use sgconf_xml ; then + einfo "\nSgconf_xml:" + einfo "-----------" + use module_config_rpcconfig \ + || einfo "For further use enable USE-flag module_config_rpcconfig." + fi + + if use stargazer ; then + einfo "\nStargazer:" + einfo "----------" + einfo "Modules availability:\n" + if use module_auth_always_online ; then + einfo "* module_auth_always_online available." + fi + if use module_auth_internet_access ; then + einfo "* module_auth_internet_access available." + fi + if use module_auth_freeradius ; then + einfo "* module_auth_freeradius available.\n" + einfo "For further use emerge net-dialup/freeradius.\n" + use radius || einfo "\n For use RADIUS enable use USE-flag radius." + fi + if use module_capture_ipq ; then + einfo "* module_capture_ipq available." + fi + if use module_capture_ether ; then + einfo "* module_capture_ether available." + fi + if use module_capture_netflow ; then + einfo "* module_capture_netflow available.\n" + einfo "For further use emerge any netflow sensor:\n" + einfo "net-firewall/ipt_netflow or net-analyzer/softflowd.\n" + fi + if use module_config_sgconfig ; then + einfo "* module_config_sgconfig available." + fi + if use module_config_rpcconfig ; then + einfo "* module_config_rpcconfig available.\n" + einfo "KNOWN BUG: Sometimes you can't configure Stargazer" + einfo "through xml-based configurator, because module is not responding." + einfo "This bug is introduced by xmlrpc-c library." + einfo "This bug proceeds very rare, but it still exists.\n" + fi + if use module_other_ping ; then + einfo "* module_other_ping available." + fi + if use module_other_smux ; then + einfo "* module_other_smux available.\n" + einfo "For further use emerge net-analyzer/net-snmp.\n" + fi + if use module_other_remote_script ; then + einfo "* module_other_remote_script available.\n" + einfo "For further use edit /etc/stargazer/subnets.\n" + fi + if use module_store_files ; then + einfo "* module_store_files available." + fi + if use module_store_firebird ; then + einfo "* module_store_firebird available.\n" + einfo "You should add 'firebird' user to stg group:\n" + einfo "# usermod -a -G stg firebird\n" + einfo "and restart firebird:\n" + einfo "# /etc/init.d/firebird restart\n" + einfo "Stargazer DB schema for Firebird is here: /usr/share/stargazer/db/firebird" + einfo "For new setup you should execute 00-base-00.sql:\n" + einfo "# fbsql -q -i /usr/share/stargazer/db/firebird/00-base-00.sql\n" + einfo "For upgrade from version 2.406 you should execute 00-alter-01.sql:\n" + einfo "# fbsql -i /usr/share/stargazer/db/firebird/00-alter-01.sql\n" + fi + if use module_store_mysql ; then + einfo "* module_store_mysql available.\n" + einfo "For upgrade from version 2.406 you should execute 00-mysql-01.sql:\n" + einfo "# mysql < /usr/share/stargazer/db/mysql/00-mysql-01.sql\n" + fi + if use module_store_postgres ; then + einfo "* module_store_postgres available.\n" + einfo "DB schema for PostgresSQL is here: /usr/share/stargazer/db/postgresql" + einfo "For new setup you should execute 00-base-00.postgresql.sql:\n" + einfo "# psql -f /usr/share/stargazer/db/postgresql/00-base-00.postgresql.sql\n" + einfo "For upgrade from version 2.406 you should execute 00-alter-01.sql:\n" + einfo "# psql -f /usr/share/stargazer/db/postgresql/00-alter-01.sql\n" + fi + einfo "\n For all storage backends:\n" + einfo "* Default admin login - admin, default admin password - 123456." + einfo "* Default subscriber login - test, default subscriber password - 123456.\n" + einfo "Don't run newer versions without reading their ChangeLog first," + einfo "it can be found in /usr/share/doc/${PF}" + fi + if use debug ; then + ewarn "\nThis is a debug build, avoid to use it in production." + fi +} -- cgit v1.2.3