<clever>
colemickens: on the daedalus side directly, there is a cross-compiled nsis, yarn2nix, and some electron wizardy to package things up without any windows machines
<clever>
colemickens: then it depends on cardano-wallet, cardano-node, and cardano-shell, which are haskell projects using haskell.nix to cross-compile everything
<colemickens>
aha, thanks for the quick guide, this is fun to think about
<clever>
colemickens: its using a haskell library called nsis, that is using an EDSL, to let you easily write nsis scripts
<clever>
it lets you treat the nsis script more like a functional monad
* colemickens
grimaces - eclipsensis
<colemickens>
I guess if it's complicated enough to benefit from an edsl, then maybe also an ide if you dont have the edsl, heh
<clever>
colemickens: nsis is also somewhat stack based, like the internals of lua, so you have to pop things after calling functions, which can get messy
<clever>
colemickens: and this part is where i had some trouble but angerman from haskell.nix got it working
<clever>
colemickens: this will cross-compile some partial installers, with the actual data&script missing
<clever>
colemickens: and then native-compile the makensis binary, which will compress your files, compile the nsis script into some kind of bytecode, then assemble it with the partial installers, to make a working installer binary
<samueldr>
though I figure that for your case it's likely irrelevant
<samueldr>
(pun totally accidental)
<joepie91>
samueldr: yeah
<joepie91>
this is like, cheapest-chinesium-grade
<samueldr>
I kinda assumed because of what you said yesterday :)
<joepie91>
it's not like anything about these resistors can be trusted anyway :P
<infinisil>
Played around with pulseaudio a bit today
<infinisil>
It's not as bad as I imagined it to be!
<cole-h>
"Played around" how?
<infinisil>
I set it up such that I can do an OBS recording with three different audio sources, the sfx of a game, the music, and voice
<genevino>
give jack a try maybe? ;)
<infinisil>
And then I made it output multiple audio track for different combinations
<clever>
infinisil: ive done similar before, i setup a few null sinks, then routed game and other to different null-sinks
<infinisil>
clever: Yeah I did something like that too :)
<clever>
infinisil: then i had obs stream the monitor of the game null-sink
<genevino>
infinisil: yeah you probably want to have a look at jack. and you can even configure pulseaudio as a jack sink, btw.
<clever>
infinisil: and used a PA loopback to pipe the null-sink back into the main audio mix, so i could hear it normally
<clever>
genevino: yeah, jack has a much better UI for this all, but i think you could just make a UI over the whole pulse mess too
<pie_[bnc]>
yeah i just use JACK
<infinisil>
genevino: I might do in the future yeah :)
<infinisil>
(Though I actually don't need this for anything)
<clever>
genevino: my biggest problem with jack, is that very few programs support it, so you wind up having to pipe things in&out anyways, thru stuff like pulse
<genevino>
clever: well all i'm saying is jack solves headaches :)
<pie_[bnc]>
oh i see it was already mentioned
<pie_[bnc]>
anyway if infinisil tries to get jack running maybe the nixos module will finally be made to work in a useful way
<infinisil>
Hehe
<genevino>
kek
<infinisil>
You have discovered my one weakness
<clever>
infinisil: i also have a secondary problem with obs, something to do with the number of windows (i think) is causing obs to leak memory like mad
<pie_[bnc]>
currently i kill pulse and run pulse and jack manually
<clever>
infinisil: as-in, my swap usage increases at a rate of 1gig/minute, when obs is open
<pie_[bnc]>
because i wasnt able to figure out a way to get everything else to work for me
<pie_[bnc]>
genevino: sounds to me like you have a clue about jack?
<genevino>
pie_[bnc]: not sure, i made music with it
<pie_[bnc]>
idk if something on my system is effed up locally (probably) because I had a hell of a time figuring out how to get it to work and the error messages are pretty useless
* clever
heads off to bed
<pie_[bnc]>
or, well, the errors from the pulse jack plugins are real bad at least
<pie_[bnc]>
sure but you can still use jack for the complex routing part<clever> genevino: my biggest problem with jack, is that very few programs support it, so you wind up having to pipe things in&out anyways, thru stuff like pulse
<genevino>
pie_[bnc]: well that whole thing of getting audio to run is a bit like try&error under linux, especially if you're after low latency and multiple inputs/outputs and re-chaining stuff.
<pie_[bnc]>
yeah i didnt deal with real time stuff i just wanted routing
<genevino>
pie_[bnc]: yes absolutely, but IF a program supports it, you get the benefits of super low latency
<genevino>
pie_[bnc]: and being able to control A LOT OF inputs at a time.
<pie_[bnc]>
i use my phone microphone over plumble-mumble-jack-pulse because i didnt want to buy one and my laptop mic is crap
<infinisil>
musnix still seems active!
<genevino>
if you have proper audio hardware, you basically WANT jack.
<genevino>
like there's no reason not to use it.
<genevino>
when making music, every ms basically counts. you want to have the least latency you can have with your setup.
<genevino>
the bad news is that macos is still superior in terms of user friendliness and usability when it comes to audio support, but the good news is that you have more control and better tools in linux (better tools as in what the OS delivers to put you in control, not in the availability of proprietary DAW software)
<genevino>
it's not unlikely that some component goes bonkers in a linux audio setup, but at least you have all the tools to identify and isolate (damn covid19 is affecting my vocabulary) the component
<genevino>
also for routing multiple inputs/outputs at a time, jack is quite okayish
<pie_[bnc]>
yeah im happy with the routing capabilities i think
<pie_[bnc]>
its kind of annoying when programs are implemented not-great and devices come and go
<gchristensen>
infinisil: deeply regretting having rpool/{root,home,nix} right now since I can't snapshot root,home atomically without filling my disk with nix snaps :(
<gchristensen>
and the migration is a bit spooky
<infinisil>
rpool/root contains what?
<gchristensen>
/
<gchristensen>
(a ton of services and what-not,from before my days of erasing my servers' /'s)
<pie_[bnc]>
the titledoesnt do the talk justice probably -*- pie_[bnc] watches https://invidio.us/watch?v=o_4EX4dPppA "The Hard Parts of Open Source" by Evan Czaplicki
<infinisil>
Generated with `findmnt -t zfs -o target,source`
<infinisil>
I guess I never bothered about /, not backing it up
<infinisil>
(other than /var/lib and /home)
<gchristensen>
yeah
<gchristensen>
I do similar
<infinisil>
Why would you want to take snapshots of root and home combined though?
<infinisil>
Or just root even?
<infinisil>
Ah
<infinisil>
The ton of services from before
<infinisil>
Right
<infinisil>
Oh, but what's the point of snapshots if the data doesn't change anymore?
<gchristensen>
it does, this server is from before I adopted that
<infinisil>
Ah I see
<gchristensen>
okay way past my bedtime
<gchristensen>
g'night
<infinisil>
Night!
<infinisil>
I wanted to use the ZNC watch module <https://wiki.znc.in/Watch> to put all messages that mention me into a buffer, so I never miss when somebody pinged me
<infinisil>
But it turns out that the buffer watch writes to isn't persistent, it gets lost when I reconnect :/
<{^_^}>
znc/znc#988 (by Mikaela, 4 years ago, open): *watch: use query buffers instead of own implementation / send messages to all detached clients when they appear
<cole-h>
I just spilled hard cider all over my mousepad and on part of my keyboard... :(
<cole-h>
Luckily I have a backup keyboard for situations like this, but it's so unsatisfying to type on
<samueldr>
musn't be that hard if it can be spilled
<pie_[bnc]>
hard-not-to-spill-cider
<pie_[bnc]>
wait cole-h are you why youtube had a hiccup?
<pie_[bnc]>
failover took a few minutes it seems
<cole-h>
pie_[bnc]: Yep, that was me, sorry ;^)
<cole-h>
samueldr++ Keep the puns coming, my friend. Free karma for you.
<{^_^}>
samueldr's karma got increased to 223
waleee-cl has quit [Quit: Connection closed for inactivity]
<cole-h>
Good news! My keyboard seems to have risen from the dead! Numpad works again (it didn't immediately after being in the splash zone): 123456789/*-+
<pie_[bnc]>
for now? :P
<cole-h>
...for now.
<cole-h>
It's the perfect excuse to look into getting a new keyboard, though 👀
<ashkitten>
hmm i want an option for `nix run` that lightly sandboxes the program so it doesn't litter my homedir with configs and state if i'm just testing an app
__Sander__ has joined #nixos-chat
<LnL>
nix-build? :D
<MichaelRaskin>
eyJhb: your formula looks like a sum of expectation formula for discrete case and expectation formula for continuous case
<MichaelRaskin>
LnL: accessing the app running inside nix-build is a bit cumbersome, though
<LnL>
yeah I know
<MichaelRaskin>
(I have actually done that at some point, though)
<LnL>
I wonder how difficult nix-shell --sandbox would be
<MichaelRaskin>
Depending on how much you want to sandbox and how well you want to manage it
<LnL>
in theory it's the exact same thing as a build does, just attached to the current tty
<MichaelRaskin>
Well, does it include network isolation (correct answer: configurable)
<MichaelRaskin>
What you allow as preserved state, corresponding to outputs?
<MichaelRaskin>
There is tty, but then there is also X11 or Wayland session
<LnL>
right, but that isn't really sandboxed anymore then
<MichaelRaskin>
Not fully anymore, but still usefully
<ashkitten>
really i just want to set $HOME as a tmpdir for the sandbox, and block access to the home directory (but you can pass in specific files and directories to be bind-mounted in)
<MichaelRaskin>
Yeah, very nice functionality (I have it on my system by wrapping nsjail stuff)
<MichaelRaskin>
But managing the details of the blocking is a bit messy
<ashkitten>
actually, a very clean solution for my specific wants would be for it to give it a chroot with your whole filesystem hierarchy as a temporary overlayfs so any changes would not be persistent
<ashkitten>
since i don't care about actually blocking read access to anything, i just don't want to create new state
<LnL>
stop with the feature creep :D
<LnL>
might take a poke a shuffling the code around
<ashkitten>
i wonder if i could implement this as a shell.nix? you can make chroots with that, right? like fhsenv or whatever
<ashkitten>
fshenv*
<ashkitten>
wait, no
<ashkitten>
got it right the first time
<ashkitten>
ashkitten++
<{^_^}>
ashkitten's karma got decreased to 4
__Sander__ has quit [Ping timeout: 246 seconds]
parsley936 has joined #nixos-chat
__monty__ has joined #nixos-chat
<sphalerite>
ashkitten: buildfhsuserenv won't allow you to use overlay mounts, user+mount namespace only allows bind mounts for unprivileged users
<MichaelRaskin>
+ tmpfs
<srk>
> builtins.storePath
<{^_^}>
<PRIMOP>
<srk>
> builtins.storeDir
<{^_^}>
"/nix/store"
<srk>
> builtins.storePath "x"
<{^_^}>
string 'x' doesn't represent an absolute path, at (string):308:1
<srk>
> builtins.storePath "/x"
<{^_^}>
access to path '/x' is forbidden in restricted mode
<srk>
mysterious builtin of the day
<LnL>
what's mysterious about it?
<adisbladis>
srk:
<adisbladis>
> builtins.storePath pkgs.hello
<{^_^}>
access to path '/nix/store/wwrhgby67wrs35v48kaj0aprm8imi587-hello-2.10' is forbidden in restricted mode
<srk>
gives me the same result when testing in repl
<srk>
oh
<srk>
nvm
<LnL>
take a string that's a real store path and convert it to a path so dependencies are tracked
<srk>
I see, thanks
<LnL>
nix-repl> :t "${builtins.storePath "/nix/store/4w99qz14nsahk0s798a5rw5l7qk1zwwf-hello-2.10"}" a string with context
<LnL>
that's how lib.toDerivation allows you to introduce an arbitrary store path as a fake derivation for example
<srk>
started to RE string contexts only recently, they are missing in nix thesis /o\ :D
<srk>
LnL: maybe I should add your explanation to that ticket?
<LnL>
sounds great :)
<srk>
cool, done
<LnL>
one case I often use this for is deploying a dev build of something on a system
<LnL>
instead of messing with awkward derivations, nix copy + lib.toDerivation
<srk>
nice, that's indeed useful sometimes
<srk>
escape hatches <3
<srk>
LnL++
<{^_^}>
LnL's karma got increased to 45
<LnL>
yeah, you loose all traceability but it's a nice shortcut for testing/debugging
<hyperfekt>
channel blockers are now linked on the status page? that's so cool
<LnL>
yep, it's a bit hacky but mostly work
<joepie91>
LnL: it's mostly work, or it mostly works? :D
<LnL>
works*
<eyJhb>
MichaelRaskin: think I solved it
<eyJhb>
Btw. how do you jail everything?
<MichaelRaskin>
Not really _everything_
<eyJhb>
What do you jail?
<MichaelRaskin>
But a lot of things, yes
<MichaelRaskin>
I try to jail whatever handles too-big-not-to-fail formats. Modern web, PDF, office formats, images of imperfect provenance
<MichaelRaskin>
I have not yet reached the level of enlightenment needed to have Vim and DVCS run in separate jails, no.
<MichaelRaskin>
Technical implementation: [a ton of Common Lisp code manages all of that, and there are a few couple-of-syscalls C helpers, but all of that is not too expensive to reimplement]
<MichaelRaskin>
So each program gets an nsjail with some global stuff like /nix and /dev/null and whatever extra is requested
<MichaelRaskin>
Separately, network namespaces are in use in a large fraction of cases.
<MichaelRaskin>
From the outside point of view, nsjails run under separate UIDs; most of the UIDs used are throwaway
<MichaelRaskin>
Network access is proxied inside the jail using socat. So many containment units have access to DNS and Squid proxy without direct network access.
<__monty__>
MichaelRaskin: Any rationale for the CL predilection? Or just the devil you know?
<MichaelRaskin>
Just general «I want a weird design, so I want to match stuff with language constructs, so macros»
<MichaelRaskin>
Julia sometimes changes; embedded DSLs in Ruby would still be kind of limiting in some cases.
<MichaelRaskin>
Also, it is nice to integrate with StumpWM with lower mismatch.
<__monty__>
I was thinking more like Guile since it's the language GNU wants to standardize on.
<MichaelRaskin>
I do sometimes debug things by live-reloading single functions, so Rust would be harder, I guess.
<MichaelRaskin>
I guess full macros + single-function live-reloading + low-churn ecosystem already spells Common Lisp?
__Sander__ has joined #nixos-chat
<ornxka>
why is nix fixed point implementation not in a file called fix.nix
<viric>
ah your jails are your own thing, MichaelRaskin ?
<emily>
you say "single-function live-reloading", I say a great way for your dev environment to get out of sync with the files that actually declare it
<emily>
feel like Racket's deviation from that model is more of an advantage than something lacking
<MichaelRaskin>
viric: yes, on top of nsjail and unshare and some glue
<viric>
ah interesting. I didn't know any of that.
<viric>
yet master and release-20.03 have 7.4.4. Is it good to have 7.5.0-rc5 on master?
<{^_^}>
nixops#1326 (by adisbladis, 3 days ago, open): tests: Add functional tests using NixOS in Podman (Docker)
<viric>
I wonder if "-rc5" makes it unacceptable
<MichaelRaskin>
Well, if the latest release has a bug making it unusable, and the RC is generally stable, I would say that would be acceptable but with a comment linking the upstream severe bug in the release
<adisbladis>
^ This
<adisbladis>
Generally stick to stable releases & patch if need be
<adisbladis>
Sometimes applying a patch is too hard, then I'd consider an RC fine
<adisbladis>
Obviously usable software is better than unusable software, no matter it's release cycle ;)
<viric>
ok
<viric>
In 7.5.0 they reworked all and noone wrote a patch I think
<viric>
I wonder if Tribler has ever been stable
<joepie91>
I don't think it's meant to ever be stable, exactly :P
<joepie91>
it's explicitly a research project
<joepie91>
pioneered a lot of features in modern bittorrent, at the cost of reliability being not great at times
<viric>
Do you think anything developed around tribler made its way to broad bittorrent?
<aanderse>
so again i have to ask... does anyone actually use lutris on nixos? every single game i've tried doesn't work :\
<ajs124>
aanderse: I always check who has commits in the package, in those cases.
<aanderse>
ajs124: well i know its a relatively new package and there have been a number of issues with it
<aanderse>
i'm just trying to find out if it actually has ever worked for anyone :\
<joepie91>
viric: yes, AFAIK like half of the modern bittorrent features (streaming torrents, swarm optimization mechanisms, fair piece trading mechanisms, etc.) comes from tribler originally
<joepie91>
viric: also, if you're interested in unusual torrent clients, also consider webtorrent desktop
cjpbirkbeck has joined #nixos-chat
<ajs124>
aanderse: why would it have been merged, if it didn't?
<ajs124>
On the other hand, my only memory related to that package is that it init'd sndio in an ancient version, while I had a PR for the at the time current version open for weeks/moths
<joepie91>
aanderse: I've also had nothing but issues with Lutris, though at least the GOG integration was recently fixed I think
<ornxka>
aanderse: i use an arch container for video games on nixos
<ornxka>
i could probably wrestle with buildFHSUserEnv or something but honestly its just easier this way
<aanderse>
ornxka: steam works perfectly
<ornxka>
a lot of proprietary programs have hardcoded paths and stuff
<ornxka>
really?
<ornxka>
im surprised
<aanderse>
oh yeah, it is great
<aanderse>
i love steam gaming on nixos
<aanderse>
such a fantastic pain free experience, even with windows gaming
<aanderse>
i have some windows games i bought on GOG and i have got them working with wine before, but i never got into making prefixes for apps
<aanderse>
so that bites me in the backside because eventually they stop working or whatever
<ornxka>
ahh yeah
<aanderse>
lutris seemed like a nice painless way to manage wine prefixes on top of merging all my games into 1 library
<ornxka>
i started using a new prefix for every game
<aanderse>
yes, i want to do that... except i want something to do it for me :D
<ornxka>
:P
<aanderse>
i have a kodi plugin for steam which is awesome. i thought if lutris worked out i could rewrite the plugin to use lutris api instead...
<ornxka>
i use lutris on arch and it works pretty okay, im not sure why it wouldnt work on nixos
<aanderse>
ok, well i guess i'll give up on lutris for now and revisit in 6 months
<ornxka>
you could also maybe just use steam + proton for it although ive never tried it and im not sure how much work that would entail
<ornxka>
but i know you can add games to steam and that steam uses a prefix per game
<aanderse>
will steam proton run the installer and everything?
<ornxka>
ah, i think it is less batteries-included than that
<ornxka>
and that you would probably have to run it yourself in the prefix, and then update it to point to the installed program
<srk>
ornxka: you just enable proton in settings, steam will dl it and works out of box
<ornxka>
i mean for third-party games you didnt buy through steam
<ashkitten>
when openzfs 2.0 drops i wanna get at least a 500gig nvme drive and use that as my l2arc so i never have to think about how my pool is actually on spinning rust
<etu>
2.0? Is it any plans for that? They are at 0.8.x afaik
<ornxka>
i wont tell you my secrets even if you are a maintainer
<etu>
They did X.Y.0 -> X.Y.9, then they realized that they needed more numbers. So they did X.Y.90 -> X.Y.99 and ran out of numbers again so they actually never changed the nines in the number...
<ornxka>
lol
<etu>
They just appeneded a zero and incremented it to 9 and added a zero again.
<ornxka>
ah yes asymptotic versioning
<sphalerite>
doesn't TeX's versioning converge towards pi?
<ornxka>
yes
<ornxka>
and metafont's towards e i think
<colemickens>
cole-h: do PR CI jobs execute under the context of the submitter?
<sphalerite>
ashkitten: why, will 2.0 have persistent l2arc?
<colemickens>
if so, a maintainer could modify your PR to exfilitrate your credentials that your GH user has access to that they don't. Maybe?
<ashkitten>
sphalerite: correct
<sphalerite>
oooh
<sphalerite>
so I can have all the terabytes AND all the fasts!
<ashkitten>
yesss
<ornxka>
will zfs 2.0 have more terabytes than previous versions
<ashkitten>
...sorta? it'll include zstd compression, in theory
<evelyn>
the openzfs wiki recommend SLC drives for cache devices but I can't for the life find these drives for sane money
<ornxka>
i see
<ashkitten>
evelyn: that's just to make the drive last longer, i think
<ashkitten>
since a cache device will be rewritten often
<adisbladis>
I've been considering "version numbers" for software that's auto released by CI
<ashkitten>
it'd be cool to have a ci that automatically detects breaking api changes and updates the version based on that info
<srk>
yeah, exactly what I was going to add
<cole-h>
colemickens: Interesting. Just seems weird that they changed the wording only recently...
<adisbladis>
Oh!
<adisbladis>
ashkitten: That's a good first (real) foray into rust for me :>
<cole-h>
colemickens: And it also only says the "secrets" stuff after it was created -- in the "drafting a description" phase, it only says "Allow maintainers to edit"
<adisbladis>
Too bad Nix is not even optionally typed :/
<adisbladis>
You can only really detect breaking function signatures, not their types
<ashkitten>
wasn't someone working on a type system for nix?
<MichaelRaskin>
adisbladis: well, some types can be inferenced
<pie_[bnc]>
lol me working on a type system for nix
<pie_[bnc]>
there was some work on a gradually typed type system a while back but that ended up sort of vaporware, if you google for it
<pie_[bnc]>
tazjin implemented something that uses runtime type checking
<pie_[bnc]>
but i dont remember if that was just for the module system (probably not, because it already has a type system)
<joepie91>
ashkitten: type system for Nix was def. not me :P
<joepie91>
I did experiment a bit with something for JS
endformationage has joined #nixos-chat
<ornxka>
i recently found the gradually typed nix type system work recently
<ornxka>
its a shame it was never completed
<infinisil>
I'm not sure how useful it would've been in practice
<ornxka>
i was also thinking some nix stuff is hard to type
<ornxka>
like ive just gotten to the overrides part of the nix pills
<drakonis>
it would've been more useful for elaborate things
neeasade has joined #nixos-chat
<eyJhb>
Any ideas what the reason for a computer to freeze up when making a 10GB file using dd with if /dev/zero to /tmp ? - The /tmp is just part of / (no seperate partition) using EXT4. I have a 250 GB Samsung Pro SSD 850 I think, 16 GB ram, and a 3520m CPU. The Ram or CPU barely gets used. Thinking it might be because it is on the same partition, but even then it shouldn't
<eyJhb>
I cannot use the mouse + keyboard, audio does not work etc. but randomly comes again at times so I can cancel the process
<sphalerite>
eyJhb: does the journal say anything?
<eyJhb>
Don't think so, let me desroy my PC real quick
<eyJhb>
Nope journalctl -r does not show anything of interest sphalerite :/