Hacker News new | ask | show | jobs
by antimba 2050 days ago
This might be easier to understand with some context. This is the GTK maintainer, who is about to release GTK 4 in a few weeks, and GTK 4 needs some unreleased fixes in Cairo. He requested a release earlier this year.[1]

The last stable release of Cairo was in October 2018. A very simple merge request[2] submitted by Nikolaus Waxweiler two years ago has not been merged even though everyone agrees it is good because nobody has been willing to take the responsibility to approve it.

The test suite is broken and tests were failing CI for all commits for a year (until the tests were disabled) because there was nobody who knew how the test suite worked who had time to fix it. There has been a proposal by a Google intern to add fuzzers for OSS-Fuzz to find security issues—but no maintainer has the time to review it.

Yes, there are a few commits and merge requests getting merged here and there, thanks to Uli Schlachter who is still active, but this is a large graphics library with many, many features, used by thousands of applications. It is not finished and not in a good state. Web browsers and other applications that have resources to move to Skia have done so already; GTK probably will not have spare resources to do this.

[1]: https://gitlab.freedesktop.org/cairo/cairo/-/issues/422

[2]: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/...

6 comments

> The last stable release of Cairo was in October 2018

Looking at the release history, as far as I can tell, every release since 2013 was rolled by Bryce Harrington, who at the time was employed with Samsung Open Source Group. Samsung shut the group down in... October 2018 [1].

[1] https://www.phoronix.com/scan.php?page=news_item&px=Samsung-...

A related question I've asked myself a few times already, with no good answer yet: is it good for the long-term health of an OSS project if it has sponsored developer(s) from a single company?

If Cairo didn't have that support, it might have fizzled out much earlier. Or a more heterogeneous community might have emerged, which would be more resilient to a single sponsor dropping out.

If anybody has data (not just anecdotes) regarding this question, I would be very grateful!

> is it good for the long-term health of an OSS project if it has sponsored developer(s) from a single company?

Surely, the answer is "no" in absolute terms. In relative terms, however, the answer is "better than none" most of the time.

Having anything you care about being in a single failure domain is a bad idea.

- A single company is a bad idea. - A single maintainer is a bad idea. - Maintainers from a single country is a bad idea.

So yes, having all of your maintainers in one company is bad for long-term health.

But 1 is better than 0!

They still employed Enlightenment / EFL developers until a few months ago.
Ah, I'd forgotten about Enlightenment. Did Samsung give up on it? I am reminded of this wonderful post on thedailywtf:

https://what.thedailywtf.com/topic/15001/enlightened

Wow, not seen that rant before! I remember the OpenMoko devs went all-in on GTK (there was a lot of hype at GUADEC, around the same time as Moblin too), but the OS they shipped was very basic, and the actual phone functionality (calls, texts, contacts, etc.) was taken from QtMobile (later renamed Qtopia, then QtExtended). Later, OpenMoko decided to ditch GTK in favour of Enlightenment, which was certainly prettier, but again the actual phone functionality was QtMobile.

According to Wikipedia Moblin became MeeGo, and MeeGo got replaced by Tizen. So it looks like the same GTK-to-Enlightenment switch was made at least twice (possibly FOMO?).

