aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitaly Zdanevich <zdanevich.vitaly@ya.ru>2024-03-24 17:47:56 +0400
committerVitaly Zdanevich <zdanevich.vitaly@ya.ru>2024-03-24 17:47:56 +0400
commit8020431557bdce0741db6a6c4af831b41b5d1d00 (patch)
treee2a3e981e0d4683ccaea3da1a0053ff49951e11d
parentsys-boot/boot-repair-iso-download: einfo add with link to https://wiki.gentoo... (diff)
downloadguru-8020431557bdce0741db6a6c4af831b41b5d1d00.tar.gz
guru-8020431557bdce0741db6a6c4af831b41b5d1d00.tar.bz2
guru-8020431557bdce0741db6a6c4af831b41b5d1d00.zip
sys-boot/ventoy-bin: new package
Signed-off-by: Vitaly Zdanevich <zdanevich.vitaly@ya.ru>
-rw-r--r--sys-boot/ventoy-bin/Manifest1
-rw-r--r--sys-boot/ventoy-bin/files/sanitize.patch163
-rw-r--r--sys-boot/ventoy-bin/files/ventoy4
-rw-r--r--sys-boot/ventoy-bin/files/ventoy-extend-persistent3
-rw-r--r--sys-boot/ventoy-bin/files/ventoy-persistent3
-rw-r--r--sys-boot/ventoy-bin/files/ventoy.desktop9
-rw-r--r--sys-boot/ventoy-bin/files/ventoy.install17
-rw-r--r--sys-boot/ventoy-bin/files/ventoygui9
-rw-r--r--sys-boot/ventoy-bin/files/ventoyplugson4
-rw-r--r--sys-boot/ventoy-bin/files/ventoyweb4
-rw-r--r--sys-boot/ventoy-bin/metadata.xml11
-rw-r--r--sys-boot/ventoy-bin/ventoy-bin-1.0.97.ebuild86
12 files changed, 314 insertions, 0 deletions
diff --git a/sys-boot/ventoy-bin/Manifest b/sys-boot/ventoy-bin/Manifest
new file mode 100644
index 000000000..f0af723d6
--- /dev/null
+++ b/sys-boot/ventoy-bin/Manifest
@@ -0,0 +1 @@
+DIST ventoy-1.0.97-linux.tar.gz 19964906 BLAKE2B c1f7235838ed5fe55028424dd160d4322b8fe96f99404149cf3c25f00afe06dd9d35970f6cbd2b8f04432e8380b412495eae18b2f02a24d0003c63a644be6315 SHA512 af6d4a0c3c06009de3fd55377656d678ab037cc0b808421269551891502de32605ed3e17012395aa6ed58ca9c74bd52b19ed7fe43eda39a78b2c42cca1cd9b5f
diff --git a/sys-boot/ventoy-bin/files/sanitize.patch b/sys-boot/ventoy-bin/files/sanitize.patch
new file mode 100644
index 000000000..ed98be7aa
--- /dev/null
+++ b/sys-boot/ventoy-bin/files/sanitize.patch
@@ -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
diff --git a/sys-boot/ventoy-bin/files/ventoy b/sys-boot/ventoy-bin/files/ventoy
new file mode 100644
index 000000000..b6feeaa81
--- /dev/null
+++ b/sys-boot/ventoy-bin/files/ventoy
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd /opt/ventoy || exit 1
+exec ./Ventoy2Disk.sh "$@"
diff --git a/sys-boot/ventoy-bin/files/ventoy-extend-persistent b/sys-boot/ventoy-bin/files/ventoy-extend-persistent
new file mode 100644
index 000000000..9616aa3a3
--- /dev/null
+++ b/sys-boot/ventoy-bin/files/ventoy-extend-persistent
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /opt/ventoy/ExtendPersistentImg.sh "$@"
diff --git a/sys-boot/ventoy-bin/files/ventoy-persistent b/sys-boot/ventoy-bin/files/ventoy-persistent
new file mode 100644
index 000000000..c955fb6f1
--- /dev/null
+++ b/sys-boot/ventoy-bin/files/ventoy-persistent
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /opt/ventoy/CreatePersistentImg.sh "$@"
diff --git a/sys-boot/ventoy-bin/files/ventoy.desktop b/sys-boot/ventoy-bin/files/ventoy.desktop
new file mode 100644
index 000000000..f74c7739c
--- /dev/null
+++ b/sys-boot/ventoy-bin/files/ventoy.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Icon=ventoy
+Name=Ventoy
+Exec=ventoygui
+Terminal=false
+Hidden=false
+Categories=Utility
+Comment=Ventoy2Disk GUI
diff --git a/sys-boot/ventoy-bin/files/ventoy.install b/sys-boot/ventoy-bin/files/ventoy.install
new file mode 100644
index 000000000..7ff7012f4
--- /dev/null
+++ b/sys-boot/ventoy-bin/files/ventoy.install
@@ -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/
+}
diff --git a/sys-boot/ventoy-bin/files/ventoygui b/sys-boot/ventoy-bin/files/ventoygui
new file mode 100644
index 000000000..887535f72
--- /dev/null
+++ b/sys-boot/ventoy-bin/files/ventoygui
@@ -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
diff --git a/sys-boot/ventoy-bin/files/ventoyplugson b/sys-boot/ventoy-bin/files/ventoyplugson
new file mode 100644
index 000000000..f1e7b2d36
--- /dev/null
+++ b/sys-boot/ventoy-bin/files/ventoyplugson
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd /opt/ventoy || exit 1
+exec ./VentoyPlugson.sh "$@"
diff --git a/sys-boot/ventoy-bin/files/ventoyweb b/sys-boot/ventoy-bin/files/ventoyweb
new file mode 100644
index 000000000..fefe64913
--- /dev/null
+++ b/sys-boot/ventoy-bin/files/ventoyweb
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd /opt/ventoy || exit 1
+exec ./VentoyWeb.sh "$@"
diff --git a/sys-boot/ventoy-bin/metadata.xml b/sys-boot/ventoy-bin/metadata.xml
new file mode 100644
index 000000000..10fe5c7b5
--- /dev/null
+++ b/sys-boot/ventoy-bin/metadata.xml
@@ -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>
diff --git a/sys-boot/ventoy-bin/ventoy-bin-1.0.97.ebuild b/sys-boot/ventoy-bin/ventoy-bin-1.0.97.ebuild
new file mode 100644
index 000000000..e791c835d
--- /dev/null
+++ b/sys-boot/ventoy-bin/ventoy-bin-1.0.97.ebuild
@@ -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
+}