mirror of
https://github.com/gentoo-mirror/gentoo-zh.git
synced 2025-04-10 20:08:43 -04:00
101 lines
2.2 KiB
Bash
101 lines
2.2 KiB
Bash
# Copyright 2023 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
inherit desktop xdg
|
|
|
|
DESCRIPTION="A new multiboot USB solution"
|
|
HOMEPAGE="http://www.ventoy.net"
|
|
SRC_URI="https://github.com/ventoy/Ventoy/releases/download/v${PV}/ventoy-${PV}-linux.tar.gz"
|
|
|
|
S=${WORKDIR}/ventoy-${PV}
|
|
LICENSE="GPL-3"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64"
|
|
|
|
IUSE="+qt5 +gtk"
|
|
|
|
RESTRICT="strip mirror"
|
|
|
|
DEPEND="
|
|
sys-fs/dosfstools
|
|
sys-fs/exfat-utils
|
|
sys-block/parted
|
|
"
|
|
RDEPEND="
|
|
${DEPEND}
|
|
qt5? ( dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtwidgets:5 )
|
|
gtk? ( x11-libs/gtk+:3 )
|
|
"
|
|
|
|
CARCH="x86_64"
|
|
|
|
src_prepare() {
|
|
# Decompress tools
|
|
pushd tool/$CARCH || die
|
|
for file in *.xz; do
|
|
xzcat "$file" >"${file%.xz}" || die
|
|
chmod +x "${file%.xz}" || die
|
|
done
|
|
|
|
# Cleanup .xz crap
|
|
rm -fv ./*.xz || die
|
|
popd || die
|
|
|
|
# Apply sanitize patch
|
|
eapply -p0 "${FILESDIR}/sanitize.patch"
|
|
|
|
# Log location
|
|
sed -i 's|log\.txt|/var/log/ventoy.log|g' WebUI/static/js/languages.js tool/languages.json || die
|
|
|
|
# Non-POSIX compliant scripts
|
|
sed -i 's|bin/sh|usr/bin/env bash|g' tool/{ventoy_lib.sh,VentoyWorker.sh} || die
|
|
|
|
# Clean up unused binaries
|
|
# Preserving mkexfatfs and mount.exfat-fuse because exfatprogs is incompatible
|
|
for binary in xzcat hexdump; do
|
|
rm -fv tool/$CARCH/$binary || die
|
|
done
|
|
|
|
# Exclude optional GUI binaries
|
|
if ! use qt5; then
|
|
rm -fv tool/$CARCH/Ventoy2Disk.qt5 || die
|
|
fi
|
|
if ! use gtk; then
|
|
rm -fv tool/$CARCH/Ventoy2Disk.gtk3 || die
|
|
fi
|
|
|
|
default
|
|
}
|
|
|
|
src_install() {
|
|
insopts -m0644
|
|
insinto /opt/ventoy/boot/
|
|
doins boot/*
|
|
insinto /opt/ventoy/ventoy/
|
|
doins ventoy/*
|
|
insopts -m0755
|
|
insinto /opt/ventoy/tool/
|
|
doins tool/*.{cer,glade,json,sh,xz}
|
|
insinto /opt/ventoy/tool/$CARCH/
|
|
doins tool/$CARCH/*
|
|
insinto /opt/ventoy/
|
|
doins ./*.sh plugin WebUI "VentoyGUI.$CARCH"
|
|
|
|
# Install .desktop
|
|
insopts -m0644
|
|
insinto /usr/share/pixmaps/
|
|
newins WebUI/static/img/VentoyLogo.png ventoy.png
|
|
domenu "${FILESDIR}/ventoy.desktop"
|
|
|
|
# Link system binaries
|
|
for binary in xzcat hexdump; do
|
|
dosym -r /usr/bin/$binary /opt/ventoy/tool/$CARCH/$binary
|
|
done
|
|
|
|
dobin "${FILESDIR}"/ventoy{,gui,web,plugson,-{,extend-}persistent}
|
|
|
|
rm "${D}"/opt/ventoy/tool/x86_64/Ventoy2Disk.gtk2 || die
|
|
}
|