commit: 8020431557bdce0741db6a6c4af831b41b5d1d00 Author: Vitaly Zdanevich <zdanevich.vitaly <AT> ya <DOT> ru> AuthorDate: Sun Mar 24 13:47:56 2024 +0000 Commit: Vitaly Zdanevich <zdanevich.vitaly <AT> ya <DOT> ru> CommitDate: Sun Mar 24 13:47:56 2024 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=80204315
sys-boot/ventoy-bin: new package Signed-off-by: Vitaly Zdanevich <zdanevich.vitaly <AT> ya.ru> sys-boot/ventoy-bin/Manifest | 1 + sys-boot/ventoy-bin/files/sanitize.patch | 163 +++++++++++++++++++++ sys-boot/ventoy-bin/files/ventoy | 4 + sys-boot/ventoy-bin/files/ventoy-extend-persistent | 3 + sys-boot/ventoy-bin/files/ventoy-persistent | 3 + sys-boot/ventoy-bin/files/ventoy.desktop | 9 ++ sys-boot/ventoy-bin/files/ventoy.install | 17 +++ sys-boot/ventoy-bin/files/ventoygui | 9 ++ sys-boot/ventoy-bin/files/ventoyplugson | 4 + sys-boot/ventoy-bin/files/ventoyweb | 4 + sys-boot/ventoy-bin/metadata.xml | 11 ++ sys-boot/ventoy-bin/ventoy-bin-1.0.97.ebuild | 86 +++++++++++ 12 files changed, 314 insertions(+) diff --git a/sys-boot/ventoy-bin/Manifest b/sys-boot/ventoy-bin/Manifest new file mode 100644 index 0000000000..f0af723d69 --- /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 0000000000..ed98be7aa7 --- /dev/null +++ b/sys-boot/ventoy-bin/files/sanitize.patch @@ -0,0 +1,163 @@ +Author: DuckSoft <realducks...@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 0000000000..b6feeaa81b --- /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 0000000000..9616aa3a3d --- /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 0000000000..c955fb6f15 --- /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 0000000000..f74c7739cf --- /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 0000000000..7ff7012f41 --- /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 0000000000..887535f72f --- /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 0000000000..f1e7b2d362 --- /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 0000000000..fefe649136 --- /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 0000000000..10fe5c7b5c --- /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....@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 0000000000..e791c835df --- /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 +}