EAPI=8 inherit cmake DESCRIPTION="Cross-platform SMTP, IMAP and POP3 mail server" HOMEPAGE="https://www.progressiverobot.com/hmailserver-services/" SRC_URI="https://gitlab.com/hmailserver/hmailserver/-/archive/v${PV}/hmailserver-v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="AGPL-3+" SLOT="0" KEYWORDS="amd64 arm64" IUSE="mariadb" RDEPEND=" dev-db/postgresql:= dev-libs/boost:= dev-libs/cyrus-sasl:= dev-libs/openssl:= net-nds/openldap:= sys-libs/zlib:= mariadb? ( dev-db/mariadb:= ) " BDEPEND=" dev-build/cmake " DEPEND="${RDEPEND}" S="${WORKDIR}/hmailserver-v${PV}" CMAKE_USE_DIR="${S}/hmailserver/source/Server" src_prepare() { # Use shared Gentoo Boost libraries. sed -i \ 's/set(Boost_USE_STATIC_LIBS ON)/set(Boost_USE_STATIC_LIBS OFF)/' \ "${CMAKE_USE_DIR}/CMakeLists.txt" || die "Failed to patch Boost linkage" # Remove upstream's unconditional systemd installation rule. sed -i \ '/install(FILES .*platform\/packaging\/hmailserver\.service/,+1d' \ "${CMAKE_USE_DIR}/CMakeLists.txt" || die "Failed to remove upstream systemd install rule" cmake_src_prepare } src_configure() { local mycmakeargs=( -DCMAKE_BUILD_TYPE=Release -DHM_BOOST_STATIC=OFF ) cmake_src_configure } src_install() { cmake_src_install # Systemd unit insinto /usr/lib/systemd/system doins "${FILESDIR}/hmailserver.service" # Persistent directories from [Directories] in hMailServer.ini keepdir /var/lib/hmailserver keepdir /var/lib/hmailserver/temp keepdir /var/lib/hmailserver/events keepdir /var/lib/hmailserver/database keepdir /var/log/hmailserver # OpenRC init script newinitd "${FILESDIR}/hmailserver.initd" hmailserver # Initial configuration script exeinto /usr/share/hmailserver doexe "${FILESDIR}/initialconfig.sh" # Remove upstream live-update units; version management is Portage's job rm -f "${ED}/usr/lib/systemd/system/hmailserver-update.path" rm -f "${ED}/usr/lib/systemd/system/hmailserver-update.service" } pkg_postinst() { einfo "hMailServer has been installed." einfo "" einfo "Before starting the service, you must run the initial" einfo "configuration script as root:" einfo "" einfo " sudo /usr/share/hmailserver/initialconfig.sh" einfo "" einfo "This script is interactive and must be run from a terminal." einfo "It will set the administrator password, create the database" einfo "user and database, and import the schema." einfo "" einfo "If you have just installed a database server, initialize it" einfo "first:" einfo "" einfo " PostgreSQL : sudo emerge --config dev-db/postgresql" einfo " MariaDB : sudo emerge --config dev-db/mariadb" einfo "" }