Nix packaging #138
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
security
wontfix
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Blocks
#142 Convert the server from Arch to NixOS
exozyme/exozyme
Reference: exozyme/exozyme#138
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
In order to switch from Arch to NixOS we first need to package the apps that are not available in the Nix repos manually.
Based on the output of
pacman -Qe
, I think we need to package the following software:Overall I'm suprised though at how extensive the Nix repos are, which should make the switch a lot easier.
Anyways, I'm glad @codedotjs you're taking the initiative to work on Nix packaging!
An alternative could be to use an Arch Linux container for these packages that aren't in Nix, but we'll have to package
guacamole-client
,guacamole-server
, andxorgxrdp-glamor
at least since those packages should be run bare-metal.We could also run some of the programs in a docker container.
I created my first nix application using their guide at https://nixos.org/guides/dev-environment.html 😄
That's a good idea for a temporary solution, but I want to avoid Docker in the long run and migrate everything to Nix.
Here are some links:
Important
I think I'll start packaging
woodpecker-ci
.https://github.com/woodpecker-ci/woodpecker
We could probably use one of these tools to automate packaging of go applications like woodpecker:
Well they don't seem to be needed.
Woodpecker is packaged now. I got some friendly help from the Nix community. One of the devs already created a nixpkg for woodpecker but it hasn't been released yet. There are still two issues within the script but I hope they will get fixed soon. I will create a repository in the exozyme project where all our packages can be put in.
I messed up the git repos on my laptop so I have to recreate the
packages
repository. I also created another project board but it doesn't seem to be necessary. #justplayingaround 😁Admin rights are dangerous. I have to watch out not to delete anything important.
Ok the woodpecker
default.nix
is in the repo now.The woodpecker default.nix seems to be only the server package. We will have to change that if we want the whole toolkit.
Ok. We will package each woodpecker subpackage seperately.
The woodpecker packages are added now (server, agent and cli).
As a next step I will try packaging guacamole.
I accidently closed this issue 🤦.
Building the guacamole-server package works. There are just not all extentions working. We have to take a look at that later.
Guacamole-client seems to be a bit harder to package.
Well it seems like there have been some other people also struggling with guacamole out there:
We probably have to build the maven-build-helper-plugin first.
In fact it is called ”build-helper-maven-plugin“.
Oh no! I deleted the
default.nix
for the guacamole-server package. I really really need to clean up my folder system.Ok I was able to restore it from the git diff 😌.
I added a project in the packages repo. That should help us keeping this issue more clean. We can also create issues for one application specifically there.
@Ta180m could you please provide a link to the source code or a website of plugin-git? I wasn't able to find it on my short internet research.
Sorry, I didn't see this comment. Here's the website for it: https://github.com/woodpecker-ci/plugin-git
In the future, if I don't respond for a week, that means I probably didn't see the comment and just ping me on Matrix about it!
No problem 👍
@codedotjs We are planning on upstreaming these packages to nixpkgs, right?
Yes if they get through our tests. The problem is that I don't have a GitHub account in the moment. That is one of my todos in order to contribute to nixpkgs in the future.
I can use my GitHub account to submit PRs, if that's OK with you.
That would be totally fine 👍
@thehedgehog Would you like to help with submitting our Nix packages to upstream nixpkgs? I think Guacamole and GLAuth have already been packaged: https://git.exozy.me/exozyme/packages/
I'd be glad to do that!
@thehedgehog do you know how to prefetch packages or dependencies for other applications?
We have got an issue with the Guacamole client. The package is written in Java and needs Maven to compile. Maven itself requires a plugin which can't be fetched during the installation since the Nix sandbox doesn't have an internet connection. As a workaround we have got an installation script that installs a prebuilt webapp.
What do you think about that? Would it be possible to somehow prefetch the plugin and is that step even needed (or does the script suffice)?
Looking into this right now. Seems like there's a bit of JSON generation with some external tools that needs to happen. Currently building a test version, if this works, I'm going to clean it up and send a PR. Java packaging in Nix sucks as so much java tooling depends on having network access(same with most package managers tbh), and there is just SO MUCH STUFF to download. It's downloading like 6 versions of every package I swear.