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

[treewide]: drop some packages that have been broken for over a year #106625

Closed
wants to merge 62 commits into from

Conversation

ajs124
Copy link
Member

@ajs124 ajs124 commented Dec 11, 2020

Motivation for this change

These have not been working for over a year, so why keep carrying them around?

If anyone ever needs them again, they can revert the respective commit.

cc @Mic92

These do not have entries in aliases.nix yet. If there is a consensus that they are needed, I can add them.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

It was marked in commit 893ab31 by zimbatm on 2016-06-25 (commited on 2016-06-25)
It was marked in commit ad902fb by Joachim Fasting on 2017-03-30 (commited on 2017-03-30)
It was marked in commit 99e74e9 by Jörg Thalheim on 2017-03-06 (commited on 2017-03-06)
It was marked in commit d862700 by xeji on 2018-04-10 (commited on 2018-04-12)
It was marked in commit e416a39 by Daniel Schaefer on 2019-09-14 (commited on 2019-09-14)
It was marked in commit 3ddd199 by Vladimír Čunát on 2015-12-21 (commited on 2015-12-21)
It was marked in commit 5aa4b19 by Linus Heckemann on 2019-10-07 (commited on 2019-10-08)
It was marked in commit e047722 by Franz Pletz on 2017-08-27 (commited on 2017-08-28)
It was marked in commit c7ffe17 by Franz Pletz on 2017-07-31 (commited on 2019-07-29)
It was marked in commit 9ae0e66 by Joachim Fasting on 2016-03-18 (commited on 2016-03-19)

Also drop the module, which was not evaluated anymore since
e891e50 in 2016
It was marked in commit 9aae605 by Yegor Timoshenko on 2017-09-28 (commited on 2017-09-28)
It was marked in commit 5aa4b19 by Linus Heckemann on 2019-10-07 (commited on 2019-10-08)
It was marked in commit de05176 by Piotr Bogdan on 2017-12-23 (commited on 2017-12-23)
It was marked in commit f63c179 by Bart Brouns on 2016-11-07 (commited on 2016-11-07)
It was marked in commit 5aa4b19 by Linus Heckemann on 2019-10-07 (commited on 2019-10-08)
It was marked in commit 96cf58a by xeji on 2018-04-10 (commited on 2018-04-12)
It was marked in commit 36fe554 by Peter Simons on 2019-10-30 (commited on 2019-10-30)
It was marked in commit 43a8ce0 by Kirill Boltaev on 2016-09-12 (commited on 2016-09-12)
It was marked in commit b5ad5c3 by Robin Gloster on 2017-03-30 (commited on 2017-03-30)
It was marked in commit f23c765 by Vincent Laporte on 2018-08-29 (commited on 2018-08-29)
It was marked in commit f70a896 by Robin Gloster on 2017-03-14 (commited on 2017-03-14)
It was marked in commit f6d4d59 by Bjørn Forsman on 2014-09-13 (commited on 2014-09-13)
It was marked in commit 5ee52f9 by xeji on 2018-04-10 (commited on 2018-04-12)
It was marked in commit 5aa4b19 by Linus Heckemann on 2019-10-07 (commited on 2019-10-08)
It was marked in commit 68c15ce by xeji on 2018-04-11 (commited on 2018-04-12)
It was marked in commit 5aa4b19 by Linus Heckemann on 2019-10-07 (commited on 2019-10-08)
It was marked in commit 19d1dae by Uli Baum on 2018-09-13 (commited on 2018-09-13)

Also drop corresponding module.
It was marked in commit 5aa4b19 by Linus Heckemann on 2019-10-07 (commited on 2019-10-08)
It was marked in commit d7f3e5a by Robin Gloster on 2017-03-29 (commited on 2017-03-30)
Copy link
Member

@Mic92 Mic92 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I appreciate this. Since nixpkgs we have a low bar for adding packages, we also should have a low bar for removing packages that nobody cares to fixes.

@Mic92
Copy link
Member

Mic92 commented Dec 11, 2020

This could be used for automatic remove aliases:

$ git diff HEAD..f49f00d152e204f559a6ebf29ec853cfde2d2105 pkgs/top-level/all-packages.nix | grep '^+.*= .*callPackage' | awk '{print $2}'
mht2htm
pbpst
bareos
ori
flashtool
gnokii
i-score
kippo
mbox
meo
namazu
openmvs
openmodelica
screencloud
tlspool
chaps
aliceml
hhvm
metaocaml_3_09
love_0_9
nix-exec
proglodyte-wasm
betaflight
inav
fedpkg
jamomacore
pants
gnutls-kdh
gtkmathview
gdata-sharp
ilixi
qxt
myserver
openfire
ofp
lobster-two
qmc2
r3rs
avxsynth
bitkeeper
clfswm
foo-yc20
photivo
mi2ly
monodevelop
natron
notbit
beret
hawkthorne
privateer
alliance
ncbi_tools
plm
hol
jonprl
lean2
opensmt
otter
openspace
fakenes
imatix_gsl

@ajs124
Copy link
Member Author

ajs124 commented Dec 11, 2020

Before merging this, someone should maybe check if any of these packages haven open PRs that fix them, that just got stuck.

I assume and hope that this is not the case, but it should probably be done anyways.

Oh and I forgot to mention that this is actually a relatively conservative estimate/implementation. It only handles packages for which .meta.position returns something useful and I generally tried to err on the side of caution.

@kini
Copy link
Member

kini commented Dec 13, 2020

If anyone ever needs them again, they can revert the respective commit.

