apbuild

A fork of apbuild (autopackage gcc wrapper), used to build deadbeef and its dependencies and plugins for linux (by DeaDBeeF-Player)

Apbuild Alternatives

Similar projects and alternatives to apbuild

  • Fennel

    91 apbuild VS Fennel

    Lua Lisp Language

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better apbuild alternative or higher similarity.

apbuild reviews and mentions

Posts with mentions or reviews of apbuild. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-28.
  • Did we lose our way in making efficient software? – ~30 MB doc file vs. browser
    2 projects | news.ycombinator.com | 28 Apr 2024
    Things do break sadly, all the time, because the GNU symbol versioning scheme is badly designed, badly documented and has extremely poor usability. I've been doing this stuff for over 20 years now [1] [2], and over that time period have had to help people resolve mysterious errors caused by this stuff over and over and over again.

    Good platforms allow you to build on newer versions whilst targeting older versions. Developers often run newer platform releases than their users, because they want to develop software that optionally uses newer features, because they're power users who like to upgrade, they need toolchain fixes or security patches or many other reasons. So devs need a "--release 12" type flag that lets them say, compile my software so it can run on platform release 12 and verify it will run.

    On any platform designed by people who know what they're doing (literally all of the others) this is possible and easy. On Linux it is nearly impossible because the entire user land just does not care about supporting this feature. You can, technically, force the GNU ld to pick a symbol version that isn't the latest, but:

    • How to do this is documented only in the middle of a dusty ld manual nobody has ever read.

    • It has to be done on a per symbol basis. You can't just say "target glibc 2.25"

    • What versions exist for each symbol isn't documented. You have to discover that using nm.

    • What changes happened between each symbol isn't documented, not even in the glibc source code. The header, for example, may in theory no longer match older versions of the symbols (although in practice they usually do).

    • What versions of glibc are used by each version of each distribution, isn't documented.

    And then it used to be that the problems would repeat at higher levels of the stack, e.g. compiling against the headers for newer versions of GTK2 would helpfully give your binary silent dependencies on new versions of the library, even if you thought you didn't use any features from it.

    Of course everyone gave up on desktop Linux long ago so that hardly matters now. The only parts of the Linux userland that still matter are the C library and a few other low level libs like OpenSSL (sometimes, depending on your language). Even those are going away. A lot of apps now are being statically linked against muslc. Go apps make syscalls directly. Increasingly the only API that matters is the Linux syscall API.

    The result is this kind of disconnect: people say "the user land is unstable, I can't make it work" and then people who have presumably never tried to distribute software to Linux users themselves step in to say, well technically it does work. No, it has never worked, not well enough for people to trust it.

    [1] Here's a guide to writing shared libraries for Linux that I wrote in 2004: https://plan99.net/~mike/writing-shared-libraries.html which apparently some people still use!

    [2] Here's a script that used to help people compile binaries that worked on older GNU userspaces: https://github.com/DeaDBeeF-Player/apbuild

Stats

Basic apbuild repo stats
1
1
-
over 2 years ago

The primary programming language of apbuild is Perl.

Popular Comparisons


Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com