nikivi has joined #nix-darwin
philr has joined #nix-darwin
hedgie has quit [Read error: Connection reset by peer]
hedgie has joined #nix-darwin
fuzen has quit [Quit: Ping timeout (120 seconds)]
fuzen has joined #nix-darwin
__monty__ has joined #nix-darwin
nikivi has quit [Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net]
nikivi has joined #nix-darwin
hmpffff has joined #nix-darwin
<hmpffff> Moin LnL. I still get the "xz not installed" error when trying "sh <(curl https://nixos.org/nix/install) --daemon"
<abathur> hmpffff: yes; LnL's fix is merged but a patch release hasn't been made yet :(
<hmpffff> is there a reason for this?
<abathur> the reason, if any, is above my pay grade, but I think it just takes a little time and hasn't happened yet
<abathur> domenkozar[m] may have more info
<abathur> are you subscribed to version updates on the nix repo?
<hmpffff> no
<abathur> releases or whatever it calls it
<abathur> if you have a GH account, at https://github.com/NixOS/nix, you can click the down arrow next to watch and select "Releases only"
<abathur> and it'll notify you when there's a new one, at least
<hmpffff> ah, ok. done :)
<abathur> do you need help getting it to work w/o the current published installer?
<hmpffff> as I understand, I only need to download the installer script, remove "the xz-line" and call this installer
<hmpffff> but I write a little bootstrap script which creates the nix partition edits the fstab and synthetic.conf and installs nix. in the next stepp it will also install nix-darwin and/or home-manager.
<abathur> I know that feeling heh; it's been a frustrating few months for darwin installs
<hmpffff> background is, that I want to introduce nix as an possible alternative to our developers. Some of them are basically interested
<abathur> yeah
<abathur> are you up on how the updated installer handles volume creation? does your bootstrap create one because you want encryption or different defaults?
<abathur> (or because you're just working around the months without a working installer? :D)
<hmpffff> and I fear, their interest could pop off quickly, when they are confronted with too many trouble.
<abathur> yes, I agree
<abathur> are they all uniformly on macs?
<hmpffff> around 25 are on macos, 4 on windows.
<hmpffff> our ops are on linux (fedora/centos)
<abathur> ah
<abathur> burke libbey came in briefly the other day to discuss the disk encryption setup in their dev-environment bootstrap at Shopify, so it seems like they've successfully done it
<abathur> I don't know how responsive he is, but he might be a good resource for information about the transition and pain points
<abathur> I've only seen him at IRC once, but there's contact info at https://burke.libbey.me
philr has quit [Ping timeout: 246 seconds]
<hmpffff> regarding the encryption I will lokk into it. As I understand it so far, it is an okish solution as long as you don't want to have started a service before login
<hmpffff> I've already seen a couple of his nix-videos on youtube.
RosaCtrl has joined #nix-darwin
<hmpffff> My "problem" is that I'm new to Linux (at home I play around with NixOS on an old Quad-Xeon-Desktop) and I'm not an advanced shell user. But I try hard. :) NixOS is the first Linux derivat I really want to get into.
RosaCtrl has quit [Ping timeout: 245 seconds]
<hmpffff> one question still puzzles me: do I want nix-darwin? home-manager? both? under mojave I had used nix-darwin
<abathur> maybe both I guess, but I don't use home-manager so it's hard for me to comment
<abathur> nix-darwin is *roughly* bringing whatever NixOS features/principles it can to macOS
<hmpffff> yes. and as I understand home-manager it is like nix-darwin but on user level and not system wide (all users)
<abathur> eeer
<hmpffff> eer? :)
<hmpffff> eeer? :)
<abathur> home-manager is trying to extend the domain of things you can manage with Nix to include your $HOME directory; it's roughly as relevant on NixOS as it is on macOS
<LnL> yeah, some people use home-manager in combination with nixos or nix-darwin
<LnL> it's a separate thing
<abathur> it's easy to see them overlapping because they both deal with "modules" and "programmers"
<abathur> oop[s
<abathur> "programs"
<abathur> "services" etc.
<hmpffff> but you can also manage packets individually like nix-darwin (configuration.nix) you would otherwise use via nix-env
<abathur> but that's because, on NixOS, the modules/programs/services are all already defined in nixpkgs
<LnL> there are approaches without the module system also
<hmpffff> is there an explanation about both? about when I want one oft them or both? pros and cons?
<LnL> putting everything together in a buildEnv like that is what nixos, nix-darwin, etc. also do
<hmpffff> I'm missing an description of their domains. It it not easy to understand when new to this. I have the problem that I maybe have to explain why one want use something or not
<LnL> well yeah, there's a couple of things going on here
<LnL> one part of what all these projects do is just installing binaries, which you can do in many different ways
<LnL> then there's some extra functionality each project brings that includes imperative steps outside of that
<hmpffff> as an example?
<LnL> for nixos/nix-darwin that's eg. configuring system services
<LnL> for home-manager it's creating dotfiles in ~
<hmpffff> and both let me declaratively handle packages
<hmpffff> one on system level, the other on user level?
<LnL> yeah
<hmpffff> it semm I want both
<hmpffff> seems
<LnL> but if that's all you want from it you can easily do that without
<LnL> nix-env is imperative by default, but it's very easy to use that in a declarative way
<hmpffff> I'm interested in the ability to bootstrap a new device with a minimum setup. something one can use directly after receiving a new device
<LnL> when it comes to also doing stuff outside of just nix, that's where the projects bring in useful functionality
<hmpffff> at this time I have difficulties to undertstand how to bring configuration "files" to a fresh device. I can see many of other peoples configurations but I'm not able to find out how to deploy such configs to a fresh device (in as few working steps as possible)
<hmpffff> after installing nix(-darwin) some files are altered by their installer. then I have to transmit "my" configuration from git to this device. Ideally as one-click-something :)
<hmpffff> maybe a little bit naive?
<LnL> depends a bit how much your config depends on other stuff, but yeah
<abathur> I would guess most individuals are doing it with git or maybe curling a bootstrap or something; I don't know if anyone is using MDM or standard images to deploy Nix at a larger scale?
<LnL> not sure for home-manager, but the nix-darwin installation will even use your config if you link it into the default place first
<hmpffff> also here is the background, that is much easier to convince to nix the easier the can simply work with it. I'll give them an ready to go setup and tell them how to do this or that. So they can slip into the world of nix without too many headaches.
<abathur> this may be a place burke libbey could weigh in; I gather from our discussions that Shopify has an internal tool, called `dev`, and I *think* they're running something like `dev up` to provision their systems, but I don't know how they put that internal tool on the systems
<LnL> yeah, for my previous work I also setup an installer which wraps the upstream installer but does a few more extra steps
<hmpffff> gnaaa… to convince my collegues
<LnL> like setup the internal cache automatically, etc.
<abathur> hmpffff are you hoping for them to all share a standard config (with everything they need?), or to provide a starting point that they'll customize from?
<hmpffff> at first they should be able to build their environments. the next step would be to conserve or share configurations for specific software versions. eg. when they suddenly have to fix an older version when actually the wrong developing environment is in place
<hmpffff> at this point homebrew is not helpful
<abathur> I still use homebrew casks, but yeah, otherwise I've thankfully managed to cut it out of my setup
<LnL> that's all separate from system configuration tho
<abathur> right
<hmpffff> LnL: this extra steps are that I currently try
<LnL> you want a shell / build for each project and use that
<hmpffff> I (think) I know how to prepare the disk (works) install nix ("works") and how to install home-manager (todo) and/or nix-darvin (todo) via my script.
<hmpffff> I need an elegant way to take the configuration in place
<hmpffff> via github or files on an network device or usb stick or…
<abathur> hmpffff: The ideal ~Nix~ way is to avoid installing every piece of software you need for a dev project globally, or under your user (because then you don't have to worry about conflicts between projects). You install stuff *users* need that way, but then have specific .nix files (probably committed in the source of each project) that define a standard development environment for the project
<hmpffff> yes I agree
<hmpffff> but sometimes one want a paket as part of the system, like DavMail which I rely on becaus MailMate only talks IMAP :)
<abathur> hmpffff so the scope of the system configs, then, is more like user/utility/productivity software; apps, CLI tools, ssh, encryption tools, backup software, etc.
<abathur> nod
<abathur> when users have different preferences like this, is it up to each user to keep up with their customizations, or do you want the organization to have a copy of each user's customizations?
<abathur> also, are these multi-user or single-user systems?
<hmpffff> at first I want to provide an working setup on which they can learn how to do things when THEY have time for. At first It has to work. Atherwise the could reject nix too fast.
<hmpffff> In this case we are talking about MacBooks, so I think all of them only have one (human) user
<hmpffff> one point is, in case of a trouble I can simply replace a device and use the migration assistant to recover their system. and I want to be able to do this for the nix-installation
<abathur> I would probably start small, both in terms of what you try to handle with Nix, and in the number of users using it
<hmpffff> our programmers are notorious short of time so it is to be feared that they won't go along with nix if the have to spend too much time
<abathur> I don't think you need to start with home-manager; it's fine to add it later
<hmpffff> many of my collegues have trouble with homebrew and principially are interested in an alternative.
<hmpffff> maybe I but maybe I want too much at once and should ONLY bet on nix(-env) with my colleagues.
<abathur> I think nix-darwin is okay; it's hard to say if it's the right way to sell it or not
<abathur> just an opinion, but I'd say it's better to start with maybe 1-3 experienced developers who are most-aware of the trouble with homebrew and most-motivated to get past it
<hmpffff> I personally want nix-darwin
<abathur> yes; I like it quite a bit
<hmpffff> this is my plan. I have 2-3 interested devs
<abathur> I'll qualify why I said I'm not sure about the right way to sell
<hmpffff> but I need something like a "roadmap"
<abathur> the best way to sell Nix is going to be by using it to squash real problems; if the problems center around conflicts between managing dependencies for different projects with homebrew, I think that's a good place to focus first
<hmpffff> an foresight of what is possible
<abathur> if the problem is conflicts between user software from homebrew and project needs, then I suppose it's more reasonable to start with either
<abathur> (I think it's still fine to install nix-darwin in your bootstrap regardless--it's OK if they ignore it)
<hmpffff> maybe you are right. I'm probably driven by that what I want. :)
<abathur> I just mean, in terms of deciding where to focus the initial effort, especially if time is scarce, I would start with the pain points (even if they differ per team member)
<hmpffff> yes. I thought of it as an offer the CAN use
<hmpffff> at simplest only nix-env as a plain homebrew replacement but also to offer to go one step further
philr has joined #nix-darwin
<abathur> maybe; I don't know how others feel about nix-env, but I personally feel a bit like individually installing and uninstalling things with `nix-env -iA <pkg>` is a mis-feature and don't use it
<abathur> (there are plenty of other good uses of the nix-env command, but I think imperatively installing packages with it is usually a bad idea)
<abathur> if you want to install it real quick just to test it, I think it's better to use `nix run` or `nix-shell` so that it'll get cleaned up the next time `nix-collect-garbage -d` runs
<hmpffff> mis-feature: this is why I prefer nix-darwin (or maybe homa-manager). but it should be ok if one sees it as an pure replacement for homebrew
philr has quit [Ping timeout: 265 seconds]
<abathur> and if you want to install it because you need to depend on it, it should either go into a project's .nix file if it's project-specific, or into a system/user .nix and activated with `nixos-rebuild` or `darwin-rebuild` etc.
<hmpffff> any idea how to bring an nix-shell environment together with tools like IntelliJ?
<hmpffff> is there some kind of automatism one can use?
<hmpffff> if I remember correctly there is a environment plugin for VScode. but for IntelliJ?
<abathur> I'm not really sure what's common there; #nixos or the forums may have more to say on the topic
<abathur> I do see a few examples of it being added directly to a shell.nix, but I don't know how normative that is nor if it actually works
<abathur> if you've got scripts that are commonly run by users on different systems that break or do the wrong thing because people have different/missing packages, addressing them with nix-shell shebangs may be another way to solve real pain points without a lot of overhead
<__monty__> Though note that nix-shell shebangs are really slow.
<abathur> __monty__: do you happen to have a single-user catalina install? :)
<wadkar> oops, I ran the installer without moving the /etc/zshrc and other files
<wadkar> do I get to manually change them, how?
<wadkar> never mind; fixed it
<wadkar> what's `/run` and do I need to create it?
<wadkar> okay, I need to create it
eraserhd has quit [Quit: WeeChat 2.8]
eraserhd has joined #nix-darwin
__monty__ has quit [Quit: leaving]
eraserhd has quit [Quit: WeeChat 2.8]
eraserhd has joined #nix-darwin
hmpffff has quit [Quit: nchrrrr…]
hmpffff has joined #nix-darwin
hmpffff has quit [Client Quit]
philr has joined #nix-darwin
mbrgm has quit [Ping timeout: 246 seconds]
mbrgm_ has joined #nix-darwin
mbrgm_ is now known as mbrgm