Debianpakte selber bauen (Outlook MSGviewer)

Hauseigenes Apt-Repo: https://apt.iteas.at

Durchgeführt mit Ubuntu 16.04

Wir gehen hier von einem kleinen Projekt auf SF aus. Der MSG-Viewer. Das ist ein Java geschriebenens Programm das die Aufgabe hat Outlookmails zu öffnen. Das ich selbst natürlich kein Outlook verwende, ist das Tool oft nützlich wenn wo eine MSG-Dateie herumliegt.

Also ersters laden wir die Datei herunter und entpacken sie. Das Icon des Projektes hab ich mal extra gespeichert, das es im Zip nicht enthalten ist. Schnell ein SH-File erstellt und das ganze die gewünschte Orderstruktur gepackt. Wichtig ist hier das man die Berechtiungen und Eigentümer schon richtig stellt. Also fast immer Root. Naürlich auch auf die Maske und auf event. im Buildverzeichnis gesetzte ACL's achten.

MSGViewer
├── DEBIAN
│   └── control
└── usr
    ├── bin
    │   └── msgviewer.sh
    ├── lib
    │   ├── commons-lang3-3.1.jar
    │   ├── CommonsLangPlugin.jar
    │   ├── FrameWorkMinimized.jar
    │   ├── jericho-html-3.1.jar
    │   ├── JerichoHtmlPlugin.jar
    │   ├── joda-time-1.6.jar
    │   ├── log4j-1.2.12.jar
    │   ├── mail.jar
    │   ├── msgparser.jar
    │   ├── poi-3.2-FINAL-20081019.jar
    │   ├── ShellExec.jar
    │   └── tnef-1.3.1.jar
    ├── MSGViewer.jar
    └── share
        ├── applications
        │   └── MSGViewer.desktop
        └── icons
            └── MSGViewer.png

Als nächstes erstellen wir in userem Buildverzeichnis noch einen Ordner mkdir DEBIAN. In diesen Ordner kommen alle Dateien hinein, die das Erstellen des Deb-Pakets steuern. Im Ordner „DEBIAN“ müssen wir zumindest eine Datei mit dem Namen „control“ erstellen, in der wir die wichtigsten Informationen zu unserem Paket angeben. Weiters können wir hier auch angeben von welchen Paketen unseres abhängig ist, so dass der Paketmanager diese gleich mitinstallieren kann.

Controldatei

Unserer control sieht nun so aus:

control
Package: msgviewer
Version: 1.9
Section: misc
Priority: extra
Architecture: all
Depends: incron
Installed-Size: 4381 
Maintainer: Mario Loderer <linux@osit.cc>
Homepage: https://sourceforge.net/projects/msgviewer
Description: Ein Javaprogramm das die Aufgabe hat Microsoft Outlook Dateien (MSG) zu Öffnen zu Konvertieren.

Beschreibung der Felder:

Ausdruck Beispielwert
Package Der Name den das Paket haben soll. Er sollte möglichst noch nicht in Verwendung sein, da man über ihn auch das Paket im Paketmanager installieren kann. Weiters darf er auch keine Whitespaces (Leerzeichen etc.) oder Sonderzeichen enthalten.
VersionDie Version des Pakets. Über die Version kann der Paketmanager auch erkennen ob eine eventuell schon installierte Version des Programmes neuer ist als die im Paket.
SectionGibt die Sektion an, zu der das Paket gehört. Zuerst geben wir die Kategorie 'main', 'contrib' oder 'non-free' gefolgt von einem Slash ('/') an. Wenn das Paket in die Kategorie 'main', dh. mit einer Open Source Lizenz lizenziert ist, dann können wir die Kategorie auch weglassen, da dann automatisch 'main' angenommen wird. Anschließen müssen wir noch die Sektion angeben, bei der es sehr viele Möglichkeiten gibt. Einige Beispiele sind 'admin', 'devel' (development), 'doc', 'editors', 'games', 'graphics', 'math', 'misc', 'science' oder 'utils'. Es gibt noch ein paar weitere, die wir auf der Debian Homepage finden.
PriorityHier geben wir an wie wichtig unser Paket für ein System bzw. seinen Anwender ist. Normalerweise werden wir hier 'extra' angeben.
ArchitectureGibt die Prozessorarchitektur an, auf denen dieses Programm/Skript lauffähig ist. Mögliche Werte sind 'i386' für die meisten Heimcomputer die mit 32 Bit laufen, 'amd64' für 64-Bit Heimcomputer und 'all' für alle Computer (zb. für viele Skripte). Es gibt zwar auch noch andere Möglichkeiten, die aber nicht so relevant sind.
DependsAbhängigkeiten, dh. Programme bzw. eigentlich Pakete die unser Programm/Skript zur Ausführung unbedingt braucht können wir hier angeben. Wir brauchen nur die Paketnamen getrennt durch Komma und Leerzeichen angeben, also zum Beispiel: Depends: incron, libsdl1.2, libsdl-image1.2
Installed-SizeWie der Name schon sagt geben wir hier die Größe unseres installierten Paketes an. Die Angabe erfolgt in KB.
MaintainerHier geben wir den bzw. die Namen der Programmierer/Ersteller des Pakets/Programms an. Meistens wird hier auch eine E-Mail-Adresse angegeben.
HomepageDieser Punkt sollte wohl selbsterklärend sein. Am Besten sollte man unter dieser Adresse auch den Quellcode des Pakets erhalten.
DescriptionIn der gleichen Zeile wie „Description“ eine kurze Beschreibung des Pakets und anschließend in der nächsten Zeile eingerückt die ausführliche Beschreibung.

Weitere Dateien (nicht im Download enthalten)

msgviewer.sh
#!/bin/bash
java -jar /usr/MSGViewer.jar
MSGViewer.desktop
[Desktop Entry]
Categories=Qt;Utility;
Comment=Öffnen und Konvertieren von Outlook MSG-Mails
Comment[de]=Öffnen und Konvertieren von Outlook MSG-Mails
Comment[en_GB]=Open and convert Outlook MSG-Mails
Exec=msgviewer.sh
GenericName=Outlook MSGViewer
GenericName[de]=Outlook MSGViewer
GenericName[en_GB]=Outlook MSGViewer
Icon=MSGViewer
Name=Outlook MSGViewer
Name[de]=Outlook MSGViewer
Name[en_GB]=Outlook MSGViewer
NoDisplay=false
Path[$e]=
StartupNotify=true
Terminal=0
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false

Programmicon:

Man begibt sich nun ausserhalb des Roobuildverziechnisses und baut sein Paket mit Folgendem Befehl:

dpkg -b MSGViewer MSGViewer-1.9.deb

Das Paket kann nun einfach mit einem Installer wie z.B. dpkg, apt oder „qapt-deb-installer“, installiert werden. Das Fertige Paket kann natürlich auch von unserer Paketquelle installiert werden:

echo "deb http://styrion.at/apt/ ./" > /etc/apt/sources.list.d/styrion.list
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2FAB19E7CCB7F415
apt update
apt install msgviewer