Skip to content
This repository has been archived by the owner on Oct 12, 2022. It is now read-only.

Support GNU Guix: distro independent, declarative #979

Open
JamesClarke7283 opened this issue Jul 25, 2022 · 1 comment
Open

Support GNU Guix: distro independent, declarative #979

JamesClarke7283 opened this issue Jul 25, 2022 · 1 comment

Comments

@JamesClarke7283
Copy link

JamesClarke7283 commented Jul 25, 2022

I want to suggest a new step

I would like support for GNU Guix, its my favorite declarative/source based package manager.
And i use it on all my devices. And also think lot of others (especially those on FSDG compliant distros) would benefit from it being supported by this tool.

Which tool is this about? Where is its repository?

To learn what it's about, info here

For convenience, I have put a mirror of the git repo here here:
Reason why its the mirror is some people may find the GitHub interface more families (README file pops up, etc). But the original repo is listed there.

Which operating systems are supported by this tool?

Any GNU System, (linux kernel is the main one, hurd kernel is also supported by the package manager)

What should Topgrade do to figure out if the tool needs to be invoked?

Check if the package manager is installed.

This checks if guix can be used, that the tool is in $PATH:
if [ $(which guix) ]; then echo 1; else echo 0; fi

Which exact commands should Topgrade run?

guix pull Upgrades guix package manager & updates the package database
More Info...

guix package -u Upgrades packages installed by the user, which are located in their .guix_profile
More Info...

I want to suggest some general feature

Broken Installation Check

Topgrade could optionally also check if an attempted installation happened, but failed, but not essential.

This checks if guix is installed at all(even if installed incorrectly):
if [ -e /gnu ]; then echo 1; else echo 0; fi
The reason being, is that any time guix is installed, this directory will be made.
Potentially, it may be useful to tell the user that guix was installed incorrectly, like if the guix binary was not found but this directory was detected, but i don't know if this is in scope of this issue, so its just a side note

More information

User Testing

I know how to do software testing, to do this i would do a git clone of that branch, then cargo run, to test it i believe.

I do not know the rust programming language, but I can at least do some user testing of your software and share results, including logs, etc.

Check for new package versions, upstream

Guix also lets you check if there are new software versions, upstream:
To check if the upstream(version not on guix yet) has a new version, the command to check for all the packages, is just this command guix refresh
I only put this here, in case someone would think it would benefit the user to add this.
More Info...

Programming interface (Developer Docs)

https://guix.gnu.org/manual/en/html_node/Programming-Interface.html

@JamesClarke7283 JamesClarke7283 changed the title Support GUIX: distro independent, declarative, package manager Support GNU Guix: distro independent, declarative, package manager Jul 25, 2022
@JamesClarke7283 JamesClarke7283 changed the title Support GNU Guix: distro independent, declarative, package manager Support GNU Guix: distro independent, declarative Jul 25, 2022
@JamesClarke7283
Copy link
Author

JamesClarke7283 commented Aug 20, 2022

Waiting for #982 to be merged, all good here. I've been using my fork on all my GNU/Linux machines, at least.
I think it's fine to not test on MacOS/BSD because as far as I know, Guix does not run on them directly (yet).
I know someone would point out how different the architectures are and Guix not planning to do it, but anything is possible.

If my assumption is incorrect, let me know, so I can test it on one, Or if you already use one of those platforms, would appreciate user testing.

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

Successfully merging a pull request may close this issue.

1 participant