Gentoo Archives: gentoo-dev

From: Michael Orlitzky <mjo@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Integrating Portage with other package managers
Date: Wed, 07 Mar 2018 16:51:34
Message-Id: b425dbfd-57cf-cf9e-ade4-e2b62f2dafa1@gentoo.org
In Reply to: [gentoo-dev] Integrating Portage with other package managers by anoteros@teknik.io
1 On 03/07/2018 11:06 AM, anoteros@××××××.io wrote:
2 > Why should portage download some outdated second copy of the
3 > sources for 'bar', rebuild it, and scatter it around the file system
4 > where it cannot be used by other programs installed by cabal?
5
6 These other package managers don't solve any hard problems -- they're
7 basically a fancy interface around wget and "git clone." Portage on the
8 other hand has ~20 years of good ideas and hard work on the hard
9 problems in package management. For example...
10
11
12 > It seems reasonable to me to 'hook' portage into these other package
13 > managers, so that running 'emerge bar' would actually run 'cabal install
14 > bar'
15
16 Can "cabal install" build or even identify the C libraries that your
17 Haskell package needs? No, because nobody ever thought of that, and it
18 seems kind of hard now that the cabal build system has no ability to
19 build non-Haskell packages, so no one is ever going to work on it.
20
21 Can "cabal install" rebuild your Haskell packages when the ABI of some
22 library changes? No, because "cabal install" doesn't have any idea
23 what's installed on your system.
24
25 Can "cabal install" uninstall a package? Nope, it has no idea what was
26 done during the installation, and thus no idea what to undo.
27
28 Can "cabal install" verify the integrity of your downloaded source code?
29 No, because by design it fetches and runs code from complete strangers.
30
31 Can "cabal install" use a local tarball to function without network
32 access? Etc. We're dead in the water.
33
34 Every other language-specific package manager has the same problems,
35 because they're all written by people who didn't know anything about
36 package management and then got bored when they realized that there's
37 more to it than parsing a json file of dependencies.
38
39 If you want to eliminate the duplication of effort, tell these people to
40 use Gentoo Prefix instead of writing the N+1st crippled PM. Doing it the
41 other way around won't work because we'd be replacing one good thing
42 with 75 shitty things.

Replies