aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-p2p/dogecoin-qt/dogecoin-qt-9999.ebuild146
1 files changed, 146 insertions, 0 deletions
diff --git a/net-p2p/dogecoin-qt/dogecoin-qt-9999.ebuild b/net-p2p/dogecoin-qt/dogecoin-qt-9999.ebuild
new file mode 100644
index 000000000..cfd29f8fa
--- /dev/null
+++ b/net-p2p/dogecoin-qt/dogecoin-qt-9999.ebuild
@@ -0,0 +1,146 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+WANT_AUTOCONF="2.5"
+inherit autotools desktop xdg-utils flag-o-matic git-r3
+DESCRIPTION="Dogecoin Core Qt for desktop. Downloaded blockchain is under 2.2GB. Much secure."
+HOMEPAGE="https://github.com/dogecoin"
+EGIT_REPO_URI="https://github.com/dogecoin/dogecoin.git"
+
+WORKDIR_="${WORKDIR}/${P}"
+S="${WORKDIR_}"
+
+LICENSE="MIT"
+SLOT="0"
+DB_VER="5.3"
+IUSE="cpu_flags_x86_avx2 cpu_flags_x86_sse2 intel-avx2 dogecoind experimental +gui +pie +prune scrypt-sse2 +ssp tests utils +wallet zmq"
+REQUIRED_USE="!gui? ( dogecoind utils ) dogecoind? ( utils ) intel-avx2? ( experimental ) scrypt-sse2? ( experimental ) experimental? ( || ( intel-avx2 scrypt-sse2 ) )"
+DOGEDIR="/opt/${PN}"
+DEPEND="
+ dev-libs/libevent:=
+ dev-libs/protobuf
+ dev-libs/openssl
+ dev-build/libtool
+ dev-build/automake:=
+ gui? ( dev-qt/qtcore dev-qt/qtgui dev-qt/qtwidgets dev-qt/qtdbus dev-qt/qtnetwork dev-qt/qtprintsupport dev-qt/linguist-tools:= )
+ >=dev-libs/boost-1.84.0
+ wallet? ( sys-libs/db:"${DB_VER}"=[cxx]
+ gui? ( media-gfx/qrencode )
+ )
+ zmq? ( net-libs/cppzmq )
+"
+
+RDEPEND="${DEPEND}
+ dev-vcs/git
+ dev-cpp/abseil-cpp
+ cpu_flags_x86_avx2? (
+ intel-avx2? ( ~app-crypt/intel-ipsec-mb-1.3 )
+ )
+"
+
+BDEPEND="
+ dev-build/autoconf
+ dev-build/automake
+"
+
+pkg_pretend() {
+
+ if use intel-avx2 && [[ ! -e "${ROOT}"/etc/portage/patches/app-crypt/intel-ipsec-mb/remove_digest_init.patch ]]; then
+ eerror "${ROOT}/etc/portage/patches/app-crypt/intel-ipsec-mb/remove_digest_init.patch does not exist!"
+ eerror "To build with avx2 intel support, please create ${ROOT}/etc/portage/patches/app-crypt/intel-ipsec-mb directory"
+ eerror "and copy patch from package net-p2p/dogecoin-qt/files/intel-ipsec-mb/remove_digest_init.patch into that directory"
+ die
+ fi
+}
+
+src_prepare() {
+ if use pie && use ssp ; then
+ PATCHES+=( "${FILESDIR}"/hardened-all.patch )
+ elif use pie && ! use ssp ; then
+ PATCHES+=( "${FILESDIR}"/hardened-no-ssp.patch )
+ elif use ssp && ! use pie ; then
+ PATCHES+=( "${FILESDIR}"/hardened-no-pie.patch )
+ else
+ PATCHES+=( "${FILESDIR}"/hardened-minimal.patch )
+ fi
+
+ default
+
+ einfo "Generating autotools files..."
+ eaclocal -I "${WORKDIR_}"
+ eautoreconf
+}
+
+src_configure() {
+ local my_econf=(
+ --bindir="${DOGEDIR}/bin"
+ --disable-bench
+ --enable-c++14
+ $(use_with gui qt5)
+ $(use_with intel-avx2 intel-avx2)
+ $(use_with dogecoind daemon)
+ $(use_with utils utils)
+ $(use_enable wallet)
+ $(use_enable zmq)
+ $(use_enable tests tests)
+ $(use_enable scrypt-sse2 scrypt-sse2)
+ $(use_enable experimental experimental)
+ )
+
+ econf "${my_econf[@]}"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ insinto "${DOGEDIR}/bin"
+
+ if use gui ; then
+ insinto /usr/share/pixmaps
+ doins src/qt/res/icons/dogecoin.png
+ dosym "${DOGEDIR}/bin/${PN}" "/usr/bin/${PN}"
+
+ if use prune ; then
+ domenu "${FILESDIR}"/"${PN}-prune.desktop"
+ else
+ domenu "${FILESDIR}"/"${PN}.desktop"
+ fi
+ fi
+
+ if use dogecoind ; then
+ dosym "${DOGEDIR}/bin/dogecoind" "/usr/bin/dogecoind"
+ dosym "${DOGEDIR}/bin/dogecoin-cli" "/usr/bin/dogecoin-cli"
+ fi
+
+ find "${ED}" -type f -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+
+ if use gui ; then
+ elog "Dogecoin Core (Qt) ${PV} has been installed."
+ elog "Dogecoin Core (Qt) binaries have been placed in ${DOGEDIR}/bin."
+ elog "${PN} has been symlinked with /usr/bin/${PN}."
+ else
+ elog "Dogecoin Core ${PV} has been installed."
+ elog "Dogecoin Core binaries have been placed in ${DOGEDIR}/bin."
+ fi
+
+ if use dogecoind ; then
+ elog "dogecoin daemon has been symlinked with /usr/bin/dogecoind."
+ elog "dogecoin client utils have been symlinked with /usr/bin/dogecoin-cli."
+ fi
+
+ if ( ( use cpu_flags_x86_avx2 && ! use intel-avx2 ) && ( use cpu_flags_x86_sse2 && ! use scrypt-sse2 ) ); then
+ einfo "NOTE: Experimental avx2 and sse2 CPU support in ${PV} can be"
+ einfo "activated using 'intel-avx2' and/or 'scrypt-sse2' USE flags, "
+ einfo "together with 'experimental' USE flag for this version."
+ fi
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+}