Dotnet packages outdated and AUR builds broken

Hello my fellow Manjaroers,

I’m a .NET C# developer and wanted to install the latest .NET SDK and runtime on my Manjaro machine. But sadly it does not work as I would want it to be.

My original problem is that the official packages “dotnet-runtime”, “dotnet-sdk” and some others are all outdated by several versions. This leads me to the “-bin” versions from the AUR.

All of these AUR packages have problems to install on my machine. Let’s take the “dotnet-runtime-bin” package as an example next. When I try to install this package with the software installation utility, I get this error:

Preparing...
Checking dotnet-runtime-bin dependencies...
Checking dotnet-host-bin dependencies...
Checking dotnet-host-preview-bin dependencies...
Resolving dependencies...
Checking inter-conflicts...

Building dotnet-core-bin...
==> ERROR: PKGBUILD does not exist.

And I cannot proceed. I had an older version of this AUR package installed previously but I couldn’t update it. So I removed it and now I cannot install it at all.

Can I do something that will fix this error? I can install and update other packages (also from the AUR) perfectly fine.

Thank you in advance for your help

The PKGBUILD exists. dotnet-core-bin is the pkgbase, not an actual package:

pkgbase=dotnet-core-bin
pkgname=(
  'dotnet-host-bin'
  'aspnet-runtime-bin'
  'dotnet-runtime-bin'
  'dotnet-sdk-bin'
  'netstandard-targeting-pack-bin'
  'dotnet-targeting-pack-bin'
  'aspnet-targeting-pack-bin'
 )

Perhaps try yay instead of pamac. Also make sure you have the required tools for using the AUR:

sudo pacman -Syu --needed base-devel git yay

Howdy :raised_hand:

I use the following recipe once.

sudo pacman -Syu base-devel --needed
git clone dotnet-core-bin
cd dotnet-core-bin
makepkg -is

Then I maintain the PKGBUILD myself (the maintainer is not always up-to-date on the releases)

The lines to pay attention to

pkgver=6.0.6.sdk301
_runtimever=6.0.6
_sdkver=6.0.301

And you need the direct links provided when you click download on Download .NET 6.0 (Linux, macOS, and Windows)

Paste the link(s) into the relevant source_* variable in the PKGBUILD.

You can do the same with the checksums - then you can skip the updpkgsums command

updpkgsums

When you have changed the version numbers and source locations run

makepkg -is

@linux-aarhus Thank you for your solution. Directly cloning and using makepkg directly worked. The versions in the PKGBUILD file were correct already. But I’m confused. I thought that the Add/Remove Software utility does exactly the same behind the scenes, doesn’t it?

So I assume this a bug in the Add/Remove Software utility, which I should report, is that correct? Or am I missing something?

P.S.: Is it possible for me to update the official main package so people don’t have to deal with either an outdated version or the AUR builds in the first place? Or can only the maintainer person do that?

No it is not.

A pkgbase cannot be installed - it is an identifier for a collection of packages logically belonging together and as it is in this case there is a dependency between the packages.

Only the maintainer (and possible co-maintainers) of the AUR buildscript can update the buildscript.

An AUR buildscript and the resulting package is unsupported.

@linux-aarhus Thank you again for the explanation. So the pkgbase is just a meta package, which points to other packages. That’s the reason why it installed a bunch of other packages without them being a dependency to this package. It still puzzles me though, that I can build it by myself, but can’t build it with pamac. I want to check what’s wrong here on my machine. Perhaps I need to fix up permissions of a folder or something like that, so pamac finds the PKGBUILD as well.

Do you have documentation/information about the AUR and pamac’s AUR part to recommend, so I can read myself a little deeper into these thematics?

Note: I know that the AUR buildscripts are unsupported by Manjaro, but it is at the same time a very important feature I need to use. Using the pamac GUI instead of CLI tools for searching and building AUR scripts is very convenient and user friendly, in my opinion and my preferrable way of installing and updating my system.

No. It is a description which contains instructions to build other packages which is closely related but necessarily needed for a given functionality - thus you can install a subset of the packages created the buildscript.

PACKAGE SPLITTING

makepkg supports building multiple packages from a single PKGBUILD. This is achieved by assigning an array of package names to the pkgname directive. Each split package uses a corresponding packaging function with name package_foo(), where foo is the name of the split package.

All options and directives for the split packages default to the global values given in the PKGBUILD. Nevertheless, the following ones can be overridden within each split package’s packaging function: pkgdesc, arch, url, license, groups, depends, optdepends, provides, conflicts, replaces, backup, options, install, and changelog.

Note that makepkg does not consider split package depends when checking if dependencies are installed before package building and with --syncdeps. All packages required to make the package are required to be specified in the global depends and makedepends arrays.

An optional global directive is available when building a split package:

pkgbase
The name used to refer to the group of packages in the output of makepkg and in the naming of source-only tarballs. If not specified, the first element in the pkgname array is used. Valid characters for this variable are alphanumerics, and any of the following characters: “@ . _ + -”. Additionally, the variable is not allowed to start with hyphens or dots.

PKGBUILD(5) — Arch manual pages

A meta package is very different as it does not contain any build information - it is a convenience package so you don’t have to specify which packages are needed.

So dotnet-core-bin is not a meta package but a build package which wraps and builds several packages and in this case - with internal dependencies which would not be available otherwise.

The ultimate information source is Arch package guidelines - ArchWiki

1 Like

I’d say it’s a missing feature. :wink:
yay actually can deal with split packages.

For everyone else that has the same problem: I managed to make it work again with the Add/Remove Software utility (pamac) by enabling the option Preferences > Third party > “Check for development packages updates”. Note that I already had the option “Check for updates” active. I also cleaned the build directory with the Clean button there.

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.