From: Joerg Jaspert Date: Sun, 12 Aug 2012 14:17:24 +0000 (+0200) Subject: Merge remote-tracking branch 'ansgar/pu/multiarchive-2' X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=commitdiff_plain;h=4c8642c5f820359eadb2775eb920ff08e91bbaaf;hp=3e9444b115dcf84502c59ac391faf718c03120c1 Merge remote-tracking branch 'ansgar/pu/multiarchive-2' * ansgar/pu/multiarchive-2: daklib/archive.py: session → self.session Signed-off-by: Joerg Jaspert --- diff --git a/config/debian/common b/config/debian/common index a785db58..a2f2877a 100644 --- a/config/debian/common +++ b/config/debian/common @@ -80,13 +80,14 @@ function make_buildd_dir () { # Process (oldstable)-proposed-updates "NEW" queue function punew_do() { local queue="$1" + local qdir="$2" date -u -R >> REPORT dak process-policy "${queue}" | tee -a REPORT | mail -a "X-Debian: DAK" -e -s "NEW changes in ${queue}" debian-release@lists.debian.org -- -F "Debian FTP Masters" -f ftpmaster@ftp-master.debian.org echo >> REPORT dak generate-packages-sources2 -s "${queue}" - local exportdir="${queuedir}/${queue}/export" + local exportdir="${queuedir}/${qdir}/export" rm -rf "${exportdir}" dak export -q "${queue}" -d "${exportdir}" --all } @@ -97,7 +98,7 @@ function punew() { log "Doing automated p-u-new processing" fi cd "${queuedir}/p-u-new" - punew_do "$1" + punew_do "$1" "p-u-new" } function opunew() { @@ -105,7 +106,7 @@ function opunew() { log "Doing automated o-p-u-new processing" fi cd "${queuedir}/o-p-u-new" - punew_do "$1" + punew_do "$1" "o-p-u-new" } # Do the unchecked processing, in case we have files. diff --git a/config/debian/cron.dinstall b/config/debian/cron.dinstall index 0fcf599c..c4b363ca 100755 --- a/config/debian/cron.dinstall +++ b/config/debian/cron.dinstall @@ -213,7 +213,7 @@ trap remove_all_locks EXIT TERM HUP INT QUIT GO=( FUNC="punew" TIME="p-u-new" - ARGS="proposedupdates" + ARGS="stable-new" ERR="false" ) stage $GO @@ -221,7 +221,7 @@ stage $GO GO=( FUNC="opunew" TIME="o-p-u-new" - ARGS="oldproposedupdates" + ARGS="oldstable-new" ERR="false" ) stage $GO diff --git a/config/debian/cron.unchecked b/config/debian/cron.unchecked index 3db413e5..5e819adf 100755 --- a/config/debian/cron.unchecked +++ b/config/debian/cron.unchecked @@ -100,8 +100,8 @@ trap cleanup 0 pg_timestamp preunchecked >/dev/null # Process policy queues -punew proposedupdates -opunew oldproposedupdates +punew stable-new +opunew oldstable-new # Finally deal with unchecked do_unchecked diff --git a/config/debian/dinstall.functions b/config/debian/dinstall.functions index d6870a7c..e9f8bfd3 100644 --- a/config/debian/dinstall.functions +++ b/config/debian/dinstall.functions @@ -194,31 +194,14 @@ function mklslar() { FILENAME=ls-lR log "Removing any core files ..." - find -type f -name core -print0 | xargs -0r rm -v - - log "Checking permissions on files in the FTP tree ..." - find -type f \( \! -perm -444 -o -perm +002 \) -ls - find -type d \( \! -perm -555 -o -perm +002 \) -ls + find -type f -name core -print -delete log "Checking symlinks ..." symlinks -rd . log "Creating recursive directory listing ... " - rm -f .${FILENAME}.new - TZ=UTC ls -lR > .${FILENAME}.new - - if [ -r ${FILENAME}.gz ] ; then - mv -f ${FILENAME}.gz ${FILENAME}.old.gz - mv -f .${FILENAME}.new ${FILENAME} - rm -f ${FILENAME}.patch.gz - zcat ${FILENAME}.old.gz | diff -u - ${FILENAME} | gzip -9cfn - >${FILENAME}.patch.gz - rm -f ${FILENAME}.old.gz - else - mv -f .${FILENAME}.new ${FILENAME} - fi - - gzip -9cfN ${FILENAME} >${FILENAME}.gz - rm -f ${FILENAME} + rm -f ${FILENAME}.gz + TZ=UTC ls -lR | gzip -9c --rsyncable > ${FILENAME}.gz } function mkmaintainers() { @@ -241,6 +224,7 @@ function copyoverrides() { } function mkfilesindices() { + set +o pipefail umask 002 cd $base/ftp/indices/files/components @@ -373,6 +357,7 @@ function mkfilesindices() { rm -f $ARCHLIST log "Done!" + set -o pipefail } function mkchecksums() { diff --git a/dak/dakdb/update79.py b/dak/dakdb/update79.py old mode 100644 new mode 100755 index 954f393d..ca20450e --- a/dak/dakdb/update79.py +++ b/dak/dakdb/update79.py @@ -38,6 +38,7 @@ def do_update(self): c = self.db.cursor() c.execute("CREATE SCHEMA world"); + c.execute("GRANT USAGE ON SCHEMA workd TO PUBLIC") c.execute("ALTER DEFAULT PRIVILEGES IN SCHEMA world GRANT SELECT ON TABLES TO PUBLIC") c.execute("ALTER DEFAULT PRIVILEGES IN SCHEMA world GRANT ALL ON TABLES TO ftpmaster") c.execute("ALTER DEFAULT PRIVILEGES IN SCHEMA world GRANT SELECT ON SEQUENCES TO PUBLIC") diff --git a/dak/dakdb/update80.py b/dak/dakdb/update80.py new file mode 100755 index 00000000..da9399e5 --- /dev/null +++ b/dak/dakdb/update80.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python +# coding=utf8 + +""" +rename policy queues + +@contact: Debian FTP Master +@copyright: 2012 Joerg Jaspert +@license: GNU General Public License version 2 or later +""" + +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +################################################################################ + +import psycopg2 +from daklib.dak_exceptions import DBUpdateError +from daklib.config import Config + +################################################################################ +def do_update(self): + print __doc__ + try: + cnf = Config() + + c = self.db.cursor() + + c.execute("UPDATE policy_queue set queue_name='stable-new' where queue_name='proposedupdates'"); + c.execute("UPDATE policy_queue set queue_name='oldstable-new' where queue_name='oldproposedupdates'"); + c.execute("UPDATE suite set suite_name='stable-new' where suite_name='proposedupdates'"); + c.execute("UPDATE suite set suite_name='oldstable-new' where suite_name='oldproposedupdates'"); + + c.execute("UPDATE config SET value = '79' WHERE name = 'db_revision'") + self.db.commit() + + except psycopg2.ProgrammingError as msg: + self.db.rollback() + raise DBUpdateError('Unable to apply sick update 79, rollback issued. Error message: {0}'.format(msg)) diff --git a/dak/examine_package.py b/dak/examine_package.py index a46cd4cc..cbe78274 100755 --- a/dak/examine_package.py +++ b/dak/examine_package.py @@ -552,9 +552,6 @@ def check_deb (suite, deb_filename, session = None): result += foldable_output("copyright of %s" % (filename), "binary-%s-copyright"%packagename, get_copyright(deb_filename)) + "\n" - result += foldable_output("file listing of %s" % (filename), - "binary-%s-file-listing"%packagename, do_command("ls -Ll", deb_filename)) - return result # Read a file, strip the signature and return the modified contents as diff --git a/dak/process_new.py b/dak/process_new.py index afeb0643..7a64277f 100755 --- a/dak/process_new.py +++ b/dak/process_new.py @@ -586,7 +586,7 @@ ENVIRONMENT VARIABLES Example: run mc in a tmux session to inspect the upload - export DAK_INSPECT_UPLOAD='tmux new-session -d -s process-new 2>/dev/null; tmux new-window -t process-new:0 -k "cd {directory}; mc"' + export DAK_INSPECT_UPLOAD='tmux new-session -d -s process-new 2>/dev/null; tmux new-window -n "{changes}" -t process-new:0 -k "cd {directory}; mc"' and run diff --git a/dak/update_db.py b/dak/update_db.py index ba79c0ed..c83459b2 100755 --- a/dak/update_db.py +++ b/dak/update_db.py @@ -46,7 +46,7 @@ from daklib.daklog import Logger ################################################################################ Cnf = None -required_database_schema = 79 +required_database_schema = 80 ################################################################################ diff --git a/daklib/dbconn.py b/daklib/dbconn.py index 9b5072e4..293f4dcb 100644 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -42,8 +42,6 @@ import traceback import commands import signal -from daklib.gpg import SignedFile - try: # python >= 2.6 import json @@ -1883,6 +1881,60 @@ __all__.append('SrcContents') ################################################################################ +from debian.debfile import Deb822 + +# Temporary Deb822 subclass to fix bugs with : handling; see #597249 +class Dak822(Deb822): + def _internal_parser(self, sequence, fields=None): + # The key is non-whitespace, non-colon characters before any colon. + key_part = r"^(?P[^: \t\n\r\f\v]+)\s*:\s*" + single = re.compile(key_part + r"(?P\S.*?)\s*$") + multi = re.compile(key_part + r"$") + multidata = re.compile(r"^\s(?P.+?)\s*$") + + wanted_field = lambda f: fields is None or f in fields + + if isinstance(sequence, basestring): + sequence = sequence.splitlines() + + curkey = None + content = "" + for line in self.gpg_stripped_paragraph(sequence): + m = single.match(line) + if m: + if curkey: + self[curkey] = content + + if not wanted_field(m.group('key')): + curkey = None + continue + + curkey = m.group('key') + content = m.group('data') + continue + + m = multi.match(line) + if m: + if curkey: + self[curkey] = content + + if not wanted_field(m.group('key')): + curkey = None + continue + + curkey = m.group('key') + content = "" + continue + + m = multidata.match(line) + if m: + content += '\n' + line # XXX not m.group('data')? + continue + + if curkey: + self[curkey] = content + + class DBSource(ORMObject): def __init__(self, source = None, version = None, maintainer = None, \ changedby = None, poolfile = None, install_date = None, fingerprint = None): @@ -1915,9 +1967,7 @@ class DBSource(ORMObject): @return: fields is the dsc information in a dictionary form ''' fullpath = self.poolfile.fullpath - contents = open(fullpath, 'r').read() - signed_file = SignedFile(contents, keyrings=[], require_signature=False) - fields = apt_pkg.TagSection(signed_file.contents) + fields = Dak822(open(self.poolfile.fullpath, 'r')) return fields metadata = association_proxy('key', 'value') diff --git a/docs/talks/DebConf9/Makefile b/docs/talks/DebConf9/Makefile deleted file mode 100644 index 39f23214..00000000 --- a/docs/talks/DebConf9/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# $Id: $ - -LATEX = latex -PDFLATEX = pdflatex -DVIPS = dvips -BIBTEX = bibtex -PDFVIEW = xpdf -fullscreen - -SRC := $(shell egrep -l '^[^%]*\\begin\{document\}' *.tex) -DVI = $(SRC:%.tex=%.dvi) -PDF = $(SRC:%.tex=%.pdf) -PS = $(SRC:%.tex=%.ps) - -all: pdf - -$(PDF): %.pdf : %.tex - # call two time because of toc etc - @$(PDFLATEX) $< - @$(PDFLATEX) $< - @$(PDFLATEX) $< - -show: - $(PDFVIEW) $(PDF) - -pdf: $(PDF) - -clean: - -rm -f $(DVI) $(PDF) $(DVI:%.dvi=%.aux) $(DVI:%.dvi=%.log) $(DVI:%.dvi=%.out) $(DVI:%.dvi=%.toc) $(DVI:%.dvi=%.nav) $(DVI:%.dvi=%.snm) diff --git a/docs/talks/DebConf9/background.jpg b/docs/talks/DebConf9/background.jpg deleted file mode 100644 index d20a9c56..00000000 Binary files a/docs/talks/DebConf9/background.jpg and /dev/null differ diff --git a/docs/talks/DebConf9/ftpmaster.pdf b/docs/talks/DebConf9/ftpmaster.pdf deleted file mode 100644 index af4e9164..00000000 Binary files a/docs/talks/DebConf9/ftpmaster.pdf and /dev/null differ diff --git a/docs/talks/DebConf9/ftpmaster.tex b/docs/talks/DebConf9/ftpmaster.tex deleted file mode 100644 index 30a5a3e2..00000000 --- a/docs/talks/DebConf9/ftpmaster.tex +++ /dev/null @@ -1,432 +0,0 @@ -\documentclass{beamer} -%\documentclass[draft]{beamer} - -\usepackage[german]{babel} -\usepackage[latin1]{inputenc} -\usepackage{times} -\usepackage[T1]{fontenc} -\usepackage{url} - -\mode{ - \usetheme{Madrid} - \hypersetup{pdfpagemode=FullScreen} - \usecolortheme{albatross} - \useinnertheme[shadow]{rounded} - \usefonttheme{serif} - \usefonttheme{structurebold} -% \beamerdefaultoverlayspecification{<+-| alert@+>} -% \setbeamercovered{transparent} -} - -\title[FTPTeam]{The Debian FTP Team} -\subtitle{Masters, Assistants, Trainees \\ \alert{Motto: Fuck it! What could possibly go wrong?}} - -\author[Joerg Jaspert]{Joerg Jaspert \\ \texttt{joerg@debian.org}} -\date{Cáceres, July 2009} - -\institute[DebConf9]{Debian Conference 2009} - -% \AtBeginSection[] -% { -% \begin{frame}{Outline} -% \tableofcontents[currentsection] %,currentsubsection] -% \end{frame} -% } - - -\begin{document} - -\setbeamertemplate{navigation symbols}{} -{\setbeamertemplate{background}{\includegraphics[width=\paperwidth]{background.jpg}} - -\begin{frame} - \titlepage -\end{frame} - -\begin{frame}[allowframebreaks,allowdisplaybreaks]{Outline} -\tiny - \tableofcontents -\end{frame} - -\section{History} -\subsection{Software / Hosting} -\begin{frame}{History - Scripts}{\alert{Motto: Fuck it! What could possibly go wrong?}} - \begin{itemize} - \item Ian Murdock/Jackson makeshift scripts - \item Monolithic perl dinstall written by Guy Maor - \begin{itemize} - \item Not exactly secure: upload, shipit - \item Not even using PGP either. - \end{itemize} - \item Katie: a rewrite in python. Known as DAK. - \end{itemize} -\end{frame} - -\begin{frame}{History - Hosting}{\alert{Oh fuck, what just went wrong?}} - \begin{itemize} - \item Under a desk @ cmich.edu - \item First master.d.o by Bdale @ HP - -{\tiny It was an HP Vectra 486 tower system with 66mhz CPU upgrade, an - Adaptec 1740A EISA SCSI controller and two disk drives. A 330Mb - root disk and a 660Mb disk to hold the archive. Both were 5.25" - full-height drives. All the pieces came off pallets of materials - heading out for scrap. Before it left Bdale the archive disk got - swapped out for a 1.3Gb drive, also 5.25" full height scsi and a - cast-off heading for scrap. - - The first machine to host .debian.org using Debian.} - -\pause - - \item Moved to I-Connect - \item Then to Novare for several years - \item Then to Visi.Net, as 'ftp-master.d.o' - \item Relocated to above.net - \item Then to the HP DC in Ft. Collins - \item Currently at Brown.edu - \end{itemize} - -\end{frame} - - -\subsection{Archive} -\begin{frame}{History - Archive}{\alert{That guy impressed me and I am not easily impressed. Wow. BLUE Hair }} - \begin{itemize} - \item Architectures / Releases: - \begin{description} - \item[Bo] 1: i386 - \item[Hamm] 2: + m68k - \item[Slink] 4: + sparc, alpha - \item[Potato] 6: + powerpc, arm - \item[Woody] 11: + mips, mipsel, hppa, ia64, s390 - \item[Sarge] 11 (unofficial amd64 release) - \item[Etch] 11: + amd64, - m68k (there is a semi-official etch-m68k release) - \item[Lenny] 12: + armel - \item[Squeeze] ?: + kfreebsd-i386, kfreebsd-amd64, - arm, ... - \end{description} - - \item Proposed Architectures: - \begin{itemize} - \item avr32 - \item sh\{3,4\} - \end{itemize} - \end{itemize} -\end{frame} - -\begin{frame}{History - Archive size}{\alert{Ganneff - if it goes wrong, we make it ``Fuck it what do we care?'', but dont tell anyone.}} - \begin{itemize} - \item Releases: - \begin{description} - \item[Buzz] 229Mb - \item[Rex] 306Mb - \item[Bo] 1.2Gb - \item[Hamm] 2.1Gb - \item[Slink] 4.1Gb - \item[Potato] 6.7Gb - \item[Woody] 27Gb - \item[Sarge] 57Gb - \item[Etch] 82Gb - \item[Lenny] 125Gb - \item[squeeze+X] 1Tb? - \end{description} - -\pause - - \item Daily pushes: - \begin{description} - \item[2005] 200Mb up to 2Gb, average 1Gb. Once a day. - \item[2009] 1Gb up to 6Gb, average 2Gb. 4 times a day. - \end{description} - \end{itemize} -\end{frame} - -\subsection{Team} -\begin{frame}{History - Team}{\alert{sgran - the world B.G. (Before Ganneff)}} - \begin{itemize} - \item Ian Murdock - \item + later Ian Jackson, Bruce Perens, Bdale Garbee - \item Guy Maor takes over (moved to dinstall) [somewhere 1995/1996] - \item Richard Braakman and James Troup push in [July 1998] % so 1998-07-09, looks like a good date for Richard + Me - \item James recruits Antti-Juhani Kaijanaho and Gergely Madarasz [Dec 1999] - \item Michael Beattie tricks his way in [August 2000] - \item Richard becomes inactive [August 2000] - \item Work on katie starts (named da-katie) [2000] - \item Anthony Towns joins [January 2001] - \item Guy becomes inactive [February 2001] - \item Ryan Murray is added [June 2001] - \item Randall Donald joins [November 2001] - \item Daniel Silverstone follows [August 2003] - \end{itemize} -\end{frame} - -% Help from elmo for the dates: - -% From: Guy Maor -% Subject: Re: ftpmaster-y stuff -% To: James Troup -% Date: 21 Nov 1999 17:03:08 -0800 - -% James Troup writes: - -% > I've started being a bit pro-active with ftpmaster stuff, e.g. getting -% > Gorgo and Ibid on board and announcing it and stuff. I'm doing this -% > on the basis that, you don't mind, and if you did you'd say. Of -% > course this fails a bit miserably if you don't [say, that is], so -% > please do tell me if I'm overstepping my bounds... - -% I trust you and Richard completely with the ftpmaster stuff. You have -% the authority to do anything as far as I'm concerned. - -% ------------------------------------------------------------------------ - -% Guy - -% From: Richard Braakman -% Subject: Re: New ftpmaster (?) Michael Beattie (aka Omnic) -% To: James Troup -% Date: Wed, 16 Aug 2000 13:27:29 +0200 - -% On Sun, Aug 06, 2000 at 10:29:27PM +0100, James Troup wrote: -% > person... Omnic is excessively keen and seems to have lots of free -% > time... unless you have any objections? I'll ask him to join the team -% > in a couple of days. - -% No. In fact I'm almost writing my retirement notice now -- I'm just working -% through the current pile of mail before sending anything. - - -\begin{frame}{History - Team}{\alert{mhy - commit it (RE: team motto)}} - \begin{itemize} - \item Team restructured, Assistants role added [March 2005] - \item Joerg Jaspert and Jeroen van Wolffelaar join as Assistants [March 2005] - \item Kalle Kivimaa and Thomas Viehmann join as Assistants [February 2008] - \item Joerg Jaspert promoted to FTP Master [April 2008] - \item Anthony Towns and James Troup leave [April/May 2008] - \item Mark Hymers joins as Assistant [July 2008] - \item Frank Lichtenheld joins as Assistant [December 2008] - \item Thomas Viehmann resigned [December 2008] - \item Mike O'Connor joins as Assistant [January 2009] - \item Ryan Murray becomes inactive and leaves [March 2009] - \item Mark Hymers promoted to FTP Master [March 2009] - \item Kalle Kivimaa leaves [July 2009] - \end{itemize} -\end{frame} - -\subsection{Present} -\begin{frame}{The Team}{\alert{Me fail English? That's unpossible.}} - FTP Masters - \begin{itemize} - \item Joerg Jaspert - Ganneff - \item Mark Hymers - mhy - \end{itemize} - - FTP Assistants - \begin{itemize} - \item Frank Lichtenheld - djpig - \item Mike O'Connor - stew - \end{itemize} - - FTP Trainee - \begin{itemize} - \item Barry deFreese - bdefreese - \item You?! - \end{itemize} - - Since April 2008 we almost always had people in the FTP Trainee role. -\end{frame} - -\section{The roles} -\subsection{FTP Master} -\begin{frame}{FTP Master}{\alert{Don't you kids take anything. I'm watching you. I've got eye implants in the back of my head.}} -The FTP Master role, unix group \alert{debadmin}, is ... - \begin{block}{(Lets cite Matthew Garrett)} - ... responsible for maintaining the infrastructure - required to support the archive. This takes the form of the scripts used - for processing uploaded packages, but also the flow of packages between - distributions. - \end{block} - \begin{itemize} - \item Keep the archive running - \item Keep the archive legal - \item Support the teams that depend on it (Release, Security, soon backports/volatile) - \item Keep the archive uptodate with the requirements of the project - \end{itemize} -\end{frame} - -\subsection{FTP Assistant} -\begin{frame}{FTP Assistant}{\alert{Ganneff - see topic. our motto. yeah.}} -The FTP Assistant role, group \alert{ftpteam}, created 2005, allows -additions of people to the FTP Team without having to hand out full FTP -Master rights. - -It allows -\begin{itemize} -\item to process NEW, -\item to handle overrides, -\item to remove packages. -\end{itemize} - -Thus the most common actions can be done but the possible damage that -can happen by accident is limited. -\end{frame} - -\subsection{FTP Trainee} -\begin{frame}{FTP Trainee}{\alert{Kids, you tried your best and you failed miserably. The lesson is, never try. \tiny \\ Hello i18n cabal. :)}} -The FTP Trainee role, group \alert{ftptrainee}, was created in 2008 to -allow easy training and testing of future team members. - -\begin{itemize} -\item Initially called ``slave\_NEW'' - -\pause - -\item 6 people trained so far -\item 2 promoted to Assistants -\end{itemize} - -Trainees can look at NEW and do the usual package checks, but they can -not actually accept or reject a package. Instead they leave a note, -which an Assistant or Master reads and acts on. -\end{frame} - -\section{The job} -\subsection{Archives} -\begin{frame}{Archives}{\alert{You can't keep blaming yourself. Just blame yourself once, and move on.}} - \begin{itemize} - \item The main archive, ftp.debian.org - \item The security archive, security.debian.org - \item (Soon) The volatile archive, volatile.debian.org (integrated - into main archive) - \item (Soon) The backports.org archive, www.backports.org (-> backports.debian.org) - \end{itemize} -\end{frame} - -\subsection{Removals and Overrides} -\begin{frame}{Removals and Overrides}{\alert{mhy - I was upset to discover (via grepping my logs) that I actually said that quote in one of the subtitles verbatim}} - \begin{itemize} - \item Removals - \begin{itemize} - \item (Semi)-Automagic via cruft-report - \item Manual, with help from a nice html page - \end{itemize} - \item Overrides - \begin{itemize} - \item Priority / Section - \item Override disparity - \item Currently by mail, should be changed to using BTS - \end{itemize} - \end{itemize} -\end{frame} - -\subsection{NEW} -\begin{frame}{NEW}{\alert{mhy - Ganneff airlines: departing from a window near you}} - -NEW checking is about three things. In order of priority: -\begin{itemize} -\item trying to keep the archive legal, -\item trying to keep the package namespace sane, -\item trying to reduce the number of bugs in Debian. -\end{itemize} - -A small list of most common checks -\begin{itemize} -\item Check the source for license problems - \begin{itemize} - \item incompatibility - \item non-free license terms - \end{itemize} -\item (sane) package renames / splits -\item Policy violation -\item source for everything included? -\item ... -\end{itemize} -\end{frame} - -\subsection{Code} -\begin{frame}{Code}{\alert{Oh, so they have Internet on computers now!}} -git clone https://ftp-master.debian.org/git/dak.git - -\begin{itemize} -\item Python -\item and some Shell -\item and some Perl -\item at least 9 years old -\item at minimum 40 different authors -\end{itemize} -\end{frame} - -\section{How to help / join} - -\subsection{QA Team} -\begin{frame}{Join the Army, err, QA Team}{\alert{mhy - oh god. Ganneff has been on TV? I'm surprised the sets didn't all explode}} - \begin{itemize} - \item Do QA work - \item File removal bugs for unmaintained, outdated or otherwise no longer needed packages - \end{itemize} -\end{frame} - -\subsection{Bug triage} -\begin{frame}{Bug triage}{\alert{I am so smart! I am so smart! S-M-R-T! I mean S-M-A-R-T...}} - \begin{itemize} - \item Retitle bugs to fit our removal format - \item Close bugs that don't apply (anymore) - \item Make sure removals can happen (rev-deps anyone?) - \end{itemize} -\end{frame} - -\subsection{Write Code} -\begin{frame}{Write Code}{\alert{I'm normally not a praying man, but if you're up there, please save me Superman.}} - -\end{frame} - -\subsection{Join the team} -\begin{frame}{Join the team}{\alert{Hi, my name's Moe. Or as the ladies like to refer to me, 'hey you in the bushes'}} -Join us. Mail \href{mailto:ftpmaster@debian.org}{ftpmaster@debian.org}. - -Join us. Mail \href{mailto:ftpmaster@debian.org}{ftpmaster@debian.org}. - -Join us. Mail \href{mailto:ftpmaster@debian.org}{ftpmaster@debian.org}. - -Join us. Mail \href{mailto:ftpmaster@debian.org}{ftpmaster@debian.org} NOW. -\end{frame} - -\section{Final} - -\subsection{The future} -\begin{frame}{The future}{\alert{Facts are meaningless. You could use facts to prove anything that's even remotely true!}} - \begin{itemize} - \item Replace database code in dak with sqlalchemy - \item source v3 - \item Split long description out of Packages files, make it nothing - than another translation - \item debtags integration, sections death - \item tdebs - \item ddebs - \item lintian autorejects - \item autosigning - \item binary throw away - \item ... - \end{itemize} -\end{frame} - - -\begin{frame}{Thank you for sleeping through this talk}{\alert{Ganneff - (trust full, when had i been that drunk?)}} - \begin{center} - Joerg Jaspert \\ - \href{mailto:ftpmaster@debian.org}{ftpmaster@debian.org} - - \href{http://ftp-master.debian.org/}{http://ftp-master.debian.org/} - - \href{https://ftp-master.debian.org/git/dak.git}{https://ftp-master.debian.org/git/dak.git} - - - - \vfill - - - \end{center} -\end{frame} - - -\end{document}