Termux-app: getresuid() not implemented in Android runtime for Chrome OS

Created on 28 Aug 2016  路  11Comments  路  Source: termux/termux-app

Since this doesn't seem to happen on non-Termux, reporting here.

When running gist -l username, I get the following error:

/data/data/com.termux/files/usr/lib/ruby/gems/2.3.0/gems/gist-4.5.0/lib/gist.rb:462:in `system': Function not implemented - getresuid(2) (Errno::ENOSYS)
    from /data/data/com.termux/files/usr/lib/ruby/gems/2.3.0/gems/gist-4.5.0/lib/gist.rb:462:in `which'
    from /data/data/com.termux/files/usr/lib/ruby/gems/2.3.0/gems/gist-4.5.0/lib/gist.rb:523:in `legacy_private_gister?'
    from /data/data/com.termux/files/usr/lib/ruby/gems/2.3.0/gems/gist-4.5.0/lib/gist.rb:531:in `should_be_public?'
    from /data/data/com.termux/files/usr/lib/ruby/gems/2.3.0/gems/gist-4.5.0/bin/gist:153:in `<top (required)>'
    from /data/data/com.termux/files/usr/bin/gist:23:in `load'
    from /data/data/com.termux/files/usr/bin/gist:23:in `<main>'

screenshot 2016-08-27 at 17 23 40

bug report

Most helpful comment

@qntmpkts Thanks, let me know if you find out something, or if a Chrome OS update resolves the issue!

All 11 comments

Initial check to make sure: Run apt update && apt upgrade to ensure that you test against the latest package versions. If the problem remains after that:

Could you provide the output of running dpkg --print-architecture and uname -a? Also, which device and Android version do you run?

This issue may be the same root cause: https://github.com/termux/termux-packages/issues/380

I've tested with a arm-on-android6, aarch64-on-android6 and x86_64-on-android7, and it works for me there, so it may depend on device, arch and/or android version.

@qntmpkts Also, can you test if ruby -e 'system("echo hi")' is enough for you to reproduce a problem (that is, if system() in ruby does not work on your setup at all)?

Preface: running on Chrome OS's Android (ARC) implementation.

This is with the latest ruby, gist, and updates.

dpkg --print-architecture gives:

i686

uname -a gives

Linux localhost 3.14.0 #1 SMP PREEMPT Tue Aug 16 22:06:59 PDT 2016 i686 Android

Curiously, ruby -e 'system("echo hi")' gives:

-e:1:in `system': Function not implemented - getresuid(2) (Errno::ENOSYS)
    from -e:1:in `<main>'

It seems like a bug or missing feature in the android runtime for chrome os. I wonder where to report bugs against that component?

@qntmpkts Can you try compile and run the following C program for a minimal test case?

#include <stdio.h>
#include <unistd.h>

int main() {
        uid_t ruid, euid, suid;
        if (getresuid(&ruid, &euid, &suid) == 0) {
                printf("ruid=%d, euid=%d, suid=%d\n", ruid, euid, suid);
        } else {
                perror("getresuid");
        }
        return 0;
}

Yeah, result is as expected:

screenshot 2016-08-28 at 14 42 28

For now, I submitted feedback with Ctrl+Alt+i to the devs. There should be another way to submit feedback, but I seem to have misplaced the link. Will ping detail when I find it.

Edit: ARC Version 3215306.

@qntmpkts Thanks, let me know if you find out something, or if a Chrome OS update resolves the issue!

Official bug reports may be entered here: https://bugs.chromium.org/p/chromium/issues/list

Latest version of ARC on Dev Channel (ver. 3230769) still does not have getresuid.

@qntmpkts Can you try out a build of ruby where the usage of getresuid() has been disabled:

wget http://fornwall.net/ruby_2.3.1-5_i686.deb
apt install ./ruby_2.3.1-5_i686.deb

The same error occurs in gist using the getresuid-disabled build of ruby.

This issue was moved to termux/termux-packages#901

Was this page helpful?
0 / 5 - 0 ratings