Salman Mohammadi."> Package helpers

Trisquel Developer's Cookbook.
by Salman Mohammadi

Package helpers

A package helper is a shell script which fetches the source code of a deb package from upstream and modify it to fit it into Trisquel.

Contents

what a package helper is

Package helpers are shell scripts written in GNU Bash to fetch the source code of packages from Ubuntu or Debian repositories, Launchpad, or other APT repositories and modify them as we want and compile them on Trisquel servers to be included in official Trisquel repositories.

a minimal package helper

This is a minimal package helper,

#!/bin/sh
#
#    Copyright (C) 2012 Ruben Rodriguez <ruben@trisquel.info>
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
#

VERSION=1
COMPONENT=main

. ./config
 
rm debian/update-notifier-hp-firmware.conf
sed '/hp-firmware/d' -i debian/update-notifier.install

changelog "Disabled hp-firmware handling"

compile

This package helper is named make-update-notifier and is available here

building blocks of a package helper

a package helper consists of many elements, which we discuss here.

name

Package helpers are named according to the following syntax,

make-sourcePackageName

Be aware that SourcePackageName is NOT necessarily the name of the package. For example, if you want to write a package helper for gnome-colors-common you can use the following command:

$ apt-cache show packageName

and for our example,

$ apt-cache show gnome-colors-common | head
Package: gnome-colors-common
Source: gnome-colors
Version: 5.5.1-1ubuntu1+7.0trisquel2
Architecture: all
Maintainer: Trisquel GNU/Linux developers <trisquel-devel@listas.trisquel.info>
Installed-Size: 8979
Depends: gnome-icon-theme-full (>= 2.24.0-4)
Homepage: http://code.google.com/p/gnome-colors/
Priority: optional
Section: gnome

and as you see in the second line of the output the sourcePackageName is gnome-colors and not gnome-colors-common. Therefore, you must name the package as

make-gnome-colors

The mentioned mistake had occured in Trisquel repositories but it was solved soon.

license notice

The first part of each package helper is the license section. At Trisquel project, generally, GNU GPL v2+ has been used for user contributions.

examples of package helpers

removing Ubuntu references

### importing from an upstream deb repo ### removing non-free files ### removing non-free references —–