Opened 11 years ago
Closed 11 years ago
#41773 closed defect (fixed)
kde can no longer be universal because of virtuoso
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | nerdling (Jeremy Lavergne) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.2.1 |
Keywords: | Cc: | pixilla (Bradley Giesbrecht), NicosPavlov, cooljeanius (Eric Gallager) | |
Port: | virtuoso |
Description
virtuoso was marked as x86_64-only in r114353. This makes pretty much all of kde no longer able to build universal:
$ port -u upgrade soprano ---> Computing dependencies for soprano Error: Cannot install soprano for the arch(s) 'i386 x86_64' because Error: its dependency virtuoso only supports the arch(s) 'x86_64'. Error: Unable to upgrade port: architecture mismatch To report a bug, follow the instructions in the guide: http://guide.macports.org/#project.tickets
Virtuoso needs to either be restored to i386 compatibility, or if that can't be done (and from #40882 I understand that upstream claims it cannot), then other ports like soprano that depend on virtuoso need to either have their universal variant disabled or use "depends_skip_archcheck virtuoso" to indicate that they don't use virtuoso's libraries. And the same needs to then be done for each of those ports, and so on up the dependency chain.
Change History (7)
comment:1 Changed 11 years ago by cooljeanius (Eric Gallager)
Cc: | egall@… added |
---|
comment:2 follow-up: 3 Changed 11 years ago by NicosPavlov
From what I could see, the two main ports which depend on virtuoso are soprano and kde4-runtime. In both cases, these are pure runtime dependencies, and both ports would build their virtuoso backend independently of the presence of virtuoso during build.
As such, I am not sure yet of the consequences, but it should be possible to remove virtuoso as a dependency to enable universal build if it is considered important enough, or declare "depends_skip_archcheck virtuoso", and the backend would activate if the binary runs on a 64 bit architecture.
As their dependence is similar, I would consider that the choice should be made for soprano as it is lower in the dependency chain, and the same could then be applied to kde4-runtime.
However, for what I could see, there is also redland (on which soprano depends) which declares virtuoso as a dependency. I did not look yet as the nature of the dependency in this case.
comment:3 Changed 11 years ago by nerdling (Jeremy Lavergne)
Replying to nicos@…:
declare "depends_skip_archcheck virtuoso"
I believe Redland is built without virtuoso. The Portfile shows that it's forcefully disabled in configure.args.
Sounds like it's optimal to use depends_skip_archeck in KDE land.
comment:4 Changed 11 years ago by NicosPavlov
Right, my mistake for redland. This makes things in fact easier.
Unless there is a reason I don't see, it seems to me that simplest way would be to declare the skip in the kde4 portgroup, as it involves all ports depending on soprano (and thus all ports depending on kdelibs4).
comment:5 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Isn't the only change we need to make then to add "depends_skip_archcheck virtuoso" to soprano? soprano will then be able to build universal, and the kde ports and all other ports may feel free to check soprano's archs as usual.
comment:6 Changed 11 years ago by NicosPavlov
Ah ok, thanks for the correction, I am not familiar with depends_skip_archcheck and was not sure if the architecture check was recursive in the dependencies. There will however also be a need to change kde4-runtime, which also declares a direct dependency to virtuoso.
comment:7 Changed 11 years ago by NicosPavlov
Resolution: | → fixed |
---|---|
Status: | new → closed |
Cc Me!