I've only played with programming Enlightement a little; so never had to encounter the horrors described in that link. As a user I really like E16 (it's my go-to non-tiling WM; but I prefer tiling these days). I never got into E17 on the desktop (it's usable on OpenMoko, but I tend to use QtExtended). I like the fact they're pushing what can be done with 2D raster graphics, since everyone else seems to be vector-based (e.g. Cairo) or 3D (e.g. Compiz); but I never found E17 appealing as a WM or desktop from a productivity perspective.

Lol I never saw that before, thanks. In the late 1990's, Englightenment was the WM that was used as the prime example of why Linux was so cool. Its terminal emulator had transparent backgrounds! (I suspect the separate 'background' element you need, mentioned in the link, has something to do with that?) Of course most of us didn't have the hardware required to run Englightenment and its advanced (for the time) graphics capabilities, but that never stopped anyone from using its screenshots as propaganda. Ah, how naive we were. Well certainly I was.
Enlightenment is what got my to try linux (Redhat hurricane I think it was) way back when.

It was very pretty and _very_ broken then, but e-term, which required a tonne of E libs, was the terminal everyone used to show off their desktop so you kind of lived with it.

I never did manage to get it running. I spent a long time trying to compile it on yellow dog linux. I gave up and used fvwm2 instead. Ah, the halcyon days of college when I had more time to waste trying to get things running.
Money quote: "And did I mention EFL is the basis of all applications on Tizen?"
I kinda like Tizen, but Samsung is really shockingly bad at open source. They assimilate and then try appropriate without building a community around it. Joyent public is kinda dead. There is a fork of SmartOS (Danube Cloud), which has far better documentation is much easier to run and actually runs in cheap DC environments like OVH and Hetzner and they have 2.5 active developers.

Tizen is much better in terms of battery than Android Wearable and most other wearables, has pretty decent features, but is a complete mess to get applications on and there is hardly any third party using Tizen, let alone write documentation/tutorials on its development.

All I know about Tizen is from reverse engineering my shitty Galaxy Active 2 with all the on launch promised features disabled if you don't use a Samsung phone and most of them released over a year after the original announcement.

Most people on xda-developers say that it will be their last Samsung wearable. And if you look at the numbers Samsung wearables has crashed in sales.

> I kinda like Tizen, but Samsung is really shockingly bad at open source.

I'd say the biggest advantage of opensource is that it allows "shockingly bad" code to gradually turn good, rather than being thrown into the garbage bin right away 99% of the time despite of potential for improvement.

But you negate that if you don't actually get less bad people into the project, which is the case with most projects that say "send patches, and we may not throw it away after you concede all rights to your code"

That was a great read!

Thanks for sharing it.

Bryce Harrington is the founder / board member of inkscape if memory serves. As far as the Samsung Open Source Group is concerned Carsten Haitzler was heavily involved with that. Carsten is also the founder of Enlightenment. I'd be surprised if there is no one on HN who couldn't get a hold of one or either of them.
Looks like Harrington is willing and able to help - and train a replacement - so not all hope is lost?

https://lists.cairographics.org/archives/cairo/2020-November...

Oh well, I guess the custom terminal I commissioned for playing ADOM will need to be ported.

Details and source code here for anyone interested: http://adom.brinkster.net/forum/messages.asp?thread=6420&sta...

Tangential:

   This is the 2nd time ADOM is mentioned in last 7 days by co-incidence on HN. It just makes me happy and I think it is heavily underrated game.
How would you compare ADOM to other rougelikes? (Nethack, DCSS, Angbad, etc.)
I haven't played ADOM since 1.1.1 (almost 2 decades ago) but I always found it more approachable compared to the alternatives I tried.

It starts you off in an overworld and the initial progression is less linear than the traditional dungeon-delving approach of eg. Nethack and DCSS, so in that sense it feels more RPG-like.

I never really got into Nethack much because it's just so punishing, and while ADOM is definitely far from an easy game, it felt better. DCSS is also similar to ADOM in the sense that the development community tries really hard to make it an enjoyable experience.

I have played ADOM on and off for at least a decade now and have looked at the various guides you find online. Despite that I never even made it to midgame without getting killed by something. It's still a fun game though.
It was fun back in the day. I wish that the developer hadn't backed out of the promise to make it Open Source.

Mechanically, it has moderate (though polished) depth. But it has more story and unique events than most roguelikes. It benefits far more than most from playing entirely unspoiled; there's enough information in-game to solve all its puzzles.

Not sure if you seen the latest incarnation: https://www.ultimate-adom.com/

As far open sourcing the code is concerned, I remember the author said that it would open-up some secrets which players would otherwise will have to discover. E.g existence of "inn of the red rooster"

> As far open sourcing the code is concerned, I remember the author said that it would open-up some secrets which players would otherwise will have to discover. E.g existence of "inn of the red rooster"

I've heard that argument, but people have figured out the various mysteries anyway through reverse engineering. I don't think anything would be lost by opening it up.

I find ADOM to have more intriguing story-line + multiple endings. Also I find few quirks endearing. E.g your first kill matters. If you have killed 50 goblins then you will have to descend that many levels in infinite dungeon for some other questline.
It was one of the big 3 back when everybody playing rougelikes were on Usenet. Definitely a great game, rereleased with graphics on steam.
We need to get better at finding ways to pay people to develop foss. Micro transactions, Patreons, and industry groups are all good ideas. What else is there?
The problem is people only pay for the cool and fancy stuff. Thats why projects like blender and krita are killing it while bluetooth audio and gui libraries are in such a dire state.

Competitors have an advantage where you buy a macbook and the profits go to every single part and not just the eye catching features.

"Killing it" is relative.

Krita is roughly 500k LOCs of code proper. The KDE ki18n library that is one of its primary dependencies which extends Qts internationalization faculties is... about 7k LOCs. Almost all of Kritas immediate dependencies are small shims except for Qt itself which is produced by an already profitable corporation. So qtbase is about 2.3M LOCs but the Qt Company has ~300 employees with most of them working on it.

Krita with its "killing it" manages to employ 4 people full time to work on development. That is on an install base of several millions of active users. The closest competitor to Krita is probably Paint Tool Sai, a proprietary Windows only program that is made by a for profit Japanese corporation as its largely only product that employs around ~10 people. Getting actual employment figures for Systemax Software Development is actually really hard...

Point is Krita is likely shuffling along with half the full time paid employees of its principal competitor while also likely having a larger installed and active userbase due to it being free software and cross platform. They aren't "killing it" at all, especially if you compare it to the elephant in the room at Adobe with a hundred man development team at least making insane amounts of revenue off licensing of Photoshop.

Its revenue is nothing close to hoist the weight of the entirety of the free software ecosystem upon when it doesn't itself come close to even competing in the field its doing a really good job competing it on a tiny development team.

Well, if the fancy projects are killing it, they could always give back to the giants shoulders or piles of dwarfs they are standing on.
Exactly. If GNOME or GTK are killing it (although it isn't clear they are) it would be negligent of them not to share with the projects that they depend on.

Maybe we need to get better at advertising the status of projects. I hope that funding goals being advertised becomes mainstream.

I plan on putting up a Patreon/Liberapay for my photo editor that is purely a passthrough for the boring backend stuff that I rely on.
The solution here is for authors of the eye-catching features to re-spend some of the rewards on infrastructure they depend on.

If a blender dev wants to improve perf and finds that the bottleneck is in some Linux kernel component, they should post a bounty for improving that component.

The problem with this is that they could also just pocket the money, and then they have more money.
Yeah, that is not how the blender institute works.

The question how to balance spending on Blender features vs dependencies is a legit one though. Blender "is killing it" because for years they never chose the easy fix or the low hanging fruit over sustainable changes.

In addition to that the Blender dev community is really goal oriented. Not many holy cows, everybody is just focused on the result. Imagine how Blender's 2.80 changes would've panned out in any typical Open Source project — often they can't strike the balance between old and new users, a lot of bikeshedding, infighting, forks, ...

Blender is killing it because there is a great community that is focused on the results. The influx of money could also have derailed the Blender project, but it didn't, which is further proof that they are doing something right.

Sidenote: Bluetooth audio is not in a dire state, at least compared to Windows. Let me compare my experience on Windows 10 2004 to a fairly vanilla NixOS PulseAudio configuration. Same Bluetooth chipset, same headphones (Sony WH1000XM3s.)

On Windows:

- Obviously, in Windows, you get the Bluetooth stack automatically, as well as drivers. So I did not have to do any setup. It is possible, though, that some alternate drivers would work better than the default ones, which seem to be buggy.

- Pairing is fairly straight forward. However, sometimes it doesn't work quite right: the device will connect but not function right, sometimes leading to all Bluetooth devices failing to pair or connecting and disconnecting rapidly. This may be related to the driver, although it is using the default driver.

- Playback seems fine when it works. Sometimes it is randomly choppy. My understanding is that Windows 10 supports aptX but not aptX HD, and I can't get it to show up in traces but I suspect aptX is likely the codec being used. SBC is really 'good enough' for most cases though, so it's not a big deal.

- Routing leaves something to be desired. Every single time the device is paired, anything that plays audio needs to be moved or explicitly restarted for it to work. For example, Firefox or Edge tabs playing music typically have to be reloaded even if i unpair and repair the headphones during playback. It also interacts ridiculously poorly with my Realtek drivers, also Windows 10 defaults. I typically have to jump into the weird mixer and try to get everything right when switching between the two, and some apps like Discord act a little weird even then.

On NixOS:

- Not all distros will require this, but NixOS naturally requires configuration by its nature. Here is my audio-related config, in its entirety:

      hardware.pulseaudio = {
        enable = true;
        daemon.config = {
          flat-volumes = "no";
          resample-method = "speex-float-10";
        };
        extraModules = [ pkgs.pulseaudio-modules-bt ];
        package = pkgs.pulseaudioFull;
      };
      hardware.bluetooth = {
        enable = true;
        package = pkgs.bluezFull;
      };
      nixpkgs.config.pulseaudio = true;
      environment.systemPackages = with pkgs; [
        pavucontrol pulsemixer broadcom-bt-firmware
      ];
Most of this is NixOS specific. Some of it is personal: I disable flat-volumes because I do not like flat-volumes. I switch the resampler to a different one to prevent aliasing artifacts. (This may seem like audiophile non-sense, but it actually impacted real-time resampling chibi-tech's album "The Mutual Promise" which has 18-20 kHz sounds in it, designed to sync to some Pripara toys. Pretty interesting stuff.)

In any case, it's the whole config. I don't think I ever had to trial-and-error it, I just followed the manual. So not too bad.

Honestly, I fully expected it would not work. And for a long time, I never tried the setup. However, a few months ago I tried it. Here is what I found:

- Pairing works. I have yet to hit an issue where pairing does not work.

- Playback works, and using either Blueman or the PulseAudio mixer it is trivial to switch between A2DP codecs or, if for some reason one would want to do it manually, HSP. Once again, I have not noticed problems. I tend to use the Sony LDAC codec since it seems most appropriate for the headphones.

- Routing seems okay too. I do still sometimes run into a situation where I need to switch an app manually, but it's easy to do in the PulseAudio mixer.

My verdict is that the Linux Bluetooth Audio situation is not bad. Yes, no ordinary Windows user could stomach the Nix configuration in my Nix setup. However, you can notice the lack of hacks needed here: clearly, Bluez and PulseAudio are now up to the task of handling Bluetooth Audio "correctly". I haven't tried but I suspect Debian or Fedora would, with a couple of packages installed, handle Bluetooth devices just fine so as long as the Bluetooth chipset is supported.

Bonus: In the future, Pipewire will take over for Bluetooth audio. For the time being it is limited to SBC and can't handle other codecs yet, but I gave it a shot and it seems to work just fine, too. Hopefully that holds into the future.

On Debian one must install "bluetooth" and "pulseaudio-module-bluetooth" that for some reason are not installed by default. After that it's a matter of synchronizing things on the bluetooth GUI and if you don't want the obvious setup, deciding where the sound goes to on the mixer GUI.

But well, when I brought my current earplugs the mic didn't look like it was working on my (Android) phone and searched the web for it, I discovered that many lines of JBL plugs aren't supported on Windows by default. There are devices that only fail to work on Teams, or Skype, some only work on those applications, some reproduce anything except audio from videos (all issues confirmed by the manufacturer).

As of late this summer I was unable to get my BT headphones to work on Fedora in a 2-way transmission mode. The speakers would work but not the microphone. I don't remember the details but when I dug deep into the issue, there seemed to be a fight about merging a PR that would allow it.

There are no longer many things keeping me from going all-Linux but I am not going to sit through every meeting chained to my desktop with a little earbud wire.

Hopefully pipewire will resolve this, and I don't think any of us realized in advance what meetings were going to look like in 2020.

If it isn’t working, you might need to switch your headphones to the HSP profile. You can do this in Pavucontrol, the last tab with the devices. I prefer using wired headphones or at least a wired setup for this because HSP is piss-poor quality. But the quality issue, at least, is nothing especially new for BT devices on calls.
Most Bluetooth devices work fine for me with Fedora, but I still haven't been able to get my Bose quietcontrol headphones to work correctly - they pair but then start playing random noises and telling me there's an incoming call.

I have some wired headphones I prefer in general so haven't messed around with it too much, but it's been a source of frustration when I've been away from home and needed to do a call with only the Bose ones on me

>start playing random noises and telling me there's an incoming call.

Open your bluetooth settings and change the mode from HSP/HFP to A2DP mode. That incoming call issue happens in HSP mode because something has tried to access a microphone which has defaulted to your headphones mic which causes the bluetooth mode to switch.

Interesting. I suppose there are, then, still some serious issues to resolve. I guess for now I can just be glad I did not go with Bose QCs instead :)
While I agree that Bluetooth audio on Windows is crap, its saving grace is that when it works, it's stellar. I have the same headphones as you, and audio quality is consistently significantly better on Windows than on Linux (most notably when I'm also using the microphone).
I think with standard Bluetooth, recording will necessarily kick you to HSP with terrible phone quality. This happens to me on Windows and Linux, with my Sony WH1000XM3s. If there is a workaround please let me know. I am sure there are some non-standard extensions but I don't think my headphones support them.

If you are experiencing "bad" quality on Linux, you probably would benefit significantly from installing the additional codecs. Linux is the only desktop operating system that supports basically all of the Bluetooth audio codecs! But of course, they're patent-encumbered (except Sony LDAC) and thus not typically included by default.

Such a great point. I feel like this explains the state of Linux desktop in a nutshell, actually.
May be do it that way, like pay for freedesktop.org and have it filter down.
https://wiki.snowdrift.coop

Disclosure: I am a Snowdrift.coop cofounder. I have no financial stake in the project (we're a non-profit cooperative and currently a fully volunteer team), although I hope in the future we'll have the income to hire me, for a modest salary.

> Snowdrift.coop, a non-profit cooperative platform for funding freely-licensed works everyone can use and share without limitations.

>Our core feature is a new fundraising approach we call crowdmatching. Patrons donate together by all agreeing to match one another instead of donating unilaterally.

Edit: so, everybody donates the minimum donation of all donations? The "How it works" page is not clear enough.

Public infrastructure gets financed through taxes and is performed via executive departments or government contracts, sometimes as academic research.

Software may need to adopt this model.

It's ocurred to me that ancient symbolic megaprojects (e.g., pyramid-building) may have played roles in developing and maintaining technical skills, supply chains, and generaal interest. All the cool hard problems, great minds, and stable funding.

This is a big part of Kurt Mendelssohn's thesis in The Riddle of the Pyramids, which is a very enjoyable read: https://en.wikipedia.org/wiki/Kurt_Mendelssohn#The_Pyramid_T...

Also, I am pleased that this discussion is in a thread about Cairo.

Thank you!

I'd arrived at the possibility independently, glad to see I'm not the first. Hugely appreciate the reference.

Do you want political control over key internet infrastructure? Because that's how you get political control over key internet infrastructure...
There is already implicit political control. If the US wants to ban X, or forbid encryption, it will impact almost everyone on the planet. Much less so if it were Afghanistan, of course.

The EU has a funs that donates money and runs bug bounty programs for critical FOSS software it uses. It should be expanded to include more underlying libraries and lower-level projects, but it's a pretty good start and doesn't come with strings attached.

The EU sounds like a great approach; do you know if and how often they re-evaluate the impact and level of their dependencies?
> doesn't come with strings attached.

yet

What we have now is corporate control, often with covert government influence, and benign-to-malicious neglect.

I'm willing to risk public support in at least part.

I've always liked the idea of getting companies to sign up to second staff members for a month or two to full or part time open source work. They could get a nice friendly looking "open source supporter" badge for it, like the Fair Tax Mark. It'd take a small organisation being clever to do it but I think it'd work and free up lots and lots of hours of work to be done on valuable stuff.
If it were tax donation incentives I bet people/companies would do it.
Of course they would.

But given the beneficiaries of open source software it would be hard to construe as charity, really. Just a bung to tech companies.

I keep floating the idea of royalties.

FOSS purists object, leading to the libre vs gratis rabbit hole.

I'm now revisiting Hintjens' (ZeroMQ) advice around trademarks and licensing.

Maybe there's an angle around trademarks. Like maybe you can call your fork "SuperWidget™ compatible", for a fee.

Dual licensing seems obvious. But maybe we need some new revenue sharing licenses better suited for cloud providers and SAAS. (A life time ago, I used libraries in my shrink-wrap. So negotiating price feels familiar to me.)

Libraries kinda "feel" like music sampling. So I've been skim reading how that world handles royalties. I like that they have boilerplate for all the most common scenarios.

I'm also alert to case studies and financial reports about existing efforts, successful, failed, or otherwise. This solution to funding might just be as simple as mimicking success.

Writing to standards, such that when one implementation is in trouble, there's a migration path to use another one, and a motivation for multiple implementations to exist in the first place, via a layered and contained API that can be implemented from scratch (unlike browsers and over-reaching desktop and system frameworks). Of course, this doesn't work with our ADHD-driven development scene longing for fresh programming languages all the time which gets you half-finished implementations until the next thing comes along.
We need money being able to be transfered to the once doing open source. Still many of them hack voluntarily and out of pure altruism.

What should be transparent is the amount of money they receive. It should be the oss project leaders responsibility to further distribute the donations. Using bitcoin for transparency. Nobody is going to work for an oss project where the leader gets all the money and doesn't redistribute.

Many intermediaries, institutions and paperwork will ruin that. My 2c.

And more on the Cairo in question:

https://en.wikipedia.org/wiki/Cairo_(graphics)

(I still default to association "Cairo" and shftware with Microsoft, though there's also an Apple/Mac context https://en.wikipedia.org/wiki/Fonts_on_Macintosh#Fonts_of_th... ....)

Why not fork it? The usual reason to upstream patches (aside from charity) is to offload the work of integrating them with future upstream changes. If upstream is not making changes anymore, what’s the problem?
Perhaps the concern in forking it would be that the group that creates the fork now has the responsibility of maintaining another project, on top of the project(s) they already maintain.
A part of me thinks that sounds like a fun retirement project, to become the primary maintainer of a useful but unglamorous OSS project; another part of me, looking at how my predecessors (already-retired programmers) apparently disagree, suspect that by the time I retire I'll either not want to deal with the burden, or have more fun things to spend my time on.
The problem seems to be the lack of maintainers. Assuming that the forker has enough trust why not just start maintaining the original project?

Forking isn't necessarily bad, but it is often better to keep the "official" status of the upstream project unless it is necessary to drop it.

GTK should vendor Cairo.