Compile lastpass-cli (lpass) for termux

  1. Make sure you have git and some dependencies installed:
    $ pkg install git
    $ pkg install gcc make cmake
    $ pkg install pkg-config openssl-dev libcurl-dev
  2. Get the lastpass-cli source code from github:
    $ git clone https://github.com/lastpass/lastpass-cli
  3. Compile:
    $ cd lastpass-cli
    $ make
  4. The executable is located in ./build/lpass

 

Advertisements

Building minio’s mc and restic on termux

If you use the binaries provided by minio and restic to run the ‘mc’ and ‘restic’ commands on android’s termux, it won’t work, due to restriction on DNS resolution, you need to build them yourself.

This is how to do it:

MC

$ go get -d github.com/minio/mc
$ cd $HOME/go/src/github.com/minio/mc
$ GOPATH=$HOME/go make

RESTIC

$ git clone https://github.com/restic/restic
$ cd restic
$ go run build.go -v --enable-cgo

Straightforward java compilation on termux

To run java apps on your android device, install termux, and run the following:

$ pkg install ecj dx
$ cat > Hello.java <<EOF
public class Hello {
  public static void main(String[] args) {
    System.out.println("Hello world, on termux!");
  }
}
EOF
$ ecj Hello.java
$ dx --dex --output=Hello.dex Hello.class
$ dalvikvm -cp Hello.dex Hello
Hello world, on termux!

How to find out compiler version of a go binary

If you have a binary that was produced by a golang compiler, and you want to find out which version of the compiler was used, you can use use the C debugger gdb as follows:

$ gdb /path/to/binary
[...]
(gdb) p 'runtime.buildVersion'
$1 = 0x5e1d83 "go1.9"

Generate an SSH public key

If all you have is an SSH private key and you need to generate a public key out of it, you can run the following:

ssh-keygen -y -f yoursshkey

It will spit out the public key on the standard output.

Raspberry Pi: attach a serial console

For a Raspberry Pi with GPIO pins (B, B+, 2, 3):

  1. Connect as follows:
  2. Append this line at the end of /boot/config.txt:
    enable_uart=1
  3. Access the console from your workstation like this:
    sudo screen /dev/ttyUSB0 115200

Sources:

For Raspberry Pi without pins (Pi Zero, Pi Zero W):

  1. Add the following line at the end of /boot/config.txt:
    dtoverlay=dwc2
  2. Insert the following between ‘rootwait‘ and ‘quiet‘ in /boot/cmdline.txt:
    modules-load=dwc2,g_serial
  3. Mount the linux part of the Pi SD card and add the following lines at the end of /etc/rc.local, before ‘exit 0’:
    usbconsole="getty@ttyGS0.service"
    if [ ! $(systemctl is-enabled "${usbconsole}") ]
    then
    echo "Enabling and starting ttyGS0 console..."
    systemctl enable "${usbconsole}"
    systemctl start "${usbconsole}"
    fi
  4. Connect a micro usb cable into the socket market ‘USB‘ on the Pi, not the one marked ‘PWR’.
  5. On your workstation, console can be accessed as:
    sudo screen /dev/ttyACM0 115200

Sources:

git: list all files in a commit

To list all the files tracked a commit, run this:

git ls-tree --full-tree -r <hash>

If you’re only interested in the names:

git ls-tree --full-tree -r --name-only <hash>