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

What is an uber JAR file?

Über is the German word for above or over (it’s actually cognate with the English over). Hence, in this context, an uber-jar is an “over-jar”, one level up from a simple JAR (a), defined as one that contains both your package and all its dependencies in one single JAR file. The name can be thought … 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

Setting up setup.py for packaging of a single .py file and a single data file without needing to create any folders

If you have a single-file module like this, no folder will be created, your .py file will be moved directly into the directory which contains the other python modules (/usr/lib/pythonX.X/site-packages/, for example). That’s why you have to create a directory: $ . |– happy_birthday/ |– __init__.py |– art.txt |– MANIFEST.in |– README.rst |– setup.py

What’s the best way to distribute python command-line tools?

Try the entry_points.console_scripts parameter in the setup() call. As described in the setuptools docs, this should do what I think you want. To reproduce here: from setuptools import setup setup( # other arguments here… entry_points = { ‘console_scripts’: [ ‘foo = package.module:func’, ‘bar = othermodule:somefunc’, ], } )

How do I package an existing VM that was not created using vagrant up command?

The important thing to realize (and the vagrant docs are not overly clear on that) is that there are two “flavors” of packaging: The packaging guide in “getting started” you are referring to assumes you have started from a vagrant base box and initialized it with vagrant up, which you have not. This allows you … Read more

How can I include package_data without a MANIFEST.in file?

TL;DR: The keys in the package_data dictionaries are packages; the values are lists of globs. ” is not a valid name for any Python package. If you want to have bar.txt be installed next to the __init__.py of package foo, use package_data={‘foo’: [‘bar.txt’]} I have the layout: foo/ __init__.py bar.txt setup.py Now, if foo is … Read more

How can I make my ad hoc iPhone application’s icon show up in iTunes?

The cleanest way to do this is described in the official Apple documentation, in a section called Publishing Applications for Testing. Below is the exact instructions given to you on that page: The iTunes artwork your testers see should be your application’s icon. This artwork must be a 512 x 512 JPEG or PNG file … Read more