Author: freeandnil
Date: Tue Aug 18 20:42:21 2026
New Revision: 86864
Log:
log4net 3.4.0
Added:
dev/logging/log4net/3.4.0/
dev/logging/log4net/3.4.0/apache-log4net-binaries-3.4.0.zip (contents,
props changed)
dev/logging/log4net/3.4.0/apache-log4net-binaries-3.4.0.zip.asc (contents,
props changed)
dev/logging/log4net/3.4.0/apache-log4net-binaries-3.4.0.zip.sha512
(contents, props changed)
dev/logging/log4net/3.4.0/apache-log4net-source-3.4.0.zip (contents, props
changed)
dev/logging/log4net/3.4.0/apache-log4net-source-3.4.0.zip.asc (contents,
props changed)
dev/logging/log4net/3.4.0/apache-log4net-source-3.4.0.zip.sha512
(contents, props changed)
dev/logging/log4net/3.4.0/apache-log4net.3.4.0.nupkg (contents, props
changed)
dev/logging/log4net/3.4.0/apache-log4net.3.4.0.nupkg.asc (contents, props
changed)
dev/logging/log4net/3.4.0/apache-log4net.3.4.0.nupkg.sha512 (contents,
props changed)
dev/logging/log4net/3.4.0/apache-log4net.Ext.Mail.3.4.0.nupkg (contents,
props changed)
dev/logging/log4net/3.4.0/apache-log4net.Ext.Mail.3.4.0.nupkg.asc
(contents, props changed)
dev/logging/log4net/3.4.0/apache-log4net.Ext.Mail.3.4.0.nupkg.sha512
(contents, props changed)
dev/logging/log4net/3.4.0/verify-release.ps1 (contents, props changed)
dev/logging/log4net/3.4.0/verify-release.ps1.asc (contents, props changed)
dev/logging/log4net/3.4.0/verify-release.ps1.sha512 (contents, props
changed)
dev/logging/log4net/3.4.0/verify-release.sh (contents, props changed)
dev/logging/log4net/3.4.0/verify-release.sh.asc (contents, props changed)
dev/logging/log4net/3.4.0/verify-release.sh.sha512 (contents, props
changed)
Deleted:
dev/logging/log4net/3.3.2/
Added: dev/logging/log4net/3.4.0/apache-log4net-binaries-3.4.0.zip
==============================================================================
Binary file. No diff available.
Added: dev/logging/log4net/3.4.0/apache-log4net-binaries-3.4.0.zip.asc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/apache-log4net-binaries-3.4.0.zip.asc Tue Aug
18 20:42:21 2026 (r86864)
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQR9JElqIw4p1jSame9YPkkVePAtXQUCaoS/qwAKCRBYPkkVePAt
+XT29AP9+hhU5zbvQdEnq3uODjZt/vdwlGqfIw1kG5Z1hosop3gD6AhtHbK7jkBVI
+kb8TcAQL6WthXjlxbvBKEaEQISqKKQc=
+=TFml
+-----END PGP SIGNATURE-----
Added: dev/logging/log4net/3.4.0/apache-log4net-binaries-3.4.0.zip.sha512
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/apache-log4net-binaries-3.4.0.zip.sha512 Tue Aug
18 20:42:21 2026 (r86864)
@@ -0,0 +1 @@
+20caea6b37e6ee1975f8161f5041a9513ebe3ed603e388033b79499d7db55ea4b15981fe2cb1a561436e5160ca294a504a55d32fafb04b725b739fccdfab8a32
*./apache-log4net-binaries-3.4.0.zip
Added: dev/logging/log4net/3.4.0/apache-log4net-source-3.4.0.zip
==============================================================================
Binary file. No diff available.
Added: dev/logging/log4net/3.4.0/apache-log4net-source-3.4.0.zip.asc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/apache-log4net-source-3.4.0.zip.asc Tue Aug
18 20:42:21 2026 (r86864)
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQR9JElqIw4p1jSame9YPkkVePAtXQUCaoS/qwAKCRBYPkkVePAt
+XUWeAPkBQEpAzO1FUfHpReor9ucBn9697kUwyjLwv4wZPmI9+AD+OD2+iptOTny7
+BMggM7zWVogAlRJqjv5YpzAynTHuZwY=
+=/oPz
+-----END PGP SIGNATURE-----
Added: dev/logging/log4net/3.4.0/apache-log4net-source-3.4.0.zip.sha512
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/apache-log4net-source-3.4.0.zip.sha512 Tue Aug
18 20:42:21 2026 (r86864)
@@ -0,0 +1 @@
+f8bea5ef4715632052195f52eb382c44879193476bce5be88b0828459e7f661f6baf8781c4f366ea22373e360202e7b7bb4f70c0dce7e2b5987a33f54a1f8977
*./apache-log4net-source-3.4.0.zip
Added: dev/logging/log4net/3.4.0/apache-log4net.3.4.0.nupkg
==============================================================================
Binary file. No diff available.
Added: dev/logging/log4net/3.4.0/apache-log4net.3.4.0.nupkg.asc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/apache-log4net.3.4.0.nupkg.asc Tue Aug 18
20:42:21 2026 (r86864)
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQR9JElqIw4p1jSame9YPkkVePAtXQUCaoS/qQAKCRBYPkkVePAt
+XTYJAP4pHIU7Krf8337fozL8FYWhNQFAJeUso84LrwsfXdOp/QEAhqjT14+d7tgs
+IJ1EiwPDchSrMuMfkvvI0ZSeyNY7gA0=
+=9Cpc
+-----END PGP SIGNATURE-----
Added: dev/logging/log4net/3.4.0/apache-log4net.3.4.0.nupkg.sha512
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/apache-log4net.3.4.0.nupkg.sha512 Tue Aug 18
20:42:21 2026 (r86864)
@@ -0,0 +1 @@
+22e6d8975977bece2967c8512415a37cf396f28b11d604bf140c1e558a5cda7ed2674cab67ae2e3064188e3b759e76bf1e99b5d081e2c380fa1d287f2456e3f7
*./apache-log4net.3.4.0.nupkg
Added: dev/logging/log4net/3.4.0/apache-log4net.Ext.Mail.3.4.0.nupkg
==============================================================================
Binary file. No diff available.
Added: dev/logging/log4net/3.4.0/apache-log4net.Ext.Mail.3.4.0.nupkg.asc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/apache-log4net.Ext.Mail.3.4.0.nupkg.asc Tue Aug
18 20:42:21 2026 (r86864)
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQR9JElqIw4p1jSame9YPkkVePAtXQUCaoS/qgAKCRBYPkkVePAt
+XW7zAP9Mrrt3vaAF8K3hD+rNKgPtuFyJREGzkE+k6gsqiiW/WwD/abTnzOiU0NmR
+v9J23NbBf30ofKz+2rhvzPR1oWTylwE=
+=sACO
+-----END PGP SIGNATURE-----
Added: dev/logging/log4net/3.4.0/apache-log4net.Ext.Mail.3.4.0.nupkg.sha512
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/apache-log4net.Ext.Mail.3.4.0.nupkg.sha512
Tue Aug 18 20:42:21 2026 (r86864)
@@ -0,0 +1 @@
+f294fc0cecf8684fde30f570a4c533f49bf35a48583d85efa1be56ffcb9c064cff8ed526f87f8e4d2b26bbbbf28d84408c7d4572f1bdee9d9da0fc2073584941
*./apache-log4net.Ext.Mail.3.4.0.nupkg
Added: dev/logging/log4net/3.4.0/verify-release.ps1
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/verify-release.ps1 Tue Aug 18 20:42:21
2026 (r86864)
@@ -0,0 +1,87 @@
+Param (
+ [Parameter()]
+ [System.IO.DirectoryInfo]$Directory
+)
+
+Set-StrictMode -Version Latest
+$ErrorActionPreference = 'Stop'
+# $ErrorActionPreference alone does not apply to native commands: gpg only
sets $LASTEXITCODE, so
+# without this a failed signature check would still reach the extraction at
the end and the script
+# would exit 0. Requires PowerShell 7.3+.
+$PSNativeCommandUseErrorActionPreference = $true
+
+if (!$Directory)
+{
+ $Directory = $PSScriptRoot
+}
+
+function Assert-Hash
+{
+ param
+ (
+ [Parameter(Mandatory=$true, HelpMessage='The artifact to check.')]
+ [System.IO.FileInfo]$File
+ )
+
+ $HashFile = "$($File.FullName).sha512"
+ if (!(Test-Path $HashFile))
+ {
+ throw "$($File.Name): no $($File.Name).sha512 to check it against"
+ }
+
+ $Hash = (@(Get-Content $HashFile)[0] -split
'\s+')[0].Trim().ToUpperInvariant()
+ $ComputedHash = (Get-FileHash -Algorithm 'SHA512'
$File.FullName).Hash.ToUpperInvariant()
+ if ($Hash -ne $ComputedHash)
+ {
+ throw "$($File.Name): SHA-512 mismatch, read $Hash but computed
$ComputedHash"
+ }
+
+ "$($File.Name): hash ok"
+}
+
+# Everything that is not a hash, a signature or the key file has to be covered
by both. Driving the
+# checks from the artifacts, rather than from the .sha512 and .asc files that
happen to be present,
+# is what turns a missing signature into a failure instead of one loop
iteration fewer.
+$Artifacts = @(Get-ChildItem $Directory -File |
+ Where-Object { $_.Extension -notin '.asc', '.sha512' -and $_.Name -ne 'KEYS'
})
+
+if ($Artifacts.Count -eq 0)
+{
+ throw "No artifacts to verify in $Directory"
+}
+
+foreach ($Artifact in $Artifacts)
+{
+ Assert-Hash $Artifact
+}
+
+Invoke-WebRequest https://downloads.apache.org/logging/KEYS -OutFile
$Directory/KEYS
+
+# A key ring of its own, holding only the downloaded KEYS. Importing into the
default key ring
+# would accept a signature from any key this machine already has, not only
from a key in the
+# Logging Services KEYS file.
+$KeyringDirectory = New-Item -ItemType Directory -Path (Join-Path
([System.IO.Path]::GetTempPath()) ([guid]::NewGuid()))
+try
+{
+ $Keyring = Join-Path $KeyringDirectory 'logging-keys.gpg'
+ gpg --no-default-keyring --keyring $Keyring --batch --quiet --import
$Directory/KEYS
+
+ foreach ($Artifact in $Artifacts)
+ {
+ $Signature = "$($Artifact.FullName).asc"
+ if (!(Test-Path $Signature))
+ {
+ throw "$($Artifact.Name): no $($Artifact.Name).asc to verify it with"
+ }
+
+ gpg --no-default-keyring --keyring $Keyring --batch --verify $Signature
$Artifact.FullName
+ "$($Artifact.Name): signature ok"
+ }
+}
+finally
+{
+ Remove-Item $KeyringDirectory -Recurse -Force -ErrorAction SilentlyContinue
+}
+
+Expand-Archive $Directory/*source*.zip -DestinationPath $Directory/src
+pushd "$Directory/src/"
Added: dev/logging/log4net/3.4.0/verify-release.ps1.asc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/verify-release.ps1.asc Tue Aug 18 20:42:21
2026 (r86864)
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQR9JElqIw4p1jSame9YPkkVePAtXQUCaoS/qwAKCRBYPkkVePAt
+XXL5AQCg+g8ual+UyYNQgLr3BvDVdLFhPdvJq6+EP8TIyFzfmQEA+bzizcQOJlgv
+VGvLj9NoRPvYafSlbwl7mKCQY9VtZgc=
+=Nz3h
+-----END PGP SIGNATURE-----
Added: dev/logging/log4net/3.4.0/verify-release.ps1.sha512
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/verify-release.ps1.sha512 Tue Aug 18 20:42:21
2026 (r86864)
@@ -0,0 +1 @@
+27296848d8136b5eb784535ebb7f72e4760ac497c95dee99345885cc7db4cde43d711b0eba81c5e192cb45045ae55708923e3b916c109e70b611cc249c85b6d8
*./verify-release.ps1
Added: dev/logging/log4net/3.4.0/verify-release.sh
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/verify-release.sh Tue Aug 18 20:42:21 2026
(r86864)
@@ -0,0 +1,62 @@
+#!/bin/bash
+set -euo pipefail
+
+if ! which unzip >/dev/null 2>&1; then
+ echo "The 'unzip' utility is required, but was not found in your path" >&2
+ exit 1
+fi
+
+TARGET_DIR="${1:-}"
+if test -z "$TARGET_DIR"; then
+ TARGET_DIR="$(pwd)"
+fi
+cd "$TARGET_DIR"
+
+# Everything that is not a hash, a signature or the key file has to be covered
by both. Driving the
+# checks from the artifacts, rather than from the .sha512 and .asc files that
happen to be present,
+# is what turns a missing signature into a failure instead of one loop
iteration fewer.
+shopt -s nullglob
+artifacts=()
+for file in *; do
+ case "$file" in
+ *.asc|*.sha512|KEYS) continue ;;
+ esac
+ test -f "$file" || continue
+ artifacts+=("$file")
+done
+
+if test ${#artifacts[@]} -eq 0; then
+ echo "No artifacts to verify in $TARGET_DIR" >&2
+ exit 1
+fi
+
+for file in "${artifacts[@]}"; do
+ if test ! -f "$file.sha512"; then
+ echo "$file: no $file.sha512 to check it against" >&2
+ exit 1
+ fi
+ sha512sum --check "$file.sha512"
+done
+
+wget https://downloads.apache.org/logging/KEYS
+
+# A key ring of its own, holding only the downloaded KEYS. Importing into the
default key ring
+# would accept a signature from any key this machine already has, not only
from a key in the
+# Logging Services KEYS file.
+keyring_dir="$(mktemp -d)"
+trap 'rm -rf "$keyring_dir"' EXIT
+gpg --no-default-keyring --keyring "$keyring_dir/logging-keys.gpg" --batch
--quiet --import KEYS
+
+for file in "${artifacts[@]}"; do
+ if test ! -f "$file.asc"; then
+ echo "$file: no $file.asc to verify it with" >&2
+ exit 1
+ fi
+ gpg --no-default-keyring --keyring "$keyring_dir/logging-keys.gpg" --batch
--verify "$file.asc" "$file"
+done
+
+mkdir -p src
+cd src
+unzip -q -o ../*source*.zip
+
+cd src
Added: dev/logging/log4net/3.4.0/verify-release.sh.asc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/verify-release.sh.asc Tue Aug 18 20:42:21
2026 (r86864)
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQR9JElqIw4p1jSame9YPkkVePAtXQUCaoS/qwAKCRBYPkkVePAt
+XUppAP9dK9q+Xg66x2wycLnFZDBZ5Ok8rmvvRfdLBnfUXtAUIwEA6z3WGxkYh96S
+Ew61ol/02KJn2om2LiIgPAi1fBMNyQU=
+=pZ+J
+-----END PGP SIGNATURE-----
Added: dev/logging/log4net/3.4.0/verify-release.sh.sha512
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dev/logging/log4net/3.4.0/verify-release.sh.sha512 Tue Aug 18 20:42:21
2026 (r86864)
@@ -0,0 +1 @@
+5451c252cf5a7cffdb72dfbc3ea959adfe94cc233ec1b819f5969e9dde86d50e9f1acc88eb911578f48fc4279d9ed6b09e6792b710883e763f24f0a261ab8324
*./verify-release.sh