Jak zostać

deweloperem Debiana

Dariusz Dwornikowski

DM, Debian Games Team, Debian Poznań

Asystent w Instytucie Informatyki PUT

Projekt Debian

  • Od 1993 roku
  • Niezależny od organizacji i firm
  • Demokracja i "do-ocracy"
  • Social Contract and Freedom
  • Tysiące osób
  • Nacisk na jakość

Trzy gałęzie

Stable (aktualnie Wheezy)

Testing (następne stable Jessie)

Unstable (sid)

Siedem wydań (do tej pory)

Sukcesy

System operacyjny dla ISS ( ogłoszenie )

Razem z pochodnymi najpopularnijszy na DistroWatch

Domyślny system RaspberryPI (Raspbian)

Podstawa SteamOS

Definicja open source oparta na DFSG

Podstawa dla ponad 300 dystrybucji

Ubuntu (Kubuntu, Xubuntu, Edubuntu...)

Linux Mint

Raspian

SteamOS

Knoppix

Elementary OS

Dlaczego warto dołączyć

Dla nauki i rozwoju

Idealizm

Doświadczenia (wpis w CV)

Typy członkostwa

  • Debian Contributor
  • Debian Maintainer
  • Debian Developer

Debian Contributor

Nieoficjalny typ członkostwa

Zgłaszanie błędów

Upload sponsorowanych pakietów

Posyłanie łatek

Tworzenie debtags i wgrywanie zrzutów

Edycja wiki i tłumaczenia

Debian Maintainer

Oficjalny status (DM)

W kręgu zaufania (klucz gpg)

Prawa do uploadu wybranych pakietów

Debian Developer

Konto w LDAP w debian.org

email@debian.org

Prawo głosu !

Prawo uploadu, sponsorowania !

Jak pomagać?

Paczkowanie

Tłumaczenia

Inne aktywności

Co paczkować?

Nie własny soft

Nowy pakiet

Pakiet, który pragnie miłości

Work Needing and Prospective Packages

wnpp.debian.org lub tutaj

apt-get install how-can-i-help

tdi@blackstar ~ $ how-can-i-help --old
======  How can you help?  (doc: http://wiki.debian.org/how-can-i-help ) ======

Packages where help is needed, including orphaned ones (from WNPP):
 - apt-rdepends - http://bugs.debian.org/487125 - O (Orphaned)
 - libofa - http://bugs.debian.org/628474 - O (Orphaned)
 - makedev - http://bugs.debian.org/543592 - O (Orphaned)
 - orbit2 - http://bugs.debian.org/738869 - O (Orphaned)
 - pristine-tar - http://bugs.debian.org/737871 - O (Orphaned)
 - sane-backends-extras - http://bugs.debian.org/688532 - O (Orphaned)
 - stdeb - http://bugs.debian.org/739233 - O (Orphaned)
 ...

        

Jaki pakiet wybrać na początek?

  • Nieskomplikowany
  • Niewielki
  • Z "żywym" upstream
  • Osierocony (O) lub do adopcji (RFA)
  • Taki, którego używamy, albo chociaż łatwo da się testować

Oznaczamy chęć paczkowania


To: control@bugs.debian.org
Subject: 

retitle 3117 ITA: crashme -- Stress tests operating system stability
owner 3117 !
thanks
        

Ewentualnie używamy pakietu reportbug lub reportbug-ng

Więcej o Debian BTS control server

Zakładamy klucz GPG

Typ: RSA

Długość klucza: 4096


cat ~/.gnupg/gpg.conf
personal-digest-preferences SHA256
cert-digest-algo SHA256
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 \ 
AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
        

gpg --gen-key
gpg --keyserver subkeys.pgp.net --send-key KEYID
        
Link: Creating a new GPG key

Zapisujemy się na listy

debian-mentors - pomoc dla nowych w paczkowaniu

debian-devel - techniczne aspekty, główna lista

debian-devel-announce - ogłoszenia związane z politykami itd

Uczymy się Code of conduct

Skąd wziąć aktualny pakiet źródłowy ?

debsnap pakiet pobierze wszystkie stare wersje pakietu

apt-get source pakiet pobierze aktualny dla dystrybucji

Z git/svn

Struktura pakietu źródłowego

Pliki źródłowe + katalog debian/

control - informacje o pakiecie i pakietach binarnych


Source: kerneltop
Section: devel
Priority: optional
Maintainer: Dariusz Dwornikowski <dariusz.dwornikowski@cs.put.poznan.pl>
Build-Depends: debhelper (>= 9), autotools-dev
Standards-Version: 3.9.5
Homepage: http://www.infradead.org/~rdunlap/src/
Vcs-Git: git://anonscm.debian.org/collab-maint/kerneltop.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/kerneltop.git


Package: kerneltop
Architecture: linux-any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: shows Linux kernel function usage in a style like top
 kerneltop shows Linux kernel function information usage (modules
 not included) like top do for process, and is derived from
 readprofile.
 .
 It needs profiling enabled on kernel on boot time.
          

copyright - licencje plików źródłowych w formacie DEP-5

Author: Author Name <author.name@example.com> 
Download: http://example.com/package 
Files: *
Copyright: 2002-2013 Author Name <author.name@example.com> 
License: GPL-2+
 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation; either version 2
 of the License, or (at your option) any later version.
 .
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 GNU General Public License for more details.
 .
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 .
 On Debian systems, the complete text of the GNU General Public License
 can be found in /usr/share/common-licenses/GPL-2 file.
          

changelog - dziennik zmian z wersji na wersję


kerneltop (0.91-2) unstable; urgency=medium

  * Updated architecture to linux-any (Closes: #745197)
  * Added patch to fix display 64bit addresses (Closes: #686791)
  * Added patch to etext on 64 bit systems
  * Fixed hardening hardening-no-relro and hardening-no-fortify-functions
  * Added VCS fields to d/control

 -- Dariusz Dwornikowski <dariusz.dwornikowski@cs.put.poznan.pl>  Sun, 13 Apr 2014 20:04:35 +0200

kerneltop (0.91-1) unstable; urgency=medium

  * New maintainer (closes: #729381)
  * Migration to dh 
  * Updated copyright and FSF address
  * Migration to format 3.0
  * Restored proper versioning
  * New upstream version
  * Updated project homepage
  * Patched makefile for hardening

 -- Dariusz Dwornikowski <dariusz.dwornikowski@cs.put.poznan.pl>  Fri, 27 Dec 2013 07:50:33 +0100
          

rules - reguły budowania pakietu

#!/usr/bin/make -f
%:
  dh $@  --with autotools-dev

override_dh_auto_install:
  cp -p kerneltop $(CURDIR)/debian/kerneltop/usr/bin

          
#!/usr/bin/make -f
%:
  dh $@  --with autoreconf

override_dh_auto_build:
  dh_auto_build -- LDFLAGS="$(LDFLAGS) -lm"

override_dh_installchangelogs:
  dh_installchangelogs
  cp ChangeLog-20090517 debian/viewnior/usr/share/doc/viewnior/changelog
  gzip -9 debian/viewnior/usr/share/doc/viewnior/changelog

          

Budujemy pakiet

debuild (-us -uc - bez podpisu)

dpkg-deb: building package `kerneltop' in `../kerneltop_0.91-2_amd64.deb'.
 dpkg-genchanges  >../kerneltop_0.91-2_amd64.changes
dpkg-genchanges: not including original source code in upload
 dpkg-source --after-build kerneltop
dpkg-source: info: unapplying 01-makefile-include-cflags.patch
dpkg-source: info: unapplying 03-adapt-printing-alignment-to-32-64bit-addresses.patch
dpkg-source: info: unapplying 02-fix-etext-on-64bit-system.patch
dpkg-buildpackage: binary and diff upload (original source NOT included)
Now running lintian...
P: kerneltop source: debian-watch-may-check-gpg-signature
P: kerneltop: no-upstream-changelog
Finished running lintian.
          

Sprawdzamy jakość

lintian

statyczna analiza pakietu

odpala się przy budowaniu

Now running lintian...
P: kerneltop source: debian-watch-may-check-gpg-signature
P: kerneltop: no-upstream-changelog
Finished running lintian.
          


$ cat ~/.config/lintian/lintianrc
pedantic=yes
display-info=yes
          

pbuilder

budowanie pakietów w czystym chroocie

sprawdzenie zależności budowania

alternatywa z copy-on-write - cowbuilder

cowbuilder/pbuilder --build pakiet.dsc

piuparts

testowanie instalacji

testowanie uaktualnienia pakietu

puiparts pakiet.dsc

Jak wgrać pakiet do Debiana ?

Sami nie możemy (póki co :) )

Instytucja sponsoringu/mentoringu

mentors.debian.org

Zakładamy konto na mentors.debian.org i wgrywamy swój klucz GPG

Wgrywamy pakiet na mentors

$ cat ~/.dput.cf
[mentors]
fqdn = mentors.debian.net
incoming = /upload
method = http
allow_unsigned_uploads = 0
progress_indicator = 2
# Allow uploads for UNRELEASED packages
allowed_distributions = .*

          

dput mentors kerneltop_0.91-2_amd64.changes
          

Zgłaszamy błąd RFS

Subject: RFS: tanglet/1.2.2-1 [ITA]

Package: sponsorship-requests
Severity: normal

  Dear mentors,

  I am looking for a sponsor for my package "tanglet"

 * Package name    : tanglet
   Version         : 1.2.2-1
   Upstream Author : Graeme Gott 
 * URL             : http://gottcode.org/tanglet/
 * License         : GPL-2+
   Section         : games

  It builds those binary packages:

    tanglet    - single player word finding game based on Boggle
    tanglet-data - single player word finding game based on Boggle - data files

  To access further information about this package, please visit the following URL:
  http://mentors.debian.net/package/tanglet
  Alternatively, one can download the package with dget using this command:
    dget -x http://mentors.debian.net/debian/pool/main/t/tanglet/tanglet_1.2.2-1.dsc
  More information about *tanglet* can be obtained from http://gottcode.org/tanglet/.

  Changes since the last upload:

  * Imported Upstream version 1.2.2
  * Added keywords to desktop file and menu entry (Closes: #738038)
  * Updated copyright to DEP-5
  * Added VCS fields to d/control
  * Watch file fixed
  * Migrated to dh
  * Compat changed to 9, bump standards to 3.9.5
  * Updated manpage (Closes: #617539)
  * New maintainer (Closes: #746458)
  * Split packages to tanglet-data and tanglet

  Regards,
   Dariusz Dwornikowski
          

Co dalej ?

Czekamy na komentarze sponsora

Poprawiamy

Sponsor wgrywa pakiet do Debiana

Lifetime pakietu

Pakiet ląduje w unstable (sid)

Po 5 dniach wpada do testing (aktualnie jessie)

Gdy nadejdzie freeze, a pakiet nie ma błędów RC, wpada do stable

Zostaliśmy maintainerem pakietu

...with great power there must also come -- great responsibility!

Zamykanie błędów

Wgrywanie nowych wersji

Praca z upstream

Praca w projekcie

Debian PTS (Package Tracking System)

Np. http://packages.qa.debian.org/k/kerneltop.html

DDPO - Debian Developer Packages Overview

Np. http://qa.debian.org/developer.php?login=dariusz.dwornikowski%40cs.put.poznan.pl

Aplikujemy o DM

Pokazaliśmy, że coś umiemy

Mamy kilka pakietów pod sobą

Znamy jednego DD

Mamy to przemyślane

Poznajemy DD i prosimy od podpisanie klucza

W Poznaniu jest aktualnie 1

Szukamy sobie DD w bazie

Piszemy deklarację chęci zostania DM

Deklaracja musi być podpisana naszym kluczem

Wysyłamy na listę debian-newmaint

Subject: DM application of <your name>
This is my declaration of intent to become a Debian Maintainer
<URL:http://wiki.debian.org/DebianMaintainer>.
I have read the Social Contract, Debian Free Software Guidelines and
Debian Machine Usage Policy and agree with all of them.
Currently, I maintain the packages TWOJE PAKIETY
and I co‐maintain the packages PAKIETY 
My GnuPG key ID KLUCZA is signed by the Debian Developer IMIE I NAZWISKO DD
I look forward to becoming a Debian Maintainer. Thanks for your attention.
          

Prosimy DD o wsparcie kandydatury

Ktoś kto sponsorował nam pakiety

Ktoś kto wie co umiemy

Tworzymy changeset do jetringu podpisów (instrukcje)

Miesiąc później jesteśmy DM

Teraz DD może nadać nam prawa do uploadu wybranych pakietów

Co robić dalej ?

Założyć konto na Alioth.debian.org

Zapisać się do zespołu paczkującego np. Debian Games, Debian Science, itd lista zespołów

Zapisać się do projektu collab-maint

Nauczyć się git buildpackage

Wejść na kanały IRC: #debian, #debian-mentors na irc.debian.org

Linki

Debian New Maintainer Guide

Introduction to Debian packaging

Debian Policy

Packaging with Git

Autotools tutorial

Dziękuję za uwagę

Kontakt

Grupa Debian Poznań

email: dariusz(dot)dwornikowski@cs.put.poznan.pl

IRC: tdi@{freenode, OFTC}

Prezentacja: github.com/tdi/piwoX-talk/