How to remotely update Python applications

If you’re not already packaging your program with InnoSetup, I strongly recommend you switch to it, because it has facilities to make this sort of thing easier. You can specify any special situations, such as files that should not be updated if they already exist (i.e. if you have any internal configuration files or things … Read more

How to package a command line Python script

Rather than using setuptools non standard way of proceeding, it is possible to directly rely on distutils setup’s function, using the scripts argument, as stated here: http://docs.python.org/distutils/setupscript.html#installing-scripts from distutils import setup setup( …, scripts=[‘path/to/your/script’,], … ) It allows you to stay compatible a) with all python versions and b) not having to rely on a … Read more

Logger for Java library

If you are developing a library the others will include in their application you should use a logging facade. Otherwise you force the users of your library to configure and include the logging framework you have choosen in addition to the framework they chose for their application. For instance if you use log4j but the … Read more

What actually is $RPM_BUILD_ROOT?

$RPM_BUILD_ROOT (or the equivalent %{buildroot} SPEC file macro) always holds the directory under which RPM will look for any files to package. The RPM scripts (e.g. the script that compresses the manual pages) will also use that value to know where to look for the files that were just installed. Normally, this value will be … Read more

Packaging Go application for Debian

Well. I think the only “trauma” of debuild is that it runs lintian after building the package, and it’s lintian who tries to spot problems with your package. So there are two ways to combat the situation: Do not use debuild: this tool merely calls dpkg-buildpackage which really does the necessary powerlifting. The usual call … Read more