dmshaw / paperkey

Print an OpenPGP key on paper for archive and recovery
GNU General Public License v2.0
194 stars 12 forks source link

How do we compile this? #4

Closed ghost closed 3 years ago

ghost commented 3 years ago

Since this looks like an autotools build system I tried the "generic way" found here: http://www.bioinf.uni-freiburg.de/~mmann/HowTo/automake.html

But it does not seem to work:

$ aclocal
$ autoconf
$ automake -a -c
configure.ac:9: installing './compile'
configure.ac:13: installing './config.guess'
configure.ac:13: installing './config.sub'
configure.ac:12: installing './install-sh'
configure.ac:12: installing './missing'
Makefile.am: installing './INSTALL'
configure.ac:11: error: required file 'config.h.in' not found
configure.ac:55: error: required file 'gl/Makefile.in' not found
Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'

What is the correct way to compile this program? I'm using archlinux on x64.

dmshaw commented 3 years ago

Paperkey uses gnulib (see https://www.gnu.org/software/gnulib/) to provide SHA-1 and getopt_long functionality as they're not available on all platforms. If you want to built directly from the github version, try this:

git clone git://git.savannah.gnu.org/gnulib.git  # there is also a github mirror at https://github.com/coreutils/gnulib.git
git clone https://github.com/dmshaw/paperkey.git
cd paperkey
../gnulib/gnulib-tool --update
autoreconf -f -i
./configure
make check

Alternately, you can use the releases in github at https://github.com/dmshaw/paperkey/releases. Those include the gnulib code as part of the package.

ghost commented 3 years ago

Is there any particular reason you do not include dependencies in your git repo? Or would you consider using something like submodules, subtrees or subrepos? I think a document with compilation steps like what you show here would be quite helpful as well.