Apocrypha

libation-12.5.3guru

# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DOTNET_PKG_COMPAT=9.0
NUGETS="
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
"

inherit desktop xdg dotnet-pkg

DESCRIPTION="Libation: Free, open-source Audible library manager"
HOMEPAGE="https://github.com/rmcrackan/Libation"

SRC_URI="https://github.com/rmcrackan/Libation/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz ${NUGET_URIS}"

S="${WORKDIR}/Libation-${PV}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"

# Required by dotnet-pkg.eclass
DOTNET_PKG_PROJECTS=( "Source/LibationAvalonia/LibationAvalonia.csproj" )
DEPEND="
	>=dev-dotnet/dotnet-sdk-9.0
	x11-libs/libX11
	dev-dotnet/libgdiplus
	media-libs/fontconfig
	media-libs/libglvnd
	media-gfx/icoutils
"
RDEPEND="${DEPEND}
	>=dev-dotnet/csharp-gentoodotnetinfo-0
"
pkg_setup() {
	dotnet-pkg_pkg_setup
}
src_unpack() {
	dotnet-pkg_src_unpack
}

src_prepare() {
	dotnet-pkg_src_prepare
	sed -i 	-e 's#<OutputType>WinExe</OutputType>#<OutputType>Exe</OutputType>#' \
		-e 's#net9.0-windows7.0#net9.0#' \
		-e 's#win-x64#linux-x64#' \
		"${S}/Source/LibationAvalonia/LibationAvalonia.csproj" || die "Failed to patch csproj"

}

src_configure() {
	dotnet-pkg_src_configure
}

src_compile() {
	dotnet-pkg_src_compile
}

src_install() {
	# Install the built binaries using dotnet-pkg.eclass
	dotnet-pkg_src_install

	# Create a launcher script
	dosym -r /usr/bin/Libation /usr/bin/libation

	# Install desktop entry
	echo '[Desktop Entry]' > "${T}/libation.desktop"
	echo 'Name=Libation' >> "${T}/libation.desktop"
	echo 'Exec=/usr/bin/libation' >> "${T}/libation.desktop"
	echo 'Type=Application' >> "${T}/libation.desktop"
	echo 'Terminal=false' >> "${T}/libation.desktop"
	echo 'Categories=Utility;Audio;AudioVideo' >> "${T}/libation.desktop"
	echo 'Icon=libation' >> "${T}/libation.desktop"
	domenu "${T}/libation.desktop"

	# Install icons if available
	if [[ -d "${S}/Source/LibationAvalonia/Assets" ]]; then
		# Extract all images from .ico to .png
		mkdir -p "${T}/icons"
		icotool -x -o "${T}/icons" "${S}/Source/LibationAvalonia/Assets/libation.ico" || die "Failed to extract icons"
		newicon -s 16 "${T}/icons/libation_1_16x16x32.png" libation.png
		newicon -s 24 "${T}/icons/libation_3_24x24x32.png" libation.png
		newicon -s 32 "${T}/icons/libation_4_32x32x32.png" libation.png
		newicon -s 48 "${T}/icons/libation_6_48x48x32.png" libation.png
		newicon -s 64 "${T}/icons/libation_7_64x64x32.png" libation.png
		newicon -s 96 "${T}/icons/libation_8_96x96x32.png" libation.png
		newicon -s 128 "${T}/icons/libation_9_128x128x32.png" libation.png
		newicon -s 256 "${T}/icons/libation_10_256x256x32.png" libation.png
	fi
}

pkg_postinst() {
	xdg_desktop_database_update
}

pkg_postrm() {
	xdg_desktop_database_update
}