mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-04-07 03:10:15 -04:00
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 <fkobi@pm.me>
This commit is contained in:
26
net-p2p/p2pool/files/p2pool.confd
Normal file
26
net-p2p/p2pool/files/p2pool.confd
Normal file
@@ -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"
|
||||
47
net-p2p/p2pool/files/p2pool.initd
Normal file
47
net-p2p/p2pool/files/p2pool.initd
Normal file
@@ -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
|
||||
|
||||
}
|
||||
@@ -5,6 +5,9 @@
|
||||
<email>adam.pimentel46@gmail.com</email>
|
||||
<name>Adam Pimentel</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="daemon">Install OpenRC scripts allowing for running p2pool as a system service</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<bugs-to>https://github.com/SChernykh/p2pool/issues</bugs-to>
|
||||
<changelog>https://github.com/SChernykh/p2pool/releases</changelog>
|
||||
|
||||
102
net-p2p/p2pool/p2pool-4.4-r1.ebuild
Normal file
102
net-p2p/p2pool/p2pool-4.4-r1.ebuild
Normal file
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user