GNU Autotools
Tyler Cipriani Posted

configure.ac

  • Written in m4sh (m4 + shell)
  • Program initialization: AC_INIT macro—needs name, version, maintainer
  • Initialize automake: AM_INIT_AUTOMAKE
  • Make sure that C-compiler exists: AC_PROG_CC
  • Build Makefile from Makefile.in, replaces @PACKAGE_VERSION@-type variables: AC_CONFIG_FILES([Makefile])
  • Output the script: AC_OUTPUT
AC_INIT([hello-world], [0.1], [tyler@tylercipriani.com])

# Initialize automake
AM_INIT_AUTOMAKE

# Ensure C-compiler exists
AC_PROG_CC

# Specify what files are to be created
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

Makefile.am

  • The ./configure script (created by configure.ac), expects to find Makefile.in
  • Makefile.in is long and dumb (just like ./configure), so we make a Makefile.am
  • automake generates Makefile.in
  • foreign AUTOMAKEOPTIONS tells that the layout is "non standard"
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = hello-world
hello-world_SOURCES = hello-world.c

Put it all together:

  • create m4 environment: aclocal
  • autoconf does: configure.acconfigure
  • automake --add-missing does: Makefile.amMakefile.in
  • autoreconf --install: autoreconf runs autoconf, autoheader, aclocal, automake, libtoolize, and autopoint
License: Creative Commons Attribution-ShareAlike License
Ikiwiki things
Tyler Cipriani Posted

Install

Mostly it was pretty easy

tar xvzf ikiwiki_3.20160121.tar.gz
cd ikiwiki_3.20160121
sudo PERL5LIB=`pwd` PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'CPAN::Shell->install("Bundle::IkiWiki")'
sudo PERL5LIB=`pwd` PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'CPAN::Shell->install("Bundle::IkiWiki::Extras")'
make
sudo make install

OpenID Setup

Ikiwiki requires an OpenID setup.

You can login to Ikiwiki with OpenID, and I think that's neat!

Since OpenID is somewhat dead, I decided to setup a personal SimpleID.

I put this all on the analytics server.

First I had to create a DNS record for openid.tylercipriani.com so letsencrypt would work.

Then I made a new letsencrypt cert:

/usr/local/src/letsencrypt/letsencrypt-auto certonly --standalone -d openid.tylercipriani.com

Then I grabbed and installed openid

cd /usr/local/src
curl -sLO http://downloads.sourceforge.net/simpleid/simpleid-1.0.1.tar.gz
tar xvzf simpleid-1.0.1.tar.gz
mkdir /srv/www/openid.tylercipriani.com
mv simpleid/{cache,identities,store,www} /srv/www/openid.tylercipriani.com
mv /srv/www/openid.tylercipriani.com/{config.php.dist,config.php}

Edited the config.php file, changed root webserver and the pretty url thing

I also made a virtualserver: openid.tylercipriani.com

Identity file: thcipriani.identity

identity="https://tylercipriani.com/"
password="blah:sha1:salt"
administrator=1
[user_info]
...
[sreg]
...

Blog setup

The things that I didn't understand about Ikiwiki:

  1. htmlscrubber removes all your scripts
  2. Some changes to the setup file (like git_wrapper updates) require you to run ikiwiki --changesetup [setupfile]
  3. I am running a staging wiki on my laptop, a wiki on my webserver, and then pushing the compiled files to s3: WAT‽
License: Creative Commons Attribution-ShareAlike License
Mutt
Tyler Cipriani Posted

Contacts

Install goobook:

sudo pip2 install -U goobook

I ran into some problems in arch, had to upgrade/reinstall a few deps:

(ノ^ヮ^)ノ*:・゚✧ sudo pip2 install -U pyasn1
(ノ^ヮ^)ノ*:・゚✧ sudo pip2 install -U cryptography

goobook then needs to authenticate with gmail:

goobook authenticate

Once you go through the oauth song and dance you should be able to run a query

(ノ^ヮ^)ノ*:・゚✧ goobook query tyler

thcipriani@gmail.com    Tyler Cipriani  other groups: "System Group: Friends"

From there, just need to add a bit of magic to the ~/.muttrc file

set query_command="goobook query %s"
macro index,pager a \
    "<pipe-message>goobook add<return>" "add sender to google contacts"
bind editor <Tab> complete-query

Viewing URLs

Install urlview: ncurses program parses urls out of text.

Create a $HOME/urlview file:

COMMAND xdg-open %s &

Bind \,u in the editor:

macro pager ,u "|urlview<enter>" "call urlview to open links"

Searching Mail

Searching works really well via notmuch

Afer install, setup via

notmuch setup

After setup, it's just a matter of calling

notmuch new

to index the things

License: Creative Commons Attribution-ShareAlike License