How to mirror a git repository

As I was working on libgnusocial I went into trouble because we have three different git repositories: Gitlab, Github & and I wanted to keep them all updated. To do this I just work with one (at Gitlab) and I treat the others as mirrors. First of all, to mirror a git repository we need to clone it using the “mirror” argument:

$ git clone --mirror

Then move into the cloned repository directory (which git ends in “.git” due to the mirror cloning process):

$ cd repository.git

And finally push into an empty repository or an outdated mirror of our repository:

$ git push --mirror

Set random wallpaper in i3wm

“i3 is a tiling window manager, completely written from scratch. The target platforms are GNU/Linux and BSD operating systems, our code is Free and Open Source Software (FOSS) under the BSD license. i3 is primarily targeted at advanced users and developers.” —

I’ve just moved to Devuan GNU/Linux 1.0.0 “Jessie” and installed i3wm as desktop environment. While I was setting it up I wanted to set a wallpaper (instead of the black background that comes by default) chosen from those stored in a directory. First of all we have to install the tool “feh”. In Debian/Devuan:

# apt-get install feh

Now, we have to add to the end of the i3 config file (located in ~/.i3/config) the following line (which simply calls feh):

exec --no-startup-id feh --randomize --bg-scale /path/to/wallpapers/*

And then restart i3wm (at least in my case it doesn’t work just reload).

Skip SSL validation while cloning a Git repository

While I was trying to clone the libmicrohttpd Git repository I got the following fail:

fatal: unable to access '': server certificate verification failed.


The easy way to fix it’s disable the SSL verification at the same command line where we clone the repository, by setting the GIT_SSL_NO_VERIFY variable to “true”.

$ GIT_SSL_NO_VERIFY=true git clone --recursive


We’ll get our local copy of the repository. If we’re going to work on it rather than just compiling or installing (that was my case) then we can disable SSL certification checking for that repository:

$ git config http.sslVerify "false"

Compiling GnuSocialShell 1.3.0 on GNU/Linux


First of all you need to install the following build utilities which are part of the GNU project:

  • gcc
  • make
  • autotools
  • autoconf

Also you have to install the packages that are required by GnuSocialShell itself:

  • libcurl
  • libreadline (optional; just if you wish to have TAB-autocompletion)

In Debian GNU/Linux (and derivates such as Ubuntu, Linux Mint, Trisquel GNU, …) you can get them using APT:

# apt-get install gcc make libcurl4-gnutls-dev autotools-dev autoconf libreadline-dev

Get the Source Code

You can get the source code of GnuSocialShell 1.3.0  as a ZIP file from this link. Once you get it, unzip it.

Compile GnuSocialShell

To compile GnuSocialShell just open a shell/terminal emulator in the unzipped directory and type:

$ touch config.rpath && autoreconf -iv && ./configure --prefix=/usr/local && make

If everything is okay (it should be) you will get a binary file called “gnusocialshell” in the compilation directory. You can also install it into your system by typing (as root):

# make install

The installation directory is /usr/local/bin. If you want to install it in /usr/bin just set the prefix of ./configure to /usr in the compilation command. To remove GnuSocialShell from your system, type:

# make uninstall


Before you use GnuSocialShell you have to configurate it; Please read “Setting up GnuSocialShell 1.3.0” (not redacted yet)