Apache logging services logo

Release verification

Releases of log4net can be verified with following steps:

  • Windows (PowerShell)
    1. Prerequisites (winget - in case of problems see next section choco)
      winget install -e --id GnuPG.Gpg4win
      winget install -e --id TortoiseSVN.TortoiseSVN  # or any other subversion client
      winget install -e --id Mono.Mono
      winget install -e --id Microsoft.DotNet.SDK.8

      After installation, verify that gpg and svn are in the path and add them when not.

    2. Prerequisites (choco - only in case of problems with winget)
      Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
      choco install gpg4win
      choco install tortoisesvn  # or any other subversion client
      choco install mono
      choco install dotnet-8.0-sdk
    3. Check out the release distribution
      svn co https://dist.apache.org/repos/dist/dev/logging/log4net/{releaseVersion} log4net-{releaseVersion}
      pushd log4net-{releaseVersion}
    4. Verify and extract
      & ./verify-release.ps1
    5. switch to the directory where you extracted the sources (in case you didn't use verify-release.ps1)
    6. Verify the build
      dotnet test ./src/log4net.sln
  • Linux
    1. Check out the release distribution

      svn co https://dist.apache.org/repos/dist/dev/logging/log4net/{releaseVersion} log4net-{releaseVersion} && cd $_
    2. Verify checksums

      sha512sum --check *.sha512
    3. Import the release manager GPG keys, unless you haven’t earlier done so

      wget -O - https://downloads.apache.org/logging/KEYS | gpg --import
    4. Verify signatures

      for sigFile in *.asc; do gpg --verify $sigFile; done
    5. Extract sources

      umask 0022
      unzip -q *-src.zip -d src
      cd src
    6. Verify the build

      • install docker (if you haven't already)
      • docker build -t log4net-builder .
        docker run -it log4net-builder
        # this will
        # - install all dependencies in the container
        # - build src/log4net.sln
        # inside the container run
        dotnet test /logging-log4net/src/log4net.sln