--- /dev/null
+
+\documentclass[serif,mathserif,compress]{beamer}
+
+\usepackage{beamerthemesplit}
+
+\usetheme{default}
+\useoutertheme{default}
+
+\usepackage[british]{babel}
+\usepackage{amsmath}
+\usepackage{amsfonts}
+\usepackage{color}
+\usepackage{epsfig}
+\usepackage{listings}
+\usepackage{marvosym}
+\usepackage{texnansi}
+\usepackage{verbatim}
+\usepackage{xspace}
+
+% Make this a 16:9 presentation
+\setlength{\paperwidth}{171 mm}
+\setlength{\paperheight}{96 mm}
+\setlength{\textwidth}{151 mm}
+\setlength{\textheight}{86 mm}
+
+\usepackage[default,osfigures,scale=0.95]{opensans}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+
+% Set sans-serif font.
+%\renewcommand\sfdefault{phv}
+%\renewcommand\familydefault{\sfdefault}
+
+% Define some colours.
+\definecolor{myred}{rgb}{0.53,0.01,0}
+\definecolor{mygrey}{rgb}{0.3,0.3,0.3}
+
+% Make a nice gradient as background.
+%\setbeamertemplate{background canvas}[vertical shading]
+%[bottom=black, middle=myred, top=myred]
+\setbeamercolor{background canvas}{bg=white, fg=mygrey}
+\setbeamercolor{frametitle}{fg=mygrey,bg=mygrey!20}
+\setbeamercolor{section in head/foot}{bg=myred}
+\setbeamercolor{subsection in head/foot}{fg=white}
+\setbeamercolor{author in head/foot}{bg=myred}
+\setbeamercolor{date in head/foot}{fg=white}
+
+% Highlight elements in some sort of grey.
+\setbeamercolor{structure}{fg=mygrey}
+\setbeamercolor{normal text}{bg=black, fg=mygrey}
+
+% Use round bullets in lists.
+\setbeamertemplate{items}[circle]
+
+% Use bigger fonts for titles.
+\setbeamerfont{title}{size=\Huge}
+\setbeamerfont{frametitle}{size=\large}
+
+% Don't clutter the pages with useless navigations.
+\setbeamertemplate{navigation symbols}{}
+
+\lstdefinestyle{console}{%
+ language=bash,
+ basicstyle=\ttfamily\fontsize{3.5}{6}\selectfont\color{white},
+ frame=none,
+ rulecolor=\color{white},
+ backgroundcolor=\color{black},
+ breaklines=false,
+ breakindent=0pt,
+ lineskip={0pt},
+ escapeinside={<@}{@>}
+}
+
+% Author information.
+\author[Michael Tremer]{Michael Tremer}
+\institute{IPFire Project}
+
+% The title of the presentation.
+\title{Submitting Patches}
+\subtitle{Contributing to the IPFire project made easy}
+
+\date{October 10\textsuperscript{th}, 2015}
+
+\newcommand{\spacer}{\vspace{4 mm}}
+
+\newcommand{\screenshot}[1]{\centerline{%
+ \includegraphics[width=\textwidth]{#1}}}
+
+\newcommand{\slug}[1]{
+ \vspace*{\fill}
+
+ \begin{center}
+ \LARGE #1
+ \end{center}
+
+ \vspace*{\fill}
+}
+
+\newcommand{\subslug}[1]{
+ \slug{\normalsize #1}
+}
+
+\begin{document}
+ \maketitle
+
+ %\section*{Outline}
+ %\frame{\tableofcontents}
+
+ \section{Introduction}
+
+ \begin{frame}
+ \slug{We are an Open Source project \\
+ \pause ... and use an open development approach}
+ \end{frame}
+
+ \begin{frame}
+ \slug{Everyone is welcome to contribute}
+ \subslug{No skills required}
+ \end{frame}
+
+ \begin{frame}
+ \slug{This might look complicated \\
+ - it is mostly common sense}
+ \end{frame}
+
+ \begin{frame}
+ \slug{Why does all this matter? \\
+ \pause Our brains are good with patterns}
+ \end{frame}
+
+ \section{Obtaining the Sources}
+
+ \begin{frame}
+ \slug{We are using \texttt{git}}
+ \end{frame}
+
+ \begin{frame}
+ \slug{Everything we do is in a git repository somewhere on \\
+ \url{http://git.ipfire.org}}
+ \end{frame}
+
+ \subsection{Setting up Git}
+
+ \begin{frame}
+ \frametitle{Setting up Git}
+
+ \slug{Introduce yourself}
+
+ \subslug{We want to know who you are \\
+ Real name required}
+ \pause
+
+ \subslug{
+ \texttt{git config ----global user.name ``Michael Tremer''} \\
+ \texttt{git config ----global user.email michael.tremer@ipfire.org}
+ }
+ \end{frame}
+
+ \subsection{Setting up Git for Email}
+
+ \begin{frame}
+ \frametitle{Setting up Git for Email}
+
+ \slug{Git needs to send email...}
+
+ \subslug{
+ \texttt{git config ----global sendemail.smtpencryption tls} \\
+ \texttt{git config ----global sendemail.smtpserver mail01.ipfire.org} \\
+ \texttt{git config ----global sendemail.smtpserverport 587} \\
+ \texttt{git config ----global sendemail.smtpuser ms}
+ }
+
+ \subslug{(You can use what ever mail server you want...)}
+ \end{frame}
+
+ \subsection{Creating a Development Branch}
+
+ \begin{frame}
+ \frametitle{Creating a Development Branch}
+
+ \begin{columns}[T] % align columns
+ \begin{column}{.78\textwidth}
+ \slug{We use development branches for each feature}
+
+ \subslug{
+ \texttt{git checkout -b my-feature -t origin/master}
+ }
+ \end{column}%
+ \hfill%
+ \begin{column}{.28\textwidth}
+ \includegraphics[height=.85\textheight]{res/git-branches}
+ \end{column}%
+ \end{columns}
+ \end{frame}
+
+ \section{Making Changes}
+
+ \begin{frame}
+ \slug{Time to hack...}
+ \pause
+
+ \subslug{But there are some rules...}
+ \end{frame}
+
+ \begin{frame}
+ \subslug{Check with us before starting working on bigger things}
+ \pause
+
+ \subslug{Separate your changes \\
+ e.g. bug fixes vs. performance enhancements}
+ \pause
+
+ \subslug{Send small patches \\ each one justifiable on its own merits}
+ \pause
+
+ \subslug{Make sure that everything builds \\ mark dependencies}
+ \pause
+
+ \subslug{Style-check your changes}
+ \pause
+
+ \subslug{Test!}
+ \end{frame}
+
+ \subsection{Committing Changes}
+
+ \begin{frame}
+ \frametitle{Committing Changes}
+
+ \slug{Committing a patch means \\ adding it to the project's history}
+ \pause
+
+ \subslug{It will be in there for forever}
+ \end{frame}
+
+ \subsection{Writing a commit message}
+
+ \begin{frame}
+ \frametitle{Writing a good commit message}
+
+ \slug{Describe your changes}
+ \pause
+
+ \subslug{What motivated you to develop this patch?}
+ \subslug{What is the impact of the patch?}
+ \subslug{Are there user-visible changes?}
+ \end{frame}
+
+ \begin{frame}
+ \frametitle{Writing a good commit message}
+
+ \slug{Describe \underline{how} you solved the problem}
+ \pause
+
+ \subslug{Include technical details}
+ \subslug{(If this step is getting difficult your patch is probably too complex)}
+ \end{frame}
+
+ \begin{frame}
+ \frametitle{Writing a good commit message}
+
+ \slug{Add useful information}
+ \pause
+
+ \subslug{Bug IDs}
+ \subslug{Mailing list discussions \\
+ (including a quick summary)}
+ \end{frame}
+
+ \subsection{Git Tags}
+
+ \begin{frame}
+ \frametitle{Git tags - Who did what?}
+
+ \slug{Sign your work}
+
+ \subslug{\texttt{Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>}}
+ \end{frame}
+
+ \begin{frame}
+ \frametitle{Git tags - Who did what?}
+
+ \slug{Credit your collaborators}
+
+ \subslug{Reported-by: | Tested-by: | Reviewed-by: | Suggested-by:}
+ \end{frame}
+
+ \subsection{Why all this?}
+
+ \begin{frame}
+ \slug{Why all this?}
+ \pause
+
+ \subslug{Commit messages will be read by the reviewers of your patch... \\
+ \pause (help them to make reviewing your changes easier)}
+
+ \pause
+ \subslug{...and after many years}
+ \end{frame}
+
+ \section{Review}
+
+ \begin{frame}
+ \slug{Every patch must be reviewed}
+
+ \subslug{Respond to any comments - don't get discouraged - or impatient}
+ \end{frame}
+
+ \begin{frame}
+ \frametitle{Who to send patches to?}
+
+ \slug{The maintainer of a subsystem}
+ \slug{\underline{and} at least one mailing list}
+ \end{frame}
+
+ \subsection{Submitting Patches}
+
+ \begin{frame}
+ \slug{We use email only}
+
+ \subslug{Pull requests only for bigger changes \& maintainers \\
+ No GitHub pull requests}
+ \end{frame}
+
+ \begin{frame}
+ \frametitle{Patch format}
+
+ \begin{itemize}
+ \item Must include a From: header (with the real name and email address)
+ \item Subject line starting with \texttt{[PATCH]}
+ \item The commit message
+ \item \texttt{Signed-off-by:} line
+ \item The actual changes in the unified diff format
+ \end{itemize}
+ \pause
+
+ \slug{\texttt{git send-email} automates all that}
+ \end{frame}
+
+ \subsection{Patchwork}
+
+ \subsection{Track what is going on...}
+
+ \begin{frame}
+ \frametitle{Track what is going on...}
+
+ \slug{\url{http://patchwork.ipfire.org/}}
+ \pause
+
+ \subslug{Help us reviewing patches}
+ \end{frame}
+
+ \section*{The End}
+
+ \begin{frame}
+ \begin{center}
+ \includegraphics[height=.5\textheight]{res/ipfire_tux_512x512.png}
+ \end{center}
+
+ \subslug{
+ Read everything on \\
+ \url{http://wiki.ipfire.org/devel/submit-patches}
+ }
+ \end{frame}
+\end{document}
--- /dev/null
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: cairo 1.14.2 (http://cairographics.org)
+%%CreationDate: Fri Oct 2 19:45:33 2015
+%%Pages: 1
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%BoundingBox: 14 13 199 578
+%%EndComments
+%%BeginProlog
+save
+50 dict begin
+/q { gsave } bind def
+/Q { grestore } bind def
+/cm { 6 array astore concat } bind def
+/w { setlinewidth } bind def
+/J { setlinecap } bind def
+/j { setlinejoin } bind def
+/M { setmiterlimit } bind def
+/d { setdash } bind def
+/m { moveto } bind def
+/l { lineto } bind def
+/c { curveto } bind def
+/h { closepath } bind def
+/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
+ 0 exch rlineto 0 rlineto closepath } bind def
+/S { stroke } bind def
+/f { fill } bind def
+/f* { eofill } bind def
+/n { newpath } bind def
+/W { clip } bind def
+/W* { eoclip } bind def
+/BT { } bind def
+/ET { } bind def
+/pdfmark where { pop globaldict /?pdfmark /exec load put }
+ { globaldict begin /?pdfmark /pop load def /pdfmark
+ /cleartomark load def end } ifelse
+/BDC { mark 3 1 roll /BDC pdfmark } bind def
+/EMC { mark /EMC pdfmark } bind def
+/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
+/Tj { show currentpoint cairo_store_point } bind def
+/TJ {
+ {
+ dup
+ type /stringtype eq
+ { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
+ } forall
+ currentpoint cairo_store_point
+} bind def
+/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
+ cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
+/Tf { pop /cairo_font exch def /cairo_font_matrix where
+ { pop cairo_selectfont } if } bind def
+/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
+ /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
+ /cairo_font where { pop cairo_selectfont } if } bind def
+/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
+ cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
+/g { setgray } bind def
+/rg { setrgbcolor } bind def
+/d1 { setcachedevice } bind def
+%%EndProlog
+%%BeginSetup
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox: 14 13 199 578
+%%EndPageSetup
+q 14 13 185 565 rectclip q
+0 0.266667 0.666667 rg
+197.602 514.173 m 197.602 503.443 188.902 494.747 178.172 494.747 c 167.445
+ 494.747 158.746 503.443 158.746 514.173 c 158.746 524.903 167.445 533.599
+ 178.172 533.599 c 188.902 533.599 197.602 524.903 197.602 514.173 c h
+197.602 514.173 m f
+0 g
+1.146738 w
+0 J
+1 j
+[] 0.0 d
+4 M q 1 0 0 -1 0 591.454224 cm
+197.602 77.281 m 197.602 88.012 188.902 96.707 178.172 96.707 c 167.445
+ 96.707 158.746 88.012 158.746 77.281 c 158.746 66.551 167.445 57.855 178.172
+ 57.855 c 188.902 57.855 197.602 66.551 197.602 77.281 c h
+197.602 77.281 m S Q
+1.161414 w
+0 j
+q 1 0 0 -1 0 591.454224 cm
+177.797 135.168 m 177.777 97.953 l S Q
+177.789 467.9 m 173.141 472.544 l 177.797 456.286 l 182.434 472.548 l h
+177.789 467.9 m f*
+1.161414 w
+q -0.00058259 1 1 0.00058259 0 591.454224 cm
+-123.658 177.717 m -119.011 173.071 l -135.272 177.718 l -119.012 182.364
+ l h
+-123.658 177.717 m S Q
+0 0.266667 0.666667 rg
+197.602 432.571 m 197.602 421.845 188.902 413.146 178.172 413.146 c 167.445
+ 413.146 158.746 421.845 158.746 432.571 c 158.746 443.302 167.445 452.001
+ 178.172 452.001 c 188.902 452.001 197.602 443.302 197.602 432.571 c h
+197.602 432.571 m f
+0 g
+1.146738 w
+1 j
+q 1 0 0 -1 0 591.454224 cm
+197.602 158.883 m 197.602 169.609 188.902 178.309 178.172 178.309 c 167.445
+ 178.309 158.746 169.609 158.746 158.883 c 158.746 148.152 167.445 139.453
+ 178.172 139.453 c 188.902 139.453 197.602 148.152 197.602 158.883 c h
+197.602 158.883 m S Q
+1.2 w
+0 j
+q 1 0 0 -1 0 591.454224 cm
+177.793 321.457 m 177.781 180.719 l S Q
+177.793 281.997 m 172.992 286.794 l 177.793 269.997 l 182.59 286.794 l
+h
+177.793 281.997 m f*
+1.2 w
+q -0.0000864007 1 1 0.0000864007 0 591.454224 cm
+-309.472 177.766 m -304.675 172.966 l -321.472 177.765 l -304.676 182.564
+ l h
+-309.472 177.766 m S Q
+0 0.666667 0.831373 rg
+108 376.571 m 108 365.845 99.301 357.146 88.574 357.146 c 77.844 357.146
+ 69.148 365.845 69.148 376.571 c 69.148 387.302 77.844 396.001 88.574 396.001
+ c 99.301 396.001 108 387.302 108 376.571 c h
+108 376.571 m f
+0 g
+1.146738 w
+1 j
+q 1 0 0 -1 0 591.454224 cm
+108 214.883 m 108 225.609 99.301 234.309 88.574 234.309 c 77.844 234.309
+ 69.148 225.609 69.148 214.883 c 69.148 204.152 77.844 195.453 88.574 195.453
+ c 99.301 195.453 108 204.152 108 214.883 c h
+108 214.883 m S Q
+0 0.666667 0.831373 rg
+88.199 318.689 m 88.176 355.9 l f*
+0 g
+1.161414 w
+0 j
+q 1 0 0 -1 0 591.454224 cm
+88.199 272.766 m 88.176 235.555 l S Q
+88.191 330.302 m 83.543 334.943 l 88.199 318.689 l 92.832 334.95 l h
+88.191 330.302 m f*
+1.161414 w
+q -0.00058259 1 1 0.00058259 0 591.454224 cm
+-261.204 88.039 m -256.56 83.393 l -272.817 88.04 l -256.558 92.683 l h
+-261.204 88.039 m S Q
+0 0.666667 0.831373 rg
+108 291.775 m 108 281.044 99.301 272.345 88.574 272.345 c 77.844 272.345
+ 69.148 281.044 69.148 291.775 c 69.148 302.501 77.844 311.2 88.574 311.2
+ c 99.301 311.2 108 302.501 108 291.775 c h
+108 291.775 m f
+0 g
+1.146738 w
+1 j
+q 1 0 0 -1 0 591.454224 cm
+108 299.68 m 108 310.41 99.301 319.109 88.574 319.109 c 77.844 319.109
+69.148 310.41 69.148 299.68 c 69.148 288.953 77.844 280.254 88.574 280.254
+ c 99.301 280.254 108 288.953 108 299.68 c h
+108 299.68 m S Q
+0 1 0.4 rg
+53.602 285.372 m 53.602 274.646 44.902 265.946 34.172 265.946 c 23.445
+265.946 14.746 274.646 14.746 285.372 c 14.746 296.103 23.445 304.798 34.172
+ 304.798 c 44.902 304.798 53.602 296.103 53.602 285.372 c h
+53.602 285.372 m f
+0 g
+q 1 0 0 -1 0 591.454224 cm
+53.602 306.082 m 53.602 316.809 44.902 325.508 34.172 325.508 c 23.445
+325.508 14.746 316.809 14.746 306.082 c 14.746 295.352 23.445 286.656 34.172
+ 286.656 c 44.902 286.656 53.602 295.352 53.602 306.082 c h
+53.602 306.082 m S Q
+0 1 0.4 rg
+33.797 227.485 m 33.777 264.7 l f*
+0 g
+1.161414 w
+0 j
+q 1 0 0 -1 0 591.454224 cm
+33.797 363.969 m 33.777 326.754 l S Q
+33.789 239.103 m 29.141 243.743 l 33.797 227.485 l 38.434 243.751 l h
+33.789 239.103 m f*
+1.161414 w
+q -0.00058259 1 1 0.00058259 0 591.454224 cm
+-352.371 33.584 m -347.728 28.938 l -363.988 33.585 l -347.725 38.231 l
+ h
+-352.371 33.584 m S Q
+0 1 0.4 rg
+53.602 203.775 m 53.602 193.044 44.902 184.345 34.172 184.345 c 23.445
+184.345 14.746 193.044 14.746 203.775 c 14.746 214.501 23.445 223.2 34.172
+ 223.2 c 44.902 223.2 53.602 214.501 53.602 203.775 c h
+53.602 203.775 m f
+0 g
+1.146738 w
+1 j
+q 1 0 0 -1 0 591.454224 cm
+53.602 387.68 m 53.602 398.41 44.902 407.109 34.172 407.109 c 23.445 407.109
+ 14.746 398.41 14.746 387.68 c 14.746 376.953 23.445 368.254 34.172 368.254
+ c 44.902 368.254 53.602 376.953 53.602 387.68 c h
+53.602 387.68 m S Q
+0 1 0.4 rg
+53.602 451.775 m 53.602 441.044 44.902 432.345 34.172 432.345 c 23.445
+432.345 14.746 441.044 14.746 451.775 c 14.746 462.501 23.445 471.2 34.172
+ 471.2 c 44.902 471.2 53.602 462.501 53.602 451.775 c h
+53.602 451.775 m f
+0 g
+q 1 0 0 -1 0 591.454224 cm
+53.602 139.68 m 53.602 150.41 44.902 159.109 34.172 159.109 c 23.445 159.109
+ 14.746 150.41 14.746 139.68 c 14.746 128.953 23.445 120.254 34.172 120.254
+ c 44.902 120.254 53.602 128.953 53.602 139.68 c h
+53.602 139.68 m S Q
+0 1 0.4 rg
+33.797 393.888 m 33.777 431.099 l f*
+0 g
+1.161414 w
+0 j
+q 1 0 0 -1 0 591.454224 cm
+33.797 197.566 m 33.777 160.355 l S Q
+33.789 405.501 m 29.141 410.146 l 33.797 393.888 l 38.434 410.15 l h
+33.789 405.501 m f*
+1.161414 w
+q -0.00058259 1 1 0.00058259 0 591.454224 cm
+-185.973 33.681 m -181.326 29.035 l -197.586 33.682 l -181.327 38.328 l
+ h
+-185.973 33.681 m S Q
+0 1 0.4 rg
+53.602 366.974 m 53.602 356.243 44.902 347.548 34.172 347.548 c 23.445
+347.548 14.746 356.243 14.746 366.974 c 14.746 377.704 23.445 386.4 34.172
+ 386.4 c 44.902 386.4 53.602 377.704 53.602 366.974 c h
+53.602 366.974 m f
+0 g
+1.146738 w
+1 j
+q 1 0 0 -1 0 591.454224 cm
+53.602 224.48 m 53.602 235.211 44.902 243.906 34.172 243.906 c 23.445 243.906
+ 14.746 235.211 14.746 224.48 c 14.746 213.75 23.445 205.055 34.172 205.055
+ c 44.902 205.055 53.602 213.75 53.602 224.48 c h
+53.602 224.48 m S Q
+0 1 0.4 rg
+33.797 309.087 m 33.777 346.302 l f*
+0 g
+1.161414 w
+0 j
+q 1 0 0 -1 0 591.454224 cm
+33.797 282.367 m 33.777 245.152 l S Q
+33.789 320.7 m 29.141 325.345 l 33.797 309.087 l 38.434 325.349 l h
+33.789 320.7 m f*
+1.161414 w
+q -0.00058259 1 1 0.00058259 0 591.454224 cm
+-270.773 33.631 m -266.126 28.986 l -282.387 33.632 l -266.128 38.279 l
+ h
+-270.773 33.631 m S Q
+1.2 w
+q 1 0 0 -1 0 591.454224 cm
+60.371 124.609 m 153.516 84.609 l 154.086 85.18 l S Q
+71.398 471.579 m 73.914 477.884 l 60.371 466.845 l 77.703 469.064 l h
+71.398 471.579 m f*
+1.102624 w
+q 1 0.429448 0.429448 -1 0 591.454224 cm
+16.817 127.097 m 21.227 122.686 l 5.79 127.096 l 21.228 131.507 l h
+16.817 127.097 m S Q
+1.2 w
+q 1 0 0 -1 0 591.454224 cm
+106.73 196.453 m 155.586 175.473 l 155.887 175.77 l S Q
+117.758 399.735 m 120.273 406.04 l 106.73 395.001 l 124.062 397.22 l h
+117.758 399.735 m f*
+1.102624 w
+q 1 0.429448 0.429448 -1 0 591.454224 cm
+29.909 204.563 m 34.319 200.152 l 18.882 204.562 l 34.32 208.973 l h
+29.909 204.563 m S Q
+0 0.266667 0.666667 rg
+197.602 245.372 m 197.602 234.646 188.902 225.946 178.172 225.946 c 167.445
+ 225.946 158.746 234.646 158.746 245.372 c 158.746 256.103 167.445 264.798
+ 178.172 264.798 c 188.902 264.798 197.602 256.103 197.602 245.372 c h
+197.602 245.372 m f
+0 g
+1.146738 w
+1 j
+q 1 0 0 -1 0 591.454224 cm
+197.602 346.082 m 197.602 356.809 188.902 365.508 178.172 365.508 c 167.445
+ 365.508 158.746 356.809 158.746 346.082 c 158.746 335.352 167.445 326.656
+ 178.172 326.656 c 188.902 326.656 197.602 335.352 197.602 346.082 c h
+197.602 346.082 m S Q
+1.161414 w
+0 j
+q 1 0 0 -1 0 591.454224 cm
+177.797 403.969 m 177.777 366.754 l S Q
+177.789 199.103 m 173.141 203.743 l 177.797 187.485 l 182.434 203.751 l
+ h
+177.789 199.103 m f*
+1.161414 w
+q -0.00058259 1 1 0.00058259 0 591.454224 cm
+-392.455 177.56 m -387.812 172.915 l -404.072 177.561 l -387.809 182.208
+ l h
+-392.455 177.56 m S Q
+0 0.266667 0.666667 rg
+197.602 158.974 m 197.602 148.243 188.902 139.548 178.172 139.548 c 167.445
+ 139.548 158.746 148.243 158.746 158.974 c 158.746 169.704 167.445 178.4
+ 178.172 178.4 c 188.902 178.4 197.602 169.704 197.602 158.974 c h
+197.602 158.974 m f
+0 g
+1.146738 w
+1 j
+q 1 0 0 -1 0 591.454224 cm
+197.602 432.48 m 197.602 443.211 188.902 451.906 178.172 451.906 c 167.445
+ 451.906 158.746 443.211 158.746 432.48 c 158.746 421.75 167.445 413.055
+ 178.172 413.055 c 188.902 413.055 197.602 421.75 197.602 432.48 c h
+197.602 432.48 m S Q
+1.161414 w
+0 j
+q 1 0 0 -1 0 591.454224 cm
+177.797 490.367 m 177.777 453.152 l S Q
+177.789 112.7 m 173.141 117.345 l 177.797 101.087 l 182.434 117.349 l h
+177.789 112.7 m f*
+1.161414 w
+q -0.00058259 1 1 0.00058259 0 591.454224 cm
+-478.857 177.51 m -474.21 172.864 l -490.471 177.511 l -474.212 182.157
+ l h
+-478.857 177.51 m S Q
+0 0.266667 0.666667 rg
+197.602 74.173 m 197.602 63.443 188.902 54.747 178.172 54.747 c 167.445
+ 54.747 158.746 63.443 158.746 74.173 c 158.746 84.903 167.445 93.599 178.172
+ 93.599 c 188.902 93.599 197.602 84.903 197.602 74.173 c h
+197.602 74.173 m f
+0 g
+1.146738 w
+1 j
+q 1 0 0 -1 0 591.454224 cm
+197.602 517.281 m 197.602 528.012 188.902 536.707 178.172 536.707 c 167.445
+ 536.707 158.746 528.012 158.746 517.281 c 158.746 506.551 167.445 497.855
+ 178.172 497.855 c 188.902 497.855 197.602 506.551 197.602 517.281 c h
+197.602 517.281 m S Q
+1.161414 w
+0 j
+q 1 0 0 -1 0 591.454224 cm
+177.797 575.168 m 177.777 537.953 l S Q
+177.789 27.9 m 173.141 32.544 l 177.797 16.286 l 182.434 32.548 l h
+177.789 27.9 m f*
+1.161414 w
+q -0.00058259 1 1 0.00058259 0 591.454224 cm
+-563.658 177.461 m -559.011 172.815 l -575.271 177.462 l -559.012 182.108
+ l h
+-563.658 177.461 m S Q
+1.2 w
+q 1 0 0 -1 0 591.454224 cm
+154.305 335.652 m 105.449 314.672 l 105.148 314.973 l S Q
+143.277 260.536 m 136.973 258.021 l 154.305 255.802 l 140.762 266.841 l
+ h
+143.277 260.536 m f*
+1.102624 w
+q -1 0.429448 0.429448 1 0 591.454224 cm
+-240.952 -227.442 m -236.541 -231.852 l -251.979 -227.441 l -236.542 -223.031
+ l h
+-240.952 -227.442 m S Q
+1.2 w
+q 1 0 0 -1 0 591.454224 cm
+152.504 433.41 m 59.359 393.41 l 58.789 393.98 l S Q
+141.477 162.778 m 135.172 160.263 l 152.504 158.044 l 138.961 169.083 l
+ h
+141.477 162.778 m f*
+1.102624 w
+q -1 0.429448 0.429448 1 0 591.454224 cm
+-274.876 -310.631 m -270.465 -315.041 l -285.903 -310.63 l -270.466 -306.22
+ l h
+-274.876 -310.631 m S Q
+177.797 539.485 m 177.777 576.7 l f*
+1.1616 w
+q 1 0 0 -1 0 591.454224 cm
+177.797 51.969 m 177.777 14.754 l S Q
+177.789 551.103 m 173.141 555.747 l 177.797 539.485 l 182.434 555.751 l
+ h
+177.789 551.103 m f*
+1.1616 w
+q -0.00058259 1 1 0.00058259 0 591.454224 cm
+-40.455 177.765 m -35.808 173.12 l -52.072 177.767 l -35.809 182.413 l
+h
+-40.455 177.765 m S Q
+Q Q
+showpage
+%%Trailer
+end restore
+%%EOF
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="74.91111mm"
+ height="208.6519mm"
+ viewBox="0 0 265.43307 739.31776"
+ id="svg82225"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="git-branches.svg">
+ <defs
+ id="defs82227">
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker87425"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path87427"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker87335"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path87337"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker86999"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path87001"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker85769"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path85771"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker85133"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path85135"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker84491"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ id="path84493"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker84395"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path84397"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path82800"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.98994949"
+ inkscape:cx="65.321353"
+ inkscape:cy="367.95517"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="5"
+ fit-margin-left="5"
+ fit-margin-right="5"
+ fit-margin-bottom="5"
+ inkscape:window-width="1920"
+ inkscape:window-height="1136"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata82230">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-2.2834643,-30.761005)">
+ <g
+ id="g84214">
+ <circle
+ r="24.283289"
+ cy="127.36221"
+ cx="225"
+ id="path82233"
+ style="opacity:1;fill:#0044aa;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path82794"
+ d="m 224.53028,199.71995 -0.0271,-46.51641 0,0"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.45176756;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Lstart)" />
+ </g>
+ <circle
+ r="24.283289"
+ cy="229.36221"
+ cx="225"
+ id="circle84233"
+ style="opacity:1;fill:#0044aa;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path84235"
+ d="m 224.5244,432.5847 -0.0152,-175.92447 0,0"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker86999)" />
+ <g
+ transform="translate(-112,172)"
+ id="g84237"
+ style="fill:#00aad4">
+ <circle
+ r="24.283289"
+ cy="127.36221"
+ cx="225"
+ id="circle84239"
+ style="opacity:1;fill:#00aad4;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path84241"
+ d="m 224.53028,199.71995 -0.0271,-46.51641 0,0"
+ style="fill:#00aad4;fill-rule:evenodd;stroke:#000000;stroke-width:1.45176756;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Lstart)" />
+ </g>
+ <circle
+ r="24.283289"
+ cy="405.36221"
+ cx="113"
+ id="circle84245"
+ style="opacity:1;fill:#00aad4;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ style="fill:#00ff66"
+ id="g84249"
+ transform="translate(-180,286)">
+ <circle
+ style="opacity:1;fill:#00ff66;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle84251"
+ cx="225"
+ cy="127.36221"
+ r="24.283289" />
+ <path
+ style="fill:#00ff66;fill-rule:evenodd;stroke:#000000;stroke-width:1.45176756;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Lstart)"
+ d="m 224.53028,199.71995 -0.0271,-46.51641 0,0"
+ id="path84253"
+ inkscape:connector-curvature="0" />
+ </g>
+ <circle
+ style="opacity:1;fill:#00ff66;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle84257"
+ cx="45"
+ cy="515.36218"
+ r="24.283289" />
+ <g
+ transform="translate(-180,78)"
+ id="g84261"
+ style="fill:#00ff66">
+ <circle
+ r="24.283289"
+ cy="127.36221"
+ cx="225"
+ id="circle84263"
+ style="opacity:1;fill:#00ff66;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path84265"
+ d="m 224.53028,199.71995 -0.0271,-46.51641 0,0"
+ style="fill:#00ff66;fill-rule:evenodd;stroke:#000000;stroke-width:1.45176756;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Lstart)" />
+ </g>
+ <g
+ style="fill:#00ff66"
+ id="g84267"
+ transform="translate(-180,184)">
+ <circle
+ style="opacity:1;fill:#00ff66;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle84269"
+ cx="225"
+ cy="127.36221"
+ r="24.283289" />
+ <path
+ style="fill:#00ff66;fill-rule:evenodd;stroke:#000000;stroke-width:1.45176756;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Lstart)"
+ d="m 224.53028,199.71995 -0.0271,-46.51641 0,0"
+ id="path84271"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker84395)"
+ d="m 77.747355,186.52285 116.428575,-50 0.71428,0.71429"
+ id="path84393"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path84489"
+ d="m 135.69749,276.32631 61.07022,-26.22647 0.37466,0.37466"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker84491)" />
+ <g
+ transform="translate(0,336)"
+ id="g85041">
+ <circle
+ r="24.283289"
+ cy="127.36221"
+ cx="225"
+ id="circle85043"
+ style="opacity:1;fill:#0044aa;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path85045"
+ d="m 224.53028,199.71995 -0.0271,-46.51641 0,0"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.45176756;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Lstart)" />
+ </g>
+ <g
+ id="g85047"
+ transform="translate(0,444)">
+ <circle
+ style="opacity:1;fill:#0044aa;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle85049"
+ cx="225"
+ cy="127.36221"
+ r="24.283289" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.45176756;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Lstart)"
+ d="m 224.53028,199.71995 -0.0271,-46.51641 0,0"
+ id="path85051"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g89373">
+ <circle
+ r="24.283289"
+ cy="677.36218"
+ cx="225"
+ id="circle85055"
+ style="opacity:1;fill:#0044aa;fill-opacity:1;stroke:#000000;stroke-width:1.43342268;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path85057"
+ d="m 224.53028,749.71995 -0.0271,-46.51641 0,0"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.45176756;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker87335)" />
+ </g>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker85133)"
+ d="m 195.16419,450.32631 -61.07022,-26.22647 -0.37466,0.37466"
+ id="path85131"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path85767"
+ d="m 192.91204,572.52285 -116.428578,-50 -0.71428,0.71429"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker85769)" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path87423"
+ d="m 224.53028,95.71995 -0.0271,-46.51641 0,0"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.45200002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker87425)" />
+ </g>
+</svg>
TALKS="2012_-_Introduction_to_the_Pakfire_Build_Service"
TALKS="${TALKS} 2014_-_A_look_into_the_past_and_future"
TALKS="${TALKS} 2015_-_IPFire_3_Networking"
+TALKS="${TALKS} 2015_-_Submitting_Patches"
for talk in ${TALKS}; do
(