diff --git a/app-misc/doublecmd-bin/doublecmd-bin-9999.ebuild b/app-misc/doublecmd-bin/doublecmd-bin-9999.ebuild new file mode 100644 index 0000000000..4ab2d8555e --- /dev/null +++ b/app-misc/doublecmd-bin/doublecmd-bin-9999.ebuild @@ -0,0 +1,33 @@ +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Double Commander: file manager with two panels, similar to Total Commander" +HOMEPAGE="https://doublecmd.sourceforge.io/" + +S="${WORKDIR}" + +LICENSE="GPL-2" +SLOT="0" +PROPERTIES="live" +IUSE="+gtk qt5" +REQUIRED_USE=" ^^ ( gtk qt5 ) " + +RESTRICT="strip" + +RDEPEND="sys-fs/fuse:0" + +QA_PREBUILT="*" + +src_unpack() { + if use gtk; then + wget https://download.opensuse.org/repositories/home:/Alexx2000/AppImage/doublecmd-gtk-latest-x86_64.AppImage + else + wget https://download.opensuse.org/repositories/home:/Alexx2000/AppImage/doublecmd-qt-latest-x86_64.AppImage + fi +} + +src_install() { + newbin *.AppImage doublecmd-appimage +} diff --git a/games-emulation/duckstation/metadata.xml b/games-emulation/duckstation/metadata.xml index fbfcacde18..8236b35631 100644 --- a/games-emulation/duckstation/metadata.xml +++ b/games-emulation/duckstation/metadata.xml @@ -1,10 +1,6 @@ - - contact@hacktivis.me - Haelwenn (lanodan) Monnier - stenzek/duckstation diff --git a/sys-boot/ventoy-bin/Manifest b/sys-boot/ventoy-bin/Manifest index f0af723d69..aa5cb9913f 100644 --- a/sys-boot/ventoy-bin/Manifest +++ b/sys-boot/ventoy-bin/Manifest @@ -1 +1,2 @@ DIST ventoy-1.0.97-linux.tar.gz 19964906 BLAKE2B c1f7235838ed5fe55028424dd160d4322b8fe96f99404149cf3c25f00afe06dd9d35970f6cbd2b8f04432e8380b412495eae18b2f02a24d0003c63a644be6315 SHA512 af6d4a0c3c06009de3fd55377656d678ab037cc0b808421269551891502de32605ed3e17012395aa6ed58ca9c74bd52b19ed7fe43eda39a78b2c42cca1cd9b5f +DIST ventoy-1.0.98-linux.tar.gz 19840507 BLAKE2B 4d1f3c6e727c70ff4c1fda7dcf59467b54d9b50edf880170cd69df2fdab995bcee370635b44be091247d5e687c2a2367c57de33b4e48823cbc5bc33b050cdea2 SHA512 40914e5a13e78b72fe677c99cfa68c0bb46fceddc979a7dd1f1a3e2fa30568f3b21250cbf02df59f4a06373a47a4c181d44e46f7f4eb08f413ad6c24cd2a1a65 diff --git a/sys-boot/ventoy-bin/ventoy-bin-1.0.97.ebuild b/sys-boot/ventoy-bin/ventoy-bin-1.0.97.ebuild index d5195d320b..a4b98ca992 100644 --- a/sys-boot/ventoy-bin/ventoy-bin-1.0.97.ebuild +++ b/sys-boot/ventoy-bin/ventoy-bin-1.0.97.ebuild @@ -6,7 +6,7 @@ EAPI=8 inherit desktop xdg DESCRIPTION="Creator of bootable USBs, with ability to copy ISOs, persistence storage" -HOMEPAGE="http://www.ventoy.net" +HOMEPAGE="https://www.ventoy.net" SRC_URI="https://github.com/ventoy/Ventoy/releases/download/v${PV}/ventoy-${PV}-linux.tar.gz" S="${WORKDIR}"/ventoy-${PV} diff --git a/sys-boot/ventoy-bin/ventoy-bin-1.0.98.ebuild b/sys-boot/ventoy-bin/ventoy-bin-1.0.98.ebuild new file mode 100644 index 0000000000..a4b98ca992 --- /dev/null +++ b/sys-boot/ventoy-bin/ventoy-bin-1.0.98.ebuild @@ -0,0 +1,90 @@ +# 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="https://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" + +RESTRICT="strip mirror" + +DEPEND=" + sys-fs/dosfstools + sys-fs/exfat-utils + sys-fs/fuse-exfat + sys-block/parted +" +# sys-fs/fuse-exfat is needed for mount, without it: +# mount: /mnt: unknown filesystem type 'exfat' + +QA_PREBUILT="*" # Against "does not respect LDFLAGS" + +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 +} diff --git a/x11-drivers/evdi/Manifest b/x11-drivers/evdi/Manifest new file mode 100644 index 0000000000..ef25cc00d5 --- /dev/null +++ b/x11-drivers/evdi/Manifest @@ -0,0 +1 @@ +DIST evdi-1.14.4.tar.gz 88726 BLAKE2B 15aa13c1e6f67f923cf474a7f33bc1b8ce97e87e3ea19d53ae4c4b827581311907c5d98128190c97a530e566595b2ffd46a10450a63a8ecfc5a352d1f3e80f23 SHA512 53354fc9b09870768b54a6ea391dd7c406d372a248623f628334a1fecd433a59a729821b8a8af4ab31d0dca944d330156d88e79af308964c5686798ab20cabf3 diff --git a/x11-drivers/evdi/evdi-1.14.4.ebuild b/x11-drivers/evdi/evdi-1.14.4.ebuild new file mode 100644 index 0000000000..b88c2a543e --- /dev/null +++ b/x11-drivers/evdi/evdi-1.14.4.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +inherit linux-mod-r1 python-single-r1 + +DESCRIPTION="Extensible Virtual Display Interface" +HOMEPAGE="https://github.com/DisplayLink/evdi" +SRC_URI="https://github.com/DisplayLink/evdi/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" + +IUSE="python test" + +RDEPEND="${PYTHON_DEPS} + x11-libs/libdrm + python? ( + $(python_gen_cond_dep ' + dev-python/pybind11[${PYTHON_USEDEP}] + test? ( + dev-python/pytest-mock[${PYTHON_USEDEP}] + ) + ') + ) +" + +DEPEND="${RDEPEND} + sys-kernel/linux-headers +" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RESTRICT="!test? ( test )" + +CONFIG_CHECK="~FB_VIRTUAL ~I2C" + +PATCHES=( + "${FILESDIR}/${PN}-1.14.4-format-truncation.patch" +) + +pkg_setup() { + linux-mod-r1_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_compile() { + local modlist=( + "evdi=video:${S}/module" + ) + linux-mod-r1_src_compile + + emake library + ln -srf "${S}/library/libevdi.so"{".$(ver_cut 1)",} || die + + use python && emake pyevdi +} + +src_test() { + use python && emake -C pyevdi tests +} + +src_install() { + linux-mod-r1_src_install + + dolib.so "library/libevdi.so.${PV}" + + dosym "libevdi.so.${PV}" "/usr/$(get_libdir)/libevdi.so.$(ver_cut 1)" + dosym "libevdi.so.$(ver_cut 1)" "/usr/$(get_libdir)/libevdi.so" + + use python && DESTDIR="${D}" emake -C pyevdi install +} diff --git a/x11-drivers/evdi/files/evdi-1.14.4-format-truncation.patch b/x11-drivers/evdi/files/evdi-1.14.4-format-truncation.patch new file mode 100644 index 0000000000..fb6ccb8357 --- /dev/null +++ b/x11-drivers/evdi/files/evdi-1.14.4-format-truncation.patch @@ -0,0 +1,22 @@ +diff --git a/library/evdi_lib.c b/library/evdi_lib.c +index ec22b01..8618bc8 100644 +--- a/library/evdi_lib.c ++++ b/library/evdi_lib.c +@@ -473,7 +473,8 @@ static bool is_correct_parent_device(const char *dirname, size_t dirname_maxlen, + { + char link_path[PATH_MAX]; + +- snprintf(link_path, MIN(PATH_MAX - 7, dirname_maxlen), "%s/device", dirname); ++ assert((strnlen(dirname, dirname_maxlen) + 7) < PATH_MAX); ++ snprintf(link_path, sizeof(link_path), "%s/device", dirname); + + if (parent_device == NULL) + return access(link_path, F_OK) != 0; +@@ -619,6 +620,7 @@ static enum evdi_device_status evdi_device_to_platform(int device, char *path) + + snprintf(path, PATH_MAX, + "/sys/bus/platform/devices/%s", fd_entry->d_name); ++ assert((strnlen(path, PATH_MAX) + 5) < PATH_MAX); + snprintf(card_path, PATH_MAX, "%s/drm/card%d", path, device); + if (path_exists(card_path)) { + status = AVAILABLE; diff --git a/x11-drivers/evdi/metadata.xml b/x11-drivers/evdi/metadata.xml new file mode 100644 index 0000000000..d4a93bd432 --- /dev/null +++ b/x11-drivers/evdi/metadata.xml @@ -0,0 +1,14 @@ + + + + + negril.nx+gentoo@gmail.com + Paul Zander + + + DisplayLink/evdi + + + Build PyEvdi + +