Hi everyone Some time ago, I gave a talk about the "fpm" package manager a while back. Today, I came across a different tool, which is also available from the Ubuntu repositories called "stdeb": https://github.com/astraw/stdeb I successfully generated a Debian package for one of my little Python utilities: https://github.com/waikato-datamining/docker-banner-gen/releases/tag/v.0.0.6 Just by using this command-line (using the "setup.py" of the project): python3 setup.py --command-packages=stdeb.command bdist_deb Requires "python3-all" to be installed. Thought you might find this useful. Cheers, Peter -- Peter Reutemann Dept. of Computer Science University of Waikato, NZ +64 (7) 858-5174
Thanks to the following stackoverflow post I figured out how to include a .desktop file and icon, making an application appear in the main menu: https://stackoverflow.com/a/17402676/4698227 Example code mentioned in that post is available from here: https://github.com/cpbotha/stdeb-minimal-example
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
format as package name then version
"When working with a package which originated in Debian, use a version number derived from the Debian version number with ubuntu<revision> appended. i.e. Debian 1.0-2 becomes 1.0-2ubuntu1, followed by 1.0-2ubuntu2, etc. Packages not in debian yet should end with revision -0ubuntu1"
http://ubuntuforums.org/showthread.php?t=51003
sofastatistics (0.6-0ubuntu1) jaunty stable; urgency=low # could be experimental, unstable etc
*ubuntu linux package for jaunty jackalope.
*a stable release. Any other comments about what has changed.
– Grant Paton-Simpson grant@sofastatistics.com Fri, 8 May 2009 18:52:02 +0000
Formatting rules:
The change details may in fact be any series of lines starting with at least two spaces, but conventionally each change starts with an asterisk and a separating space and continuation lines are indented so as to bring them in line with the start of the text above. Blank lines may be used here to separate groups of changes, if desired.
Doesn't like comma in first line - so jaunty karmic and lucid is fine but jaunty, karmic, and lucid = eof fault.
e.g. Depends: python (>=2.6.2-0ubuntu1), …
The relations allowed are: <<, <=, =, >= and >> for strictly earlier, earlier or equal, exactly equal, later or equal and strictly later, respectively.
http://www.debian.org/doc/maint-guide/ch-dreq.en.html#s-control
main (as opposed to non-free or unknown or contrib) and a subsection e.g. main/python
The Debian archive maintainers provide the authoritative list of subsections. At present, they are: admin, base, comm, contrib, devel, doc, editors, electronics, embedded, games, gnome, graphics, hamradio, interpreters, kde, libs, libdevel, mail, math, misc, net, news, non-free, oldlibs, otherosfs, perl, python, science, shells, sound, tex, text, utils, web, x11.
http://sdn.vlsm.org/share/Debian-Doc/debian-policy/ch-archive.html#s-subsections
Line 4 is the name and email address of the maintainer. Make sure that this field includes a valid "To: " header for an email, because after you upload it, the bug tracking system will use it to deliver bug emails to you. Avoid using commas, ampersands and parenthesis.
If your package is architecture independent (for example, a shell or Perl script, or a document), change this to "all", and read later in `rules' file, Section 4.4 about using the `binary-indep' rule instead of `binary-arch' for building the package.
This would apply to python as well.
http://www.debian.org/doc/maint-guide/ch-dreq.en.html#s-control
Stats/analysis - favours ease-of-use over comprehensiveness # has to no more than 60 characters
A statistics, reporting and analysis package with an emphasis on ease-of-use. The goal is flexible input and beautiful output - i.e. lots of databases supported and attractive, ready-to-present output.
If using the GPL, make a selection - either GPL2 or GPL2+
If using the AGPL will need to fill this in manually.
From man dh_make
OPTIONS -c, --copyright <license> Use <license> type in copyright file. <license> can be gpl, lgpl, artistic or bsd. If this field is not specified the copy‐ right file has a space to fill in which sort of license is used. The field is case-insensitive so -c GPL works as well as -c gpl.
NB there must be a space before the description. And complete a full description. If you want a space between 2 lines use a . (dot).
List the directories actually used
e.g. usr/share/pyshared/sofastats
NB no preceding slash
Not relevant to me.
"Any extra details or discrepancies between the original package and your debianized version should be documented here."
http://www.debian.org/doc/maint-guide/ch-dother.en.html#s-readme
In rules, it wants tabs, not eight spaces. If using gedit, may need to paste tabs in so it doesn't autoconvert them (or untick “Insert spaces instead of tabs” option under Edit>Preferences>Editor).
E.g. (NB only showing examples of some sections, not a replacement for entire rules document)
build-stamp: configure-stamp # NB tab in front of each of the following
dh_testdir
touch build-stamp
clean: # NB tab in front of each of the following
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
dh_clean
install: build # NB tab in front of each of the following
dh_testdir
dh_testroot
dh_prep
dh_installdirs
# Add here commands to install the package into debian/mydeb.
#$(MAKE) DESTDIR=$(CURDIR)/debian/mydeb install
mkdir -p $(CURDIR)/debian/mydeb
cp mydeb.py $(CURDIR)/debian/mydeb/usr/share/pyshared/mydeb/mydeb.py
mime.conf needs this line:
rules text/plain
Icon is in /usr/share/pyshared/sofa/images/sofa_48x48.xpm
NB make executable to see as icon
Available Categories are:
For SOFA I want it to appear under Science. Putting Science on its own is not enough. Need Education as well.
What I haven't been able to figure out is where the "Categories" come from, and how they are parsed. If I leave for example "Education;" out of it, it will not show up in the "Science" menu, but in the "Others" menu. [[http://ubuntuforums.org/showpost.php?p=9744155&postcount=8 | Creating .debs - not exactly easy]]