GNU Hackers Meeting 2019 — Madrid, Spain

Twelve years after its first edition in Orense, the GHM is back to Spain! This time, we will be gathering in the nice city of Madrid for hacking, learning and meeting each other.

We will shortly publish additional information regarding the schedule, accomodation, etc. Please stay tuned.


The event will have place from Wednesday 4 September to Friday 6 September.


 [ETSISI Logo]
ETSISI - Escuela Técnica Superior de Ingeniería de Sistemas Informáticos, which is part of the Universidad Politécnica de Madrid.
Calle Alan Turing s/n (Carretera de Valencia Km 7), 28031 Madrid.
GPS coordinates:
40° 23' 22.92" -3° 37' 40.42"
OSM map:
How to arrive:
The easiest way to reach the venue is a Taxi from the airport. In Madrid, there is a flat rate from/to the airport to/from any point of the city for 30 euros. It is a fast ride.
Then there is the train. You can get a train from the airport to Atocha, then from Atocha get the line C7-a, C2 or C1 to the station Vallecas.
Alternatively, you can get the Metro line 1, to the station Sierra de Guadalupe.


Registering is necessary to attend the GHM. Just write us an email to the contact address below, stating your intention to come, along with the following information:

Note that attendance is completely free of charge, as in free beer ;)

Call For Talks

We will be hosting a single track of talks during all three days. The venue provides a nice room with beamer, internet connection, power plugs, etc.

If you fancy to give a talk, presentation, a show-and-tell, whatever, please let us know in the contact address below, along with the following information, for each talk:


All the talks and activities below will take place in the "Sala de Grados" and the hacking room next to it.

Wednesday 4 September

Thursday 5 September

Friday 6 September


GNU Emacs for all

Author: sacpatil

Having used GNU Emacs for more that 6 years now and doing Python development for equal amount of time I'd like to share my experience with this great GNU software which has been around for 30 years. I'd like to go through how I use Emacs for almost all my tasks like note taking, agenda, LaTeX, reveal.js presentations, IDE, and IRC. In this talk I'll demonstrate how Emacs can be configured to do all sort of things without having a dedicated application for every specific task. I'll also talk about how to maintain Emacs configurations using org-mode and literate programming.

eBPF support in the GNU Toolchain

Author: Jose E. Marchesi

This talk covers the ongoing effort about adding eBPF support to the GNU Toolchain. eBPF is a virtual machine running within the Linux kernel; initially intended for user-level packet capture and filtering, eBPF has since been generalized to also serve as a general-purpose infrastructure for non-networking purposes.

Binutils support is already upstream. This includes a CGEN cpu description, assembler, disassembler and linker. A GCC backend has been submitted fo inclusion upstream. By the time of the conference a simulator will be available as well, along with GDB support.

The first part of the talk will be a brief general description of the project, its components, what motivated us to start working on it, and an update on the project's status at the time of the conference.

Then we will discuss the particular challenges of supporting a target like eBPF:

On one hand, the kernel virtual machine has some unique characteristics that have a definitive impact on the tooling, like the in-kernel validator and the specialized contexts in which eBPF programs run. We will show how the tools can help improving the eBPF programmer's experience.

On the other hand, the exact shape of compiled eBPF code is still subject to change, and is in fact rapidly changing and evolving. Initially quite simple in terms of toolchain needs (single compilation units, no linking) this is changing as more kernel systems are being changed/written to be based on eBPF, and as the in-kernel validator is becoming more and more sophisticated. Along with bigger and more complex programs comes the need for more abstraction, hence modularity and code reuse. Kernel hackers are already discussing about bpf-to-bpf calls, run-time linking, and so on. This increased level of ambition and sophistication imposes additional requirements on the tools.

Finally, interoperability with clang/llvm (the other available toolchain supporting eBPF) will be also discussed, in the more general context of ABI and conventions for compiled eBPF, which are still to be (well) defined and documented.

Introduction to Libwget

Author: Tim Ruehsen

Short explanation of libwget and its functionalities with simple examples. To make (GNU) project maintainers consider using libwget in their projects. Three Wget maintainers will be at GHM to answer questions and to go into details.

Wget2: A modern Wget

Author: Daniel Martin Gomez

GNU Wget2 is the successor of GNU Wget, a file and recursive website downloader. It's designed and written from scratch wrapped around libwget. It works multi-threaded and in many cases downloads much faster than Wget1.x. In this talk we'll overview this new implementation of Wget with a journey through its history, features and a comparison with its predecessor.

GNU poke, an extensible editor for structured binary

Author: Jose E. Marchesi

GNU poke is a new interactive editor for binary data. Not limited to editing basic entities such as bits and bytes, it provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them. Once a user has defined a structure for binary data (usually matching some file format) she can search, inspect, create, shuffle and modify abstract entities such as ELF relocations, MP3 tags, DWARF expressions, partition table entries, and so on, with primitives resembling simple editing of bits and bytes. The program comes with a library of already written descriptions (or "pickles" in poke parlance) for many binary formats.

GNU poke is useful in many domains. It is very well suited to aid in the development of programs that operate on binary files, such as assemblers and linkers. This was in fact the primary inspiration that brought me to write it: easily injecting flaws into ELF files in order to reproduce toolchain bugs. Also, due to its flexibility, poke is also very useful for reverse engineering, where the real structure of the data being edited is discovered by experiment, interactively. It is also good for the fast development of prototypes for programs like linkers, compressors or filters, and it provides a convenient foundation to write other utilities such as diff and patch tools for binary files.

This talk (unlike Gaul) is divided into four parts. First I will introduce the program and show what it does: from simple bits/bytes editing to user-defined structures. Then I will show some of the internals, and how poke is implemented. The third block will cover the way of using Poke to describe user data, which is to say the art of writing "pickles". The presentation ends with a status of the project, a call for hackers, and a hint at future works.

El formato lzip/The lzip format

Author: Antonio Diaz Diaz

Esta charla introduce el formato de compresión lzip, sus características, implementaciones y usos, incluida su combinación con el formato pax de POSIX para implementar un formato de archivo comprimido anexionable, robusto y paralelizable. También presenta las recientemente mejoradas capacidades de recuperación combinadas de lziprecover y GNU ddrescue.

This talk overviews the lzip compressed format, its features, implementations and uses, including its combination with the POSIX pax format to implement an appendable, robust and parallelizable compressed archive format. It also presents the recently improved combined data recovery capabilities of lziprecover and GNU ddrescue.

Libremanuals: Free Documentation for Free Software

Author: David Arroyo

Libremanuals starts as a project to translate some gnu books to spanish. We are using the the GNU standards to this task. We are creating a good activist network to distribute these books. We are glad to explain our philosophical point of views to extend the idea to another cities.


There are many options for accommodation in Madrid. An alternative is to to search for hotels near Campus Sur UPM. An example of an affordable hotel at walking distance from the venue is the "Hotel ibis budget Madrid Vallecas".

However, Madrid is very well communicated by its extensive Metro system: moving to different areas of the city is very fast. As an example, the event (dis)organizer (jemarch) will be based near Reina Victoria (Metro station "Guzman el Bueno") during the event and from there it only takes around 40 minutes to reach the UPM campus. So, you may opt to stay near Reina Victoria, or any other part of the city of your choice.


For subscriptions, talk proposals, or any other inquiry, suggestion, etc., please contact <>.