* [gentoo-commits] repo/user/dlang:master commit in: app-eselect/eselect-dlang/, app-eselect/eselect-dlang/files/
@ 2024-01-03 19:56 Horodniceanu Andrei
0 siblings, 0 replies; 2+ messages in thread
From: Horodniceanu Andrei @ 2024-01-03 19:56 UTC (permalink / raw
To: gentoo-commits
commit: c3a91632926bc7b944c9f3ed000e3208b020c241
Author: Horodniceanu Andrei <a.horodniceanu <AT> proton <DOT> me>
AuthorDate: Wed Jan 3 10:06:25 2024 +0000
Commit: Horodniceanu Andrei <a.horodniceanu <AT> proton <DOT> me>
CommitDate: Wed Jan 3 19:38:57 2024 +0000
URL: https://gitweb.gentoo.org/repo/user/dlang.git/commit/?id=c3a91632
app-eselect/eselect-dlang: add 20240103
Additional features:
- symlinks in /usr/include/dlang are properly removed when the last
versions of compilers are uninstalled
Signed-off-by: Horodniceanu Andrei <a.horodniceanu <AT> proton.me>
.../eselect-dlang/eselect-dlang-20240103.ebuild | 21 ++
.../eselect-dlang/files/dlang.eselect-20240103 | 242 +++++++++++++++++++++
2 files changed, 263 insertions(+)
diff --git a/app-eselect/eselect-dlang/eselect-dlang-20240103.ebuild b/app-eselect/eselect-dlang/eselect-dlang-20240103.ebuild
new file mode 100644
index 0000000..8f0a7c4
--- /dev/null
+++ b/app-eselect/eselect-dlang/eselect-dlang-20240103.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Eselect module for management of multiple D versions"
+HOMEPAGE="https://github.com/gentoo/dlang"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="app-admin/eselect"
+
+S="${FILESDIR}"
+
+src_install() {
+ insinto /usr/share/eselect/modules
+ newins dlang.eselect-${PV} dlang.eselect
+ keepdir /usr/include/dlang
+}
diff --git a/app-eselect/eselect-dlang/files/dlang.eselect-20240103 b/app-eselect/eselect-dlang/files/dlang.eselect-20240103
new file mode 100644
index 0000000..da9ecf0
--- /dev/null
+++ b/app-eselect/eselect-dlang/files/dlang.eselect-20240103
@@ -0,0 +1,242 @@
+# -*-eselect-*- vim: ft=eselect
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+inherit config
+
+DESCRIPTION="Manage D symlinks"
+MAINTAINER="marco.leise@gmx.de"
+VERSION="20240103"
+
+ETC_PATH="${EROOT}/etc"
+COMPILER_PATH="${EROOT}/usr/bin"
+MAN1_PATH="${EROOT}/usr/share/man/man1"
+MAN5_PATH="${EROOT}/usr/share/man/man5"
+INC_PATH="${EROOT}/usr/include/dlang"
+CONFIG_FILE="${EROOT}/var/lib/dlang"
+declare -A COMPILER_NAMES=([dmd]="Digital Mars D (dmd)"
+ [ldc2]="LLVM D2 (ldc2)")
+
+
+### list action ###
+
+describe_list() {
+ echo "List installed D compilers by vendor (or all installed compilers)"
+}
+
+describe_list_options() {
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ printf "% -11s : List installed %s compilers\n" $compiler "${COMPILER_NAMES[$compiler]}"
+ done
+}
+
+describe_list_parameters() {
+ echo "[<vendor>]"
+}
+
+do_list() {
+ [[ $# -eq 1 ]] && has "$1" ${!COMPILER_NAMES[@]} || [[ $# -eq 0 ]] \
+ || die -q "Syntax: eselect dlang list [$(compiler_options)]"
+
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ if [[ $# -eq 0 ]] || [[ $compiler == $1 ]]; then
+ write_list_start "Available ${COMPILER_NAMES[$compiler]} compilers:"
+ local targets=($(find_targets $compiler))
+ local active="$(do_show $compiler)"
+ local mode="$(load_config "$CONFIG_FILE" $compiler)"
+ for ((i = 0; i < ${#targets[@]}; i++)); do
+ if [[ "${targets[$i]}" == "$active" ]]; then
+ if [[ "${mode:-auto}" == "auto" ]]; then
+ targets[$i]="$(highlight_marker "${targets[$i]}" auto)"
+ else
+ targets[$i]="$(highlight_marker "${targets[$i]}" manual)"
+ fi
+ fi
+ done
+ write_numbered_list -m "(none found)" "${targets[@]}"
+ echo
+ fi
+ done
+}
+
+
+### set action ###
+
+describe_set() {
+ echo "Set active version of D compilers"
+}
+
+describe_set_options() {
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ printf "% -11s : Set active %s compiler\n" $compiler "${COMPILER_NAMES[$compiler]}"
+ done
+}
+
+describe_set_parameters() {
+ echo "<vendor>"
+}
+
+do_set() {
+ [[ $# -eq 2 ]] && has "$1" ${!COMPILER_NAMES[@]} \
+ || die -q "2 arguments required: eselect dlang set $(compiler_options) <version|index|\"auto\">"
+
+ local targets=($(find_targets $1))
+ local target="$2"
+ if [[ "$target" == "auto" ]]; then
+ local autoTarget="${targets[$((${#targets[@]} - 1))]}"
+ if [[ -n "${targets[$(($target - 1))]}" ]]; then
+ target="$autoTarget"
+ fi
+ elif is_number "$2" && [[ $2 -ge 1 ]]; then
+ local idxToTarget="${targets[$(($target - 1))]}"
+ if [[ -n "${targets[$(($target - 1))]}" ]]; then
+ target="$idxToTarget"
+ fi
+ fi
+
+ has "$target" "${targets[@]}" || die -q "Invalid or unavailable target"
+ if [[ "$2" == "auto" ]]; then
+ echo -n "Switching $1 to always latest version, currently $target..."
+ else
+ echo -n "Switching $1 to $target..."
+ fi
+
+ case $1 in
+ dmd)
+ symlink_helper "${EROOT}/usr/lib/dmd/${target}/bin/dmd" "${COMPILER_PATH}/dmd"
+ symlink_helper "${EROOT}/usr/lib/dmd/${target}/bin/dmd.conf" "${ETC_PATH}/dmd.conf"
+ symlink_helper "${EROOT}/usr/lib/dmd/${target}/import" "${INC_PATH}/dmd"
+ [[ -d ${MAN1_PATH} ]] && symlink_helper "/usr/lib/dmd/${target}/man/man1/dmd.1" "${MAN1_PATH}/dmd.1"
+ [[ -d ${MAN5_PATH} ]] && symlink_helper "/usr/lib/dmd/${target}/man/man5/dmd.conf.5" "${MAN5_PATH}/dmd.conf.5"
+ ;;
+ ldc2)
+ symlink_helper "${EROOT}/usr/lib/ldc2/${target}/bin/ldc2" "${COMPILER_PATH}/ldc2"
+ symlink_helper "${EROOT}/usr/lib/ldc2/${target}/bin/ldmd2" "${COMPILER_PATH}/ldmd2"
+ symlink_helper "${EROOT}/usr/lib/ldc2/${target}/include/d" "${INC_PATH}/ldc"
+ ;;
+ esac
+ store_config "$CONFIG_FILE" $1 "$2"
+
+ echo " done"
+}
+
+
+### show action ###
+
+describe_show() {
+ echo "Show active D compiler by vendor"
+}
+
+describe_show_options() {
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ printf "% -11s : Show active %s compiler\n" $compiler "${COMPILER_NAMES[$compiler]}"
+ done
+}
+
+describe_show_parameters() {
+ echo "<vendor>"
+}
+
+do_show() {
+ [[ $# -eq 1 ]] && has "$1" ${!COMPILER_NAMES[@]} \
+ || die -q "1 argument required: eselect dlang show $(compiler_options)"
+
+ local interpreter="$(readlink "${COMPILER_PATH}/$1" | sed -r "s#^/usr/lib(32|64)?/$1/##;s#/bin/$1\$##")"
+ [[ -n "$interpreter" ]] && echo "$interpreter"
+}
+
+
+### update action ###
+
+describe_update() {
+ echo "Update active D compilers to the latest installed version in absense of a manually set version"
+}
+
+describe_update_options() {
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ printf "% -11s : Update active %s compiler\n" $compiler "${COMPILER_NAMES[$compiler]}"
+ done
+}
+
+describe_update_parameters() {
+ echo "<vendor>"
+}
+
+do_update() {
+ [[ $# -eq 1 ]] && has "$1" ${!COMPILER_NAMES[@]} \
+ || die -q "1 argument required: eselect dlang update $(compiler_options)"
+
+ local targets=($(find_targets $1))
+ if [[ ${#targets[@]} -eq 0 ]]; then
+ # No compiler avalable, remove symlinks
+ echo "No installed ${COMPILER_NAMES[$1]} compilers. Removing any existing symlinks."
+ case $1 in
+ # Keep this in sync with `do_set`
+ dmd)
+ rm -f "${COMPILER_PATH}/dmd"
+ rm -f "${ETC_PATH}/dmd.conf"
+ rm -f "${INC_PATH}/dmd"
+ rm -f "${MAN1_PATH}/dmd.1"
+ rm -f "${MAN5_PATH}/dmd.conf.5"
+ ;;
+ ldc2)
+ rm -f "${COMPILER_PATH}/ldc2"
+ rm -f "${COMPILER_PATH}/ldmd2"
+ rm -f "${INC_PATH}/ldc"
+ ;;
+ esac
+ else
+ # Check if the active compiler is actually available, update otherwise
+ local compiler=$1
+ local active="$(do_show $compiler)"
+ local latest="${targets[$((${#targets[@]} - 1))]}"
+ local mode="$(load_config "$CONFIG_FILE" $compiler)"
+ if [[ "$active" == "" ]]; then
+ # First installation of a compiler
+ do_set $compiler auto
+ elif ! has "$active" "${targets[@]}"; then
+ # Active compiler is no longer valid (uninstalled), switch to "auto"
+ echo "Switching $1 from uninstalled version '$active' to '$latest'"
+ do_set $compiler auto
+ elif [[ "${mode:-auto}" == "auto" ]] && [[ "$active" != "$latest" ]]; then
+ # Active compiler was set to auto and we have a more recent version
+ echo "Updating active $1 version from '$active' to '$latest'"
+ do_set $compiler auto
+ fi
+ fi
+}
+
+
+### helper functions ###
+
+# Find a list of D versions
+find_targets() {
+ case "$1" in
+ dmd)
+ ls /usr/lib/dmd/?.???/bin/dmd 2> /dev/null | sed "s#^/usr/lib/dmd/##;s#/.*##"
+ ;;
+ ldc2)
+ ls -v /usr/lib/ldc2/?.*/bin/ldc2 2> /dev/null | sed "s#^/usr/lib/ldc2/##;s#/.*##"
+ ;;
+ *)
+ die "Unknown compiler '$1'"
+ esac
+}
+
+# Creates a symlink or prints a message and quits on error
+symlink_helper() {
+ local link="$(canonicalise "$1")"
+ ln -nfs "$link" "$2" || die -q "Couldn't symlink '$link' as '$2'!"
+}
+
+# Prints compilers as argument options <comp1|comp2|...>
+compiler_options() {
+ local additional=0
+ echo -n "<"
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ [[ $additional -eq 1 ]] && echo -n "|"
+ echo -n $compiler
+ additional=1
+ done
+ echo -n ">"
+}
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [gentoo-commits] repo/user/dlang:master commit in: app-eselect/eselect-dlang/, app-eselect/eselect-dlang/files/
@ 2024-11-08 14:56 Horodniceanu Andrei
0 siblings, 0 replies; 2+ messages in thread
From: Horodniceanu Andrei @ 2024-11-08 14:56 UTC (permalink / raw
To: gentoo-commits
commit: a189f4872dbf7c45b22eb6f3ba5758f434ce05a3
Author: Andrei Horodniceanu <a.horodniceanu <AT> proton <DOT> me>
AuthorDate: Tue Nov 5 10:19:25 2024 +0000
Commit: Horodniceanu Andrei <a.horodniceanu <AT> proton <DOT> me>
CommitDate: Tue Nov 5 11:08:39 2024 +0000
URL: https://gitweb.gentoo.org/repo/user/dlang.git/commit/?id=a189f487
app-eselect/eselect-dlang: add 20241105
Additional features:
- support dmd 9999
Signed-off-by: Andrei Horodniceanu <a.horodniceanu <AT> proton.me>
.../eselect-dlang/eselect-dlang-20241105.ebuild | 21 ++
.../eselect-dlang/files/dlang.eselect-20241105 | 242 +++++++++++++++++++++
2 files changed, 263 insertions(+)
diff --git a/app-eselect/eselect-dlang/eselect-dlang-20241105.ebuild b/app-eselect/eselect-dlang/eselect-dlang-20241105.ebuild
new file mode 100644
index 0000000..3ae4b9a
--- /dev/null
+++ b/app-eselect/eselect-dlang/eselect-dlang-20241105.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Eselect module for management of multiple D versions"
+HOMEPAGE="https://github.com/gentoo/dlang"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="app-admin/eselect"
+
+S="${FILESDIR}"
+
+src_install() {
+ insinto /usr/share/eselect/modules
+ newins dlang.eselect-${PV} dlang.eselect
+ keepdir /usr/include/dlang
+}
diff --git a/app-eselect/eselect-dlang/files/dlang.eselect-20241105 b/app-eselect/eselect-dlang/files/dlang.eselect-20241105
new file mode 100644
index 0000000..c75ca9d
--- /dev/null
+++ b/app-eselect/eselect-dlang/files/dlang.eselect-20241105
@@ -0,0 +1,242 @@
+# -*-eselect-*- vim: ft=eselect
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+inherit config
+
+DESCRIPTION="Manage D symlinks"
+MAINTAINER="marco.leise@gmx.de"
+VERSION="20241105"
+
+ETC_PATH="${EROOT}/etc"
+COMPILER_PATH="${EROOT}/usr/bin"
+MAN1_PATH="${EROOT}/usr/share/man/man1"
+MAN5_PATH="${EROOT}/usr/share/man/man5"
+INC_PATH="${EROOT}/usr/include/dlang"
+CONFIG_FILE="${EROOT}/var/lib/dlang"
+declare -A COMPILER_NAMES=([dmd]="Digital Mars D (dmd)"
+ [ldc2]="LLVM D2 (ldc2)")
+
+
+### list action ###
+
+describe_list() {
+ echo "List installed D compilers by vendor (or all installed compilers)"
+}
+
+describe_list_options() {
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ printf "% -11s : List installed %s compilers\n" $compiler "${COMPILER_NAMES[$compiler]}"
+ done
+}
+
+describe_list_parameters() {
+ echo "[<vendor>]"
+}
+
+do_list() {
+ [[ $# -eq 1 ]] && has "$1" ${!COMPILER_NAMES[@]} || [[ $# -eq 0 ]] \
+ || die -q "Syntax: eselect dlang list [$(compiler_options)]"
+
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ if [[ $# -eq 0 ]] || [[ $compiler == $1 ]]; then
+ write_list_start "Available ${COMPILER_NAMES[$compiler]} compilers:"
+ local targets=($(find_targets $compiler))
+ local active="$(do_show $compiler)"
+ local mode="$(load_config "$CONFIG_FILE" $compiler)"
+ for ((i = 0; i < ${#targets[@]}; i++)); do
+ if [[ "${targets[$i]}" == "$active" ]]; then
+ if [[ "${mode:-auto}" == "auto" ]]; then
+ targets[$i]="$(highlight_marker "${targets[$i]}" auto)"
+ else
+ targets[$i]="$(highlight_marker "${targets[$i]}" manual)"
+ fi
+ fi
+ done
+ write_numbered_list -m "(none found)" "${targets[@]}"
+ echo
+ fi
+ done
+}
+
+
+### set action ###
+
+describe_set() {
+ echo "Set active version of D compilers"
+}
+
+describe_set_options() {
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ printf "% -11s : Set active %s compiler\n" $compiler "${COMPILER_NAMES[$compiler]}"
+ done
+}
+
+describe_set_parameters() {
+ echo "<vendor>"
+}
+
+do_set() {
+ [[ $# -eq 2 ]] && has "$1" ${!COMPILER_NAMES[@]} \
+ || die -q "2 arguments required: eselect dlang set $(compiler_options) <version|index|\"auto\">"
+
+ local targets=($(find_targets $1))
+ local target="$2"
+ if [[ "$target" == "auto" ]]; then
+ local autoTarget="${targets[$((${#targets[@]} - 1))]}"
+ if [[ -n "${targets[$(($target - 1))]}" ]]; then
+ target="$autoTarget"
+ fi
+ elif is_number "$2" && [[ $2 -ge 1 ]]; then
+ local idxToTarget="${targets[$(($target - 1))]}"
+ if [[ -n "${targets[$(($target - 1))]}" ]]; then
+ target="$idxToTarget"
+ fi
+ fi
+
+ has "$target" "${targets[@]}" || die -q "Invalid or unavailable target"
+ if [[ "$2" == "auto" ]]; then
+ echo -n "Switching $1 to always latest version, currently $target..."
+ else
+ echo -n "Switching $1 to $target..."
+ fi
+
+ case $1 in
+ dmd)
+ symlink_helper "${EROOT}/usr/lib/dmd/${target}/bin/dmd" "${COMPILER_PATH}/dmd"
+ symlink_helper "${EROOT}/usr/lib/dmd/${target}/bin/dmd.conf" "${ETC_PATH}/dmd.conf"
+ symlink_helper "${EROOT}/usr/lib/dmd/${target}/import" "${INC_PATH}/dmd"
+ [[ -d ${MAN1_PATH} ]] && symlink_helper "/usr/lib/dmd/${target}/man/man1/dmd.1" "${MAN1_PATH}/dmd.1"
+ [[ -d ${MAN5_PATH} ]] && symlink_helper "/usr/lib/dmd/${target}/man/man5/dmd.conf.5" "${MAN5_PATH}/dmd.conf.5"
+ ;;
+ ldc2)
+ symlink_helper "${EROOT}/usr/lib/ldc2/${target}/bin/ldc2" "${COMPILER_PATH}/ldc2"
+ symlink_helper "${EROOT}/usr/lib/ldc2/${target}/bin/ldmd2" "${COMPILER_PATH}/ldmd2"
+ symlink_helper "${EROOT}/usr/lib/ldc2/${target}/include/d" "${INC_PATH}/ldc"
+ ;;
+ esac
+ store_config "$CONFIG_FILE" $1 "$2"
+
+ echo " done"
+}
+
+
+### show action ###
+
+describe_show() {
+ echo "Show active D compiler by vendor"
+}
+
+describe_show_options() {
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ printf "% -11s : Show active %s compiler\n" $compiler "${COMPILER_NAMES[$compiler]}"
+ done
+}
+
+describe_show_parameters() {
+ echo "<vendor>"
+}
+
+do_show() {
+ [[ $# -eq 1 ]] && has "$1" ${!COMPILER_NAMES[@]} \
+ || die -q "1 argument required: eselect dlang show $(compiler_options)"
+
+ local interpreter="$(readlink "${COMPILER_PATH}/$1" | sed -r "s#^/usr/lib(32|64)?/$1/##;s#/bin/$1\$##")"
+ [[ -n "$interpreter" ]] && echo "$interpreter"
+}
+
+
+### update action ###
+
+describe_update() {
+ echo "Update active D compilers to the latest installed version in absense of a manually set version"
+}
+
+describe_update_options() {
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ printf "% -11s : Update active %s compiler\n" $compiler "${COMPILER_NAMES[$compiler]}"
+ done
+}
+
+describe_update_parameters() {
+ echo "<vendor>"
+}
+
+do_update() {
+ [[ $# -eq 1 ]] && has "$1" ${!COMPILER_NAMES[@]} \
+ || die -q "1 argument required: eselect dlang update $(compiler_options)"
+
+ local targets=($(find_targets $1))
+ if [[ ${#targets[@]} -eq 0 ]]; then
+ # No compiler avalable, remove symlinks
+ echo "No installed ${COMPILER_NAMES[$1]} compilers. Removing any existing symlinks."
+ case $1 in
+ # Keep this in sync with `do_set`
+ dmd)
+ rm -f "${COMPILER_PATH}/dmd"
+ rm -f "${ETC_PATH}/dmd.conf"
+ rm -f "${INC_PATH}/dmd"
+ rm -f "${MAN1_PATH}/dmd.1"
+ rm -f "${MAN5_PATH}/dmd.conf.5"
+ ;;
+ ldc2)
+ rm -f "${COMPILER_PATH}/ldc2"
+ rm -f "${COMPILER_PATH}/ldmd2"
+ rm -f "${INC_PATH}/ldc"
+ ;;
+ esac
+ else
+ # Check if the active compiler is actually available, update otherwise
+ local compiler=$1
+ local active="$(do_show $compiler)"
+ local latest="${targets[$((${#targets[@]} - 1))]}"
+ local mode="$(load_config "$CONFIG_FILE" $compiler)"
+ if [[ "$active" == "" ]]; then
+ # First installation of a compiler
+ do_set $compiler auto
+ elif ! has "$active" "${targets[@]}"; then
+ # Active compiler is no longer valid (uninstalled), switch to "auto"
+ echo "Switching $1 from uninstalled version '$active' to '$latest'"
+ do_set $compiler auto
+ elif [[ "${mode:-auto}" == "auto" ]] && [[ "$active" != "$latest" ]]; then
+ # Active compiler was set to auto and we have a more recent version
+ echo "Updating active $1 version from '$active' to '$latest'"
+ do_set $compiler auto
+ fi
+ fi
+}
+
+
+### helper functions ###
+
+# Find a list of D versions
+find_targets() {
+ case "$1" in
+ dmd)
+ ls /usr/lib/dmd/*/bin/dmd 2> /dev/null | sed "s#^/usr/lib/dmd/##;s#/.*##"
+ ;;
+ ldc2)
+ ls -v /usr/lib/ldc2/?.*/bin/ldc2 2> /dev/null | sed "s#^/usr/lib/ldc2/##;s#/.*##"
+ ;;
+ *)
+ die "Unknown compiler '$1'"
+ esac
+}
+
+# Creates a symlink or prints a message and quits on error
+symlink_helper() {
+ local link="$(canonicalise "$1")"
+ ln -nfs "$link" "$2" || die -q "Couldn't symlink '$link' as '$2'!"
+}
+
+# Prints compilers as argument options <comp1|comp2|...>
+compiler_options() {
+ local additional=0
+ echo -n "<"
+ for compiler in ${!COMPILER_NAMES[@]}; do
+ [[ $additional -eq 1 ]] && echo -n "|"
+ echo -n $compiler
+ additional=1
+ done
+ echo -n ">"
+}
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-11-08 14:56 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-03 19:56 [gentoo-commits] repo/user/dlang:master commit in: app-eselect/eselect-dlang/, app-eselect/eselect-dlang/files/ Horodniceanu Andrei
-- strict thread matches above, loose matches on Subject: below --
2024-11-08 14:56 Horodniceanu Andrei
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox