Manjaro (Arch) - dotdevelop/dotdevelop GitHub Wiki
Manjaro is an Arch-based distribution, which is popular because its packages tend to be rather more stable and not quite so 'bleeding-edge' as the main Arch ones. A minimal xfce-desktop version has been used here.
Update all system packages before installing additional software
sudo pacman -Syu
Next, install the base-devel package group (which includes binutils, autoconf, automake, gcc, m4, makepkg, etc), plus cmake, clang and intltool
sudo pacman -S base-devel cmake clang intltool
NB git
is also needed, but is already included in the manjaro-xfce base system
The dotdevelop build process requires dotnet to be installed. Packages for dotnet are now available in the Official (community) repo, but other Sdks and runtimes may be found in the AUR. For dotnet to work you need to EXPLICITLY install:-
* ONE dotnet-host - highest version possible (Currently 7.0.100)
* ANY NUMBER of dotnet-runtimes (and their sdks afterwards if you want to build as well)
Currently (Dec 2022) dotdevelop will build with no errors with dotnet-sdk-5.0
installed. Some 'intermittent' errors occur with dotnet-sdk-6.0
and dotnet-sdk-7.0
. (See notes at end)
The Official (community) repo now includes dotnet-sdk-6.0
, whereas dotnet-sdk-5.0-bin
and dotnet-sdk-3.1-bin
are only available from the AUR.
Check :- dotnet --info
(typically) reports
.NET SDK (reflecting any global.json):
Version: 6.0.111
Commit: b3bb659a9d
Runtime Environment:
OS Name: manjaro
OS Version:
OS Platform: Linux
RID: arch-x64
Base Path: /usr/share/dotnet/sdk/6.0.111/
Host:
Version: 7.0.0
Architecture: x64
Commit: d099f075e4
.NET SDKs installed:
3.1.412 [/usr/share/dotnet/sdk]
5.0.400 [/usr/share/dotnet/sdk]
6.0.111 [/usr/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.NETCore.App 3.1.18 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.9 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.11 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
DOTNET_ROOT [/usr/share/dotnet]
global.json file:
Not found
Other necessary packages are now becoming available in the Official (community) repositories, whereas they have previously been available only in the AUR. They are listed separately below.
Official (community) Packages
Install mono-msbuild
and mono-msbuild-sdkresolver
. This also installs the Roslyn compiler (needed by the dotdevelop build scripts) into /usr/lib/mono/msbuild/Current/bin/Roslyn
Check:- mono --version
reports
Mono JIT compiler version 6.12.0 (main/4b5e2591eb2 Thu 14 Apr 15:51:51 UTC 2022)
Copyright (C) Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
msbuild --version
reports
Microsoft (R) Build Engine version 16.10.1 for Mono
Copyright (C) Microsoft Corporation. All rights reserved.
AUR Packages
python2
is required to build some of the following. The easiest way to install this is from python2-bin
The legacy Mono F# Compiler (currently at version 5.0) is available from fsharp-mono-bin
libglade
, needed for glade-sharp
, is available from libglade.git
The 'Stetic' Addin requires glade-sharp
to be installed, and this is included in gtk-sharp-2-git
.
This should be all that is required to build DotDevelop, so, for a 'clean' download from GitHub and
a build of the current main
branch of dotdevelop, run the following script from a convenient directory
#!/bin/sh
rm -R -f dotdevelop
git clone https://github.com/dotdevelop/dotdevelop.git
cd dotdevelop
./configure --profile=gnome
make
This builds with no errors (on dotnet-sdk-5.0
), and dotdevelop can be run from the MonoDevelop.exe binary that is produced.
mono dotdevelop/main/build/bin/MonoDevelop.exe --no-redirect
SamsungNetCore Debugger
The .NET Core Debugger is not included in the above build, but is needed for debugging .NETCore projects. Building the DotDevelop version from main/external/Samsung.Netcoredbg/
currently fails under Arch for 2 reasons
- no ICU package can be found (why this is so is currently being investigated)
- compile errors (possibly because
clang
is at version 14.0.6, rather than version 10.0.0 which works under Ubuntu)
However, the latest release (https://github.com/Samsung/netcoredbg/releases/tag/2.2.0-947) works. Download, extract and copy the contents of the netcoredbg
folder to main/build/AddIns/Samsung.Netcoredbg/netcoredbg
To run without an ICU package being found set environment variable DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
Verify .NET Core Debugger is attached
- Launch MonoDevelop
- Edit > Preferences > Projects > .NET Core Debuggers
- Click
...
and navigate tomain/build/AddIns/Samsung.Netcoredbg/netcoredbg
- Click, OK and start debugging
Running DotDevelop with .NET6.0+ installed
With dotnet-sdk-6.0+ installed, the following error occurs:-
"MSB4236 WorkloadAutoImportPropsLocator could not be found".
This is described by this issue with the following workaround:-
Set the environment variable MSBuildEnableWorkloadResolver=false
prior to starting monodevelop (Note - this applies to all distros, not just Arch)
'Intermittent' Build errors with .NET6.0+ installed (Arch only)
The following errors (or similar) occur when building with net6.0+
installed
error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies.
[/home/hwt/build/dd-hwt/main/external/xwt/Xwt/Xwt.csproj]
error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies.
[/home/hwt/build/dd-dbug/main/external/Xamarin.PropertyEditing/Xamarin.PropertyEditing/Xamarin.PropertyEditing.csproj]
Repeating the build usually reduces the errors from 2 to 1, and a further build is then without error. Because of time constraints, this has not been explored further.