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

Breakages caused by packages missing bounds against network-3.0.0.0 #207

Closed
vmchale opened this issue Jan 19, 2019 · 29 comments
Closed

Breakages caused by packages missing bounds against network-3.0.0.0 #207

vmchale opened this issue Jan 19, 2019 · 29 comments

Comments

@vmchale
Copy link

vmchale commented Jan 19, 2019

The socks package requires network < 3.0.0.0 for its latest release.

@hvr hvr changed the title socks fails to build with latest network package Breakages caused by packages missing bounds against network-3.0.0.0 Jan 20, 2019
@hvr
Copy link
Contributor

hvr commented Jan 20, 2019

I've got a hunch we're going to see quite a few packages in this category, hence I'm turning this into a collective issue

@hvr
Copy link
Contributor

hvr commented Jan 20, 2019

socks

@hvr
Copy link
Contributor

hvr commented Jan 20, 2019

simple-sendfile

cc @kazu-yamamoto

@RyanGlScott
Copy link

wai-extra is also affected:

$ cabal new-repl -b wai-extra
Resolving dependencies...
Build profile: -w ghc-8.6.3 -O1
In order, the following will be built (use -v for more details):
 - wai-extra-3.0.24.3 (lib) (requires build)
 - fake-package-0 (lib) (first run)
Starting     wai-extra-3.0.24.3 (lib)
Building     wai-extra-3.0.24.3 (lib)

Failed to build wai-extra-3.0.24.3.
Build log (
/home/rgscott/.cabal/logs/ghc-8.6.3/wai-extra-3.0.24.3-b710c7e27df36c5afe2376af729f15122fee3161d33b4aa1a0c2f091ee561eb6.log
):
Configuring library for wai-extra-3.0.24.3..
Preprocessing library for wai-extra-3.0.24.3..
Building library for wai-extra-3.0.24.3..
[ 1 of 32] Compiling Network.Wai.EventSource.EventStream ( Network/Wai/EventSource/EventStream.hs, dist/build/Network/Wai/EventSource/EventStream.o )
[ 2 of 32] Compiling Network.Wai.EventSource ( Network/Wai/EventSource.hs, dist/build/Network/Wai/EventSource.o )
[ 3 of 32] Compiling Network.Wai.Handler.CGI ( Network/Wai/Handler/CGI.hs, dist/build/Network/Wai/Handler/CGI.o )
[ 4 of 32] Compiling Network.Wai.Handler.SCGI ( Network/Wai/Handler/SCGI.hs, dist/build/Network/Wai/Handler/SCGI.o )
[ 5 of 32] Compiling Network.Wai.Header ( Network/Wai/Header.hs, dist/build/Network/Wai/Header.o )
[ 6 of 32] Compiling Network.Wai.Middleware.AcceptOverride ( Network/Wai/Middleware/AcceptOverride.hs, dist/build/Network/Wai/Middleware/AcceptOverride.o )
[ 7 of 32] Compiling Network.Wai.Middleware.AddHeaders ( Network/Wai/Middleware/AddHeaders.hs, dist/build/Network/Wai/Middleware/AddHeaders.o )
[ 8 of 32] Compiling Network.Wai.Middleware.Autohead ( Network/Wai/Middleware/Autohead.hs, dist/build/Network/Wai/Middleware/Autohead.o )
[ 9 of 32] Compiling Network.Wai.Middleware.CleanPath ( Network/Wai/Middleware/CleanPath.hs, dist/build/Network/Wai/Middleware/CleanPath.o )
[10 of 32] Compiling Network.Wai.Middleware.Gzip ( Network/Wai/Middleware/Gzip.hs, dist/build/Network/Wai/Middleware/Gzip.o )
[11 of 32] Compiling Network.Wai.Middleware.HttpAuth ( Network/Wai/Middleware/HttpAuth.hs, dist/build/Network/Wai/Middleware/HttpAuth.o )
[12 of 32] Compiling Network.Wai.Middleware.Jsonp ( Network/Wai/Middleware/Jsonp.hs, dist/build/Network/Wai/Middleware/Jsonp.o )
[13 of 32] Compiling Network.Wai.Middleware.Local ( Network/Wai/Middleware/Local.hs, dist/build/Network/Wai/Middleware/Local.o )
[14 of 32] Compiling Network.Wai.Middleware.MethodOverride ( Network/Wai/Middleware/MethodOverride.hs, dist/build/Network/Wai/Middleware/MethodOverride.o )
[15 of 32] Compiling Network.Wai.Middleware.MethodOverridePost ( Network/Wai/Middleware/MethodOverridePost.hs, dist/build/Network/Wai/Middleware/MethodOverridePost.o )
[16 of 32] Compiling Network.Wai.Middleware.RequestLogger.Internal ( Network/Wai/Middleware/RequestLogger/Internal.hs, dist/build/Network/Wai/Middleware/RequestLogger/Internal.o )
[17 of 32] Compiling Network.Wai.Middleware.Rewrite ( Network/Wai/Middleware/Rewrite.hs, dist/build/Network/Wai/Middleware/Rewrite.o )
[18 of 32] Compiling Network.Wai.Middleware.Routed ( Network/Wai/Middleware/Routed.hs, dist/build/Network/Wai/Middleware/Routed.o )
[19 of 32] Compiling Network.Wai.Middleware.StreamFile ( Network/Wai/Middleware/StreamFile.hs, dist/build/Network/Wai/Middleware/StreamFile.o )
[20 of 32] Compiling Network.Wai.Middleware.StripHeaders ( Network/Wai/Middleware/StripHeaders.hs, dist/build/Network/Wai/Middleware/StripHeaders.o )
[21 of 32] Compiling Network.Wai.Middleware.Timeout ( Network/Wai/Middleware/Timeout.hs, dist/build/Network/Wai/Middleware/Timeout.o )
[22 of 32] Compiling Network.Wai.Middleware.Vhost ( Network/Wai/Middleware/Vhost.hs, dist/build/Network/Wai/Middleware/Vhost.o )
[23 of 32] Compiling Network.Wai.Parse ( Network/Wai/Parse.hs, dist/build/Network/Wai/Parse.o )
[24 of 32] Compiling Network.Wai.Middleware.RequestLogger ( Network/Wai/Middleware/RequestLogger.hs, dist/build/Network/Wai/Middleware/RequestLogger.o )
[25 of 32] Compiling Network.Wai.Middleware.RequestLogger.JSON ( Network/Wai/Middleware/RequestLogger/JSON.hs, dist/build/Network/Wai/Middleware/RequestLogger/JSON.o )

