Gentoo Archives: gentoo-commits

From: "Anthony G. Basile" <blueness@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] dev/blueness:master commit in: net-p2p/primecoin-qt/, net-p2p/primecoin-qt/files/
Date: Sat, 30 Nov 2013 22:23:44
Message-Id: 1385850273.9802f7dd46f34f8fbe9cadb3c2a68000e1e1f89e.blueness@gentoo
1 commit: 9802f7dd46f34f8fbe9cadb3c2a68000e1e1f89e
2 Author: layman <layman <AT> localhost>
3 AuthorDate: Sat Nov 30 22:24:33 2013 +0000
4 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
5 CommitDate: Sat Nov 30 22:24:33 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=dev/blueness.git;a=commit;h=9802f7dd
7
8 net-p2p/primecoin-qt: initial commit
9
10 ---
11 net-p2p/primecoin-qt/Manifest | 4 +
12 .../primecoin-qt/files/primecoin-sys_leveldb.patch | 176 +++++++++++++++++++++
13 net-p2p/primecoin-qt/metadata.xml | 11 ++
14 net-p2p/primecoin-qt/primecoin-qt-0.1.2.ebuild | 144 +++++++++++++++++
15 4 files changed, 335 insertions(+)
16
17 diff --git a/net-p2p/primecoin-qt/Manifest b/net-p2p/primecoin-qt/Manifest
18 new file mode 100644
19 index 0000000..ec6ea4e
20 --- /dev/null
21 +++ b/net-p2p/primecoin-qt/Manifest
22 @@ -0,0 +1,4 @@
23 +AUX primecoin-sys_leveldb.patch 6836 SHA256 460e6d013d897d108c8c0234dc0a5f57b114b050c586f8877ef8ad7c3f1f6dba SHA512 b7dd42bf2a83528db7b828fd95e93a9c025cb84ea3844591a4012fd2504a785cbdc589ceff6324664a44087d09a133c05eed186c4dfa82b534257224ff0f906f WHIRLPOOL b6a178d084d9f877c82cba21301071e542e39e63865dcb0179d2a2b3d6e1d72d2ae9263a3332c4512298d29850023e5b8b1249f86520d8ad3c55fcd339a46013
24 +DIST primecoin-0.1.2.tar.gz 16521236 SHA256 d0f3c6a91b4d505f25e9284bcca85e420cf09d0e6cf71e5a001b7e1367ef46d0 SHA512 cff71b0e6459c4e534e78acef9491090d05c0cb864a068c0a3cb289310a1ee13fd69c7b61a7d6cb9732af54fbcf1fa4e77db8c8528a09bbdafd36421fdf7aff1 WHIRLPOOL 5031efa135dcf08975a06a037179863ad180920e0c55e0ec5d1863b4b24d005ce829fa0e0f081120d3610bc0abd1d3919db477a33e32ec6d0d353b7177480eb1
25 +EBUILD primecoin-qt-0.1.2.ebuild 3143 SHA256 6eb15195ce699fea813d9b98f924330379eaa1ee9a27977cbb6f97385e80f554 SHA512 c2bbde275ddf1313abf75a0bb9396899f602f472cd850d34831c9aadb6f4a25439eadef76ba031e855cff2fdee7e756a17cbe2a4ccb26fbe09cf2595893efd89 WHIRLPOOL d04f9a9d56f2e19997b9abea0102e3b01b22d9b87692755952aac5d689ade282d5723acace27401238f9343f166924a1303e9ac903cdc8d371c7e6742d600f21
26 +MISC metadata.xml 335 SHA256 fd617e5b5cdf18a293d584d24d15a4cf35d3626106804f2424bd2d55143cf804 SHA512 80c5870e0ef0fdb6e4ffc9a7877aeca9269684e1bc42e2dd1ce6ea10214710dc70b4dcf848f581b439ae50d5dac32614c292ca943d023f4d53b773f1af851565 WHIRLPOOL d64f49a82dd2e8107c4dee45b3f56de370064b5303b912be29a9307167b7e0b78659e468647fe370b83d94881121c476acf80cefd943cde67c02ceff38696edc
27
28 diff --git a/net-p2p/primecoin-qt/files/primecoin-sys_leveldb.patch b/net-p2p/primecoin-qt/files/primecoin-sys_leveldb.patch
29 new file mode 100644
30 index 0000000..39d0aa6
31 --- /dev/null
32 +++ b/net-p2p/primecoin-qt/files/primecoin-sys_leveldb.patch
33 @@ -0,0 +1,176 @@
34 +diff -Naur primecoin-0.1.2-linux.orig/src/bitcoin-qt.pro primecoin-0.1.2-linux/src/bitcoin-qt.pro
35 +--- primecoin-0.1.2-linux.orig/src/bitcoin-qt.pro 2013-08-05 08:37:14.000000000 -0400
36 ++++ primecoin-0.1.2-linux/src/bitcoin-qt.pro 2013-11-30 16:39:48.464770389 -0500
37 +@@ -4,7 +4,7 @@
38 + VERSION = 0.8.3
39 + INCLUDEPATH += src src/json src/qt
40 + QT += network
41 +-DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE
42 ++DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE LEVELDB_WITHOUT_MEMENV
43 + CONFIG += no_include_pwd
44 + CONFIG += thread
45 +
46 +@@ -98,25 +98,29 @@
47 + QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
48 + }
49 +
50 ++contains(USE_SYSTEM_LEVELDB, 1) {
51 ++ LIBS += -lleveldb
52 ++} else {
53 + INCLUDEPATH += src/leveldb/include src/leveldb/helpers
54 +-LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a
55 ++LIBS += $$PWD/src/leveldb/libleveldb.a
56 + !win32 {
57 + # we use QMAKE_CXXFLAGS_RELEASE even without RELEASE=1 because we use RELEASE to indicate linking preferences not -O preferences
58 +- genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a
59 ++ genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a
60 + } else {
61 + # make an educated guess about what the ranlib command is called
62 + isEmpty(QMAKE_RANLIB) {
63 + QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib)
64 + }
65 + LIBS += -lshlwapi
66 +- genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a
67 ++ genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a
68 + }
69 + genleveldb.target = $$PWD/src/leveldb/libleveldb.a
70 + genleveldb.depends = FORCE
71 + PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a
72 + QMAKE_EXTRA_TARGETS += genleveldb
73 ++}
74 + # Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it.
75 +-QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) clean
76 ++QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb && $(MAKE) clean || true
77 +
78 + # regenerate src/build.h
79 + !win32|contains(USE_BUILD_INFO, 1) {
80 +diff -Naur primecoin-0.1.2-linux.orig/src/src/leveldb.cpp primecoin-0.1.2-linux/src/src/leveldb.cpp
81 +--- primecoin-0.1.2-linux.orig/src/src/leveldb.cpp 2013-08-05 08:37:20.000000000 -0400
82 ++++ primecoin-0.1.2-linux/src/src/leveldb.cpp 2013-11-30 16:41:25.632773774 -0500
83 +@@ -8,7 +8,9 @@
84 + #include <leveldb/env.h>
85 + #include <leveldb/cache.h>
86 + #include <leveldb/filter_policy.h>
87 +-#include <memenv/memenv.h>
88 ++#ifndef LEVELDB_WITHOUT_MEMENV
89 ++#include <memenv.h>
90 ++#endif
91 +
92 + #include <boost/filesystem.hpp>
93 +
94 +@@ -43,8 +45,12 @@
95 + options = GetOptions(nCacheSize);
96 + options.create_if_missing = true;
97 + if (fMemory) {
98 ++#ifndef LEVELDB_WITHOUT_MEMENV
99 + penv = leveldb::NewMemEnv(leveldb::Env::Default());
100 + options.env = penv;
101 ++#else
102 ++ throw std::runtime_error("CLevelDB(): compiled without memenv support");
103 ++#endif
104 + } else {
105 + if (fWipe) {
106 + printf("Wiping LevelDB in %s\n", path.string().c_str());
107 +diff -Naur primecoin-0.1.2-linux.orig/src/src/makefile.unix primecoin-0.1.2-linux/src/src/makefile.unix
108 +--- primecoin-0.1.2-linux.orig/src/src/makefile.unix 2013-08-05 08:37:21.000000000 -0400
109 ++++ primecoin-0.1.2-linux/src/src/makefile.unix 2013-11-30 17:20:06.545854617 -0500
110 +@@ -111,8 +111,7 @@
111 + # adds some defaults in front. Unfortunately, LDFLAGS=... $(LDFLAGS) does not work.
112 + xLDFLAGS=$(LDHARDENING) $(LDFLAGS)
113 +
114 +-OBJS= \
115 +- leveldb/libleveldb.a \
116 ++BASEOBJS := \
117 + obj/alert.o \
118 + obj/version.o \
119 + obj/checkpoints.o \
120 +@@ -121,7 +120,6 @@
121 + obj/crypter.o \
122 + obj/key.o \
123 + obj/db.o \
124 +- obj/init.o \
125 + obj/keystore.o \
126 + obj/main.o \
127 + obj/net.o \
128 +@@ -141,25 +139,44 @@
129 + obj/hash.o \
130 + obj/bloom.o \
131 + obj/noui.o \
132 +- obj/leveldb.o \
133 + obj/txdb.o \
134 + obj/prime.o \
135 + obj/checkpointsync.o
136 +
137 ++OBJS := \
138 ++ obj/leveldb.o \
139 ++ obj/init.o \
140 ++ $(BASEOBJS)
141 ++
142 ++TESTOBJS := \
143 ++ obj-test/leveldb.o \
144 ++ $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) \
145 ++ $(BASEOBJS)
146 ++
147 + all: primecoind
148 +
149 + test check: test_primecoin FORCE
150 + ./test_primecoin
151 +
152 ++ifdef USE_SYSTEM_LEVELDB
153 ++ LIBS += -lleveldb
154 ++ TESTLIBS += -lmemenv
155 ++else
156 + #
157 + # LevelDB support
158 + #
159 + MAKEOVERRIDES =
160 +-LIBS += $(CURDIR)/leveldb/libleveldb.a $(CURDIR)/leveldb/libmemenv.a
161 ++LIBS += $(CURDIR)/leveldb/libleveldb.a
162 ++TESTLIBS += $(CURDIR)/leveldb/libmemenv.a
163 + DEFS += $(addprefix -I,$(CURDIR)/leveldb/include)
164 + DEFS += $(addprefix -I,$(CURDIR)/leveldb/helpers)
165 + leveldb/libleveldb.a:
166 +- @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a libmemenv.a && cd ..
167 ++ @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a && cd ..
168 ++leveldb/libmemenv.a:
169 ++ @echo "Building LevelDB memenv ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libmemenv.a && cd ..
170 ++OBJS += leveldb/libleveldb.a
171 ++TESTOBJS += leveldb/libmemenv.a
172 ++endif
173 +
174 + # auto-generated dependencies:
175 + -include obj/*.P
176 +@@ -170,24 +187,22 @@
177 + version.cpp: obj/build.h
178 + DEFS += -DHAVE_BUILD_INFO
179 +
180 +-obj/%.o: %.cpp
181 +- $(CXX) -c $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
182 ++P_TO_D = \
183 + @cp $(@:%.o=%.d) $(@:%.o=%.P); \
184 +- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
185 ++ sed -e 's/\#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
186 + -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
187 + rm -f $(@:%.o=%.d)
188 +
189 +-primecoind: $(OBJS:obj/%=obj/%)
190 +- $(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS)
191 ++obj/%.o: %.cpp
192 ++ $(CXX) -c $(xCXXFLAGS) -DLEVELDB_WITHOUT_MEMENV -MMD -MF $(@:%.o=%.d) -o $@ $<
193 ++ $(P_TO_D)
194 +
195 +-TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
196 ++primecoind: $(OBJS)
197 ++ $(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS)
198 +
199 + obj-test/%.o: test/%.cpp
200 +- $(CXX) -c $(TESTDEFS) $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
201 +- @cp $(@:%.o=%.d) $(@:%.o=%.P); \
202 +- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
203 +- -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
204 +- rm -f $(@:%.o=%.d)
205 ++ $(CXX) -c $(xCXXFLAGS) -DLEVELDB_WITHOUT_MEMENV -MMD -MF $(@:%.o=%.d) -o $@ $<
206 ++ $(P_TO_D)
207 +
208 + test_primecoin: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
209 + $(LINK) $(xCXXFLAGS) -o $@ $(LIBPATHS) $^ $(TESTLIBS) $(xLDFLAGS) $(LIBS)
210
211 diff --git a/net-p2p/primecoin-qt/metadata.xml b/net-p2p/primecoin-qt/metadata.xml
212 new file mode 100644
213 index 0000000..6365b7b
214 --- /dev/null
215 +++ b/net-p2p/primecoin-qt/metadata.xml
216 @@ -0,0 +1,11 @@
217 +<?xml version="1.0" encoding="UTF-8"?>
218 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
219 +<pkgmetadata>
220 + <maintainer>
221 + <email>blueness@g.o</email>
222 + <name>Anthony G. Basile</name>
223 + </maintainer>
224 + <use>
225 + <flag name='qrcode'>Enable generation of QR Codes for receiving payments</flag>
226 + </use>
227 +</pkgmetadata>
228
229 diff --git a/net-p2p/primecoin-qt/primecoin-qt-0.1.2.ebuild b/net-p2p/primecoin-qt/primecoin-qt-0.1.2.ebuild
230 new file mode 100644
231 index 0000000..98f30fd
232 --- /dev/null
233 +++ b/net-p2p/primecoin-qt/primecoin-qt-0.1.2.ebuild
234 @@ -0,0 +1,144 @@
235 +# Copyright 1999-2013 Gentoo Foundation
236 +# Distributed under the terms of the GNU General Public License v2
237 +# $Header: $
238 +
239 +EAPI=5
240 +
241 +DB_VER="4.8"
242 +
243 +LANGS="af_ZA ar bg bs ca_ES ca cs cy da de el_GR en eo es_CL es et eu_ES fa_IR fa fi fr_CA fr gu_IN he hi_IN hr hu it ja la lt lv_LV nb nl pl pt_BR pt_PT ro_RO ru sk sr sv th_TH tr uk zh_CN zh_TW"
244 +
245 +inherit db-use eutils fdo-mime gnome2-utils kde4-functions qt4-r2
246 +
247 +MyPV="${PV/_/-}"
248 +MyPN="primecoin"
249 +MyP="${MyPN}-${MyPV}"
250 +
251 +DESCRIPTION="Cryptocurrency forked from Bitcoin which aims to be energy efficiency."
252 +HOMEPAGE="http://peercoin.net/"
253 +SRC_URI="mirror://sourceforge/${MyPN}/${MyP}-linux.tar.gz -> ${MyP}.tar.gz"
254 +
255 +LICENSE="MIT ISC GPL-3 LGPL-2.1 public-domain || ( CC-BY-SA-3.0 LGPL-2.1 )"
256 +SLOT="0"
257 +KEYWORDS="~amd64 ~x86"
258 +IUSE="dbus ipv6 kde +qrcode upnp"
259 +
260 +RDEPEND="
261 + >=dev-libs/boost-1.41.0[threads(+)]
262 + dev-libs/openssl:0[-bindist]
263 + qrcode? (
264 + media-gfx/qrencode
265 + )
266 + upnp? (
267 + net-libs/miniupnpc
268 + )
269 + sys-libs/db:$(db_ver_to_slot "${DB_VER}")[cxx]
270 + <=dev-libs/leveldb-1.12.0[-snappy]
271 + dev-qt/qtgui:4
272 + dbus? (
273 + dev-qt/qtdbus:4
274 + )
275 +"
276 +DEPEND="${RDEPEND}
277 + >=app-shells/bash-4.1
278 +"
279 +
280 +DOCS="doc/README.md doc/release-notes.md"
281 +
282 +S="${WORKDIR}/${MyP}-linux/src"
283 +
284 +src_prepare() {
285 + epatch "${FILESDIR}"/${MyPN}-sys_leveldb.patch
286 + rm -r src/leveldb
287 +
288 + cd src || die
289 +
290 + local filt= yeslang= nolang=
291 +
292 + for lan in $LANGS; do
293 + if [ ! -e qt/locale/bitcoin_$lan.ts ]; then
294 + ewarn "Language '$lan' no longer supported. Ebuild needs update."
295 + fi
296 + done
297 +
298 + for ts in $(ls qt/locale/*.ts)
299 + do
300 + x="${ts/*bitcoin_/}"
301 + x="${x/.ts/}"
302 + if ! use "linguas_$x"; then
303 + nolang="$nolang $x"
304 + rm "$ts"
305 + filt="$filt\\|$x"
306 + else
307 + yeslang="$yeslang $x"
308 + fi
309 + done
310 +
311 + filt="bitcoin_\\(${filt:2}\\)\\.\(qm\|ts\)"
312 + sed "/${filt}/d" -i 'qt/bitcoin.qrc'
313 + einfo "Languages -- Enabled:$yeslang -- Disabled:$nolang"
314 +}
315 +
316 +src_configure() {
317 + OPTS=()
318 +
319 + use dbus && OPTS+=("USE_DBUS=1")
320 + if use upnp; then
321 + OPTS+=("USE_UPNP=1")
322 + else
323 + OPTS+=("USE_UPNP=-")
324 + fi
325 +
326 + use qrcode && OPTS+=("USE_QRCODE=1")
327 + use ipv6 || OPTS+=("USE_IPV6=-")
328 +
329 + OPTS+=("USE_SYSTEM_LEVELDB=1")
330 + OPTS+=("BDB_INCLUDE_PATH=$(db_includedir "${DB_VER}")")
331 + OPTS+=("BDB_LIB_SUFFIX=-${DB_VER}")
332 +
333 + if has_version '>=dev-libs/boost-1.52'; then
334 + OPTS+=("LIBS+=-lboost_chrono\$\$BOOST_LIB_SUFFIX")
335 + fi
336 +
337 + #The primecoin codebase is mostly taken from bitcoin-qt
338 + eqmake4 bitcoin-qt.pro "${OPTS[@]}"
339 +}
340 +
341 +#Tests are broken
342 +#src_test() {
343 +# cd src || die
344 +# emake -f makefile.unix "${OPTS[@]}" test_primecoin
345 +# ./test_primecoin || die 'Tests failed'
346 +#}
347 +
348 +src_install() {
349 + qt4-r2_src_install
350 +
351 + dobin ${PN}
352 +
353 + insinto /usr/share/pixmaps
354 + newins "share/pixmaps/primecoin.ico" "${PN}.ico"
355 +
356 + make_desktop_entry "${PN} %u" "PPcoin-Qt" "/usr/share/pixmaps/${PN}.ico" "Qt;Network;P2P;Office;Finance;" "MimeType=x-scheme-handler/primecoin;\nTerminal=false"
357 +
358 + newman contrib/debian/manpages/bitcoin-qt.1 ${PN}.1
359 +
360 + if use kde; then
361 + insinto /usr/share/kde4/services
362 + newins contrib/debian/bitcoin-qt.protocol ${PN}.protocol
363 + fi
364 +}
365 +
366 +update_caches() {
367 + gnome2_icon_cache_update
368 + fdo-mime_desktop_database_update
369 + buildsycoca
370 +}
371 +
372 +pkg_postinst() {
373 + update_caches
374 +}
375 +
376 +pkg_postrm() {
377 + update_caches
378 +}