-
-
Notifications
You must be signed in to change notification settings - Fork 14.1k
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
miniupnpc: 2.2.7 -> 2.2.8, again #326402
miniupnpc: 2.2.7 -> 2.2.8, again #326402
Conversation
This reverts commit 24e8b6b.
I didn’t upstream this patch because this version is unmaintained.
This package is a copy‐paste job in general and could probably use cleaning up, but I’m getting sick of this and I just want it to build.
I’ve emailed this patch to the maintainers, but I’m not sure they accept outside contributions.
Upstream seems to regularly merge in upstream Bitcoin changes, so I haven’t bothered sending this there.
Includes a fix for miniupnpc 2.2.8.
Switch to new GitLab repository and pin the last commit. The upstream repository is archived, so it’s unlikely there’ll ever be another update.
As it doesn’t look like there’ll be another upstream release, add bug fix patches from the upstream bug tracker, plus one I wrote just now for miniupnpc 2.2.8 support.
Dead cryptocurrency; last release was in 2019, last commit was in 2022. This is broken with miniupnpc 2.2.8; I reached out to the maintainer and we agreed that it’s fine to just drop the package rather than waste time patching it.
e0f5ed3
to
4a46bb9
Compare
You're insane. I just want you to know that. |
@@ -1,4 +1,4 @@ | |||
{ lib, stdenv, mkDerivation, fetchFromGitHub | |||
{ lib, stdenv, mkDerivation, fetchFromGitHub, fetchpatch2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is fetchpatch2
used here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fetchpatch
is “deprecated”; fetchpatch2
is meant to be better but is backwards‐incompatible, so you have to opt in.
Ironically we probably need a fetchpatch3
: #266556
|
||
./use-system-libraries.patch |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bit weird to me how these external patches don't allow us to not have also a local patch... However this shouldn't block this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The previous anti‐vendoring patch was actually not fully functional in terms of specifying the header locations. The upstream PRs that fix miniupnpc 2.2.8 also forced the vendoring even harder. So since it’ll need dealing with anyway on the next version, I just fixed the anti‐vendoring stuff and reduced its size in the process.
# SSL requires libevent at 2.1 with ssl support | ||
configureFlags = [ "--disable-ssl" ]; | ||
|
||
__structuredAttrs = true; | ||
|
||
passthru.updateScript = nix-update-script { }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this really needed? Updating this package should be trivial for both nix{,pkgs}-update
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Honestly, it’s never been clear to me exactly where nixpkgs-update
will update from. I know the main source is Repology, but that it can maybe also do GitHub releases? In this case though the newer releases are just tags and there are no corresponding GitHub releases. This at least lets maintainers/script/update.nix
work where it doesn’t otherwise.
I asked about best practices on Matrix recently but there wasn’t really any answer. There has been some talk about either making nix-update-script
the default, or doing a mass addition of it; see #325074.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great to me! I trust you have tested every package touched by this.
Result of 6 packages marked as broken and skipped:
66 packages built:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, this is impressive work.
Uhh, I tested that they build at least… 🫠 The breaking API change is just two additional parameters that can be set to Of course, I’m happy to be held responsible if any regressions do occur and help out with fixing them, and if there’s any substantive upstream feedback on the patches I wrote I’ll make sure to address them in Nixpkgs as well. |
@emilazy sorry for the API break :( |
Hey, it happens :) Although a larger version bump would probably make it catch fewer people by surprise next time. |
Description of changes
Like #325273, except I migrated like half of the reverse dependencies in the universe with my own bare hands and added upstream patches and updates for the other half. My own patches have been sent off to every upstream that still has even the slightest hint of still being maintained.
Every package that built before still builds now, except for
masari
, which I dropped with the consent of its maintainer due to being a dead cryptocurrency abandoned by its upstream. Not that there aren’t a lot of packages that did get patched here that aren’t in much better shape.There were a lot of real staring‐into‐the‐abyss moments in this one. Hell is other people’s build systems. I’m going to bed now.
cc @nagy @K900 @doronbehar
Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.