nix-community / nix-on-droid

Nix-enabled environment for your Android device. [maintainers=@t184256,@Gerschtli]
https://nix-on-droid.unboiled.info
MIT License
1.25k stars 69 forks source link

Shmem feature-request #114

Closed ahdyt closed 2 years ago

ahdyt commented 3 years ago

Any occasion on enabling shmem again? as current shmem known as "Function Not Implemented".

What is this use for? something like postgresql. // initdb with postgresql inside nix-shell will shows you error about shmem.

refs: https://github.com/termux/libandroid-shmem/issues/11

Gerschtli commented 2 years ago

If it is just the flag mentioned in https://github.com/termux/libandroid-shmem/issues/11#issuecomment-848601186

so you may want to request authors of Nix-On-Droid to update the bundled proot binary and use option "--sysvipc".

Then we can try to. I do not know anything about shmem, so maybe a short reproducible test config/case would be great so that we would able to see, if it works.

@t184256 From the top of your head: Do you see any potential issues trying to add the flag?

BTW: For the future, please include all information you have in the issue description. Then we do not have to read through other issue to gather all the necessary parts :)

t184256 commented 2 years ago

Not an expert as well, but that lib could be some bionic ease-of-porting lib, so I'd like to first kindly ask the reporter to reproduce with the current master so that https://github.com/t184256/nix-on-droid/pull/138 is included and provide more context if it's still a problem.

t184256 commented 2 years ago

Bad news are, I can reproduce the bug, it's not fixed. Guess we need that --sysvipc after all.

Good news are, build.extraProotOptions = [ "--sysvipc" ];, nix-on-droid switch and restarting the app is enough to fix it.

Gerschtli commented 2 years ago

Does it any harm if we enable it by default? And what does this flag in the first place?

t184256 commented 2 years ago

Enables a proot extension specific for proot-termux intercepting and doing something to interprocess communication-related functions. These aren't widely used and this is the kind of stuff I'd blindly enable in master post-release and wait for bugreports.