Admin message

Due to an influx of spam, we have had to require each new account to be manually approved. Please register an account and then write an email to accountsupport@archlinux.org to get it approved. Sorry for the inconvenience.

makepkg corrupts .NET self-contained/ single-file applications in pacman 6.1.0-3
Greetings, in pacman 6.1.0-3, makepkg corrupts [.NET 8.0 self-contained/ single-file applications](https://learn.microsoft.com/en-us/dotnet/core/deploying/single-file/overview). The compiled file present in the final `.pkg.tar.zst` is much **smaller than the original one**, and it appears that makepkg strips-away parts of the dotnet application. # Minimal reproduction of the issue The issue can be re-produced by creating a minimal .NET console application (with `dotnet-sdk` installed), publishing it as a self-contained sile-file application, packing it as a `.tar.gz`, and creating a package: ```bash #Install .NET SDK sudo pacman -S dotnet-sdk #Create console application mkdir PacmanRepro cd PacmanRepro dotnet new console #Publish self-contained single-file application and pack dotnet publish . --output Publish/ --configuration Release --self-contained true -p:PublishSingleFile=true pushd Publish/ tar -czf ../pacman-repro.tar.gz . popd #Create minimal PKGBUILD tee PKGBUILD >/dev/null << __EOF__ pkgname="pacman-repro" pkgver="1.0.0" pkgrel="1" arch=("x86_64") options=("!strip") source=("pacman-repro.tar.gz") sha512sums=("SKIP") package() { rm \${srcdir}/\$source mkdir -p \${pkgdir}/opt/pacman-repro/ cp -r \${srcdir}/* \${pkgdir}/opt/pacman-repro/ } __EOF__ #Create package makepkg -dsc CARCH="x86_64" Version="1.0.0" ``` > Note: since these single-file applications contain dependencies such as the framework, it is necessary to specify the option `options=("!strip")` in `PKGBUILD`. # Observations - The `/opt/pacman-repro/PacmanRepro` file in the `.pkg.tar.zst` is much smaller than the one in `pacman-repro.tar.gz`, despite the `!strip` option - Running the same with `pacman 6.0.2-9` does not corrupt the file - Specifying the options `options=("!strip" "!debug")` in `PKGBUILD` also does not corrupt the file, it looks like with the default `debug` enabled, the file is actually stripped even with `!strip` specified PS: for easier repro without having to install .NET, please find attached a pre-compiled [pacman-repro.tar.gz](/uploads/9e3cc6cce9da0dd126d511cd76f3e54d/pacman-repro.tar.gz) here, so that the first few steps above can be skipped. Keep up the great work and all the best
issue