Skip to content
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

Nuvolaruntime 4.7 can't be build on Fedora #370

Closed
voxik opened this issue Sep 6, 2017 · 4 comments
Closed

Nuvolaruntime 4.7 can't be build on Fedora #370

voxik opened this issue Sep 6, 2017 · 4 comments
Labels
type: support A support request or a question to be answered.

Comments

@voxik
Copy link

voxik commented Sep 6, 2017

The #369 PR causes issues during build of Fedora packages. Although I applaud that you unbundled glib and othe vapis, this unfortunately made nuvolaruntime buildable just for Flatpak, because you are trying to patch system libraries, which is impossible for Fedora (and actually any other distribution). The question is if the patches you are applying there are upstreamed (or upstreamable)? Will we be ever able to build nuvolaruntime again?

@jiri-janousek
Copy link
Member

you are trying to patch system libraries, which is impossible for Fedora (and actually any other distribution).

Nuvola doesn't patch system libraries but it merely creates a patched copy of a Vala API description of the library. If it is a problem for Fedora to do that at build time, you can create the patched copy before and bundle it with Nuvola Source code (the vapi directory) as I did in previous Nuvola releases (and Fedora was seemingly OK with that).

The question is if the patches you are applying there are upstreamed (or upstreamable)?

  • The glib-2.0.patch could be upstreamed as it fixes Queue Vala API to match g-queue-remove C API.
  • The webkit2gtk-web-extension-4.0.patch is tricky. I don't remember the reason for it. It may even be possible it is not necessary anymore with a recent Valac. It would need a closer look to decide whether to drop or upstream the changes. However, that's not a high priority right now as the patch will be definitely dropped when Nuvola replaces WebKitGTK backend with Chromium Embedded Framework.

@jiri-janousek jiri-janousek added the type: support A support request or a question to be answered. label Sep 6, 2017
@voxik
Copy link
Author

voxik commented Sep 7, 2017

you are trying to patch system libraries, which is impossible for Fedora (and actually any other distribution).

Nuvola doesn't patch system libraries but it merely creates a patched copy of a Vala API description of the library. If it is a problem for Fedora to do that at build time, you can create the patched copy before and bundle it with Nuvola Source code (the vapi directory) as I did in previous Nuvola releases.

Ah, so the problem might be then somewhere else. This is actually the build error:

+ waf build --prefix=/usr --libdir=/usr/lib64
Waf: Entering directory `/builddir/build/BUILD/nuvolaruntime-4.7.0/build'
Waf: Leaving directory `/builddir/build/BUILD/nuvolaruntime-4.7.0/build'
source not found: '../../../../usr/share/vala-0.36/vapi/glib-2.0.vapi' in bld(source=['../../../../usr/share/vala-0.36/vapi/glib-2.0.vapi', 'vapi/glib-2.0.patch'], target=['glib-2.0.vapi'], meths=['process_rule', 'process_source'], features=[], path=/builddir/build/BUILD/nuvolaruntime-4.7.0, idx=1, rule='patch -i ${SRC[1]} -o ${TGT} ${SRC[0]}', posted=True, _name='glib-2.0.vapi') in /builddir/build/BUILD/nuvolaruntime-4.7.0

Digging into it, these are actually the offending lines:

	patch('/usr/share/vala-0.36/vapi/%s.vapi' % vapi, "vapi/%s.patch" % vapi, '%s.vapi' %  vapi)
	cp_if_found('/usr/share/vala-0.36/vapi/%s.deps' % vapi, '%s.deps' % vapi)

There is hardcoded the Vala version and apparently, we are already at Vala 0.38.0 in Fedora Rawhide. This is the bit from configure output:

Checking for program 'valac-0.36'        : /usr/bin/valac 
Checking for valac-0.36 version >= (0, 36, 3) : (0, 38, 0) 

This workaround seems to work:

sed -i 's/vala-0.36/vala-0.38/' wscript

(and Fedora was seemingly OK with that).

Heh, Fedora might be happy just because I don't know I am doing something wrong ;) And since I am new to Vala, it might be the case any time ...

The glib-2.0.patch could be upstreamed as it fixes Queue Vala API to match g-queue-remove C API.

I'd definitely appreciate this

Nuvola replaces WebKitGTK backend with Chromium Embedded Framework.

Huh ... I hope this will be possible to get into Fedora. We have Chromium, but I have no idea how this relates ... I fear we will be stuck with some older Nuvola due to this :'(

@jiri-janousek
Copy link
Member

This workaround seems to work: sed -i 's/vala-0.36/vala-0.38/' wscript

Sure, that's suggested in the changelog:

Nuvola no longer bundles *.vapi files but depends on those of Valac 0.36.3. However, glib-2.0.vapi and webkit2gtk-web-extension-4.0.vapi must be patched to work properly (see vapi/*.patch). You may need to modify wscript if you don't use Valac 0.36.

Nuvola replaces WebKitGTK backend with Chromium Embedded Framework.

Huh ... I hope this will be possible to get into Fedora. We have Chromium, but I have no idea how this relates ...

Unfortunately, Nuvola must switch to CEF to be able to compete with Chromium-based apps such as MellowPlayer or Google Play Music Desktop Player. Although it is pleasant to work with WebKitGTK, there are drawbacks I cannot ignore forever: #91 (comment) #354 https://github.com/tiliado/nuvola-app-deezer/issues/12

I fear we will be stuck with some older Nuvola due to this :'(

Are you sure you want to depend on flash plug-in for audio playback forever?

@voxik
Copy link
Author

voxik commented Sep 7, 2017

Sure, that's suggested in the changelog:

Ah, I was somehow misinterpreted that it applies just to older Vala. Sorry, my mistake.

Are you sure you want to depend on flash plug-in for audio playback forever?

It is like being between a rock and a hard place ...

Anyway, since my original issue was resolved, I'm closing this ticket. Thx for help!

@voxik voxik closed this as completed Sep 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: support A support request or a question to be answered.
Projects
None yet
Development

No branches or pull requests

2 participants