New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compile errors on Arch #3361
Comments
This looks like a problem with the Mono/msbuild installation, not on our side. |
I am on mono-msbuild. Is there any other way I could try to install this
package then?
Best,
*Neev Parikh*
ScB. Computer Science
Brown University
…On Sun, May 9, 2021 at 5:26 PM DasSkelett ***@***.***> wrote:
This looks like a problem with the Mono/msbuild installation, not on our
side.
I know there were problems with msbuild in the past. Some users on the AUR
page reported having problems with msbuild-stable that switching to
mono-msbuild fixed. Can you try that?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#3361 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AJ2GJYCH54XKJT4CEQEJBSLTM34ZNANCNFSM44PTIRHQ>
.
|
Yes, see https://github.com/KSP-CKAN/CKAN/wiki/Installing-CKAN-on-Arch#manual-install |
@neevparikh can confirm whether running the pre-built binary worked? |
have not had a chance to try it yet. I'll report back
Best,
*Neev Parikh*
ScB. Computer Science
Brown University
…On Thu, May 13, 2021 at 7:01 AM DasSkelett ***@***.***> wrote:
@neevparikh <https://github.com/neevparikh> can confirm whether running
the pre-built binary worked?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#3361 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AJ2GJYHW6GTFMXX4WZDMSZDTNOWPHANCNFSM44PTIRHQ>
.
|
yeah that works! I wish I could install it via the AUR. Any tips on what to do to get that working? |
Unfortunately not, no. That error message looks like Arch's Mono or msbuild packages are installed incorrectly/incomplete/broken. You could also write a comment on the AUR page and ask if someone else encountered this and was able to fix it. |
Yeah thanks I'll follow up on that! Thanks guys! |
As a current user of Ubuntu and a former user of Debian, Red Hat, Gentoo, FreeBSD, and maybe some others that I've forgotten, I have decided to spin up an Arch Linux virtual machine and see if I can figure out what's going on with it. Secondary goal is to flesh out the "Installing CKAN on Arch" wiki page so that it actually explains how to install CKAN on Arch. Re-opening and self-assigning this because it would be weird to post investigation notes in a closed issue, and because the error that I got matches this one and not the one from #3378. Strictly speaking, closing this issue was still the right decision because the available evidence strongly indicates this is a problem with Arch, not CKAN, but maybe some aggressive digging can pinpoint what the problem with Arch is and identify some solutions that we can send their way to help out our users. Maybe the "Invalid" tag is a good way to indicate that. |
First, an attempt to understand the error message. It mentions three files, which I will reference by their names rather than full paths:
All three of these files exist in the Line 2198 of Microsoft.Common.CurrentVersion.targets looks like this: <ResolveAssemblyReference
Assemblies="@(Reference)"
AssemblyFiles="@(_ResolvedProjectReferencePaths);@(_ExplicitReference)"
TargetFrameworkDirectories="@(_ReferenceInstalledAssemblyDirectory)"
InstalledAssemblyTables="@(InstalledAssemblyTables);@(RedistList)"
IgnoreDefaultInstalledAssemblyTables="$(IgnoreDefaultInstalledAssemblyTables)"
IgnoreDefaultInstalledAssemblySubsetTables="$(IgnoreInstalledAssemblySubsetTables)"
CandidateAssemblyFiles="@(Content);@(None)"
SearchPaths="$(AssemblySearchPaths)"
AllowedAssemblyExtensions="$(AllowedReferenceAssemblyFileExtensions)"
AllowedRelatedFileExtensions="$(AllowedReferenceRelatedFileExtensions)"
TargetProcessorArchitecture="$(ProcessorArchitecture)"
AppConfigFile="@(_ResolveAssemblyReferencesApplicationConfigFileForExes)"
AutoUnify="$(AutoUnifyAssemblyReferences)"
SupportsBindingRedirectGeneration="$(GenerateBindingRedirectsOutputType)"
IgnoreVersionForFrameworkReferences="$(IgnoreVersionForFrameworkReferences)"
FindDependencies="$(_FindDependencies)"
FindSatellites="$(ResolveAssemblyReferencesFindRelatedSatellites)"
FindSerializationAssemblies="$(ResolveAssemblyReferencesFindSerializationAssemblies)"
FindRelatedFiles="$(ResolveAssemblyReferencesFindRelatedFiles)"
Silent="$(ResolveAssemblyReferencesSilent)"
TargetFrameworkVersion="$(TargetFrameworkVersion)"
TargetFrameworkMoniker="$(TargetFrameworkMoniker)"
TargetFrameworkMonikerDisplayName="$(TargetFrameworkMonikerDisplayName)"
TargetedRuntimeVersion="$(TargetedRuntimeVersion)"
StateFile="$(ResolveAssemblyReferencesStateFile)"
InstalledAssemblySubsetTables="@(InstalledAssemblySubsetTables)"
TargetFrameworkSubsets="@(_ReferenceInstalledAssemblySubsets)"
FullTargetFrameworkSubsetNames="$(FullReferenceAssemblyNames)"
FullFrameworkFolders="$(_FullFrameworkReferenceAssemblyPaths)"
FullFrameworkAssemblyTables="@(FullFrameworkAssemblyTables)"
ProfileName="$(TargetFrameworkProfile)"
LatestTargetFrameworkDirectories="@(LatestTargetFrameworkDirectories)"
CopyLocalDependenciesWhenParentReferenceInGac="$(CopyLocalDependenciesWhenParentReferenceInGac)"
DoNotCopyLocalIfInGac="$(DoNotCopyLocalIfInGac)"
ResolvedSDKReferences="@(ResolvedSDKReference)"
WarnOrErrorOnTargetArchitectureMismatch="$(ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch)"
IgnoreTargetFrameworkAttributeVersionMismatch ="$(ResolveAssemblyReferenceIgnoreTargetFrameworkAttributeVersionMismatch)"
FindDependenciesOfExternallyResolvedReferences="$(FindDependenciesOfExternallyResolvedReferences)"
ContinueOnError="$(ContinueOnError)"
OutputUnresolvedAssemblyConflicts="$(ResolveAssemblyReferenceOutputUnresolvedAssemblyConflicts)"
Condition="'@(Reference)'!='' or '@(_ResolvedProjectReferencePaths)'!='' or '@(_ExplicitReference)' != ''"
>
<Output TaskParameter="ResolvedFiles" ItemName="ReferencePath"/>
<Output TaskParameter="ResolvedFiles" ItemName="_ResolveAssemblyReferenceResolvedFiles"/>
<Output TaskParameter="ResolvedDependencyFiles" ItemName="ReferenceDependencyPaths"/>
<Output TaskParameter="RelatedFiles" ItemName="_ReferenceRelatedPaths"/>
<Output TaskParameter="SatelliteFiles" ItemName="ReferenceSatellitePaths"/>
<Output TaskParameter="SerializationAssemblyFiles" ItemName="_ReferenceSerializationAssemblyPaths"/>
<Output TaskParameter="ScatterFiles" ItemName="_ReferenceScatterPaths"/>
<Output TaskParameter="CopyLocalFiles" ItemName="ReferenceCopyLocalPaths"/>
<Output TaskParameter="SuggestedRedirects" ItemName="SuggestedBindingRedirects"/>
<Output TaskParameter="FilesWritten" ItemName="FileWrites"/>
<Output TaskParameter="DependsOnSystemRuntime" PropertyName="DependsOnSystemRuntime"/>
<Output TaskParameter="DependsOnNETStandard" PropertyName="_DependsOnNETStandard"/>
<Output TaskParameter="UnresolvedAssemblyConflicts" ItemName="ResolveAssemblyReferenceUnresolvedAssemblyConflicts"/>
</ResolveAssemblyReference> That looks like a directive used to get the DLLs needed to satisfy a project's dependencies, so I think this error happens while msbuild is doing that, and it somehow gets confused by System.Reflection.Metadata. The The first weird difference between Ubuntu and Arch is that Arch has several extra files alongside the .dll files mentioned above:
These are not present in Ubuntu, and they raise questions about how Arch's Mono is being built. A
I tried moving these files to a scratch folder, but the compile still fails with the same error message. Either they're not the cause, or there's some dependency resolution cache file somewhere that still contains references to these files. Investigation continues... |
Microsoft.Common.CurrentVersion.targets is only 319 KB on Ubuntu (19 KB smaller), but the section quoted above looks identical to me, even down to the syntax-highlight-breaking extra space after |
Since we can see that |
|
Added this to my Microsoft.Common.CurrentVersion.targets on Ubuntu (working): <Message Importance="high" Text="_ResolvedProjectReferencePaths is @(_ResolvedProjectReferencePaths)" />
<Message Importance="high" Text="_ExplicitReference is @(_ExplicitReference)" /> Core:
AutoUpdate:
ConsoleUI:
GUI:
Cmdline:
Netkan:
Tests:
So the "invalid" value that Arch's msbuild complains about, |
This comment has been minimized.
This comment has been minimized.
Note that downgrading mono-msbuild to Not sure yet if that's an issue with the mono-msbuild 16.9 package, or if CKAN is actually incompatible with it. |
This comment has been minimized.
This comment has been minimized.
Oh I mostly meant that as further investigation, not as a final workaround. This hints that the I tried updating the 16.9 PKGBUILD to build without these changes, and it builds fine, but still gives the same error building CKAN. So from the surface it does not look like a packaging issue that got recently introduced. On the other hand the bump from 16.8 to 16.9 is quite large, 16.8 was from last July, almost a year ago. There may be some "change waves" (their codename for a block of changes deployed at once) that aren't fully stable and may need to be disabled (this seems to be their standard policy). As a result there's a possibility CKAN is genuinely incompatible with the default msbuild 16.9, it'd be good to rule this out if possible. |
This comment has been minimized.
This comment has been minimized.
Trying to find a way to check this, it might actually lead somewhere! Ubuntu shows Version 5.0.0.0:
Arch shows Version 1.4.3.0:
And <!-- Use consistent version of SRM to match mono's Roslyn -->
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly> So copying the DLL from Ubuntu to Arch is another thing to consider trying... ( |
The other copies of that DLL vary in version, but not by much. Ubuntu:
Arch:
|
Updated the wiki so even an Arch noob like me can follow the steps. https://github.com/KSP-CKAN/CKAN/wiki/Installing-CKAN-on-Arch#arch-user-repository Unfortunately I don't have a good idea of where a typical user can get an up to date copy of |
As I mentioned, a newer build of the To get this newer version, users can:
|
If I advised a general audience to install |
It depends how they install An other solution would be to have a "repository" (really just a HTTPS file server with some pre-built packages) with the correctly up-to-date mono version (and why not, CKAN as well), but adding a new repo is a bit more work for users than just installing a package from AUR. |
The main |
Maybe I can have them download a package from |
This seems to be the package (4.1 MB) that gave me the copy of the DLL that I tested as working: However, standard tools are giving conflicting results in the attempts to extract...
EDIT: Ahh, I skipped a step... |
OK, this worked out of the box in my virtual machine to extract the DLL from the deb, thus fixing the compile:
Added to https://github.com/KSP-CKAN/CKAN/wiki/Installing-CKAN-on-Arch#arch-user-repository . That file should be available at that location forever or at least a good long time, and we can update the URL in the wiki if we need to. I think I'm comfortable with this as a stopping point until the upstream problems can be fixed. |
I'm getting this same problem attempting to build Principia |
also the url for grabbing the debian package in the wiki is outdated now I think? |
Still working as far as I can tell. What do you mean? |
Hmm, that link works fine. Not sure what to tell you. Maybe some kind of firewall is blocking you? |
That package is also not in the index https://download.mono-project.com/repo/ubuntu/pool/main/m/mono/ the closest seems to be https://download.mono-project.com/repo/ubuntu/pool/main/m/mono/mono-roslyn_6.12.0.145-0xamarin3+ubuntu2004b1_all.deb so I'll try that. |
Hurray, that worked I think! I also skipped the @HebaruSan thanks for the pointers 🙂 |
OK, I'm able to reproduce the 404 if I try the request from another system (SpaceDock's alpha and beta servers, if it turns out to matter). But it still works fine from my own system, both in browser and with wget. I wonder what weird stuff Caching? Has my ISP kept a copy of this .deb file because I requested it? |
That sounds like they got a CDN in front of it, and it takes some time until old packages are purged from every server. Anyway, going to take a look later and see if I can figure out a permanent URL. |
I guess I will update the wiki when |
Note to self for future updates... apt-get download --print-uris mono-roslyn | awk "{gsub(/'/,\"\",\$1);print \$1}" |
We can use the "Packages" file to get the path: FILE=$(curl --silent https://download.mono-project.com/repo/ubuntu/dists/preview-focal/main/binary-amd64/Packages | grep -Po "(?<=Filename: ).+mono-roslyn.+\\.deb")
# pool/main/m/mono/mono-roslyn_6.12.0.145-0xamarin11+ubuntu2004b1_all.deb
curl https://download.mono-project.com/repo/ubuntu/${FILE} > mono.deb Gonna put that in the wiki, if someone wants to improve the regex or replace it with a call to awk or whatever, feel free. |
Hello KSP-CKAN team! I am working on DotDevelop (http://github.com/dotdevelop/dotdevelop) and encountered the same problem on our Arch build after the With your permission, I will include your final patch in our Arch build wiki. BTW. Has the issue been reported to the Arch |
Hi @hwthomas! Yes, we filed a bug report with Arch in May. On the plus side it's open and assigned and has a High severity, so it looks like something that would be worked on eventually, but on the negative side it has only received one question from the assignee (answered promptly) and then only comments from other users, so it's not clear whether any progress is being made so far: 🤞 As for your wiki, please feel free to use whatever knowledge or content you're able to glean from our discussions or documentation. Cheers! (For other curious CKAN team members or my future self, this appears to be the wiki in question: |
Hello again KSP-CKAN team. I've recently been getting odd errors from our Arch/Manjaro build, even with your patch. This now seems to have gone away by installing mono/mono-msbuild from the (Community) repo, then also installing |
Background
Have you made any manual changes to your GameData folder (i.e., not via CKAN)?
No
Problem
Describe the bug
Cannot install Ckan via the AUR on Arch Linux. Run into this error when installing:
Steps to reproduce
Install via aur.
Expected behavior
CKAN correctly installs
Screenshots (if applicable)
CKAN error code (if applicable):
The text was updated successfully, but these errors were encountered: