Gentoo Archives: gentoo-commits

From: Craig Andrews <candrews@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-p2p/xmr-stak-rx/, net-p2p/xmr-stak-rx/files/
Date: Thu, 28 Nov 2019 17:06:37
Message-Id: 1574960787.689374c04d16806fb4d5aac889c9088f0b430774.candrews@gentoo
1 commit: 689374c04d16806fb4d5aac889c9088f0b430774
2 Author: Craig Andrews <candrews <AT> gentoo <DOT> org>
3 AuthorDate: Wed Nov 27 22:16:50 2019 +0000
4 Commit: Craig Andrews <candrews <AT> gentoo <DOT> org>
5 CommitDate: Thu Nov 28 17:06:27 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=689374c0
7
8 net-p2p/xmr-stak-rx: Monero RandomX Miner
9
10 Package-Manager: Portage-2.3.79, Repoman-2.3.18
11 Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>
12
13 net-p2p/xmr-stak-rx/Manifest | 1 +
14 net-p2p/xmr-stak-rx/files/xmr-stak-rx | 24 ++++++++++
15 net-p2p/xmr-stak-rx/files/xmr-stak-rx.service | 32 +++++++++++++
16 net-p2p/xmr-stak-rx/metadata.xml | 17 +++++++
17 net-p2p/xmr-stak-rx/xmr-stak-rx-1.0.1.ebuild | 65 +++++++++++++++++++++++++++
18 net-p2p/xmr-stak-rx/xmr-stak-rx-9999.ebuild | 65 +++++++++++++++++++++++++++
19 6 files changed, 204 insertions(+)
20
21 diff --git a/net-p2p/xmr-stak-rx/Manifest b/net-p2p/xmr-stak-rx/Manifest
22 new file mode 100644
23 index 00000000000..a85b06cd744
24 --- /dev/null
25 +++ b/net-p2p/xmr-stak-rx/Manifest
26 @@ -0,0 +1 @@
27 +DIST xmr-stak-rx-1.0.1.tar.gz 500735 BLAKE2B 112b75122f35358c8558dec116a5f37bbbd13e9f57a767e03e85da37ab4a408831aa50bf5f2415451f776492b42c5a4a36de730fefc7d99bb13f437c9007d549 SHA512 488884948ad66445c37725397152201883feef8aff5afecaa93297a5bb45e65173b095e2e796d729bd8e9c778e94ee6fb65146250be54c39b10635a2569b6866
28
29 diff --git a/net-p2p/xmr-stak-rx/files/xmr-stak-rx b/net-p2p/xmr-stak-rx/files/xmr-stak-rx
30 new file mode 100644
31 index 00000000000..7803b4eb27a
32 --- /dev/null
33 +++ b/net-p2p/xmr-stak-rx/files/xmr-stak-rx
34 @@ -0,0 +1,24 @@
35 +#!/sbin/openrc-run
36 +# Copyright 1999-2019 Gentoo Authors
37 +# Distributed under the terms fo the GNU General Public License, v2
38 +# /etc/init.d/xmr-stak-rx
39 +name="xmr-stak-rx"
40 +description="Free RandomX miner"
41 +pidfile=/run/xmr-stak-rx.pid
42 +command=/usr/bin/xmr-stak-rx
43 +command_args="--cpu /etc/xmr-stak-rx/cpu.config --amd /etc/xmr-stak-rx/amd.config --nvidia /etc/xmr-stak-rx/nvidia.config -c /etc/xmr-stak-rx/main.config -C /etc/xmr-stak-rx/pools.txt"
44 +start_stop_daemon_args="--background --make-pidfile"
45 +
46 +start_pre() {
47 + if [ ! -r /etc/xmr-stak-rx/main.config ]; then
48 + eerror "/etc/xmr-stak-rx/main.config is missing."
49 + errror "Run:"
50 + eerror "/usr/bin/xmr-stak-rx --cpu /etc/xmr-stak-rx/cpu.config --amd /etc/xmr-stak-rx/amd.config --nvidia /etc/xmr-stak-rx/nvidia.config -c /etc/xmr-stak-rx/main.config -C /etc/xmr-stak-rx/pools.txt"
51 + errror "xmr-stak-rx can now be terminated and this service can be started"
52 + return 1
53 + fi
54 +}
55 +
56 +depend() {
57 + use dns net
58 +}
59
60 diff --git a/net-p2p/xmr-stak-rx/files/xmr-stak-rx.service b/net-p2p/xmr-stak-rx/files/xmr-stak-rx.service
61 new file mode 100644
62 index 00000000000..d65af4945df
63 --- /dev/null
64 +++ b/net-p2p/xmr-stak-rx/files/xmr-stak-rx.service
65 @@ -0,0 +1,32 @@
66 +[Unit]
67 +Description=Monero RandomX Miner
68 +After=network-online.target
69 +AssertFileNotEmpty=/etc/xmr-stak-rx/main.config
70 +
71 +[Service]
72 +Environment=GPU_FORCE_64BIT_PTR=1
73 +Environment=GPU_MAX_HEAP_SIZE=100
74 +Environment=GPU_USE_SYNC_OBJECTS=1
75 +Environment=GPU_MAX_ALLOC_PERCENT=100
76 +Environment=GPU_SINGLE_ALLOC_PERCENT=100
77 +ExecStart=/usr/bin/xmr-stak-rx --cpu /etc/xmr-stak-rx/cpu.config --amd /etc/xmr-stak-rx/amd.config --nvidia /etc/xmr-stak-rx/nvidia.config -c /etc/xmr-stak-rx/main.config -C /etc/xmr-stak-rx/pools.txt
78 +DynamicUser=true
79 +Group=video
80 +CPUSchedulingPolicy=idle
81 +PrivateTmp=true
82 +ProtectHome=true
83 +ProtectSystem=strict
84 +NoNewPrivileges=true
85 +CapabilityBoundingSet=
86 +MemoryDenyWriteExecute=true
87 +ProtectKernelModules=true
88 +ProtectKernelTunables=true
89 +ProtectControlGroups=true
90 +RestrictRealtime=true
91 +RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
92 +RestrictNamespaces=true
93 +PrivateUsers=true
94 +ConfigurationDirectory=xmr-stak-rx
95 +
96 +[Install]
97 +WantedBy=multi-user.target
98
99 diff --git a/net-p2p/xmr-stak-rx/metadata.xml b/net-p2p/xmr-stak-rx/metadata.xml
100 new file mode 100644
101 index 00000000000..e487487db1d
102 --- /dev/null
103 +++ b/net-p2p/xmr-stak-rx/metadata.xml
104 @@ -0,0 +1,17 @@
105 +<?xml version="1.0" encoding="UTF-8"?>
106 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
107 +<pkgmetadata>
108 + <maintainer type="person">
109 + <email>candrews@g.o</email>
110 + <name>Craig Andrews</name>
111 + </maintainer>
112 + <upstream>
113 + <remote-id type="github">fireice-uk/xmr-stak</remote-id>
114 + </upstream>
115 + <use>
116 + <flag name="cuda">Enable NVIDIA CUDA toolkit support</flag>
117 + <flag name="hwloc">Enable CPU affinity support via hwloc</flag>
118 + <flag name="opencl">Enable OpenCL support</flag>
119 + <flag name="webserver">Enable internal webserver</flag>
120 + </use>
121 +</pkgmetadata>
122
123 diff --git a/net-p2p/xmr-stak-rx/xmr-stak-rx-1.0.1.ebuild b/net-p2p/xmr-stak-rx/xmr-stak-rx-1.0.1.ebuild
124 new file mode 100644
125 index 00000000000..5bd13426b52
126 --- /dev/null
127 +++ b/net-p2p/xmr-stak-rx/xmr-stak-rx-1.0.1.ebuild
128 @@ -0,0 +1,65 @@
129 +# Copyright 1999-2019 Gentoo Authors
130 +# Distributed under the terms of the GNU General Public License v2
131 +
132 +EAPI=7
133 +
134 +inherit cmake-utils systemd
135 +
136 +if [[ ${PV} == "9999" ]] ; then
137 + EGIT_REPO_URI="https://github.com/fireice-uk/xmr-stak.git"
138 + EGIT_BRANCH="xmr-stak-rx-dev"
139 + inherit git-r3
140 + SRC_URI=""
141 +else
142 + SRC_URI="https://github.com/fireice-uk/xmr-stak/archive/${PV}-rx.tar.gz -> ${P}.tar.gz"
143 + S="${WORKDIR}/xmr-stak-${PV}-rx"
144 + KEYWORDS="~amd64"
145 +fi
146 +
147 +DESCRIPTION="Monero RandomX Miner"
148 +HOMEPAGE="https://github.com/fireice-uk/xmr-stak"
149 +LICENSE="GPL-3"
150 +SLOT="0"
151 +IUSE="cuda hwloc opencl ssl webserver"
152 +
153 +DEPEND="cuda? ( dev-util/nvidia-cuda-toolkit )
154 + hwloc? ( sys-apps/hwloc )
155 + opencl? ( virtual/opencl )
156 + ssl? ( dev-libs/openssl:0= )
157 + webserver? ( net-libs/libmicrohttpd )"
158 +RDEPEND="${DEPEND}"
159 +
160 +src_prepare() {
161 + cmake-utils_src_prepare
162 +}
163 +
164 +src_configure() {
165 + local mycmakeargs=(
166 + -DCUDA_ENABLE=$(usex cuda)
167 + -DHWLOC_ENABLE=$(usex hwloc)
168 + -DMICROHTTPD_ENABLE=$(usex webserver)
169 + -DOpenCL_ENABLE=$(usex opencl)
170 + -DOpenSSL_ENABLE=$(usex ssl)
171 + -DLIBRARY_OUTPUT_PATH=$(get_libdir)
172 + )
173 + cmake-utils_src_configure
174 +}
175 +
176 +src_install() {
177 + cmake-utils_src_install
178 + systemd_newunit "${FILESDIR}"/${PN}.service ${PN}.service
179 + doinitd "${FILESDIR}"/${PN}
180 + dodir /etc/xmr-stak-rx
181 +}
182 +
183 +pkg_postinst() {
184 + if [ ! -e "${ROOT}/etc/xmr-stak-rx/main.config" ]; then
185 + ewarn "To use xmr-stack-rx:"
186 + if use cuda || use opencl; then
187 + ewarn "As root or as a user that is a member of the 'video' group,"
188 + fi
189 + ewarn "run:"
190 + ewarn "/usr/bin/xmr-stak-rx --cpu /etc/xmr-stak-rx/cpu.config --amd /etc/xmr-stak-rx/amd.config --nvidia /etc/xmr-stak-rx/nvidia.config -c /etc/xmr-stak-rx/main.config -C /etc/xmr-stak-rx/pools.txt"
191 + ewarn "xmr-stak-rx can now be terminated and 'systemctl start xmr-stak-rx' or '/etc/init.d/xmr-stak-rx start' can be used."
192 + fi
193 +}
194
195 diff --git a/net-p2p/xmr-stak-rx/xmr-stak-rx-9999.ebuild b/net-p2p/xmr-stak-rx/xmr-stak-rx-9999.ebuild
196 new file mode 100644
197 index 00000000000..5bd13426b52
198 --- /dev/null
199 +++ b/net-p2p/xmr-stak-rx/xmr-stak-rx-9999.ebuild
200 @@ -0,0 +1,65 @@
201 +# Copyright 1999-2019 Gentoo Authors
202 +# Distributed under the terms of the GNU General Public License v2
203 +
204 +EAPI=7
205 +
206 +inherit cmake-utils systemd
207 +
208 +if [[ ${PV} == "9999" ]] ; then
209 + EGIT_REPO_URI="https://github.com/fireice-uk/xmr-stak.git"
210 + EGIT_BRANCH="xmr-stak-rx-dev"
211 + inherit git-r3
212 + SRC_URI=""
213 +else
214 + SRC_URI="https://github.com/fireice-uk/xmr-stak/archive/${PV}-rx.tar.gz -> ${P}.tar.gz"
215 + S="${WORKDIR}/xmr-stak-${PV}-rx"
216 + KEYWORDS="~amd64"
217 +fi
218 +
219 +DESCRIPTION="Monero RandomX Miner"
220 +HOMEPAGE="https://github.com/fireice-uk/xmr-stak"
221 +LICENSE="GPL-3"
222 +SLOT="0"
223 +IUSE="cuda hwloc opencl ssl webserver"
224 +
225 +DEPEND="cuda? ( dev-util/nvidia-cuda-toolkit )
226 + hwloc? ( sys-apps/hwloc )
227 + opencl? ( virtual/opencl )
228 + ssl? ( dev-libs/openssl:0= )
229 + webserver? ( net-libs/libmicrohttpd )"
230 +RDEPEND="${DEPEND}"
231 +
232 +src_prepare() {
233 + cmake-utils_src_prepare
234 +}
235 +
236 +src_configure() {
237 + local mycmakeargs=(
238 + -DCUDA_ENABLE=$(usex cuda)
239 + -DHWLOC_ENABLE=$(usex hwloc)
240 + -DMICROHTTPD_ENABLE=$(usex webserver)
241 + -DOpenCL_ENABLE=$(usex opencl)
242 + -DOpenSSL_ENABLE=$(usex ssl)
243 + -DLIBRARY_OUTPUT_PATH=$(get_libdir)
244 + )
245 + cmake-utils_src_configure
246 +}
247 +
248 +src_install() {
249 + cmake-utils_src_install
250 + systemd_newunit "${FILESDIR}"/${PN}.service ${PN}.service
251 + doinitd "${FILESDIR}"/${PN}
252 + dodir /etc/xmr-stak-rx
253 +}
254 +
255 +pkg_postinst() {
256 + if [ ! -e "${ROOT}/etc/xmr-stak-rx/main.config" ]; then
257 + ewarn "To use xmr-stack-rx:"
258 + if use cuda || use opencl; then
259 + ewarn "As root or as a user that is a member of the 'video' group,"
260 + fi
261 + ewarn "run:"
262 + ewarn "/usr/bin/xmr-stak-rx --cpu /etc/xmr-stak-rx/cpu.config --amd /etc/xmr-stak-rx/amd.config --nvidia /etc/xmr-stak-rx/nvidia.config -c /etc/xmr-stak-rx/main.config -C /etc/xmr-stak-rx/pools.txt"
263 + ewarn "xmr-stak-rx can now be terminated and 'systemctl start xmr-stak-rx' or '/etc/init.d/xmr-stak-rx start' can be used."
264 + fi
265 +}