<clever>
but there are options to restore the expected function
<clever>
jumper[m]: i think chrome and firefox ignore the host ca list by default, they ship internal lists
<clever>
cant find the old omx docs
<clever>
*looks*
<clever>
viric: in omx, you could cross-link components, like mjpeg decode, and h264 encode, and the library would magically figure out when things can stay within the gpu
<clever>
viric: on the whole VC4 line, the "gpu mem" isnt special, and is basically just a partition
<clever>
viric: the old omx api was crazy good at linking components (like gstreamer) and sharing buffers automagically
<clever>
viric: i would have expected the api to allow writing results into the other devices buffer
<clever>
viric: but for that hack to work, the libs must load to the same addr each time, which means avoiding the OS doing automatic relocation, so every dyn lib in cygwin must have its addr assigned, and managed centrally
<clever>
viric: for complex reasons (which may have since been fixed?), cygwin cant use fork(), so it emulates fork, by spawning a new proc, then copying all data over! lol
<clever>
viric: the a.out has a similar limitation to cygwin
2021-03-19
<clever>
viric: in this case, i was using LD_PRELOAD to overwrite a symbol, and wanted to then query the original
<clever>
redmp_: a secondary problem with those ideas above, is that the NIX_PATH will change on every rebuild, but only take effect after shells are re-launched
<clever>
viric: dlopen, and using dlsym on that handle, might work
<clever>
matthewcroughan_: all of the fetch functions put it into /nix/store, named after the hash of the contents, and the function returns that path
<clever>
viric: the runtime linker is going to only load one copy of it
<clever>
matthewcroughan_: those offsets are something internal to setup.sh in the stdenv, ive not figured them out either
<clever>
host platform (what the binary was made for) is the derivations build platform (where the drv will be built)
<clever>
"host platform is the new derivation's build platform"
<clever>
matthewcroughan_: cmake, pkgconfig, and so on
<clever>
matthewcroughan_: anything your running at build time, which must be for the host cpu
<clever>
when in recursive mode, its the hash of `nix-store --dump $out`, which serializes it as a NAR
<clever>
when in flat mode, it is just the raw hash of the file, thats how things like yarn2nix translate a yarn.lock into a drv
<clever>
matthewcroughan_: outputHashMode=flat means that $out must be a single file, outputHashMode=recursive means $out can be anything (file, directory, symlink)
<clever>
matthewcroughan_: if a derivation has the above 3 attrs, it is fixed-output, and it will get network access
<clever>
matthewcroughan_: or the user changed his keys
<clever>
matthewcroughan_: if you make it a fixed output drv (declare the hash of $out), then nix will unlock networking, and fail the build if you dont match that hash
<clever>
matthewcroughan_: you either need to use builtins.fetchurl (impure) or make it a fixed-output drv
2021-03-17
<clever>
adding the iohk hydra to your nix will also speed up the build, directions are in the readme
<clever>
and then it wont be able to update itself, so you need to use `niv update` and rebuild the whole system
<clever>
you can just do something like `daedalus = import sources.daedalus { cluster = "mainnet"; };` in an overlay, and toss it into systemPackages
<clever>
[clever@amd-nixos:~/iohk/daedalus-master]$ nix-build -A daedalus --argstr cluster mainnet
<clever>
and then it will just magically update itself when updates are needed
<clever>
colemickens: after that bin has finished, you will have a binary in ~/.local/bin and its also in the xfce apps menu
<clever>
colemickens: the main point of the sandbox, is to let things work the nix way, even if you lack write perms to /nix, and on a nixos system, if you are not a trusted user in nix.conf
<clever>
ive made sure the sandbox stuff works on both nixos and normal linux
<clever>
colemickens: if you want the sandboxing and auto-update, just install it the same way as any other linux user
<clever>
release.nix is more aimed at running default.nix multiple times, once for every os and cluster combination
<clever>
colemickens: the above cmd uses default.nix
<clever>
that builds a variant without sandboxing, that just runs directly from the host /nix/store, it lacks auto-update capabilities
<clever>
colemickens: `nix-build -A daedalus --argstr cluster mainnet` i think was the incantation
<clever>
matthewcroughan_: this file has all of the default phases
<clever>
matthewcroughan_: if you assign package to pkgs.yabar, it will print that warning
<clever>
probably
<clever>
while default is just a default if you never set anything
<clever>
apply is ALWAYS ran
<clever>
matthewcroughan_: the option accepts text, but this apply turns it into a file containing the text
<clever>
matthewcroughan_: so line 126 is reading the result of the apply function, at all times
<clever>
matthewcroughan_: the result of apply, is what you see at config.services.activemq.javaProperties
<clever>
matthewcroughan_: after nixos has finished merging every value assigned to that option (or picking the default), it will run apply on the merged result
<clever>
getting the auto-generated docs to explain these edge cases isnt easy
<clever>
you could pass that same set to default, but anybody knowing the rules would still be confused more
<clever>
yeah
<clever>
matthewcroughan_: the default of this option dynamically changes, based on other options
<clever>
its a different way of providing defaults at a higher priority
<clever>
its acting like a default, by different rules
<clever>
yeah, it is very funky
<clever>
if you never set javaProperties, then the attrs on line 71 is the default of {}
<clever>
apply always gets ran, when you read javaProperties
<clever>
it isnt ignored
<clever>
then that is at the non-default priority, and so ALL of the default ones (a/b) vanish
<clever>
if you ever do javaProperties = { c=3; }
<clever>
then a/b are at the default priority level
<clever>
the problem is that if you set default = { a=1; b=2; };
<clever>
so if you ever set activemq.base, your version has priority
<clever>
matthewcroughan_: apply is putting those values on the left side of //, so they have a lower priority
<clever>
but they also cant conflict with your own things
<clever>
but they have higher priority, and wont magically vanish if you add anything
<clever>
they are acting like defaults, because they are on the left of a //
<clever>
so then you loose the foo=
<clever>
matthewcroughan_: default = { foo = 1; }; would entirely be replaced by javaProperties = { bar = 2; };
<clever>
matthewcroughan_: after the final merge is done, nixos will run the apply function, and the result of apply is what you read with services.activemq.javaProperties
<clever>
,tell hasik --remove wants the name on the left, not the right
<clever>
yaymukun1: its a module so you have to add <nixpkgs-unstable/nixos/modules/programs/neovim.nix> to the imports section in your configuration.nix
<clever>
yaymukund: prior to discovering that line of meminfo, i often forcibly unplugged things, because umount was hanging for hours
<clever>
simpson: `dd oflags=direct` will force every write to be synced, so the speed will be more true
<clever>
simpson: i believe both pv and dd will hang at the end, and you can `grep Dirty /proc/meminfo` to see how much is pending
<clever>
so the speed will be blazing fast, until your write cache fills up, then the speed will entirely tank, because the sync hangs
<clever>
dd will force a sync at the end
<clever>
yaymukund: dd, cp, and `cat foo.iso > /dev/sdX` all basically do the same thing
2021-03-14
<clever>
colemickens: this also does a lot more then appimage, in order to cache the unpacked closure, and speed up starting the app
<clever>
colemickens: the bundle stuff was originally designed to be flexible, and support any app
<clever>
daedalus ships its own everything (nix ftw), so i can just ship a patched udev to the end-user
<clever>
depends on if the appimage is shipping its own udev, or relying on the fhs-env to provide one
<clever>
and the nix-user-chroot is behaving similar to fhs-env
<clever>
colemickens: daedalus is creating something similar to appimage, but more custom (based on nix-user-chroot and nix-bundle), which allows it to ship a nix closure to a non-nix machine
<clever>
subscribed to the issue
<clever>
you can also reproduce the problem simply by running `udevadm monitor` inside a fhs-env
<clever>
colemickens: i'm also curious how systemd containers dont break things...
<clever>
colemickens: running it without the fhs-env would likely also work
<clever>
colemickens: client side fix, only the libudev inside the fhs-env needs it
<clever>
running it outside of a fhs-env would also work
<clever>
the above patch, disables that bit of security in libudev
<clever>
and libudev actively rejects such messages
<clever>
colemickens: but, a non-root namespace (like the fhs-env) cant map root to a uid, for security reasons, so the uid of the sender becomes nobody
<clever>
colemickens: when the kernel does that, it will try to preserve the uid of the sender
<clever>
colemickens: hotplug events from udevd, are fired into the kernel, which then re-broadcasts them over a special socket, to every libudev client listening for hotplug
<clever>
daedalus had the exact same issue
<clever>
colemickens: fhs-env, i see the problem!
<clever>
colemickens: aha, hotplug issues, i re-launched the electron mess, with it plugged in, and it worked
<clever>
colemickens: yeah, it cant detect my ledger anymore...
<clever>
possibly
<clever>
so you have to repeat the whole series of checks when in an app
<clever>
and it will re-enumerate on the usb bus when you do that, potentially breaking the permissions
<clever>
the app in ledger-live cant do anything until you launch the matching app in the ledger itself
<clever>
thats caused by either uaccess or udev-acl, not sure
<clever>
stteevveen: as the same user you did --list as?
<clever>
stteevveen: did you --update after adding it?
<clever>
stteevveen: that dir gets added automatically, if your user has ran nix-channel --update
<clever>
that drv allows cross-compiling a kernel, with working `make menuconfig`
<clever>
gchristensen: in this case, ncurses doesnt properly add to the cross shell, so i have to add it myself, and then just echo 2 things as a reminder
<clever>
gchristensen: iohk has some tricks where doing `nix-shell -A foo` will use the shellHook to run a script and mutate the source in some defined way, using buildInputs to manage getting the right tools
<clever>
fzakaria: i think its just re-doing the eval every time you enter the dir, and nix caches the build normally
<clever>
gchristensen: i would consider that a bug :P
<clever>
fzakaria: i think the only "feature" it gives, is that the eval/build happens in the background, so you wind up using the old shell for 10mins, pulling your hair out trying to figure out why the shell.nix isnt taking effect