It may be hard to know that these packages once existed in nixpkgs, though. So someone wanting to (re-)add one of the these packages to nixpkgs might end up writing an expression from scratch when they could have started from the old broken expression. (In fact just now I was poking around to see if I could fix natron -- if this PR had been merged already, I doubt I would have noticed that there was already an expression for it in the git history.)

Maybe it would be good to write the names of these removed packages in a text file and store it somewhere in the repo, so that it would be found with a simple grep of the repository for the name of the software.

@ajs124
Copy link
Member Author

ajs124 commented Dec 16, 2020

so that it would be found with a simple grep of the repository for the name of the software.

In general, searching GitHub is always a good idea, because there might already be a ready but unmerged or WIP PR open.

Which isn't to say we shouldn't keep a list of dropped packages around, but just something I've run into at least once before. Especially with niche software, finding a reviewer and merger can be hard.

@ajs124
Copy link
Member Author

ajs124 commented Dec 29, 2020

Ok, so I did the searches, here are my results:

Someone already wanted to drop jamomacore and i-score in #104446, there was some debate, apparently there's an active fork of i-score which will have a release. We might want to keep it around, but we might also just want to re-init that, depending on how similar the packaging will be.

Somebody noticed that natron was marked as broken and opened #103029, so we know there's someone who uses this.
They appear to be using the flatpak version now. We might want to look into fixing this one.

monodevelop was reported as broken in #35211 and the reporter "spent ~4h trying to bump to 7.3.3.17" in February of 2018. The only response they got were one ":thumbsup:".

Someone tried to bump opensmt in #102421 in November, so we might not want to drop that. On the other hand, this was broken since 2014 and @freezeboy does not seem like he actually plans on using it. Are you?

The openmvs build was fixed and the package was bumped in #98134, which is waiting for review.

I hope I haven't missed anything. I have not done anything with these findings yet.

Edit: I forgot about #54383, which tries to fix openmodelica, but has been WIP since January of 2019.

@kini
Copy link
Member

kini commented Dec 30, 2020

Maybe it would be good to write the names of these removed packages in a text file and store it somewhere in the repo, so that it would be found with a simple grep of the repository for the name of the software.

I noticed that there are a lot of entries in pkgs/top-level/aliases.nix where a package name is aliased to a throw, explaining that the package has been removed from nixpkgs for some reason or another. That seems like a better solution than my suggestion of just creating a text file somewhere, especially since it will cause a conflict if someone tries to re-add the same attribute name to all-packages.nix. That way, if someone forgets to search the repo or github before trying to write a new expression for one of the removed packages, they'll at least be forced to notice the existence of a prior expression when they get a build error during testing of their new expression (assuming they picked the same attribute name as the old expression had).

@freezeboy
Copy link
Contributor

In fact i am stuck on this package as cmake is using FetchContent

We can drop it

@ajs124
Copy link
Member Author

ajs124 commented Jan 14, 2021

Turns out, I don't care enough about this, after all.

@ajs124 ajs124 closed this Jan 14, 2021
@ajs124 ajs124 deleted the drop-broken-1y+ branch January 14, 2021 16:46
@siraben
Copy link
Member

siraben commented Feb 17, 2021

Is this still of interest to anyone?

@Mic92
Copy link
Member

Mic92 commented Feb 17, 2021

I am interested. Maybe @ajs124 could share the script that was used for this.

@freezeboy
Copy link
Contributor

@Mic92 Yes I think nixpkgs needs more scripts to remove stalled things to avoid bloat. It is easy to add stuff, so removing stuff should also be easy when unmaintained/broken

@siraben
Copy link
Member

siraben commented Feb 20, 2021

(perhaps we should move conversation into a separate issue/RFC)

I have a concern that it would make it harder to take advantage of previous packaging attempts. Perhaps a broken package only needs some tweaks to unbreak but removing it would make the past attempt harder to find.

@7c6f434c
Copy link
Member

7c6f434c commented Feb 20, 2021 via email

@Mic92
Copy link
Member

Mic92 commented Feb 20, 2021

(perhaps we should move conversation into a separate issue/RFC)

I have a concern that it would make it harder to take advantage of previous packaging attempts. Perhaps a broken package only needs some tweaks to unbreak but removing it would make the past attempt harder to find.

I think there is an easy fix. We could add the commit where a package was removed in the message of nixpkgs/pkgs/top-level/aliases.nix so that when somebody wants to repackage it, they could just checkout this commit.

@FRidh
Copy link
Member

FRidh commented Feb 20, 2021

Adding the alias will need to be a separate commit then from removing the expression.

If you want to see if there is an older package you can use git log --grep. Sure, sometimes one may not be able to find a package but I really do not think it is worth us spending more time on packages that are broken for the small chance somebody someday will want to pick it up again.

@siraben
Copy link
Member

siraben commented Feb 20, 2021

If you want to see if there is an older package you can use git log --grep.

Perhaps we could put this in the documentation somewhere.

I really do not think it is worth us spending more time on packages that are broken for the small chance somebody someday will want to pick it up again.

Agree. While Nixpkg's size is impressive, we do need to have some baseline quality and a 1-year timeout for broken packages seems reasonable to me.

@Mic92
Copy link
Member

Mic92 commented Feb 20, 2021

Adding the alias will need to be a separate commit then from removing the expression.

If you want to see if there is an older package you can use git log --grep. Sure, sometimes one may not be able to find a package but I really do not think it is worth us spending more time on packages that are broken for the small chance somebody someday will want to pick it up again.

Well. if we would automate it this could be added as a feature. But we probably don't need to ask contributor to provide it otherwise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants