<simpson>
Dunno, but we should turn it into monitoring if this is useful. All zeroes here in Portland: https://bpaste.net/3HKQ
<abathur>
plausible/meaningnful to add a syntactic alternative to `with`, let's call it `from`, that *only* supports selecting from the target set (all others are errors)?
<simpson>
abathur: .
<timokau[m]>
Also here's a one liner, in case people like piping straight from curl into bash (I know people love that)
<gchristensen>
thank you, simpson!
<abathur>
s/with/from, rollback anything that breaks
<MichaelRaskin>
gchristensen: Germany / Bavaria / Landkreis Ebersberg Gemeinde Poing (near Markt Schwaben)
<gchristensen>
simpson: something like the RIPE ATLAS Probes, but for NixOS infrastructure testing? :)
<gchristensen>
thanks MichaelRaskin!
<MichaelRaskin>
Do you want the same on OVH Strasbourg, or has someone already tried?
<gchristensen>
please
<simpson>
gchristensen: Yeah. I've been sketching something like this; I'm no longer employed, so I no longer have to wait to build it. The idea is to integrate information at each meaingful machine/locus, rather than just sending metrics up constantly; a machine might know an approximation rather than a true value.
<simpson>
Observing a Nix store would be just one facet of integrable data, I'd hope.
<gchristensen>
that would be cool :D
<gchristensen>
simpson: although I am sorry to hear you're no longer employed :( I hope that you can turn that around quickly
<simpson>
Meh. I'm in no rush. I'm tired of corporate work. Maybe I'll find a co-op position somewhere.
<cransom>
gchristensen: `curl -si https://cache.nixos.org/ | grep x-served-by` may also be handier than physical location for future requests.
<drakonis>
i've seen guix only use grafts for urgent security patches
<gchristensen>
I'm not sure we really need it, we can get rebuilds out sufficiently quickly
<drakonis>
and redirect packages to another
<gchristensen>
and I'm not sure the complexity is worth it for that
<drakonis>
to be fair, its useful for smaller changes
<drakonis>
not just avoiding mass rebuilds.
<gchristensen>
yea
<drakonis>
plus it can be useful outside of nixpkgs when you dont have hydra
<drakonis>
i wouldnt want to be caught having to mass rebuild without the nixpkgs build farm
dongcarl has quit [Ping timeout: 264 seconds]
<drakonis>
and let's be honest, hydra can lock up some times
<niksnut>
globin: I don't know exactly what the issue is, but usually if options.xml has a dependency on something, you need to use literalExample to suppress it
<drakonis>
if hydra gets jammed during another heartbleed exploit, it wouldnt be super fun to be unable to bump up a version for a few days
<gchristensen>
even in its worst case, we can unbreak things and get a release out in <24h, when the typical release target is 14 days
<drakonis>
i see.
<drakonis>
well, okay.
<gchristensen>
that release target is set by openwall's linux-distro embargo'd list criteria
<drakonis>
neat.
<gchristensen>
I think being able to graft two things together would be great
<gchristensen>
I'd be interested in a way to do it with `nix` the CLI, though
<drakonis>
likewise.
<drakonis>
guix's cli lets you graft different sources on the fly
<gchristensen>
nice
<drakonis>
`guix build --with-input=guile=guile@2.0 guix` and `guix build --with-graft=gnutls=gnutls@3.5.4 wget`
<drakonis>
for examples
<gchristensen>
interesting
<drakonis>
speaking of CLI, executing nix scripts as commands a decent idea?
<drakonis>
there's currently a lot of extra tooling existing outside of the sphere of influence of the main CLI that has to be executed as separate binaries
<drakonis>
ie: home-manager, nixops, the importers
<Ericson2314>
FRidh: I was learning about python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html, what do we do, if anything about these?
<pie_[bnc]>
Ericson2314: 1) my wild guess is probably nothing 2) the link is not clickable :PP
* pie_[bnc]
clicks
<pie_[bnc]>
this is sounding like a good article to have
<Ericson2314>
hmm firefox does seem to be giving me this fucked up URls lately, though I can click
<Ericson2314>
there must be some official documentation on this, but perhaps it is less honest about the problems that arise
<drakonis>
i think i missed out on a phrase here
<pie_[bnc]>
ok the length of that page is scary
<drakonis>
have a nix script that wraps other nix tools that can be added to the CLI
<drakonis>
that's just the comments
<drakonis>
its a bigger than half the page
<pie_[bnc]>
i really feel like we should have some sort of domain experts phonebook for nixpkgs :V
<FRidh2>
Ericson2314: this isn't anything surprising to me. Indeed, the official docs might not be explicit about these traps but its not something new nor something we need to deal with; we just consume Python packages "as usual"
rsa_ has joined #nixos-dev
<FRidh2>
for namespace packages there is a new hook that cleans that up when needed, but it's very rare that it is needed
<Ericson2314>
FRidh2: so i have noticed e.g. trying to get google packages like protobuf working with 1 and 2
<Ericson2314>
sometimes I get like "missing thing called `google` errors"
<Ericson2314>
* "missing thing called `google`" errors
<FRidh2>
I'm not familiar with these so-called errors, but protobuf is working fine, not?
<FRidh2>
oh wait you mean it wasn't able to import the google package ok
<FRidh2>
well, maybe they're namespace packages, those can indeed still be tricky
<FRidh2>
especially PYTHONPATH does not work well with them
<FRidh2>
at least the legacy namespace packages. pep 420 namespace packages work fine
<Ericson2314>
FRidh2: yes the namespace packages was thing I meant to link within there
<Ericson2314>
it seems like it is hard to have an open/extensible subnamespace and support both python 2 and 3?
<Ericson2314>
I really do not know about these things, just grasping at ideas after seem build failures and not knowing what to blame
<FRidh2>
it can work fine, as long as one is consistent, that is, uses the same implementation method within the namespace
<FRidh2>
but the old ways (pkgutils, pkg_resources) may not work well with PYTHONPATH, which is what we use at build-time. `export NIX_PYTHONPATH=$PYTHONPATH` should resolve that though
<FRidh2>
but supporting both 2 and 3...poor you :)
<pie_[bnc]>
looks like packages.html got some upgrades, but hte source code link is missing?
<Ericson2314>
hahah yes poror me. Thanks for the info FRidh2
FRidh2 has quit [Quit: Konversation terminated!]
<drakonis>
where did the C manpages go now?
<drakonis>
why do we have two separate manpages packages?
<tilpner>
The posix manpages aren't really useful if you're not developing something with posix-compatibility in mind
<drakonis>
i dont want the posix manpages tho
<drakonis>
i want the c library manpages
<tilpner>
E.g. which man page?
<drakonis>
any
<drakonis>
they're not showing up here
<tilpner>
You have no manpages at all?
<tilpner>
How did you install them?
mkaito- has joined #nixos-dev
<drakonis>
with nix-shell
manveru_ has joined #nixos-dev
<drakonis>
ah, it seems that it only showed up after i explicitly included it into the system environment
<drakonis>
or not
<drakonis>
nvm here we go
__monty__ has quit [Quit: leaving]
fadenb has quit [*.net *.split]
manveru has quit [*.net *.split]
mkaito has quit [*.net *.split]
manveru_ is now known as manveru
<samueldr>
today I am thankful for `builtins.currentTime`, as it will allow me to introduce irreproducibility to bisect an issue
<gchristensen>
+1 nice
<samueldr>
-1 having to bisect nix again :(
<qyliss>
how do we have builtins.currentTime???
<qyliss>
What was the story behind that feature?
<samueldr>
AW, and I just GC'd, so all my previously built nix from the earlier bisect are gone :(
<drakonis>
its great for telling time!
<qyliss>
If I wasn't halfway through a build of 7000 packages I'd offer to run a bisect script for you on a very big computer
fadenb has joined #nixos-dev
<samueldr>
I have a not-small computer, though the time it'll take to make the bisection automated will be longer than doing manually
<qyliss>
ahh
<samueldr>
unless one of you have tips for bisecting issues with nix builds with the nix daemon
<qyliss>
what sort of issues?
<samueldr>
`path '...' is not in the Nix store`, happening at build time with a newer version of Nix, but not on 2.3
<qyliss>
yikes
<samueldr>
if I hadn't had that leftover nix daemon from the earlier bisect I wouldn't have known
<samueldr>
(it takes ~5 minutes to build nix, so it's only on the brink of being irritating)
<qyliss>
I didn't see at first that you were bisecting Nix, not nixpkgs
<samueldr>
and builtins.currentTime invalidates the builds for when it builds successfully
<globin>
samueldr: sudo NIX_REMOTE= nix... to not use the daemon?
<samueldr>
hm, this would require the steps to happen as sudo, or else the sudo auth would time out, though keeping that in mind for a future bisect
<infinisil>
qyliss: I think there's a PR that uses currentTime to emit warnings when old nixos releases become unsupported
<qyliss>
wow
<MichaelRaskin>
samueldr: maybe copy the store and use unshare, if you have enough space of course
<infinisil>
Sacrificing a bit of purity for security sounds decent
<qyliss>
mmm, I still think we'd be better off if it wasn't in the language
<infinisil>
> UTC
<nix-build>
"The time in UTC is currently 22:30:05 (UTC 0)"
<infinisil>
Also needed for this!
<gchristensen>
great point!
<qyliss>
UTC 0?
<qyliss>
But that's a useful bot feature
<infinisil>
> CET
<nix-build>
"The time in CET is currently 23:30:33 (UTC +1)"
<infinisil>
(Just how it's implemented)
<gchristensen>
currentTime is really wonderful for testing things like this
<qyliss>
current plans seem to be to make all of this stuff unusable in flakes
<gchristensen>
yep
<infinisil>
Though I have to say, I could implement this feature on the Haskell side instead and pass that to Nix, so I wouldn't have to use currentTime
<MichaelRaskin>
Some people, of course, would use builtins.fetchGit + currentTime for always-latest expressions…
<MichaelRaskin>
I think nowadays Nix has plugins for extra builtins?
<samueldr>
I believe for better dogfooding builtins.currentTime could be implemented as a plugin, shipped with nix, and enabled by default
<samueldr>
(up until it won't be enabled by default)
dongcarl has joined #nixos-dev
<infinisil>
Oh and I'm also using currentTime to implement random numbers :P
<infinisil>
> random
<nix-build>
3895191978
<infinisil>
(as a seed)
<infinisil>
Which is what > fortune then uses
<infinisil>
> fortune
<nix-build>
"<miguel> any new sendmail hole I have to fix before going on vacations? -- Seen on #Linux"
<qyliss>
omg that's great
<qyliss>
> fortune
<infinisil>
(totally how Nix is supposed to be used btw!)
<nix-build>
"C is quirky, flawed, and an enormous success -- Dennis M. Ritchie"
<qyliss>
> fortune
<nix-build>
"Just about every computer on the market today runs Unix, except the Mac (and nobody cares about it). -- Bill Joy 6/21/85"
<qyliss>
I'm gonna be playing with this all night
<simpson>
That quote gets funnier every decade.
<qyliss>
Doesn't work in PM though :(
<qyliss>
> fortune
<nix-build>
"Building translators is good clean fun. -- T. Cheatham"
<infinisil>
qyliss: Wait let's go to #bottest for a bit
justanotheruser has quit [Ping timeout: 256 seconds]
<gchristensen>
it seemed like it was fixing a legit problem, but we probably should yes, jtojnar, and consider alternative solutions to the other problem
<Ericson2314>
Jan Tojnar: that *nixos* change caused the glibc problem?
<nix-build>
#83863 (by edolstra, 1 day ago, open): Giant options.xml.drv file in 20.03
<Ericson2314>
ah ok, whew
<jtojnar>
let's see if it fixes the evaluation
justanotheruser has joined #nixos-dev
<worldofpeace>
domenkozar: topic for the go/no-go meeting 😉
<jtojnar>
looks like it works 🎉️
<gchristensen>
speaking of which, I'll mail about that here in a second :)
<jtojnar>
now testing staging
<jtojnar>
s/staging/staging-next/
<jtojnar>
yeah, works on staging-next oo 🎉️
<gchristensen>
nice, great :D
<worldofpeace>
✨ yay!!!!
<worldofpeace>
tbh, I know which commits I'm dying to hit master from staging... 😸
<qyliss>
new rust new rust new rust
<abathur>
are there "good" reasons for packages to copy/install from $src/<file|dir> to $out/<file|dir> as opposed to just copy/install <file|dir> to $out/<file|dir>
<gchristensen>
not sure I understand
<abathur>
example from the yadm package: install -Dt $out/bin $src/yadm
<qyliss>
Probably not
<samueldr>
install vs. cp is a style choice mostly with nix
<qyliss>
But do check -- maybe there's all sorts of junk that would be in the bin directory otherwie
<samueldr>
though it would be nice to have guidelines for one or the other
<qyliss>
samueldr: the question is not install vs cp, it's installing a whole directory vs installing specific files from that directory
<abathur>
playing with building it with resholver, lost half an hour trying to figure out why my substituteInPlace wasn't applying (on some complex syntax that oil isn't cleanly parsing) only to find out my patch was applying just fine, but not getting installed
<jtojnar>
also try git blame
<julm>
I prefer install, it can set owners and mode in the same command
<samueldr>
hm, I don't see that in the question
<abathur>
so then I grepped for "\$src[/]" and found quite a few
<samueldr>
julm: there's no owner/modes in nix except +x / -x though :/
<abathur>
so, more to the point, wondering if there's a meta issue to report
<samueldr>
oh, now I see the meat of the question, copying from _$src_ rather than from _pwd_
<jtojnar>
abathur maybe the builder (e.g. meson) changes the directory and the packager just did not know where to find the file
<abathur>
yes, sorry
<samueldr>
I would assume copying from $src to $out is a mistake
<abathur>
well, this one's just in a plain installPhase
<abathur>
right
<samueldr>
though maybe there's real use cases, but I would assume in most cases it's not
<julm>
samueldr: in pkgs yes, but not in NixOS module
<abathur>
after reading it, I do too, but I see quite a few potential cases on a naive grep
<abathur>
good point julm
<samueldr>
julm: right, but how often do a nix module `install` or `cp` as an "install phase"?
<samueldr>
a nixos module*
<abathur>
though most of the grep matches I got are in pkgs
<abathur>
looks like 81 distinct files match the grep, not that they all actually do the bad part :)
<julm>
samueldr: I thinking about the preStart phase of a systemd service, where /var is set up, like in this one I've written: nixos/modules/services/networking/shorewall.nix: install -D -d -m 750 /var/lib/shorewall
<samueldr>
oh, right
<julm>
loos like most of install(1) uses are for mkdir+chmod+chown, but a few of them actually are copies: "${pkgs.coreutils}/bin/install -m644 ${ymlFile} ${configFile}
bhipple has joined #nixos-dev
<julm>
it's flexget, I've no idea why this install is done instead of passing the path in the nix store