Merge updates from master

This commit is contained in:
Repository mirror & CI
2025-07-14 00:22:26 +00:00
55 changed files with 999 additions and 913 deletions

View File

@@ -1,4 +1,4 @@
# Copyright 2023-2024 Gentoo Authors
# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -29,11 +29,6 @@ RDEPEND="${DEPEND}"
# Enabling multiple may lead to build failures, whisper-cpp won't use more than one either way
REQUIRED_USE="?? ( blas cuda hip opencl )"
src_prepare() {
eapply_user
cmake_src_prepare
}
src_configure() {
# Note: CUDA and HIP are currently untested. Build failures may occur.
# Turning off examples causes errors during configure
@@ -48,7 +43,3 @@ src_configure() {
)
cmake_src_configure
}
src_install() {
cmake_src_install
}

View File

@@ -1,7 +0,0 @@
DIST anki-25.02-cp39-abi3-manylinux_2_35_x86_64.whl.zip 10699478 BLAKE2B 0b6e560f4cef124277ce0dd328806391a59b2926e066cc4648d22f4b957f4193a4f355394ff96acdd0ecfa7bcaab3288b78b1dfdd6181b214e6f1ef99d57f7bc SHA512 8d73df399257a6fa1c0d70733e44986deaed7eaa50cfaab2d9ba7c7a754b10230fecfa6192b50bd675b5be1528594e785a30ecf68302c33a5fcf0dfca9e8364e
DIST anki-bin-24.06.1 2212 BLAKE2B 18dba4d3f7210b1fa765490617c4290b7a0f37abd75df6fdb395ea758fa2557789f595e0c0470c918ee988dfa5270df48dda095e8f6dce2aad597b0bba23db50 SHA512 50ee6633758b028c54b899d70cf582c54d4fdbb7e13f10921303db3a84d325ac689b48dbf4a5f03584748e89ad7820e14cd4646d7a3fa97919496f48a99cdb05
DIST anki-bin-24.06.desktop 478 BLAKE2B a42c1186a11cb5a6f9bc41be99e8fb62236148d69c467b174cd34fc865f7955bb71794258bedf6175d1ccd89a8439db721082e145731688f17d097f32be0c93d SHA512 0742596284a0198bdd51b281b4018cca517b89b276352f21d586bd4f3ec78c2991ce93081f46112ab9130378195050b2fc8b636d89d4bdf0872a1f9f369ee326
DIST anki-bin-24.06.png 34595 BLAKE2B 7b8adeece0d666f819d2e579d04f00102d6a28fe5915b2d13ae0bbf72671f95610d2bb47235509756684d38e4be495b41b6b5814fa0ee2b303adc1c78ed54b88 SHA512 c5051738be8c766629a0ec4cbf95c5f554e7bbca2fb5103b3545f2c34a6fcfd87c1384bbd5239199a8491fa46889b299f5f6e1f23988e271402239cdc2a0a9e7
DIST anki-bin-24.06.xml 528 BLAKE2B 237497a01901ead3a48e0282a4a270c1eee2e121998aafb41740010ec36da4886fa01f471855aae841d27b492e31864878e4475fa3e6096d87a9270adf00ed7e SHA512 67f2f8679acbece2c3abbb9dacb3d6f6c7428388297d9354991aa099b2d0331d028fd0de50c83d48ae0591b0b4bb2f9076edfe7fea77fd5d7429a2b83bd0f2ce
DIST anki-bin-24.06.xpm 6324 BLAKE2B 7dc61bb7a86323828f52f53194d36493f1c9355b1384a8b611829f7f2d97d844cf9d7358f8c352272440ace146593f417df261338cff4565fc3b4c0ca44e06bc SHA512 7e2821141522fe2afb07d2eca4013a0f170119856ba46bed0894c09d289133cdd64559df7e0cbcb56b73c5ee5a64215279101722865dede7982c8e6002da9d41
DIST aqt-25.02-py3-none-any.whl.zip 4204328 BLAKE2B 58317cc8ba3e9809199d5d50b3f4b0f5f3f80380c8c25b174c5d995eb363b3be3e0d62832a87458e2e74f2a721cb36df3f8f882c7d33c4be75ba37773483cc18 SHA512 8e5fd52ea749e29b5de42b2a19bb20c83aa3de859ef12218131bb1c30f2af5173676f0831cd34ee093fa8c4d8bdc77490d75adf904c98236259c0a6f52c44bdd

View File

