[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#35639: 27.0.50; tramp fails to use ssh on LibreCMC (no base64 encode

From: Michael Albinus
Subject: bug#35639: 27.0.50; tramp fails to use ssh on LibreCMC (no base64 encoder available, and not mentioned in tramp manual)
Date: Fri, 10 May 2019 12:18:17 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Jeronimo Pellegrini <address@hidden> writes:

> Hello Michael,

Hi Jeronimo,

>> > +(defconst tramp-hexdump-awk-coding-test
>> > +  "test -c /dev/zero && \
>> > +busybox hexdump -v -e '16/1 \" %02x\" \"\\n\"' < /dev/null && \
>> This must be "hexdump", not "busybox hexdump".
> The original tramp-awk-encode uses "busybux awk". Is there a particular
> reason for that, or could it also be changed to "awk"?

I don't remember exactly, but I believe there was a reason. Likely, a
simple "awk" didn't work, but "busybox awk" did. On whatever test machine.

> and so on, so if busybox is called and argv[0] is "awk" it knows
> the user's intention. So, using "busybox awk" and "busybox hexdump"
> would guarantee that this encoding scheme works on devices where the
> symlinks are not available (I've never seen one actually); on the other
> hand, it would break the encoding method for computers which do have
> awk and hexdump, but no busybox... What do we do? Duplicate the
> functions again?

The awk methods are intended for very leightweighted machines, like
routers or NAS devices. It is expected that they have installed busybox.

According to <https://busybox.net/downloads/BusyBox.html>, "awk",
"hexdump" and "od" are subcommands of busybox. Unfortunately, not all
busybox installations have all subcommands compiled in. For example, on
my NAS device "awk" and "hexdump" are part of busybox, "od" isn't.

--8<---------------cut here---------------start------------->8---
[~] # busybox --help
BusyBox v1.01 (2019.03.22-03:18+0000) multi-call binary

Usage: busybox [function] [arguments]...
   or: [function] [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as!

Currently defined functions:
        [, addgroup, adduser, ash, awk, basename, bunzip2, busybox,
        bzcat, cat, chgrp, chmod, chown, chroot, chvt, clear, cmp,
        cp, crond, crontab, cut, date, dc, dd, deallocvt, delgroup,
        deluser, df, dirname, dmesg, dos2unix, du, echo, egrep, env,
        expr, false, fdisk, fgrep, find, free, getty, grep, gunzip,
        gzip, halt, head, hexdump, hostname, hwclock, id, ifconfig,
        init, insmod, install, ip, kill, killall, klogd, linuxrc, ln,
        logger, login, ls, lsmod, md5sum, mkdir, mknod, mktemp, modprobe,
        more, mount, mv, nameif, netstat, nslookup, openvt, passwd,
        pidof, ping, ping6, pivot_root, poweroff, ps, pwd, rdate, readlink,
        reboot, renice, reset, rm, rmdir, rmmod, route, sed, sh, sha1sum,
        sleep, sort, strings, swapoff, swapon, switch_root, sync, sysctl,
        syslogd, tail, tar, tee, telnet, test, tftp, time, top, touch,
        tr, traceroute, true, tty, umount, uname, uniq, unix2dos, unzip,
        uptime, usleep, vi, wc, wget, which, whoami, xargs, yes, zcat
--8<---------------cut here---------------end--------------->8---

Maybe, we shall use just a template for the encoding/decoding functions,
and for all busybox subcommands we need a test, whether they can be
invoked via "busybox command" or "command". There will be sevaeral
combinations to test.

> tramp-busybox-od-awk-encode
> tramp-busybox-hexdump-awk-encode
> tramp-busybox-awk-decode
> tramp-od-awk-encode
> tramp-hexdump-awk-encode
> tramp-awk-decode
> I feel like that would be a too large amount of duplicated code...
> Or is that ok?

No, too much duplicated code. As said above, provide
tramp-od-awk-encode, tramp-hexdump-awk-encode and tramp-awk-decode, and
make intelleigent tests whether "awk", "hexdump" and "od" need to be
prefixed by "busybox".

> Thank you for your patience!
> J.

Best regards, Michael.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]