pcb-rnd knowledge pool


Self-contained executable

selfcont by Tibor 'Igor2' Palinkas on 2016-12-30

Tags: insight, self-contained, self, contained, executable, install

node source



Abstract: Describe the benefits of the self-contained pcb-rnd executable.

  Imported from the mailing list archives.

as of r5999, the pcb-rnd executable is now self contained. This means if you copy the executable to a clean system without any pcb-rnd installed, it will still work.

It's because the executable has an embedded version of the default configs, the default font and default pcb template. When any of these files can not be found on the configured search paths, we fall back on the embedded version with a bold warning.

This feature is not intended for normal daily use, please still go on using make install (or distro packages). What this feature can be used for:

1. debugging: cheaper bisecting; we can save the executable after compiling, e.g. pcb-rnd.r5999; keeping such a collection of previous executables makes it real fast to bisect a bug, no need to recompile log(n) times

2. the ultimate backup/conservation: will we have a system in 2030 that still has the libs the current version of a software needs? Will the software be maintained in 2030? Will that version be able to load my current, then-15-years-old files? When a design is archived, the executable can be saved too, and a snapshot of a minimal system installation for a virtual machine could be saved every 4..5 years. It's very likely that at least two such VM snapshots can run the executable. It's also very likely that we will have x86 VMs maintained for whatever plaforms for many decades to come.

3. emergency pack; (it's mainly for windows, and we don't have windows users so our windows port doesn't really work at the moment); there may be stiuations when you need to use someone else's system to do something real small and trivial, like export gerbers, and you can't do a proper installation. In such situations being able to drop there a single executable on the sysem may help a lot.

Note: the default font file and the default pcb template file is searched in . first, the config can be overriden by a local project file in . too; so it's also possible to override any of the embedded files easily, without installation.