Saturday, April 20, 2024
 Popular · Latest · Hot · Upcoming
94
rated 0 times [  94] [ 0]  / answers: 1 / hits: 48654  / 1 Year ago, mon, may 8, 2023, 4:14:11

I have a single python script that I want to distribute as a deb package. It is a indicator which shows local date in Unity panel. I did follow create a .deb Package from scripts or binaries but I could not create a deb package because it fails.



Can someone give me a step-by-step instruction on what I should do? As far as I know this script depends on python-appindicator.



NOTE:

I do not want any links to Debian/Ubuntu packaging instructions. I have seen most of them. I don't find them beginner friendly.


More From » python

 Answers
7

What follows is a basic example of how a source package for a python script might look. While most of the packaging tutorials are a bit complex, they can really help if you hit a problem. That said, I first learned the basics of Debian packaging by simply looking at Debian packages. apt-get source something similar and learn by example.


Here's your basic source package layout:


my-script/
-- myScript
-- debian/
-- changelog
-- copyright
-- compat
-- rules
-- control
-- install

Run dch --create in the directory to create a properly formatted debian/changelog entry.


debian/copyright should look like:


Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: myScript
Upstream-Contact: Name, <email@address>

Files: *
Copyright: 2011, Name, <email@address>
License: (GPL-2+ | LGPL-2 | GPL-3 | whatever)
Full text of licence.
.
Unless there is a it can be found in /usr/share/common-licenses

debian/compat can just be: 7


debian/rules:


#!/usr/bin/make -f

%:
dh $@ --with python2

Note that there must be "tab" before dh $@ --with python2, not spaces.


Note: Python2 is deprecated. For a single python file, just dh $@ (without --with python) works.


debian/control:


Source: my-script
Section: python
Priority: optional
Maintainer: Name, <email@address>
Build-Depends: debhelper (>= 7),
python (>= 2.6.6-3~)
Standards-Version: 3.9.2
X-Python-Version: >= 2.6


Package: my-script
Architecture: all
Section: python
Depends: python-appindicator, ${misc:Depends}, ${python:Depends}
Description: short description
A long description goes here.
.
It can contain multiple paragraphs

debian/install:


myScript usr/bin/

This file indicates which file will be installed into which folder.


Now build it with debuild --no-tgz-check


This will create a functional deb package. Lintian is going to throw a few warnings regarding the lack of an orig.tar.gz, but unless you plan on creating a proper upstream project that makes tarball releases you'll probably just want to ignore that for now.


[#41276] Wednesday, May 10, 2023, 1 Year  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
mentpengu

Total Points: 148
Total Questions: 114
Total Answers: 119

Location: Anguilla
Member since Sun, Aug 7, 2022
2 Years ago
;