|
|
Subscribe / Log in / New account

Fedora opens up to bundling

Fedora opens up to bundling

Posted Oct 15, 2015 10:19 UTC (Thu) by NAR (subscriber, #1313)
In reply to: Fedora opens up to bundling by hkario
Parent article: Fedora opens up to bundling

The (other) problem is difference between distributions. Ubuntu LTS has boost 1.54, SuSE has 1.49, debian jessy has 1.55 - now which version shall I use in my application? I presume RHEL uses a fourth different version, just for the fun of it. Oh, by the way, the latest Fedora uses 1.57 (or 1.58?). Does this provide any value for the application developers or users? Absolutely not.

Of course, there's still the classic problem of "I want old stable version of everything except the browser which I want the latest", but the browser depends on newer libraries, so I have to upgrade everything. Unless the distributions start to support all versions of all libraries during their lifetime, application software will bundle their libraries. As they generally tend to lack manpower, I doubt this will come to pass.


to post comments

Fedora opens up to bundling

Posted Oct 15, 2015 15:50 UTC (Thu) by josh (subscriber, #17465) [Link] (7 responses)

> The (other) problem is difference between distributions. Ubuntu LTS has boost 1.54, SuSE has 1.49, debian jessy has 1.55 - now which version shall I use in my application?

Assuming you don't have specific feature requirements that necessitate a more recent version, you should use 1.54 on Ubuntu LTS, 1.49 on SuSE, and 1.55 on Debian stable. (Hopefully the C++ ABI will stabilize to the point that if you *really* want to build just one version for all distributions, you can build against the oldest you support and run with any newer version. But when you build as part of a distribution, you use that distribution's package and whatever version it provides.)

Fedora opens up to bundling

Posted Oct 15, 2015 18:14 UTC (Thu) by ms_43 (subscriber, #99293) [Link] (1 responses)

Boost provides no ABI guarantees. The only way you can use boost is to bundle it.

Well, most of boost is header-only anyway, so the bundling is fully automated by cpp.

Fedora opens up to bundling

Posted Oct 15, 2015 20:18 UTC (Thu) by josh (subscriber, #17465) [Link]

> The only way you can use boost is to bundle it.

https://packages.debian.org/libboost-iostreams1.58.0

Fedora opens up to bundling

Posted Oct 16, 2015 13:21 UTC (Fri) by NAR (subscriber, #1313) [Link] (2 responses)

So I have to maintain three different versions for absolutely no gain. And gets really annoying when different versions have different bugs requiring different workarounds...

Fedora opens up to bundling

Posted Oct 16, 2015 16:33 UTC (Fri) by josh (subscriber, #17465) [Link]

No, you maintain zero versions, unless you particularly want to be a distribution package maintainer.

Fedora opens up to bundling

Posted Oct 16, 2015 16:45 UTC (Fri) by bronson (subscriber, #4806) [Link]

And it's even worse: you need to maintain three different build environments in three different distros (at least). Even with virtualization, that can take up quite a few hours per week right there.

Fedora opens up to bundling

Posted Oct 16, 2015 16:27 UTC (Fri) by stevem (subscriber, #1512) [Link] (1 responses)

> Hopefully the C++ ABI will stabilize

*giggle* Sorry, that's just pure comedy...

Fedora opens up to bundling

Posted Oct 16, 2015 16:34 UTC (Fri) by josh (subscriber, #17465) [Link]

See https://isocpp.org/files/papers/n4028.pdf and other standards-committee work on this.

Fedora opens up to bundling

Posted Oct 17, 2015 19:33 UTC (Sat) by lsl (subscriber, #86508) [Link] (2 responses)

> The (other) problem is difference between distributions. Ubuntu LTS has boost 1.54, SuSE has 1.49, debian jessy has 1.55 - now which version shall I use in my application?

None of the above. Use a sane library that offers a proper interface and keeps it stable across releases. Then you can pick the feature set of the oldest version you want to support and it will continue to work on all later versions.

Even if all distributions had the exact same version of boost, that wouldn't solve your problem. When boost version n+1 gets released and included in distributions, your stuff would still break unless someone commits to maintaining old boost versions indefinitely. Distros won't (and can't) do that with an upstream that is as hostile to backwards compatibility as boost.

Fedora opens up to bundling

Posted Oct 21, 2015 16:12 UTC (Wed) by rwmj (subscriber, #5474) [Link] (1 responses)

... is the correct answer. The problem isn't just applications, it's libraries not offering long term stable API guarantees. This is sloppy, lazy programming.

Fedora opens up to bundling

Posted Oct 21, 2015 17:43 UTC (Wed) by pizza (subscriber, #46) [Link]

...except for applications that take libraries, mangle them in incompatible ways, and bundle the results. (Chrome/chromium was the most infamous example of this, though I understand they have considerably cleaned up their act in recent years)


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds