packaging-tutorial_0.24 - en to nl translation catalogue (556 entries)

note: Translators: change debiantutorial to debiantutorial.$lang to use translated file, and append to this string all commands to load localisation packages, e.g.: \\usepackage{debiantutorial.fr} \\usepackage[french]{babel} \\frenchsetup{...} type: Plain text
en: \usepackage{debiantutorial}
nl: \usepackage{debiantutorial.nl} \usepackage[dutch]{babel}

note: type: title{#2}
en: Debian Packaging Tutorial
nl: Inleiding tot het maken van Debian-pakketten

note: type: author{#2}
en: Lucas Nussbaum\\{\small\texttt{packaging-tutorial@packages.debian.org}}
nl: Lucas Nussbaum\\{\small\texttt{packaging-tutorial@packages.debian.org}}\\[0.5em]Vertaling naar het Nederlands door\\ Frans Spiesschaert\\ en het Nederlandstalig lokalisatieteam

note: Translators: leave \\version unchanged: this will a variable containing the actual version To translate the date, use \\today or a string containing \\year, \\month, \\day (numeric values). DATE - use debian/rules update-version-date type: date{#1}
en: version 0.24 -- 2019-03-13
nl: version 0.24 -- \today

note: type: frame{#2}
en: About this tutorial
nl: Over deze handleiding

note: type: itemize
en: Goal: \textbf{tell you what you really need to know about Debian packaging}
nl: Doel: \textbf{u vertellen wat u echt moet weten over het maken van Debian-pakketten}

note: type: itemize
en: Modify existing packages
nl: Bestaande pakketten aanpassen

note: type: itemize
en: Create your own packages
nl: Uw eigen pakketten maken

note: type: itemize
en: Interact with the Debian community
nl: In interactie treden met de Debian-gemeenschap

note: type: itemize
en: Become a Debian power-user
nl: Een intensieve gebruiker van Debian worden

note: type: itemize
en: Covers the most important points, but is not complete
nl: Behandelt de belangrijkste punten, maar is niet volledig

note: type: itemize
en: You will need to read more documentation
nl: U zult meer documentatie moeten lezen

note: type: itemize
en: Most of the content also applies to Debian derivative distributions
nl: Het grootste deel van de inhoud is ook van toepassing op de van Debian afgeleide distributies

note: type: itemize
en: That includes Ubuntu
nl: Met inbegrip van Ubuntu

note: type: frame{#2}
en: Outline
nl: Overzicht

note: type: section{#2}
en: Introduction
nl: Inleiding

note: type: textbf{#1}
en: GNU/Linux distribution
nl: GNU/Linux distributie

note: type: itemize
en: 1st major distro developed ``openly in the spirit of GNU''
nl: eerste belangrijke distributie die ‘‘openlijk in de geest van GNU’’ ontwikkeld werd

note: type: itemize
en: \textbf{Non-commercial}, built collaboratively by over 1,000 volunteers
nl: \textbf{Niet-commercieel}, samen gemaakt door meer dan 1.000 vrijwilligers

note: type: itemize
en: 3 main features:
nl: drie belangrijke kenmerken:

note: type: itemize
en: \textbf{Quality} -- culture of technical excellence\\ {\small\sl We release when it's ready}
nl: \textbf{Kwaliteit} -- cultuur van technische uitmuntendheid\\ {\small\sl We geven een release vrij wanneer deze klaar is}

note: type: itemize
en: \textbf{Freedom} -- devs and users bound by the \textsl{Social Contract}\\ Promoting the culture of Free Software since 1993
nl: \textbf{Vrijheid} -- ontwikkelaars en gebruikers zijn gebonden door het \textsl{Sociaal Contract}\\ Bevorderen van de cultuur van Vrije Software sinds 1993

note: type: itemize
en: \textbf{Independence} -- no (single) company babysitting Debian\\ And open decision-making process (\textsl{do-ocracy} + \textsl{democracy})
nl: \textbf{Onafhankelijkheid} -- geen (enkel) bedrijf babysit op Debian\\ En een open besluitvormingproces (\textsl{doe-ocratie} + \textsl{democratie})

note: type: itemize
en: \textbf{Amateur} in the best sense: done for the love of it
nl: \textbf{Liefhebber} in de beste betekenis: gedaan uit liefde ervoor

note: type: frame{#2}
en: Debian packages
nl: Debian-pakketten

note: type: itemize
en: \textbf{.deb} files (binary packages)
nl: \textbf{.deb}-bestanden (binaire pakketten)

note: type: itemize
en: A very powerful and convenient way to distribute software to users
nl: Een zeer krachtige en handige manier om software naar gebruikers te brengen

note: type: itemize
en: One of the two most common package formats (with RPM)
nl: Een van de twee meest voorkomende pakketformaten (samen met RPM)

note: type: itemize
en: Universal:
nl: Universeel:

note: type: itemize
en: 30,000 binary packages in Debian\\ $\rightarrow$ most of the available free software is packaged in Debian!
nl: 30.000 binaire pakketten in Debian\\ $\rightarrow$ het merendeel van de beschikbare vrije software wordt in Debian verpakt!

note: type: itemize
en: For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)
nl: Voor 12 ports (architecturen), waaronder 2 niet-Linux (Hurd; KFreeBSD)

note: type: itemize
en: Also used by 120 Debian derivative distributions
nl: Ook gebruikt door 120 van Debian afgeleide distributies

note: type: frame{#2}
en: The Deb package format
nl: De Deb-pakketindeling

note: type: itemize
en: \texttt{.deb} file: an \texttt{ar} archive
nl: \texttt{.deb}-bestand: een \texttt{ar}-archief

note: $ type: itemize
en: \texttt{debian-binary}: version of the deb file format, \texttt{"2.0\textbackslash{}n"}
nl: \texttt{debian-binary}: versie van de deb-bestandsindeling, \texttt{"2.0\textbackslash{}n"}

note: type: itemize
en: \texttt{control.tar.gz}: metadata about the package\\ {\small \texttt{\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, \ldots}
nl: \texttt{control.tar.gz}: metadata over het pakket\\ {\small \texttt{\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, \ldots}

note: type: itemize
en: \texttt{data.tar.gz}: data files of the package
nl: \texttt{data.tar.gz}: data-bestanden van het pakket

note: type: itemize
en: You could create your \texttt{.deb} files manually\\ {\footnotesize \url{http://tldp.org/HOWTO/html\_single/Debian-Binary-Package-Building-HOWTO/}}
nl: U zou uw \texttt{.deb}-bestanden handmatig kunnen aanmaken\\ {\footnotesize \url{http://tldp.org/HOWTO/html\_single/Debian-Binary-Package-Building-HOWTO/}}

note: type: itemize
en: But most people don't do it that way
nl: Maar de meeste mensen doen het niet op die manier

note: type: textbf{#1}
en: This tutorial: create Debian packages, the Debian way
nl: Deze inleiding: Debian-pakketten maken op de manier van Debian

note: type: frame{#2}
en: Tools you will need
nl: Hulpmiddelen die u nodig heeft

note: type: itemize
en: A Debian (or Ubuntu) system (with root access)
nl: Een Debian- (of Ubuntu)-systeem (met systeembeheerders-toegang)

note: type: itemize
en: Some packages:
nl: Enkele pakketten:

note: type: itemize
en: \textbf{build-essential}: has dependencies on the packages that will be assumed to be available on the developer's machine (no need to specify them in the \texttt{Build-Depends:} control field of your package)
nl: \textbf{build-essential}: bevat de vereisten van de pakketten waarvan wordt aangenomen dat ze beschikbaar zijn op de machine van de ontwikkelaar (onnodig om deze te vermelden in het controleveld \texttt{Build-Depends:} van uw pakket)

note: type: itemize
en: includes a dependency on \textbf{dpkg-dev}, which contains basic Debian-specific tools to create packages
nl: waaronder de vereiste \textbf{dpkg-dev}, welke basale Debian-specifieke hulpmiddelen voor het aanmaken van pakketten bevat

note: type: itemize
en: \textbf{devscripts}: contains many useful scripts for Debian maintainers
nl: \textbf{devscripts}: bevat veel nuttige scripts voor Debian-onderhouders

note: type: frame
en: Many other tools will also be mentioned later, such as \textbf{debhelper}, \textbf{cdbs}, \textbf{quilt}, \textbf{pbuilder}, \textbf{sbuild}, \textbf{lintian}, \textbf{svn-buildpackage}, \textbf{git-buildpackage}, \ldots\\ Install them when you need them.
nl: Veel andere hulpmiddelen zullen ook later vermeld worden, zoals \textbf{debhelper}, \textbf{cdbs}, \textbf{quilt}, \textbf{pbuilder}, \textbf{sbuild}, \textbf{lintian}, \textbf{svn-buildpackage}, \textbf{git-buildpackage}, \ldots\\ Installeer deze wanneer u ze nodig heeft.

note: type: frame{#2}
en: General packaging workflow
nl: Algemene werkwijze bij het verpakken

note: \draw[arr,->] (bin) -- (-1,-6) node[pos=0.5,left] {upload (\textttc{dput})}; hack hack hack type: tikzpicture
en: \node[node1] (www) at (0, 0) {Web}; \node[node1] (us) at (2.5, 0) {upstream source}; \node[node1] (da) at (-2.5, 0) {Debian mirror}; \node[node1] (sp) at (0, -2) {source package}; \draw[arr,<-,dashed,thick] (sp) -- (2.5,-2) node[right=0cm,text width=2.98cm,text centered,font=\small\sl] {where most of the manual work is done}; \node[node1] (bin) at (0, -4) {one or several binary packages}; \draw[arr,<-,dashed,thick] (bin) -- (3.5,-4) node[right,text centered,font=\small\ttfamily\sl] {.deb\normalfont}; \draw[arr,->] (us) -- (sp) node[pos=0.5,right,command] {dh\_make}; \draw[arr,->] (da) -- (sp) node[pos=0.5,left,command] {apt-get source}; \draw[arr,->] (www) -- (sp) node[pos=0.5,left,command] {dget}; \draw[arr,->] (sp) -- (bin) node[pos=0.5,right,text width=6cm] {\textttc{debuild} (build and test with \textttc{lintian}) or \textttc{dpkg-buildpackage}}; \draw[arr,->] (bin) -- (1,-6) node[pos=0.5,right] {install (\textttc{debi})}; \draw[transparent] (bin) -- (-1,-6) node[pos=0.5,left,opaque] {upload (\textttc{dput})}; \draw[arr,->,rounded corners] (bin) -- (-1,-6) -- (-4.5,-6) -- (-4.5,0) -- (da); \useasboundingbox (-4,-6) rectangle (6,0);
nl: \node[node1] (www) at (0, 0) {Web}; \node[node1] (us) at (2.5, 0) {bovenstroom-broncode}; \node[node1] (da) at (-2.5, 0) {Debian spiegelserver}; \node[node1] (sp) at (0, -2) {broncodepakket}; \draw[arr,<-,dashed,thick] (sp) -- (2.5,-2) node[right=0cm,text width=3.48cm,text centered,font=\small\sl] {waar het meeste manuele werk gebeurt}; \node[node1] (bin) at (0, -4) {één van de vele binaire pakketten}; \draw[arr,<-,dashed,thick] (bin) -- (3.5,-4) node[right,text centered,font=\small\ttfamily\sl] {.deb\normalfont}; \draw[arr,->] (us) -- (sp) node[pos=0.5,right,command] {dh\_make}; \draw[arr,->] (da) -- (sp) node[pos=0.5,left,command] {apt-get source}; \draw[arr,->] (www) -- (sp) node[pos=0.5,left,command] {dget}; \draw[arr,->] (sp) -- (bin) node[pos=0.5,right,text width=6cm] {\textttc{debuild} (bouwen en testen met \textttc{lintian}) of \textttc{dpkg-buildpackage}}; \draw[arr,->] (bin) -- (1,-6) node[pos=0.5,right] {installeren (\textttc{debi})}; \draw[transparent] (bin) -- (-1,-6) node[pos=0.5,left,opaque] {uploaden (\textttc{dput})}; \draw[arr,->,rounded corners] (bin) -- (-1,-6) -- (-4.5,-6) -- (-4.5,0) -- (da); \useasboundingbox (-4,-6) rectangle (6,0);

note: type: subsection{#2}
en: Rebuilding dash
nl: Dash opnieuw bouwen

note: type: frame{#2}
en: Example: rebuilding dash
nl: Voorbeeld: dash opnieuw bouwen

note: type: enumerate
en: Install packages needed to build dash, and devscripts\\ {\texttt{sudo apt-get build-dep dash}\\ (requires \texttt{deb-src} lines in \texttt{/etc/apt/sources.list})}\\ {\texttt{sudo apt-get install -{}-no-install-recommends devscripts fakeroot}}
nl: Installeer pakketten nodig om dash te bouwen, plus devscripts\\ {\texttt{sudo apt-get build-dep dash}\\ (vereist \texttt{deb-src}-regels in \texttt{/etc/apt/sources.list})}\\ {\texttt{sudo apt-get install -{}-no-install-recommends devscripts fakeroot}}

note: type: enumerate
en: Create a working directory, and get in it:\\ \texttt{mkdir /tmp/debian-tutorial ; cd /tmp/debian-tutorial}
nl: Maak een werkmap aan en ga er binnen:\\ \texttt{mkdir /tmp/debian-tutorial ; cd /tmp/debian-tutorial}

note: type: enumerate
en: Grab the \texttt{dash} source package\\ \texttt{apt-get source dash}\\ {\small (This needs you to have \texttt{deb-src} lines in your \texttt{/etc/apt/sources.list})}
nl: Haal het broncodepakket \texttt{dash} op\\ \texttt{apt-get source dash}\\ {\small (Daarvoor moet u \texttt{deb-src}-regels hebben in uw \texttt{/etc/apt/sources.list})}

note: type: enumerate
en: Build the package\\ {\texttt{cd dash-*\\ debuild -us -uc}} ~~~(\texttt{-us -uc} disables signing the package with GPG)
nl: Bouw het pakket\\ {\texttt{cd dash-*\\ debuild -us -uc}} ~~~(\texttt{-us -uc} om pakket niet te ondertekenen met GPG)

note: type: enumerate
en: Check that it worked
nl: Controleer of het werkte

note: type: itemize
en: There are some new \texttt{.deb} files in the parent directory
nl: Er staan enkele nieuwe \texttt{.deb}-bestanden in de bovenliggende map

note: type: enumerate
en: Look at the \texttt{debian/} directory
nl: Bekijk de map \texttt{debian/}

note: type: itemize
en: That's where the packaging work is done
nl: Daar vindt het verpakkingswerk plaats

note: type: section{#2}
en: Creating source packages
nl: Broncodepakketten maken

note: type: subsection{#2}
en: Source packages basics
nl: Broncodepakketten - grondbeginselen

note: type: frame{#2}
en: Source package
nl: Broncodepakket

note: type: itemize
en: One source package can generate several binary packages\\ {\small e.g. the \texttt{\bfseries libtar} source generates the \texttt{\bfseries libtar0} and \texttt{\bfseries libtar-dev} binary packages}
nl: Eén broncodepakket kan meerdere binaire pakketten geven\\ {\small bijv. de broncode \texttt{\bfseries libtar} genereert de binaire pakketten \texttt{\bfseries libtar0} en \texttt{\bfseries libtar-dev}}

note: type: itemize
en: Two kinds of packages: (if unsure, use non-native)
nl: Twee soorten pakketten: (gebruik bij twijfel non-native)

note: type: itemize
en: Native packages: normally for Debian specific software (\textsl{dpkg}, \textsl{apt})
nl: Native (eigen) pakketten: normaal Debian-specifieke software (\textsl{dpkg}, \textsl{apt})

note: type: itemize
en: Non-native packages: software developed outside Debian
nl: Non-native (niet-eigen) pakketten: buiten Debian ontwikkelde software

note: type: itemize
en: Main file: \texttt{.dsc} (meta-data)
nl: Hoofdbestand: \texttt{.dsc} (meta-gegevens)

note: type: itemize
en: Other files depending on the version of the source format
nl: Andere bestanden zijn afhankelijk van de versie van de broncode-indeling

note: type: itemize
en: 1.0 or 3.0 (native): \texttt{package\_version.tar.gz}
nl: 1.0 of 3.0 (native): \texttt{pakket\_versie.tar.gz}

note: type: itemize
en: \texttt{pkg\_ver.orig.tar.gz}: upstream source
nl: \texttt{pkt\_ver.orig.tar.gz}: bovenstroomse broncode

note: type: itemize
en: \texttt{pkg\_debver.diff.gz}: patch to add Debian-specific changes
nl: \texttt{pkt\_debver.diff.gz}: patch voor het toevoegen van Debian-specifieke aanpassingen

note: type: itemize
en: \texttt{pkg\_debver.debian.tar.gz}: tarball with the Debian changes
nl: \texttt{pkt\_debver.debian.tar.gz}: tar-archief met Debian-wijzigingen

note: type: frame
en: (See \texttt{dpkg-source(1)} for exact details)
nl: (Zie \texttt{dpkg-source(1)} voor exacte details)

note: type: frame{#2}
en: Source package example (wget\_1.12-2.1.dsc)
nl: Voorbeeld broncodepakket (wget\_1.12-2.1.dsc)

note: type: subsection{#2}
en: Retrieving source packages
nl: Ophalen van broncodepakketten

note: type: frame{#2}
en: Retrieving an existing source package
nl: Een bestaand broncodepakket ophalen

note: type: itemize
en: From the Debian archive:
nl: Uit het archief van Debian:

note: type: itemize
en: \texttt{apt-get source \textsl{package}}
nl: \texttt{apt-get source \textsl{pakket}}

note: type: itemize
en: \texttt{apt-get source \textsl{package=version}}
nl: \texttt{apt-get source \textsl{pakket=versie}}

note: type: itemize
en: \texttt{apt-get source \textsl{package/release}}
nl: \texttt{apt-get source \textsl{pakket/release}}

note: type: itemize
en: (You need \texttt{deb-src} lines in \texttt{sources.list})
nl: (U moet \texttt{deb-src}-regels hebben in \texttt{sources.list})

note: type: itemize
en: From the Internet:
nl: Van het internet:

note: type: itemize
en: \texttt{dget \textsl{url-to.dsc}}
nl: \texttt{dget \textsl{url-naar.dsc}}

note: type: itemize
en: \texttt{dget http://snapshot.debian.org/archive/debian-archive/\\20090802T004153Z/debian/dists/bo/main/source/web/\\ wget\_1.4.4-6.dsc}\\ (\href{http://snapshot.debian.org/}{\ttfamily snapshot.d.o} provides all packages from Debian since 2005)
nl: \texttt{dget http://snapshot.debian.org/archive/debian-archive/\\20090802T004153Z/debian/dists/bo/main/source/web/\\ wget\_1.4.4-6.dsc}\\ (\href{http://snapshot.debian.org/}{\ttfamily snapshot.d.o} bevat alle Debian-pakketten sinds 2005)

note: type: itemize
en: From the (declared) version control system:
nl: Van het (opgegeven) versiebeheersysteem:

note: type: itemize
en: \texttt{debcheckout \textsl{package}}
nl: \texttt{debcheckout \textsl{pakket}}

note: type: itemize
en: Once downloaded, extract with \texttt{dpkg-source -x \textsl{file.dsc}}
nl: Extraheer na het downloaden met \texttt{dpkg-source -x \textsl{file.dsc}}

note: type: frame{#2}
en: Creating a basic source package
nl: Een basaal broncodepakket aanmaken

note: type: itemize
en: Download the upstream source\\ (\textsl{upstream source} = the one from the software's original developers)
nl: Download de bovenstroomse broncode\\ (\textsl{bovenstroomse broncode} = die van de originele softwareontwikkelaars)

note: type: itemize
en: Rename to \texttt{<\textsl{source\_package}>\_<\textsl{upstream\_version}>.orig.tar.gz}\\ (example: \texttt{simgrid\_3.6.orig.tar.gz})
nl: Hernoem naar \texttt{<\textsl{bron\_pakket}>\_<\textsl{bovenstroom\_versie}>.orig.tar.gz}\\ (bijvoorbeeld: \texttt{simgrid\_3.6.orig.tar.gz})

note: type: itemize
en: Untar it
nl: Pak uit

note: type: itemize
en: Rename the directory to \texttt{<\textsl{source\_package}>-<\textsl{upstream\_version}>}\\ (example: \texttt{simgrid-3.6})
nl: Hernoem de map naar \texttt{<\textsl{bron\_pakket}>-<\textsl{bovenstroom\_versie}>}\\ (voorbeeld: \texttt{simgrid-3.6})

note: type: itemize
en: \texttt{cd \texttt{<\textsl{source\_package}>-<\textsl{upstream\_version}>} \&\& dh\_make}\\ (from the \textbf{dh-make} package)
nl: \texttt{cd \texttt{<\textsl{bron\_pakket}>-<\textsl{bovenstroom\_versie}>} \&\& dh\_make}\\ (uit het pakket \textbf{dh-make})

note: type: itemize
en: There are some alternatives to \texttt{dh\_make} for specific sets of packages: \textbf{dh-make-perl}, \textbf{dh-make-php}, \ldots
nl: Er bestaan enkele alternatieven voor \texttt{dh\_make} voor specifieke groepen pakketten: \textbf{dh-make-perl}, \textbf{dh-make-php}, \ldots

note: type: itemize
en: \texttt{debian/} directory created, with a lot of files in it
nl: Er werd een map \texttt{debian/} aangemaakt met daarin een heleboel bestanden

note: type: frame{#2}
en: Files in debian/
nl: Bestanden in debian/

note: type: frame
en: All the packaging work should be made by modifying files in \texttt{debian/}
nl: Alle verpakkingswerk gebeurt door bestanden in \texttt{debian/} te wijzigen

note: type: itemize
en: Main files:
nl: Hoofdbestanden:

note: type: itemize
en: \textbf{control} -- meta-data about the package (dependencies, etc.)
nl: \textbf{control} -- meta-gegevens over het pakket (vereisten, enz.)

note: type: itemize
en: \textbf{rules} -- specifies how to build the package
nl: \textbf{rules} -- geeft aan hoe het pakket gebouwd moet worden

note: type: itemize
en: \textbf{copyright} -- copyright information for the package
nl: \textbf{copyright} -- auteursrechtinformatie voor het pakket

note: type: itemize
en: \textbf{changelog} -- history of the Debian package
nl: \textbf{changelog} -- geschiedenis van het Debian-pakket

note: type: itemize
en: Other files:
nl: Andere bestanden:

note: type: itemize
en: maintainer scripts\\ {\small *.postinst, *.prerm, \ldots}
nl: onderhoudsscripts \\ {\small *.postinst, *.prerm, \ldots}

note: type: itemize
en: patches/ -- if you need to modify the upstream sources
nl: patches/ -- indien u de bovenstroomse broncode moet aanpassen

note: type: itemize
en: Several files use a format based on RFC 822 (mail headers)
nl: Verschillende bestanden hebben een op RFC 822 (mail-kopregels) gebaseerde indeling

note: type: itemize
en: Lists the Debian packaging changes
nl: Vermeldt de Debian verpakkingswijzigingen

note: type: itemize
en: Gives the current version of the package
nl: Vermeldt de huidige versie van het pakket

note: type: tikzpicture
en: \draw (0,0) node[above right] {\large 1.2.1.1-5}; \draw [decorate,decoration={brace}] (2,0) -- (1.45,0) node[at start,below,text width=1.6cm,text centered] {\small Debian revision}; \draw [decorate,decoration={brace}] (1.4,0) -- (0,0) node[midway,below,text width=1.6cm,text centered] { \small Upstream version};
nl: \draw (0,0) node[above right] {\large 1.2.1.1-5}; \draw [decorate,decoration={brace}] (2,0) -- (1.45,0) node[at start,below,text width=1.6cm,text centered] {\small Debian revisie}; \draw [decorate,decoration={brace}] (1.4,0) -- (0,0) node[midway,below,text width=1.6cm,text centered] { \small Upstream versie};

note: % type: itemize
en: Edited manually or with \textttc{dch}
nl: Handmatig ingevoerd of bewerkt met \textttc{dch}

note: type: itemize
en: Create a changelog entry for a new release: \textttc{dch -i}
nl: Een changelog-item aanmaken voor een nieuwe release: \textttc{dch -i}

note: type: itemize
en: Special format to automatically close Debian or Ubuntu bugs\\ Debian: \texttt{Closes:~\#595268}; Ubuntu: \texttt{LP:~\#616929}
nl: Speciale indeling om automatisch Debian of Ubuntu bugs te sluiten\\ Debian: \texttt{Closes:~\#595268}; Ubuntu: \texttt{LP:~\#616929}

note: type: itemize
en: Installed as \texttt{/usr/share/doc/\textit{package}/changelog.Debian.gz}
nl: Geïnstalleerd als \texttt{/usr/share/doc/\textit{pakket}/changelog.Debian.gz}

note: type: itemize
en: Package metadata
nl: Pakket-metagegevens

note: type: itemize
en: For the source package itself
nl: Voor het broncodepakket zelf

note: type: itemize
en: For each binary package built from this source
nl: Voor elk binair pakket dat uit deze broncode gebouwd wordt

note: type: itemize
en: Package name, section, priority, maintainer, uploaders, build-dependencies, dependencies, description, homepage, \ldots
nl: Pakketnaam, sectie, prioriteit, onderhouder, uploaders, bouw-vereisten, vereisten, beschrijving, homepagina, \ldots

note: type: itemize
en: Documentation: Debian Policy chapter 5\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}
nl: Documentatie: Debian beleidshandboek hoofdstuk 5\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}

note: type: frame{#2}
en: Architecture: all or any
nl: Architectuur: all of any

note: type: frame
en: Two kinds of binary packages:
nl: Twee soorten binaire pakketten:

note: type: itemize
en: Packages with different contents on each Debian architecture
nl: Pakketten met verschillende inhoud voor elke Debian-architectuur

note: type: itemize
en: Example: C program
nl: Bijvoorbeeld: C-programma

note: type: itemize
en: Or, if it only works on a subset of architectures:\\ \texttt{Architecture:\ amd64 i386 ia64 hurd-i386}
nl: Of, als het enkel werkt op een deelgroep architecturen:\\ \texttt{Architecture:\ amd64 i386 ia64 hurd-i386}

note: type: itemize
en: buildd.debian.org: builds all the other architectures for you on upload
nl: buildd.debian.org: bouwt alle andere architecturen voor u na het uploaden

note: type: itemize
en: Named \texttt{\textsl{package}\_\textsl{version}\_\textsl{architecture}.deb}
nl: Genaamd \texttt{\textsl{pakket}\_\textsl{versie}\_\textsl{architectuur}.deb}

note: type: itemize
en: Packages with the same content on all architectures
nl: Pakketten met dezelfde inhoud op alle architecturen

note: type: itemize
en: Example: Perl library
nl: Bijvoorbeeld: Perl-bibliotheek

note: type: itemize
en: Named \texttt{\textsl{package}\_\textsl{version}\_\textbf{all}.deb}
nl: Genaamd \texttt{\textsl{pakket}\_\textsl{versie}\_\textbf{all}.deb}

note: type: frame
en: A source package can generate a mix of \texttt{Architecture:\ any} and \texttt{Architecture:\ all} binary packages
nl: Uit een broncodepakket kan een mengeling van \texttt{Architecture:\ any} en \texttt{Architecture:\ all} binaire pakketten gegenereerd worden

note: type: itemize
en: Makefile
nl: Make-bestand

note: type: itemize
en: Interface used to build Debian packages
nl: Interface die gebruikt wordt om Debian-pakketten te bouwen

note: type: itemize
en: Documented in Debian Policy, chapter 4.8\\ {\small \url{https://www.debian.org/doc/debian-policy/ch-source\#s-debianrules}}
nl: Beschreven in Debian beleidshandboek, hoofdstuk 4.8\\ {\small \url{https://www.debian.org/doc/debian-policy/ch-source\#s-debianrules}}

note: type: itemize
en: Required targets:
nl: Vereiste doelen:

note: type: itemize
en: \texttt{build, build-arch, build-indep}: should perform all the configuration and compilation
nl: \texttt{build, build-arch, build-indep}: moet alle configuratie en compilatie uitvoeren

note: type: itemize
en: \texttt{binary, binary-arch, binary-indep}: build the binary packages
nl: \texttt{binary, binary-arch, binary-indep}: binaire pakketten bouwen

note: type: itemize
en: \texttt{dpkg-buildpackage} will call \texttt{binary} to build all the packages, or \texttt{binary-arch} to build only the \texttt{Architecture:~any} packages
nl: \texttt{dpkg-buildpackage} aanroept \texttt{binary} om alle pakketten te bouwen of \texttt{binary-arch} om enkel de \texttt{Architecture:~any}-pakketten te bouwen

note: type: itemize
en: \texttt{clean}: clean up the source directory
nl: \texttt{clean}: de broncodemap opruimen

note: type: subsection{#2}
en: Packaging helpers
nl: Verpakkingshulpprogramma's

note: type: frame{#2}
en: Packaging helpers -- debhelper
nl: Verpakkingshulpprogramma's -- debhelper

note: type: itemize
en: You could write shell code in \texttt{debian/rules} directly
nl: U kunt in \texttt{debian/rules} rechtstreeks shell-code schrijven

note: type: itemize
en: See the \texttt{rsync} package for example
nl: Zie het pakket \texttt{rsync} voor een voorbeeld

note: type: itemize
en: Better practice (used by most packages): use a \textsl{Packaging helper}
nl: Beter (voor de meeste pakketten): een \textsl{verpakkingshulpprogramma}

note: type: itemize
en: Most popular one: \textbf{debhelper} (used by 98\% of packages)
nl: Het populairste is: \textbf{debhelper} (voor 98\% van de pakketten gebruikt)

note: type: itemize
en: Goals:
nl: Doelstellingen:

note: type: itemize
en: Factor the common tasks in standard tools used by all packages
nl: Gewone taken opnemen in door alle pakketten gebruikt gereedschap

note: type: itemize
en: Fix some packaging bugs once for all packages
nl: Sommige verpakkingsfouten in eenmaal oplossen voor alle pakketten

note: type: itemize
en: Called from \texttt{debian/rules}
nl: Wordt aangeroepen vanuit \texttt{debian/rules}

note: type: itemize
en: Configurable using command parameters or files in \texttt{debian/}
nl: Configureerbaar met commandoparameters of bestanden in \texttt{debian/}

note: type: itemize
en: {\footnotesize \ttfamily \textsl{package}.docs, \textsl{package}.examples, \textsl{package}.install, \textsl{package}.manpages, \ldots}
nl: {\footnotesize \ttfamily \textsl{pakket}.docs, \textsl{pakket}.examples, \textsl{pakket}.install, \textsl{pakket}.manpages, \ldots}

note: type: itemize
en: Third-party helpers for sets of packages: \textbf{python-support}, \textbf{dh\_ocaml}, \ldots
nl: Hulpprogramma's van derden voor bepaalde groepen pakketten: \textbf{python-support}, \textbf{dh\_ocaml}, \ldots

note: type: itemize
en: Gotcha: \texttt{debian/compat}: Debhelper compatibility version (use "7")
nl: Klaar: \texttt{debian/compat}: compatibiliteit met Debhelperversie (gebruik "7")

note: type: frame{#2}
en: debian/rules using debhelper (1/2)
nl: debian/rules met debhelper (1/2)

note: type: lstlisting
en: # Uncomment this to turn on verbose mode.
    #export DH_VERBOSE=1
nl: # Verwijder commentaarteken om breedsprakige modus aan te zetten.
    #export DH_VERBOSE=1

note: type: lstlisting
en: build: 
            $(MAKE)
            #docbook-to-man debian/packagename.sgml > packagename.1
nl: build: 
            $(MAKE)
            #docbook-naar-man debian/pakketnaam.sgml > pakketnaam.1

note: type: lstlisting
en: install: build
            dh_testdir
            dh_testroot
            dh_clean -k 
            dh_installdirs
            # Add here commands to install the package into debian/packagename.
            $(MAKE) DESTDIR=$(CURDIR)/debian/packagename install
nl: install: build
            dh_testdir
            dh_testroot
            dh_clean -k 
            dh_installdirs
            # Hier commando's voor pakketinstallatie in debian/pakketnaam.
            $(MAKE) DESTDIR=$(CURDIR)/debian/pakketnaam install

note: type: frame{#2}
en: debian/rules using debhelper (2/2)
nl: debian/rules met debhelper (2/2)

note: type: lstlisting
en: # Build architecture-independent files here.
    binary-indep: build install
nl: # Hier architectuur-onafhankelijke bouwbestanden.
    binary-indep: build install

note: type: lstlisting
en: # Build architecture-dependent files here.
    binary-arch: build install
            dh_testdir
            dh_testroot
            dh_installchangelogs 
            dh_installdocs
            dh_installexamples
            dh_install
            dh_installman
            dh_link
            dh_strip
            dh_compress
            dh_fixperms
            dh_installdeb
            dh_shlibdeps
            dh_gencontrol
            dh_md5sums
            dh_builddeb
nl: # Hier architectuur-afhankelijke bouwbestanden.
    binary-arch: build install
            dh_testdir
            dh_testroot
            dh_installchangelogs 
            dh_installdocs
            dh_installexamples
            dh_install
            dh_installman
            dh_link
            dh_strip
            dh_compress
            dh_fixperms
            dh_installdeb
            dh_shlibdeps
            dh_gencontrol
            dh_md5sums
            dh_builddeb

note: type: itemize
en: With debhelper, still a lot of redundancy between packages
nl: Met debhelper is er nog steeds veel redundantie tussen pakketten

note: type: itemize
en: Second-level helpers that factor common functionality
nl: Hulpprogramma's van het tweede niveau met algemene functionaliteit

note: type: itemize
en: E.g. building with \texttt{./configure \&\& make \&\& make install} or CMake
nl: Bijv. bouwen met \texttt{./configure \&\& make \&\& make install} of CMake

note: type: itemize
en: Introduced in 2005, based on advanced \textsl{GNU make} magic
nl: Geïntroduceerd in 2005, gebaseerd op geavanceerde \textsl{GNU make}-magie

note: type: itemize
en: Documentation: \texttt{/usr/share/doc/cdbs/}
nl: Documentatie: \texttt{/usr/share/doc/cdbs/}

note: type: itemize
en: Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \ldots
nl: Ondersteunt Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \ldots

note: type: itemize
en: But some people hate it:
nl: Maar sommige mensen haten het:

note: type: itemize
en: Sometimes difficult to customize package builds:\\ "\textsl{twisty maze of makefiles and environment variables}"
nl: Soms moeilijk om het bouwen van pakketten aan te passen:\\ "\textsl{kromme puinhoop make-bestanden en omgevingsvariabelen}"

note: type: itemize
en: Slower than plain debhelper (many useless calls to \texttt{dh\_*})
nl: Trager dan debhelper zelf (veel nutteloos aanroepen van \texttt{dh\_*})

note: type: lstlisting
en: # add an action after the build
    build/mypackage::
        /bin/bash debian/scripts/foo.sh
nl: # een actie toevoegen na het bouwen
    build/mijnpakket::
        /bin/bash debian/scripts/foo.sh

note: type: frame{#2}
en: Dh (aka Debhelper 7, or dh7)
nl: Dh (ook bekend als Debhelper 7 of dh7)

note: type: itemize
en: Introduced in 2008 as a \textsl{CDBS killer}
nl: Geïntroduceerd in 2008 als een \textsl{CDBS-doder}

note: type: itemize
en: \textbf{dh} command that calls \texttt{dh\_*}
nl: \textbf{dh} commando dat \texttt{dh\_*} aanroept

note: type: itemize
en: Simple \textsl{debian/rules}, listing only overrides
nl: Eenvoudige \textsl{debian/rules}, enkel opsomming overrides (overschrijvingen)

note: type: itemize
en: Easier to customize than CDBS
nl: Makkelijker aan te passen dan CDBS

note: type: itemize
en: Doc: manpages (\texttt{debhelper(7)}, \texttt{dh(1)}) + slides from DebConf9 talk\\ \url{http://kitenet.net/~joey/talks/debhelper/debhelper-slides.pdf}
nl: Doc: man-pagina's (\texttt{debhelper(7)}, \texttt{dh(1)}) + dia's van DebConf9-presentatie\\ \url{http://kitenet.net/~joey/talks/debhelper/debhelper-slides.pdf}

note: source for stats: https://anonscm.debian.org/cgit/collab-qa/dhistory.git/ type: frame{#2}
en: Classic debhelper vs CDBS vs dh
nl: Klassieke debhelper vs CDBS vs dh

note: type: itemize
en: Mind shares:\\ Classic debhelper: 15\% \hskip 1em CDBS: 15\% \hskip 1em dh: 68\%
nl: Aanhang:\\ Klassieke debhelper: 15\% \hskip 1em CDBS: 15\% \hskip 1em dh: 68\%

note: type: itemize
en: Which one should I learn?
nl: Welk moet ik leren?

note: type: itemize
en: Probably a bit of all of them
nl: Wellicht een beetje van allemaal

note: type: itemize
en: You need to know debhelper to use dh and CDBS
nl: U moet debhelper kennen om dh en CDBS te gebruiken

note: type: itemize
en: You might have to modify CDBS packages
nl: Mogelijk moet u CDBS-pakketten aanpassen

note: type: itemize
en: Which one should I use for a new package?
nl: Welk moet ik gebruiken voor een nieuw pakket?

note: type: itemize
en: \textbf{dh} (only solution with an increasing mind share)
nl: \textbf{dh} (enig hulpmiddel met een groeiende aanhang)

note: type: axis[#1]
en: small,label style={font=\footnotesize},xlabel={\small Time},ylabel={\small Market share (\%)}, date coordinates in=x,height=4.85cm,width=9cm,xticklabel={\year}, legend style={font=\footnotesize,at={(1.02,1)},anchor=north west},max space between ticks=82,try min ticks=5,ymin=0
nl: small,label style={font=\footnotesize},xlabel={\small Jaar},ylabel={\small Marktaandeel (\%)}, date coordinates in=x,height=4.85cm,width=9cm,xticklabel={\year}, legend style={font=\footnotesize,at={(1.02,1)},anchor=north west},max space between ticks=82,try min ticks=5,ymin=0

note: type: section{#2}
en: Building and testing packages
nl: Pakketten bouwen en testen

note: type: frame{#2}
en: Building packages
nl: Pakketten bouwen

note: type: itemize
en: \textttc{apt-get build-dep mypackage}\\ Installs the \textsl{build-dependencies} (for a package already in Debian)\\ Or \textttc{mk-build-deps -ir} (for a package not uploaded yet)
nl: \textttc{apt-get build-dep mijnpakket}\\ Installeert \textsl{build-dependencies} (voor reeds in Debian aanwezig pakket)\\ Of \textttc{mk-build-deps -ir} (voor een pakket dat nog niet geüpload werd)

note: type: itemize
en: \textttc{debuild}: build, test with \texttt{lintian}, sign with GPG
nl: \textttc{debuild}: bouwen, testen met \texttt{lintian}, ondertekenen met GPG

note: type: itemize
en: Also possible to call \textttc{dpkg-buildpackage} directly
nl: Het is ook mogelijk om rechtstreeks \textttc{dpkg-buildpackage} aan te roepen

note: type: itemize
en: Usually with \texttt{dpkg-buildpackage -us -uc}
nl: Gewoonlijk met \texttt{dpkg-buildpackage -us -uc}

note: type: itemize
en: It is better to build packages in a clean \& minimal environment
nl: Het is best om pakketten te bouwen in een zuivere \& minimale omgeving

note: type: itemize
en: \textttc{pbuilder} -- helper to build packages in a \textsl{chroot}\\ Good documentation: \url{https://wiki.ubuntu.com/PbuilderHowto}\\ (optimization: \textttc{cowbuilder} \textttc{ccache} \textttc{distcc})
nl: \textttc{pbuilder} -- hulpprogramma om een pakket te bouwen in een \textsl{chroot}\\ Goede documentatie: \url{https://wiki.ubuntu.com/PbuilderHowto}\\ (optimalisatie: \textttc{cowbuilder} \textttc{ccache} \textttc{distcc})

note: type: itemize
en: \textttc{schroot} and \textttc{sbuild}: used on the Debian build daemons\\ (not as simple as \texttt{pbuilder}, but allows LVM snapshots\\ see: \url{https://help.ubuntu.com/community/SbuildLVMHowto} )
nl: \textttc{schroot} en \textttc{sbuild}: gebruikt op de Debian bouwachtergronddiensten\\ (minder eenvoudig dan \texttt{pbuilder}, wel LVM-momentopname mogelijk\\ zie: \url{https://help.ubuntu.com/community/SbuildLVMHowto} )

note: type: itemize
en: Generates \texttt{.deb} files and a \texttt{.changes} file
nl: Genereert \texttt{.deb}-bestanden en een \texttt{.changes}-bestand

note: type: itemize
en: \texttt{.changes}: describes what was built; used to upload the package
nl: \texttt{.changes}: beschrijft wat gebouwd werd; gebruikt om het pakket te uploaden

note: type: frame{#2}
en: Installing and testing packages
nl: Pakketten installeren en testen

note: type: itemize
en: Install the package locally: \textttc{debi} (will use \texttt{.changes} to know what to install)
nl: Het pakket lokaal installeren: \textttc{debi} (zal gebruik maken van \texttt{.changes} om te weten wat geïnstalleerd moet worden)

note: type: itemize
en: List the content of the package: \texttt{{\color{rouge}debc} ../mypackage<TAB>.changes}
nl: De inhoud van het pakket tonen: \texttt{{\color{rouge}debc} ../mijnpakket<TAB>.changes}

note: type: itemize
en: Compare the package with a previous version:\\ \texttt{{\color{rouge}debdiff} ../mypackage\_1\_*.changes ../mypackage\_2\_*.changes}\\ or to compare the sources:\\ \texttt{{\color{rouge}debdiff} ../mypackage\_1\_*.dsc ../mypackage\_2\_*.dsc}\\
nl: Het pakket vergelijken met een eerdere versie:\\ \texttt{{\color{rouge}debdiff} ../mijnpakket\_1\_*.changes ../mijnpakket\_2\_*.changes}\\ of om de broncode te vergelijken:\\ \texttt{{\color{rouge}debdiff} ../mijnpakket\_1\_*.dsc ../mijnpakket\_2\_*.dsc}\\

note: type: itemize
en: Check the package with \texttt{lintian} (static analyzer):\\ \texttt{{\color{rouge}lintian} ../mypackage<TAB>.changes}\\ \texttt{lintian -i}: gives more information about the errors \\ \texttt{lintian -EviIL +pedantic}: shows more problems
nl: Het pakket controleren met \texttt{lintian} (statische analysator):\\ \texttt{{\color{rouge}lintian} ../mijnpakket<TAB>.changes}\\ \texttt{lintian -i}: geeft meer informatie over de fouten \\ \texttt{lintian -EviIL +pedantic}: toont meer problemen

note: type: itemize
en: Upload the package to Debian (\textttc{dput}) (needs configuration)
nl: Het pakket naar Debian uploaden (\textttc{dput}) (daarvoor is configuratie nodig)

note: type: itemize
en: Manage a private Debian archive with \textttc{reprepro} or \textttc{aptly}\\ Documentation: \url{https://wiki.debian.org/HowToSetupADebianRepository}
nl: Een persoonlijk Debian-archief beheren met \textttc{reprepro} of \textttc{aptly}\\ Documentatie: \url{https://wiki.debian.org/HowToSetupADebianRepository}

note: type: frame{#2}
en: Practical session 1: modifying the grep package
nl: Praktijkoefening 1: het grep-pakket aanpassen

note: type: enumerate
en: Go to \url{http://ftp.debian.org/debian/pool/main/g/grep/} and download version 2.12-2 of the package
nl: Ga naar \url{http://ftp.debian.org/debian/pool/main/g/grep/} en download versie 2.12-2 van het pakket

note: type: itemize
en: If the source package is not unpacked automatically, unpack it with \texttt{dpkg-source~-x~grep\_*.dsc}
nl: Indien het broncodepakket niet automatisch uitgepakt wordt, pak het dan uit met \texttt{dpkg-source~-x~grep\_*.dsc}

note: type: enumerate
en: Look at the files in \texttt{debian/}.
nl: Bekijk de bestanden in \texttt{debian/}.

note: type: itemize
en: How many binary packages are generated by this source package?
nl: Hoeveel binaire pakketten worden uit dit bronpakket gegenereerd?

note: type: itemize
en: Which packaging helper does this package use?
nl: Welk verpakkingshulpprogramma wordt gebruikt voor dit pakket?

note: type: itemize
en: Build the package
nl: Bouw het pakket

note: type: enumerate
en: We are now going to modify the package. Add a changelog entry and increase the version number.
nl: Nu gaan we het pakket aanpassen. Voeg een changelog-item toe en verhoog het versienummer.

note: type: enumerate
en: Now disable perl-regexp support (it is a \texttt{./configure} option)
nl: Schakel ondersteuning voor perl-regexp uit (is een \texttt{./configure}-optie)

note: type: enumerate
en: Rebuild the package
nl: Bouw het pakket nogmaals

note: type: enumerate
en: Compare the original and the new package with debdiff
nl: Vergelijk het originele en het nieuwe pakket met debdiff

note: type: enumerate
en: Install the newly built package
nl: Installeer het nieuwgebouwde pakket

note: type: section{#2}
en: Advanced packaging topics
nl: Geavanceerde verpakkingsonderwerpen

note: type: itemize
en: Copyright and license information for the source and the packaging
nl: Copyright- en licentie-informatie in verband met broncode en verpakking

note: type: itemize
en: Traditionally written as a text file
nl: Traditioneel geschreven als een tekstbestand

note: type: itemize
en: New machine-readable format: {\small\url{https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/}}
nl: Nieuwe machine-leesbare indeling: {\small\url{https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/}}

note: type: lstlisting
en: Files: *
    Copyright: Copyright 1998 John Doe <jdoe@example.com>
    License: GPL-2+
     This program is free software; you can redistribute it
     [...]
     .
     On Debian systems, the full text of the GNU General Public
     License version 2 can be found in the file
     `/usr/share/common-licenses/GPL-2'.
nl: Files: *
    Copyright: Copyright 1998 John Doe <jdoe@example.com>
    License: GPL-2+
     Dit programma is vrije software; u mag het verspreiden
     [...]
     .
     Op Debian-systemen is de volledige tekst van de GNU General
     Public License versie 2 te vinden in het bestand
     `/usr/share/common-licenses/GPL-2'.

note: type: lstlisting
en: Files: debian/*
    Copyright: Copyright 1998 Jane Smith <jsmith@example.net>
    License:
     [LICENSE TEXT]
nl: Files: debian/*
    Copyright: Copyright 1998 Jane Smith <jsmith@example.net>
    License:
     [LICENTIETEKST]

note: type: frame{#2}
en: Modifying the upstream source
nl: De bovenstroomse broncode aanpassen

note: type: frame
en: Often needed:
nl: Vaak nodig:

note: type: itemize
en: Fix bugs or add customizations that are specific to Debian
nl: Bugs repareren of Debian-specifieke aanpassingen toevoegen

note: type: itemize
en: Backport fixes from a newer upstream release
nl: Reparaties uit een recentere bovenstroomse versie naar een eerdere versie overbrengen (backport)

note: type: frame
en: Several methods to do it:
nl: Verschillende manieren om dit te doen:

note: type: itemize
en: Modifying the files directly
nl: De bestanden rechtstreeks wijzigen

note: type: itemize
en: Simple
nl: Eenvoudig

note: type: itemize
en: But no way to track and document the changes
nl: Maar geen mogelijkheid om de wijzigingen bij te houden en te documenteren

note: type: itemize
en: Using patch systems
nl: Patch-systemen gebruiken

note: type: itemize
en: Eases contributing your changes to upstream
nl: Maakt het makkelijker om uw aanpassingen terug te koppelen naar de bovenstroomse ontwikkelaar

note: type: itemize
en: Helps sharing the fixes with derivatives
nl: Helpt het delen van de reparaties met afgeleide distributies

note: type: itemize
en: Gives more exposure to the changes\\ \url{http://patch-tracker.debian.org/} (down currently)
nl: Geeft meer zicht op de veranderingen\\ \url{http://patch-tracker.debian.org/} (momenteel uitgezet)

note: type: frame{#2}
en: Patch systems
nl: Patch-systemen

note: type: itemize
en: Principle: changes are stored as patches in \texttt{debian/patches/}
nl: Principe: wijzigingen worden als patches opgeslagen in \texttt{debian/patches/}

note: type: itemize
en: Applied and unapplied during build
nl: Toegepast of niet toegepast tijdens het bouwen

note: type: itemize
en: Past: several implementations -- \textsl{simple-patchsys} (\textsl{cdbs}), \textsl{dpatch}, \textbf{\textsl{quilt}}
nl: Vroeger: meerdere toepassingen -- \textsl{simple-patchsys} (\textsl{cdbs}), \textsl{dpatch}, \textbf{\textsl{quilt}}

note: type: itemize
en: Each supports two \texttt{debian/rules} targets:
nl: Elk van hen ondersteunt twee \texttt{debian/rules}-targets:

note: type: itemize
en: \texttt{debian/rules patch}: apply all patches
nl: \texttt{debian/rules patch}: alle patches toepassen

note: type: itemize
en: \texttt{debian/rules unpatch}: de-apply all patches
nl: \texttt{debian/rules unpatch}: geen patches toepassen

note: type: itemize
en: More documentation: \url{https://wiki.debian.org/debian/patches}
nl: Meer documentatie: \url{https://wiki.debian.org/debian/patches}

note: type: textbf{#1}
en: New source package format with built-in patch system: 3.0 (quilt)
nl: Nieuwe bronpakketindeling met ingebouwd patch-systeem: 3.0 (quilt)

note: type: itemize
en: Recommended solution
nl: Aanbevolen werkwijze

note: type: itemize
en: You need to learn \textsl{quilt}\\ \url{https://perl-team.pages.debian.net/howto/quilt.html}
nl: U moet \textsl{quilt} leren\\ \url{https://perl-team.pages.debian.net/howto/quilt.html}

note: type: itemize
en: Patch-system-agnostic tool in \texttt{devscripts}: \texttt{edit-patch}
nl: Patch-systeem-agnostisch hulpmiddel in \texttt{devscripts}: \texttt{edit-patch}

note: type: frame{#2}
en: Documentation of patches
nl: Documentatie van patches

note: type: itemize
en: Standard headers at the beginning of the patch
nl: Standaard kopregels bij het begin van de patch

note: type: itemize
en: Documented in DEP-3 - Patch Tagging Guidelines\\ \url{http://dep.debian.net/deps/dep3/}
nl: Gedocumenteerd in DEP-3 - Richtlijnen voor het merken van patches\\ \url{http://dep.debian.net/deps/dep3/}

note: type: lstlisting
en: [basicstyle=\ttfamily\footnotesize]
    Description: Fix widget frobnication speeds
     Frobnicating widgets too quickly tended to cause explosions.
    Forwarded: http://lists.example.com/2010/03/1234.html
    Author: John Doe <johndoe-guest@users.alioth.debian.org>
    Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123
    Last-Update: 2010-03-29
nl: [basicstyle=\ttfamily\footnotesize]
    Description: Snelheid van morrelen met widgets repareren
     Te snel morrelen met widgets gaf explosiegevaar.
    Forwarded: http://lists.example.com/2010/03/1234.html
    Author: John Doe <johndoe-guest@users.alioth.debian.org>
    Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123
    Last-Update: 2010-03-29

note: type: frame{#2}
en: Doing things during installation and removal
nl: Dingen doen tijdens installatie en verwijdering

note: type: itemize
en: Decompressing the package is sometimes not enough
nl: Het pakket uitpakken volstaat soms niet

note: type: itemize
en: Create/remove system users, start/stop services, manage \textsl{alternatives}
nl: Systeemgebruikers maken/verwijderen, diensten starten/stoppen, \textsl{alternatives} beheren

note: type: itemize
en: Done in \textsl{maintainer scripts}\\ \texttt{preinst, postinst, prerm, postrm}
nl: Gebeurt in \textsl{maintainerscripts}\\ \texttt{preinst, postinst, prerm, postrm}

note: type: itemize
en: Snippets for common actions can be generated by debhelper
nl: Met debhelper kan men fragmenten voor algemene acties genereren

note: type: itemize
en: Documentation:
nl: Documentatie:

note: type: itemize
en: Debian Policy Manual, chapter 6\\ {\footnotesize \url{https://www.debian.org/doc/debian-policy/ch-maintainerscripts}}
nl: Debian Beleidshandboek, hoofdstuk 6\\ {\footnotesize \url{https://www.debian.org/doc/debian-policy/ch-maintainerscripts}}

note: type: itemize
en: Debian Developer's Reference, chapter 6.4\\ {\scriptsize \url{https://www.debian.org/doc/developers-reference/best-pkging-practices.html}}
nl: Debian Referentiehandleiding voor ontwikkelaars, hoofdstuk 6.4\\ {\scriptsize \url{https://www.debian.org/doc/developers-reference/best-pkging-practices.html}}

note: type: itemize
en: Prompting the user
nl: De gebruiker een vraag stellen

note: type: itemize
en: Must be done with \textbf{debconf}
nl: Moet met \textbf{debconf} gebeuren

note: type: itemize
en: Documentation: \texttt{debconf-devel(7)} (\texttt{debconf-doc} package)
nl: Documentatie: \texttt{debconf-devel(7)} (pakket \texttt{debconf-doc})

note: type: frame{#2}
en: Monitoring upstream versions
nl: Bovenstroomse versies volgen

note: type: itemize
en: Specify where to look in \texttt{debian/watch} (see \texttt{uscan(1)})
nl: Waar gekeken moet worden, opgeven in \texttt{debian/watch} (zie \texttt{uscan(1)})

note: type: itemize
en: There are automated trackers of new upstream versions, that notify the maintainer on various dashboards including \url{https://tracker.debian.org/} and \url{https://udd.debian.org/dmd/}
nl: Er zijn geautomatiseerde volgers van nieuwe bovenstroomse versies, welke de onderhouder via verschillende instrumentenborden informeren, zoals \url{https://tracker.debian.org/} en \url{https://udd.debian.org/dmd/}

note: type: itemize
en: \texttt{uscan}: run a manual check
nl: \texttt{uscan}: een handmatige controle uitvoeren

note: type: itemize
en: \texttt{uupdate}: try to update your package to the latest upstream version
nl: \texttt{uupdate}: uw pakket proberen opwaarderen naar de laatste bovenstroomse versie

note: type: subsection{#2}
en: Packaging with a Version Control System (SVN, Git)
nl: Verpakken met een versiecontrolesysteem (SVN, Git)

note: type: frame{#2}
en: Packaging with a Version Control System
nl: Verpakken met een versiecontrolesysteem

note: type: itemize
en: Several tools to help manage branches and tags for your packaging work:\\ \texttt{svn-buildpackage}, \texttt{git-buildpackage}
nl: Diverse middelen beheren aftakkingen en tags voor uw verpakkingswerk:\\ \texttt{svn-buildpackage}, \texttt{git-buildpackage}

note: type: itemize
en: Example: \texttt{git-buildpackage}
nl: Bijvoorbeeld: \texttt{git-buildpackage}

note: type: itemize
en: \texttt{upstream} branch to track upstream with \texttt{upstream/\textsl{version}} tags
nl: \texttt{upstream}-tak om bovenstroom te volgen met \texttt{upstream/\textsl{versie}}-tags

note: type: itemize
en: \texttt{master} branch tracks the Debian package
nl: \texttt{master}-tak volgt het Debian-pakket

note: type: itemize
en: \texttt{debian/\textsl{version}} tags for each upload
nl: \texttt{debian/\textsl{versie}}-tags voor elke upload

note: type: itemize
en: \texttt{pristine-tar} branch to be able to rebuild the upstream tarball
nl: \texttt{pristine-tar}-tak om bovenstroom-tarball te kunnen herbouwen

note: type: itemize
en: \texttt{Vcs-*} fields in \texttt{debian/control} to locate the repository
nl: \texttt{Vcs-*}-velden in \texttt{debian/control} om het archief te vinden

note: type: itemize
en: VCS-agnostic interface: \texttt{debcheckout}, \texttt{debcommit}, \texttt{debrelease}\\
nl: VCS-agnostische interface: \texttt{debcheckout}, \texttt{debcommit}, \texttt{debrelease}\\

note: type: itemize
en: \texttt{debcheckout grep} $\rightarrow$ checks out the source package from Git
nl: \texttt{debcheckout grep} $\rightarrow$ haalt het broncodepakket op uit Git

note: type: frame{#2}
en: Backporting packages
nl: Pakketten geschikt maken voor een eerdere release (backport)

note: type: itemize
en: Goal: use a newer version of a package on an older system\\ e.g. use \textsl{mutt} from Debian \textsl{unstable} on Debian \textsl{stable}
nl: Bedoeling: een recentere versie van een pakket op een ouder systeem gebruiken\\ bijv. \textsl{mutt} uit Debian \textsl{unstable} gebruiken op Debian \textsl{stable}

note: type: itemize
en: General idea:
nl: Algemeen idee:

note: type: itemize
en: Take the source package from Debian unstable
nl: Het broncodepakket uit Debian unstable nemen

note: type: itemize
en: Modify it so that it builds and works fine on Debian stable
nl: Het aanpassen zodat het gebouwd kan worden en goed werkt op Debian stable

note: type: itemize
en: Sometimes trivial (no changes needed)
nl: Soms onbeduidend (geen aanpassingen nodig)

note: type: itemize
en: Sometimes difficult
nl: Soms moeilijk

note: type: itemize
en: Sometimes impossible (many unavailable dependencies)
nl: Soms onmogelijk (veel niet-beschikbare vereisten)

note: type: itemize
en: Some backports are provided and supported by the Debian project\\ \url{http://backports.debian.org/}
nl: Sommige van deze zogenaamde backports worden door het Debian-project ondersteund en ter beschikking gesteld\\ \url{http://backports.debian.org/}

note: type: section{#2}
en: Maintaining packages in Debian
nl: Pakketten onderhouden in Debian

note: type: frame{#2}
en: Debian archive and suites
nl: Debian-archief en suites

note: type: tikzpicture
en: \draw node[suite,prod] (sec) {security}; \draw node[suite,prod,right=of sec] (su) {stable-updates}; \draw node[suite,prod,right=of su] (st) {stable}; \draw node[suite,old,node distance=0.3cm,below=of st] (os) {oldstable}; \draw node[suite,veryold,node distance=0.3cm,below=of os] (ar) {archive.d.o}; \draw node[suite,prod,right=of st] (bp) {backports}; \draw node[suite,test] (spu) at ($(su) + (-0.6,2.5)$) {stable-proposed-updates}; \draw node[suite,internal] (sn) at ($(st) + (-1.8,1.4)$) {stable-new}; \draw node[suite,test,node distance=1.5cm,above=of st] (te) {testing}; \draw node[suite,devel,above=of te] (sid) {unstable}; \draw node[suite,devel] (exp) at ($(sid) + (2.5,0.5)$) {experimental}; \draw node[suite,devel] (tpu) at ($(te)!0.5!(sid) + (2.5,0)$) {testing-proposed-updates}; \draw node[people,above=of sid] (dd) {developer}; \draw node[people,node distance=3cm,left=of dd] (secteam) {security team}; \draw[arr,uploads,->] (dd) -- (sid); \draw[arr,uploads,->] (dd) -- (exp); \draw[arr,uploads,->,bend right=8] (dd) to (tpu); \draw[arr,uploads,->] (secteam) -- (sid); \draw[arr,uploads,->] (secteam) -- (sec); \draw[arr,uploads,->] (dd) to (spu); \draw[arr,uploads,->] plot [smooth, tension=0.75] coordinates { (dd.east) ($(exp.north east)+(0.1,0.1)$) ($(tpu.east)+(0.2,0)$)  ($(bp.north east) + (-0.4,0)$) }; \draw[arr,migrations,->] (tpu) -- (te); \draw[arr,migrations,->] (sid) -- (te); \draw[arr,migrations,->] (te) -- (st) node [midway,align=left,midway,right,font=\footnotesize] {stable\\ release}; \draw[arr,migrations,->] (sec) -- (sn); \draw[arr,migrations,->] (sn) to node [pos=0.2] (spulabel) {} (st); \draw node[font=\footnotesize,align=right] at ($(spulabel) + (-0.4,-0.45)$) {stable \\ point \\ release}; \draw[arr,migrations,->] (spu) to (sn); \draw[arr,migrations,->] (spu) -- (su); \draw[arr,migrations,->] (st) -- (os); \draw[arr,migrations,->] (os) -- (ar); \coordinate (legend) at (-2,-1); \draw[arr,uploads,->] (legend) -- ($(legend) + (0.7,0)$) node [right,legend] {package uploads}; \coordinate[node distance=1.1em,below=of legend] (legend2); \draw[arr,migrations,->] (legend2) -- ($(legend2) + (0.7,0)$) node [right,legend] {package migrations between suites}; \coordinate[node distance=1.5em,below=of legend2] (legend3); \draw node[right,suite,devel,legend] (ldev) at (legend3) {development}; \draw node[node distance=0.1cm,right=of ldev,suite,test,legend] (ltest) {test}; \draw node[node distance=0.1cm,right=of ltest,suite,internal,legend] (lint) {internal}; \draw node[node distance=0.1cm,right=of lint,suite,prod,legend] (lprod) {production}; \draw ($(legend.north west) + (-0.1,0.25)$) rectangle ($(lprod.south east) + (0.1,-0.1)$); \draw node[font=\bf,red!70!white,align=center] (tnext) at ($(te.east) + (2,-0.1)$) {preparation of \\ next release}; \draw node[font=\bf,green!70!black,align=center] (tsrm) at ($(sec.north east) + (1,1)$) {stable\\release\\management}; \pgfdeclarelayer{background} \pgfdeclarelayer{foreground} \pgfsetlayers{background,main,foreground}
nl: \draw node[suite,prod] (sec) {security}; \draw node[suite,prod,right=of sec] (su) {stable-updates}; \draw node[suite,prod,right=of su] (st) {stable}; \draw node[suite,old,node distance=0.3cm,below=of st] (os) {oldstable}; \draw node[suite,veryold,node distance=0.3cm,below=of os] (ar) {archive.d.o}; \draw node[suite,prod,right=of st] (bp) {backports}; \draw node[suite,test] (spu) at ($(su) + (-0.6,2.5)$) {stable-proposed-updates}; \draw node[suite,internal] (sn) at ($(st) + (-1.8,1.4)$) {stable-new}; \draw node[suite,test,node distance=1.5cm,above=of st] (te) {testing}; \draw node[suite,devel,above=of te] (sid) {unstable}; \draw node[suite,devel] (exp) at ($(sid) + (2.5,0.5)$) {experimental}; \draw node[suite,devel] (tpu) at ($(te)!0.5!(sid) + (2.5,0)$) {testing-proposed-updates}; \draw node[people,above=of sid] (dd) {ontwikkelaar}; \draw node[people,node distance=3cm,left=of dd] (secteam) {veiligheidsteam}; \draw[arr,uploads,->] (dd) -- (sid); \draw[arr,uploads,->] (dd) -- (exp); \draw[arr,uploads,->,bend right=8] (dd) to (tpu); \draw[arr,uploads,->] (secteam) -- (sid); \draw[arr,uploads,->] (secteam) -- (sec); \draw[arr,uploads,->] (dd) to (spu); \draw[arr,uploads,->] plot [smooth, tension=0.75] coordinates { (dd.east) ($(exp.north east)+(0.1,0.1)$) ($(tpu.east)+(0.2,0)$)  ($(bp.north east) + (-0.4,0)$) }; \draw[arr,migrations,->] (tpu) -- (te); \draw[arr,migrations,->] (sid) -- (te); \draw[arr,migrations,->] (te) -- (st) node [midway,align=left,midway,right,font=\footnotesize] {stable\\ release}; \draw[arr,migrations,->] (sec) -- (sn); \draw[arr,migrations,->] (sn) to node [pos=0.2] (spulabel) {} (st); \draw node[font=\footnotesize,align=right] at ($(spulabel) + (-0.4,-0.45)$) {stable \\ tussen- \\ release}; \draw[arr,migrations,->] (spu) to (sn); \draw[arr,migrations,->] (spu) -- (su); \draw[arr,migrations,->] (st) -- (os); \draw[arr,migrations,->] (os) -- (ar); \coordinate (legend) at (-2,-1); \draw[arr,uploads,->] (legend) -- ($(legend) + (0.7,0)$) node [right,legend] {uploads van pakketten}; \coordinate[node distance=1.1em,below=of legend] (legend2); \draw[arr,migrations,->] (legend2) -- ($(legend2) + (0.7,0)$) node [right,legend] {pakketbewegingen tussen suites}; \coordinate[node distance=1.5em,below=of legend2] (legend3); \draw node[right,suite,devel,legend] (ldev) at (legend3) {ontwikkeling}; \draw node[node distance=0.1cm,right=of ldev,suite,test,legend] (ltest) {test}; \draw node[node distance=0.1cm,right=of ltest,suite,internal,legend] (lint) {intern}; \draw node[node distance=0.1cm,right=of lint,suite,prod,legend] (lprod) {productie}; \draw ($(legend.north west) + (-0.1,0.25)$) rectangle ($(lprod.south east) + (0.1,-0.1)$); \draw node[font=\bf,red!70!white,align=center] (tnext) at ($(te.east) + (2,-0.1)$) {voorbereiding van \\ volgende release}; \draw node[font=\bf,green!70!black,align=center] (tsrm) at ($(sec.north east) + (1,1)$) {stable\\release-\\beheer}; \pgfdeclarelayer{background} \pgfdeclarelayer{foreground} \pgfsetlayers{background,main,foreground}

note: type: flushright
en: \tiny Based on graph by Antoine Beaupr\'e. \url{https://salsa.debian.org/debian/package-cycle}~~~~~~~~~~~~
nl: \tiny Gebaseerd op een diagram van Antoine Beaupr\'e. \url{https://salsa.debian.org/debian/package-cycle}~~~~~~~~~~~~

note: type: frame{#2}
en: Suites for development
nl: Ontwikkelingssuites

note: type: itemize
en: New versions of packages are uploaded to \textbf{unstable} (\textbf{sid})
nl: Nieuwe pakketversies worden geüpload naar \textbf{unstable} (\textbf{sid})

note: type: itemize
en: Packages migrate from \textbf{unstable} to \textbf{testing} based on several criterias (e.g. has been in unstable for 10 days, and no regressions)
nl: Pakketten verschuiven van \textbf{unstable} naar \textbf{testing} op basis van verschillende criteria (bijv. was gedurende 10 dagen in unstable zonder regressies)

note: type: itemize
en: New packages can also be uploaded to:
nl: Nieuwe pakketten kunnen ook geüpload worden naar:

note: type: itemize
en: \textbf{experimental} (for more \textsl{experimental} packages, such as when the new version is not ready to replace the one currently in unstable)
nl: \textbf{experimental} (voor meer \textsl{experimentele} pakketten, zoals wanneer de nieuwe versie niet klaar is om die welke nu in unstable zit, te vervangen)

note: type: itemize
en: \textbf{testing-proposed-updates}, to update the version in \textbf{testing} without going through \textbf{unstable} (this is rarely used)
nl: \textbf{testing-proposed-updates}, om de versie in \textbf{testing} te updaten zonder via \textbf{unstable} te gaan (dit wordt zelden gebruikt)

note: type: frame{#2}
en: Freezing and releasing
nl: Bevriezen en uitbrengen

note: type: itemize
en: At some point during the release cycle, the release team decides to \textsl{freeze} testing: automatic migrations from \textbf{unstable} to \textbf{testing} are stopped, and replaced by manual review
nl: Op een gegeven moment in de release-cyclus neemt het release-team de beslissing om testing \textsl{te bevriezen}: automatische verschuivingen van \textbf{unstable} naar \textbf{testing} worden gestopt en vervangen door een handmatig nazicht

note: type: itemize
en: When the release team considers \textbf{testing} to be ready for release:
nl: Wanneer het release-team \textbf{testing} klaar voor release beschouwt:

note: type: itemize
en: The \textbf{testing} suite becomes the new \textbf{stable} suite
nl: De suite \textbf{testing} wordt de nieuwe suite \textbf{stable}

note: type: itemize
en: Similarly, the old \textbf{stable} becomes \textbf{oldstable}
nl: Op dezelfde wijze wordt het oude \textbf{stable} \textbf{oldstable}

note: type: itemize
en: Unsupported releases are moved to \texttt{archive.debian.org}
nl: Niet-ondersteunde releases worden verplaatst naar \texttt{archive.debian.org}

note: type: itemize
en: See \url{https://release.debian.org/}
nl: Zie \url{https://release.debian.org/}

note: type: frame{#2}
en: Stable release management
nl: Het beheer van de stabiele release (stable)

note: type: itemize
en: Several suites are used to provide stable release packages:
nl: Verschillende suites stellen pakketten uit stable ter beschikking:

note: type: itemize
en: \textbf{stable}: the main suite
nl: \textbf{stable}: de hoofdsuite

note: type: itemize
en: \textbf{security} updates suite provided on \texttt{security.debian.org}, used by the security team. Updates are announced on the \texttt{debian-security-announce} mailing list
nl: \textbf{security} suite met updates welke ter beschikking gesteld wordt op \texttt{security.debian.org}, gebruikt door het veiligheidsteam. Updates worden aangekondigd op de mailinglijst \texttt{debian-security-announce}

note: type: itemize
en: \textbf{stable-updates}: updates that are not security related, but that should urgently be installed (without waiting for the next point release): antivirus databases, timezone-related packages, etc. Announced on the \texttt{debian-stable-announce} mailing list
nl: \textbf{stable-updates}: geen veiligheidsupdates, maar die toch met spoed geïnstalleerd moeten worden (zonder te wachten op de volgende tussenrelease): antivirusdatabases, tijdzonegerelateerde pakketten, enz. Aangekondigd op de mailinglijst \texttt{debian-stable-announce}

note: type: itemize
en: \textbf{backports}: new upstream versions, based on the version in \textbf{testing}
nl: \textbf{backports}: nieuwe upstream-versie, gebaseerd op de \textbf{testing}-versie

note: type: itemize
en: The \textbf{stable} suite is updated every few months by \textsl{stable point releases} (that include only bug fixes)
nl: De suite \textbf{stable} wordt om de enkele maanden geüpdatet via \textsl{tussenreleases van stable} (dit betreft enkel bugreparaties)

note: type: itemize
en: Packages targetting the next stable point release are uploaded to \textbf{stable-proposed-updates} and reviewed by the release team
nl: Pakketten voor de volgende stable-tussenrelease worden geüpload naar \textbf{stable-proposed-updates} en nagezien door het releaseteam

note: type: itemize
en: The \textbf{oldstable} release has the same set of suites
nl: De release \textbf{oldstable} heeft dezelfde reeks suites

note: type: frame{#2}
en: Several ways to contribute to Debian
nl: Verschillende wijzen van bijdragen aan Debian

note: type: itemize
en: \textbf{Worst} way to contribute:
nl: \textbf{Slechtste} manier om bij te dragen:

note: type: enumerate
en: Package your own application
nl: Uw eigen toepassing verpakken

note: type: enumerate
en: Get it into Debian
nl: Deze in Debian binnenbrengen

note: type: enumerate
en: Disappear
nl: Verdwijnen

note: type: itemize
en: \textbf{Better} ways to contribute:
nl: \textbf{Bettere} manieren om bij te dragen:

note: type: itemize
en: Get involved in packaging teams
nl: Meewerken met verpakkingsteams

note: type: itemize
en: Many teams that focus on set of packages, and need help
nl: Veel teams focussen op een reeks pakketten en zoeken hulp

note: type: itemize
en: List available at \url{https://wiki.debian.org/Teams}
nl: Lijst te vinden op \url{https://wiki.debian.org/Teams}

note: type: itemize
en: An excellent way to learn from more experienced contributors
nl: Excellente manier om te leren van meer ervaren medewerkers

note: type: itemize
en: Adopt existing unmaintained packages (\textsl{orphaned packages})
nl: Bestaande niet-onderhouden pakketten adopteren (\textsl{verweesde pakketten})

note: type: itemize
en: Bring new software to Debian
nl: Nieuwe software binnenbrengen in Debian

note: type: itemize
en: Only if it's interesting/useful enough, please
nl: Liefst enkel wanneer deze voldoende interessant/bruikbaar is

note: type: itemize
en: Are there alternatives already packaged in Debian?
nl: Bestaan er reeds voor Debian verpakte alternatieven?

note: type: frame{#2}
en: Adopting orphaned packages
nl: Verweesde pakketten adopteren

note: type: itemize
en: Many unmaintained packages in Debian
nl: Veel niet-onderhouden pakketten in Debian

note: type: itemize
en: Full list + process: \url{https://www.debian.org/devel/wnpp/}
nl: Volledige lijst + proces: \url{https://www.debian.org/devel/wnpp/}

note: type: itemize
en: Installed on your machine: \texttt{wnpp-alert}\\ Or better: \texttt{how-can-i-help}
nl: Geïnstalleerd op uw computer: \texttt{wnpp-alert}\\ Of beter: \texttt{how-can-i-help}

note: type: itemize
en: Different states:
nl: Verschillende toestanden:

note: type: itemize
en: \textbf{O}rphaned: the package is unmaintained\\ Feel free to adopt it
nl: \textbf{O}rphaned (Verweesd): het pakket wordt niet onderhouden\\ U mag het gerust adopteren

note: type: itemize
en: \textbf{RFA}: \textbf{R}equest \textbf{F}or \textbf{A}dopter\\ Maintainer looking for adopter, but continues work in the meantime\\ Feel free to adopt it. A mail to the current maintainer is polite
nl: \textbf{RFA}: \textbf{R}equest \textbf{F}or \textbf{A}dopter (Adoptant gevraagd)\\ Onderhouder zoekt een adoptant, maar blijft intussen verder werken\\ Adopteer het gerust. Een e-mail naar de huidige onderhouder is beleefd

note: type: itemize
en: \textbf{ITA}: \textbf{I}ntent \textbf{T}o \textbf{A}dopt\\ Someone intends to adopt the package\\ You could propose your help!
nl: \textbf{ITA}: \textbf{I}ntent \textbf{T}o \textbf{A}dopt (Adoptie-intentie)\\ Iemand is zinnens het pakket te adopteren. Bied uw hulp aan!

note: type: itemize
en: \textbf{RFH}: \textbf{R}equest \textbf{F}or \textbf{H}elp\\ The maintainer is looking for help
nl: \textbf{RFH}: \textbf{R}equest \textbf{F}or \textbf{H}elp (Hulp gevraagd)\\ De onderhouder is op zoek naar hulp

note: type: itemize
en: Some unmaintained packages not detected \arr not orphaned yet
nl: Niet-gedetecteerde niet-onderhouden pakketten rr nog niet verweesd

note: type: itemize
en: When in doubt, ask \texttt{debian-qa@lists.debian.org} \\ or \texttt{\#debian-qa} on \texttt{irc.debian.org}
nl: Bij twijfel navragen op \texttt{debian-qa@lists.debian.org} \\ of \texttt{\#debian-qa} op \texttt{irc.debian.org}

note: type: frame{#2}
en: Adopting a package: example
nl: Een pakket adopteren: een voorbeeld

note: type: lstlisting
en: [basicstyle=\ttfamily\footnotesize]
    From: You <you@yourdomain>
    To: 640454@bugs.debian.org, control@bugs.debian.org
    Cc: Francois Marier <francois@debian.org>
    Subject: ITA: verbiste -- French conjugator
nl: [basicstyle=\ttfamily\footnotesize]
    From: Jij <jij@jouwdomein>
    To: 640454@bugs.debian.org, control@bugs.debian.org
    Cc: Francois Marier <francois@debian.org>
    Subject: ITA: verbiste -- French conjugator

note: type: lstlisting
en: You
nl: Jij

note: type: itemize
en: Polite to contact the previous maintainer (especially if the package was RFAed, not orphaned)
nl: Het is beleefd om de vroegere onderhouder te contacteren (in het bijzonder wanneer het een RFA betreft en het pakket niet verweesd werd)

note: type: itemize
en: Very good idea to contact the upstream project
nl: Zeer goede gewoonte om het bovenstrooms project te contacteren

note: type: frame{#2}
en: Getting your package in Debian
nl: Uw pakket in Debian krijgen

note: type: itemize
en: You do not need any official status to get your package into Debian
nl: Geen enkele officiële status nodig om uw pakket in Debian te krijgen

note: type: enumerate
en: Submit an \textbf{ITP} bug (\textbf{I}ntent \textbf{T}o \textbf{P}ackage) using \texttt{reportbug wnpp}
nl: Dien een \textbf{ITP}-bugrapport (\textbf{I}ntent \textbf{T}o \textbf{P}ackage) (verpakkingsintentie) in met \texttt{reportbug wnpp}

note: type: enumerate
en: Prepare a source package
nl: Maak uw broncodepakket klaar

note: type: enumerate
en: Find a Debian Developer that will sponsor your package
nl: Zoek een ontwikkelaar van Debian die uw pakket zal sponsoren

note: type: itemize
en: Official status (when you are an experienced package maintainer):
nl: Officiële status (wanneer u een ervaren pakketonderhouder bent):

note: type: itemize
en: \textbf{Debian Maintainer (DM):}\\ Permission to upload your own packages\\ See \url{https://wiki.debian.org/DebianMaintainer}
nl: \textbf{Debian Maintainer (DM) (onderhouder van Debian):}\\ Toelating om uw eigen pakketten te uploaden\\ Zie \url{https://wiki.debian.org/DebianMaintainer}

note: type: itemize
en: \textbf{Debian Developer (DD):}\\ Debian project member; can vote and upload any package
nl: \textbf{Debian Developer (DD) (ontwikkelaar van Debian):}\\ Lid van het Debian-project; kan stemmen en elk pakket uploaden

note: type: frame{#2}
en: Things to check before asking for sponsorship
nl: Te controleren zaken voor u sponsoring vraagt

note: type: itemize
en: Debian puts \textbf{a lot of focus on quality}
nl: Debian besteedt \textbf{veel aandacht aan kwaliteit}

note: type: itemize
en: Generally, \textbf{sponsors are hard to find and busy}
nl: Algemeen \textbf{zijn sponsors moeilijk te vinden en hebben het druk}

note: type: itemize
en: Make sure your package is ready before asking for sponsorship
nl: Zorg ervoor dat uw pakket klaar is voor u om sponsoring vraagt

note: type: itemize
en: Things to check:
nl: Te controleren zaken:

note: type: itemize
en: Avoid missing build-dependencies: make sure that your package build fine in a clean \textsl{sid} \textsl{chroot}
nl: Vermijd ontbrekende build-dependencies: zorg ervoor dat uw pakket probleemloos kan gebouwd worden in een zuivere \textsl{sid} \textsl{chroot}

note: type: itemize
en: Using \texttt{pbuilder} is recommended
nl: Het gebruik van \texttt{pbuilder} is aanbevolen

note: type: itemize
en: Run \texttt{lintian -EviIL +pedantic} on your package
nl: Voer het commando \texttt{lintian -EviIL +pedantic} uit op uw pakket

note: type: itemize
en: Errors must be fixed, all other problems should be fixed
nl: Fouten moeten hersteld worden, alle ander problemen zouden opgelost moeten worden

note: type: itemize
en: Do extensive testing of your package, of course
nl: Test uiteraard uitgebreid uw pakket

note: type: itemize
en: In doubt, ask for help
nl: Vraag bij twijfel hulp

note: type: frame{#2}
en: Where to find help?
nl: Waar vindt u hulp?

note: type: frame
en: Help you will need:
nl: Hulp die u nodig zult hebben:

note: type: itemize
en: Advice and answers to your questions, code reviews
nl: Advies en antwoorden op uw vragen, nazicht van code

note: type: itemize
en: Sponsorship for your uploads, once your package is ready
nl: Sponsoring voor uw uploads wanneer uw pakket klaar is

note: type: frame
en: You can get help from:
nl: U kunt hulp krijgen bij:

note: type: textbf{#1}
en: Other members of a packaging team
nl: Andere leden van een verpakkingsteam

note: type: itemize
en: List of teams: \url{https://wiki.debian.org/Teams}
nl: Lijst van teams: \url{https://wiki.debian.org/Teams}

note: type: itemize
en: The \textbf{Debian Mentors group} (if your package does not fit in a team)
nl: De groep \textbf{Debian Mentors} (indien uw pakket niet bij een team past)

note: type: itemize
en: Mailing list: \url{debian-mentors@lists.debian.org}\\ {\small (also a good way to learn by accident)}
nl: Mailinglijst: \url{debian-mentors@lists.debian.org}\\ {\small (ook een goede manier om al doende te leren)}

note: type: itemize
en: IRC: \texttt{\#debian-mentors} on \texttt{irc.debian.org}
nl: IRC: \texttt{\#debian-mentors} op \texttt{irc.debian.org}

note: type: itemize
en: Documentation: \url{http://mentors.debian.net/intro-maintainers}
nl: Documentatie: \url{http://mentors.debian.net/intro-maintainers}

note: type: itemize
en: \textbf{Localized mailing lists} (get help in your language)
nl: \textbf{Gelokaliseerde mailinglijsten} (hulp krijgen in uw eigen taal)

note: type: itemize
en: Full list: \url{https://lists.debian.org/devel.html}
nl: Basislijst: \url{https://lists.debian.org/devel.html}

note: type: itemize
en: Or users lists: \url{https://lists.debian.org/users.html}
nl: Of gebruikerslijsten: \url{https://lists.debian.org/users.html}

note: type: frame{#2}
en: More documentation
nl: Meer documentatie

note: type: itemize
en: Debian Developers' Corner\\ \url{https://www.debian.org/devel/}\\ {\small Links to many resources about Debian development}
nl: Ontwikkelaarshoek van Debian\\ \url{https://www.debian.org/devel/}\\ {\small Links naar veel informatiebronnen over de ontwikkeling van Debian}

note: type: itemize
en: Guide for Debian Maintainers\\ \url{https://www.debian.org/doc/manuals/debmake-doc/}
nl: Gids voor onderhouders van Debian\\ \url{https://www.debian.org/doc/manuals/debmake-doc/}

note: type: itemize
en: Debian Developer's Reference\\ \url{https://www.debian.org/doc/developers-reference/}\\ {\small Mostly about Debian procedures, but also some best packaging practices (part 6)}
nl: Referentiehandleiding voor ontwikkelaars van Debian\\ \url{https://www.debian.org/doc/developers-reference/}\\ {\small Hoofdzakelijk over werkwijzen van Debian, maar ook sommige goede verpakkingsmethodes (deel 6)}

note: type: itemize
en: Debian Policy\\ \url{https://www.debian.org/doc/debian-policy/}\\
nl: Debian beleidshandboek\\ \url{https://www.debian.org/doc/debian-policy/}\\

note: type: itemize
en: {\small \begin{itemize} \item \small All the requirements that every package must satisfy \item \small Specific policies for Perl, Java, Python, \ldots \end{itemize}}
nl: {\small \begin{itemize} \item \small Alle vereisten waaraan een pakket moet voldoen \item \small Specifieke beleidsrichtlijnen voor Perl, Java, Python, \ldots \end{itemize}}

note: type: itemize
en: Ubuntu Packaging Guide\\ \url{http://developer.ubuntu.com/resources/tools/packaging/}
nl: Verpakkingshandleiding voor Ubuntu\\ \url{http://developer.ubuntu.com/resources/tools/packaging/}

note: type: frame{#2}
en: Debian dashboards for maintainers
nl: Instrumentenborden voor Debian-onderhouders

note: type: itemize
en: \textbf{Source package centric}:\\ \url{https://tracker.debian.org/dpkg}
nl: \textbf{Toegespitst op broncodepakket}:\\ \url{https://tracker.debian.org/dpkg}

note: type: itemize
en: \textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\ \url{https://qa.debian.org/developer.php?login=pkg-ruby-extras-maintainers@lists.alioth.debian.org}
nl: \textbf{Toegespitst op onderhouder/team}: Developer's Packages Overview (DDPO - Pakketoverzicht voor ontwikkelaars)\\ \url{https://qa.debian.org/developer.php?login=pkg-ruby-extras-maintainers@lists.alioth.debian.org}

note: type: itemize
en: \textbf{TODO-list oriented}: Debian Maintainer Dashboard (DMD)\\ \url{https://udd.debian.org/dmd/}
nl: \textbf{TODO-lijst georiënteerd}: Debian Maintainer Dashboard (DMD)\\ \url{https://udd.debian.org/dmd/}

note: type: frame{#2}
en: Using the Debian Bug Tracking System (BTS)
nl: Het Debian Bug Tracking System (BTS) gebruiken

note: type: itemize
en: A quite unique way to manage bugs
nl: Bugvolgsysteem - Een vrij unieke manier voor bugbeheer

note: type: itemize
en: Web interface to view bugs
nl: Webinterface voor het bekijken van bugs

note: type: itemize
en: Email interface to make changes to bugs
nl: E-mailinterface om veranderingen aan te brengen aan bugs

note: type: itemize
en: Adding information to bugs:
nl: Information toevoegen aan bugs:

note: type: itemize
en: Write to \texttt{123456@bugs.debian.org} (does not include the submitter, you need to add \texttt{123456-submitter@bugs.debian.org})
nl: Schrijf naar \texttt{123456@bugs.debian.org} (sluit de indiener niet in, voeg daarvoor \texttt{123456-submitter@bugs.debian.org} toe)

note: type: itemize
en: Changing bug status:
nl: De toestand van een bug wijzigen:

note: type: itemize
en: Send commands to \texttt{control@bugs.debian.org}
nl: Stuur commando's naar \texttt{control@bugs.debian.org}

note: type: itemize
en: Command-line interface: \texttt{bts} command in \texttt{devscripts}
nl: Commandoregelinterface: \texttt{bts}-commando in \texttt{devscripts}

note: type: itemize
en: Documentation: \url{https://www.debian.org/Bugs/server-control}
nl: Documentatie: \url{https://www.debian.org/Bugs/server-control}

note: type: itemize
en: Reporting bugs: use \texttt{reportbug}
nl: Bugs rapporteren: gebruik \texttt{reportbug}

note: type: itemize
en: Normally used with a local mail server: install \texttt{ssmtp} or \texttt{nullmailer}
nl: Gewoonlijk gebruikt met een lokale mail-server: installeer \texttt{ssmtp} of \texttt{nullmailer}

note: type: itemize
en: Or use \texttt{reportbug -\@-template}, then send (manually) to \texttt{submit@bugs.debian.org}
nl: Of gebruik \texttt{reportbug -\@-template} en stuur dan (handmatig) naar \texttt{submit@bugs.debian.org}

note: type: frame{#2}
en: Using the BTS: examples
nl: Het BTS gebruiken: voorbeelden

note: type: itemize
en: Sending an email to the bug and the submitter:\\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\#10}
nl: Een e-mail sturen naar de bug en de indiener:\\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\#10}

note: type: itemize
en: Tagging and changing the severity:\\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680227\#10}
nl: Taggen en de ernst wijzigen:\\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680227\#10}

note: type: itemize
en: Reassigning, changing the severity, retitling \ldots: \\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\#93}
nl: Opnieuw toewijzen, de ernst wijzigen, een nieuwe titel geven \ldots: \\ \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680822\#93}

note: type: itemize
en: \texttt{notfound}, \texttt{found}, \texttt{notfixed}, \texttt{fixed} are for \textbf{version-tracking} \\ See \url{https://wiki.debian.org/HowtoUseBTS\#Version\_tracking}
nl: \texttt{notfound}, \texttt{found}, \texttt{notfixed}, \texttt{fixed} zijn voor \textbf{versie-opvolging} \\ Zie \url{https://wiki.debian.org/HowtoUseBTS\#Version\_tracking}

note: type: itemize
en: Using usertags: \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;bug=642267}\\ See \url{https://wiki.debian.org/bugs.debian.org/usertags}
nl: Usertags (gebruikerslabels) gebruiken: \url{https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;bug=642267}\\ Zie \url{https://wiki.debian.org/bugs.debian.org/usertags}

note: type: itemize
en: BTS Documentation:
nl: BTS-documentatie:

note: type: frame{#2}
en: More interested in Ubuntu?
nl: Meer geïnteresseerd in Ubuntu?

note: type: itemize
en: Ubuntu mainly manages the divergence with Debian
nl: Ubuntu beheert vooral de divergentie met Debian

note: type: itemize
en: No real focus on specific packages\\ Instead, collaboration with Debian teams
nl: Geen echte focus op specifieke pakketten\\ Eerder samenwerking met Debian-teams

note: type: itemize
en: Usually recommend uploading new packages to Debian first\\ \url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}
nl: Beveelt meestal aan nieuwe pakketten eerst naar Debian te uploaden\\ \url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}

note: type: itemize
en: Possibly a better plan:
nl: Mogelijk een betere werkwijze:

note: type: itemize
en: Get involved in a Debian team and act as a bridge with Ubuntu
nl: U engageren in een Debian-team en fungeren als brug met Ubuntu

note: type: itemize
en: Help reduce divergence, triage bugs in Launchpad
nl: De divergentie helpen verkleinen, triage van bugs in Launchpad

note: type: itemize
en: Many Debian tools can help:
nl: Verschillende hulpmiddelen van Debian kunnen behulpzaam zijn:

note: type: itemize
en: Ubuntu column on the Developer's packages overview
nl: De Ubuntu-kolom op het pakketoverzicht voor ontwikkelaars

note: type: itemize
en: Ubuntu box on the Package Tracking System
nl: Ubuntu-vakje in het pakketvolgsysteem

note: type: itemize
en: Receive launchpad bugmail via the PTS
nl: Bug-e-mails uit launchpad ontvangen via het PTS

note: type: frame{#2}
en: Conclusions
nl: Conclusies

note: type: itemize
en: You now have a full overview of Debian packaging
nl: U heeft nu een volledig overzicht over verpakken voor Debian

note: type: itemize
en: But you will need to read more documentation
nl: Maar u zult meer documentatie moeten lezen

note: type: itemize
en: Best practices have evolved over the years
nl: Goede praktijken evolueerden in de loop der jaren

note: type: itemize
en: If not sure, use the \textbf{dh} packaging helper, and the \textbf{3.0 (quilt)} format
nl: Gebruik bij twijfel het verpakkingshulpprogramma \textbf{dh}\\ en de indeling \textbf{3.0 (quilt)}

note: type: frame{#2}
en: Legal stuff
nl: Juridische zaken

note: type: frame
en: {\small \textbf{This document is free software}: you can redistribute it and/or modify it under either (at your option): \hbr \begin{itemize} \item The terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\\ \url{http://www.gnu.org/licenses/gpl.html} \br \item The terms of the Creative Commons Attribution-ShareAlike 3.0 Unported License.\\ \url{http://creativecommons.org/licenses/by-sa/3.0/} \end{itemize} }
nl: {\small \textbf{Dit document is vrije software}: u kunt het verder verspreiden en/of wijzigen, onder (volgens uw voorkeur): \hbr \begin{itemize} \item De bepalingen van de GNU General Public License, zoals gepubliceerd door de Free Software Foundation, versie 3 of (volgens uw goeddunken) een recentere versie.\\ \url{http://www.gnu.org/licenses/gpl.html} \br \item De bepalingen van de Creative Commons Attribution-ShareAlike 3.0 Unported License.\\ \url{http://creativecommons.org/licenses/by-sa/3.0/} \end{itemize} }

note: type: frame{#2}
en: Contribute to this tutorial
nl: Meewerken aan deze handleiding

note: type: itemize
en: Contribute:
nl: Meewerken:

note: type: itemize
en: Provide feedback:
nl: Feedback geven:

note: type: itemize
en: {\small What should be added to this tutorial?}
nl: {\small Wat zou nog toegevoegd moeten worden aan deze handleiding?}

note: type: itemize
en: {\small What should be improved?}
nl: {\small Wat zou verbeterd moeten worden?}

note: type: section{#2}
en: Additional practical sessions
nl: Extra praktijkoefeningen

note: type: frame{#2}
en: Practical session 2: packaging GNUjump
nl: Praktijkoefening 2: GNUjump verpakken

note: type: enumerate
en: Download GNUjump 1.0.8 from \url{http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}
nl: Download GNUjump 1.0.8 van \url{http://ftp.gnu.org/gnu/gnujump/gnujump-1.0.8.tar.gz}

note: type: enumerate
en: Create a Debian package for it
nl: Creëer er een Debian-pakket voor

note: type: itemize
en: Install build-dependencies so that you can build the package
nl: De build-dependencies installeren, zodat u het pakket kunt bouwen

note: type: itemize
en: Fix bugs
nl: Bugs repareren

note: type: itemize
en: Get a basic working package
nl: Een basaal werkend pakket bekomen

note: type: itemize
en: Finish filling \texttt{debian/control} and other files
nl: Afronden met het invullen van \texttt{debian/control} en andere bestanden

note: type: enumerate
en: Enjoy
nl: Veel plezier

note: type: frame{#2}
en: Practical session 2: packaging GNUjump (tips)
nl: Praktijkoefening 2: GNUjump verpakken (tips)

note: type: itemize
en: To get a basic working package, use \texttt{dh\_make}
nl: Gebruik \texttt{dh\_make} om een basaal werkend pakket te bekomen

note: type: itemize
en: To start with, creating a \textsl{1.0} source package is easier than \textsl{3.0 (quilt)} (change that in \texttt{debian/source/format})
nl: Om te beginnen is het creëren van een \textsl{1.0} broncodepakket makkelijker dan \textsl{3.0 (quilt)} (pas dat aan in \texttt{debian/source/format})

note: type: itemize
en: To search for missing build-dependencies, find a missing file, and use \texttt{apt-file} to find the missing package
nl: Ontbrekende bouwvereisten (build-dependencies) vinden: zoek welk bestand ontbreekt en gebruik \texttt{apt-file} om ontbrekende pakket te vinden

note: type: itemize
en: If you encounter that error:
nl: Indien u op de volgende foutmelding stoot:

note: type: itemize
en: You need to add \texttt{-lm} to the linker command line:\\ Edit \texttt{src/Makefile.am} and replace
nl: moet u \texttt{-lm} toevoegen aan de commandoregel voor de linker:\\ Bewerk \texttt{src/Makefile.am} en vervang

note: type: itemize
en: by
nl: door

note: type: itemize
en: Then run \texttt{autoreconf -i}
nl: En geef daarna het commando \texttt{autoreconf -i}

note: type: frame{#2}
en: Practical session 3: packaging a Java library
nl: Praktijkoefening 3: een Java-bibliotheek verpakken

note: type: enumerate
en: Take a quick look at some documentation about Java packaging:\\
nl: Bekijk snel enige documentatie over het verpakken van Java:\\

note: type: enumerate
en: Download IRClib from \url{http://moepii.sourceforge.net/}
nl: Download IRClib van \url{http://moepii.sourceforge.net/}

note: type: enumerate
en: Package it
nl: Verpak het

note: type: frame{#2}
en: Practical session 4: packaging a Ruby gem
nl: Praktijkoefening 4: een Ruby gem verpakken

note: type: enumerate
en: Take a quick look at some documentation about Ruby packaging:\\
nl: Bekijk snel enige documentatie over het verpakken van Ruby:\\

note: type: itemize
en: \texttt{gem2deb(1)}, \texttt{dh\_ruby(1)} (in the \texttt{gem2deb} package)
nl: \texttt{gem2deb(1)}, \texttt{dh\_ruby(1)} (in het pakket \texttt{gem2deb})

note: type: enumerate
en: Create a basic Debian source package from the \texttt{peach} gem:\\ \texttt{gem2deb peach}
nl: Maak een basaal Debian-broncodepakket van de \texttt{peach}-gem:\\ \texttt{gem2deb peach}

note: type: enumerate
en: Improve it so that it becomes a proper Debian package
nl: Verbeter het, zodat het een volwaardig Debian-pakket wordt

note: type: frame{#2}
en: Practical session 5: packaging a Perl module
nl: Praktijkoefening 5: een Perl-module verpakken

note: type: enumerate
en: Take a quick look at some documentation about Perl packaging:\\
nl: Bekijk snel enige documentatie over het verpakken van Perl:\\

note: type: itemize
en: \texttt{dh-make-perl(1)}, \texttt{dpt(1)} (in the \texttt{pkg-perl-tools} package)
nl: \texttt{dh-make-perl(1)}, \texttt{dpt(1)} (in het pakket \texttt{pkg-perl-tools})

note: type: enumerate
en: Create a basic Debian source package from the \texttt{Acme} CPAN distribution:\\ \verb|dh-make-perl --cpan Acme|
nl: Maak een basaal Debian-broncodepakket van de \texttt{Acme} CPAN-distributie:\\ \verb|dh-make-perl --cpan Acme|

note: type: section{#2}
en: Answers to practical sessions
nl: Oplossingen voor de praktijkoefeningen

note: type: center
en: \LARGE Answers to
nl: \LARGE Oplossingen voor de

note: type: center
en: [0.5em] practical sessions
nl: [0.5em] praktijkoefeningen

note: type: frame{#2}
en: Fetching the source
nl: De broncode ophalen

note: type: itemize
en: Use dget to download the \texttt{.dsc} file:\\ {\small \texttt{dget http://cdn.debian.net/debian/pool/main/g/grep/grep\_2.12-2.dsc}}
nl: Gebruik dget om het \texttt{.dsc}-bestand te downloaden:\\ {\small \texttt{dget http://cdn.debian.net/debian/pool/main/g/grep/grep\_2.12-2.dsc}}

note: type: itemize
en: If you have \texttt{deb-src} for a Debian release that has \texttt{grep} version 2.12-2 (find out on \url{https://tracker.debian.org/grep}), you can use: \texttt{apt-get source grep=2.12-2}\\ or \texttt{apt-get source grep/release} (e.g. \texttt{grep/stable})\\ or, if you feel lucky: \texttt{apt-get source grep}
nl: Indien u een \texttt{deb-src}-regel heeft voor een release van Debian met daarin \texttt{grep} versie 2.12-2 (zoek dit uit op \url{https://tracker.debian.org/grep}), kunt u \texttt{apt-get source grep=2.12-2} gebruiken\\ of \texttt{apt-get source grep/release} (bijv. \texttt{grep/stable})\\ of, indien u geluk heeft: \texttt{apt-get source grep}

note: type: itemize
en: The \texttt{grep} source package is composed of three files:
nl: Het broncodepakket \texttt{grep} bestaat uit drie bestanden:

note: type: itemize
en: This is typical of the "3.0 (quilt)" format.
nl: Dit is typerend voor de indeling "3.0 (quilt)".

note: type: itemize
en: If needed, uncompress the source with\\ \texttt{dpkg-source -x grep\_2.12-2.dsc}
nl: Pak indien nodig de broncode uit met\\ \texttt{dpkg-source -x grep\_2.12-2.dsc}

note: type: frame{#2}
en: Looking around and building the package
nl: Rondkijken en het pakket bouwen

note: type: enumerate
en: Look at the files in \texttt{debian/}
nl: Bekijk de bestanden in \texttt{debian/}

note: type: itemize
en: According to \texttt{debian/control}, this package only generates one binary package, named \texttt{grep}.
nl: Volgens \texttt{debian/control} wordt uit dit pakket slechts één binair pakket gegenereerd, genaamd \texttt{grep}.

note: type: itemize
en: According to \texttt{debian/rules}, this package is typical of \textsl{classic} debhelper packaging, without using \textsl{CDBS} or \textsl{dh}. One can see the various calls to \texttt{dh\_*} commands in \texttt{debian/rules}.
nl: Volgens \texttt{debian/rules} is dit pakket typerend voor een \textsl{klassiek} verpakken met debhelper zonder \textsl{CDBS} of \textsl{dh} te gebruiken. Men kan de verschillende aanroepen van \texttt{dh\_*}-commando's zien in \texttt{debian/rules}.

note: type: itemize
en: Use \texttt{apt-get build-dep grep} to fetch the build-dependencies
nl: Gebruik \texttt{apt-get build-dep grep} om de build-dependencies (bouwvereisten) op te halen

note: type: itemize
en: Then \texttt{debuild} or \texttt{dpkg-buildpackage -us -uc} (Takes about 1 min)
nl: Daarna \texttt{debuild} of \texttt{dpkg-buildpackage -us -uc} (Neemt ongeveer 1 min in beslag)

note: type: frame{#2}
en: Editing the changelog
nl: Het changelog-bestand bewerken

note: type: itemize
en: \texttt{debian/changelog} is a text file. You could edit it and add a new entry manually.
nl: \texttt{debian/changelog} is a tekstbestand. U kunt het handmatig bewerken om er een nieuw item aan toe te voegen.

note: type: itemize
en: Or you can use \texttt{dch -i}, which will add an entry and open the editor
nl: Of u kunt \texttt{dch -i} gebruiken, wat een item zal toevoegen en de editor zal openen

note: type: itemize
en: The name and email can be defined using the \texttt{DEBFULLNAME} and \texttt{DEBEMAIL} environment variables
nl: De naam en e-mail kunnen gedefinieerd worden met de omgevingsvariabelen \texttt{DEBFULLNAME} en \texttt{DEBEMAIL}

note: type: itemize
en: After that, rebuild the package: a new version of the package is built
nl: Bouw nadien het pakket opnieuw: een nieuwe versie van het pakket wordt gebouwd

note: type: itemize
en: Package versioning is detailed in section 5.6.12 of the Debian policy\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}
nl: Het versiebeheer van pakketten wordt uitgelegd in sectie 5.6.12 van het beleidshandboek van Debian\\ \url{https://www.debian.org/doc/debian-policy/ch-controlfields}

note: type: frame{#2}
en: Disabling Perl regexp support and rebuilding
nl: Perl-regexp-ondersteuning uitzetten en herbouwen

note: type: itemize
en: Check with \texttt{./configure -{}-help}: the option to disable Perl regexp is \texttt{-{}-disable-perl-regexp}
nl: Controleer met \texttt{./configure -{}-help}: de optie om Perl regexp uit te zetten is \texttt{-{}-disable-perl-regexp}

note: type: itemize
en: Edit \texttt{debian/rules} and find the \texttt{./configure} line
nl: Bewerk \texttt{debian/rules} en zoek de regel \texttt{./configure}

note: type: itemize
en: Add \texttt{-{}-disable-perl-regexp}
nl: Voeg \texttt{-{}-disable-perl-regexp} toe

note: type: itemize
en: Rebuild with \texttt{debuild} or \texttt{dpkg-buildpackage -us -uc}
nl: Bouw opnieuw met \texttt{debuild} of \texttt{dpkg-buildpackage -us -uc}

note: type: frame{#2}
en: Comparing and testing the packages
nl: De pakketten vergelijken en testen

note: type: itemize
en: Compare the binary packages: \texttt{debdiff ../*changes}
nl: Vergelijk de binaire pakketten: \texttt{debdiff ../*changes}

note: type: itemize
en: Compare the source packages: \texttt{debdiff ../*dsc}
nl: Vergelijk de broncodepakketten: \texttt{debdiff ../*dsc}

note: type: itemize
en: Install the newly built package: \texttt{debi}\\ Or \texttt{dpkg -i ../grep\_<TAB>}
nl: Installeer het net gebouwde pakket: \texttt{debi}\\ Of \texttt{dpkg -i ../grep\_<TAB>}

note: type: itemize
en: \texttt{grep -P foo} no longer works!
nl: \texttt{grep -P foo} werkt niet langer!

note: type: frame
en: Reinstall the previous version of the package:
nl: Herinstalleer de vroegere versie van het pakket:

note: type: itemize
en: \texttt{apt-get install -{}-reinstall grep=2.6.3-3} \textit{(= previous version)}
nl: \texttt{apt-get install -{}-reinstall grep=2.6.3-3} \textit{(= vroegere versie)}

note: type: frame{#2}
en: Step by step\ldots
nl: Stap voor stap\ldots

note: type: itemize
en: Type of package: single binary (for now)
nl: Type pakket: enkel binair (momenteel)

note: type: frame{#2}
en: Step by step\ldots (2)
nl: Stap voor stap\ldots (2)

note: type: itemize
en: Look at \texttt{debian/changelog}, \texttt{debian/rules}, \texttt{debian/control}\\ (auto-filled by \textbf{dh\_make})
nl: Kijk naar \texttt{debian/changelog}, \texttt{debian/rules}, \texttt{debian/control}\\ (automatisch ingevuld door \textbf{dh\_make})

note: type: itemize
en: In \texttt{debian/control}:\\ \texttt{Build-Depends: debhelper (>= 7.0.50~), autotools-dev}\\ Lists the \textsl{build-dependencies} = packages needed to build the package
nl: In \texttt{debian/control}:\\ \texttt{Build-Depends: debhelper (>= 7.0.50~), autotools-dev}\\ Vermeldt de \textsl{build-dependencies} = pakketten, nodig om pakket te bouwen

note: type: itemize
en: Try to build the package as-is with \texttt{debuild} (thanks to \textbf{dh} magic)
nl: Probeer het pakket ongewijzigd te bouwen met \texttt{debuild} (dankzij \textbf{dh}-magie)

note: type: itemize
en: And add build-dependencies, until it builds
nl: En voeg build-dependencies toe tot het gebouwd kan worden

note: type: itemize
en: Hint: use \texttt{apt-cache search} and \texttt{apt-file} to find the packages
nl: Suggestie: gebruik \texttt{apt-cache search} en \texttt{apt-file} om de pakketten te zoeken

note: type: itemize
en: Example:
nl: Voorbeeld:

note: type: itemize
en: $\rightarrow$ Add \textbf{libsdl1.2-dev} to Build-Depends and install it.
nl: $\rightarrow$ Voeg \textbf{libsdl1.2-dev} toe aan Build-Depends en installeer het.

note: type: itemize
en: Better: use \textbf{pbuilder} to build in a clean environment
nl: Beter: gebruik \textbf{pbuilder} om in een zuivere omgeving te bouwen

note: type: frame{#2}
en: Step by step\ldots (3)
nl: Stap voor stap\ldots (3)

note: type: itemize
en: Required build-dependencies are \texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev}
nl: Vereiste build-dependencies zijn \texttt{libsdl1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev}

note: type: itemize
en: Then, you will probably run into another error:
nl: Dan zult u wellicht tegen een andere foutmelding aanlopen:

note: type: itemize
en: This problem is caused by bitrot: gnujump has not been adjusted following linker changes.
nl: Dit probleem wordt veroorzaakt door bitrot: gnujump werd niet aangepast na linker-wijzigingen.

note: type: itemize
en: If you are using source format version \textbf{1.0}, you can directly change upstream sources.
nl: Indien u indelingsversie \textbf{1.0} voor broncode gebruikt, kunt u de bovenstroomse broncode rechtstreeks aanpassen.

note: type: itemize
en: Edit \texttt{src/Makefile.am} and replace
nl: Bewerk \texttt{src/Makefile.am} en vervang

note: type: frame{#2}
en: Step by step\ldots (4)
nl: Stap voor stap\ldots (4)

note: type: itemize
en: If you are using source format version \textbf{3.0 (quilt)}, use \texttt{quilt} to prepare a patch. (see \url{https://wiki.debian.org/UsingQuilt})
nl: Als u broncode-indelingsversie \textbf{3.0 (quilt)} gebruikt, gebruik dan \texttt{quilt} om een patch klaar te maken. (zie \url{https://wiki.debian.org/UsingQuilt})

note: type: itemize
en: Since \texttt{src/Makefile.am} was changed, autoreconf must be called during the build. To do that automatically with \texttt{dh}, change the \texttt{dh} call in \texttt{debian/rules} from: \texttt{dh \$\@ -{}-with autotools-dev}\\ to: \texttt{dh \$\@ -{}-with autotools-dev -{}-with autoreconf}
nl: Omdat \texttt{src/Makefile.am} gewijzigd werd, is aanroep van autoreconf bij bouwen nodig. Dat automatisch doen met \texttt{dh} kan door \texttt{dh}-aanroep in \texttt{debian/rules} te wijzigen van: \texttt{dh \$\@ -{}-with autotools-dev}\\ naar: \texttt{dh \$\@ -{}-with autotools-dev -{}-with autoreconf}

note: type: frame{#2}
en: Step by step\ldots (5)
nl: Stap voor stap\ldots (5)

note: type: itemize
en: The package should now build fine.
nl: Nu zou het pakket probleemloos gebouwd moeten kunnen worden.

note: type: itemize
en: Use \texttt{debc} to list the content of the generated package, and \texttt{debi} to install it and test it.
nl: Gebruik \texttt{debc} om de inhoud van het gegenereerde pakket op te lijsten en \texttt{debi} om het te installeren en te testen.

note: type: itemize
en: Test the package with \texttt{lintian}
nl: Test het pakket met \texttt{lintian}

note: type: itemize
en: While not a strict requirement, it is recommended that packages uploaded to Debian are \textsl{lintian-clean}
nl: Hoewel het geen strikte vereiste is, is het aanbevolen dat pakketten die naar Debian geüpload worden, \textsl{lintian-clean} zijn

note: type: itemize
en: More problems can be listed using \texttt{lintian -EviIL +pedantic}
nl: Meer problemen zijn te vinden met \texttt{lintian -EviIL +pedantic}

note: type: itemize
en: Some hints:
nl: Enkele hints:

note: type: itemize
en: Remove the files that you don't need in \texttt{debian/}
nl: Verwijder de bestanden die u niet nodig heeft, uit \texttt{debian/}

note: type: itemize
en: Fill in \texttt{debian/control}
nl: Vul \texttt{debian/control} in

note: type: itemize
en: Install the executable to \texttt{/usr/games} by overriding \texttt{dh\_auto\_configure}
nl: Installeer het uitvoerbaar programma in \texttt{/usr/games} door \texttt{dh\_auto\_configure} te overschrijven

note: type: itemize
en: Use \textsl{hardening} compiler flags to increase security.\\ See \url{https://wiki.debian.org/Hardening}
nl: Gebuik \textsl{hardening}-compilatievlaggen voor verhoogde veiligheid.\\ Zie \url{https://wiki.debian.org/Hardening}

note: type: frame{#2}
en: Step by step\ldots (6)
nl: Stap voor stap\ldots (6)

note: type: itemize
en: Compare your package with the one already packaged in Debian:
nl: Vergelijk uw pakket met het pakket dat reeds voor Debian verpakt is:

note: type: itemize
en: It splits the data files to a second package, that is the same across all architectures ($\rightarrow$ saves space in the Debian archive)
nl: Dit splits de gegevensbestanden af in een tweede pakket dat identiek is voor alle architecturen ($\rightarrow$ bespaart ruimte in het Debian-archief)

note: type: itemize
en: It installs a .desktop file (for the GNOME/KDE menus) and also integrates into the Debian menu
nl: Het installeert een .desktop-bestand (voor het menu van GNOME/KDE) en geeft het ook een plaats in het Debian-menu

note: type: itemize
en: It fixes a few minor problems using patches
nl: Het repareert enkele kleinere problemen met patches

note: type: itemize
en: Create a basic source package: \texttt{jh\_makepkg}
nl: Creëer een basaal broncodepakket: \texttt{jh\_makepkg}

note: type: itemize
en: Library
nl: Bibliotheek

note: type: itemize
en: None
nl: Geen

note: type: itemize
en: Default Free compiler/runtime
nl: Standaard vrije compiler/runtime

note: type: itemize
en: Look at and fix \texttt{debian/*}
nl: Kijk naar en repareer \texttt{debian/*}

note: type: itemize
en: \texttt{dpkg-buildpackage -us -uc} or \texttt{debuild}
nl: \texttt{dpkg-buildpackage -us -uc} of \texttt{debuild}

note: type: itemize
en: \texttt{lintian}, \texttt{debc}, etc.
nl: \texttt{lintian}, \texttt{debc}, enz.

note: type: itemize
en: Compare your result with the \texttt{libirclib-java} source package
nl: Vergelijk uw resultaat met het broncodepakket \texttt{libirclib-java}

note: type: itemize
en: Downloads the gem from rubygems.org
nl: Downloadt het gem van rubygems.org

note: type: itemize
en: Creates a suitable .orig.tar.gz archive, and untar it
nl: Creëert een geschikt .orig.tar.gz-archief en pakt het uit

note: type: itemize
en: Initializes a Debian source package based on the gem's metadata
nl: Initialiseert een Debian broncodepakket op basis van de gem-metadata

note: type: itemize
en: Named \texttt{ruby-\textsl{gemname}}
nl: Genaamd \texttt{ruby-\textsl{gemnaam}}

note: type: itemize
en: Tries to build the Debian binary package (this might fail)
nl: Tracht het Debian binaire pakket te bouwen (dit kan mislukken)

note: type: frame
en: \texttt{dh\_ruby} (included in \textsl{gem2deb}) does the Ruby-specific tasks:
nl: \texttt{dh\_ruby} (zit in \textsl{gem2deb}) en voert de Ruby-specifieke taken uit:

note: type: itemize
en: Build C extensions for each Ruby version
nl: C-uitbreidingen bouwen voor elke Ruby-versie

note: type: itemize
en: Copy files to their destination directory
nl: Bestanden naar hun doelmap kopiëren

note: type: itemize
en: Update shebangs in executable scripts
nl: shebangs in uitvoerbare scripts updaten

note: type: itemize
en: Run tests defined in \texttt{debian/ruby-tests.rb}, \texttt{debian/ruby-tests.rake}, or \texttt{debian/ruby-test-files.yaml}, as well as various other checks
nl: Testen uitvoeren die gedefinieerd worden in \texttt{debian/ruby-tests.rb}, \texttt{debian/ruby-tests.rake}, of \texttt{debian/ruby-test-files.yaml}, evenals verschillende andere controles

note: type: frame
en: Improve the generated package:
nl: Verbeter het gegenereerde pakket:

note: type: itemize
en: Run \texttt{debclean} to clean the source tree. Look at \texttt{debian/}.
nl: Voer \texttt{debclean} uit om de broncodeboom op te ruimen. Kijk naar \texttt{debian/}.

note: type: itemize
en: \texttt{changelog} and \texttt{compat} should be correct
nl: \texttt{changelog} en \texttt{compat} zouden correct moeten zijn

note: type: itemize
en: Edit \texttt{debian/control}: improve \texttt{Description}
nl: Bewerk \texttt{debian/control}: verbeter \texttt{Description}

note: type: itemize
en: Write a proper \texttt{copyright} file based on the upstream files
nl: Schrijf een passend \texttt{copyright}-bestand op basis van de bovenstroomse bestanden

note: type: itemize
en: Compare your package with the \texttt{ruby-peach} package in the Debian archive
nl: Vergelijk uw pakket met het pakket \texttt{ruby-peach} uit het Debian-archief

note: type: itemize
en: Downloads the tarball from the CPAN
nl: Downloadt het tar-archief uit het CPAN

note: type: itemize
en: Creates a suitable .orig.tar.gz archive, and untars it
nl: Creëert een passend .orig.tar.gz-archief en pakt het uit

note: type: itemize
en: Initializes a Debian source package based on the distribution's metadata
nl: Initialiseert een Debian broncodepakket, gebaseerd op de metagegevens van de distributie

note: type: itemize
en: Named \texttt{lib\textsl{distname}-perl}
nl: Genaamd \texttt{lib\textsl{distnaam}-perl}

note: type: itemize
en: \texttt{debian/changelog}, \texttt{debian/compat}, \texttt{debian/libacme-perl.docs}, and \texttt{debian/watch} should be correct
nl: \texttt{debian/changelog}, \texttt{debian/compat}, \texttt{debian/libacme-perl.docs} en \texttt{debian/watch} zouden correct moeten zijn

note: type: itemize
en: Edit \texttt{debian/control}: improve \texttt{Description}, and remove boilerplate at the bottom
nl: Bewerk \texttt{debian/control}: verbeter \texttt{Description} en verwijder de standaardtekst onderaan

note: type: itemize
en: Edit \texttt{debian/copyright}: remove boilerplate paragraph at the top, add years of copyright to the \texttt{Files:\hspace{0.3em}*} stanza
nl: Bewerk \texttt{debian/copyright}: verwijder de paragraaf met standaardtekst bovenaan, voeg jaren van copyright toe aan de \texttt{Files:\hspace{0.3em}*} stanza
