diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-09-13 11:53:06 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-09-13 17:18:49 +0000 |
commit | c3e005913d59b8ad64004e60888a71816688af1f (patch) | |
tree | f65b32f0d16acaa40f2ee82ac736d150de4b6cf5 /nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix | |
parent | 1c8034da05499ca3d999f57ba1f6b235e7711ee1 (diff) | |
parent | db88608d8c811a93b74c99cfa1224952afc78200 (diff) | |
download | nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar.gz nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar.bz2 nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar.lz nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar.xz nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar.zst nixlib-c3e005913d59b8ad64004e60888a71816688af1f.zip |
Merge commit 'db88608d8c811a93b74c99cfa1224952afc78200'
Conflicts: nixpkgs/nixos/modules/config/update-users-groups.pl
Diffstat (limited to 'nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix b/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix new file mode 100644 index 000000000000..334b3abdfc95 --- /dev/null +++ b/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix @@ -0,0 +1,95 @@ +{ lib, stdenv, fetchurl, fetchpatch +, autoPatchelfHook, makeWrapper +, hexdump, exfat, dosfstools, e2fsprogs, xz, util-linux, bash, parted +}: + +let arch = { + x86_64-linux = "x86_64"; + i686-linux = "i386"; + aarch64-linux = "aarch64"; + mipsel-linux = "mips64el"; +}.${stdenv.hostPlatform.system} or (throw "Unsupported platform ${stdenv.hostPlatform.system}"); +in stdenv.mkDerivation rec { + pname = "ventoy-bin"; + version = "1.0.51"; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper ]; + buildInputs = [ hexdump exfat dosfstools e2fsprogs xz util-linux bash parted ]; + + src = fetchurl { + url = "https://github.com/ventoy/Ventoy/releases/download/v${version}/ventoy-${version}-linux.tar.gz"; + sha256 = "81ae02a06b132b5965dd09c9b64e000a6dafa1d57e03d8564feefda14ef1ee02"; + }; + patches = [ + (fetchpatch { + name = "sanitize.patch"; + url = "https://aur.archlinux.org/cgit/aur.git/plain/sanitize.patch?h=ventoy-bin&id=ce4c26c67a1de4b761f9448bf92e94ffae1c8148"; + sha256 = "c00f9f9cd5b4f81c566267b7b2480fa94d28dda43a71b1e47d6fa86f764e7038"; + }) + ./fix-for-read-only-file-system.patch + ]; + patchFlags = [ "-p0" ]; + postPatch = '' + # Fix permissions. + find -type f -name \*.sh -exec chmod a+x '{}' \; + + # Fix path to log. + sed -i 's:[lL]og\.txt:/var/log/ventoy\.log:g' WebUI/static/js/languages.js + ''; + installPhase = '' + # Setup variables. + local VENTOY_PATH="$out"/share/ventoy + local ARCH='${arch}' + + # Prepare. + cd tool/"$ARCH" + rm ash* hexdump* mkexfatfs* mount.exfat-fuse* xzcat* + for archive in *.xz; do + xzcat "$archive" > "''${archive%.xz}" + rm "$archive" + done + chmod a+x * + cd - + + # Cleanup. + case "$ARCH" in + x86_64) rm -r tool/{i386,aarch64,mips64el};; + i386) rm -r tool/{x86_64,aarch64,mips64el};; + aarch64) rm -r tool/{x86_64,i386,mips64el};; + mips64el) rm -r tool/{x86_64,i386,aarch64};; + esac + rm README + + # Copy from "$src" to "$out". + mkdir -p "$out"/bin "$VENTOY_PATH" + cp -r . "$VENTOY_PATH" + + # Fill bin dir. + for f in Ventoy2Disk.sh_ventoy VentoyWeb.sh_ventoy-web \ + CreatePersistentImg.sh_ventoy-persistent \ + ExtendPersistentImg.sh_ventoy-extend-persistent; do + makeWrapper "$VENTOY_PATH/''${f%_*}" "$out/bin/''${f#*_}" \ + --prefix PATH : "${lib.makeBinPath buildInputs}" \ + --run "cd '$VENTOY_PATH' || exit 1" + done + ''; + + meta = with lib; { + description = "An open source tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files"; + longDescription = '' + An open source tool to create bootable USB drive for + ISO/WIM/IMG/VHD(x)/EFI files. With ventoy, you don't need to format the + disk over and over, you just need to copy the ISO/WIM/IMG/VHD(x)/EFI + files to the USB drive and boot them directly. You can copy many files + at a time and ventoy will give you a boot menu to select them + (screenshot). x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI and + MIPS64EL UEFI are supported in the same way. Most type of OS supported + (Windows/WinPE/Linux/Unix/VMware/Xen...). + ''; + homepage = "https://www.ventoy.net"; + changelog = "https://www.ventoy.net/doc_news.html"; + license = licenses.gpl3Plus; + platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "mipsel-linux" ]; + maintainers = with maintainers; [ k4leg ]; + }; +} |