Network/Wai/Middleware/RequestLogger/JSON.hs:78:13: error:
    Not in scope: data constructor ‘SockAddrCan’
   |
78 | sockToJSON (SockAddrCan i) =
   |             ^^^^^^^^^^^
cabal: Failed to build wai-extra-3.0.24.3 (which is required by
fake-package-0). See the build log above for details.

@RyanGlScott
Copy link

So is warp:

$ cabal new-build warp
Build profile: -w ghc-8.6.3 -O1
In order, the following will be built (use -v for more details):
 - warp-3.2.25 (lib) (first run)
Preprocessing library for warp-3.2.25..
Building library for warp-3.2.25..
[21 of 39] Compiling Network.Wai.Handler.Warp.Recv ( Network/Wai/Handler/Warp/Recv.hs, /home/rgscott/Documents/Hacking/Haskell/travis-maintenance/checkout/scotty-web/scotty/dist-newstyle/build/x86_64-linux/ghc-8.6.3/warp-3.2.25/build/Network/Wai/Handler/Warp/Recv.o )

Network/Wai/Handler/Warp/Recv.hs:96:34: error:
    • Couldn't match expected type ‘CInt’ with actual type ‘IO CInt’
    • In the first argument of ‘receiveloop’, namely ‘sock'’
      In the second argument of ‘(<$>)’, namely
        ‘receiveloop sock' ptr size'’
      In a stmt of a 'do' block:
        fromIntegral <$> receiveloop sock' ptr size'
   |
96 |     fromIntegral <$> receiveloop sock' ptr size'
   |                                  ^^^^^

Network/Wai/Handler/Warp/Recv.hs:103:43: error:
    • Couldn't match expected type ‘CInt’ with actual type ‘IO CInt’
    • In the first argument of ‘receiveloop’, namely ‘fd’
      In the second argument of ‘(<$>)’, namely
        ‘receiveloop fd buf (fromIntegral siz)’
      In a stmt of a 'do' block:
        n <- fromIntegral <$> receiveloop fd buf (fromIntegral siz)
    |
103 |         n <- fromIntegral <$> receiveloop fd buf (fromIntegral siz)
    |                                           ^^

@RyanGlScott

This comment has been minimized.

@RyanGlScott

This comment has been minimized.

@hvr
Copy link
Contributor

hvr commented Jan 20, 2019

HsOpenSSL

@hvr
Copy link
Contributor

hvr commented Jan 20, 2019

acid-state

(cc @adamgundry)

@hvr
Copy link
Contributor

hvr commented Jan 20, 2019

wai-extra

TODO!

@hvr
Copy link
Contributor

hvr commented Jan 20, 2019

network-conduit

@hvr
Copy link
Contributor

hvr commented Jan 20, 2019

dns

@vmchale
Copy link
Author

vmchale commented Jan 20, 2019

Looks like dbus is also broken.

