Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove dependencies of libghc #1386

Open
4 of 10 tasks
hololeap opened this issue Feb 20, 2023 · 3 comments
Open
4 of 10 tasks

Remove dependencies of libghc #1386

hololeap opened this issue Feb 20, 2023 · 3 comments

Comments

@hololeap
Copy link
Member

hololeap commented Feb 20, 2023

Any libraries that are used to link libghc have the potential of causing issues such as #1385. These should only be built with the dev-lang/ghc ebuild and left alone other than that.

Specifically, it becomes dangerous when libghc links to some version of package X, while another version of package X is installed on the system. (See the note on "diamond-style dependencies" here.)

Runtime direct/transient dependencies for libghc

(See e.g. https://flora.pm/packages/%40hackage/ghc/9.0.2/dependencies)

  • array
  • base
  • binary
  • bytestring
  • containers
  • deepseq
  • directory
  • exceptions
  • filepath
  • ghc-bignum
  • ghc-boot
  • ghc-boot-th
  • ghc-compact
  • ghc-heap
  • ghc-prim
  • ghci
  • hpc
  • integer-gmp
  • mtl
  • pretty
  • process
  • rts
  • stm
  • template-haskell
  • terminfo
  • time
  • transformers
  • unix

Runtime dependencies for libghc that exist in ::haskell

These could cause the dreaded version mismatch with diamond dependency graphs, since something could depend on libghc

Other "core" libraries in ::haskell

These seem like they would be fine as "upgradable", since they are not direct or indirect run-time dependencies of libghc

  • cabal
    • Perhaps included as a build-time dependency for GHC
  • haskeline
    • Perhaps included as a build-time dependency for GHC
  • parsec
    • Perhaps included as a build-time dependency for GHC
    • Not marked as "upgradeable" in hackport
  • text
    • Run-time dependency of parsec
    • Not marked as "upgradeable" in hackport
  • xhtml
    • Perhaps included as a build-time dependency for GHC

Checklist

hololeap added a commit to gentoo-haskell/hackport that referenced this issue Feb 20, 2023
Bug: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit to gentoo-haskell/hackport that referenced this issue Feb 20, 2023
Bug: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit to gentoo-haskell/hackport that referenced this issue Feb 20, 2023
Bug: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
@hololeap
Copy link
Member Author

It looks like these packages will be need to be modified in the meantime so that people staying on an older version of GHC don't accidentally upgrade the libghc dependencies. Additionally, the "upgradeable" packages mentioned above will need to have this same modification, with the tentative exception of cabal.

What makes sense to me is to update the lower bounds on dev-lang/ghc to match the lowest version listed in CABAL_CORE_LIB_GHC_PV. This way, someone who chooses not to upgrade ghc, but instead stays on ghc-9.0.2 will not be able to upgrade to binary-0.8.9.0, which could cause:

Warning:
This package indirectly depends on multiple versions of the same package. This is very likely to cause a compile failure.

cabal has been "upgradeable" for some time, and most everyone should be using 3.6.3.0 at this point. Doing the procedure outlined above on this particular package would cause people who choose to stay on ghc-9.0.2 to downgrade to cabal-3.4.1.0.

The lower bounds on the "upgradeable" packages listed above can be removed when gentoo-haskell/haskell-updater#19 gets implemented, but the others should have this restriction on their ghc lower bound going forward.

hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Mar 11, 2023
Bug: #1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
@hololeap hololeap mentioned this issue Jul 6, 2023
hololeap added a commit to hololeap/gentoo that referenced this issue Oct 1, 2023
Bug: gentoo-haskell/gentoo-haskell#1386 (comment)
Signed-off-by: hololeap <hololeap@users.noreply.github.com>
hololeap added a commit that referenced this issue Nov 13, 2023
Bug: #1386
Signed-off-by: hololeap <hololeap@protonmail.com>
@hololeap
Copy link
Member Author

hololeap commented Nov 13, 2023

Status report (how many ebuilds still reference internal "non-upgradable" library dependencies):

  • dev-haskell/binary: 23
  • dev-haskell/exceptions: 62
  • dev-haskell/mtl: 240
  • dev-haskell/process: 29
  • dev-haskell/stm: 86
  • dev-haskell/terminfo: 0 🎉
  • dev-haskell/transformers: 34

hololeap added a commit to hololeap/gentoo that referenced this issue Nov 18, 2023
People really shouldn't be installing different versions of this package
than the one that comes bundled with GHC. This package exists for
historical reasons and will be removed in the future.

See: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@protonmail.com>
hololeap added a commit to hololeap/gentoo that referenced this issue Nov 18, 2023
People really shouldn't be installing different versions of this package
than the one that comes bundled with GHC. This package exists for
historical reasons and will be removed in the future.

See: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@protonmail.com>
hololeap added a commit to hololeap/gentoo that referenced this issue Nov 18, 2023
People really shouldn't be installing different versions of this package
than the one that comes bundled with GHC. This package exists for
historical reasons and will be removed in the future.

See: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@protonmail.com>
hololeap added a commit to hololeap/gentoo that referenced this issue Nov 18, 2023
People really shouldn't be installing different versions of this package
than the one that comes bundled with GHC. This package exists for
historical reasons and will be removed in the future.

See: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@protonmail.com>
hololeap added a commit to hololeap/gentoo that referenced this issue Nov 19, 2023
People really shouldn't be installing different versions of this package
than the one that comes bundled with GHC. This package exists for
historical reasons and will be removed in the future.

See: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@protonmail.com>
hololeap added a commit to hololeap/gentoo that referenced this issue Nov 19, 2023
People really shouldn't be installing different versions of this package
than the one that comes bundled with GHC. This package exists for
historical reasons and will be removed in the future.

See: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@protonmail.com>
gentoo-bot pushed a commit to gentoo/gentoo that referenced this issue Nov 19, 2023
People really shouldn't be installing different versions of this package
than the one that comes bundled with GHC. This package exists for
historical reasons and will be removed in the future.

See: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@protonmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
gentoo-bot pushed a commit to gentoo/gentoo that referenced this issue Nov 19, 2023
People really shouldn't be installing different versions of this package
than the one that comes bundled with GHC. This package exists for
historical reasons and will be removed in the future.

See: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@protonmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
hololeap added a commit to hololeap/gentoo-haskell that referenced this issue Jan 21, 2024
Remove explicit stm dependency

Bug: gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@protonmail.com>
hololeap added a commit that referenced this issue Jan 21, 2024
Remove explicit stm dependency

Bug: #1386
Signed-off-by: hololeap <hololeap@protonmail.com>
hololeap added a commit to gentoo-haskell/hackport that referenced this issue Jun 2, 2024
Include "upgradeable" packages that come bundled with ghc-9.6.5, since
some utils list them. These are now filtered out using a upgradeablePkgs
list. This will help newcomers who will likely include these since there
isn't any obvious difference between upgradeable and non-upgradeable
bundled packages at first glance.

Bug: gentoo-haskell/gentoo-haskell#1386
Signed-off-by: hololeap <hololeap@protonmail.com>
@hololeap
Copy link
Member Author

Status report (how many ebuilds still reference internal "non-upgradable" library dependencies):

  • dev-haskell/binary: 0 🎉
  • dev-haskell/exceptions: 51
  • dev-haskell/mtl: 215
  • dev-haskell/process: 10
  • dev-haskell/stm: 62
  • dev-haskell/terminfo: 0 🎉
  • dev-haskell/transformers: 24

hololeap added a commit that referenced this issue Sep 22, 2024
Bug: #1386
Signed-off-by: hololeap <hololeap@protonmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant