! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
gtk+-3.18.9 build failure: *** No rule to make target 'themes/gtk-3.0/Default...
Status:
RESOLVED: FIXED
Product:
Xfce4-notifyd
Component:
general

Comments

Description Michał Górny 2016-07-31 18:50:58 CEST
Created attachment 6762 
Build log

Looks like 0.3.0 fails to build against gtk+-3.18.9 (current Gentoo stable version). The error is:

make[2]: *** No rule to make target 'themes/gtk-3.0/Default/gtk.css', needed by 'all-am'.  Stop.

I'm attaching a complete build log. I can also tell that it builds fine with gtk+-3.20.6.
Comment 1 Simon Steinbeiss editbugs 2016-08-30 09:35:07 CEST
Hi,
I presume you took the release tarball, which was built against Gtk+3.20 and consequently only works with that. If you checkout the 0.3.0 git tag everything should work as expected.
If you have a good idea as to how to improve this let me know! Otherwise sorry for the inconvenience.
Comment 2 Michał Górny 2016-08-30 19:18:42 CEST
Are you saying that autoreconf would fix it or...? Would building the tarball against older GTK+ preserve compatibility with more versions?

In any case, I don't think it is really fixed as people will still bump into this. If you can't fix it, then mark it WONTFIX or alike, please, to make this clear. Possibly you could also increase the version requirement in configure.ac, or add some kludge warning people to autoreconf when running with older autoconf.
Comment 3 Simon Steinbeiss editbugs 2016-08-30 23:01:14 CEST
Ok, let me explain that a little. The problem is that themes are totally incompatible for Gtk+3 <= 3.18 and Gtk+3 >= 3.20, so *either* one *or* the other have to be installed. If both would be installed, themes wouldn't work in any Gtk+3 version.

So after some consideration I decided to make the switch (i.e. which themes to use) at compile-time, not at run-time, as I would presume that distribution packagers would know which Gtk+3 version to build their packages against. So the Makefile/autotools stuff checks which Gtk+3 version you have installed and based on that it only takes the correct themes folder, which is either gtk-3.0 (for Gtk+3 <= 3.18) or gtk-3.20 (for Gtk+3 3.20 and beyond).
As I ran make dist-check for building the release tarball on a system with Gtk+3 3.20, the gtk-3.0 folder isn't included in the archive. If you check out the git tag, everything is there and working.

If you have any suggestions as to how to improve that in terms of building a release tarball with both the gtk-3.0 and gtk-3.20 folder that will work fine with all versions please let me know!

I'm fine with leaving this bug open if you think it will help others who bump into this issue, although I would hope it's mostly distro maintainers/packagers.
Comment 4 Michał Górny 2016-08-30 23:18:22 CEST
Sounds like a case for EXTRA_DIST -- you need to put the other theme in there for it to be distributed along with the theme being installed. I think it's fine to repeat files normally distributed in EXTRA_DIST, so you should be able to put both themes in there.
Comment 5 Simon Steinbeiss editbugs 2016-08-30 23:40:32 CEST
I won't pretend I'm a make or autotools expert, so if you have a patch for me I'll gladly review it ;)
Comment 6 Michał Górny 2016-08-31 07:03:59 CEST
Created attachment 6810 
Patch fixing 'make dist'

Here you are. I've noticed that the file is already using 'dist_noinst_DATA' which is kinda weird but works the same as EXTRA_DIST, so I just extended that. I've added both themes verbatim there since I found introducing $(otherstyle) would only unnecessarily make things more complex.
Comment 7 Simon Steinbeiss editbugs 2016-08-31 18:48:07 CEST
(In reply to Simon Steinbeiss from comment #3)
> As I ran make dist-check for building the release tarball on a system with
> Gtk+3 3.20, the gtk-3.0 folder isn't included in the archive. If you check
> out the git tag, everything is there and working.

I misremembered this, sorry. The folders are both there, not sure why it's not working.

As I currently don't have a Gtk3.18 system around to test, does your patch fix your problem? (Doesn't seem to make a difference here)
Comment 8 Michał Górny 2016-08-31 22:58:58 CEST
(In reply to Simon Steinbeiss from comment #7)
> (In reply to Simon Steinbeiss from comment #3)
> > As I ran make dist-check for building the release tarball on a system with
> > Gtk+3 3.20, the gtk-3.0 folder isn't included in the archive. If you check
> > out the git tag, everything is there and working.
> 
> I misremembered this, sorry. The folders are both there, not sure why it's
> not working.

No, they're not:

$ tar -tf xfce4-notifyd-0.3.0.tar.bz2  | grep themes
xfce4-notifyd-0.3.0/themes/
xfce4-notifyd-0.3.0/themes/gtk-3.20/
xfce4-notifyd-0.3.0/themes/gtk-3.20/Smoke/
xfce4-notifyd-0.3.0/themes/gtk-3.20/Smoke/gtk.css
xfce4-notifyd-0.3.0/themes/gtk-3.20/ZOMG-PONIES!/
xfce4-notifyd-0.3.0/themes/gtk-3.20/ZOMG-PONIES!/gtk.css
xfce4-notifyd-0.3.0/themes/gtk-3.20/Default/
xfce4-notifyd-0.3.0/themes/gtk-3.20/Default/gtk.css

> As I currently don't have a Gtk3.18 system around to test, does your patch
> fix your problem? (Doesn't seem to make a difference here)

It certainly causes both theme versions to be included in the tarball. I will try to find the time to test it tomorrow or the day after tomorrow.
Comment 9 Michał Górny 2016-09-03 14:30:06 CEST
I can confirm that my patch fixes newly generated distribution tarballs.

Having GTK+ 3.20 installed, I did 'make dist' before and after applying the patch. The tarball without the patch missed 3.0 themes, the other one had them.

Afterwards, I've downgraded GTK+ to 3.18, and attempted to install from the two tarballs. As expected, the first one failed while the second one worked.
Comment 10 Simon Steinbeiss editbugs 2016-09-05 10:15:45 CEST
Yes, sorry, that was my mixup. I checked the tarballs from https://git.xfce.org/apps/xfce4-notifyd/, not from archive.xfce.org.

I've pushed it to master, thanks again for your contribution!
https://git.xfce.org/apps/xfce4-notifyd/commit/?id=46b813f1eea4fc0db7b68d1657cabea799157f6c

Bug #12737

Reported by:
Michał Górny
Reported on: 2016-07-31
Last modified on: 2016-09-05

People

Assignee:
Jérôme Guelfucci
CC List:
1 user

Version

Attachments

Build log (19.10 KB, text/x-log)
2016-07-31 18:50 CEST , Michał Górny
no flags
Patch fixing 'make dist' (1.20 KB, patch)
2016-08-31 07:03 CEST , Michał Górny
no flags

Additional information