public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Maciej Barć" <xgqt@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: eclass/
Date: Fri, 15 Sep 2023 20:49:04 +0000 (UTC)	[thread overview]
Message-ID: <1694810819.33953bf9dd7aef94ab2d5862cb003765d749566f.xgqt@gentoo> (raw)

commit:     33953bf9dd7aef94ab2d5862cb003765d749566f
Author:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 15 14:46:52 2023 +0000
Commit:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
CommitDate: Fri Sep 15 20:46:59 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=33953bf9

eclass/dotnet-pkg-base.eclass: add new dotnet-pkg-base eclass

common functions and variables for builds using .NET SDK

Bug: https://bugs.gentoo.org/900597
Bug: https://github.com/gentoo/gentoo/pull/32109
Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>

 eclass/dotnet-pkg-base.eclass | 628 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 628 insertions(+)

diff --git a/eclass/dotnet-pkg-base.eclass b/eclass/dotnet-pkg-base.eclass
new file mode 100644
index 000000000000..c7f2e031daec
--- /dev/null
+++ b/eclass/dotnet-pkg-base.eclass
@@ -0,0 +1,628 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: dotnet-pkg-base.eclass
+# @MAINTAINER:
+# Gentoo Dotnet project <dotnet@gentoo.org>
+# @AUTHOR:
+# Anna Figueiredo Gomes <navi@vlhl.dev>
+# Maciej Barć <xgqt@gentoo.org>
+# @SUPPORTED_EAPIS: 8
+# @PROVIDES: nuget
+# @BLURB: common functions and variables for builds using .NET SDK
+# @DESCRIPTION:
+# This eclass is designed to provide required ebuild definitions for .NET
+# packages. Beware that in addition to Gentoo-specific concepts also terms that
+# should be known to people familiar with the .NET ecosystem are used through
+# this one and similar eclasses.
+#
+# In ebuilds for software that only utilizes the .NET SDK, without special
+# cases, the "dotnet-pkg.eclass" is probably better suited.
+#
+# This eclass does not export any phase functions, for that see
+# the "dotnet-pkg" eclass.
+
+case ${EAPI} in
+	8) ;;
+	*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
+esac
+
+if [[ -z ${_DOTNET_PKG_BASE_ECLASS} ]] ; then
+_DOTNET_PKG_BASE_ECLASS=1
+
+inherit edo multiprocessing nuget
+
+# @ECLASS_VARIABLE: DOTNET_PKG_COMPAT
+# @REQUIRED
+# @PRE_INHERIT
+# @DESCRIPTION:
+# Allows to choose a slot for dotnet.
+#
+# Most .NET packages will lock onto one supported .NET major version.
+# DOTNET_PKG_COMPAT should specify which version was chosen by package upstream.
+# In case multiple .NET versions are specified in the project, then the highest
+# should be picked by the maintainer.
+
+# @ECLASS_VARIABLE: DOTNET_PKG_RDEPS
+# @DESCRIPTION:
+# Populated with important dependencies on .NET ecosystem packages for running
+# .NET packages.
+#
+# "DOTNET_PKG_RDEPS" should appear (or conditionally appear) in "RDEPEND".
+DOTNET_PKG_RDEPS=""
+
+# @ECLASS_VARIABLE: DOTNET_PKG_BDEPS
+# @DESCRIPTION:
+# Populated with important dependencies on .NET ecosystem packages for building
+# .NET packages.
+#
+# "DOTNET_PKG_BDEPS" should appear (or conditionally appear) in "BDEPEND".
+DOTNET_PKG_BDEPS=""
+
+# Have this guard to be sure that *DEPS are not added to
+# the "dev-dotnet/dotnet-runtime-nugets" package dependencies.
+if [[ ${CATEGORY}/${PN} != dev-dotnet/dotnet-runtime-nugets ]] ; then
+	if [[ -z ${DOTNET_PKG_COMPAT} ]] ; then
+		die "${ECLASS}: DOTNET_PKG_COMPAT not set"
+	fi
+
+	DOTNET_PKG_RDEPS+=" virtual/dotnet-sdk:${DOTNET_PKG_COMPAT} "
+	DOTNET_PKG_BDEPS+=" ${DOTNET_PKG_RDEPS} "
+
+	# Special package "dev-dotnet/csharp-gentoodotnetinfo" used for information
+	# gathering, example for usage see the "dotnet-pkg-base_info" function.
+	if [[ ${CATEGORY}/${PN} != dev-dotnet/csharp-gentoodotnetinfo ]] ; then
+		DOTNET_PKG_BDEPS+=" dev-dotnet/csharp-gentoodotnetinfo "
+	fi
+
+	IUSE+=" debug "
+fi
+
+# Needed otherwise the binaries may break.
+RESTRICT+=" strip "
+
+# Everything is built by "dotnet".
+QA_PREBUILT=".*"
+
+# Special .NET SDK environment variables.
+# Setting them either prevents annoying information from being generated
+# or stops services that may interfere with a clean package build.
+export DOTNET_CLI_TELEMETRY_OPTOUT=1
+export DOTNET_NOLOGO=1
+export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+export MSBUILDDISABLENODEREUSE=1
+export POWERSHELL_TELEMETRY_OPTOUT=1
+export POWERSHELL_UPDATECHECK=0
+# Overwrite selected MSBuild properties ("-p:XYZ").
+export UseSharedCompilation=false
+
+# @ECLASS_VARIABLE: DOTNET_PKG_RUNTIME
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Sets the runtime used to build a package.
+#
+# This variable is set automatically by the "dotnet-pkg-base_setup" function.
+
+# @ECLASS_VARIABLE: DOTNET_PKG_EXECUTABLE
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Sets path of a "dotnet" executable.
+#
+# This variable is set automatically by the "dotnet-pkg-base_setup" function.
+
+# @ECLASS_VARIABLE: DOTNET_PKG_CONFIGURATION
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Configuration value passed to "dotnet" in the compile phase.
+# Is either Debug or Release, depending on the "debug" USE flag.
+#
+# This variable is set automatically by the "dotnet-pkg-base_setup" function.
+
+# @ECLASS_VARIABLE: DOTNET_PKG_OUTPUT
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Path of the output directory, where the package artifacts are placed during
+# the building of packages with "dotnet-pkg-base_build" function.
+#
+# This variable is set automatically by the "dotnet-pkg-base_setup" function.
+
+# @VARIABLE: _DOTNET_PKG_LAUNCHERDEST
+# @INTERNAL
+# @DESCRIPTION:
+# Sets the path that .NET launchers are installed into by
+# the "dotnet-pkg-base_dolauncher" function.
+#
+# The function "dotnet-pkg-base_launcherinto" is able to manipulate this
+# variable.
+#
+# Defaults to "/usr/bin".
+_DOTNET_PKG_LAUNCHERDEST=/usr/bin
+
+# @VARIABLE: _DOTNET_PKG_LAUNCHERVARS
+# @INTERNAL
+# @DESCRIPTION:
+# Sets additional variables for .NET launchers created by
+# the "dotnet-pkg-base_dolauncher" function.
+#
+# The function "dotnet-pkg-base_append_launchervar" is able to manipulate this
+# variable.
+#
+# Defaults to a empty array.
+_DOTNET_PKG_LAUNCHERVARS=()
+
+# @FUNCTION: dotnet-pkg-base_get-configuration
+# @DESCRIPTION:
+# Return .NET configuration type of the current package.
+#
+# It is advised to refer to the "DOTNET_PKG_CONFIGURATION" variable instead of
+# calling this function if necessary.
+#
+# Used by "dotnet-pkg-base_setup".
+dotnet-pkg-base_get-configuration() {
+	if in_iuse debug && use debug ; then
+		echo Debug
+	else
+		echo Release
+	fi
+}
+
+# @FUNCTION: dotnet-pkg-base_get-output
+# @USAGE: <name>
+# @DESCRIPTION:
+# Return a specially constructed name of a directory for output of
+# "dotnet build" artifacts ("--output" flag, see "dotnet-pkg-base_build").
+#
+# It is very rare that a maintainer would use this function in an ebuild.
+#
+# This function is used inside "dotnet-pkg-base_setup".
+dotnet-pkg-base_get-output() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	[[ -z ${DOTNET_PKG_CONFIGURATION} ]] &&
+		die "${FUNCNAME[0]}: DOTNET_PKG_CONFIGURATION is not set."
+
+	echo "${WORKDIR}/${1}_net${DOTNET_PKG_COMPAT}_${DOTNET_PKG_CONFIGURATION}"
+}
+
+# @FUNCTION: dotnet-pkg-base_get-runtime
+# @DESCRIPTION:
+# Return the .NET runtime used for the current package.
+#
+# Used by "dotnet-pkg-base_setup".
+dotnet-pkg-base_get-runtime() {
+	local libc
+	libc="$(usex elibc_musl "-musl" "")"
+
+	if use amd64 ; then
+		echo "linux${libc}-x64"
+	elif use x86 ; then
+		echo "linux${libc}-x86"
+	elif use arm ; then
+		echo "linux${libc}-arm"
+	elif use arm64 ; then
+		echo "linux${libc}-arm64"
+	else
+		die "${FUNCNAME[0]}: Unsupported architecture: ${ARCH}"
+	fi
+}
+
+# @FUNCTION: dotnet-pkg-base_setup
+# @DESCRIPTION:
+# Sets up "DOTNET_PKG_EXECUTABLE" variable for later use in "edotnet".
+# Also sets up "DOTNET_PKG_CONFIGURATION" and "DOTNET_PKG_OUTPUT"
+# for "dotnet-pkg_src_configure" and "dotnet-pkg_src_compile".
+#
+# This functions should be called by "pkg_setup".
+#
+# Used by "dotnet-pkg_pkg_setup" from the "dotnet-pkg" eclass.
+dotnet-pkg-base_setup() {
+	local dotnet_compat_impl
+	local dotnet_compat_impl_path
+	for dotnet_compat_impl in dotnet{,-bin}-${DOTNET_PKG_COMPAT} ; do
+		dotnet_compat_impl_path="$(type -P "${dotnet_compat_impl}")"
+
+		if [[ -n ${dotnet_compat_impl_path} ]] ; then
+			DOTNET_PKG_EXECUTABLE=${dotnet_compat_impl}
+			DOTNET_PKG_EXECUTABLE_PATH="${dotnet_compat_impl_path}"
+
+			break
+		fi
+	done
+
+	# Link "DOTNET_PKG_EXECUTABLE" to "dotnet" only for the package build.
+	local dotnet_spoof_path="${T}"/dotnet_spoof/${DOTNET_PKG_COMPAT}
+	mkdir -p "${dotnet_spoof_path}" || die
+	ln -s "${DOTNET_PKG_EXECUTABLE_PATH}" "${dotnet_spoof_path}"/dotnet || die
+	export PATH="${dotnet_spoof_path}:${PATH}"
+
+	einfo "Using dotnet SDK \"${DOTNET_PKG_EXECUTABLE}\" from \"${DOTNET_PKG_EXECUTABLE_PATH}\"."
+
+	# The picked "DOTNET_PKG_EXECUTABLE" should set "DOTNET_ROOT" internally
+	# and not rely upon this environment variable.
+	unset DOTNET_ROOT
+
+	# Unset .NET and NuGet directories.
+	unset DOTNET_DATA
+	unset NUGET_DATA
+
+	DOTNET_PKG_RUNTIME="$(dotnet-pkg-base_get-runtime)"
+	DOTNET_PKG_CONFIGURATION="$(dotnet-pkg-base_get-configuration)"
+	DOTNET_PKG_OUTPUT="$(dotnet-pkg-base_get-output "${P}")"
+}
+
+# @FUNCTION: dotnet-pkg-base_remove-global-json
+# @USAGE: [directory]
+# @DESCRIPTION:
+# Remove the "global.json" if it exists.
+# The file in question might lock target package to a specified .NET
+# version, which might be unnecessary (as it is in most cases).
+#
+# Optional "directory" argument defaults to the current directory path.
+#
+# Used by "dotnet-pkg_src_prepare" from the "dotnet-pkg" eclass.
+dotnet-pkg-base_remove-global-json() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	local file="${1:-.}"/global.json
+
+	if [[ -f "${file}" ]] ; then
+		ebegin "Removing the global.json file"
+		rm "${file}"
+		eend ${?} || die "${FUNCNAME[0]}: failed to remove ${file}"
+	fi
+}
+
+# @FUNCTION: edotnet
+# @USAGE: <command> [args...]
+# @DESCRIPTION:
+# Call dotnet, passing the supplied arguments.
+edotnet() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	if [[ -z ${DOTNET_PKG_EXECUTABLE} ]] ; then
+	   die "${FUNCNAME[0]}: DOTNET_PKG_EXECUTABLE not set. Was dotnet-pkg-base_setup called?"
+	fi
+
+	edo "${DOTNET_PKG_EXECUTABLE}" "${@}"
+}
+
+# @FUNCTION: dotnet-pkg-base_info
+# @DESCRIPTION:
+# Show information about current .NET SDK that is being used.
+#
+# Depends upon the "gentoo-dotnet-info" program installed by
+# the "dev-dotnet/csharp-gentoodotnetinfo" package.
+#
+# Used by "dotnet-pkg_src_configure" from the "dotnet-pkg" eclass.
+dotnet-pkg-base_info() {
+	if [[ ${CATEGORY}/${PN} == dev-dotnet/csharp-gentoodotnetinfo ]] ; then
+		debug-print-function "${FUNCNAME[0]}: ${P} is a special package, skipping dotnet-pkg-base_info"
+	elif command -v gentoo-dotnet-info >/dev/null ; then
+		gentoo-dotnet-info || die "${FUNCNAME[0]}: failed to execute gentoo-dotnet-info"
+	else
+		ewarn "${FUNCNAME[0]}: gentoo-dotnet-info not available"
+	fi
+}
+
+# @FUNCTION: dotnet-pkg-base_foreach-solution
+# @USAGE: <function> [directory]
+# @DESCRIPTION:
+# Execute a function for each solution file (.sln) in a specified directory.
+# This function may yield no real results because solutions are discovered
+# automatically.
+#
+# Optional "directory" argument defaults to the current directory path.
+#
+# Used by "dotnet-pkg_src_configure" from the "dotnet-pkg" eclass.
+dotnet-pkg-base_foreach-solution() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	local dotnet_solution
+	local dotnet_solution_name
+	while read -r dotnet_solution ; do
+		dotnet_solution_name="$(basename "${dotnet_solution}")"
+
+		ebegin "Running \"${1}\" for solution: \"${dotnet_solution_name}\""
+		"${1}" "${dotnet_solution}"
+		eend $? "${FUNCNAME[0]}: failed for solution: \"${dotnet_solution}\"" || die
+	done < <(find "${2:-.}" -maxdepth 1 -type f -name "*.sln")
+}
+
+# @FUNCTION: dotnet-pkg-base_restore
+# @USAGE: [directory] [args] ...
+# @DESCRIPTION:
+# Restore the package using "dotnet restore" in a specified directory.
+#
+# Optional "directory" argument defaults to the current directory path.
+#
+# Additionally any number of "args" maybe be given, they are appended to
+# the "dotnet" command invocation.
+#
+# Used by "dotnet-pkg_src_configure" from the "dotnet-pkg" eclass.
+dotnet-pkg-base_restore() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	local directory
+	if [[ "${1}" ]] ; then
+		directory="${1}"
+		shift
+	else
+		directory="$(pwd)"
+	fi
+
+	local -a restore_args=(
+		--runtime "${DOTNET_PKG_RUNTIME}"
+		--source "${NUGET_PACKAGES}"
+		-maxCpuCount:$(makeopts_jobs)
+		"${@}"
+	)
+
+	edotnet restore "${restore_args[@]}" "${directory}"
+}
+
+# @FUNCTION: dotnet-pkg-base_restore_tools
+# @USAGE: [config-file] [args] ...
+# @DESCRIPTION:
+# Restore dotnet tools for a project in the current directory.
+#
+# Optional "config-file" argument is used to specify a file for the
+# "--configfile" option which records what tools should be restored.
+#
+# Additionally any number of "args" maybe be given, they are appended to
+# the "dotnet" command invocation.
+dotnet-pkg-base_restore_tools() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	local -a tool_restore_args=(
+		--add-source "${NUGET_PACKAGES}"
+	)
+
+	if [[ "${1}" ]] ; then
+		tool_restore_args+=( --configfile "${1}" )
+		shift
+	fi
+
+	tool_restore_args+=( "${@}" )
+
+	edotnet tool restore "${tool_restore_args[@]}"
+}
+
+# @FUNCTION: dotnet-pkg-base_build
+# @USAGE: [directory] [args] ...
+# @DESCRIPTION:
+# Build the package using "dotnet build" in a specified directory.
+#
+# Optional "directory" argument defaults to the current directory path.
+#
+# Additionally any number of "args" maybe be given, they are appended to
+# the "dotnet" command invocation.
+#
+# Used by "dotnet-pkg_src_compile" from the "dotnet-pkg" eclass.
+dotnet-pkg-base_build() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	local directory
+	if [[ "${1}" ]] ; then
+		directory="${1}"
+		shift
+	else
+		directory="$(pwd)"
+	fi
+
+	local -a build_args=(
+		--configuration "${DOTNET_PKG_CONFIGURATION}"
+		--no-restore
+		--no-self-contained
+		--output "${DOTNET_PKG_OUTPUT}"
+		--runtime "${DOTNET_PKG_RUNTIME}"
+		-maxCpuCount:$(makeopts_jobs)
+		"${@}"
+	)
+
+	if ! use debug ; then
+		build_args+=(
+			-p:StripSymbols=true
+			-p:NativeDebugSymbols=false
+		)
+	fi
+
+	edotnet build "${build_args[@]}" "${directory}"
+}
+
+# @FUNCTION: dotnet-pkg-base_test
+# @USAGE: [directory] [args] ...
+# @DESCRIPTION:
+# Test the package using "dotnet test" in a specified directory.
+#
+# Optional "directory" argument defaults to the current directory path.
+#
+# Additionally any number of "args" maybe be given, they are appended to
+# the "dotnet" command invocation.
+#
+# Used by "dotnet-pkg_src_test" from the "dotnet-pkg" eclass.
+dotnet-pkg-base_test() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	local directory
+	if [[ "${1}" ]] ; then
+		directory="${1}"
+		shift
+	else
+		directory="$(pwd)"
+	fi
+
+	local -a test_args=(
+		--configuration "${DOTNET_PKG_CONFIGURATION}"
+		--no-restore
+		-maxCpuCount:$(makeopts_jobs)
+		"${@}"
+	)
+
+	edotnet test "${test_args[@]}" "${directory}"
+}
+
+# @FUNCTION: dotnet-pkg-base_install
+# @USAGE: [directory]
+# @DESCRIPTION:
+# Install the contents of "DOTNET_PKG_OUTPUT" into a directory, defaults to
+# "/usr/share/${P}".
+#
+# Installation directory is relative to "ED".
+dotnet-pkg-base_install() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	local installation_directory="${1:-/usr/share/${P}}"
+
+	dodir "${installation_directory}"
+	cp -r "${DOTNET_PKG_OUTPUT}"/* "${ED}/${installation_directory}/" || die
+}
+
+# @FUNCTION: dotnet-pkg-base_launcherinto
+# @USAGE: <directory>
+# @DESCRIPTION:
+# Changes the path .NET launchers are installed into via subsequent
+# "dotnet-pkg-base_dolauncher" calls.
+#
+# For more info see the "_DOTNET_PKG_LAUNCHERDEST" variable.
+dotnet-pkg-base_launcherinto() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	[[ -z ${1} ]] && die "${FUNCNAME[0]}: no directory specified"
+
+	_DOTNET_PKG_LAUNCHERDEST="${1}"
+}
+
+# @FUNCTION: dotnet-pkg-base_append_launchervar
+# @USAGE: <variable-setting>
+# @DESCRIPTION:
+# Appends a given variable setting to the "_DOTNET_PKG_LAUNCHERVARS".
+#
+# WARNING: This functions modifies a global variable permanently!
+# This means that all launchers created in subsequent
+# "dotnet-pkg-base_dolauncher" calls of a given package will have
+# the given variable set.
+#
+# Example:
+# @CODE
+# dotnet-pkg-base_append_launchervar "DOTNET_EnableAlternateStackCheck=1"
+# @CODE
+#
+# For more info see the "_DOTNET_PKG_LAUNCHERVARS" variable.
+dotnet-pkg-base_append_launchervar() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	[[ -z ${1} ]] && die "${FUNCNAME[0]}: no variable setting specified"
+
+	_DOTNET_PKG_LAUNCHERVARS+=( "${1}" )
+}
+
+# @FUNCTION: dotnet-pkg-base_dolauncher
+# @USAGE: <executable-path> [filename]
+# @DESCRIPTION:
+# Make a wrapper script to launch an executable built from a .NET package.
+#
+# If no file name is given, the `basename` of the executable is used.
+#
+# Parameters:
+# ${1} - path of the executable to launch,
+# ${2} - filename of launcher to create (optional).
+#
+# Example:
+# @CODE
+# dotnet-pkg-base_install
+# dotnet-pkg-base_dolauncher /usr/share/${P}/${PN^}
+# @CODE
+#
+# The path is prepended by "EPREFIX".
+dotnet-pkg-base_dolauncher() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	local executable_path executable_name
+
+	if [[ "${1}" ]] ; then
+		local executable_path="${1}"
+		shift
+	else
+		die "${FUNCNAME[0]}: No executable path given."
+	fi
+
+	if [[ ${#} -eq 0 ]] ; then
+		executable_name="$(basename "${executable_path}")"
+	else
+		executable_name="${1}"
+		shift
+	fi
+
+	local executable_target="${T}/${executable_name}"
+
+	cat <<-EOF > "${executable_target}" || die
+	#!/bin/sh
+
+	# Launcher script for ${executable_path} (${executable_name}),
+	# created from package "${CATEGORY}/${P}",
+	# compatible with dotnet version ${DOTNET_PKG_COMPAT}.
+
+	for __dotnet_root in \\
+		${EPREFIX}/usr/$(get_libdir)/dotnet-sdk-${DOTNET_PKG_COMPAT} \\
+		${EPREFIX}/opt/dotnet-sdk-bin-${DOTNET_PKG_COMPAT} ; do
+		[ -d \${__dotnet_root} ] && break
+	done
+
+	DOTNET_ROOT="\${__dotnet_root}"
+	export DOTNET_ROOT
+
+	$(for var in "${_DOTNET_PKG_LAUNCHERVARS[@]}" ; do
+		echo "${var}"
+		echo "export ${var%%=*}"
+	done)
+
+	exec "${EPREFIX}${executable_path}" "\${@}"
+	EOF
+
+	exeinto "${_DOTNET_PKG_LAUNCHERDEST}"
+	doexe "${executable_target}"
+}
+
+# @FUNCTION: dotnet-pkg-base_dolauncher_portable
+# @USAGE: <dll-path> <filename>
+# @DESCRIPTION:
+# Make a wrapper script to launch a .NET DLL file built from a .NET package.
+#
+# Parameters:
+# ${1} - path of the DLL to launch,
+# ${2} - filename of launcher to create.
+#
+# Example:
+# @CODE
+# dotnet-pkg-base_dolauncher_portable \
+#     /usr/share/${P}/GentooDotnetInfo.dll gentoo-dotnet-info
+# @CODE
+#
+# The path is prepended by "EPREFIX".
+dotnet-pkg-base_dolauncher_portable() {
+	debug-print-function "${FUNCNAME[0]}" "${@}"
+
+	local dll_path="${1}"
+	local executable_name="${2}"
+	local executable_target="${T}/${executable_name}"
+
+	cat <<-EOF > "${executable_target}" || die
+	#!/bin/sh
+
+	# Launcher script for ${dll_path} (${executable_name}),
+	# created from package "${CATEGORY}/${P}",
+	# compatible with any dotnet version, built on ${DOTNET_PKG_COMPAT}.
+
+	$(for var in "${_DOTNET_PKG_LAUNCHERVARS[@]}" ; do
+		echo "${var}"
+		echo "export ${var%%=*}"
+	done)
+
+	exec dotnet exec "${EPREFIX}${dll_path}" "\${@}"
+	EOF
+
+	exeinto "${_DOTNET_PKG_LAUNCHERDEST}"
+	doexe "${executable_target}"
+}
+
+fi


             reply	other threads:[~2023-09-15 20:49 UTC|newest]

Thread overview: 6147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-15 20:49 Maciej Barć [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-11-20 12:37 [gentoo-commits] repo/gentoo:master commit in: eclass/ Sam James
2024-11-20 12:20 Sam James
2024-11-20 12:15 Sam James
2024-11-20 12:05 Sam James
2024-11-19 15:01 Sam James
2024-11-19 14:50 Sam James
2024-11-18 19:32 Michał Górny
2024-11-18 16:44 Mike Gilbert
2024-11-18 11:11 Sam James
2024-11-18  9:28 Sam James
2024-11-17  5:27 Matt Jolly
2024-11-17  5:27 Matt Jolly
2024-11-14  0:36 Sam James
2024-11-13 19:22 Sam James
2024-11-13 18:21 Michał Górny
2024-11-13  6:16 Matt Jolly
2024-11-12 19:19 Sam James
2024-11-12  9:09 Matt Jolly
2024-11-12  8:09 Andrew Ammerlaan
2024-11-11 23:48 Matt Jolly
2024-11-11 23:48 Matt Jolly
2024-11-11 19:28 Sam James
2024-11-11  8:53 Matt Jolly
2024-11-11  8:53 Matt Jolly
2024-11-10 17:24 Sam James
2024-11-09 10:50 Matt Jolly
2024-11-09  9:02 Matt Jolly
2024-11-09  7:31 Matt Jolly
2024-11-09  7:21 Sam James
2024-11-09  6:26 Matt Jolly
2024-11-09  6:26 Matt Jolly
2024-11-09  6:26 Matt Jolly
2024-11-07  5:28 Michał Górny
2024-11-07  5:28 Michał Górny
2024-11-06 11:27 Sam James
2024-11-05 10:47 Florian Schmaus
2024-11-05 10:47 Florian Schmaus
2024-11-03  9:35 Sam James
2024-11-01  9:03 Michał Górny
2024-10-30 20:50 Sam James
2024-10-30 11:43 Miroslav Šulc
2024-10-30  2:27 Sam James
2024-10-29 23:22 Maciej Barć
2024-10-29 23:22 Maciej Barć
2024-10-29 13:01 Michał Górny
2024-10-23 12:18 Michał Górny
2024-10-21  9:32 Sam James
2024-10-19 13:47 Ionen Wolkens
2024-10-18 17:54 Ulrich Müller
2024-10-18 17:54 Ulrich Müller
2024-10-18 17:54 Ulrich Müller
2024-10-16 16:13 Andreas Sturmlechner
2024-10-16  4:54 Michał Górny
2024-10-16  4:54 Michał Górny
2024-10-16  4:54 Michał Górny
2024-10-15 13:13 Michał Górny
2024-10-15  7:17 Michał Górny
2024-10-10 14:47 Andrew Ammerlaan
2024-10-09 11:45 Michał Górny
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:29 Ulrich Müller
2024-10-08 15:29 Ulrich Müller
2024-10-08  7:09 Florian Schmaus
2024-10-07  4:13 Sam James
2024-10-07  4:13 Sam James
2024-10-07  4:13 Sam James
2024-10-07  4:13 Sam James
2024-10-07  2:40 Sam James
2024-10-04 11:49 Sam James
2024-10-03  4:02 Sam James
2024-10-03  3:43 Sam James
2024-10-02  9:01 Miroslav Šulc
2024-10-02  9:01 Miroslav Šulc
2024-10-02  9:01 Miroslav Šulc
2024-10-02  9:01 Miroslav Šulc
2024-10-02  0:57 Sam James
2024-10-01 23:13 Eli Schwartz
2024-10-01 23:13 Eli Schwartz
2024-10-01 20:40 James Le Cuirot
2024-10-01 19:38 Eli Schwartz
2024-10-01 10:18 Sam James
2024-10-01  7:47 Sam James
2024-10-01  6:59 Sam James
2024-10-01  2:16 Sam James
2024-10-01  2:14 Sam James
2024-10-01  2:06 Sam James
2024-10-01  1:58 Sam James
2024-10-01  1:58 Sam James
2024-10-01  1:46 Sam James
2024-10-01  1:11 Sam James
2024-09-30  5:57 Sam James
2024-09-30  3:03 Sam James
2024-09-30  3:02 Sam James
2024-09-30  2:20 Sam James
2024-09-30  2:15 Sam James
2024-09-30  2:15 Sam James
2024-09-30  2:02 Sam James
2024-09-30  2:02 Sam James
2024-09-30  2:02 Sam James
2024-09-30  1:52 Sam James
2024-09-30  1:52 Sam James
2024-09-30  1:52 Sam James
2024-09-30  1:52 Sam James
2024-09-29 11:28 Sam James
2024-09-29 11:22 Sam James
2024-09-29 11:22 Sam James
2024-09-29 11:22 Sam James
2024-09-29  1:13 Sam James
2024-09-29  1:13 Sam James
2024-09-29  1:07 Sam James
2024-09-29  1:07 Sam James
2024-09-29  0:18 Sam James
2024-09-29  0:18 Sam James
2024-09-29  0:18 Sam James
2024-09-25 19:29 Eli Schwartz
2024-09-25 11:12 Sam James
2024-09-25 11:12 Sam James
2024-09-25 11:12 Sam James
2024-09-25  4:51 Ulrich Müller
2024-09-25  4:39 Michał Górny
2024-09-24 18:02 Michał Górny
2024-09-24 18:02 Michał Górny
2024-09-24 11:52 Sam James
2024-09-24  6:41 Michał Górny
2024-09-23 15:11 Michał Górny
2024-09-23 12:06 Ulrich Müller
2024-09-19 22:57 Sam James
2024-09-18 15:51 Sam James
2024-09-17 12:13 Michał Górny
2024-09-17 11:58 Andrew Ammerlaan
2024-09-12 22:08 Sam James
2024-09-11 22:21 Sam James
2024-09-10 19:11 Miroslav Šulc
2024-09-10 12:58 Michał Górny
2024-09-10  8:54 Michał Górny
2024-09-10  6:46 Miroslav Šulc
2024-09-09 18:20 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-07 18:23 Sam James
2024-09-07 18:21 Sam James
2024-09-05 12:10 Sam James
2024-09-04 20:33 Michał Górny
2024-09-03  9:40 Sam James
2024-09-03  8:58 Sam James
2024-09-03  4:22 Ionen Wolkens
2024-09-01 11:05 Sam James
2024-09-01 11:05 Sam James
2024-09-01 11:05 Sam James
2024-09-01 11:05 Sam James
2024-09-01  9:59 Miroslav Šulc
2024-09-01  9:59 Miroslav Šulc
2024-09-01  9:59 Miroslav Šulc
2024-09-01  9:59 Miroslav Šulc
2024-08-31  8:33 Michał Górny
2024-08-30 19:43 Andrew Ammerlaan
2024-08-30 19:10 Andrew Ammerlaan
2024-08-26 13:04 Ulrich Müller
2024-08-26 13:04 Ulrich Müller
2024-08-26 13:04 Ulrich Müller
2024-08-26 13:04 Ulrich Müller
2024-08-26  6:34 Andreas Sturmlechner
2024-08-25 15:37 Andrew Ammerlaan
2024-08-25  0:49 Jason Zaman
2024-08-23 19:25 Michał Górny
2024-08-23 19:25 Michał Górny
2024-08-22 17:00 Andreas Sturmlechner
2024-08-22 11:23 Michał Górny
2024-08-21 21:51 Andreas Sturmlechner
2024-08-20 20:17 Mike Gilbert
2024-08-20 20:07 Mike Gilbert
2024-08-19 18:17 Robin H. Johnson
2024-08-19  6:02 Viorel Munteanu
2024-08-18 17:44 Arsen Arsenović
2024-08-18 17:44 Arsen Arsenović
2024-08-18 17:44 Arsen Arsenović
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 10:15 Arthur Zamarin
2024-08-16  5:55 Arthur Zamarin
2024-08-15 21:24 Sam James
2024-08-15 21:18 Sam James
2024-08-15 20:01 Michał Górny
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-12 19:02 Ulrich Müller
2024-08-12 19:02 Ulrich Müller
2024-08-12  1:19 Sam James
2024-08-12  1:19 Sam James
2024-08-12  1:19 Sam James
2024-08-12  1:19 Sam James
2024-08-11 20:56 Sam James
2024-08-10 17:24 Sam James
2024-08-10 14:06 Fabian Groffen
2024-08-09 15:50 Andrew Ammerlaan
2024-08-09 14:30 Sam James
2024-08-09 11:50 Sam James
2024-08-09 11:39 Sam James
2024-08-08 19:26 Michał Górny
2024-08-08 16:46 Andrew Ammerlaan
2024-08-08 14:38 James Le Cuirot
2024-08-08 10:49 Sam James
2024-08-08 10:30 Sam James
2024-08-08 10:30 Sam James
2024-08-08 10:05 Sam James
2024-08-08  9:00 James Le Cuirot
2024-08-07 15:13 Sam James
2024-08-07  9:41 Sam James
2024-08-07  9:25 Sam James
2024-08-07  9:21 Sam James
2024-08-07  8:58 Andrew Ammerlaan
2024-08-07  8:58 Andrew Ammerlaan
2024-08-07  3:03 Sam James
2024-08-06 16:39 Florian Schmaus
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  1:46 Sam James
2024-08-04  8:28 Sam James
2024-08-04  7:30 Andrew Ammerlaan
2024-08-04  7:27 Sam James
2024-08-01 20:20 Michał Górny
2024-08-01  7:32 Miroslav Šulc
2024-07-31  0:02 Sam James
2024-07-28 17:40 Florian Schmaus
2024-07-27 22:00 Andrew Ammerlaan
2024-07-27  7:27 Michał Górny
2024-07-26 17:18 Ulrich Müller
2024-07-26  9:00 Miroslav Šulc
2024-07-24 17:18 Andrew Ammerlaan
2024-07-24 17:18 Andrew Ammerlaan
2024-07-24 17:18 Andrew Ammerlaan
2024-07-24  8:58 Florian Schmaus
2024-07-24  8:58 Florian Schmaus
2024-07-23 14:13 Michał Górny
2024-07-23 14:07 Michał Górny
2024-07-23 14:07 Michał Górny
2024-07-23 14:07 Michał Górny
2024-07-23 10:03 Miroslav Šulc
2024-07-22 15:09 Michał Górny
2024-07-22 15:09 Michał Górny
2024-07-22 15:09 Michał Górny
2024-07-21 15:45 Andrew Ammerlaan
2024-07-21 15:14 Andrew Ammerlaan
2024-07-21 13:31 Andrew Ammerlaan
2024-07-21 13:31 Andrew Ammerlaan
2024-07-21 13:31 Andrew Ammerlaan
2024-07-20 12:09 Ulrich Müller
2024-07-18 16:15 Michał Górny
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-15 19:18 Andrew Ammerlaan
2024-07-15 19:18 Andrew Ammerlaan
2024-07-15 19:18 Andrew Ammerlaan
2024-07-15 19:18 Andrew Ammerlaan
2024-07-15 19:18 Andrew Ammerlaan
2024-07-15  7:17 David Seifert
2024-07-15  7:17 David Seifert
2024-07-15  7:17 David Seifert
2024-07-14 17:45 Florian Schmaus
2024-07-14 17:45 Florian Schmaus
2024-07-13 14:14 Michał Górny
2024-07-13  7:46 Michał Górny
2024-07-12 17:43 Ulrich Müller
2024-07-12  7:38 Sam James
2024-07-12  6:27 Sam James
2024-07-11 20:54 Ulrich Müller
2024-07-11 20:54 Ulrich Müller
2024-07-11 14:35 Michał Górny
2024-07-09 16:44 Ulrich Müller
2024-07-08 10:03 Ulrich Müller
2024-07-08 10:03 Ulrich Müller
2024-07-08 10:03 Ulrich Müller
2024-07-08 10:03 Ulrich Müller
2024-07-07  6:45 Matthew Smith
2024-07-06 11:19 Michał Górny
2024-07-05 20:50 Luca Barbato
2024-07-05 11:03 Arthur Zamarin
2024-07-05 11:03 Arthur Zamarin
2024-07-05 11:03 Arthur Zamarin
2024-07-03  5:30 Joonas Niilola
2024-07-03  0:59 Sam James
2024-07-03  0:54 Sam James
2024-07-02 17:49 Sam James
2024-06-30 18:27 Sam James
2024-06-29  8:39 Andrew Ammerlaan
2024-06-29  8:39 Andrew Ammerlaan
2024-06-29  8:39 Andrew Ammerlaan
2024-06-28  8:23 Miroslav Šulc
2024-06-27  7:33 Andrew Ammerlaan
2024-06-26  6:24 Florian Schmaus
2024-06-24 11:58 Ulrich Müller
2024-06-23 17:33 Michał Górny
2024-06-23  1:00 Ionen Wolkens
2024-06-20  9:57 Sam James
2024-06-20  7:29 Florian Schmaus
2024-06-20  7:29 Florian Schmaus
2024-06-19  3:16 Andreas K. Hüttel
2024-06-17 17:13 Andreas Sturmlechner
2024-06-17  9:39 James Le Cuirot
2024-06-17  0:53 Sam James
2024-06-15 11:01 Michał Górny
2024-06-15  7:58 Sam James
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:19 Miroslav Šulc
2024-06-14 10:00 Miroslav Šulc
2024-06-14 10:00 Miroslav Šulc
2024-06-14 10:00 Miroslav Šulc
2024-06-14 10:00 Miroslav Šulc
2024-06-14 10:00 Miroslav Šulc
2024-06-13 20:43 Andreas Sturmlechner
2024-06-13 18:35 Ulrich Müller
2024-06-13 18:35 Ulrich Müller
2024-06-13 13:21 Miroslav Šulc
2024-06-12 17:13 James Le Cuirot
2024-06-12 16:36 Patrick Lauer
2024-06-12 14:27 Patrick Lauer
2024-06-12 13:20 James Le Cuirot
2024-06-12 13:20 James Le Cuirot
2024-06-12 10:24 Arthur Zamarin
2024-06-10 14:23 Ulrich Müller
2024-06-10 14:23 Ulrich Müller
2024-06-10 12:46 Joonas Niilola
2024-06-08 15:47 Michał Górny
2024-06-08 10:29 Michał Górny
2024-06-08  3:53 Ulrich Müller
2024-06-08  3:53 Ulrich Müller
2024-06-06 20:37 Mike Gilbert
2024-06-02  8:22 Ionen Wolkens
2024-06-01 21:34 Alfredo Tupone
2024-06-01 21:11 Alfredo Tupone
2024-06-01  6:19 Hans de Graaff
2024-06-01  6:19 Hans de Graaff
2024-06-01  6:19 Hans de Graaff
2024-05-31 12:42 Michał Górny
2024-05-26  8:18 Miroslav Šulc
2024-05-25  8:35 Michał Górny
2024-05-25  5:55 Sam James
2024-05-22  1:44 Sam James
2024-05-21  8:58 Florian Schmaus
2024-05-21  8:58 Florian Schmaus
2024-05-21  8:58 Florian Schmaus
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-18 13:25 Michał Górny
2024-05-18  3:50 Benda XU
2024-05-17 23:05 Ionen Wolkens
2024-05-17 23:05 Ionen Wolkens
2024-05-17 12:07 Andrew Ammerlaan
2024-05-17 12:07 Andrew Ammerlaan
2024-05-17 12:07 Andrew Ammerlaan
2024-05-17  6:25 Michał Górny
2024-05-15 18:02 Michał Górny
2024-05-15 14:20 Michał Górny
2024-05-14  9:19 Florian Schmaus
2024-05-14  8:20 Florian Schmaus
2024-05-13 21:53 Sam James
2024-05-13 13:22 Michael Orlitzky
2024-05-13 13:22 Michael Orlitzky
2024-05-13 13:22 Michael Orlitzky
2024-05-13 13:22 Michael Orlitzky
2024-05-13  8:35 Florian Schmaus
2024-05-13  7:07 Miroslav Šulc
2024-05-12  4:51 Sam James
2024-05-11 13:39 Michał Górny
2024-05-11  6:44 Joonas Niilola
2024-05-11  6:21 Hans de Graaff
2024-05-11  1:58 Sam James
2024-05-11  0:55 Sam James
2024-05-10 17:28 Sam James
2024-05-10 17:28 Sam James
2024-05-10 17:28 Sam James
2024-05-10 17:28 Sam James
2024-05-10 17:28 Sam James
2024-05-09 19:54 Conrad Kostecki
2024-05-09 19:54 Conrad Kostecki
2024-05-08  8:06 Ulrich Müller
2024-05-07  7:57 Andreas K. Hüttel
2024-05-06 17:28 Ulrich Müller
2024-05-06 17:28 Ulrich Müller
2024-05-06 17:11 Ionen Wolkens
2024-05-06  4:39 Sam James
2024-05-04 19:57 Michał Górny
2024-05-04 19:57 Michał Górny
2024-05-03 11:43 Sam James
2024-05-03 11:43 Sam James
2024-05-03 11:43 Sam James
2024-05-03  2:48 Sam James
2024-05-03  2:48 Sam James
2024-05-02 17:44 Florian Schmaus
2024-05-02  0:24 Sam James
2024-05-01  3:02 Sam James
2024-05-01  0:27 Sam James
2024-05-01  0:27 Sam James
2024-04-30 19:25 Alfredo Tupone
2024-04-30 19:19 Alfredo Tupone
2024-04-30 18:34 Michał Górny
2024-04-30 18:34 Michał Górny
2024-04-30  5:58 Sam James
2024-04-29 17:31 Florian Schmaus
2024-04-28 15:54 Michał Górny
2024-04-28  9:47 Hans de Graaff
2024-04-27 10:42 Michał Górny
2024-04-25 20:43 Andreas Sturmlechner
2024-04-25 20:43 Andreas Sturmlechner
2024-04-23 21:43 Sam James
2024-04-22  3:14 Sam James
2024-04-20 14:20 Ionen Wolkens
2024-04-20 14:20 Ionen Wolkens
2024-04-20  9:41 Michał Górny
2024-04-20  5:40 Michał Górny
2024-04-19 23:11 Mike Gilbert
2024-04-19 18:46 Michał Górny
2024-04-19 18:46 Michał Górny
2024-04-17 23:34 Sam James
2024-04-16  1:40 Sam James
2024-04-16  1:40 Sam James
2024-04-16  1:40 Sam James
2024-04-13 20:03 Miroslav Šulc
2024-04-13 18:41 Sam James
2024-04-13 18:32 Ulrich Müller
2024-04-11  7:48 Miroslav Šulc
2024-04-10 17:56 Ulrich Müller
2024-04-10 11:10 Michał Górny
2024-04-10  8:11 Miroslav Šulc
2024-04-09 20:17 Ulrich Müller
2024-04-08  7:15 Miroslav Šulc
2024-04-06 13:44 Michał Górny
2024-04-06  9:13 Michał Górny
2024-04-05 16:06 Florian Schmaus
2024-04-05  9:45 Hans de Graaff
2024-04-04 17:33 Ulrich Müller
2024-04-04 17:33 Ulrich Müller
2024-04-04  8:18 Florian Schmaus
2024-04-04  1:07 Sam James
2024-04-04  1:07 Sam James
2024-04-03 17:38 Florian Schmaus
2024-04-03 17:38 Florian Schmaus
2024-04-01  9:40 Michał Górny
2024-04-01  9:40 Michał Górny
2024-04-01  9:40 Michał Górny
2024-04-01  9:40 Michał Górny
2024-04-01  9:40 Michał Górny
2024-04-01  9:40 Michał Górny
2024-04-01  9:40 Michał Górny
2024-04-01  9:40 Michał Górny
2024-04-01  9:40 Michał Górny
2024-03-30 10:27 Michał Górny
2024-03-29 18:47 Sam James
2024-03-24 17:47 Sam James
2024-03-24 14:05 Sam James
2024-03-24  9:32 Sam James
2024-03-24  9:09 Sam James
2024-03-23 20:19 Sam James
2024-03-23 19:01 Sam James
2024-03-23 17:04 Sam James
2024-03-23 17:03 Michał Górny
2024-03-23 16:05 Sam James
2024-03-23 15:43 Sam James
2024-03-23 15:43 Sam James
2024-03-23 15:42 Sam James
2024-03-23 15:42 Sam James
2024-03-23 15:42 Sam James
2024-03-23 15:42 Sam James
2024-03-23 14:52 Sam James
2024-03-23 14:49 Sam James
2024-03-23 14:49 Sam James
2024-03-23 14:35 Arthur Zamarin
2024-03-23 10:25 Michał Górny
2024-03-23  8:28 Arthur Zamarin
2024-03-23  8:28 Arthur Zamarin
2024-03-19 14:12 Florian Schmaus
2024-03-18 13:02 Sam James
2024-03-17  9:18 Andreas K. Hüttel
2024-03-16 16:25 Michał Górny
2024-03-16  4:44 Sam James
2024-03-16  4:44 Sam James
2024-03-15 20:45 Sam James
2024-03-12  5:13 Michał Górny
2024-03-12  0:38 Mike Gilbert
2024-03-12  0:34 Mike Gilbert
2024-03-11 23:05 Andreas K. Hüttel
2024-03-11 19:20 Sam James
2024-03-10 21:10 Miroslav Šulc
2024-03-10 21:10 Miroslav Šulc
2024-03-09 15:52 Michał Górny
2024-03-08  5:40 Michał Górny
2024-03-08  5:40 Michał Górny
2024-03-08  5:40 Michał Górny
2024-03-08  5:40 Michał Górny
2024-03-08  5:40 Michał Górny
2024-03-08  5:40 Michał Górny
2024-03-08  5:40 Michał Górny
2024-03-07 18:04 Sam James
2024-03-06 17:03 Michał Górny
2024-03-02 13:24 Michał Górny
2024-03-01 20:50 Sam James
2024-03-01 19:25 Sam James
2024-03-01 19:25 Sam James
2024-03-01 19:25 Sam James
2024-02-28 20:40 Michał Górny
2024-02-28 13:56 Andreas Sturmlechner
2024-02-28 13:56 Andreas Sturmlechner
2024-02-27 23:54 Sam James
2024-02-27 23:54 Sam James
2024-02-24 14:54 Michał Górny
2024-02-24 12:57 Jakov Smolić
2024-02-23  7:46 Sam James
2024-02-22  4:23 Michał Górny
2024-02-19  5:08 Sam James
2024-02-19  5:06 Sam James
2024-02-18 20:22 Michał Górny
2024-02-18 13:23 Michał Górny
2024-02-18 13:23 Michał Górny
2024-02-18 13:23 Michał Górny
2024-02-18 13:23 Michał Górny
2024-02-12 16:25 Sam James
2024-02-11 12:11 Andrew Ammerlaan
2024-02-11 12:11 Andrew Ammerlaan
2024-02-11 12:11 Andrew Ammerlaan
2024-02-10 17:27 Michał Górny
2024-02-10 16:24 Maciej Barć
2024-02-10 16:24 Maciej Barć
2024-02-10 16:24 Maciej Barć
2024-02-10 16:24 Maciej Barć
2024-02-10 16:24 Maciej Barć
2024-02-10 16:24 Maciej Barć
2024-02-10 16:24 Maciej Barć
2024-02-07 15:10 Andreas Sturmlechner
2024-02-06  3:07 Michał Górny
2024-02-06  3:07 Michał Górny
2024-02-05  0:20 Sam James
2024-02-03 14:07 Sam James
2024-02-02  6:28 Andrew Ammerlaan
2024-02-01 23:52 Sam James
2024-02-01 23:52 Sam James
2024-02-01 19:22 Sam James
2024-01-31 13:59 Michał Górny
2024-01-30 21:21 Michał Górny
2024-01-30 11:28 Florian Schmaus
2024-01-30 11:09 Andrew Ammerlaan
2024-01-27 20:33 Michał Górny
2024-01-27 17:18 Sam James
2024-01-24 15:57 Michael Orlitzky
2024-01-24 14:35 Andrew Ammerlaan
2024-01-24 11:44 Michał Górny
2024-01-23  6:00 Sam James
2024-01-23  6:00 Sam James
2024-01-23  5:32 Sam James
2024-01-22 11:29 Michael Orlitzky
2024-01-22 11:29 Michael Orlitzky
2024-01-22 11:29 Michael Orlitzky
2024-01-22 11:29 Michael Orlitzky
2024-01-22 11:29 Michael Orlitzky
2024-01-22 11:29 Michael Orlitzky
2024-01-22 11:29 Michael Orlitzky
2024-01-22 11:29 Michael Orlitzky
2024-01-22 11:29 Michael Orlitzky
2024-01-22 11:29 Michael Orlitzky
2024-01-22 11:29 Michael Orlitzky
2024-01-20 21:22 Conrad Kostecki
2024-01-20 10:09 Florian Schmaus
2024-01-19 12:44 Miroslav Šulc
2024-01-19 12:44 Miroslav Šulc
2024-01-19 12:44 Miroslav Šulc
2024-01-19  9:51 罗百科
2024-01-17  7:41 Michał Górny
2024-01-16  9:02 Andrew Ammerlaan
2024-01-13 17:49 Michał Górny
2024-01-13 17:49 Michał Górny
2024-01-12 11:46 Sam James
2024-01-12 11:46 Sam James
2024-01-12 11:36 Andrew Ammerlaan
2024-01-12 11:08 Sam James
2024-01-11 17:50 William Hubbs
2024-01-11  9:48 Miroslav Šulc
2024-01-11  9:48 Miroslav Šulc
2024-01-11  9:48 Miroslav Šulc
2024-01-10 11:01 Andreas Sturmlechner
2024-01-10 11:01 Andreas Sturmlechner
2024-01-10 11:01 Andreas Sturmlechner
2024-01-09  6:41 Michał Górny
2024-01-08 23:53 Sam James
2024-01-08 21:09 Ionen Wolkens
2024-01-08 14:48 Michał Górny
2024-01-08 14:48 Michał Górny
2024-01-08 12:29 Sam James
2024-01-08 12:28 Sam James
2024-01-08 12:28 Sam James
2024-01-08 12:03 Sam James
2024-01-08 12:03 Sam James
2024-01-08 12:03 Sam James
2024-01-08  9:48 Sam James
2024-01-08  9:48 Sam James
2024-01-07 17:29 Andrew Ammerlaan
2024-01-07 17:29 Andrew Ammerlaan
2024-01-07 11:38 Michał Górny
2024-01-06 21:52 Michał Górny
2024-01-05 20:19 Michał Górny
2024-01-05 20:19 Michał Górny
2024-01-05 20:19 Michał Górny
2024-01-05 10:54 Michał Górny
2024-01-03 10:44 Sam James
2024-01-03  9:35 Ionen Wolkens
2024-01-03  6:20 Sam James
2023-12-30 16:20 Michał Górny
2023-12-30 16:20 Michał Górny
2023-12-30 16:20 Michał Górny
2023-12-30 16:20 Michał Górny
2023-12-30 16:20 Michał Górny
2023-12-30 16:20 Michał Górny
2023-12-30 15:34 Ulrich Müller
2023-12-30 15:34 Ulrich Müller
2023-12-28 15:06 Michał Górny
2023-12-28  6:29 Ionen Wolkens
2023-12-27 20:57 Sam James
2023-12-27 20:57 Sam James
2023-12-27 20:57 Sam James
2023-12-27 20:57 Sam James
2023-12-27 20:57 Sam James
2023-12-26 14:02 Michał Górny
2023-12-25 15:47 Michał Górny
2023-12-25 15:47 Michał Górny
2023-12-25 15:47 Michał Górny
2023-12-25  9:02 Hans de Graaff
2023-12-24 12:35 Andrew Ammerlaan
2023-12-24 11:46 Andrew Ammerlaan
2023-12-23 18:12 Sam James
2023-12-23 17:35 Michał Górny
2023-12-22 16:44 Michał Górny
2023-12-21 16:41 Andreas Sturmlechner
2023-12-21 16:41 Andreas Sturmlechner
2023-12-20 13:41 Sam James
2023-12-19 20:33 Ionen Wolkens
2023-12-18 17:21 WANG Xuerui
2023-12-18 17:21 WANG Xuerui
2023-12-18 17:21 WANG Xuerui
2023-12-17 11:23 Michał Górny
2023-12-15 17:51 Michał Górny
2023-12-15  6:52 Sam James
2023-12-14 15:02 Benda XU
2023-12-14  5:35 Sam James
2023-12-14  5:25 Sam James
2023-12-14  5:22 Sam James
2023-12-14  5:22 Sam James
2023-12-14  5:22 Sam James
2023-12-14  5:22 Sam James
2023-12-12 13:04 Andreas Sturmlechner
2023-12-11 12:41 Andrew Ammerlaan
2023-12-11 12:41 Andrew Ammerlaan
2023-12-11  7:31 Ulrich Müller
2023-12-11  7:31 Ulrich Müller
2023-12-11  7:31 Ulrich Müller
2023-12-11  7:31 Ulrich Müller
2023-12-11  7:31 Ulrich Müller
2023-12-09 18:16 Michał Górny
2023-12-09 10:32 Michał Górny
2023-12-09 10:01 Ulrich Müller
2023-12-09 10:01 Ulrich Müller
2023-12-09 10:01 Ulrich Müller
2023-12-09 10:01 Ulrich Müller
2023-12-08 17:03 Ulrich Müller
2023-12-08 17:03 Ulrich Müller
2023-12-07 13:01 Sam James
2023-12-05 10:27 Andrew Ammerlaan
2023-12-04  7:32 Sam James
2023-11-29 15:15 Michał Górny
2023-11-27 11:13 Sam James
2023-11-26 18:51 Andrew Ammerlaan
2023-11-26 18:34 Sam James
2023-11-26  8:06 Andrew Ammerlaan
2023-11-25 23:34 Andreas Sturmlechner
2023-11-25 23:34 Andreas Sturmlechner
2023-11-25 23:34 Andreas Sturmlechner
2023-11-25 23:34 Andreas Sturmlechner
2023-11-25 23:34 Andreas Sturmlechner
2023-11-25 23:34 Andreas Sturmlechner
2023-11-25 11:21 Michał Górny
2023-11-24 18:35 Sam James
2023-11-24 18:35 Sam James
2023-11-24 17:17 Sam James
2023-11-24 16:26 Sam James
2023-11-24 16:26 Sam James
2023-11-23 15:02 Michał Górny
2023-11-22  0:00 Sam James
2023-11-22  0:00 Sam James
2023-11-22  0:00 Sam James
2023-11-21 20:51 Sam James
2023-11-21 20:43 Sam James
2023-11-20 23:27 James Le Cuirot
2023-11-20 23:27 James Le Cuirot
2023-11-20 23:27 James Le Cuirot
2023-11-20 23:27 James Le Cuirot
2023-11-19 16:01 Michał Górny
2023-11-19 16:01 Michał Górny
2023-11-19 16:01 Michał Górny
2023-11-19 11:10 Michał Górny
2023-11-18  9:19 Andrew Ammerlaan
2023-11-18  9:19 Andrew Ammerlaan
2023-11-14 14:11 Florian Schmaus
2023-11-13 22:15 James Le Cuirot
2023-11-13 21:11 Andreas Sturmlechner
2023-11-13 17:33 Maciej Barć
2023-11-13 17:33 Maciej Barć
2023-11-13 17:33 Maciej Barć
2023-11-11 20:23 Michał Górny
2023-11-11 10:36 Michał Górny
2023-11-10 16:20 Pacho Ramos
2023-11-10 12:17 Andrew Ammerlaan
2023-11-10 12:17 Andrew Ammerlaan
2023-11-10 10:33 Michał Górny
2023-11-09  2:00 Sam James
2023-11-08  7:39 Ulrich Müller
2023-11-08  1:50 Sam James
2023-11-07  5:29 Michał Górny
2023-11-07  5:29 Michał Górny
2023-11-07  5:29 Michał Górny
2023-11-07  5:29 Michał Górny
2023-11-04 17:51 Mike Gilbert
2023-11-01  8:11 Ionen Wolkens
2023-10-31 19:55 Mike Gilbert
2023-10-30 18:55 Mike Gilbert
2023-10-29  3:53 Sam James
2023-10-27  3:33 Sam James
2023-10-26 21:55 Sam James
2023-10-26 16:48 Sam James
2023-10-26  2:10 Michał Górny
2023-10-26  0:41 Marek Szuba
2023-10-23  8:36 Florian Schmaus
2023-10-22 19:14 Michał Górny
2023-10-22 19:14 Michał Górny
2023-10-22  9:49 Ulrich Müller
2023-10-21 17:46 Sam James
2023-10-21 17:46 Sam James
2023-10-21 17:06 Sam James
2023-10-21 16:59 Sam James
2023-10-20 20:07 Matt Turner
2023-10-19 19:50 Michał Górny
2023-10-19 19:50 Michał Górny
2023-10-19 18:22 Miroslav Šulc
2023-10-19 18:22 Miroslav Šulc
2023-10-19 18:10 Mike Pagano
2023-10-19 12:21 Hans de Graaff
2023-10-18 12:11 Florian Schmaus
2023-10-18  7:50 Miroslav Šulc
2023-10-18  7:50 Miroslav Šulc
2023-10-18  7:50 Miroslav Šulc
2023-10-18  7:50 Miroslav Šulc
2023-10-18  6:44 Sam James
2023-10-16  9:26 Sam James
2023-10-15 15:23 Sam James
2023-10-13 16:34 Ionen Wolkens
2023-10-13 16:15 Michał Górny
2023-10-12 15:52 Maciej Barć
2023-10-12 15:52 Maciej Barć
2023-10-12 15:52 Maciej Barć
2023-10-12 15:52 Maciej Barć
2023-10-12 15:52 Maciej Barć
2023-10-12 15:52 Maciej Barć
2023-10-09 20:28 James Le Cuirot
2023-10-09 10:54 Florian Schmaus
2023-10-09 10:54 Florian Schmaus
2023-10-08 10:03 Hans de Graaff
2023-10-08 10:03 Hans de Graaff
2023-10-08 10:03 Hans de Graaff
2023-10-05 11:12 Sam James
2023-10-05 11:12 Sam James
2023-10-05 11:12 Sam James
2023-10-02 19:39 Michał Górny
2023-10-02 17:51 Michał Górny
2023-10-01 18:16 Mike Gilbert
2023-10-01  9:28 Andrew Ammerlaan
2023-10-01  7:27 Sam James
2023-09-30 10:34 Sam James
2023-09-30  9:38 Sam James
2023-09-30  9:38 Sam James
2023-09-30  9:38 Sam James
2023-09-30  7:58 Miroslav Šulc
2023-09-28 15:51 Hans de Graaff
2023-09-28  8:22 Miroslav Šulc
2023-09-27  9:12 Michał Górny
2023-09-27  6:58 Miroslav Šulc
2023-09-27  6:58 Miroslav Šulc
2023-09-27  5:28 Sam James
2023-09-26 12:24 Ionen Wolkens
2023-09-25 18:45 Michał Górny
2023-09-25  2:07 Sam James
2023-09-23  6:31 Hans de Graaff
2023-09-23  6:31 Hans de Graaff
2023-09-19 19:47 Michał Górny
2023-09-19 11:15 Sam James
2023-09-19 11:15 Sam James
2023-09-19 11:12 Miroslav Šulc
2023-09-18  9:52 Sam James
2023-09-18  9:50 Sam James
2023-09-16  9:43 Sam James
2023-09-16  7:44 Florian Schmaus
2023-09-15 20:49 Maciej Barć
2023-09-15 20:49 Maciej Barć
2023-09-14 20:43 Ionen Wolkens
2023-09-14  5:30 Michał Górny
2023-09-14  5:30 Michał Górny
2023-09-14  5:30 Michał Górny
2023-09-14  5:30 Michał Górny
2023-09-14  5:30 Michał Górny
2023-09-14  5:30 Michał Górny
2023-09-14  5:30 Michał Górny
2023-09-14  2:10 Sam James
2023-09-12  7:46 James Le Cuirot
2023-09-11 21:20 Ionen Wolkens
2023-09-11 11:20 Ionen Wolkens
2023-09-09 16:22 Ionen Wolkens
2023-09-09 16:22 Ionen Wolkens
2023-09-09 16:22 Ionen Wolkens
2023-09-09  6:59 Joonas Niilola
2023-09-07 22:16 Ionen Wolkens
2023-09-07 10:22 Ionen Wolkens
2023-09-07 10:03 Ionen Wolkens
2023-09-06 18:13 Michał Górny
2023-09-05 19:58 Michał Górny
2023-09-05 13:05 Ionen Wolkens
2023-09-05 13:05 Ionen Wolkens
2023-09-05 13:05 Ionen Wolkens
2023-09-05 13:05 Ionen Wolkens
2023-09-05 13:05 Ionen Wolkens
2023-09-04 13:14 Michał Górny
2023-09-04 13:14 Michał Górny
2023-09-02 17:34 Michał Górny
2023-09-02 17:34 Michał Górny
2023-08-29 15:44 Ulrich Müller
2023-08-29 11:20 Michał Górny
2023-08-29 11:20 Michał Górny
2023-08-29  2:11 Sam James
2023-08-28  6:54 WANG Xuerui
2023-08-27 20:26 Sam James
2023-08-27 19:36 Andrew Ammerlaan
2023-08-27 19:36 Andrew Ammerlaan
2023-08-27 19:36 Andrew Ammerlaan
2023-08-27 18:04 Andrew Ammerlaan
2023-08-26 15:22 Ulrich Müller
2023-08-26  6:52 Ulrich Müller
2023-08-26  6:52 Ulrich Müller
2023-08-26  6:52 Ulrich Müller
2023-08-25 19:17 Michał Górny
2023-08-25  9:12 Andrew Ammerlaan
2023-08-23  7:36 Michał Górny
2023-08-22 18:04 Sam James
2023-08-22 18:04 Sam James
2023-08-22 17:12 Sam James
2023-08-22 17:12 Sam James
2023-08-22 13:27 Andrew Ammerlaan
2023-08-22 13:27 Andrew Ammerlaan
2023-08-21  8:39 Andrew Ammerlaan
2023-08-21  8:39 Andrew Ammerlaan
2023-08-20 15:46 Michał Górny
2023-08-20 12:02 Michał Górny
2023-08-19 18:28 Michał Górny
2023-08-19 18:28 Michał Górny
2023-08-19 18:28 Michał Górny
2023-08-19 18:28 Michał Górny
2023-08-18  1:31 Sam James
2023-08-18  1:31 Sam James
2023-08-18  1:31 Sam James
2023-08-18  1:31 Sam James
2023-08-18  1:31 Sam James
2023-08-17  6:22 Sam James
2023-08-17  6:22 Sam James
2023-08-14 21:15 Michael Orlitzky
2023-08-14 21:15 Michael Orlitzky
2023-08-13  5:22 Hans de Graaff
2023-08-10 17:49 Michał Górny
2023-08-08 14:26 Mike Gilbert
2023-08-08  9:07 Michał Górny
2023-08-07 12:10 James Le Cuirot
2023-08-07  3:01 Michał Górny
2023-08-06  6:42 Michał Górny
2023-08-04  2:05 Sam James
2023-08-03 19:37 Sam James
2023-08-03 15:43 Michał Górny
2023-08-03 15:43 Michał Górny
2023-08-02 18:22 Sam James
2023-08-02 18:22 Sam James
2023-08-02  6:54 Florian Schmaus
2023-07-31 15:12 David Seifert
2023-07-31  2:36 Sam James
2023-07-30 18:41 Sam James
2023-07-30 18:38 Sam James
2023-07-30 18:29 Sam James
2023-07-29  2:24 Sam James
2023-07-27 18:26 Matthew Thode
2023-07-27 16:36 Ulrich Müller
2023-07-26  6:03 Michał Górny
2023-07-26  2:53 Sam James
2023-07-25 16:11 Michał Górny
2023-07-25 16:11 Michał Górny
2023-07-25 16:11 Michał Górny
2023-07-22 13:04 Michał Górny
2023-07-21 23:49 Sam James
2023-07-21 23:49 Sam James
2023-07-21 22:14 Sam James
2023-07-21 17:59 Sam James
2023-07-21 17:59 Sam James
2023-07-21 17:59 Sam James
2023-07-21 17:59 Sam James
2023-07-21 17:59 Sam James
2023-07-21 17:59 Sam James
2023-07-20 12:16 Sam James
2023-07-20 11:33 Andrew Ammerlaan
2023-07-20 11:33 Andrew Ammerlaan
2023-07-20 11:33 Andrew Ammerlaan
2023-07-20  9:49 WANG Xuerui
2023-07-20  9:49 WANG Xuerui
2023-07-20  0:08 Sam James

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1694810819.33953bf9dd7aef94ab2d5862cb003765d749566f.xgqt@gentoo \
    --to=xgqt@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox