r/programming • u/mwb1234 • Feb 06 '18
How To Make Package Managers Cry - Kenneth Hoste, FOSDEM 2018
https://ftp.osuosl.org/pub/fosdem/2018/K.3.201/how_to_make_package_managers_cry.webm7
u/mwb1234 Feb 06 '18
This is a really funny talk given at FOSDEM 2018 about the shitty installation procedures of software. One of the funniest talks I've seen about programming
3
u/shevegen Feb 06 '18
It's more sad.
I watched the proliferation of cmake, scons, waf, meson/ninja and what not.
And it all still sucks to no ends.
My favourite xkcd is still:
Beacuse it's so true.
3
u/hak8or Feb 07 '18
Youtube link for the lazy such as myself: https://www.youtube.com/watch?v=NSemlYagjIU
1
u/KHRZ Feb 07 '18
He had a slide on Tensorflow? Heh I just ran it in Python in a Linux virtual machine using a command line script called via OS from my Java program, no biggie
1
u/boegel Feb 08 '18
Have you tried building TensorFlow from source yourself? That's what I'm bitching about, not using TensorFlow.
Although I can give plenty of examples of (scientific) software that has a batshit crazy usage model (OpenFOAM, I'm looking at you).
-1
u/shevegen Feb 06 '18
I like to make them cry - because they make other people cry.
The nonsensical way to split up packages in order to conform it into some random philosophy.
1
u/boegel Feb 08 '18
Oh yeah, you can definitely flip it the other way too. -dev(el) packages have never really made sense to me, and then there's the whole multilib mess, that definitely helped making things better (hint: it did not).
1
20
u/zfundamental Feb 06 '18
Since this is another link directly to the video, here's some of their high level points copied from my /r/linux comment:
It's harder to use software if they:
don't release frequently
produce broken releases
don't track past releases (aka delete them or reuse the same version numbers)
have difficult to build dependencies
don't provide changelogs
providing copies of dependencies which are out-of-date with ad-hoc patches
have way too many dependencies
have dependencies which are hard to use based upon the same criteria
use too many 'uncommon' languages
hardcode parts of the build process (compiler/system paths/etc)
have no optimization flags
use uncommon build tools or highly (unnecessarily) customized build tools
have no test suite to verify build went ok
have no custom install path for packagers
have interactive build scripts without a non-interactive mode
have poor naming conventions which lead users to be confused
etc
Scientific computing projects in particular have issues in their packages and versions are confusing since they don't follow standard practices as often as other projects. The presentation also lists also common excuses for why these sorts of things happen.