net-p2p/dogecoin-qt: adding 'gui' USE flag

- new 'gui' gives the option to install Dogecoin Core without qt
  component.  This option can come in handy when installing Dogecoin
  Core as a full node on a remote server, without the need for graphical
  interface.

Signed-off-by: Victor Skovorodnikov <victor3.14@yandex.com>
This commit is contained in:
Victor Skovorodnikov
2024-07-07 09:07:58 -07:00
parent 46fcb6e9c4
commit aa54c5c242
2 changed files with 26 additions and 23 deletions

View File

@@ -15,8 +15,8 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
DB_VER="5.3"
IUSE="cpu_flags_x86_avx2 cpu_flags_x86_sse2 intel-avx2 dogecoind experimental +pie +prune scrypt-sse2 +ssp tests utils +wallet zmq"
REQUIRED_USE="dogecoind? ( utils ) intel-avx2? ( experimental ) scrypt-sse2? ( experimental ) experimental? ( || ( intel-avx2 scrypt-sse2 ) )"
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="
sys-libs/db:"${DB_VER}"=[cxx]
@@ -25,13 +25,7 @@ DEPEND="
dev-libs/openssl
dev-build/libtool
dev-build/automake:=
dev-qt/qtcore
dev-qt/qtgui
dev-qt/qtwidgets
dev-qt/qtdbus
dev-qt/qtnetwork
dev-qt/qtprintsupport
dev-qt/linguist-tools:=
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.85.0
wallet? ( media-gfx/qrencode )
zmq? ( net-libs/cppzmq )
@@ -59,7 +53,6 @@ pkg_pretend() {
}
src_prepare() {
if use pie && use ssp ; then
PATCHES+=( "${FILESDIR}"/hardened-all.patch )
elif use pie && ! use ssp ; then
@@ -80,8 +73,8 @@ src_prepare() {
src_configure() {
local my_econf=(
--bindir="${DOGEDIR}/bin"
--with-gui=qt5
--disable-bench
$(use_with gui qt5)
$(use_with intel-avx2 intel-avx2)
$(use_with dogecoind daemon)
$(use_with utils utils)
@@ -99,30 +92,39 @@ src_configure() {
src_install() {
emake DESTDIR="${D}" install
insinto "${DOGEDIR}/bin"
insinto /usr/share/pixmaps
doins src/qt/res/icons/dogecoin.png
dosym "${DOGEDIR}/bin/${PN}" "/usr/bin/${PN}"
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
if use prune ; then
domenu "${FILESDIR}"/"${PN}-prune.desktop"
else
domenu "${FILESDIR}"/"${PN}.desktop"
fi
find "${ED}" -type f -name '*.la' -delete || die
}
pkg_postinst() {
xdg_desktop_database_update
xdg_mimeinfo_database_update
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}."
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."

View File

@@ -14,6 +14,7 @@
<use>
<flag name="dogecoind">Build with dogecoind daemon</flag>
<flag name="experimental">Allow experimental features to be configured</flag>
<flag name="gui">Toggle graphical user interface features</flag>
<flag name="intel-avx2">Build with intel avx2</flag>
<flag name="pie">Position Independent Executables - attempt to harden resulting executables, for extra security</flag>
<flag name="prune">Enables automatic pruning of old blocks to stay below 2.2GB target size (if ran from desktop)</flag>