devel/shellcheck update for ghc 8.6.4

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

devel/shellcheck update for ghc 8.6.4

Greg Steuck
In my quest to update the ports [tree] to ghc 8.6.4 I arrived at a fork re
ShellCheck.

The first blocker is ANN/TemplateHaskell is [broken] enough that
patching is required to get rid of all ShellCheck testing code. Now,
the next snag is the ancient version of ShellCheck in ports. At least
a couple of places need to be patched for Semigroup and MonadFail
issues. My natural impulse would be to upgrade ShellCheck to the most
recent version 0.6.0, except it has a larger dependency
set and at least aeson is not in ports. At this point I'm not sure
which way to go. Is the new version with a larger set of deps a better
option? Or the patched-up old version? Since I personally don't use
ShellCheck, I can't make the call easily. Opinions? Patches?

[broken]https://marc.info/?l=openbsd-ports&m=155949514223604&w=2
[tree]https://github.com/blackgnezdo/ports/commits/ghc_864_jun1

Thanks
Greg
--
nest.cx is Gmail hosted, use PGP:
https://pgp.key-server.io/0x0B1542BD8DF5A1B0
Fingerprint: 5E2B 2D0E 1E03 2046 BEC3  4D50 0B15 42BD 8DF5 A1B0
Reply | Threaded
Open this post in threaded view
|

Re: devel/shellcheck update for ghc 8.6.4

Caspar Schutijser
On Sun, Jun 02, 2019 at 03:06:28PM -0700, Greg Steuck wrote:

> In my quest to update the ports [tree] to ghc 8.6.4 I arrived at a fork re
> ShellCheck.
>
> The first blocker is ANN/TemplateHaskell is [broken] enough that
> patching is required to get rid of all ShellCheck testing code. Now,
> the next snag is the ancient version of ShellCheck in ports. At least
> a couple of places need to be patched for Semigroup and MonadFail
> issues. My natural impulse would be to upgrade ShellCheck to the most
> recent version 0.6.0, except it has a larger dependency
> set and at least aeson is not in ports. At this point I'm not sure
> which way to go. Is the new version with a larger set of deps a better
> option? Or the patched-up old version? Since I personally don't use
> ShellCheck, I can't make the call easily. Opinions? Patches?
>
> [broken]https://marc.info/?l=openbsd-ports&m=155949514223604&w=2
> [tree]https://github.com/blackgnezdo/ports/commits/ghc_864_jun1

I realize the ShellCheck port is quite out of date. Indeed, as you
noticed, ShellCheck now depends on aeson, a piece of software that used
to be in the ports tree but was removed.

A quick look indicates that re-importing aeson would require a
number of new ports to be imported as well, including contravariant,
unordered-containers, uuid-types, th-abstraction, transformers. This
list may not be complete. devel/hs-json could then be removed.

The question is whether adding new hs ports is worth the maintenance
burden. That's not a question I can answer. If ShellCheck is the
only program that actually depends on aeson and it increases the
maintenance burden too much, maybe the best option would be to just
remove ShellCheck. Users can still install ShellCheck through cabal in
this case.

Thanks,
Caspar Schutijser

Reply | Threaded
Open this post in threaded view
|

Re: devel/shellcheck update for ghc 8.6.4

Greg Steuck
On Mon, Jun 3, 2019 at 11:03 AM Caspar Schutijser <[hidden email]>
wrote:

> On Sun, Jun 02, 2019 at 03:06:28PM -0700, Greg Steuck wrote:
> > In my quest to update the ports [tree] to ghc 8.6.4 I arrived at a fork
> re
> > ShellCheck.
> >
> > The first blocker is ANN/TemplateHaskell is [broken] enough that
> > patching is required to get rid of all ShellCheck testing code.


This has been resolved by switching to the system linker instead of GHC
internal one
(
https://github.com/blackgnezdo/ports/commit/f5997dfde3ef5620d54d046dd9708dc441f09322
)


> > the next snag is the ancient version of ShellCheck in ports. At least
> > a couple of places need to be patched for Semigroup and MonadFail
> > issues. My natural impulse would be to upgrade ShellCheck to the most
> > recent version 0.6.0, except it has a larger dependency
> > set and at least aeson is not in ports. At this point I'm not sure
> > which way to go. Is the new version with a larger set of deps a better
> > option? Or the patched-up old version?


I ended up patching the old version to build with 8.6
(
https://github.com/blackgnezdo/ports/commit/51888cfbf1dad9485f1bf4cb41a2cd1ccc386ac3
)
It was the easiest thing to do for now though maybe removing
ShellCheck would've been a better long term move.

Thanks
Greg