sys-boot/ventoy-bin: new package

Signed-off-by: Vitaly Zdanevich <zdanevich.vitaly@ya.ru>
This commit is contained in:
Vitaly Zdanevich
2024-03-24 17:47:56 +04:00
parent 268485e262
commit 8020431557
12 changed files with 314 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST ventoy-1.0.97-linux.tar.gz 19964906 BLAKE2B c1f7235838ed5fe55028424dd160d4322b8fe96f99404149cf3c25f00afe06dd9d35970f6cbd2b8f04432e8380b412495eae18b2f02a24d0003c63a644be6315 SHA512 af6d4a0c3c06009de3fd55377656d678ab037cc0b808421269551891502de32605ed3e17012395aa6ed58ca9c74bd52b19ed7fe43eda39a78b2c42cca1cd9b5f

View File

@@ -0,0 +1,163 @@
Author: DuckSoft <realducksoft@gmail.com>
I just cannot stand such a dirty package.
Let me do some optimisations.
If you are interested to improve this patch, welcome to mail me.
diff -rup old/tool/ventoy_lib.sh new/tool/ventoy_lib.sh
--- tool/ventoy_lib.sh 2021-12-02 16:59:42.148650182 +0100
+++ tool/ventoy_lib.sh 2021-12-02 17:01:17.214720518 +0100
@@ -29,7 +29,7 @@ vterr() {
}
vtdebug() {
- echo "$*" >> ./log.txt
+ echo "$*" >>/var/log/ventoy.log
}
vtoy_gen_uuid() {
@@ -52,30 +52,6 @@ vtoy_gen_uuid() {
check_tool_work_ok() {
- if echo 1 | hexdump > /dev/null; then
- vtdebug "hexdump test ok ..."
- else
- vtdebug "hexdump test fail ..."
- ventoy_false
- return
- fi
-
- if mkexfatfs -V > /dev/null; then
- vtdebug "mkexfatfs test ok ..."
- else
- vtdebug "mkexfatfs test fail ..."
- ventoy_false
- return
- fi
-
- if vtoycli fat -T; then
- vtdebug "vtoycli fat test ok ..."
- else
- vtdebug "vtoycli fat test fail ..."
- ventoy_false
- return
- fi
-
vtdebug "tool check success ..."
ventoy_true
}
@@ -311,7 +287,7 @@ format_ventoy_disk_mbr() {
else
vtdebug "format disk by fdisk ..."
-fdisk $DISK >>./log.txt 2>&1 <<EOF
+fdisk $DISK >>/var/log/ventoy.log 2>&1 <<EOF
o
n
p
diff -rup old/tool/VentoyWorker.sh new/tool/VentoyWorker.sh
--- tool/VentoyWorker.sh 2021-12-02 16:59:31.485642239 +0100
+++ tool/VentoyWorker.sh 2021-12-02 17:02:00.326752183 +0100
@@ -105,7 +105,7 @@ vtdebug "MODE=$MODE FORCE=$FORCE RESERVE
if check_tool_work_ok; then
vtdebug "check tool work ok"
else
- vterr "Some tools can not run on current system. Please check log.txt for details."
+ vterr "Some tools can not run on current system. Please check /var/log/ventoy.log for details."
exit 1
fi
diff -rup old/Ventoy2Disk.sh new/Ventoy2Disk.sh
--- Ventoy2Disk.sh 2021-12-02 16:59:05.205622608 +0100
+++ Ventoy2Disk.sh 2021-12-02 17:03:29.037816991 +0100
@@ -32,48 +32,4 @@ echo " https://www.ventoy.net"
echo '**********************************************'
echo ''
-
-if ! [ -f ./boot/boot.img ]; then
- if [ -d ./grub ]; then
- echo "Don't run Ventoy2Disk.sh here, please download the released install package, and run the script in it."
- else
- echo "Please run under the correct directory!"
- fi
- exit 1
-fi
-
-echo "############# Ventoy2Disk $* [$TOOLDIR] ################" >> ./log.txt
-date >> ./log.txt
-
-#decompress tool
-echo "decompress tools" >> ./log.txt
-cd ./tool/$TOOLDIR
-
-ls *.xz > /dev/null 2>&1
-if [ $? -eq 0 ]; then
- [ -f ./xzcat ] && chmod +x ./xzcat
-
- for file in $(ls *.xz); do
- echo "decompress $file" >> ./log.txt
- xzcat $file > ${file%.xz}
- [ -f ./${file%.xz} ] && chmod +x ./${file%.xz}
- [ -f ./$file ] && rm -f ./$file
- done
-fi
-
-cd ../../
-chmod +x -R ./tool/$TOOLDIR
-
-
-if [ -f /bin/bash ]; then
- /bin/bash ./tool/VentoyWorker.sh $*
-else
- ash ./tool/VentoyWorker.sh $*
-fi
-
-if [ -n "$OLDDIR" ]; then
- CURDIR=$(pwd)
- if [ "$CURDIR" != "$OLDDIR" ]; then
- cd "$OLDDIR"
- fi
-fi
+./tool/VentoyWorker.sh $*
diff -rup old/VentoyPlugson.sh new/VentoyPlugson.sh
--- VentoyPlugson.sh 2022-12-24 06:00:51.000000000 -0700
+++ VentoyPlugson.sh 2022-12-24 08:18:59.154268575 -0700
@@ -34,8 +34,6 @@ if echo $machine | grep -E -q 'aarch64|a
TOOLDIR=aarch64
elif echo $machine | grep -E -q 'x86_64|amd64'; then
TOOLDIR=x86_64
-elif echo $machine | grep -E -q 'mips64'; then
- TOOLDIR=mips64el
elif echo $machine | grep -E -q 'i[3-6]86'; then
TOOLDIR=i386
else
diff -rup old/VentoyWeb.sh new/VentoyWeb.sh
--- VentoyWeb.sh 2021-12-02 16:58:51.885612627 +0100
+++ VentoyWeb.sh 2021-12-02 17:04:43.437871014 +0100
@@ -15,12 +15,6 @@ print_err() {
echo ""
}
-uid=$(id -u)
-if [ $uid -ne 0 ]; then
- print_err "Please use sudo or run the script as root."
- exit 1
-fi
-
OLDDIR=$(pwd)
if uname -m | egrep -q 'aarch64|arm64'; then
@@ -85,8 +79,8 @@ if ps -ef | grep "V2DServer.*$HOST.*$POR
exit 1
fi
-LOGFILE=log.txt
-#delete the log.txt if it's more than 8MB
+LOGFILE=/var/log/ventoy.log
+#delete the ventoy.log if it's more than 8MB
if [ -f $LOGFILE ]; then
logsize=$(stat -c '%s' $LOGFILE)
if [ $logsize -gt 8388608 ]; then

View File

@@ -0,0 +1,4 @@
#!/bin/sh
cd /opt/ventoy || exit 1
exec ./Ventoy2Disk.sh "$@"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec /opt/ventoy/ExtendPersistentImg.sh "$@"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec /opt/ventoy/CreatePersistentImg.sh "$@"

View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Type=Application
Icon=ventoy
Name=Ventoy
Exec=ventoygui
Terminal=false
Hidden=false
Categories=Utility
Comment=Ventoy2Disk GUI

View File

@@ -0,0 +1,17 @@
post_install() {
printf "$(tput setaf 4) ->$(tput sgr0; tput bold) %s$(tput sgr0)\n" \
'NOTE: You can create persistence images for ventoy with the "ventoy-persistent" command,'
printf "$(tput setaf 4) ->$(tput sgr0; tput bold) %s$(tput sgr0)\n" \
' and losslessly expand persistence ".dat" files using "ventoy-extend-persistent",'
printf "$(tput setaf 4) ->$(tput sgr0; tput bold) %s$(tput sgr0)\n" \
' which are shortcuts to "/opt/ventoy/CreatePersistentImg.sh" and'
printf "$(tput setaf 4) ->$(tput sgr0; tput bold) %s$(tput sgr0)\n" \
' "/opt/ventoy/ExtendPersistentImg.sh", respectively.'
printf "$(tput setaf 4) ->$(tput sgr0; tput bold) %s$(tput sgr0)\n" \
' (See https://www.ventoy.net/en/plugin_persistence.html for documentation.)'
}
post_remove() {
# Remove log file
rm -rf /opt/ventoy/
}

View File

@@ -0,0 +1,9 @@
#!/bin/sh
cd /opt/ventoy || exit 1
if [ "$(uname -m)" = "x86_64" ]; then
./VentoyGUI.x86_64 "$@"
elif [ "$(uname -m)" = "aarch64" ]; then
./VentoyGUI.aarch64 "$@"
fi

View File

@@ -0,0 +1,4 @@
#!/bin/sh
cd /opt/ventoy || exit 1
exec ./VentoyPlugson.sh "$@"

View File

@@ -0,0 +1,4 @@
#!/bin/sh
cd /opt/ventoy || exit 1
exec ./VentoyWeb.sh "$@"

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<name>ston</name>
<email>ston.jia@qq.com</email>
</maintainer>
<upstream>
<remote-id type="github">ventoy/Ventoy</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,86 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop xdg
DESCRIPTION="Creator of bootable USBs, with ability to copy ISOs, persistence storage"
HOMEPAGE="http://www.ventoy.net"
SRC_URI="https://github.com/ventoy/Ventoy/releases/download/v${PV}/ventoy-${PV}-linux.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="strip mirror"
DEPEND="
sys-fs/dosfstools
sys-fs/exfat-utils
sys-block/parted
"
RDEPEND="${DEPEND}"
S=${WORKDIR}/ventoy-${PV}
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
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
}