How to start using Nix(OS)

WTF. Its building now. In germany we say “wer lesen kann, ist klar im Vorteil”

Ahah, that’s a good (and true) one. The reason is that since lists are space separated, it tries to compile pkgs.libsForQt5.callPackage which is clearly not a program.

Seems to work. Great. what happens if the editcp maintainer makes a new release?

And. What the best way, if someone makes a nix package?? Simply delete everything that i have changed for adding editcp…

What do you mean? You will need to upgrade the derivation to get the new url of the version you want. It would be cleaner if the dev puts the binary on github release so that the downloaded url never changes over time.

Yes, exactly.

The same if i decide to no more use libreoffice or audacity on that system, make a # before the name and it’s gone after next switch…

Yes. Note that the path still exists in your /nix/store. If you want to save space and remove all unused stuff in /nix/store, you might want to run nix-collect-garbage -d (many variants depending on what you want to remove)

I have that entry added…

nix.gc = {
automatic = true;
dates = “weekly”;
options = “–delete-older-than 30d”;
};

Ok, then it will garbage collect automatically every week derivations older than 30 days ^^

But all in .config/ will stay? So if i later decide audacity is best, i will have my settings already there…??

Yes, sure. This is user setting, not touched by nix at all. Similarly, if you create a document in libreoffice, removing libreoffice will not remove your document :wink:

… that has not created any icons… But i can run the program after search…

So the icon should be empty, but it should appear in the development tab. You used the full version with copyDesktopItems or you just added these two lines in your file?

Uhm, i thought that was everything, and havn’t scrolled down ;(
Sorry. One moment…

Another saying, mostly when calling the support line from Siemens… “Sehen Sie, wenn Sie es richtig machen, funktioniert es auch”. One of my favorites… :wink:

Thanks for ur support…

1 Like

OK, yesterday i made a recording in a church, and the final cutted wav file is normaly audio-processed and compressed with stereotool. Closed source from here.
https://www.thimeo.com/stereo-tool/
And sometimes i have to use a live codec to stream from here.
https://technicadelarte.com/download/download.php?code=llcl

I’ve seen. There are many ways to make these binarys run. But whats the best solution. As it has to connect to audio devices it should not run in containers and so on… Btw. Stereotool hat a standalone GUI (Jackd) and and a commandline tool for batch processing.

Any hints in which direction i should go? Nix-ld as u said?

Tnx

So if you are too lazy to package it as I did above, the other option I recommend is to enable nix-ld, then it should mostly be like in any other linux. If you want ta package it, the above template is a good start, but on course the installPhase depends on the structure of the downloaded source. You typically want programs in $out/bin, and libraries in $out/lib (only put there libraries which are not already packaged in nix). If your package is more complex with many assets, it might be simpler to copy it to $out/opt and add links from $out/bin to binaries in $out/opt. To read more, cf my other answers:

If you struggle, please ask.

If you are looking for open source alternatives, I don’t know what this program is actually doing, but if it is just doing audio processing, there are many vst available that you might like to use with something like carla. You can start from PowerUser/universal-studio: Universal Studio is an audio production environment for Linux, built for collaboration. - Codeberg.org if you want to get a great list of available linux vst.

Only short, have to go in a videocall with IBM in a few minutes…

Is it possible to package if it is closed source and it exist only that binary file??

And there are no alternatives. The processing has a special setup and settings for the transmitter, and that is difficult to change that… The Luci Codec has an endpoint in the studio, that i cannot change bec. many other are using the same system…

Sure, it is just what I ended up doing with editcp as explained above due to an error that I was ensure how to solve. What is important for close-source programs is to load autoPatchelfHook in the native build input list in order to automatically patch them not to use anything outside on /nix/store.

Interesting… After adding this to /etc/nixos/configuration.nix the stereotool commandline tool works ootb.
The next tested gui variant is missing libX11

Enable nix-ld

programs.nix-ld.enable = true;

./stereo_tool_gui_64: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory

Then i now will try to find the simplest way to find that libs. As far as i have undersand this steam-run is not a good idea if i need full access to recources of the system…?!
I added that: Found here.
https://blog.thalheim.io/2022/12/31/nix-ld-a-clean-solution-for-issues-with-pre-compiled-executables-on-nixos/

But now i need a way to list packages and libs that a program needs…

Enable nix-ld

programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
alsaLib
xorg.libX11
];
}

BTW. Honestly i think it would be better to splitt these thread in different posts… :thinking:

I explain here Different methods to run a non-nixos executable on Nixos - Unix & Linux Stack Exchange the set of libraries that I recommend to enable to run most softwares. Back then, nix-ld.libraries was not existing so I was using a different method, but you should be able now to do:

programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
        stdenv.cc.cc
        openssl
        xorg.libXcomposite
        xorg.libXtst
        xorg.libXrandr
        xorg.libXext
        xorg.libX11
        xorg.libXfixes
        libGL
        libva
        pipewire.lib
        xorg.libxcb
        xorg.libXdamage
        xorg.libxshmfence
        xorg.libXxf86vm
        libelf
        
        # Required
        glib
        gtk2
        bzip2
        
        # Without these it silently fails
        xorg.libXinerama
        xorg.libXcursor
        xorg.libXrender
        xorg.libXScrnSaver
        xorg.libXi
        xorg.libSM
        xorg.libICE
        gnome2.GConf
        nspr
        nss
        cups
        libcap
        SDL2
        libusb1
        dbus-glib
        ffmpeg
        # Only libraries are needed from those two
        libudev0-shim
        
        # Verified games requirements
        xorg.libXt
        xorg.libXmu
        libogg
        libvorbis
        SDL
        SDL2_image
        glew110
        libidn
        tbb
        
        # Other things from runtime
        flac
        freeglut
        libjpeg
        libpng
        libpng12
        libsamplerate
        libmikmod
        libtheora
        libtiff
        pixman
        speex
        SDL_image
        SDL_ttf
        SDL_mixer
        SDL2_ttf
        SDL2_mixer
        libappindicator-gtk2
        libdbusmenu-gtk2
        libindicator-gtk2
        libcaca
        libcanberra
        libgcrypt
        libvpx
        librsvg
        xorg.libXft
        libvdpau
        gnome2.pango
        cairo
        atk
        gdk-pixbuf
        fontconfig
        freetype
        dbus
        alsaLib
        expat
];

to get most lib you need. To find the lib you want for a given file, you can do something like:

$ nix run github:mic92/nix-index-database libX11.so.6

(see also the options to further restrict the search)