-
-
Notifications
You must be signed in to change notification settings - Fork 15.3k
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
[staging] mariadb-connector-c: reduce closure size #71860
Conversation
I feel like this should not be causing this many rebuilds |
cc @Izorkin |
|
With this update error:
|
I'll revert the symlink removal |
a47bf5b
to
f43cef0
Compare
@GrahamcOfBorg test prosodyMysql |
9ea8016
to
c0f0a89
Compare
@GrahamcOfBorg eval |
c0f0a89
to
73500be
Compare
52a33ef
to
7a75796
Compare
switched the base, as this causes a lot of rebuilds |
@GrahamcOfBorg build mariadb-connector-c |
d5478c4
to
b09578d
Compare
b09578d
to
19b3cf1
Compare
After this change, only file is deleted the ./nix-support/propagated-build-inputs. Size reduced by 183 bytes.
It seems that the propagated-buildinputs file indicates where to look for the necessary dependencies to build other packages. Is it worth it to delete? (sorry, bad english) |
it's still significant: staging:
pr:
|
@jonringer are we good to go on this? |
have all the direct reverse dependencies been built? I am asking because they may be effected by the removal of propagated build inputs. |
Have you looked at the pkgconfig definitions if these deps are not needed in dependants? |
This could still probably use some love, I'll try to get down to 0 regressions |
19b3cf1
to
9116660
Compare
rebased on top of current staging |
now i remember why I grew tired of this... xD
|
|
Packages that use libmysqlclient - |
the problem with propagatedBuildInputs is that downstream dependencies (past direct dependencies) can still receive buildInputs |
The thing is that if mariadb-connector-c requires dependants to have zlib and openssl in the buildInputs then we can have them in propagatedBuildInputs and we just require every dependant to have extra code and don't save anything? |
Yeah, I just checked:
This doesn't make any sense, sorry... |
on the flip side, if a package wants to use a different version of openssl, then I'm not sure if they will get the one they explicitly wanted, or the one that was propagated? I may not fully understand the circumstances in which mariadb-connector-c can to be used, but seems weird to me if I'm implicitly receiving dependencies like zlib or openssl, even though I don't have them as a direct dependency |
Then you'd most probably have to override for mariadb-connector-c too. The pkgconfig line explicitly says that you, as a downstream user of the library, have to make it possible to link to zlib and openssl. |
I'm thoroughly confused as to why a package has to receive zlib and openssl pkgconfig inputs from mariadb-connector-c. But I've also lost all interesting in saving 12MB in closure size for a package I don't normally use. |
From a correctness standpoint, propagatedBuildInputs isn't what you want when cross compiling, as it will propagate openssl and zlib of a different architecture |
Motivation for this change
noticed some
-dev
paths in the tree when reviewing another PRThings done
sandbox
innix.conf
on non-NixOS)nix-shell -p nix-review --run "nix-review wip"
./result/bin/
)nix path-info -S
before and after)Notify maintainers
cc @