インタラクティブバイナリエディタのGNU pokeをbuild

インタラクティブで拡張可能なバイナリエディタのGNU pokeの1.0がリリースされました．とりあえずビルドして使えるようにしてみました．

GNU poke

GNU poke – Release notes for poke 1.0

GNU poke 1.0 released

$ sudo apt install libgc-dev libreadline-dev build-essential (1)
$ wget https://ftp.gnu.org/gnu/poke/poke-1.0.tar.gz https://ftp.gnu.org/gnu/poke/poke-1.0.tar.gz.sig (2)
$ gpg2 --verify ./poke-1.0.tar.gz.sig (3)
gpg: assuming signed data in './poke-1.0.tar.gz'
gpg: Signature made Fri 26 Feb 2021 06:59:30 PM JST
gpg: using RSA key BDFA5717FC1DD35C2C3832A23EF90523B304AF08
gpg: Good signature from "Jose E. Marchesi <jemarch@gnu.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: BDFA 5717 FC1D D35C 2C38 32A2 3EF9 0523 B304 AF08
$ tar tvf ./poke-1.0.tar.gz | lv
$ tar xf ./poke-1.0.tar.gz (4)
$ cd poke-1.0
$ mkdir build (5)
$ cd build
$ ../configure --help
$ ../configure (6)
$ make (7)
$ make check (8)

必要なパッケージの導入

ソースファイルダウンロード

署名確認

source展開

ビルドディレクトリ作成

configure

make

必要パッケージについてはここではDebianで必要最小限の物です．その他の関連パッケージや環境は DEPENDENCIES に書かれています．

$ poke/poke ${FILE}
_____
---' __\_______
______) GNU poke 1.0
__)
__)
---._______)

Copyright (C) 2019-2021 The poke authors.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Powered by Jitter 0.9.258.
Perpetrated by Jose E. Marchesi.

For help, type ".help".
Type ".exit" to leave the program.
(poke) .help TOPIC
Available help topics:

Commands:
dump - display the contents of a range in the current IO space.
copy - Copy a range of memory.
save - Save a range of an IO space to a file.
extract - Extract the contents of a mapped value to a mem IOS.
scrabble - Scrabble part of an IO space based on patterns

To access the poke manual, type ".doc TOPIC".
(poke) dump
76543210 0011 2233 4455 6677 8899 aabb ccdd eeff 0123456789ABCDEF
00000000: 4d5a 7146 7044 3d27 0a00 0010 00f8 0000 MZqFpD='........
00000010: 0000 0000 0001 0008 4000 0000 0000 0000 ........@.......
00000020: 0000 0000 4a54 0000 0000 0000 0000 0000 ....JT..........
00000030: 0000 0000 0000 0000 0000 0000 500a 0000 ............P...
00000040: b240 eb00 eb14 9090 eb06 4883 ec08 31d2 .@........H...1.
00000050: bd00 00eb 05e9 a313 0000 fc0f 1f87 3ee0 ..............>.
00000060: bf00 7031 c98e c1fa 8ed7 89cc fb0e 1fe8 ..p1............
00000070: 0000 5e81 ee72 00b8 0002 5050 0731 ffb9 ..^..r....PP.1..
(poke) .exit

ちょっと起動してみましたが使い方がよくわからない……．.docを読まないとかな?

$ sudo checkinstall \
--install=no \
--fstrans=no \
--maintainer='matoken@example.com' \
--pkgname='poke' \
--pkgversion='1.0' \
--pkgaltsource='http://www.jemarch.net/poke' \
make install
$ sudo apt install ./poke_1.0-1_amd64.deb

動くようなのでcheckinstallで一旦.debを作ってInstallしました．
活用できるといいな．

ちなみにいつもはbviを使うことが多いです．

bvi – Debian Package Tracker

環境

$ poke --version
GNU poke 1.0

Copyright (C) 2019-2021 The poke authors.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Powered by Jitter 0.9.258.
Perpetrated by Jose E. Marchesi.
$ dpkg-query -W libgc-dev libreadline-dev build-essential poke
build-essential 12.9
libgc-dev:amd64 1:8.0.4-3
libreadline-dev:amd64 8.1-1
poke 1.0-1
$ lsb_release -dr
Description: Debian GNU/Linux bullseye/sid
Release: unstable
$ uname -m
x86_64