@@ -1,115 +0,0 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
### A NOTE REGARDING PYTHON COMPATABILITY ###
# Anki-bin downloads a python 3.9 wheel. However the wheel used has only one native library _rsbridge.so
# that is not linked against libpython.
# The configuration with Python 3.{10..13} was tested on a limited number of machines and is not guaranteed to work.
PYTHON_COMPAT=( python3_{11..13} )
inherit desktop optfeature python-single-r1 pypi readme.gentoo-r1 xdg
# bump to latest PV, where any of the miscellaneous files changed
MY_PV=24.06
MY_P=${PN}-${MY_PV}
DESCRIPTION="A spaced-repetition memory training program (flash cards)"
HOMEPAGE="https://apps.ankiweb.net/"
SRC_URI="
$(pypi_wheel_url --unpack anki ${PV} cp39 abi3-manylinux_2_35_x86_64)
$(pypi_wheel_url --unpack aqt ${PV})
https://raw.githubusercontent.com/ankitects/anki/${MY_PV}/qt/bundle/lin/anki.1 -> ${MY_P}.1
https://raw.githubusercontent.com/ankitects/anki/${MY_PV}/qt/bundle/lin/anki.desktop -> ${MY_P}.desktop
https://raw.githubusercontent.com/ankitects/anki/${MY_PV}/qt/bundle/lin/anki.png -> ${MY_P}.png
https://raw.githubusercontent.com/ankitects/anki/${MY_PV}/qt/bundle/lin/anki.xml -> ${MY_P}.xml
https://raw.githubusercontent.com/ankitects/anki/${MY_PV}/qt/bundle/lin/anki.xpm -> ${MY_P}.xpm
"
S="${WORKDIR}"
# How to get an up-to-date summary of runtime JS libs' licenses:
# ./node_modules/.bin/license-checker-rseidelsohn --production --excludePackages anki --summary
LICENSE="0BSD AGPL-3+ BSD CC-BY-4.0 GPL-3+ public-domain"
# Dependent crate licenses
LICENSE+="
Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 CC0-1.0 ISC MIT
MPL-2.0 Unicode-3.0 Unicode-DFS-2016 Unlicense ZLIB
"
# Manually added crate licenses
LICENSE+=" openssl"
SLOT="0"
KEYWORDS="~amd64"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="
${PYTHON_DEPS}
!app-misc/anki
app-misc/ca-certificates
dev-qt/qtsvg:6
$(python_gen_cond_dep '
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
dev-python/distro[${PYTHON_USEDEP}]
dev-python/decorator[${PYTHON_USEDEP}]
dev-python/flask[${PYTHON_USEDEP}]
dev-python/flask-cors[${PYTHON_USEDEP}]
dev-python/jsonschema[${PYTHON_USEDEP}]
dev-python/markdown[${PYTHON_USEDEP}]
dev-python/protobuf[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/send2trash[${PYTHON_USEDEP}]
dev-python/waitress[${PYTHON_USEDEP}]
>=dev-python/pyqt6-6.6.1[gui,network,opengl,quick,webchannel,widgets,${PYTHON_USEDEP}]
>=dev-python/pyqt6-sip-13.6.0[${PYTHON_USEDEP}]
>=dev-python/pyqt6-webengine-6.6.0[widgets,${PYTHON_USEDEP}]')
"
BDEPEND="app-arch/unzip"
PATCHES="${FILESDIR}"/${PN}-24.04.1-revert-cert-store-hack.patch
QA_PREBUILT="usr/lib/*"
src_install() {
python_domodule anki {,_}aqt *.dist-info
python_newscript - anki <<-EOF
#!${EPREFIX}/usr/bin/python
import sys
from aqt import run
sys.exit(run())
EOF
newicon "${DISTDIR}"/${MY_P}.png anki.png
newicon "${DISTDIR}"/${MY_P}.xpm anki.xpm
newmenu "${DISTDIR}"/${MY_P}.desktop anki.desktop
newman "${DISTDIR}"/${MY_P}.1 anki.1
insinto /usr/share/mime/packages
newins "${DISTDIR}"/${MY_P}.xml anki.xml
local DOC_CONTENTS="Users with add-ons that still rely on Anki's Qt5 GUI
can temporarily set the environment variable ENABLE_QT5_COMPAT to 1 to have
Anki install the previous compatibility code. This option has additional
runtime dependencies. Please take a look at this package's optional runtime
features for a complete listing.
\n\nENABLE_QT5_COMPAT may be removed in the future, so this is not a
long-term solution.
\n\nAnki's user manual is located online at https://docs.ankiweb.net/
\nAnki's add-on developer manual is located online at
https://addon-docs.ankiweb.net/"
readme.gentoo_create_doc
}
pkg_postinst() {
readme.gentoo_print_elog
xdg_pkg_postinst
optfeature "LaTeX in cards" "app-text/texlive[extra] app-text/dvipng"
optfeature "sound support" media-video/mpv media-video/mplayer
optfeature "recording support" "media-sound/lame[frontend] dev-python/pyqt6[multimedia]"
optfeature "faster database operations" dev-python/orjson
optfeature "compatibility with Qt5-dependent add-ons" dev-python/pyqt6[dbus,printsupport]
optfeature "Vulkan driver" "media-libs/vulkan-loader dev-qt/qtbase:6[vulkan]
dev-qt/qtdeclarative:6[vulkan] dev-qt/qtwebengine:6[vulkan]"
einfo "You can customize the LaTeX header for your cards to fit your needs:"
einfo "Notes > Manage Note Types > [select a note type] > Options"
}

View File

@@ -1,21 +0,0 @@
pip_system_certs is a hack to force certifi to use the system
certificate store. Let's use dev-python/certifi, which is a hack of
its own, instead of introducing an automagical dependency.
From: Lucio Sauer <watermanpaint@posteo.net>
--- a/aqt/__init__.py
+++ b/aqt/__init__.py
@@ -6,13 +6,6 @@ from __future__ import annotations
import logging
import sys
-try:
- import pip_system_certs.wrapt_requests
-except ModuleNotFoundError:
- print(
- "Python module pip_system_certs is not installed. System certificate store and custom SSL certificates may not work. See: https://github.com/ankitects/anki/issues/3016"
- )
-
if sys.version_info[0] < 3 or sys.version_info[1] < 9:
raise Exception("Anki requires Python 3.9+")

View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>dev@notyourcomputer.net</email>
<name>Shaoyu Tseng</name>
</maintainer>
<maintainer type="person">
<email>watermanpaint@posteo.net</email>
<name>Lucio Sauer</name>
</maintainer>
<upstream>
<bugs-to>https://forums.ankiweb.net/c/anki/21</bugs-to>
<changelog>https://github.com/ankitects/anki/releases</changelog>
<doc>https://docs.ankiweb.net/</doc>
<maintainer status="active">
<name>Damien Elmes</name>
</maintainer>
<remote-id type="pypi">anki</remote-id>
<remote-id type="github">ankitects/anki</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -21,7 +21,7 @@ DEPEND="
"
BDEPEND="
dev-util/xxd
|| ( dev-util/xxd app-editors/vim-core )
"
src_prepare() {

View File

@@ -1,5 +0,0 @@
option domain-name-servers 8.8.8.8, 8.8.4.4;
option subnet-mask 255.255.255.0;
subnet 10.15.19.0 netmask 255.255.255.0 {
range 10.15.19.100 10.15.19.254;
}

View File

@@ -1,9 +0,0 @@
[Service]
PIDFile=/run/danctnix/dhcpd4.pid
# We need to fix this ASAP, dhcpd won't run with dhcp user, this needs
# to be investigated.
User=root
ExecStart=
ExecStart=/usr/bin/dhcpd -4 -q -cf /etc/danctnix/dhcpd.conf -pf /run/danctnix/dhcpd4.pid -lf /run/danctnix/dhcpd4.lease

View File

@@ -1,2 +0,0 @@
d /run/danctnix 0755 root root
f /run/danctnix/dhcpd4.lease 0644 root root

View File

@@ -1,83 +0,0 @@
#!/bin/sh
# ConfigFS script is taken from postmarketOS
# https://postmarketos.org
# These are very important, it defines what is the device:
deviceinfo_usb_idVendor="0x1F3A"
deviceinfo_usb_idProduct="0xEFE8"
deviceinfo_manufacturer="DanctNIX"
deviceinfo_name="Arch Linux Mobile"
# We'll let them know that this device is Arch ARM.
deviceinfo_usb_serialnumber="Arch"
setup_usb_network_configfs() {
# See: https://www.kernel.org/doc/Documentation/usb/gadget_configfs.txt
CONFIGFS=/sys/kernel/config/usb_gadget/
if ! [ -e "$CONFIGFS" ]; then
echo " $CONFIGFS does not exist, skipping configfs usb gadget"
return
fi
# Default values for USB-related deviceinfo variables
usb_idVendor="${deviceinfo_usb_idVendor:-0x18D1}" # default: Google Inc.
usb_idProduct="${deviceinfo_usb_idProduct:-0xD001}" # default: Nexus 4 (fastboot)
usb_serialnumber="${deviceinfo_usb_serialnumber:-postmarketOS}"
usb_rndis_function="${deviceinfo_usb_rndis_function:-rndis.usb0}"
echo " Setting up an USB gadget through configfs"
# Create an usb gadet configuration
mkdir $CONFIGFS/g1 || echo " Couldn't create $CONFIGFS/g1"
echo "$usb_idVendor" > "$CONFIGFS/g1/idVendor"
echo "$usb_idProduct" > "$CONFIGFS/g1/idProduct"
# Create english (0x409) strings
mkdir $CONFIGFS/g1/strings/0x409 || echo " Couldn't create $CONFIGFS/g1/strings/0x409"
# shellcheck disable=SC2154
echo "$deviceinfo_manufacturer" > "$CONFIGFS/g1/strings/0x409/manufacturer"
echo "$usb_serialnumber" > "$CONFIGFS/g1/strings/0x409/serialnumber"
# shellcheck disable=SC2154
echo "$deviceinfo_name" > "$CONFIGFS/g1/strings/0x409/product"
# Create rndis function. The function can be named differently in downstream kernels.
mkdir $CONFIGFS/g1/functions/"$usb_rndis_function" \
|| echo " Couldn't create $CONFIGFS/g1/functions/$usb_rndis_function"
# https://github.com/RobertCNelson/boot-scripts/commit/714e162ba98cf3d2897e7fc95e951c6df15a7d0a
if [ -f $CONFIGFS/g1/functions/"$usb_rndis_function"/class ]; then
echo EF > $CONFIGFS/g1/functions/"$usb_rndis_function"/class
echo 04 > $CONFIGFS/g1/functions/"$usb_rndis_function"/subclass
echo 01 > $CONFIGFS/g1/functions/"$usb_rndis_function"/protocol
fi || echo "$CONFIGFS/g1/functions/$usb_rndis_function/class not found"
# Create configuration instance for the gadget
mkdir $CONFIGFS/g1/configs/c.1 \
|| echo " Couldn't create $CONFIGFS/g1/configs/c.1"
mkdir $CONFIGFS/g1/configs/c.1/strings/0x409 \
|| echo " Couldn't create $CONFIGFS/g1/configs/c.1/strings/0x409"
echo "rndis" > $CONFIGFS/g1/configs/c.1/strings/0x409/configuration \
|| echo " Couldn't write configuration name"
# Link the rndis instance to the configuration
ln -s $CONFIGFS/g1/functions/"$usb_rndis_function" $CONFIGFS/g1/configs/c.1 \
|| echo " Couldn't symlink $usb_rndis_function"
# Check if there's an USB Device Controller
if [ -z "$(ls /sys/class/udc)" ]; then
echo " No USB Device Controller available"
return
fi
# Link the gadget instance to an USB Device Controller. This activates the gadget.
# See also: https://github.com/postmarketOS/pmbootstrap/issues/338
# shellcheck disable=SC2005
echo "$(ls /sys/class/udc)" > $CONFIGFS/g1/UDC || echo " Couldn't write UDC"
}
# And we go.
setup_usb_network_configfs
ip address add 10.15.19.82/24 dev usb0
ip link set usb0 up

View File

@@ -1,12 +0,0 @@
# systemd service file for usb-tethering
[Unit]
Wants=dhcpd4.service
Description=USB Tethering
[Service]
Type=oneshot
ExecStart=/bin/bash /usr/lib/danctnix/usb-tethering
[Install]
WantedBy=multi-user.target

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>gjdijkman@gjdwebserver.nl</email>
<name>Gerben Jan Dijkman</name>
</maintainer>
<upstream>
<remote-id type="github">dreemurrs-embedded/Pine64-Arch</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -1,33 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit systemd
DESCRIPTION="USB tethering on Pine64/ConfigFS systems"
HOMEPAGE="https://github.com/dreemurrs-embedded/Pine64-Arch"
S="${WORKDIR}"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~arm64"
DEPEND="
net-misc/dhcp
sys-apps/systemd
"
RDEPEND="${DEPEND}"
src_install() {
exeinto "/usr/lib/danctnix"
doexe "${FILESDIR}/usb-tethering"
systemd_dounit "${FILESDIR}"/usb-tethering.service
insinto "/usr/lib/tmpfiles.d/"
doins "${FILESDIR}"/tmpfiles.d.danctnix-usb.conf
insinto "/etc/systemd/system/dhcpd4.service.d/"
doins "${FILESDIR}"/dhcpd4.service-customexec.conf
insinto "/etc/danctnix/"
doins "${FILESDIR}"/dhcpd.conf
}

View File

@@ -0,0 +1,41 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="A Microsoft project for cloud-based client-server communication."
HOMEPAGE="https://github.com/microsoft/cpprestsdk"
SRC_URI="https://github.com/microsoft/cpprestsdk/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND=">=dev-libs/openssl-1.1.1q
>=dev-libs/boost-1.80.0-r1:=
>=sys-libs/zlib-1.2.13-r1"
DEPEND="${RDEPEND}"
BDEPEND="
app-alternatives/ninja
>=sys-devel/gcc-11.3.0
>=virtual/pkgconfig-2-r1
>=dev-cpp/websocketpp-0.8.2
"
PATCHES=(
"${FILESDIR}"/cpprestsdk-${PV}-warnings.patch
"${FILESDIR}"/cpprestsdk-${PV}-disabl-int-tests.patch
"${FILESDIR}"/cpprestsdk-${PV}-disable-werror-default.patch
"${FILESDIR}"/cpprestsdk-${PV}-boost-1.87-compat.patch
"${FILESDIR}"/cpprestsdk-${PV}-cmake-4.patch
"${FILESDIR}"/cpprestsdk-${PV}-llvm-char-traits-patch.patch
"${FILESDIR}"/cpprestsdk-${PV}-llvm-json-unique-ptr.patch
)
src_configure() {
local mycmakeargs=( -DCMAKE_BUILD_TYPE=Release )
cmake_src_configure
}

View File

@@ -0,0 +1,436 @@
Also submitted upstream https://github.com/microsoft/cpprestsdk/pull/1829
Cpprestsdk is using a lot of unsigned types like uint8_t with C++ streams, this
seems to be fine with msvc/win32 and at least for now with gcc. This patch will
provide a char_traits type to the streams types other than std::char_traits if
needed. This is detected via template specialisations. Google & AIs will probably
suggest adding a std::char_traits<unsingned char> implementation, but I think that
is very innappropriate in a library for use by applications.
--- a/Release/include/cpprest/streams.h (revision 0b1ce318a757bbfb89bdb0fffb61ca4e38dc3b33)
+++ b/Release/include/cpprest/streams.h (revision 32b322b564e5e540ff02393ffe3bd3bade8d299c)
@@ -16,6 +16,7 @@
#define CASA_STREAMS_H
#include "cpprest/astreambuf.h"
+#include "cpprest/details/char_traits.h"
#include <iosfwd>
#include <cstdio>
@@ -60,30 +61,95 @@
concurrency::streams::streambuf<CharType> m_buffer;
};
-template<typename CharType>
+template<typename CharType, class Traits = typename utility::CanUseStdCharTraits<CharType>::TraitsType>
struct Value2StringFormatter
{
+ struct SanitizeInput
+ {
+ const std::basic_string<char> &operator () (const std::basic_string<char> &input)
+ {
+ return input;
+ }
+ template <class InputTraits> std::basic_string<char> operator () (const std::basic_string<unsigned char, InputTraits> &input)
+ {
+ return {reinterpret_cast<const char *>(input.c_str()), input.size()};
+ }
+ const char *operator () (const char *input) {
+ return input;
+ }
+ const char *operator () (const unsigned char *input)
+ {
+ return reinterpret_cast<const char *>(input);
+ }
+ template <class T> T operator () (T input)
+ {
+ return input;
+ }
+ };
+ struct GenerateFormatOutput
+ {
+ std::basic_string<CharType,Traits> &&operator() (std::basic_string<CharType,Traits> &&result)
+ {
+ return std::move(result);
+ }
+ std::basic_string<CharType,Traits> operator() (const std::basic_string<char> &intermediate)
+ {
+ return {reinterpret_cast<const CharType *>(intermediate.c_str()), intermediate.size()};
+ }
+ };
template<typename T>
- static std::basic_string<CharType> format(const T& val)
+ static std::basic_string<CharType, Traits> format(const T& val)
{
- std::basic_ostringstream<CharType> ss;
+ typename std::conditional<
+ sizeof(CharType) == 1,
+ std::basic_ostringstream<char>,
+ std::basic_ostringstream<typename std::make_signed<CharType>::type>
+ >::type ss;
+ SanitizeInput sanitizer;
+ ss << sanitizer(val);
+ typename std::conditional<
+ sizeof(CharType) == 1,
+ std::basic_string<char>,
+ std::basic_string<typename std::make_signed<CharType>::type>
+ >::type str = ss.str();
+ GenerateFormatOutput generateFormatOutput;
+ return generateFormatOutput(std::move(str));
+ }
+};
+
+template<class Traits, typename T>
+struct Value2StringFormatterUint8Format
+{
+ std::basic_string<uint8_t, Traits> operator () (const T& val)
+ {
+ std::basic_ostringstream<char> ss;
ss << val;
- return ss.str();
+ return reinterpret_cast<const uint8_t*>(ss.str().c_str());
+ }
+};
+
+template <class Traits>
+struct Value2StringFormatterUint8Format<Traits, std::basic_string<uint8_t,Traits>>
+{
+ std::basic_string<uint8_t, Traits> operator () (
+ const std::basic_string<uint8_t, typename utility::CanUseStdCharTraits<uint8_t>::TraitsType>& val)
+ {
+ Value2StringFormatterUint8Format<Traits,std::basic_string<char>> format;
+ return format(reinterpret_cast<const std::basic_string<char>&>(val));
}
};
template<>
struct Value2StringFormatter<uint8_t>
{
- template<typename T>
- static std::basic_string<uint8_t> format(const T& val)
+ template <typename T, class Traits = typename utility::CanUseStdCharTraits<uint8_t>::TraitsType>
+ static std::basic_string<uint8_t, Traits> format(const T& val)
{
- std::basic_ostringstream<char> ss;
- ss << val;
- return reinterpret_cast<const uint8_t*>(ss.str().c_str());
+ Value2StringFormatterUint8Format<Traits, T> format;
+ return format(val);
}
- static std::basic_string<uint8_t> format(const utf16string& val)
+ static std::basic_string<uint8_t, typename utility::CanUseStdCharTraits<uint8_t>::TraitsType> format(const utf16string& val)
{
return format(utility::conversions::utf16_to_utf8(val));
}
@@ -262,7 +328,7 @@
/// Write the specified string to the output stream.
/// </summary>
/// <param name="str">Input string.</param>
- pplx::task<size_t> print(const std::basic_string<CharType>& str) const
+ pplx::task<size_t> print(const std::basic_string<CharType,traits>& str) const
{
pplx::task<size_t> result;
if (!_verify_and_return_task(details::_out_stream_msg, result)) return result;
@@ -273,7 +339,7 @@
}
else
{
- auto sharedStr = std::make_shared<std::basic_string<CharType>>(str);
+ auto sharedStr = std::make_shared<std::basic_string<CharType,traits>>(str);
return helper()->m_buffer.putn_nocopy(sharedStr->c_str(), sharedStr->size()).then([sharedStr](size_t size) {
return size;
});
@@ -294,7 +360,7 @@
if (!_verify_and_return_task(details::_out_stream_msg, result)) return result;
// TODO in the future this could be improved to have Value2StringFormatter avoid another unnecessary copy
// by putting the string on the heap before calling the print string overload.
- return print(details::Value2StringFormatter<CharType>::format(val));
+ return print(details::Value2StringFormatter<CharType, traits>::format(val));
}
/// <summary>
--- a/Release/include/cpprest/astreambuf.h (revision d17f091b5a753b33fb455e92b590fc9f4e921119)
+++ b/Release/include/cpprest/astreambuf.h (revision 4188ad89b2cf2e8de3cc3513adcf400fbfdc5ce7)
@@ -15,6 +15,7 @@
#include "cpprest/asyncrt_utils.h"
#include "cpprest/details/basic_types.h"
+#include "cpprest/details/char_traits.h"
#include "pplx/pplxtasks.h"
#include <atomic>
#include <cstring>
@@ -56,55 +57,28 @@
/// <typeparam name="_CharType">
/// The data type of the basic element of the stream.
/// </typeparam>
+namespace detail
+{
template<typename _CharType>
-struct char_traits : std::char_traits<_CharType>
+struct char_traits : utility::CanUseStdCharTraits<_CharType>::TraitsType
{
/// <summary>
/// Some synchronous functions will return this value if the operation
/// requires an asynchronous call in a given situation.
/// </summary>
/// <returns>An <c>int_type</c> value which implies that an asynchronous call is required.</returns>
- static typename std::char_traits<_CharType>::int_type requires_async()
+ static typename utility::CanUseStdCharTraits<_CharType>::TraitsType::int_type requires_async()
{
- return std::char_traits<_CharType>::eof() - 1;
+ return utility::CanUseStdCharTraits<_CharType>::TraitsType::eof() - 1;
}
+};
+}
+template<typename _CharType> struct char_traits : detail::char_traits<_CharType> {
};
#if !defined(_WIN32)
-template<>
-struct char_traits<unsigned char> : private std::char_traits<char>
-{
-public:
- typedef unsigned char char_type;
-
- using std::char_traits<char>::eof;
- using std::char_traits<char>::int_type;
- using std::char_traits<char>::off_type;
- using std::char_traits<char>::pos_type;
-
- static size_t length(const unsigned char* str)
- {
- return std::char_traits<char>::length(reinterpret_cast<const char*>(str));
- }
-
- static void assign(unsigned char& left, const unsigned char& right) { left = right; }
- static unsigned char* assign(unsigned char* left, size_t n, unsigned char value)
- {
- return reinterpret_cast<unsigned char*>(
- std::char_traits<char>::assign(reinterpret_cast<char*>(left), n, static_cast<char>(value)));
- }
-
- static unsigned char* copy(unsigned char* left, const unsigned char* right, size_t n)
- {
- return reinterpret_cast<unsigned char*>(
- std::char_traits<char>::copy(reinterpret_cast<char*>(left), reinterpret_cast<const char*>(right), n));
- }
-
- static unsigned char* move(unsigned char* left, const unsigned char* right, size_t n)
- {
- return reinterpret_cast<unsigned char*>(
- std::char_traits<char>::move(reinterpret_cast<char*>(left), reinterpret_cast<const char*>(right), n));
- }
-
+template <> struct char_traits<unsigned char> : detail::char_traits<unsigned char> {
+ typedef typename std::char_traits<char>::int_type int_type;
+ static int_type eof() { return std::char_traits<char>::eof(); }
static int_type requires_async() { return eof() - 1; }
};
#endif
new file mode 100644
--- /dev/null (revision 4188ad89b2cf2e8de3cc3513adcf400fbfdc5ce7)
+++ b/Release/include/cpprest/details/char_traits.h (revision 4188ad89b2cf2e8de3cc3513adcf400fbfdc5ce7)
@@ -0,0 +1,102 @@
+//
+// Created by sigsegv on 6/28/25.
+//
+
+#ifndef CPPRESTSDK_ROOT_CHAR_TRAITS_H
+#define CPPRESTSDK_ROOT_CHAR_TRAITS_H
+
+#include <type_traits>
+#include <string>
+
+namespace utility {
+
+namespace detail {
+
+template <typename T> struct IntTypeFor {
+ typedef typename std::conditional<std::is_unsigned<T>::value, unsigned long long int, long long int>::type type;
+};
+template <> struct IntTypeFor<char> {
+ typedef typename std::char_traits<char>::int_type type;
+};
+template <> struct IntTypeFor<unsigned char> {
+ typedef typename std::make_unsigned<typename std::char_traits<char>::int_type>::type type;
+};
+
+template <typename T> class DetailCharTraits
+{
+public:
+ using char_type = T;
+ using int_type = typename IntTypeFor<T>::type;
+ using off_type = std::streamoff;
+ using pos_type = std::streampos;
+ using state_type = mbstate_t;
+
+ static void assign(char_type& r, const char_type& a) noexcept { r = a; }
+ static char_type to_char_type(int_type c) noexcept { return char_type(c); }
+ static int_type to_int_type(char_type c) noexcept { return c; }
+ static bool eq(char_type a, char_type b) noexcept { return a == b; }
+ static bool lt(char_type a, char_type b) noexcept { return a < b; }
+ static int compare(const char_type* s1,const char_type* s2,size_t n){
+ for (; n--; ++s1, ++s2) {
+ if (!eq(*s1, *s2))
+ return lt(*s1,*s2)?-1:1;
+ }
+ return 0;
+ }
+ static size_t length(const char_type* s){
+ const char_type* p = s;
+ while (*p)
+ ++p;
+ return size_t(p - s);
+ }
+ static const char_type* find(const char_type* s,size_t n,const char_type& a){
+ for (; n--; ++s)
+ {
+ if (eq(*s, a))
+ return s;
+ return nullptr;
+ }
+ }
+ static char_type* move (char_type* r,const char_type* s,size_t n){
+ return (char_type*)memmove(r, s, n * sizeof(char_type));
+ }
+ static char_type* copy (char_type* r,const char_type* s,size_t n){
+ return (char_type*)memcpy (r, s, n * sizeof(char_type));
+ }
+ static char_type* assign(char_type* r,size_t n,char_type a){
+ if (sizeof(char_type) == 1)
+ {
+ return (char_type*)memset(r, a, n);
+ }
+ else
+ {
+ for (char_type *s = r; n--; ++s)
+ {
+ *s = a;
+ }
+ }
+ }
+ static int_type eof() noexcept { return ~0u; }
+ static int_type not_eof(int_type c) noexcept { return c == eof() ? 0 : c; }
+};
+
+template <typename T, typename = bool> struct CanUseStdCharTraits : public std::false_type
+{
+public:
+ typedef DetailCharTraits<T> TraitsType;
+};
+
+template <typename T> struct CanUseStdCharTraits<T, decltype(std::char_traits<T>::eq(std::declval<T>(), std::declval<T>()))> : public std::true_type
+{
+public:
+ typedef std::char_traits<T> TraitsType;
+};
+
+}
+
+template <typename T> struct CanUseStdCharTraits : detail::CanUseStdCharTraits<typename std::remove_const<typename std::remove_reference<T>::type>::type> {
+};
+
+}
+
+#endif // CPPRESTSDK_ROOT_CHAR_TRAITS_H
--- a/Release/tests/functional/streams/memstream_tests.cpp (revision d17f091b5a753b33fb455e92b590fc9f4e921119)
+++ b/Release/tests/functional/streams/memstream_tests.cpp (revision 6df13a8c0417ef700c0f164bcd0686ad46f66fd9)
@@ -8,6 +8,7 @@
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
+#include "cpprest/details/char_traits.h"
#include "stdafx.h"
#if defined(__cplusplus_winrt)
#include <wrl.h>
@@ -32,7 +33,7 @@
{
VERIFY_IS_TRUE(wbuf.can_write());
- std::basic_string<typename StreamBufferType::char_type> s;
+ std::basic_string<typename StreamBufferType::char_type,typename utility::CanUseStdCharTraits<typename StreamBufferType::char_type>::TraitsType> s;
s.push_back((typename StreamBufferType::char_type)0);
s.push_back((typename StreamBufferType::char_type)1);
s.push_back((typename StreamBufferType::char_type)2);
@@ -137,7 +138,7 @@
{
VERIFY_IS_TRUE(wbuf.can_write());
- std::basic_string<typename StreamBufferType::char_type> s;
+ std::basic_string<typename StreamBufferType::char_type,typename utility::CanUseStdCharTraits<typename StreamBufferType::char_type>::TraitsType> s;
s.push_back((typename StreamBufferType::char_type)0);
s.push_back((typename StreamBufferType::char_type)1);
s.push_back((typename StreamBufferType::char_type)2);
@@ -169,7 +170,7 @@
typedef concurrency::streams::rawptr_buffer<CharType> StreamBufferType;
- std::basic_string<CharType> s;
+ std::basic_string<CharType,typename CanUseStdCharTraits<CharType>::TraitsType> s;
s.push_back((CharType)0);
s.push_back((CharType)1);
s.push_back((CharType)2);
@@ -198,7 +199,7 @@
typedef concurrency::streams::container_buffer<CollectionType> StreamBufferType;
typedef typename concurrency::streams::container_buffer<CollectionType>::char_type CharType;
- std::basic_string<CharType> s;
+ std::basic_string<CharType, typename utility::CanUseStdCharTraits<CharType>::TraitsType> s;
s.push_back((CharType)0);
s.push_back((CharType)1);
s.push_back((CharType)2);
@@ -553,7 +554,7 @@
VERIFY_IS_TRUE(rwbuf.can_read());
VERIFY_IS_TRUE(rwbuf.can_write());
VERIFY_IS_FALSE(rwbuf.is_eof());
- std::basic_string<typename StreamBufferType::char_type> s;
+ std::basic_string<typename StreamBufferType::char_type, typename utility::CanUseStdCharTraits<typename StreamBufferType::char_type>::TraitsType> s;
s.push_back((typename StreamBufferType::char_type)0);
s.push_back((typename StreamBufferType::char_type)1);
s.push_back((typename StreamBufferType::char_type)2);
@@ -684,7 +685,7 @@
VERIFY_IS_TRUE(rwbuf.can_write());
// Write 4 characters
- std::basic_string<typename StreamBufferType::char_type> s;
+ std::basic_string<typename StreamBufferType::char_type, typename utility::CanUseStdCharTraits<typename StreamBufferType::char_type>::TraitsType> s;
s.push_back((typename StreamBufferType::char_type)0);
s.push_back((typename StreamBufferType::char_type)1);
s.push_back((typename StreamBufferType::char_type)2);
@@ -726,7 +727,7 @@
VERIFY_IS_TRUE(rwbuf.can_write());
// Write 4 characters
- std::basic_string<typename StreamBufferType::char_type> s;
+ std::basic_string<typename StreamBufferType::char_type, typename utility::CanUseStdCharTraits<typename StreamBufferType::char_type>::TraitsType> s;
s.push_back((typename StreamBufferType::char_type)0);
s.push_back((typename StreamBufferType::char_type)1);
s.push_back((typename StreamBufferType::char_type)2);
--- a/Release/tests/functional/streams/stdstream_tests.cpp (revision d17f091b5a753b33fb455e92b590fc9f4e921119)
+++ b/Release/tests/functional/streams/stdstream_tests.cpp (revision 6df13a8c0417ef700c0f164bcd0686ad46f66fd9)
@@ -13,6 +13,7 @@
#include "cpprest/filestream.h"
#include "cpprest/producerconsumerstream.h"
#include "cpprest/rawptrstream.h"
+#include "cpprest/details/char_traits.h"
#if (!defined(_WIN32) || !defined(CPPREST_EXCLUDE_WEBSOCKETS)) && !defined(__cplusplus_winrt)
#include <boost/interprocess/streams/bufferstream.hpp>
@@ -303,7 +304,8 @@
const std::streamsize iterations = 100;
- const std::string the_alphabet("abcdefghijklmnopqrstuvwxyz");
+ const char *the_alphabet_characters = "abcdefghijklmnopqrstuvwxyz";
+ const std::basic_string<uint8_t,typename utility::CanUseStdCharTraits<uint8_t>::TraitsType> the_alphabet(reinterpret_cast<const uint8_t *>(the_alphabet_characters));
auto writer = pplx::create_task([ostream, iterations, the_alphabet]() {
auto os = ostream;
@@ -341,7 +343,8 @@
const std::streamsize iterations = 100;
- const std::string the_alphabet("abcdefghijklmnopqrstuvwxyz");
+ const char *the_alphabet_chars = "abcdefghijklmnopqrstuvwxyz";
+ const std::basic_string<uint8_t,typename CanUseStdCharTraits<uint8_t>::TraitsType> the_alphabet(reinterpret_cast<const uint8_t *>(the_alphabet_chars));
auto writer = pplx::create_task([ostream, iterations, the_alphabet]() {
auto os = ostream;

View File

@@ -0,0 +1,221 @@
This patch moves the implementations of certain json-methods to the cpp-file-implementations.
This is needed because llvm needs sizeof(T) to be valid for a lot more methods on containers
and std::unique_ptr, so these methods can't be header only on llvm. This patch is developed
by me and I cannot right now find an upstream bug-report on this just yet. I uploaded a similar
patch to FreeBSD ports a while ago.
--- a/Release/include/cpprest/json.h
+++ b/Release/include/cpprest/json.h
@@ -737,12 +737,10 @@
_ASYNCRTIMP void format(std::basic_string<char>& string) const;
#ifdef ENABLE_JSON_VALUE_VISUALIZER
- explicit value(std::unique_ptr<details::_Value> v, value_type kind) : m_value(std::move(v)), m_kind(kind)
+ explicit value(std::unique_ptr<details::_Value> v, value_type kind);
#else
- explicit value(std::unique_ptr<details::_Value> v) : m_value(std::move(v))
+ explicit value(std::unique_ptr<details::_Value> v);
#endif
- {
- }
std::unique_ptr<details::_Value> m_value;
#ifdef ENABLE_JSON_VALUE_VISUALIZER
@@ -831,9 +829,9 @@
typedef storage_type::size_type size_type;
private:
- array() : m_elements() {}
- array(size_type size) : m_elements(size) {}
- array(storage_type elements) : m_elements(std::move(elements)) {}
+ array();
+ array(size_type size);
+ array(storage_type elements);
public:
/// <summary>
@@ -915,20 +913,13 @@
/// <returns>Iterator to the new location of the element following the erased element.</returns>
/// <remarks>GCC doesn't support erase with const_iterator on vector yet. In the future this should be
/// changed.</remarks>
- iterator erase(iterator position) { return m_elements.erase(position); }
+ iterator erase(iterator position);
/// <summary>
/// Deletes the element at an index of the JSON array.
/// </summary>
/// <param name="index">The index of the element to delete.</param>
- void erase(size_type index)
- {
- if (index >= m_elements.size())
- {
- throw json_exception("index out of bounds");
- }
- m_elements.erase(m_elements.begin() + index);
- }
+ void erase(size_type index);
/// <summary>
/// Accesses an element of a JSON array. Throws when index out of bounds.
@@ -959,15 +950,7 @@
/// </summary>
/// <param name="index">The index of an element in the JSON array.</param>
/// <returns>A reference to the value kept in the field.</returns>
- json::value& operator[](size_type index)
- {
- msl::safeint3::SafeInt<size_type> nMinSize(index);
- nMinSize += 1;
- msl::safeint3::SafeInt<size_type> nlastSize(m_elements.size());
- if (nlastSize < nMinSize) m_elements.resize((size_type)nMinSize);
-
- return m_elements[index];
- }
+ json::value& operator[](size_type index);
/// <summary>
/// Gets the number of elements of the array.
@@ -998,14 +981,8 @@
typedef storage_type::size_type size_type;
private:
- object(bool keep_order = false) : m_elements(), m_keep_order(keep_order) {}
- object(storage_type elements, bool keep_order = false) : m_elements(std::move(elements)), m_keep_order(keep_order)
- {
- if (!keep_order)
- {
- sort(m_elements.begin(), m_elements.end(), compare_pairs);
- }
- }
+ object(bool keep_order = false);
+ object(storage_type elements, bool keep_order = false);
public:
/// <summary>
@@ -1087,22 +1064,13 @@
/// <returns>Iterator to the new location of the element following the erased element.</returns>
/// <remarks>GCC doesn't support erase with const_iterator on vector yet. In the future this should be
/// changed.</remarks>
- iterator erase(iterator position) { return m_elements.erase(position); }
+ iterator erase(iterator position);
/// <summary>
/// Deletes an element of the JSON object. If the key doesn't exist, this method throws.
/// </summary>
/// <param name="key">The key of an element in the JSON object.</param>
- void erase(const utility::string_t& key)
- {
- auto iter = find_by_key(key);
- if (iter == m_elements.end())
- {
- throw web::json::json_exception("Key not found");
- }
-
- m_elements.erase(iter);
- }
+ void erase(const utility::string_t& key);
/// <summary>
/// Accesses an element of a JSON object. If the key doesn't exist, this method throws.
@@ -1142,17 +1110,7 @@
/// <param name="key">The key of an element in the JSON object.</param>
/// <returns>If the key exists, a reference to the value kept in the field, otherwise a newly created null value
/// that will be stored for the given key.</returns>
- json::value& operator[](const utility::string_t& key)
- {
- auto iter = find_insert_location(key);
-
- if (iter == m_elements.end() || key != iter->first)
- {
- return m_elements.insert(iter, std::pair<utility::string_t, value>(key, value()))->second;
- }
-
- return iter->second;
- }
+ json::value& operator[](const utility::string_t& key);
/// <summary>
/// Gets an iterator to an element of a JSON object.
--- a/Release/src/json/json.cpp
+++ b/Release/src/json/json.cpp
@@ -135,6 +135,14 @@
{
}
+#ifdef ENABLE_JSON_VALUE_VISUALIZER
+web::json::value::value(std::unique_ptr<details::_Value> v, value_type kind) : m_value(std::move(v)), m_kind(kind)
+#else
+web::json::value::value(std::unique_ptr<details::_Value> v) : m_value(std::move(v))
+#endif
+{
+}
+
web::json::value::value(const value& other)
: m_value(other.m_value->_copy_value())
#ifdef ENABLE_JSON_VALUE_VISUALIZER
@@ -495,3 +503,67 @@
#endif
return instance;
}
+
+web::json::array::array() : m_elements() {}
+web::json::array::array(size_type size) : m_elements(size) {}
+web::json::array::array(storage_type elements) : m_elements(std::move(elements)) {}
+
+web::json::array::iterator web::json::array::erase(web::json::array::iterator position)
+{
+ return m_elements.erase(position);
+}
+
+void web::json::array::erase(web::json::array::size_type index)
+{
+ if (index >= m_elements.size())
+ {
+ throw json_exception("index out of bounds");
+ }
+ m_elements.erase(m_elements.begin() + index);
+}
+
+json::value& web::json::array::operator[](web::json::array::size_type index)
+{
+ msl::safeint3::SafeInt<size_type> nMinSize(index);
+ nMinSize += 1;
+ msl::safeint3::SafeInt<size_type> nlastSize(m_elements.size());
+ if (nlastSize < nMinSize) m_elements.resize((size_type)nMinSize);
+
+ return m_elements[index];
+}
+
+web::json::object::object(bool keep_order) : m_elements(), m_keep_order(keep_order) {}
+web::json::object::object(storage_type elements, bool keep_order) : m_elements(std::move(elements)), m_keep_order(keep_order)
+{
+ if (!keep_order)
+ {
+ sort(m_elements.begin(), m_elements.end(), compare_pairs);
+ }
+}
+web::json::object::iterator web::json::object::erase(iterator position)
+{
+ return m_elements.erase(position);
+}
+
+void web::json::object::erase(const utility::string_t& key)
+{
+ auto iter = find_by_key(key);
+ if (iter == m_elements.end())
+ {
+ throw web::json::json_exception("Key not found");
+ }
+
+ m_elements.erase(iter);
+}
+
+json::value& web::json::object::operator[](const utility::string_t& key)
+{
+ auto iter = find_insert_location(key);
+
+ if (iter == m_elements.end() || key != iter->first)
+ {
+ return m_elements.insert(iter, std::pair<utility::string_t, value>(key, value()))->second;
+ }
+
+ return iter->second;
+}

View File

@@ -25,7 +25,7 @@ PATCHES=(
)
src_prepare() {
find thirdparty -mindepth 1 -not -name imapdl -delete
find thirdparty -mindepth 1 -not -name imapdl -delete || die
cmake_src_prepare
}

View File

@@ -3,7 +3,7 @@
EAPI=8
inherit cmake vcs-snapshot
inherit cmake
EGIT_COMMIT="721edb3e1a817e527fd9e1e18a3bea300822522e"
@@ -11,6 +11,8 @@ DESCRIPTION="A C++ header-only YAML library"
HOMEPAGE="https://fktn-k.github.io/fkYAML/"
SRC_URI="https://github.com/fktn-k/fkYAML/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
@@ -26,7 +28,7 @@ PATCHES=(
)
src_prepare() {
find thirdparty -mindepth 1 -not -name imapdl -delete
find thirdparty -mindepth 1 -not -name imapdl -delete || die
cmake_src_prepare
}

View File

@@ -1 +1 @@
DIST python_designateclient-6.2.0.tar.gz 72182 BLAKE2B 1c39a9d4a8a40c153aa5c2ec6896e9e0b30b7291a0f9bdf7cc79a4b4a16d29e2329029e8f1b9802cf1d1c9dd2ac047a2be67d25e696ead44e1958d6b65b5a9b0 SHA512 72995f35cd86dcf70bb623d89f1b51cace5c459db174478f119253fbfe4cc3f40c7a4d049bf65d992b8307bceef8d7619fc6649a52f9ae7f914b432f654fa6c5
DIST python_designateclient-6.3.0.tar.gz 72386 BLAKE2B 6296b3ad3c516989c363ee4ac4653656330a0c8c3e2df9de8e8844a88d2c53f8926273e2dc6eda207ea95634f48fde22f99e6c6902c77a160db4c6da7037bccf SHA512 7a7eb0b4a310f921eaa68c5258a81bad91a15bb51b26e81f6ab17d34a0ce91817f47912114278a13ae767b5cd8063dea951f59de0f04d389c21371a77e26ba30

View File

@@ -1 +1 @@
DIST python_manilaclient-5.4.0.tar.gz 389596 BLAKE2B 3383d59b690f5c694b0fc57101b6569f8b41b0f4e7280f170b330f5e0c70f54cd55f491d9a989bc80194a215da2e88ca244e0b954e7d14697c14a3591fc9fa99 SHA512 c8149acbe151884d29fc520c44a80ab6fe6900bd1b40cc3a74a2bcb70fa8b868df5fffd7062e1fde685af171dc27689b77c6199be6cd272f4a1f21bc466dbf96
DIST python_manilaclient-5.5.0.tar.gz 389835 BLAKE2B 8637355ffc379ec16f61e1b0f578c2ad5322aef72715e5ff101742cedb083c8d8f749c4e9a9ff9f6da66b3a458717a4828d2ba3bab1df86f8a14f21b0ceb7a13 SHA512 dd42607279e4b01dd5333e78c973808763cc7efa54973d04ef1f9a68cd44e7befe738fa7c01aed0a61a723d8bb63b4ef44041bc00f88a2c984f50fcf81d7345e

View File

@@ -1 +1 @@
DIST python_octaviaclient-3.10.0.tar.gz 97294 BLAKE2B ca56e662bf0173ad4a922b6fc9f82fbfe7a5cd7488abc2746836db44b6e128e159272a7b9618703aef143c6f50764da5d16cf2142a7730fba9ceb37648c37de6 SHA512 cf867242794e9c79be283915040d5280134da28fa92c4371a9ff94f7c03189e5fe513c5da42cfc9079e3be54234dce868b1770e3869654135a5be159029c7b1c
DIST python_octaviaclient-3.11.1.tar.gz 97466 BLAKE2B f148eb93dcd10fa2d11b47d2920018666a22a11e9d88b25aea922a7146db3fa333d270311470421e8f677298768f2ac9b16c283e4dfe1f843b960f9dcbac218c SHA512 c9765255cfc69aed781d8d9d04f35e0548cf5a6f8f4cac52ca41f97f0db0e9a87ef5c902f133b233a5246c49c49364e8398173e6bf6d6bfc8cf89ae723de946e

View File

@@ -1,2 +0,0 @@
DIST gitqlient-1.6.1.tar.gz 4971880 BLAKE2B b793dd406d1dff7aa193916a08dc5c10159eb54f79d2d9930b672aed5ee5d98fe3d6afb1869032bdeee1790b078a5fefa8064506353d56e870ea95bb24ebcc26 SHA512 e115c9fca6c8fe17b32d326a7f649d35ea55fd1f4c1df7c30962e9f07382d246cd23b8dbdbf6759620d1ba7ba9c48c7a391b2e0a730a58bba9f1ba6425a2da9e
DIST gitqlient-GitServerPlugin-0.2.0.tar.gz 78411 BLAKE2B 4220f0d53abccac79a21cb5cb2e1cad608fbfc62afe797ed446594a642010f6476c519c3ba807db4cbc8f51150420186933cfeb18b27b98ddfd18882213e04e2 SHA512 d01c8fd3132d03f1f819ec7c81f920f6e37146f43182c322d6048ba008ab83dac71b43510445fe9ec5612555e1b18c2afb4a0193dd1a3dabb3b80ae35e9e9381

View File

@@ -1,54 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qmake-utils
MY_PN="GitServerPlugin"
GQ="GitQlient"
GQ_PN="gitqlient"
GQ_PV="1.6.1"
DESCRIPTION="GitQlient GitServer plugin"
HOMEPAGE="https://github.com/francescmm/GitServerPlugin"
SRC_URI="
https://github.com/francescmm/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${GQ_PN}-${MY_PN}-${PV}.tar.gz
https://github.com/francescmm/${GQ}/releases/download/v${GQ_PV}/${GQ_PN}_${GQ_PV}.tar.gz -> ${GQ_PN}-${GQ_PV}.tar.gz
"
S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64"
PDEPEND=">=dev-vcs/gitqlient-1.6.1"
RDEPEND="
dev-qt/qtnetwork:5
dev-qt/qtwidgets:5
dev-qt/qtwebengine:5[widgets]
"
# No need SONAME for runtime plugin
QA_SONAME="usr/lib.*/lib${MY_PN}.so"
src_prepare() {
default
mv -T ../"${GQ_PN}_${GQ_PV}"/src/AuxiliarCustomWidgets src/AuxiliarCustomWidgets || die
mv -T ../"${GQ_PN}_${GQ_PV}"/src/QLogger src/QLogger || die
mv -T ../"${GQ_PN}_${GQ_PV}"/src/git src/git || die
}
src_configure() {
eqmake5 "${MY_PN}".pro
}
src_install() {
dolib.so lib/lib"${MY_PN}".so
}
pkg_postinst() {
elog "To use ${MY_PN} set PluginFolder in GitQlient settings Plugin tab to /usr/$(get_libdir)"
}

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>torokhov-s-a@yandex.ru</email>
<name>Sergey Torokhov</name>
</maintainer>
<upstream>
<remote-id type="github">francescmm/GitServerPlugin</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -1,2 +0,0 @@
DIST gitqlient-1.6.1.tar.gz 4971880 BLAKE2B b793dd406d1dff7aa193916a08dc5c10159eb54f79d2d9930b672aed5ee5d98fe3d6afb1869032bdeee1790b078a5fefa8064506353d56e870ea95bb24ebcc26 SHA512 e115c9fca6c8fe17b32d326a7f649d35ea55fd1f4c1df7c30962e9f07382d246cd23b8dbdbf6759620d1ba7ba9c48c7a391b2e0a730a58bba9f1ba6425a2da9e
DIST gitqlient-JenkinsPlugin-0.2.0.tar.gz 29474 BLAKE2B f8dfb020f68ec474b0d15b62a5566316f21cd29f4878170bcf7940e3df596a970535d5db3c3f05f12d18fdff5f5b6f99db242c807e8554754f08f14ad31997a0 SHA512 0c3089b80116974a687821940d7e78c6b663acf50cb060cff824d3e1e1838773eca8ed671778d2cf016d0b3e5fff8daab958f765af4eacc04dea66864966ae8e

View File

@@ -1,54 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qmake-utils
MY_PN="JenkinsPlugin"
GQ="GitQlient"
GQ_PN="gitqlient"
GQ_PV="1.6.1"
DESCRIPTION="GitQlient Jenkins plugin"
HOMEPAGE="https://github.com/francescmm/JenkinsPlugin"
SRC_URI="
https://github.com/francescmm/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${GQ_PN}-${MY_PN}-${PV}.tar.gz
https://github.com/francescmm/${GQ}/releases/download/v${GQ_PV}/${GQ_PN}_${GQ_PV}.tar.gz -> ${GQ_PN}-${GQ_PV}.tar.gz
"
S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64"
PDEPEND=">=dev-vcs/gitqlient-1.6.1"
RDEPEND="
dev-qt/qtnetwork:5
dev-qt/qtwidgets:5
dev-qt/qtwebengine:5[widgets]
"
# No need SONAME for runtime plugin
QA_SONAME="usr/lib.*/lib${MY_PN}.so"
src_prepare() {
default
mv -T ../"${GQ_PN}_${GQ_PV}"/src/AuxiliarCustomWidgets src/AuxiliarCustomWidgets || die
mv -T ../"${GQ_PN}_${GQ_PV}"/src/QLogger src/QLogger || die
mv -T ../"${GQ_PN}_${GQ_PV}"/src/QPinnableTabWidget src/QPinnableTabWidget || die
}
src_configure() {
eqmake5 "${MY_PN}".pro
}
src_install() {
dolib.so lib/lib"${MY_PN}".so
}
pkg_postinst() {
elog "To use ${MY_PN} set PluginFolder in GitQlient settings Plugin tab to /usr/$(get_libdir)"
}

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>torokhov-s-a@yandex.ru</email>
<name>Sergey Torokhov</name>
</maintainer>
<upstream>
<remote-id type="github">francescmm/JenkinsPlugin</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -49,7 +49,7 @@ SLOT="0"
IUSE="discord faudio +llvm opencv vulkan wayland"
DEPEND="
app-arch/p7zip
app-arch/7zip
app-arch/zstd
dev-libs/flatbuffers
dev-libs/hidapi

View File

@@ -49,7 +49,7 @@ SLOT="0"
IUSE="discord faudio +llvm opencv vulkan wayland"
DEPEND="
app-arch/p7zip
app-arch/7zip
app-arch/zstd
dev-libs/flatbuffers
dev-libs/hidapi

View File

@@ -1,2 +1,2 @@
DIST mir-2.20.1.tar.gz 6823288 BLAKE2B 68068f7f70eaacdf5840fe8c0bd65b0941240ede6850fc0fde80d894b1309a3f9741d7f28b399bdc453ab06954d1747dee5a9dc4561fe98236473c82cf334d65 SHA512 0e384200790aa025b0cc46d615adcf461b7a0a7dd1ca8429f023d5eeb6c9edf02aa099882c081d63635a55f7bd650b44d2c4294331fd04ce703be806ea866bb3
DIST mir-2.20.2.tar.gz 6829935 BLAKE2B fcbd1608960cd67c94b56e1845f989e77eae10bd608b25b19887ab8f92ed388b960bb973d6639d1a794847d18ac3af9ff5e8a98d775b00388aaace3f43f46914 SHA512 f886e4fe561a96524cd45b4e84ce52241980aefd4edca8b01519ec790546a4a04b6e04fd79cca97e158c4b6bb94b0d0a281ae615c4574685b53fc38b2a0bb3ab
DIST mir-2.21.1.tar.gz 6879903 BLAKE2B 644d41be226b7ecf673b26bcc14b52d693b11bc2d63775f591e7332d854b0d3725ca23a0747e7ea53b2928ea5f3221376d74fd6b5aea0997f392e2892028a12e SHA512 36bfef3462e2428d608e5b6e4ba910d4c0c1db6d4614cc46ebb322314230b785e308b120bf5a69e60aad6c6e04c369a48d7323cccc1d4a389dc757c69ffcff40

View File

@@ -33,6 +33,7 @@ RDEPEND="
x11-libs/libdrm
x11-libs/libxcb:=
x11-libs/libxkbcommon
x11-libs/pixman
virtual/libudev:=
X? ( x11-libs/libX11 )
"
@@ -58,7 +59,7 @@ PATCHES=(
src_prepare() {
cmake_src_prepare
cmake_comment_add_subdirectory examples/
cmake_comment_add_subdirectory examples/ examples/tests/
}
src_configure() {

View File

@@ -1,2 +1,2 @@
DIST miracle-wm-0.4.1.tar.gz 478349 BLAKE2B 6a8f942280ed33d5e285fc41eab8c0b2fca34aeafd828e6afc346eb18c89e7aebb2056f55ee7c1d7a624581096f63d7091e0e1be44135d7df54482cfe878f851 SHA512 50b49bd711b0aa4d2285423340a4328e961b4feee77c8c2c931a747ceec1eaabb51e6a4bb3fa8d6cab420555baa2f919369a3d1d195b1bcbc1be033b2087f86e
DIST miracle-wm-0.5.2.tar.gz 1089314 BLAKE2B b68e8f58b6359bdba2cb367d46ceb939a192ffb8b70566803b9aea3e2eb167a942aa6edf087ffa2a1910a51b5d6450f633936a60f89521deabafe51436a8fdd6 SHA512 959e79d7139decbd1ebc2d0bb03fd23a40bfc7debdeb500c5a62b1dfa568ef76b0e32e12064412122c4820f6525ec25206f0434b3d1614399e5b750e950dc53b
DIST miracle-wm-0.6.1.tar.gz 1146630 BLAKE2B e5982359e7abbecd97b099c03b80a4374db01528981f4e1ee1fd8ef2112718af8d3c2c9a3f920c48dcb954cd03c93aa68433d3328a2c2ec27f230916fcfb4ade SHA512 823ac88b23b0d9337bf8e28520ca20fc17e0fe52955657c69703e8d37c394f192feb463ba307f7b6bc6c4b136770f3f03551991de649034b5abb1dc53c35c6e8

View File

@@ -0,0 +1,26 @@
--- a/miracle-wm-config/CMakeLists.txt
+++ b/miracle-wm-config/CMakeLists.txt
@@ -3,7 +3,9 @@ pkg_check_modules(MIRCORE mircore REQUIRED)
pkg_check_modules(YAML REQUIRED IMPORTED_TARGET yaml-cpp)
pkg_check_modules(LIBEVDEV REQUIRED IMPORTED_TARGET libevdev)
pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
-find_package(GTest REQUIRED)
+if(WITH_TESTS)
+ find_package(GTest REQUIRED)
+endif()
add_library(miracle-wm-config
SHARED
@@ -55,6 +57,7 @@ install(
)
# Tests
+if(WITH_TESTS)
add_executable(test_miracle_wm_config_c_api
tests/test_miracle_wm_config_c_api.cpp
)
@@ -74,3 +77,4 @@ target_link_libraries(test_miracle_wm_config_c_api
)
add_test(NAME test_miracle_wm_config_c_api COMMAND test_miracle_wm_config_c_api)
+endif()

View File

@@ -3,7 +3,9 @@
EAPI=8
inherit cmake systemd
PYTHON_COMPAT=( python3_13 )
inherit cmake python-single-r1
DESCRIPTION="Tiling Wayland compositor based on Mir"
HOMEPAGE="https://github.com/miracle-wm-org/miracle-wm"
@@ -13,21 +15,33 @@ LICENSE="GPL-3+ MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="systemd test"
REQUIRED_USE="systemd? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
RDEPEND="
COMMON_DEPEND="
dev-cpp/yaml-cpp:=
dev-cpp/nlohmann_json
dev-libs/glib:2
dev-libs/json-c:=
dev-libs/libevdev
dev-libs/libpcre2:=
dev-libs/wayland
>=gui-libs/mir-2.18:=
media-libs/libglvnd
x11-base/xwayland
"
RDEPEND="
${COMMON_DEPEND}
systemd? (
${PYTHON_DEPS}
$(python_gen_cond_dep '
dev-python/dbus-next[${PYTHON_USEDEP}]
dev-python/tenacity[${PYTHON_USEDEP}]
')
)
"
DEPEND="
${RDEPEND}
${COMMON_DEPEND}
media-libs/glm
"
BDEPEND="
@@ -35,20 +49,29 @@ BDEPEND="
test? ( dev-cpp/gtest )
"
PATCHES=(
"${FILESDIR}/${P}-conditional-tests.patch"
)
pkg_setup() {
use systemd && python-single-r1_pkg_setup
}
src_prepare() {
cmake_src_prepare
use test || cmake_comment_add_subdirectory tests/
sed -i "s| /usr/lib/systemd/user| $(systemd_get_userunitdir)|" CMakeLists.txt || die
use systemd && python_fix_shebang session/usr/bin/libexec/miracle-wm-wait-sni-ready
}
src_configure() {
local mycmakeargs=(
-DSYSTEMD_INTEGRATION=$(usex systemd)
-DWITH_TESTS=$(usex test)
)
cmake_src_configure
}
src_test() {
"${BUILD_DIR}/bin/miracle-wm-tests" || die
"${BUILD_DIR}/tests/miracle-wm-tests" || die
"${BUILD_DIR}/miracle-wm-config/test_miracle_wm_config_c_api" || die
}

View File

@@ -1,8 +1,10 @@
DIST pixman-0.3.0-LClMnz2VAAAs7QSCGwLimV5VUYx0JFnX5xWU6HwtMuDX.tar.gz 7966 BLAKE2B 8d6607e878b0bacc0fc16bcc2264ddd89e349b61a1b269e59b2e19b311064453a473f2401103b0e40906f7190d154d403b712e05fe937abe2f6253f7d8337820 SHA512 2eb43d460aff9ff2da015afc9230ca73588ada59df59465a3efa8f074d9d641fec4bf52ab3de475ec1a5ba2f04afc59221f231af5e2cf5aba7252bbde6be35a5
DIST river-0.3.11.tar.gz 174745 BLAKE2B 6ab4906475d21d6eb1572d2eed53003deb33da5c953fdfa446444677ff7b25d10610d10ce565f891fc5bb20cd375dcdb895e92d084d86dfb1e2c75709852a834 SHA512 b0e2439247c4424b06136c9466447172d5ea4df9b3f8133051d19f8049c5da7d17e3eb03dfe6eac81d03c6762a8c40b2f6d6c918ea5348a23a330f1a782f3bd1
DIST river-0.3.7.tar.gz 172036 BLAKE2B d428ec0abf562c0b0ef153499862e0c0c32b37721c870c7f0d54599634fccd5339595eb51e34d401e877378b10c945ad7e0fbf73a90c27c3a1c9eb0883ca88df SHA512 4297b2bd566a3f87fd0c158affd8573661d722ebb7e795356040b15185f09e67dcfac938fa26757d683a274dc08781559b059584dc4934c1d6f51666bf8cb9ec
DIST river-0.3.9.tar.gz 174866 BLAKE2B fcadce04c095629c5b44a8f3aa38cd00038aa11e5e6a7f863e9ff6516191ee83b3cd805d88e4457c0acf471853701f1e0a71d1bae30921e37e1bd7ee7aee924f SHA512 1c69d07bdb0e16e2ae31afd1af39739b23f0ab070a70afcef86757bb3de5d44058711b860bf2936dca7d7589d8a5074e50edf19e8ea33abbf36418b838f71ffa
DIST wayland-0.3.0-lQa1kjPIAQDmhGYpY-zxiRzQJFHQ2VqhJkQLbKKdt5wl.tar.gz 74934 BLAKE2B 8dda2bae62c65068825068dbe91e701ad4a71685d2209bb703d0e8b71b75f1546690b83fc66e9b81de59e26c9e5a9d8d5cfa3f2098cd16a3f13ada7f38fb94ce SHA512 436c7104c41bb3c26bedc3491d887293fa0a40c11a14bc0973a1fa873c5161a05c9681a857f6cf89c9b34106e2b9e92b4f67eebabaf16836cb99a459ad11d20e
DIST wlroots-0.18.2-jmOlchnIAwBq45_cxU1V3OWErxxJjQZlc9PyJfR-l3uk.tar.gz 58688 BLAKE2B 744c6305c9593fc21d6c00973adfa84f28e153e2fcac8652590d4ecadc0051f3a496997f2d1ab6256136530b4fc50cfbca876020ec5f9ec0c93c9447b2a53639 SHA512 e41e14f90f6b8e760450eae74d5ed1396646a4af2b373347b0bb3d22ba27d6e22b9d4786e76025fc1127a270cafc12f5505770f8ae13202aba9ff1b01b4047f2
DIST wlroots-0.19.2-jmOlcsnnAwDFAeOamkUaxyHNhKngH4Ai5rrLSVbqA8LW.tar.gz 59231 BLAKE2B 58eb9e3ee58c843f996dd3781cf7e477f7dbd7627024ba52ab36f5d214be7039b0308a25de843a304bf02c600b1b444eeeac254ab26d2ca21fff6eb686da6ad6 SHA512 d8266b76874a6704d3f453ef7e657a75e6279706476e78565afc46c08d7cdc29acd88f1b27f70225a3c2398b03d9230ed1a322fc688a6ca6ae45875219287e50
DIST xkbcommon-0.3.0-VDqIe3K9AQB2fG5ZeRcMC9i7kfrp5m2rWgLrmdNn9azr.tar.gz 22730 BLAKE2B 6870fc2465e2b1ef4faa6330183a1dade4a4bcf36130113444e5221ff9c764db488304f2f25a603f2511c2562d55bf1011a5f8fe41a068e7e5b707e1d06c0792 SHA512 fe0dc46a8556f19c2ce1badbeee7576065cb56495b94b6d468ee6ed8667f9fef5377e26864b0c8e81c3a2718cfcaf8a4f5e13aab23a615f3a58ec639372fb758
DIST zig-pixman-12209db20ce873af176138b76632931def33a10539387cba745db72933c43d274d56.tar.gz 7874 BLAKE2B 25e0e0a65ab45c08e13ed48393e0d009a63e0ec4c2d8452f08ec4b013f9b696adb1d7356a49b1c3b25710982fb34629002df8d433382d433fcdefd1de5fd4358 SHA512 61ce38e9788e9a3701cf32b2d8721424088e1a8bd11841fecc999a31f9b46148e63a35cf770a39edcc7887913019654f7df945b7d7e3b57437d007f7d45609b9
DIST zig-wayland-1220687c8c47a48ba285d26a05600f8700d37fc637e223ced3aa8324f3650bf52242.tar.gz 56543 BLAKE2B aaf82efe78d25c59a87de050147857fcf9a19764141cb40d92b0dd48b96ea0ec52d00a1ab0df1afe4c45cda6d64dda97f296f0aa29d8b9ea3da49e1d5cd69e50 SHA512 dfb140c06d9e3c566034f9102426e7bd47dcde87a2ae16d43ce3ea72cf44bea872bab1d9a23a24ae9d57d2d4ae6c56060a6b10f869de3990046426b0462db85e

View File

@@ -0,0 +1,72 @@
# Copyright 2024-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="A dynamic tiling Wayland compositor"
HOMEPAGE="https://isaacfreund.com/software/river/ https://codeberg.org/river/river"
declare -g -r -A ZBS_DEPENDENCIES=(
[pixman-0.3.0-LClMnz2VAAAs7QSCGwLimV5VUYx0JFnX5xWU6HwtMuDX.tar.gz]='https://codeberg.org/ifreund/zig-pixman/archive/v0.3.0.tar.gz'
[wayland-0.3.0-lQa1kjPIAQDmhGYpY-zxiRzQJFHQ2VqhJkQLbKKdt5wl.tar.gz]='https://codeberg.org/ifreund/zig-wayland/archive/v0.3.0.tar.gz'
[wlroots-0.19.2-jmOlcsnnAwDFAeOamkUaxyHNhKngH4Ai5rrLSVbqA8LW.tar.gz]='https://codeberg.org/ifreund/zig-wlroots/archive/v0.19.2.tar.gz'
[xkbcommon-0.3.0-VDqIe3K9AQB2fG5ZeRcMC9i7kfrp5m2rWgLrmdNn9azr.tar.gz]='https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.3.0.tar.gz'
)
ZIG_SLOT="0.14"
inherit zig
# TODO verify-sig support
SRC_URI="
https://codeberg.org/river/river/releases/download/v${PV}/${P}.tar.gz
${ZBS_DEPENDENCIES_SRC_URI}
"
# river: GPL-3-or-later
# zig-pixman, zig-wayland, zig-wlroots, zig-xkbcommon: MIT
LICENSE="GPL-3+ MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="X +llvm man"
BDEPEND="
dev-libs/wayland-protocols
dev-util/wayland-scanner
man? ( app-text/scdoc )
|| (
dev-lang/zig:${ZIG_SLOT}[llvm(+)?]
dev-lang/zig-bin:${ZIG_SLOT}
)
"
DEPEND="
dev-libs/libevdev
dev-libs/libinput:=
dev-libs/wayland
gui-libs/wlroots:0.19[X?]
x11-libs/libxkbcommon[wayland,X?]
x11-libs/pixman
"
RDEPEND="${DEPEND}"
DOCS=( "README.md" )
src_configure() {
local my_zbs_args=(
-Dstrip=false # Let Portage control this
-Dpie=true
-Dno-llvm=$(usex llvm false true)
-Dman-pages=$(usex man true false)
-Dxwayland=$(usex X true false)
)
zig_src_configure
}
src_install() {
zig_src_install
insinto /usr/share/wayland-sessions/
doins contrib/river.desktop
insinto /usr/share/river/
doins -r example/
}

View File

@@ -1,6 +0,0 @@
DIST nulloy-0.9.5.tar.gz 326446 BLAKE2B 8dfe39e428abcdc8c593816ae2aaae2ce8e10e5f5551de77444a205abc40dc1a369ab06ca61090235c2601ad1c0243282159ff002e47046b1482b0ec6c3f4389 SHA512 ca65ed5a5d0727505e36e9f85fd93ae27210f01ad4677ffce305ad00ef0307807acb492d1304c9f7ec75f7ec7e0d88371a89799c779d8d7b280a54bf703bd3d0
DIST nulloy-0.9.8.7.tar.gz 332534 BLAKE2B 2be3193db135a884a31ceb9b727aa564add8302f8fc07879ec952f01df4bd3946e2bb5ba89ebef4c44de077341490239b09ecb41b7b61fb76c92d23cfe8de660 SHA512 3d1aa93554a9354f69ce46101c64d1deb82356aa68886b3c098e73f67e621db1b4d2e2098243947a9380b741a0c5b65b7333a581bf924def5aff75374510ee79
DIST nulloy-0.9.8.tar.gz 332399 BLAKE2B 5d18d6b00d6dc3f478e56a15e7b0869222892c94a46337712f1471a9ce2c3cf42bd0cf6c42c7177022ac323d732f095e1b3a1c7d37a9aff100fc8f833abd32e3 SHA512 4616e050664da46c3ddf89a10366134394b8a7d7cf26488396259b0ff394bbb03df7fe0f73b7d8476ad514b4fb118af0613f0d239b5e7ca0ecc769dfafb53036
DIST nulloy-0.9.9.tar.gz 331205 BLAKE2B b16cfbf7395a386da15f03788588cd4a0c5ec4ba05ee089aa2a289963279b5c8e5d433a9f0d58102f58303ce7f3b18491be74d6b9a572770d1416b9774e839d2 SHA512 84a003721f07cf66256500275e0a6f41999bed2457bb0f1273b4963936889b49bb0832cbbac00016f11e5e9f2deca1a2021c36cd767d67f05bdf40653c87f0e3
DIST nulloy-theme-night-1.1.tar.bz2 353588 BLAKE2B e22388b2236b3f274cae127dcb545444b465cbf164c4bb6a5b443fdf7e2494c663dd112bbe07f2f5d2bd5e8c11b3b874381925e7f386ace47e2838ebb7ad7a3e SHA512 ef92fc90ffe3383b5ee028f9f871676168fb845de1ecdb2b88f7397abbff433a2483e3f321cf4487c4551253013064815372a5be2a0860d3b5528abea6d97b59
DIST nulloy-theme-night-v1.0.tar.bz2 353544 BLAKE2B 71191393fcf1117f9c6c11c30ea2e6a51638e3a098d11c6c22d41e123da45313681b83cd8d3bfa290ed3e3b099390b2ed46a167b2bcaacd44d7833d375df71d1 SHA512 b0f1e6e3d2df6289ba19fc16ae1fb95c4cd731b684aafb498f87079a7a2e6a60bcc3edde37698c3e69d04062c7f563855b6a7997dea80ab6fad6c3615ebadd6d

View File

@@ -1,11 +0,0 @@
--- a/src/skins/skins.pri
+++ b/src/skins/skins.pri
@@ -12,7 +12,7 @@ win32 {
ZIP_DEL_CMD = 7z d -tzip
}
-unix:SKINS = metro silver slim
+unix:SKINS = metro silver slim night
win32:SKINS = Metro Silver Slim
for(skin, SKINS) {
_depends = $$SRC_DIR/skins/$$lower($${skin})/*

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<use>
<flag name="skins">Without this flag - you can choose qt5 themes not only for preferences</flag>
</use>
<upstream>
<remote-id type="github">nulloy/nulloy</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -1,73 +0,0 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit xdg
DESCRIPTION="Music player with a waveform progress bar (sound visualization)"
HOMEPAGE="https://nulloy.com"
NAME="nulloy-theme-night-v1.0"
SRC_URI="https://github.com/nulloy/nulloy/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
skins? ( https://gitlab.com/vitaly-zdanevich/nulloy-theme-night/-/archive/v1.0/${NAME}.tar.bz2 )"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+skins"
BDEPEND="
dev-qt/linguist-tools
app-arch/zip
"
DEPEND="
dev-qt/qtcore
dev-qt/designer
dev-qt/qtsvg
dev-qt/linguist
dev-qt/qtscript
dev-qt/qtx11extras
media-libs/gstreamer
media-libs/gst-plugins-base
media-libs/taglib
media-plugins/gst-plugins-meta
"
RDEPEND="${DEPEND}"
src_prepare() {
if use skins ; then
eapply "${FILESDIR}"/add-dark-theme.patch
cp -r "${WORKDIR}/${NAME}" src/skins/night
fi
default
}
src_configure() {
# Upstream ./configure script does not support specifying an option's
# value after an equal sign like in '--prefix="${EPREFIX}/usr"', so we
# have to set up all the options ourselves and call the script directly
local myconfargs=(
$(use skins || echo --no-skins)
--no-update-check
--gstreamer-tagreader
--prefix "${EPREFIX}/usr"
--libdir "$(get_libdir)"
)
QMAKE=/usr/bin/qmake5 LRELEASE=/usr/lib64/qt5/bin/lrelease ./configure "${myconfargs[@]}" || die
# Because stripping should not be done by the build tools,
# because Portage does it when the install phase is run to be able
# to support the `splitdebug` and `installsources` FEATURES.
# See related issue https://bugs.gentoo.org/856292
echo "CONFIG += nostrip" >> "${WORKDIR}/${P}/.qmake.cache"
}
src_install() {
emake INSTALL_ROOT="${ED}" install
einstalldocs
}

View File

@@ -1,77 +0,0 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit xdg
DESCRIPTION="Music player with a waveform progress bar (sound visualization)"
HOMEPAGE="https://nulloy.com"
NAME="nulloy-theme-night-1.1"
SRC_URI="https://github.com/nulloy/nulloy/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
skins? ( https://gitlab.com/vitaly-zdanevich/nulloy-theme-night/-/archive/1.1/${NAME}.tar.bz2 )"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+skins"
BDEPEND="
dev-qt/linguist-tools
app-arch/zip
"
DEPEND="
dev-qt/qtcore
dev-qt/designer
dev-qt/qtsvg:5
dev-qt/linguist
dev-qt/qtscript
dev-qt/qtx11extras
media-libs/gstreamer
media-libs/gst-plugins-base
media-libs/taglib
media-plugins/gst-plugins-meta
media-gfx/imagemagick[svg]
"
# imagemagick to generate icons, see
# https://github.com/nulloy/nulloy/commit/9b89a9e60d68c59fa541807db68e5a1daf4110cc#r138660390
RDEPEND="${DEPEND}"
src_prepare() {
if use skins ; then
eapply "${FILESDIR}"/add-dark-theme.patch
cp -r "${WORKDIR}/${NAME}" src/skins/night
fi
default
}
src_configure() {
# Upstream ./configure script does not support specifying an option's
# value after an equal sign like in '--prefix="${EPREFIX}/usr"', so we
# have to set up all the options ourselves and call the script directly
local myconfargs=(
$(use skins || echo --no-skins)
--no-update-check
--gstreamer-tagreader
--prefix "${EPREFIX}/usr"
--libdir "$(get_libdir)"
)
QMAKE=/usr/bin/qmake5 LRELEASE=/usr/lib64/qt5/bin/lrelease ./configure "${myconfargs[@]}" || die
# Because stripping should not be done by the build tools,
# because Portage does it when the install phase is run to be able
# to support the `splitdebug` and `installsources` FEATURES.
# See related issue https://bugs.gentoo.org/856292
echo "CONFIG += nostrip" >> "${WORKDIR}/${P}/.qmake.cache"
}
src_install() {
emake INSTALL_ROOT="${ED}" install
einstalldocs
}

View File

@@ -1,77 +0,0 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit xdg
DESCRIPTION="Music player with a waveform progress bar (sound visualization)"
HOMEPAGE="https://nulloy.com"
NAME="nulloy-theme-night-1.1"
SRC_URI="https://github.com/nulloy/nulloy/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
skins? ( https://gitlab.com/vitaly-zdanevich/nulloy-theme-night/-/archive/1.1/${NAME}.tar.bz2 )"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+skins"
BDEPEND="
dev-qt/linguist-tools
app-arch/zip
"
DEPEND="
dev-qt/qtcore
dev-qt/designer
dev-qt/qtsvg
dev-qt/linguist
dev-qt/qtscript
dev-qt/qtx11extras
media-libs/gstreamer
media-libs/gst-plugins-base
media-libs/taglib
media-plugins/gst-plugins-meta
media-gfx/imagemagick
"
# imagemagick to generate icons, see
# https://github.com/nulloy/nulloy/commit/9b89a9e60d68c59fa541807db68e5a1daf4110cc#r138660390
RDEPEND="${DEPEND}"
src_prepare() {
if use skins ; then
eapply "${FILESDIR}"/add-dark-theme.patch
cp -r "${WORKDIR}/${NAME}" src/skins/night
fi
default
}
src_configure() {
# Upstream ./configure script does not support specifying an option's
# value after an equal sign like in '--prefix="${EPREFIX}/usr"', so we
# have to set up all the options ourselves and call the script directly
local myconfargs=(
$(use skins || echo --no-skins)
--no-update-check
--gstreamer-tagreader
--prefix "${EPREFIX}/usr"
--libdir "$(get_libdir)"
)
QMAKE=/usr/bin/qmake5 LRELEASE=/usr/lib64/qt5/bin/lrelease ./configure "${myconfargs[@]}" || die
# Because stripping should not be done by the build tools,
# because Portage does it when the install phase is run to be able
# to support the `splitdebug` and `installsources` FEATURES.
# See related issue https://bugs.gentoo.org/856292
echo "CONFIG += nostrip" >> "${WORKDIR}/${P}/.qmake.cache"
}
src_install() {
emake INSTALL_ROOT="${ED}" install
einstalldocs
}

View File

@@ -1,62 +0,0 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit xdg
DESCRIPTION="Music player with a waveform progress bar (sound visualization)"
HOMEPAGE="https://nulloy.com"
SRC_URI="https://github.com/nulloy/nulloy/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+skins"
BDEPEND="
dev-qt/linguist-tools
app-arch/zip
"
DEPEND="
dev-qt/qtcore
dev-qt/designer
dev-qt/qtsvg
dev-qt/linguist
dev-qt/qtscript
dev-qt/qtx11extras
media-gfx/imagemagick[svg]
media-libs/gstreamer
media-libs/gst-plugins-base
media-libs/taglib
media-plugins/gst-plugins-meta
"
RDEPEND="${DEPEND}"
src_configure() {
# Upstream ./configure script does not support specifying an option's
# value after an equal sign like in '--prefix="${EPREFIX}/usr"', so we
# have to set up all the options ourselves and call the script directly
local myconfargs=(
$(use skins || echo --no-skins)
--no-update-check
--gstreamer-tagreader
--prefix "${EPREFIX}/usr"
--libdir "$(get_libdir)"
)
QMAKE=/usr/bin/qmake5 LRELEASE=/usr/lib64/qt5/bin/lrelease ./configure "${myconfargs[@]}" || die
# Because stripping should not be done by the build tools,
# because Portage does it when the install phase is run to be able
# to support the `splitdebug` and `installsources` FEATURES.
# See related issue https://bugs.gentoo.org/856292
echo "CONFIG += nostrip" >> "${WORKDIR}/${P}/.qmake.cache"
}
src_install() {
emake INSTALL_ROOT="${ED}" install
einstalldocs
}

View File

@@ -1,61 +0,0 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit git-r3 xdg
DESCRIPTION="Music player with a waveform progress bar (sound visualization)"
HOMEPAGE="https://nulloy.com"
EGIT_REPO_URI="https://github.com/nulloy/nulloy"
LICENSE="GPL-3"
SLOT="0"
IUSE="+skins"
BDEPEND="
dev-qt/linguist-tools
app-arch/zip
"
DEPEND="
dev-qt/qtcore
dev-qt/designer
dev-qt/qtsvg
dev-qt/linguist
dev-qt/qtscript
dev-qt/qtx11extras
media-libs/gstreamer
media-libs/gst-plugins-base
media-libs/taglib
media-plugins/gst-plugins-meta
media-gfx/imagemagick[svg]
"
RDEPEND="${DEPEND}"
src_configure() {
# Upstream ./configure script does not support specifying an option's
# value after an equal sign like in '--prefix="${EPREFIX}/usr"', so we
# have to set up all the options ourselves and call the script directly
local myconfargs=(
$(use skins || echo --no-skins)
--no-update-check
--gstreamer-tagreader
--prefix "${EPREFIX}/usr"
--libdir "$(get_libdir)"
)
QMAKE=/usr/bin/qmake5 LRELEASE=/usr/lib64/qt5/bin/lrelease ./configure "${myconfargs[@]}" || die
# Because stripping should not be done by the build tools,
# because Portage does it when the install phase is run to be able
# to support the `splitdebug` and `installsources` FEATURES.
# See related issue https://bugs.gentoo.org/856292
echo "CONFIG += nostrip" >> "${WORKDIR}/${P}/.qmake.cache"
}
src_install() {
emake INSTALL_ROOT="${ED}" install
einstalldocs
}

View File

@@ -2,3 +2,5 @@ DIST vesktop-1.5.6-arm64.tar.gz 108278657 BLAKE2B 63d812c61bcac9ae842b1ddbdc5bef
DIST vesktop-1.5.6.tar.gz 108271525 BLAKE2B 988a4e6e4008891303556c43ef353d767751ae04b40b3c78ccc86d56509f14e8091a1553abd1fb84f4b5148253f1af5314e9eb60e4d2b8f890c7d1c657582c44 SHA512 7b3dda340ffdfb8acb447d3d04abf296708619c96b2177707dbb2819cf72e29d94167211378e8200917a32be0ca0353868231f5eef730b413b94cfbb15e2af32
DIST vesktop-1.5.7-arm64.tar.gz 109879427 BLAKE2B cbaa645d6c59d6e2dbebf1fc541c7ec416acd1995c016e66938d9d08fd8bfcd18f6219c9abee5c7ecab62cd88e223d231d29c2288b72aead2334607d9bdc1e5d SHA512 fa810c74d72ef491c4daa7ac1d6f0d36028552df66c8e98a0c4013febd446d0a69558cfd956186583710fdf3fa9074b123cb7aaf383733aef84164f669e6779a
DIST vesktop-1.5.7.tar.gz 109784946 BLAKE2B 4d98c4720908667c080dc8b1e34192f6468e8c169e6ec9a52a76d91a821e142af95fc811899473ac0b7cae7c6d844f774a269dcdb2a2f9cb68da7482f6c0c5a1 SHA512 3529dccd6dbf9c581c7c4a19a45b6b97b8721d000a3179b9a2b25171562a9c3e3e17ac309d6a04efce616dfd93137b49a3f49e2936a56b4bffceb541a17f6e21
DIST vesktop-1.5.8-arm64.tar.gz 112075350 BLAKE2B 52b065849f46b03a8cf77608ca1c1c6446612dde444db7da100e77aedc69aeb9b38a7b53a36fc439e00717512c10017a8fc35bf2f3b48f12cbf1e5ab06354e6b SHA512 d321fbe758bf864b0f82b7daa94e068a814c4f493d36756b9759e1de425953f203f1f649865824604ff04812ce8326759bb34e77544989e59fa150aad6521e32
DIST vesktop-1.5.8.tar.gz 112045183 BLAKE2B 31839fad08da633d1afe8a17a3b580c9f50d94b1e4474421926a6874b86c7d376538e07854f7f9ef83c9f5f2849e89aefb6ae0a17c771cf50050dbca44b4c3eb SHA512 d5fcd55d66bce158fe7033b77c493b08bc1ed6153c403329458d15014dbde6e54be569995546075e535ce1e8a62f6f4ddc0dfbf51d6fce8b6f5a8a301f94eb1f

View File

@@ -0,0 +1,98 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_PN="vesktop"
CHROMIUM_LANGS="
af am ar bg bn ca cs da de el en-GB en-US es es-419 et fa fi fil fr gu he hi
hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv
sw ta te th tr uk ur vi zh-CN zh-TW
"
inherit chromium-2 desktop linux-info optfeature unpacker xdg
DESCRIPTION="All-in-one voice and text chat for gamers with Vencord Preinstalled"
HOMEPAGE="https://github.com/Vencord/Vesktop/"
SRC_URI="
amd64? ( https://github.com/Vencord/Vesktop/releases/download/v${PV}/${MY_PN}-${PV}.tar.gz )
arm64? ( https://github.com/Vencord/Vesktop/releases/download/v${PV}/${MY_PN}-${PV}-arm64.tar.gz )
"
S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
RESTRICT="bindist mirror strip test"
DEPEND="
app-accessibility/at-spi2-core
dev-libs/expat
dev-libs/glib
dev-libs/nspr
dev-libs/nss
media-libs/alsa-lib
media-libs/fontconfig
media-libs/mesa[gbm(+)]
net-print/cups
sys-apps/dbus
sys-libs/glibc
x11-libs/cairo
x11-libs/libdrm
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3
x11-libs/libXcomposite
x11-libs/libXdamage
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXrandr
x11-libs/libdrm
x11-libs/libxcb
x11-libs/libxkbcommon
x11-libs/pango
x11-misc/xdg-utils
"
DESTDIR="/opt/${PN}"
QA_PREBUILT="*"
CONFIG_CHECK="~USER_NS"
src_unpack() {
default
use arm64 && S="${WORKDIR}/${MY_PN}-${PV}-arm64"
}
src_configure() {
default
chromium_suid_sandbox_check_kernel_config
}
src_install() {
doicon -s 256 "${FILESDIR}/vesktop-bin.png"
domenu "${FILESDIR}/vesktop-bin.desktop"
exeinto "${DESTDIR}"
doexe vesktop chrome-sandbox libEGL.so libffmpeg.so libGLESv2.so libvk_swiftshader.so libvulkan.so.1
insinto "${DESTDIR}"
doins chrome_100_percent.pak chrome_200_percent.pak icudtl.dat resources.pak snapshot_blob.bin v8_context_snapshot.bin
insopts -m0755
doins -r locales resources
fowners root "${DESTDIR}/chrome-sandbox"
fperms 4711 "${DESTDIR}/chrome-sandbox"
[[ -x chrome_crashpad_handler ]] && doins chrome_crashpad_handler
dosym "${DESTDIR}/vesktop" "/usr/bin/vesktop-bin"
}
pkg_postinst() {
optfeature "Desktop notifications support" x11-libs/libnotify
}

View File

@@ -45,18 +45,6 @@ app-misc/mobile-datovka
app-backup/b2
dev-util/mock
# Lucio Sauer <watermanpaint@posteo.net> (2025-06-04)
# Ebuild effectively unmaintained since 2021. I was unable to find the origin
# of the installed files, so I don't see a reason to keep this.
# Removal on 2025-07-04
app-mobilephone/usb-tethering
# Lucio Sauer <watermanpaint@posteo.net> (2025-06-03)
# Superseded by app-misc/anki::gentoo and poses extra maintenance burden with
# little to no benefit.
# Removal on 2025-07-03
app-misc/anki-bin
# David (stkw0) Roman <davidroman96@gmail.com> (2025-06-03)
# Unmaintained since 2021, fails to compile. Bug #859643
# Removal on 2025-07-30
@@ -67,16 +55,8 @@ app-crypt/uacme
# Masked until upstream supports running without stem.
www-apps/whoogle-search
# Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in> (2025-05-24)
# Poor quality ebuild with incorrect deps, including masked dev-qt/linguist.
# Removal on 2025-06-24.
media-sound/nulloy
x11-themes/nulloy-theme-night
# David (stkw0) Roman <davidroman96@gmail.com> (2025-04-30)
# Depends on removed dev-qt/qtwebengine:5, they should be moved to qtwebengine:6
dev-vcs/gitqlient-gitserver-plugin
dev-vcs/gitqlient-jenkins-plugin
media-video/stremio
sci-physics/openmodelica

View File

@@ -1,3 +1,4 @@
DIST zfsbootmenu-1.12.0.tar.gz 1688946 BLAKE2B 291dcc813767def653bc4983cb9ff4c5b1d9f191cb8fee6e9a58cd6826fe0204606aa095339e9eeb6e4dd3201f5f9ad1b4cc3a26712960bf057198225f4b65f9 SHA512 5af3d258eee3ade3e9e11e084f4de0d251acc952348fdc4d3656b32f8fec7460c2d59fa883e06f482bd2f59e1055d6b908cf43c29aee47059d369231197a6645
DIST zfsbootmenu-2.2.2.tar.gz 1830178 BLAKE2B e2191e26215214ce2ed803bf0659aea9ba629fcb35acb75e6398731b5edcee4bc2820203844c80998e39fd4c6eb904244fce6a37126038cd816156466976100a SHA512 895491305bf97147252a63a28d378823068e83417146a949d018b49b6e6d3274af434e8047082dad08494f6db44429a9948531321750b88b0eaf282710356914
DIST zfsbootmenu-2.3.0.tar.gz 1891010 BLAKE2B 2e84204994008c85ba0ad7231fe442bd02cbb45d57b3dfd707b86d1484b155dc8309958cd66d90336897e9841596aa74d6ffa4a969bca0e65679806ac8233e94 SHA512 9b8e2d5ea258a32cd09a9382faaa21beea54f2ed825fa747f10ffe0b9f191c257b023019ec76dc882e649e8ea6fcd8e310632bba6c783228c594e3d0fee2c9c8
DIST zfsbootmenu-3.0.1.tar.gz 1905474 BLAKE2B 879eb533c333eb95eba7d6d003e3a5ec9446aa7a6443dc28f5c7002c20bfea229601cddb670a24b0638aa94ad14b038822d389488b5028c47484ffc39f7d1633 SHA512 8176ba9325a0d7f06ce9007a2a46cbb1a66f876987ef281f2fac0e0584dfd206ef55211de4af3aa9ae23d64788060119b070c9083e33928a85542efd07c08c95

View File

@@ -0,0 +1,55 @@
# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit prefix
DESCRIPTION="ZFS bootloader for root-on-ZFS systems"
HOMEPAGE="https://zfsbootmenu.org"
SRC_URI="https://github.com/zbm-dev/zfsbootmenu/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
PATCHES=(
"${FILESDIR}"/${PN}-stub-location.patch
)
RDEPEND="
app-shells/fzf
dev-lang/perl
dev-perl/boolean
dev-perl/Config-IniFiles
dev-perl/Sort-Versions
dev-perl/YAML-PP
sys-apps/kexec-tools
sys-block/mbuffer
sys-fs/zfs
sys-kernel/dracut
"
src_prepare() {
default
hprefixify bin/*
if [[ -n ${BROOT} ]]; then
sed -e "s,#!/bin/sh,#!${BROOT}/bin/sh," \
-i install-tree.sh releng/version.sh || die
fi
}
src_compile() {
# There's a makefile in the source repo but it's only for install. There's
# nothing to compile since zfsbootmenu is all scripts.
true
}
src_install() {
emake DESTDIR="${ED}" EXAMPLES="/usr/share/doc/${PF}" install
}
pkg_postinst () {
elog "Please consult Gentoo wiki to configure the bootloader
https://wiki.gentoo.org/wiki/ZFS/rootfs#ZFSBootMenu"
}

View File

@@ -1 +0,0 @@
DIST nulloy-theme-night-1.1.5.tar.bz2 354840 BLAKE2B ed9210369b1e99d74220c005ddf019d0bd105189ad9a2a42e7eceb3b4f8834a866a4fc39c4d149f6152b57f221397b4f2b4beb922b464d3a0880966d91c5683e SHA512 070c756e21796f0590a4a541d47d62f29b475f4fa8be4386e0f47d55622d05ff2980703c5a7bc34a88f839f14430479f82bb4d29f6fb0ce35aeea284aca0fd49

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<upstream>
<remote-id type="gitlab">vitaly-zdanevich/nulloy-theme-night</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -1,24 +0,0 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Black minimal theme for Nulloy music player (that one with the waveform)"
HOMEPAGE="https://gitlab.com/vitaly-zdanevich/nulloy-theme-night"
SRC_URI="https://gitlab.com/vitaly-zdanevich/nulloy-theme-night/-/archive/${PV}/nulloy-theme-night-${PV}.tar.bz2"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
media-sound/nulloy
app-arch/zip
"
src_install() {
zip night.nzs id.txt form.ui script.js
insinto /usr/share/nulloy/skins/
doins night.nzs
}