haskell / network

Low-level networking interface
http://hackage.haskell.org/package/network
Other
322 stars 186 forks source link

Update config.guess, config.sub to their latest versions #579

Closed sevanspowell closed 1 month ago

sevanspowell commented 1 month ago

It is still not easy to build network with the new GHC Javascript backend, you must vendor the package and run autoreconf -i before build (as shown in https://github.com/haskell/cabal/issues/4903#issuecomment-873407538).

kazu-yamamoto commented 1 month ago

We stick to autoconf v2.69 because of #502 and #508.

@sevanspowell Which version of autoconf are you using?

@Mistuke Does autoconf v2.72 solve Window's problem?

sevanspowell commented 1 month ago

I think I can minimize the diff, I likely don't need to change config.guess, and only need a few lines related to GHCJS/Javascript from config.sub.

sevanspowell commented 1 month ago

Which version of autoconf are you using?

2.71, but I pulled these files direct from https://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=948ae97ca5703224bd3eada06b7a69f40dd15a02.

sevanspowell commented 1 month ago

I'll try and include a script to reproduce the issue (likely with docker) in the next couple of days.

sevanspowell commented 1 month ago

Although @kazu-yamamoto, it looks like CI passed (mostly, macOS-latest 8.4 might need a retry), would you expect the linked issues to be reflected in the status of the CI?

kazu-yamamoto commented 1 month ago

According to #501, if network can be built on CI, that change is acceptable. But I'm waiting for @Mistuke's confirmation.

P.S.

I can build network with configure generated by autoconf 2.72 and this PR on Windows.

Mistuke commented 1 month ago

Hi, this should be OK. I'm pretty sure we worked around the issue years ago in how we pass paths to configure.

Kind regards, Tamar

Sent from my Mobile

On Mon, Jun 10, 2024, 04:17 Samuel Bennett (Evans-Powell) < @.***> wrote:

I'll try and include a script to reproduce the issue (likely with docker) in the next couple of days.

— Reply to this email directly, view it on GitHub https://github.com/haskell/network/pull/579#issuecomment-2157116938, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAI7OKMRKKFSL73F5FKXRKDZGULDDAVCNFSM6AAAAABI6MECQSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNJXGEYTMOJTHA . You are receiving this because you were mentioned.Message ID: @.***>

kazu-yamamoto commented 1 month ago

Merged. Thank you all guys!

@sevanspowell Would you tell me what you want to do next.

sevanspowell commented 1 month ago

Thanks @kazu-yamamoto, I hope this proves helpful to those building with the new GHC Javascript backend.

I don't think I need you to do anything next. We'd need to release a new version of network at some point, but there is no rush (if there's anything I can do to help, let me know).

There are some lingering "issues" with building network with the GHC JS backend, but I wouldn't call them issues so much as inconveniences. I'm used to adding a package to my cabal file and thinking no more about it. But with network I have to vendor the package (cabal unpack), add it to optional-packages in my cabal.project, run autoreconf -i in the vendored package folder, then cabal build my project. It doesn't seem like there's a simple way to overcome that, but I could be wrong.

Personally I have used haskell.nix to work around this inconvenience successfully (see https://github.com/sambnt/haskell-js-templates/blob/master/templates/04-oauth/nix/hix.nix#L30), but I worry about those not using haskell.nix.

There are additionally some issues with haskell.nix trying to include files from extra-source-files which don't exist (configure for example) https://github.com/haskell/network/blob/master/network.cabal#L59. But I believe that's a haskell.nix issue.

kazu-yamamoto commented 1 month ago

I will release the next version with configure generated by configure v2.72. If this version cannot be built for some Windows users, I will fall back to the old configure.