19 ms·
Is there still somebody in the Cairo community who is able to make a release?
- throwawydedbee 6y agoWhat was it replaced with?
- smbullet 6y agoJust an FYI, all of your comments are getting automatically marked dead.
- grzm 6y agohttps://news.ycombinator.com/item?id=24015928 https://news.ycombinator.com/item?id=24015928
- smbullet 6y agoWeird, I guess the first comment on your HN account isn't allowed to be political.
- mkl 6y agoThe account name also explicitly describes itself as throwaway, so the combination of those seems worth hitting hard.
- binarycodedhex 6y agoPolitics is a realm the average person has no power in, yet many adhere to tribal, cargo cult fashions and canards that divide-and-conquer people into atomized groups of one. Is that political or apolitical? ¯\_(ツ)_/¯ Throw politics out the window and get behind policies individually.
- throwawydedbee 6y agoThanks, I appreciate it. I'm pretty much on the "event horizon" of HN, not really acceptable, nor quite awful enough to be banned forever. Not sure why I keep coming back. Some moral failing, no doubt. Godspeed to all. Edit: Also, was that the worst question you ever saw on HN?
- bmmayer1 6y agoFor noobs: what is Cairo?
- aaronbrethorst 6y agoCairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB. https://www.cairographics.org https://www.cairographics.org
- LukeShu 6y agoNot just what 'aaronbrethorst said; Cairo isn't just a 2D graphics library, but it is the foundational 2D graphics library that underpins most of the modern GNU/Linux desktop: It's what's used by gstreamer, GTK+ 2, GTK+ 3, Java... and if an app manages to avoid using any infrastructure that uses Cairo (Qt doesn't), if the app does 2D graphics things then it's likely that the app uses Cairo directly.
- 0-_-0 6y agoThere was even a proposal a few years ago to make Cairo part of the C++ standard library: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4073.pdf http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n407...
- iamcreasy 6y agoCan you tell me a bit more about how Java uses Cairo to draw? I was under the assumption that Java interface with the underlying OS to draw.
- LukeShu 6y agoFirst of all, when I say "Java", I mean OpenJDK; things might be different in the Oracle side of the world. My naive answer was going to be that, from Java's perspective libcairo is part of the underlying OS. But when I wrote my original post, I was taking the fact that libawt_xawt (the awt implementation for X11) links against Cairo at face-value. But looking a little closer at that, it only uses Cairo in its integration with GTK+ (as GTK+ uses Cairo). Now, OpenJFX (which you could quibble about whether it's "part of" Java) uses Cairo extensively in its implementation of using HTML/CSS for Java UIs.
- adamredwoods 6y agoIs there a preferred cross-platform, open-source library for SVG than Cairo?
- p4bl0 6y agoIt seems the only alternative is Skia (https://skia.org/ https://skia.org/), which is a Google project…
- dylan604 6y agogreat, so it has what 18 months before being killed off?
- Matheus28 6y agoIt's used by Chrome, Blink, and a lot of other projects, so unlikely to be killed any time soon.
- mdwrigh2 6y agoSkia has been around for 15 years (open source for 12) and is used in a number of high priority projects for Google (e.g. Android, Chrome). It's incredibly unlikely it will be killed any time soon.
- Matheus28 6y agoSide note: Skia can't render SVGs directly. You need a separate library to do the parsing and issue commands to Skia. I think they might have experimental support for simple svgs committed in the repo, though.
- badsectoracula 6y agoAFAIK one issue with Skia is that its API is not stable (and it is written in C++ which makes stability kinda hard) whereas Cairo's API has been stable for a long time.
- lxe 6y agoWhat about Skia?
- cirno 6y agoCan we talk about why projects need to be actively maintained and extended indefinitely? Cairo paints things. It does a good job of it. What's wrong with it? Leave it on Git, accept pull requests, check it once a week/month, you're good.
- adamjb 6y agoSounds like we've got a volunteer!
- indolering 6y agoExactly. For all of the wailing and gnashing of teeth around replacing X windows with Wayland, no one has stepped up to maintain X.org since Red Hat stopped funding its development. Old code isn't bad because its old, its bad because engineers decided it wasn't worth the minimal effort required to accept and release security fixes.
- jolmg 6y agoExactly? Their comment doesn't follow at all. cirno asks why continued development is necessary. That isn't addressed at all by telling them to volunteer. They're asking why anyone at all needs to do that. The point being that cairo should be very mature and stable by now.
- saalweachter 6y agoI think the problem is that metaphors have legs. We like to talk about software as architecture. You design a thing. You build a thing. It is built. Except, real architecture doesn't work that way, and it turns out metaphoric architecture doesn't either. If you walk down the street long enough you will eventually see a house that is unmaintained. It wasn't broken to begin with, and no one broke it outright, but over time the paint (and shingles) have peeled, rot has set in, and now the foundation is cracked and the frame is starting to sag. Even maintenance isn't always safe. Sometimes you're up on the cathedral, fixing the roof, someone flicks a cigarette butt the wrong way and it doesn't matter how well it was architected 800 years ago, it's on fire now. We thought our digital creations were free from the decay or physical ones are subject to, but it turns out we were wrong, because even if the bits themselves don't actually rot, the digital environment they are living in constantly changes, and it amounts to the same thing.
- 29athrowaway 6y agoIf you are looking for a graphics library, there is also Skia. https://skia.org https://skia.org
- zepto 6y agoDoesn’t a whole bunch of gtk stuff depend on Cairo?
- LukeShu 6y agoYep!
- deleted 6y ago[deleted]
- adamnemecek 6y agoYou guys should check out this Rust port of nanovg I'm maintaining. https://github.com/femtovg/femtovg https://github.com/femtovg/femtovg I'm in the process of adding a metal backend and wgpu backend is planned. It's debatable how production ready it is, but it's a lot more hackable (as in one can work on it since it's a small codebase) than skia or Cairo.
- ChickeNES 6y agonanovg has nowhere near the same depth of features as Cairo though. I for one have been using Cairo's software renderer and any GPU-only library is a no-go for my project.
- adamnemecek 6y agoWhat are some missing features?
- ChickeNES 6y agoWell the software rasterizer is the most important to me, but lack of dashed strokes are a problem too. I'm also potentially going to use Cairo's recording and Postscript/PDF surfaces, but it's understandable if those go beyond the scope of your project :)
- schemathings 6y agoI'm only aware of Cairo from 3b1b manim, where it's one of very few named dependencies (cairo, ffmpeg, sox, latex). https://github.com/3b1b/manim https://github.com/3b1b/manim .. Maybe he'll rewrite it in Julia :)
- malkia 6y agoCheck the skia fiddle :) - https://fiddle.skia.org/c/@skcanvas_paint https://fiddle.skia.org/c/@skcanvas_paint
- skee0083 6y agoLinux is dead, and so is all the other junk that runs on top of it. Android included. Google is already working on it's replacement.
- otterlicious 6y agoNothing on this page says the project has been abandoned and the last commit is 3 days ago: https://cgit.freedesktop.org/cairo/log/ https://cgit.freedesktop.org/cairo/log/
- LukeShu 6y agoThe email seems to imply that it's "dead" in that while it has an active community and active contributors, it doesn't have any active maintainers.
- otterlicious 6y agoWhen I wrote this comment the link pointed to the cairographics.org homepage, not Matthias' email.
- p4bl0 6y agoI submitted the link and it's been pointing to this email since the beginning.
- floatingatoll 6y agoIt’s possible the mods merged two threads or similar. Check for top-level comments if curious.
- dang 6y agoWe changed the title but not the url.
- otterlicious 6y agoI guess I must have fat-fingered the domain and the second article down in the history. Any chance of bigger touch targets on mobile already? ;-P
- sitkack 6y agoHow exactly is Cairo "dead"?
- The_rationalist 6y agoEverybody should just switch to Skia. New human resources if not allocated on Skia should go on next gen renderers like fastuidraw
- WesolyKubeczek 6y agoThank you o great open source communities leader, what would we ever do without your most insightful guidance?
- dang 6y agoPlease don't do this here. We're trying for something different. If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html#comments https://news.ycombinator.com/newsguidelines.html#comments and sticking to the rules when posting here, we'd be grateful.
- WesolyKubeczek 6y agoSorry, but general sweeping statements about what everyone should do or not do are annoying to no end. But rest assured I don’t intend to pursue more of the kind of responses like the one I’ve posted above, because it has already brought me joy and made me feel good.
- The_rationalist 6y agoSo did you read my answer to bfclusion? Does it make you think?
- bfuclusion 6y agoIn the spirit of discussion, why do you say this?
- The_rationalist 6y agoWell what I'm saying is quite obvious, I'd even say it is a truism, yet hn readers often downvote even the most basic statements (probably by lack of understanding the topic). But here you ask constructively so I'm gonna answer pedagogically: Skia and Cairo are two of the most used 2D renderers. A 2D renderer is an angular piece of software used by every GUI software. It has a key role in 1) rendering correctness (anti aliasing, no bug, no tearing) and 2) rendering performance. 2D renderer performance is key for all graphical workloads, from the scrolling/animation performance of your browser to the smoothness of any non cli software. As humans we strive for progress, we want tomorrow to be better than now, therefore we want more correctness and more performance by 1) improving 2D renderers where it matters the most and 2) making sure that the right 2D renderer is used by softwares. For example a big reason of slowness of Firefox a few years ago was because they used Cairo, by switching to Skia they got "free" significant performance gains for the pleasure of all users and even for the pleasure of HN readers currently scrolling this thread. Skia is the only renderer to have a lot of human resources allocated to it (thanks to Google) and this translate by it being the most performant 2D rendering, sometimes by order of magnitudes. But skia can become even better by integrating new optimizations, Vulkan, NVpath, AVX, etc So now you can understand the original statements: Everybody should switch to Skia This means that new and existing software would significantly benefit from switching from Cairo to Skia (this argument was sufficient before the news but is even more important now that Cairo is unmaintained) As an end users you will probably get more FPS, accuracy and lower power consumption (which is ecological btw). This thread about Cairo being unmaintained could attract potential new contributors. Instead I'm saying to those new contributors: New human resources if not allocated on Skia should go on next gen renderers like fastuidraw Because their work if on Skia would benefit order of magnitude more people. Else they could work on next gen renderers, having talked to the devs of blend2d, fastuidraw, etc I have big doubts they'll ever one day be able to replace skia (too many missing features e.g full SVG compliance) but their performance paradigm shifts could be backported into skia once proved, so contributors could have a huge impact here too. Now I hope this is clearer for you
- phendrenad2 6y agoHey how about we all stop treating open-source software like a startup company? An open-source project doesn't "die" just because it stops getting updates. If people want updates, they can go download the Cairo source and contribute. Or fork it. But no, it's dead. It's all over. By that logic, humans are "dead" because we haven't evolved extra appendages or more eyes recently.
- LukeShu 6y agoI agree with you, but that doesn't seem to be what's happening here. It looks like people are contributing, but that the contributors are realizing that the maintainers/leaders have all vanished. So really there are 3 possible outcomes here: 1. the contributors pressure one of the maintainers to come back, 2. the contributors get in touch with one of the maintainers and convince them to promote some contributors to maintainers, or 3. the contributors fork Cairo, because they can't get a maintainer involved. The email comes from a contributor, who is effectively saying "last call for (1) or (2), and then I'm doing (3)".
- wolco2 6y agoForking is the ideal solution here. Leave Cairo what it is and continue development in the direction you want. In time those changes can be merged back in if the orginal project continues. Pressuring maintainers to come back is foolish.
- abraae 6y ago> Pressuring maintainers to come back is foolish. Unless that pressure has some impact on the maintainer's boss(es).
- _-___________-_ 6y agoThe issue with forking is that you take on a lot more responsibility than you did by submitting a PR. Many of the people submitting PRs probably already contribute to projects that depend on Cairo. They may even maintain those projects. They may not have spare bandwidth to take on the maintenance of Cairo too.
- avery42 6y agoI feel like the post title should be something closer to the email, like one of the first lines "Is there still somebody around in the cairo community who is willing and able to make a release".
- virtualritz 6y agoThe reason I didn't use Cairo in the past is that it wasn't dealing with color correctly[1]. Which kinda makes everything you draw in it with antialiasing or transparency ... wrong. At least if you care about these things which I do for the use cases I have for a vector graphics lib. Did this get fixed in the meantime? Last time I checked this[2] was still open. [1] https://skia.org/user/sample/color?cl=9919 https://skia.org/user/sample/color?cl=9919 [2] https://openprinting.github.io/gsoc2020/17-get-cairo-code-upstream/ https://openprinting.github.io/gsoc2020/17-get-cairo-code-up...
- WesolyKubeczek 6y agoOkay, my question is: if a project is really in maintenance, what should be the duties of its maintainer? The problem is: there are contributions, there are pull requests, they even get merged. The code gets reviewed, and it’s not an easy feat. And while it’s all being done, whenever there’s a question of making a tarball, attaching a number to it, making sure the changelog has all it needs to say, people who do code reviews and merge requests suddenly all start feeling tired and bored. Too bored to slap a tag on a repository, too bored to roll a tarball, too proud of being a bottleneck. Maybe a robot could do releases? It could even build GTK against the newly minted release and run its test suite too...
- dang 6y agoWe changed the title from "Cairo Is Dead", which is a phrase from the email, to a perhaps more representative phrase from the email. (shortened to fit HN's 80 char limit)
- Sephr 6y agoThanks, the new title is much more actionable. Have you ever considered increasing the title character limit slightly? The current limit can have quite a constraining effect on some titles, sometimes to the detriment of the thread.
- dang 6y agoIt's true, but any limit will have a constraining effect on some titles. We have to weigh that against other concerns like the visual proportions of the front page and the site value of economy of expression. Having worked with thousands of HN titles over the years, it's amazing how rarely the 80 char limit really gets in the way. It's nearly always possible to make a good title fit, without resorting to weird abbreviations or other gimmicks. So I see it as one of those constraints that serves creativity. You can see this in the OP actually. The direct quote is: Is there still somebody around in the cairo community who is willing and able to make a release? ...which is 96 chars. The shortened version seems clearly better as a title, and all I did was take out some redundancies (or, if you prefer, some subtleties that are superfluous in a title). Edit: if anyone's wondering why so much attention on a mere title - I used to wonder that too, but titles turn out to be a much deeper issue for the site than they at first seem: https://news.ycombinator.com/item?id=20429573 https://news.ycombinator.com/item?id=20429573 https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=by%3Adang%20title%20fever&sort=byDate&type=comment https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
- antimba 6y agoThis 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 https://gitlab.freedesktop.org/cairo/cairo/-/issues/422 [2]: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/1 https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/...
- eggsome 6y agoOh 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&start=62550&page=1&tmp=72806 http://adom.brinkster.net/forum/messages.asp?thread=6420&sta...
- mathgenius 6y agoI remember a linuxconf from around 2000 or so where they announced cairo. It was pretty exciting stuff, and over the years I have used it for various projects. The latest is this one https://github.com/punkdit/huygens https://github.com/punkdit/huygens
- DCKing 6y agoI've been anticipating a new cairo release for some time. The same Mathias Clasen who wrote this email has done amazing work at getting Pango font rendering a lot closer to what is possible on Windows and macOS. The killer feature for me is subpixel positioning of glyphs [2]. He made these changes over a year ago. The result would be all GTK apps being able to perform much finer grained glyph positioning, potentially fixing a lot weird font positioning issues that bother me in GTK apps. But for any distro to make use them this needs a cairo release with his patches built in. I found myself periodically visiting cairographics.org just to see if there was an update ready for the next Ubuntu or Fedora. Never done that before for a "boring system package"... [1]: https://blogs.gnome.org/mclasen/2019/07/27/more-text-rendering-updates/ https://blogs.gnome.org/mclasen/2019/07/27/more-text-renderi... [2]: The topic of font rendering always evokes responses like "Fonts look fine to me" - good for you, but this actually bothers quite some people. See also: https://pandasauce.org/post/linux-fonts/ https://pandasauce.org/post/linux-fonts/
- Ballas 6y agoYou wrote that with such passion that I read the articles. As a caution to people think the font rendering is fine - DON'T read the articles! You cannot unsee it. Thanks for this very informative post!
- stefanfisk 6y agohttps://xkcd.com/1015/ https://xkcd.com/1015/
- 0x_rs 6y agoThat also killed support for bitmap fonts, a terrible shame.
- rozab 6y agoWhich made every single glyph on my laptop a blank rectangle. I guess there's a reason people don't want to take on the responsibility for these critical packages; who knows what horrible workflows you'll break! https://xkcd.com/1172/ https://xkcd.com/1172/ I couldn't even begin to understand why the changes required the removal of this feature. But I won't complain, at least someone's doing the hard work.
- kwijibob 6y agoI was involved in the Gnome project with fond memories from 1999-2004. I'm amazed to see Matthias Clasen still involved 20 years later. This guy is a hero! True he is paid by Red Hat. But the Linux desktop needs people like this. More info: https://blogs.gnome.org/engagement/2019/06/11/meet-matthias-clasen/ https://blogs.gnome.org/engagement/2019/06/11/meet-matthias-...
- gorgoiler 6y agoThis is such sad news. I remember playing with Cairo a few years ago and the library (and documentation, especially) felt lovingly put together. Few projects ascend to the astral planes of immortality. Even Xorg is on the way out. Computer look and feel is very nostalgic and I hope to visit an API museum when I am older, to e.g. look back on fond memories of using repl.it so much in 2020. (Tip to any young people who read this far: take lots of full desktop screenshots as you work. You’ll enjoy looking at them in 20 years time.)
- smarks 6y agoYes, this is sad. I remember integrating Cairo into a project I worked on a number of years ago. At the time, pulling in an open source project was a big ordeal. You had to figure out how to build it, getting all the configuration options correct, pulling in all the dependencies, configuring them, etc. I set aside a whole afternoon to get it working. Anyway, I pulled it down, built it, and was writing simple drawing programs in about 15 minutes. It was amazing.
- DarkWiiPlayer 6y ago> (Tip to any young people who read this far: take lots of full desktop screenshots as you work. You’ll enjoy looking at them in 20 years time.) I uploaded a bunch of screenshots to r/unixporn just a few years ago and even those already carry some nostalgia :D
- creata 6y ago> Few projects ascend to the astral planes of immortality. If even Xorg doesn't qualify, which are these few immortal projects?
- shakow 6y agoEmacs, for instance. Now ~35 years and still going strong.
- gorgoiler 6y agoShells, editors, programming languages, the most common core libraries. In the 90s, SSLeay shipped with a cute little shell script that makes a self signed CA for you. It’s still shipped as part of OpenSSL, today.
- graton 6y agoReminds me of the 'ipmitool' project. https://github.com/ipmitool/ipmitool https://github.com/ipmitool/ipmitool No release for a few years now. So a lot of bugs in the last release. Theoretically there is a maintainer but they haven't done any releases. Some bug fixes have been merged into the git repository, but most distros seem to use the last release.
- aerovistae 6y agoWhat is Cairo?
- jgehrcke 6y agoRandall got us covered:-) https://m.xkcd.com/2347/ https://m.xkcd.com/2347/ For imagemagick -- but yeah, still applies :) Make sure to read the hint here: "Someday ImageMagick will finally break for good and we'll have a long period of scrambling as we try to reassemble civilization from the rubble."
- buovjaga 6y agoBryce replied, offering to train a new maintainer: https://lists.cairographics.org/archives/cairo/2020-November/029085.html https://lists.cairographics.org/archives/cairo/2020-November...
- slondr 6y agoI don't think the Linux ecosystem is prepared for Cairo to die. Right now on my system alone, tons of system-critical programs depend on it — Gtk3, Emacs, texlive, pango, gstreamer…