Failed to build dbus-1.2.1.
Build log (
/home/vanessa/.cabal/logs/ghc-8.6.3/dbus-1.2.1-3db46171999bcc706a330a58accc577c92859084992246874677c00dd93cdad3.log
):
Configuring library for dbus-1.2.1..
Preprocessing library for dbus-1.2.1..
Building library for dbus-1.2.1..
[ 1 of 14] Compiling DBus.Internal.Address ( lib/DBus/Internal/Address.hs, dist/build/DBus/Internal/Address.o )
[ 2 of 14] Compiling DBus.Internal.Types ( lib/DBus/Internal/Types.hs, dist/build/DBus/Internal/Types.o )
[ 3 of 14] Compiling DBus.Internal.Message ( lib/DBus/Internal/Message.hs, dist/build/DBus/Internal/Message.o )
[ 4 of 14] Compiling DBus.Internal.Wire ( lib/DBus/Internal/Wire.hs, dist/build/DBus/Internal/Wire.o )
[ 5 of 14] Compiling DBus             ( lib/DBus.hs, dist/build/DBus.o )
[ 6 of 14] Compiling DBus.Introspection.Types ( lib/DBus/Introspection/Types.hs, dist/build/DBus/Introspection/Types.o )
[ 7 of 14] Compiling DBus.Introspection.Render ( lib/DBus/Introspection/Render.hs, dist/build/DBus/Introspection/Render.o )
[ 8 of 14] Compiling DBus.Introspection.Parse ( lib/DBus/Introspection/Parse.hs, dist/build/DBus/Introspection/Parse.o )
[ 9 of 14] Compiling DBus.Introspection ( lib/DBus/Introspection.hs, dist/build/DBus/Introspection.o )
[10 of 14] Compiling DBus.Transport   ( lib/DBus/Transport.hs, dist/build/DBus/Transport.o )

lib/DBus/Transport.hs:203:72: error:
    Variable not in scope:
      getPeerCred :: Socket -> IO (CUInt, CUInt, CUInt)
    |
203 | socketTransportCredentials (SocketTransport a s) = catchIOException a (getPeerCred s)
    |                                                                        ^^^^^^^^^^^
cabal: Failed to build dbus-1.2.1 (which is required by
xmonad-spotify-0.1.1.0). See the build log above for details.

@hvr
Copy link
Contributor

hvr commented Jan 20, 2019

dbus

the interesting bit about dbus is that starting with version dbus-0.10.13 the maintainer changed; and the new maintainer actively contributed to creating the problem by ripping out all version bounds (for unknown reasons; see also #195)

therefore turning dbus into a rather fragile package which will inevitably be prone to build-plan bitrot as well as require the maintainer or the Hackage trustees to be highly alert to step in and operate in the "worst way" possible in terms of the Hackage/Cabal cost-model...

cc @rblaze

@kazu-yamamoto
Copy link

I will take care of them today.

@kazu-yamamoto
Copy link

simple-sendfile is done.

@vmchale
Copy link
Author

vmchale commented Jan 21, 2019

@kazu-yamamoto looks like 0.2.28 needs a revision?

@kazu-yamamoto
Copy link

It seems to me that dns is not broken. If you believe it is broken, would you tell me how it is broken?

@kazu-yamamoto
Copy link

looks like 0.2.28 needs a revision?

@vmchale Sorry but I don't understand this. What do you mean?

@kazu-yamamoto
Copy link

wai-extra: yesodweb/wai#724

@hvr
Copy link
Contributor

hvr commented Jan 21, 2019

@kazu-yamamoto

wai-extra: yesodweb/wai#724

It's not enough to just release a new version; it will need some serious effort of metadata revisions to resolve this. Can you please also point out the terribly broken state https://matrix.hackage.haskell.org/package/wai-extra@1547946657 is in and that it needs somebody to take care of it? We can offer consultancy to upstream if there's any questions or it's not clear what needs to be done.

looks like 0.2.28 needs a revision?

@vmchale Sorry but I don't understand this. What do you mean?

This was referring to https://matrix.hackage.haskell.org/package/simple-sendfile@1548036283 where you can clearly see that simple-sendfile-0.2.28 has inaccurate version bounds and thus is misleading cabal into thinking that a build-plan with unix < 2.5.1 is sound, which it is not. This must be fixed via a Hackage metadata revision (NB: uploading a new release won't remove the need for a cabal revision).

In case you're not familiar with Hackage metadata revisions, please see https://github.com/haskell-infra/hackage-trustees/blob/master/revisions-information.md and feel free to ask if something's unclear.

@hvr
Copy link
Contributor

hvr commented Jan 21, 2019

connection

warp

x509-validation

tls

hsdns

(cc @peti)

http-client

pandoc

hedis

(cc @k-bx @informatikr)

network-multicast

(cc @ocramz)

swagger

@kazu-yamamoto
Copy link

New versions of wai-extra and warp have been released.

@kazu-yamamoto
Copy link

socks:
vincenthz/hs-socks#20

connection:
vincenthz/hs-connection#37

@kazu-yamamoto
Copy link

@snoyberg We should rescue old versions of wai-extra:
https://matrix.hackage.haskell.org/#/package/wai-extra@1547946657

We should modify the metadata of the old versions to network >=2.3 && <2.9. Unfortunately, I don't have permisson to do so. I'm sorry for wasting your time but would you take care of it?

@peti
Copy link

peti commented Jan 24, 2019

@hvr, thank you very much for fixing the meta data for the old hsdns versions!

@k-bx
Copy link

k-bx commented May 4, 2019

Thanks for older hedis fixes. New version is out with network upper and base lower bound.

@phadej
Copy link
Member

phadej commented Jun 28, 2019

@phadej
Copy link
Member

phadej commented Jun 29, 2019

@phadej phadej closed this as completed Apr 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants