From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 6F9681584AD for ; Tue, 29 Apr 2025 15:41:08 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 58263342FA7 for ; Tue, 29 Apr 2025 15:41:08 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 830AC110328; Tue, 29 Apr 2025 15:41:04 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 7880E110328 for ; Tue, 29 Apr 2025 15:41:04 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 30965342FA7 for ; Tue, 29 Apr 2025 15:41:04 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 952771BAD for ; Tue, 29 Apr 2025 15:41:02 +0000 (UTC) From: "Filip Kobierski" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Filip Kobierski" Message-ID: <1745941263.f4c4640b0dedf564946b8cd5a3971dc67b989ceb.fkobi@gentoo> Subject: [gentoo-commits] repo/proj/guru:dev commit in: net-p2p/p2pool/, net-p2p/p2pool/files/ X-VCS-Repository: repo/proj/guru X-VCS-Files: net-p2p/p2pool/files/p2pool.confd net-p2p/p2pool/files/p2pool.initd net-p2p/p2pool/metadata.xml net-p2p/p2pool/p2pool-4.4-r1.ebuild X-VCS-Directories: net-p2p/p2pool/ net-p2p/p2pool/files/ X-VCS-Committer: fkobi X-VCS-Committer-Name: Filip Kobierski X-VCS-Revision: f4c4640b0dedf564946b8cd5a3971dc67b989ceb X-VCS-Branch: dev Date: Tue, 29 Apr 2025 15:41:02 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: f0717656-ec50-4367-a1df-591c9691009a X-Archives-Hash: a8d7a6b56f33708f5507e536894d8912 commit: f4c4640b0dedf564946b8cd5a3971dc67b989ceb Author: Filip Kobierski pm me> AuthorDate: Tue Apr 29 15:29:33 2025 +0000 Commit: Filip Kobierski pm me> CommitDate: Tue Apr 29 15:41:03 2025 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=f4c4640b net-p2p/p2pool: add 4.4-r1 with improvements 1. USE=daemon with openrc scripts - disabled by default, the behaviour does not change 2. adjust DEPENDs - openssl is not needed if USE=ssl - czmq is not linked to FWICT - add libsodium & randomx 3. Adjust style to be shorter Signed-off-by: Filip Kobierski pm.me> net-p2p/p2pool/files/p2pool.confd | 26 +++++++++ net-p2p/p2pool/files/p2pool.initd | 47 +++++++++++++++++ net-p2p/p2pool/metadata.xml | 3 ++ net-p2p/p2pool/p2pool-4.4-r1.ebuild | 102 ++++++++++++++++++++++++++++++++++++ 4 files changed, 178 insertions(+) diff --git a/net-p2p/p2pool/files/p2pool.confd b/net-p2p/p2pool/files/p2pool.confd new file mode 100644 index 000000000..c85f275e7 --- /dev/null +++ b/net-p2p/p2pool/files/p2pool.confd @@ -0,0 +1,26 @@ +# /etc/conf.d/p2pool: config file for /etc/init.d/p2pool + +# Wallet address to recieve the payouts. +# Note that it needs to be the primary address (start with 4) +P2POOL_WALLET="" + +# IP address of your Monero node +#P2POOL_HOST="127.0.0.1" + +#P2POOL_USER="monero" +#P2POOL_GROUP="monero" + +#P2POOL_DATADIR="/var/lib/p2pool" +#P2POOL_LOGLEVEL=1 + +#P2POOL_NICE=5 +#P2POOL_IONICE=2:4 # See START-STOP-DAEMON(8) for details + +#P2POOL_UMASK=007 + +# Uncomment to have a persistent log. +# This is not recommended as it does not rotate. +#P2POOL_KEEPLOG=1 + +# Extra options passed to the daemon +#P2POOL_OPTS="--mini" diff --git a/net-p2p/p2pool/files/p2pool.initd b/net-p2p/p2pool/files/p2pool.initd new file mode 100644 index 000000000..d70274e56 --- /dev/null +++ b/net-p2p/p2pool/files/p2pool.initd @@ -0,0 +1,47 @@ +#!/sbin/openrc-run +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +description="Decentralized Monero mining pool daemon" +command="/usr/bin/${RC_SVCNAME}" +command_background=1 +command_progress=1 +pidfile="/run/${RC_SVCNAME}.pid" +retry="SIGTERM/30/SIGKILL/5" # shutting down takes 30s + +P2POOL_HOST=${P2POOL_HOST:-127.0.0.1} +P2POOL_DATADIR=${P2POOL_DATADIR:-/var/lib/p2pool} +P2POOL_LOGLEVEL=${P2POOL_LOGLEVEL:-1} +P2POOL_NICE=${P2POOL_NICE:-5} +P2POOL_IONICE=${P2POOL_IONICE:-2:4} + +command_args="--wallet ${P2POOL_WALLET} \ + --loglevel ${P2POOL_LOGLEVEL} \ + --data-dir ${P2POOL_DATADIR} \ + ${P2POOL_OPTS}\ +" +command_user="${P2POOL_USER:-monero}:${P2POOL_GROUP:-monero}" +umask=${P2POOL_UMASK:-007} +start_stop_daemon_args="--nicelevel ${P2POOL_NICE} --ionice ${P2POOL_IONICE}" + + +depend() { + need net + [ ${P2POOL_HOST} = "127.0.0.1" ] && need monerod +} + +start_pre() { + if [ -z ${P2POOL_WALLET} ]; then + eerror "p2pool cannot be started without a wallet address" + eerror "Please set P2POOL_WALLET in /etc/conf.d/p2pool" + false + fi + einfo "Will mine for wallet ${P2POOL_WALLET}" + checkpath --owner ${P2POOL_USER}:${P2POOL_GROUP} \ + --directory ${P2POOL_DATADIR} + + if [ -z $P2POOL_KEEPLOG ]; then + rm --force "${P2POOL_DATADIR}/p2pool.log" + fi + +} diff --git a/net-p2p/p2pool/metadata.xml b/net-p2p/p2pool/metadata.xml index f6c627271..c4ff3cf03 100644 --- a/net-p2p/p2pool/metadata.xml +++ b/net-p2p/p2pool/metadata.xml @@ -5,6 +5,9 @@ adam.pimentel46@gmail.com Adam Pimentel + + Install OpenRC scripts allowing for running p2pool as a system service + https://github.com/SChernykh/p2pool/issues https://github.com/SChernykh/p2pool/releases diff --git a/net-p2p/p2pool/p2pool-4.4-r1.ebuild b/net-p2p/p2pool/p2pool-4.4-r1.ebuild new file mode 100644 index 000000000..512a37f5e --- /dev/null +++ b/net-p2p/p2pool/p2pool-4.4-r1.ebuild @@ -0,0 +1,102 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +#TODO: enable/fix GRPC/TLS dependency and add it as USE flag (https://github.com/SChernykh/p2pool/issues/313) +# These features build fine in cmake outside of portage, I can't figure out how to link them here for the life of me. +# It's probably better to just re-write the CMakeLists.txt to dynamicially link with gRPC + +EAPI=8 + +inherit cmake verify-sig + +DESCRIPTION="Decentralized pool for Monero mining" +HOMEPAGE="https://p2pool.io" +SRC_URI=" + https://github.com/SChernykh/p2pool/releases/download/v${PV}/p2pool_source.tar.xz -> ${P}.tar.xz + verify-sig? ( https://github.com/SChernykh/p2pool/releases/download/v${PV}/sha256sums.txt.asc -> ${P}_shasums.asc ) +" + +LICENSE="BSD GPL-3+ ISC LGPL-3+ MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +#IUSE="grpc tls" +IUSE="daemon" + +DEPEND=" + dev-libs/libsodium:= + dev-libs/libuv:= + dev-libs/randomx + net-libs/zeromq:= + net-misc/curl + daemon? ( + acct-group/monero + acct-user/monero + ) +" +RDEPEND="${DEPEND}" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-schernykh )" + +src_unpack() { + if use verify-sig; then + local VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/SChernykh.asc + pushd "${DISTDIR}" > /dev/null || die + verify-sig_verify_message ${P}_shasums.asc - | \ + tr \\r \\n | \ + tr '[:upper:]' '[:lower:]' | \ + sed -n '/p2pool_source/,$p' | \ + grep -m 1 sha256: | \ + sed "s/sha256: \(.*\)/\1 ${P}.tar.xz/" | \ + verify-sig_verify_unsigned_checksums - sha256 ${P}.tar.xz + assert + popd || die + fi + unpack ${P}.tar.xz + mv -T "${WORKDIR}"/{${PN},${P}} || die +} + +src_configure() { + local mycmakeargs=( + -DSTATIC_BINARY=OFF + -DSTATIC_LIBS=OFF + -DWITH_GRPC=OFF #$(usex grpc) + -DWITH_TLS=OFF #$(usex tls) + ) + cmake_src_configure +} + +src_install(){ + dobin "${BUILD_DIR}/p2pool" + + if use daemon; then + # data-dir + keepdir /var/lib/${PN} + fowners monero:monero /var/lib/${PN} + fperms 0755 /var/lib/${PN} + + # OpenRC + newconfd "${FILESDIR}"/${PN}.confd ${PN} + newinitd "${FILESDIR}"/${PN}.initd ${PN} + fi +} + +pkg_postinst() { + #Some important wisdom taken from P2Pool documentation + ewarn "P2Pool for Monero is now installed." + ewarn "You can run it by doing 'p2pool --host 127.0.0.1 --wallet YOUR_PRIMARY_ADDRESS'" + ewarn "Where 127.0.0.1 is the address of a local monero node (e.g. monerod)" + ewarn "" + ewarn "Once configured, point your RandomX miner (e.g. XMRig) at p2pool" + ewarn "For example 'xmrig -o 127.0.0.1:3333'" + ewarn "" + ewarn "You MUST use your primary address when using p2pool, just like solo mining." + ewarn "If you want privacy, create a new mainnet wallet for P2Pool mining." + ewarn "" + ewarn "Rewards will not be visible unless you use a wallet that supports P2Pool." + ewarn "See https://p2pool.io/#help and https://github.com/SChernykh/p2pool for more information." + + if use daemon; then + einfo "p2pool supports just OpenRC daemon right now." + einfo "To launch it set your wallet address in /etc/conf.d/${PN} and run" + einfo " # rc-service p2pool start" + fi +}