00:13
drakonis has quit [Ping timeout: 252 seconds]
00:35
drakonis has joined #nixos-dev
00:38
drakonis_ has joined #nixos-dev
00:41
drakonis has quit [Ping timeout: 250 seconds]
01:08
drakonis has joined #nixos-dev
01:48
drakonis_ has quit [Ping timeout: 250 seconds]
01:49
drakonis_ has joined #nixos-dev
01:55
drakonis_ has quit [Ping timeout: 252 seconds]
01:57
drakonis_ has joined #nixos-dev
02:38
drakonis1 has joined #nixos-dev
02:41
drakonis_ has quit [Ping timeout: 252 seconds]
02:42
<
colemickens >
client: must succeed: curl --fail -g http://[fd60:cc69:b537:1:d93a:3eb:b6a2:bcdb]
02:42
<
colemickens >
client# curl: (3) URL using bad/illegal format or missing URL
02:42
<
clever >
colemickens: sounds like curl was built without v6 support?
02:44
<
clever >
client# [ 0.000000] Command line: loglevel=7 console=ttyS0 panic=1 boot.panic_on_fail init=/nix/store/svpmpkqmzm6y6v7ngkb96csbfllc0rdf-nixos-system-client-19.03pre-git/init regInfo=/nix/store/biylx0lyrj13r48bi32jhgbf5vm23ccm-closure-info/registration console=hvc1 console=ttyS0
02:44
<
clever >
if you `nix-store -r` the storepath from `init=...`, it will give you that closure
02:46
drakonis_ has joined #nixos-dev
02:46
<
clever >
[clever@system76:~]$ nix-store -qR /nix/store/svpmpkqmzm6y6v7ngkb96csbfllc0rdf-nixos-system-client-19.03pre-git | grep curl
02:46
<
clever >
/nix/store/cbcxzibqf1ljyw5v902qyccqwr0r8515-curl-7.62.0
02:46
<
clever >
/nix/store/ygj70aid797zzcxpqcs1dqdqn1pkjfds-curl-7.59.0
02:47
<
clever >
colemickens: and there are 2 curls in its closure
02:47
<
colemickens >
interesting. thanks for sharing the nix-store commands too, I've only once used it (manually anyway) and it's nice to see some uses
02:47
<
clever >
7.59 is linked to nix, 7.62 is in system-path
02:48
drakonis1 has quit [Ping timeout: 252 seconds]
02:48
<
clever >
ah, and curl has no binaries in .out
02:48
<
clever >
they are in .bin
02:48
<
clever >
7.59's .bin isnt in the closure, so only 7.62 can have a curl binary
02:49
<
clever >
[clever@system76:~]$ /nix/store/i5pcdar16dzd5gp0dc9324vsx5yljqmz-curl-7.62.0-bin/bin/curl --version
02:49
<
clever >
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy
02:49
<
clever >
[clever@system76:~]$ /nix/store/i5pcdar16dzd5gp0dc9324vsx5yljqmz-curl-7.62.0-bin/bin/curl --fail -g http://[fd60:cc69:b537:1:d93a:3eb:b6a2:bcdb] -v
02:49
<
clever >
* Closing connection -1
02:49
<
clever >
curl: (3) URL using bad/illegal format or missing URL
02:49
<
clever >
colemickens: it claims to have ipv6 support, but also fails when given the url from the testcase
02:50
<
clever >
but if i run my local curl, it fails with a different more expected error (host not found)
02:50
<
clever >
bisect time
02:51
<
clever >
nix-build -A curl, on nixpkgs master, gives me the faulty curl!
02:52
<
clever >
[clever@system76:~/nixpkgs]$ nix-build -A curl && ./result-bin/bin/curl --fail -g http://[fd60:cc69:b537:1:d93a:3eb:b6a2:bcdb] -v
02:52
<
clever >
Bisecting: 1164 revisions left to test after this (roughly 10 steps)
02:52
<
colemickens >
clever: how did you pick the other end of the range? did you just take the git sha from the last time the ipv6 test passed? Looks like bac76e8a9ef5981df1b133258484962b801181a3 ?
02:53
<
clever >
colemickens: i picked the rev from `nixos-version`
02:53
<
clever >
which is a random point on nixos-unstable, when i last updated my laptop
02:53
<
clever >
which is known-good, from previous testing
02:54
<
clever >
2 builds of curl are bad, a 3rd curl is building locally
02:56
<
clever >
colemickens: e9d6475e68188b2c81563cf9a96ea91a2b28623a is the first bad commit
02:56
<
clever >
its a curl version bump
02:57
<
{^_^} >
curl/curl#3220 (by hagai-auro, 2 weeks ago, closed): unexpected bad/illegal url format error. A short host + port is treated as a scheme!
02:57
<
clever >
colemickens: and the PR with that bump requested a backport, so 18.09 is likely also broken
02:58
<
clever >
ofborg doesnt run nixos tests, and curl is also pretty deep in the dep-tree
02:58
<
clever >
so its hard to get good testing fast
03:00
<
colemickens >
surprised they haven't done a bugfix release (assuming that's the right bug, but it seems like a big coincidence if it isn't)
03:01
<
colemickens >
though, also surprised that that URL wasn't included in a curl unit-test. hm.
03:01
<
clever >
the nix sandbox may not configure ipv6,
*looks*
03:01
<
colemickens >
I guess the number of users using the very latest curl and ipv6 must be low, go figure.
03:01
<
colemickens >
eh, the test pings (successfully) before curl'ing.
03:02
<
clever >
the nixos tests boot a full nixos in qemu, so it can have ipv6
03:02
<
clever >
but the curl build itself lacks qemu, so its using a network namespace on the host, configured according to the nix code
03:03
<
colemickens >
I'm not sure I follow what you're looking into now.
03:03
<
colemickens >
On the hydra test, the ipv6 ping works, so doesn't that mean the sandbox is fine?
03:03
<
clever >
the ipv6 ping happens inside a qemu, so the sandbox doesnt come into question
03:04
<
clever >
the curl derivation itself, isnt built inside qemu, so it has different rules to play by
03:05
<
colemickens >
hm, maybe I need to read up more about how the tests work. The lines where the curl runs and the lines where the ping look are right next to each other and have the same prefix. I don't know how I'd know they're running in different places
03:06
<
colemickens >
(or I'm totally off-base and missing something)
03:06
<
clever >
it has a `client` prefix, so its running in a qemu machine called client
03:06
<
colemickens >
oh you're trying to figure out why an earlier test didn't catch it?
03:07
<
clever >
i'm just saying that you cant test it as easily, prior to involving qemu
03:07
<
clever >
in the curl build itself
03:07
<
colemickens >
I see
03:07
<
clever >
also, #nixos just mentioned a very similar issue...
03:08
<
colemickens >
yeah, I was wondering if we should open up an issue to track at least.
03:08
<
colemickens >
and/or so multiple people don't (re)start diving in
03:08
<
clever >
too late, somebody already has a PR to fix it :P
03:08
delroth has joined #nixos-dev
03:09
<
clever >
[clever@system76:~/nixpkgs]$ git fetch origin pull/50905/head
03:09
<
colemickens >
noooooo
03:09
<
colemickens >
I mean, great :)
03:09
<
clever >
[clever@system76:~/nixpkgs]$ git checkout FETCH_HEAD
03:10
<
colemickens >
oh it's you
03:10
<
colemickens >
sweet :).
03:10
<
clever >
[clever@system76:~/nixpkgs]$ nix-build nixos/release.nix -A tests.ipv6.x86_64-linux
03:11
<
clever >
the above commands will checkout whatever is in PR 50905, and then run the ipv6 test on it
03:11
<
delroth >
it's a curl change → needs to rebuild ~everything
03:11
<
delroth >
I'm currently running it locally and it's taking forever as expected
03:11
<
clever >
[clever@system76:~/nixpkgs]$ nix build -f nixos/release.nix tests.ipv6.x86_64-linux
03:11
<
clever >
this will give a better UI
03:15
<
clever >
cmake and others are building
03:16
<
clever >
~200 packages remain
03:16
<
clever >
due to how fixed-output stuff works, its not a full mass-rebuild, but a lot of things still link to curl
03:38
drakonis1 has joined #nixos-dev
03:42
contrapumpkin has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
03:42
drakonis_ has quit [Ping timeout: 252 seconds]
03:45
drakonis_ has joined #nixos-dev
03:45
drakonis_ has quit [Client Quit]
03:49
drakonis1 has quit [Ping timeout: 276 seconds]
04:08
<
clever >
its even building llvm!
04:09
<
delroth >
yeah llvm and aws-sdk-cpp are the two annoying ones it seems like
04:58
<
colemickens >
something in some of the disk images pulls in aws stuff iirc, or it did some months ago.
04:58
<
clever >
nix depends on aws
04:59
<
clever >
for the s3:// store
05:06
drakonis has quit [Quit: WeeChat 2.2]
05:53
jtojnar has joined #nixos-dev
06:05
jtojnar has quit [Quit: jtojnar]
06:14
orivej has quit [Ping timeout: 268 seconds]
06:26
<
delroth >
clever: my nix-build tests.ipv6.x86_64-linux succeeded fyi with #50905
06:26
<
delroth >
dunno if yours is still running or what
07:03
makefu has quit [Ping timeout: 245 seconds]
07:23
<
colemickens >
delroth: I guess you need a new GH avatar if you stick around, eh? :)
07:27
* colemickens
wants a cool nixos avatar
07:32
worldofpeace has quit [Ping timeout: 268 seconds]
07:54
FRidh has joined #nixos-dev
08:16
<
srhb >
delroth: Ah, I just did the same thing locally. Thanks for picking that up.
08:16
<
{^_^} >
#50905 (by delroth, 5 hours ago, open): curl: cherry-pick upstream patch for ipv6 url parsing
08:33
makefu has joined #nixos-dev
09:09
orivej has joined #nixos-dev
09:24
<
arianvp >
Has anybody tried packaging dracut for NixOS before?
09:36
__Sander__ has joined #nixos-dev
10:35
<
andi- >
why would you want that?
10:46
orivej has quit [Ping timeout: 240 seconds]
10:56
hedning has joined #nixos-dev
11:22
zimbatm has joined #nixos-dev
11:23
<
niksnut >
I wonder if Nix could be made to use systemd dynamic users to allocate build users
11:24
<
niksnut >
it would certainly simplify the installer if we don't have to create users
11:36
<
zimbatm >
would each builder be a systemd unit with socket activation?
11:37
<
zimbatm >
there could be some other benefits of extracting the builder as a service
11:39
<
zimbatm >
if the builder is re-usable between runs it could also save on the sandbox initialization time
11:41
<
niksnut >
turning them into units would not be practical
11:41
<
niksnut >
so I hope there is some d-bus mechanism to create users
11:42
orivej has joined #nixos-dev
11:45
<
niksnut >
basically, the UserLock class would call systemd to create a uid for us
11:46
<
niksnut >
however, it looks like systemd has only a limited uid range for dynamic allocations, and doesn't support allocating a uid range
11:46
<
niksnut >
which would be needed for full user namespace support
11:46
<
niksnut >
because we'd want to allocate (at least) 2^16 uids per build
11:47
<
zimbatm >
it looks like it allocates the user at unit startup
11:48
<
niksnut >
hm, too bad
11:48
<
zimbatm >
the logic is implemented in src/core/dynamic-user.c
11:49
<
zimbatm >
it looks like it uses filesystem locks to guarantee uniqueness
11:49
<
niksnut >
it could be done using systemd-run --property=DynamicUser=yes
11:49
<
niksnut >
probably too heavy though
11:49
<
zimbatm >
wouldn't that be a bit heavy? :D
11:50
<
zimbatm >
we could also boot a VM per build :p
11:50
<
zimbatm >
that would allow cross-compilation nicely ;)
11:58
Lisanna has joined #nixos-dev
13:57
drakonis has joined #nixos-dev
14:03
<
flokli >
zimbatm: that's not cross-compiling, but cheating :-P
14:09
<
zimbatm >
but it would make the builds more reproducible :p
14:09
<
zimbatm >
`derivation { vm-config = { memory = 2048; ...`
14:10
<
zimbatm >
it's a bit frustrating to do all the work and then be hit by memory constraints
14:14
jtojnar has joined #nixos-dev
14:14
averell has quit [Quit: .]
14:17
averell has joined #nixos-dev
15:00
<
arianvp >
Yes there is a dbus API for creating dynamic users
15:01
<
arianvp >
Why is starting a unit 'too heavy' though?
15:05
<
arianvp >
I don't think it's that heavy to spawn units on demand with systemd-run
15:05
<
arianvp >
Note that systemd-run also has a dbus interface. Manager.StartTransientUnit
15:07
<
clever >
zimbatm: have you seen my qemu-user stuff?
15:08
<
zimbatm >
clever: where is it?
15:08
<
zimbatm >
arianvp: where should I look for the dbus API
15:08
<
clever >
zimbatm: that will configure binfmt-misc to run qemu on the configured arches, and also configure nix-daemon to support them
15:09
<
arianvp >
Which we conveniently packaged for nix during all systems go conf
15:12
<
zimbatm >
clever: that's magic!
15:12
<
{^_^} >
rfcs#36 (by globin, 1 minute ago, open): Improving the RFC process
15:13
<
clever >
zimbatm: very, but it fails the occasional test within coreutils i think
15:13
<
clever >
zimbatm: needs a real arm mixed in, or maybe a full vm
15:13
<
{^_^} >
globin's karma got increased to 2
15:13
<
clever >
but i dont think qemu-system supports smp
15:14
<
zimbatm >
wait. does it mean we can also run windows executables in linux
15:14
<
clever >
zimbatm: the examples for binfmt-misc explain how to wire PE files to wine and JAR files to java
15:14
<
clever >
you then just need to +x the "executables" and run them like normal
15:16
<
zimbatm >
--disable-kvm ?
15:17
<
clever >
qemu-system cant use kvm when the arch differs
15:17
<
clever >
qemu-user can never use kvm (i believe)
15:17
<
clever >
i have in the past used qemu-user to emulate x86_64, on x86_64!
15:18
<
clever >
and that successfully reproduced bugs that occured only in non-kvm qemu-system
15:18
<
clever >
but without having to boot an entire OS first
15:18
<
zimbatm >
I don't understand how the executable gets access to the current environment
15:18
<
zimbatm >
is there a kernel in the VM?
15:18
<
clever >
qemu-user will just translate every syscall
15:18
<
clever >
no 2nd kernel exists
15:18
<
zimbatm >
and that works?
15:19
<
zimbatm >
that's crazy
15:19
<
zimbatm >
and thus, no p9fs bugs
15:19
<
clever >
ive seen p9 get inodes crossed
15:19
<
clever >
and a random directory appears in the contents of another
15:22
<
clever >
zimbatm: qemu-user also allows it to dynamically get as much ram (and swap) as it needs, rather then assigning a fixed amount at boot
15:23
<
zimbatm >
what is the catch?
15:23
<
zimbatm >
it seems too good to be true :)
15:23
<
clever >
some syscalls are unsupported, like some modern rng ones
15:23
<
clever >
and a few syscalls behave slightly differently, causing coreutils tests to fail
15:24
<
clever >
and its slower at single-threaded loads then a real arm
15:24
<
clever >
but x86 has more cores, so you can still out-do it overall
15:36
<
{^_^} >
rfcs#36 (by globin, 24 minutes ago, open): Improving the RFC process
15:36
<
Profpatsch >
Meta RFC!
15:37
<
simpson >
"The bureaucracy is expanding to meet the needs of the expanding bureaucracy."
15:37
<
Profpatsch >
Waiting for RFC 37: “Merge RFC 36: Improving the RFC process”
15:37
<
simpson >
It
*does* seem like an improvement that is likelier to accelerate RFC cycles.
15:38
<
gchristensen >
simpson: good :)
15:38
<
arianvp >
zimbatm: I linked the dbus docs above by the way. Forgot to tag you
15:38
<
arianvp >
In case you missed it
15:38
<
gchristensen >
beaurocracy isn't a bad word, as much as people would like it to be :P
15:39
<
arianvp >
That's a very dutch stance
15:39
<
gchristensen >
arianvp: that beaurocracy isn't a bad word? or that people would like it to be?
15:40
<
arianvp >
That bureaucracy isn't a bad word
15:41
<
gchristensen >
ah :)
15:42
<
Profpatsch >
Meeting the needs of the many
15:55
<
zimbatm >
thanks arianvp, I got too excited about the qemu stuff :)
16:44
__Sander__ has quit [Quit: Konversation terminated!]
16:56
<
zimbatm >
arianvp: I haven't found a way to access dynamic users with dbus directly
16:56
<
zimbatm >
the only way is to start a unit
16:56
<
zimbatm >
(which can be done over dbus)
17:01
<
Mic92 >
Ok. Go cross compiling is now complete. It is now also possible to cross-compile the go compiler itself.
17:37
<
domenkozar >
would you consider debugger for Nix (step across scopes, inspect bindings) something much appreciated?
17:39
<
clever >
i have thought about makign something like that as well
17:39
<
clever >
ive also thought about a better profiler
17:39
<
clever >
,profiling
17:39
<
{^_^} >
Use NIX_COUNT_CALLS=1 and/or NIX_SHOW_STATS=1 to profile Nix evaluation
17:39
<
clever >
that gets total call count for every nix function and primop, but not much much cpu time is spent in each
17:40
<
clever >
being able to generate something like a flamegraph would make it a lot simpler to know which thing is to blame
17:40
<
domenkozar >
both are not that hard to do with hnix nowadays
17:41
<
domenkozar >
a few days of hacking, I think
17:41
* domenkozar
is thinking about xmas gifts
17:43
<
Mic92 >
domenkozar: yes, an (inspect $expression) function that spawns the repl would be great.
17:44
<
domenkozar >
that almost exists in hnix
17:44
<
domenkozar >
I'd like to go further, instad of getting a backtrace, you get interactive debugger
17:45
<
domenkozar >
instead*
17:46
<
Mic92 >
I have no idea how a debugger would work in a lazy programming language
17:46
<
domenkozar >
you can go into each stack
17:46
<
domenkozar >
and see all bindings
17:46
<
clever >
Mic92: i was thinking something that lets you walk the AST manually, and then eval things in a given scope
17:46
<
domenkozar >
it's easy in nix since they all have Show instance :D
17:47
<
domenkozar >
the way scopes are implement is so elegant
17:47
<
clever >
i was also thinking more about the c++ nix, not hnix
17:47
<
domenkozar >
it's just a list and it uses a readert to go provide the scope
17:47
<
clever >
for example, out of the box, snack takes over 3 days to eval cardano-sl-core (and it didnt even finish)
17:48
<
clever >
it involves derivations and IFD heavily
17:48
<
Mic92 >
I am fine with with both
17:48
<
clever >
does hnix support IFD?
17:48
<
domenkozar >
not (yet)
17:48
<
domenkozar >
hnix almost got proper string context support last weekend
17:48
<
domenkozar >
next step is proper nix-store abstraction
17:48
<
clever >
then your going to have a VERY hard time getting snack to profile in hnix
17:48
<
domenkozar >
then ifd
17:49
<
domenkozar >
hnix is still much slower than cnix
17:51
orivej has quit [Ping timeout: 268 seconds]
17:51
<
clever >
oh, and if you profile it to optimize for the slow primops in hnix, it may still perform worse on cnix, due to its primops being different speeds
17:57
<
domenkozar >
I guess those were the questions more for #nixos
17:57
<
domenkozar >
since we're all pretty used to what goes wrong with Nix :)
18:04
<
zimbatm >
Mic92: I read "Gross compiling is now complete" :p
18:17
MichaelRaskin has joined #nixos-dev
18:21
<
Mic92 >
zimbatm: sometimes it is.
18:58
FRidh has quit [Quit: Konversation terminated!]
19:03
orivej has joined #nixos-dev
19:18
worldofpeace has joined #nixos-dev
20:02
<
Mic92 >
Ericson2314: what would be the lib/systems/examples.nix entry for macOS?
20:02
<
Mic92 >
Ericson2314: I can already produce go binaries for windows
20:03
<
Ericson2314 >
Mic92 haha there might not be one
20:03
<
Ericson2314 >
Nice with Go though!
20:03
<
Mic92 >
Yes, the question is what would I need to put there
20:08
drakonis has quit [Ping timeout: 260 seconds]
20:22
<
Mic92 >
zimbatm: ok. direnv also compiles with nix on Windows now, your makefile however skips the extension
20:22
<
Mic92 >
not on but for
20:32
<
Ericson2314 >
Mic92 sorry on the phone so need ping for notification. `{ config = "x86_64-apple-darwin"; }` should be enough
20:33
<
Ericson2314 >
You can instantiate nixpkgs non-cross and then look at `hostPlatform` for reference.
20:34
<
Mic92 >
Ericson2314: thanks
20:34
<
Ericson2314 >
NP! Hope that works
20:38
orivej has quit [Ping timeout: 240 seconds]
20:43
<
zimbatm >
Mic92: what do I need to fix in the Makefile for this to work?
20:55
worldofpeace has quit [Ping timeout: 250 seconds]
20:57
<
Mic92 >
zimbatm: append $(go env GOEXE) to go build -o
20:58
<
Mic92 >
GOEXE is ".exe" on Windows
21:00
<
{^_^} >
direnv/direnv#417 (by zimbatm, 16 seconds ago, open): make: generate direnv.exe on windows
21:33
<
{^_^} >
#50928 (by Mic92, 3 minutes ago, open): direnv: 2.17.0 -> 2.18.1 + make cross-compile on windows
22:31
lassulus has quit [Remote host closed the connection]
22:58
lassulus has joined #nixos-dev
23:10
phreedom has quit [Ping timeout: 256 seconds]
23:11
drakonis has joined #nixos-dev
23:25
drakonis_ has joined #nixos-dev
23:42
phreedom has joined #nixos-dev
23:46
jtojnar has quit [Quit: jtojnar]
23:56
<
Mic92 >
To get a cross-compiler for linux