Page MenuHomeFreeBSD

audio/libcanberra: add Mk/Uses/canberra.mk, modularize plugins/integrations
Needs ReviewPublic

Authored by greg_unrelenting.technology on Jul 1 2019, 8:45 PM.

Details

Reviewers
kwm
swills
tcberner
Group Reviewers
gnome
kde
O5: Ports Framework(Owns No Changed Paths)
portmgr
Summary

The libcanberra port was not in a good state… :)

@tcberner initially wanted to depend on libcanberra-pulse in KDE Plasma 5.
I want to get rid of gtk2 dependencies as much as possible, and libcanberra-gtk was forcing gtk2 onto a lot of systems unnecessarily.

With this update,

  • libcanberra-gtk2 and libcanberra-gtk3 integrations are in separate packages
  • libcanberra-gtk2 is only depended on when actually used in the port
  • header and vapi for gtk (which is used by any of the gtk 2/3) are in the main package, so there's no "require 2 if using 3" or vice versa situation
    • well "require 3 if using 2" would kinda be acceptable, but that would be harder to do with the Uses/canberra.mk code
  • libcanberra-pulse and libcanberra-gstreamer backends are in separate packages
  • libcanberra-pulse actually will be used if installed
  • the dependency on canberra is written with USES
  • the canberra dependency is dropped from up-to-date gnome ports (e.g. some games) that have switched to only using the gsound API
  • libudev won't be picked up when building outside of poudriere (it's useless here for us, the calls are for alsa soundcards I think)

References:

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

As discussed with @swills

TODO:

  • create -gtk2 slave
  • create USES=canberra or some other magic

Create canberra.mk and convert tree to use it.

  • maybe add canberra-gtk-header port?
tcberner retitled this revision from audio/libcanberra: remove options, create slave ports to audio/libcanberra: remove options, create slave ports, add Mk/Uses/canberra.mk.Jul 2 2019, 6:11 PM
audio/libcanberra/pkg-plist
2–3

How about also putting canberra-gtk.h in this plist like the current port does?

sysutils/mate-control-center/Makefile
30–31

Just picking a random spot. This (and others like it) don't seem right. Mate uses gtk30 so it seems gtk2 isn't needed. The reason why both libcanberra-gtk and libcanberra-gtk3 are listed is because the gtk3 depended on the -gtk port and because the stage-qa script was reporting a missing dependany.

The alternative would be to have a port that simply installes the shared gtk header.

at quick glance It looks like it should more be a bunch of flavors than slave ports, am I missing something?

Way too many things have :gtk2 here, no gtk3 apps should need it

audio/pavucontrol/Makefile
18

pavucontrol does not need gtk2

deskutils/gnome-screenshot/Makefile
21–22

Why would this need gtk2?

mail/geary/Makefile
32

This is a gtk3 app

Way too many things have :gtk2 here, no gtk3 apps should need it

would you mind commandeering this and finishing it?

greg_unrelenting.technology retitled this revision from audio/libcanberra: remove options, create slave ports, add Mk/Uses/canberra.mk to audio/libcanberra: add Mk/Uses/canberra.mk, modularize plugins/integrations.
greg_unrelenting.technology edited the summary of this revision. (Show Details)

oof. Hopefully this is good now, I haven't tested everything, but lots of things build fine without gtk2 now.

devel/kf5-knotifications/Makefile
28

@tcberner hopefully this kde cmake stuff is all correct, I haven't tested with these options OFF