Mono on Tumbleweed
Hi all, I'm not much of an expert in .NET/Mono. So bear with me... I have a vendor-supplied RPM that I want to install. It contains a Linux 64-bit C# application. When I try to install it, I get the following: error: Failed dependencies: mono(System.Collections) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.ComponentModel.Primitives) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Console) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Diagnostics.Process) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Linq) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Runtime) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Text.RegularExpressions) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Threading) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Threading.Thread) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Xml.ReaderWriter) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Xml.XmlSerializer) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 I have used earlier releases of this software. So I think it generally works in openSUSE. I have the following installed on a Tumbleweed system: libmonosgen-2_0-1-6.12.0-5.5.x86_64 mono-data-6.12.0-5.4.x86_64 noto-sans-mono-fonts-20220607-66.279.noarch mono-web-6.12.0-5.4.x86_64 mono-wcf-6.12.0-5.4.x86_64 monodoc-core-6.12.0-5.5.x86_64 libmono-2_0-devel-6.12.0-5.5.x86_64 libmonosgen-2_0-devel-6.12.0-5.5.x86_64 libmonoboehm-2_0-devel-6.12.0-5.5.x86_64 mono-devel-6.12.0-5.4.x86_64 mono-data-oracle-6.12.0-5.4.x86_64 libmonoboehm-2_0-1-6.12.0-5.5.x86_64 mono-extras-6.12.0-5.4.x86_64 mono-data-sqlite-6.12.0-5.4.x86_64 mono-complete-6.12.0-5.5.x86_64 mono-core-6.12.0-5.4.x86_64 mono-locale-extras-6.12.0-5.5.x86_64 mono-mvc-6.12.0-5.4.x86_64 mono-winforms-6.12.0-5.4.x86_64 mono-winfxcore-6.12.0-5.4.x86_64 libmono-2_0-1-6.12.0-5.5.x86_64 ghc-mono-traversable-1.0.15.3-2.12.x86_64 mono-reactive-6.12.0-5.5.x86_64 wine-mono-8.0.0-60.1.noarch So it is .NET 6. Specifically, .NET 6.12.0. Which should be okay. I'm curious why the test is for = 6.0.0.0 and not >= 6.0.0.0. Could it be that the RPM is incorrect in this sense? Or does .NET require these exact matches? I do not see these available in the repo I use for this: https://packages.microsoft.com/opensuse/15/prod As I said, I'm not a .NET/MONO expert. -- Roger Oberholtzer
hi, Am 18.01.24 um 16:46 schrieb Roger Oberholtzer: error: Failed dependencies: mono(System.Collections) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.ComponentModel.Primitives) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Console) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Diagnostics.Process) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Linq) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Runtime) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Text.RegularExpressions) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Threading) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Threading.Thread) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Xml.ReaderWriter) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Xml.XmlSerializer) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 could it be, that the used software really has an explicite dependency on mono/.net 6.0? there has to be some file in the ditribution of the used software, where thedependency is configured. if you find that, maybe you can change it to also accept 6.12.0 Best Regards | Freundliche Grüße | Cordialement | Cordiali Saluti | Atenciosamente | Saludos Cordiales DI Rainer Klier DevOps, Research & Development [namirialLogo] _________________________________________________________ Namirial GmbH Phone: +43 7229 88 0 60 - 758 Haiderstraße 23 | 4052 Ansfelden | Austria Website: https://www.namirial.com/<https://www.xyzmo.com/> The sender of this email disclaims any intent to be bound hereby, except where the sender clearly and explicitly provides otherwise. [namirialAd]
On Thu, Jan 18, 2024 at 6:26 PM Rainer Klier <r.klier@namirial.com> wrote:
hi,
Am 18.01.24 um 16:46 schrieb Roger Oberholtzer:
error: Failed dependencies: mono(System.Collections) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.ComponentModel.Primitives) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Console) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Diagnostics.Process) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Linq) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Runtime) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Text.RegularExpressions) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Threading) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Threading.Thread) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Xml.ReaderWriter) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Xml.XmlSerializer) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64
could it be, that the used software really has an explicite dependency on mono/.net 6.0?
there has to be some file in the ditribution of the used software, where thedependency is configured.
if you find that, maybe you can change it to also accept 6.12.0
I will check that. The package is provided as a .deb. I use alien to make an .rpm, which is what I am installing. If I just have alien create the directory that it will use to make the .rpm, I see that the .spec files is:
Buildroot: /home/roger/source.18.00/Tools_OxTS/NAVsolve_CMD/navsolve-cmd-1.2.1 Name: navsolve-cmd Version: 1.2.1 Release: 2 Summary: NAVsolve Command Line Utility License: see /usr/share/doc/navsolve-cmd/copyright Distribution: Debian Group: Converted/base
%define _rpmdir ../ %define _rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm %define _unpackaged_files_terminate_build 0
%description Used to convert RT and xNAV raw data files into NCOM and CSV files.
(Converted from a deb package by alien version 8.95.6.)
%files "/usr/local/bin/NcomToCsv.exe" "/usr/local/bin/navsolve-cmd" %dir "/usr/local/share/navsolve-cmd_1.2.1_amd64/" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.deps.json" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.dll" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.pdb" "/usr/local/share /navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.runtimeconfig.json" "/usr/local/share/navsolve-cmd_1.2.1_amd64/OxTS.NetCore.Utilities.dll" "/usr/local/share/navsolve-cmd_1.2.1_amd64/OxTS.NetCore.Utilities.pdb" %dir "/usr/local/share/navsolve-cmd_1.2.1_amd64/ref/" "/usr/local/share/navsolve-cmd_1.2.1_amd64/ref/NAVsolveNetCore.dll" %dir "/usr/share/doc/navsolve-cmd_1.2.1_amd64/" %dir "/usr/share/doc/navsolve-cmd_1.2.1_amd64/copyright/" "/usr/share/doc/navsolve-cmd_1.2.1_amd64/copyright/LICENSE.txt"
I don't see where the .spec file specifies a dependency for this. Is the rpm program looking inside the .rpm and coming up with dependencies? I did not think it did that. So where are they coming from? -- Roger Oberholtzer
On Fri, Jan 19, 2024 at 12:00 PM Roger Oberholtzer <roger.oberholtzer@gmail.com> wrote:
On Thu, Jan 18, 2024 at 6:26 PM Rainer Klier <r.klier@namirial.com> wrote:
hi,
Am 18.01.24 um 16:46 schrieb Roger Oberholtzer:
error: Failed dependencies: mono(System.Collections) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.ComponentModel.Primitives) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Console) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Diagnostics.Process) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Linq) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Runtime) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Text.RegularExpressions) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Threading) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Threading.Thread) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Xml.ReaderWriter) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64 mono(System.Xml.XmlSerializer) = 6.0.0.0 is needed by navsolve-cmd-1.2.1-2.x86_64
could it be, that the used software really has an explicite dependency on mono/.net 6.0?
there has to be some file in the ditribution of the used software, where thedependency is configured.
if you find that, maybe you can change it to also accept 6.12.0
I will check that. The package is provided as a .deb. I use alien to make an .rpm, which is what I am installing. If I just have alien create the directory that it will use to make the .rpm, I see that the .spec files is:
Buildroot: /home/roger/source.18.00/Tools_OxTS/NAVsolve_CMD/navsolve-cmd-1.2.1 Name: navsolve-cmd Version: 1.2.1 Release: 2 Summary: NAVsolve Command Line Utility License: see /usr/share/doc/navsolve-cmd/copyright Distribution: Debian Group: Converted/base
%define _rpmdir ../ %define _rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm %define _unpackaged_files_terminate_build 0
%description Used to convert RT and xNAV raw data files into NCOM and CSV files.
(Converted from a deb package by alien version 8.95.6.)
%files "/usr/local/bin/NcomToCsv.exe" "/usr/local/bin/navsolve-cmd" %dir "/usr/local/share/navsolve-cmd_1.2.1_amd64/" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.deps.json" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.dll" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.pdb" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.runtimeconfig.json" "/usr/local/share/navsolve-cmd_1.2.1_amd64/OxTS.NetCore.Utilities.dll" "/usr/local/share/navsolve-cmd_1.2.1_amd64/OxTS.NetCore.Utilities.pdb" %dir "/usr/local/share/navsolve-cmd_1.2.1_amd64/ref/" "/usr/local/share/navsolve-cmd_1.2.1_amd64/ref/NAVsolveNetCore.dll" %dir "/usr/share/doc/navsolve-cmd_1.2.1_amd64/" %dir "/usr/share/doc/navsolve-cmd_1.2.1_amd64/copyright/" "/usr/share/doc/navsolve-cmd_1.2.1_amd64/copyright/LICENSE.txt"
I don't see where the .spec file specifies a dependency for this. Is the rpm program looking inside the .rpm and coming up with dependencies?
Yes, rpmbuild calls plugins to generate a list of dependencies. For Mono there is such plugin (I do not know how you create your RPM so I do not know if it is actually used): https://build.opensuse.org/package/view_file/openSUSE:Factory/mono-core/mono...
I did not think it did that. So where are they coming from?
Hard to tell without verbose RPM build log, but you may check the above script.
On Fri, Jan 19, 2024 at 10:09 AM Andrei Borzenkov <arvidjaar@gmail.com> wrote:
On Fri, Jan 19, 2024 at 12:00 PM Roger Oberholtzer <roger.oberholtzer@gmail.com> wrote:
On Thu, Jan 18, 2024 at 6:26 PM Rainer Klier <r.klier@namirial.com>
hi,
Am 18.01.24 um 16:46 schrieb Roger Oberholtzer:
error: Failed dependencies: mono(System.Collections) = 6.0.0.0 is needed by
mono(System.ComponentModel.Primitives) = 6.0.0.0 is needed by
mono(System.Console) = 6.0.0.0 is needed by
mono(System.Diagnostics.Process) = 6.0.0.0 is needed by
mono(System.Linq) = 6.0.0.0 is needed by
mono(System.Runtime) = 6.0.0.0 is needed by
mono(System.Text.RegularExpressions) = 6.0.0.0 is needed by
mono(System.Threading) = 6.0.0.0 is needed by
mono(System.Threading.Thread) = 6.0.0.0 is needed by
mono(System.Xml.ReaderWriter) = 6.0.0.0 is needed by
mono(System.Xml.XmlSerializer) = 6.0.0.0 is needed by
could it be, that the used software really has an explicite dependency
on mono/.net 6.0?
there has to be some file in the ditribution of the used software,
where thedependency is configured.
if you find that, maybe you can change it to also accept 6.12.0
I will check that. The package is provided as a .deb. I use alien to make an .rpm, which is what I am installing. If I just have alien create
wrote: navsolve-cmd-1.2.1-2.x86_64 navsolve-cmd-1.2.1-2.x86_64 navsolve-cmd-1.2.1-2.x86_64 navsolve-cmd-1.2.1-2.x86_64 navsolve-cmd-1.2.1-2.x86_64 navsolve-cmd-1.2.1-2.x86_64 navsolve-cmd-1.2.1-2.x86_64 navsolve-cmd-1.2.1-2.x86_64 navsolve-cmd-1.2.1-2.x86_64 navsolve-cmd-1.2.1-2.x86_64 navsolve-cmd-1.2.1-2.x86_64 the directory that it will use to make the .rpm, I see that the .spec files is:
Buildroot:
/home/roger/source.18.00/Tools_OxTS/NAVsolve_CMD/navsolve-cmd-1.2.1
Name: navsolve-cmd Version: 1.2.1 Release: 2 Summary: NAVsolve Command Line Utility License: see /usr/share/doc/navsolve-cmd/copyright Distribution: Debian Group: Converted/base
%define _rpmdir ../ %define _rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm %define _unpackaged_files_terminate_build 0
%description Used to convert RT and xNAV raw data files into NCOM and CSV files.
(Converted from a deb package by alien version 8.95.6.)
%files "/usr/local/bin/NcomToCsv.exe" "/usr/local/bin/navsolve-cmd" %dir "/usr/local/share/navsolve-cmd_1.2.1_amd64/" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.deps.json" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.dll" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.pdb"
"/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.runtimeconfig.json"
"/usr/local/share/navsolve-cmd_1.2.1_amd64/OxTS.NetCore.Utilities.dll" "/usr/local/share/navsolve-cmd_1.2.1_amd64/OxTS.NetCore.Utilities.pdb" %dir "/usr/local/share/navsolve-cmd_1.2.1_amd64/ref/" "/usr/local/share/navsolve-cmd_1.2.1_amd64/ref/NAVsolveNetCore.dll" %dir "/usr/share/doc/navsolve-cmd_1.2.1_amd64/" %dir "/usr/share/doc/navsolve-cmd_1.2.1_amd64/copyright/" "/usr/share/doc/navsolve-cmd_1.2.1_amd64/copyright/LICENSE.txt"
I don't see where the .spec file specifies a dependency for this. Is the rpm program looking inside the .rpm and coming up with dependencies?
Yes, rpmbuild calls plugins to generate a list of dependencies. For Mono there is such plugin (I do not know how you create your RPM so I do not know if it is actually used):
It is built by alien. When I build it myself, it reports: Processing files: navsolve-cmd-1.2.1-2.x86_64 Provides: mingw32(navsolvenetcore.dll) mingw32(oxts.netcore.utilities.dll) mono(NAVsolveNetCore) = 23.5.12.0 mono(OxTS.NetCore.Utilities) = 23.5.12.0 navsolve-cmd = 1.2.1-2 navsolve-cmd(x86-64) = 1.2.1-2 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /bin/bash libc.so.6 libc.so.6()(64bit) libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.33)(64bit) libc.so.6(GLIB C_2.34)(64bit) libc.so.6(GLIBC_2.4) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libm.so.6 libm.so.6()(64bit) libm.so.6(GLIBC_2.0) libm.so.6(GLIBC_2.1) libst dc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) libstdc++.so.6(GLIBCXX_3.4.11)(64bit) libstdc++.so.6(GLIBCXX_3.4.20)(64bit) libstdc++.so.6(GLIBCXX_3.4.21)(64bit) libstdc++.so.6(GLIB CXX_3.4.26)(64bit) libstdc++.so.6(GLIBCXX_3.4.9)(64bit) mono(OxTS.NetCore.Utilities) = 23.5.12.0 mono(System.Collections) = 6.0.0.0 mono(System.ComponentModel.Primitives) = 6.0.0.0 mono(System.Console) = 6.0.0.0 mono(Syst em.Diagnostics.Process) = 6.0.0.0 mono(System.Linq) = 6.0.0.0 mono(System.Runtime) = 6.0.0.0 mono(System.Text.RegularExpressions) = 6.0.0.0 mono(System.Threading) = 6.0.0.0 mono(System.Threading.Thread) = 6.0.0.0 mono(Sys tem.Xml.ReaderWriter) = 6.0.0.0 mono(System.Xml.XmlSerializer) = 6.0.0.0 rtld(GNU_HASH) Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/roger/rpmbuild/BUILDROOT/navsolve-cmd-1.2.1-2.x86_64 warning: Installed (but unpackaged) file(s) found: /navsolve-cmd-1.2.1-2.spec Wrote: /home/roger/rpmbuild/SRPMS/navsolve-cmd-1.2.1-2.src.rpm Wrote: ../navsolve-cmd-1.2.1-2.x86_64.rpm Executing(%clean): /usr/bin/bash -e /var/tmp/rpm-tmp.wonSFD + umask 022 + cd /home/roger/rpmbuild/BUILD + /usr/bin/rm -rf /home/roger/rpmbuild/BUILDROOT/navsolve-cmd-1.2.1-2.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory Executing(rmbuild): /usr/bin/bash -e /var/tmp/rpm-tmp.hyZeHO shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory + umask 022 + cd /home/roger/rpmbuild/BUILD chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory + RPM_EC=0 ++ jobs -p + exit 0 RPM build warnings: Installed (but unpackaged) file(s) found: /navsolve-cmd-1.2.1-2.spec So rpmbuild is adding these. I winder why it sets the require mono to 6.0.0.0. -- Roger Oberholtzer
On Fri, Jan 19, 2024 at 12:16 PM Roger Oberholtzer <roger.oberholtzer@gmail.com> wrote: ....
I don't see where the .spec file specifies a dependency for this. Is the rpm program looking inside the .rpm and coming up with dependencies?
Yes, rpmbuild calls plugins to generate a list of dependencies. For Mono there is such plugin (I do not know how you create your RPM so I do not know if it is actually used):
It is built by alien. When I build it myself, it reports:
Processing files: navsolve-cmd-1.2.1-2.x86_64 Provides: mingw32(navsolvenetcore.dll) mingw32(oxts.netcore.utilities.dll) mono(NAVsolveNetCore) = 23.5.12.0 mono(OxTS.NetCore.Utilities) = 23.5.12.0 navsolve-cmd = 1.2.1-2 navsolve-cmd(x86-64) = 1.2.1-2 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /bin/bash libc.so.6 libc.so.6()(64bit) libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.33)(64bit) libc.so.6(GLIB C_2.34)(64bit) libc.so.6(GLIBC_2.4) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libm.so.6 libm.so.6()(64bit) libm.so.6(GLIBC_2.0) libm.so.6(GLIBC_2.1) libst dc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) libstdc++.so.6(GLIBCXX_3.4.11)(64bit) libstdc++.so.6(GLIBCXX_3.4.20)(64bit) libstdc++.so.6(GLIBCXX_3.4.21)(64bit) libstdc++.so.6(GLIB CXX_3.4.26)(64bit) libstdc++.so.6(GLIBCXX_3.4.9)(64bit) mono(OxTS.NetCore.Utilities) = 23.5.12.0 mono(System.Collections) = 6.0.0.0 mono(System.ComponentModel.Primitives) = 6.0.0.0 mono(System.Console) = 6.0.0.0 mono(Syst em.Diagnostics.Process) = 6.0.0.0 mono(System.Linq) = 6.0.0.0 mono(System.Runtime) = 6.0.0.0 mono(System.Text.RegularExpressions) = 6.0.0.0 mono(System.Threading) = 6.0.0.0 mono(System.Threading.Thread) = 6.0.0.0 mono(Sys tem.Xml.ReaderWriter) = 6.0.0.0 mono(System.Xml.XmlSerializer) = 6.0.0.0 rtld(GNU_HASH) Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/roger/rpmbuild/BUILDROOT/navsolve-cmd-1.2.1-2.x86_64 warning: Installed (but unpackaged) file(s) found: /navsolve-cmd-1.2.1-2.spec Wrote: /home/roger/rpmbuild/SRPMS/navsolve-cmd-1.2.1-2.src.rpm Wrote: ../navsolve-cmd-1.2.1-2.x86_64.rpm Executing(%clean): /usr/bin/bash -e /var/tmp/rpm-tmp.wonSFD + umask 022 + cd /home/roger/rpmbuild/BUILD + /usr/bin/rm -rf /home/roger/rpmbuild/BUILDROOT/navsolve-cmd-1.2.1-2.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory Executing(rmbuild): /usr/bin/bash -e /var/tmp/rpm-tmp.hyZeHO shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory + umask 022 + cd /home/roger/rpmbuild/BUILD chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory + RPM_EC=0 ++ jobs -p + exit 0
RPM build warnings: Installed (but unpackaged) file(s) found: /navsolve-cmd-1.2.1-2.spec
So rpmbuild is adding these. I winder why it sets the require mono to 6.0.0.0.
Then show the full log, not just the final result.
hi, Am 19.01.24 um 10:09 schrieb Andrei Borzenkov:
(Converted from a deb package by alien version 8.95.6.)
%files "/usr/local/bin/NcomToCsv.exe" "/usr/local/bin/navsolve-cmd" %dir "/usr/local/share/navsolve-cmd_1.2.1_amd64/" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.deps.json" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.dll" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.pdb" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.runtimeconfig.json" "/usr/local/share/navsolve-cmd_1.2.1_amd64/OxTS.NetCore.Utilities.dll" "/usr/local/share/navsolve-cmd_1.2.1_amd64/OxTS.NetCore.Utilities.pdb" %dir "/usr/local/share/navsolve-cmd_1.2.1_amd64/ref/" "/usr/local/share/navsolve-cmd_1.2.1_amd64/ref/NAVsolveNetCore.dll" %dir "/usr/share/doc/navsolve-cmd_1.2.1_amd64/" %dir "/usr/share/doc/navsolve-cmd_1.2.1_amd64/copyright/" "/usr/share/doc/navsolve-cmd_1.2.1_amd64/copyright/LICENSE.txt"
I don't see where the .spec file specifies a dependency for this. Is the rpm program looking inside the .rpm and coming up with dependencies? Yes, rpmbuild calls plugins to generate a list of dependencies. For Mono there is such plugin (I do not know how you create your RPM so I do not know if it is actually used):
I did not think it did that. So where are they coming from?
Hard to tell without verbose RPM build log, but you may check the above script. i think, the dependency is not in the RPM but in the navsolve config. i think in the file NAVsolveNetCore.runtimeconfig.json and/or NAVsolveNetCore.deps.json you should be able to find the .net version dependency. and maybe there is a hard/fix dependency to .net 6.0 configured. Best Regards | Freundliche Grüße | Cordialement | Cordiali Saluti | Atenciosamente | Saludos Cordiales DI Rainer Klier DevOps, Research & Development
On Fri, Jan 19, 2024 at 10:19 AM Rainer Klier <r.klier@namirial.com> wrote:
hi,
Am 19.01.24 um 10:09 schrieb Andrei Borzenkov:
(Converted from a deb package by alien version 8.95.6.)
%files "/usr/local/bin/NcomToCsv.exe" "/usr/local/bin/navsolve-cmd" %dir "/usr/local/share/navsolve-cmd_1.2.1_amd64/" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.deps.json" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.dll" "/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.pdb"
"/usr/local/share/navsolve-cmd_1.2.1_amd64/NAVsolveNetCore.runtimeconfig.json"
"/usr/local/share/navsolve-cmd_1.2.1_amd64/OxTS.NetCore.Utilities.dll" "/usr/local/share/navsolve-cmd_1.2.1_amd64/OxTS.NetCore.Utilities.pdb" %dir "/usr/local/share/navsolve-cmd_1.2.1_amd64/ref/" "/usr/local/share/navsolve-cmd_1.2.1_amd64/ref/NAVsolveNetCore.dll" %dir "/usr/share/doc/navsolve-cmd_1.2.1_amd64/" %dir "/usr/share/doc/navsolve-cmd_1.2.1_amd64/copyright/" "/usr/share/doc/navsolve-cmd_1.2.1_amd64/copyright/LICENSE.txt"
I don't see where the .spec file specifies a dependency for this. Is the rpm program looking inside the .rpm and coming up with dependencies?
Yes, rpmbuild calls plugins to generate a list of dependencies. For Mono there is such plugin (I do not know how you create your RPM so I do not know if it is actually used):
I did not think it did that. So where are they coming from?
Hard to tell without verbose RPM build log, but you may check the above script.
i think, the dependency is not in the RPM but in the navsolve config. i think in the file NAVsolveNetCore.runtimeconfig.json and/or NAVsolveNetCore.deps.json you should be able to find the .net version dependency. and maybe there is a hard/fix dependency to .net 6.0 configured.
NAVsolveNetCore.deps.json contains: { "runtimeTarget": { "name": ".NETCoreApp,Version=v6.0", "signature": "" }, "compilationOptions": {}, "targets": { ".NETCoreApp,Version=v6.0": { "NAVsolveNetCore/1.0.0": { "dependencies": { "OxTS.NetCore.Utilities": "1.0.0" }, "runtime": { "NAVsolveNetCore.dll": {} } }, "OxTS.NetCore.Utilities/1.0.0": { "runtime": { "OxTS.NetCore.Utilities.dll": {} } } } }, "libraries": { "NAVsolveNetCore/1.0.0": { "type": "project", "serviceable": false, "sha512": "" }, "OxTS.NetCore.Utilities/1.0.0": { "type": "project", "serviceable": false, "sha512": "" } } } NAVsolveNetCore.runtimeconfig.json contains: { "runtimeOptions": { "tfm": "net6.0", "framework": { "name": "Microsoft.NETCore.App", "version": "6.0.0" }, "configProperties": { "System.Reflection.Metadata.MetadataUpdater.IsSupported": false } } } I need to contact the supplier to see what their real intention is. I tried changing the "version" to something like 6.1.0.0 to see if it had any effect. It did not. -- Roger Oberholtzer
participants (3)
-
Andrei Borzenkov
-
Rainer Klier
-
Roger Oberholtzer