summaryrefslogtreecommitdiff
path: root/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2015-10-25 21:00:20 +0100
committerHarald Welte <laforge@gnumonks.org>2015-10-25 21:00:20 +0100
commitfca59bea770346cf1c1f9b0e00cb48a61b44a8f3 (patch)
treea2011270df48d3501892ac1a56015c8be57e8a7d /2004/netfilter-failover-ols2004/OLS2004-proceedings/bin
import of old now defunct presentation slides svn repo
Diffstat (limited to '2004/netfilter-failover-ols2004/OLS2004-proceedings/bin')
-rwxr-xr-x2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/CreateIndiv.pl222
-rwxr-xr-x2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/cleanurl.pl61
-rwxr-xr-x2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/makeMainPaper.pl81
-rwxr-xr-x2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/masterToHtml.pl32
-rwxr-xr-x2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/parseall.pl126
5 files changed, 522 insertions, 0 deletions
diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/CreateIndiv.pl b/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/CreateIndiv.pl
new file mode 100755
index 0000000..5905008
--- /dev/null
+++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/CreateIndiv.pl
@@ -0,0 +1,222 @@
+#!/usr/bin/perl -w
+
+$preface = q{\newcount\olsmaster
+\olsmaster=1
+
+\documentclass[twocolumn,twoside,12pt]{combine}
+\usepackage{ols}
+\ifpdf
+\usepackage[pdftex]{epsfig}
+\else
+\usepackage{epsfig}
+\fi
+\usepackage{rotating}
+
+% Other packages that authors have used...
+\usepackage[modulo]{lineno}
+\usepackage{alltt}
+
+\usepackage[T1]{fontenc}
+\ifpdf
+\usepackage[pdftex]{graphicx}
+\else
+\usepackage{graphicx}
+\fi
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+\usepackage{csty}
+
+\usepackage{enumerate}
+\usepackage{geometry}
+%%%%% html breaks 'combine' rather badly
+% \usepackage{html}
+%%% hyperref is nearly as bad
+% \usepackage{hyperref}
+\usepackage{isolatin1}
+\usepackage{latexsym}
+\usepackage{longtable}
+\usepackage{multicol}
+\usepackage{cprog}
+\usepackage{float}
+\usepackage{supertabular}
+\usepackage{textcomp}
+\usepackage{times}
+\usepackage{url}
+\usepackage{usenix}
+\usepackage{wrapfig}
+\usepackage{fancyvrb}
+
+\title{{\em\normalsize Reprinted from the}\\\\
+Proceedings of the\\\\
+Linux Symposium}
+\author{\vspace{4in}}
+\date{July 21th--24th, 2004\\\\
+ Ottawa, Ontario\\\\
+ Canada}
+
+% make room for "OLS2004...pagenumber" header
+\setlength{\topmargin}{-0.5in}
+\setlength{\headheight}{0.2in}
+\setlength{\headsep}{0.3in}
+
+\thispagestyle{empty}
+\pagestyle{empty}
+%%%%%%%%%%%%%%%%% DOC STARTS HERE %%%%%%%%%%%%%%%%%%%%
+\begin{document}
+\pagestyle{empty}
+\thispagestyle{empty}
+
+
+%%%%%%%%%%%%%% TITLE PAGE %%%%%%%%%%%%%%%%%%%
+\twocolumn[\pagestyle{empty}\thispagestyle{empty} \maketitle ]
+
+
+%%%%%%%%%%%%%%%%%%%%% CREDITS PAGE %%%%%%%%%%%%%%%%%%
+\thispagestyle{empty}
+\twocolumn
+\thispagestyle{empty}
+%%% \thispagestyle{empty}
+\begin{minipage}[t][0.95\textheight]{\textwidth}
+\thispagestyle{empty}
+
+\vspace{2cm}
+
+\textbf{{\Large Conference Organizers}}
+
+\vspace{5mm}
+\begin{large}
+\hspace*{0.5in}Andrew J.\ Hutton, \textit{Steamballoon, Inc.}\\\\
+\hspace*{0.5in}Stephanie Donovan, \textit{Linux Symposium}\\\\
+\hspace*{0.5in}C.\ Craig Ross, \textit{Linux Symposium}
+\end{large}
+
+\vspace{1cm}
+\textbf{{\Large Review Committee}}
+
+\vspace{5mm}
+\begin{large}
+\hspace*{0.5in}Jes Sorensen, \textit{Wild Open Source, Inc.}\\\\
+\hspace*{0.5in}Matt Domsch, \textit{Dell}\\\\
+\hspace*{0.5in}Gerrit Huizenga, \textit{IBM}\\\\
+\hspace*{0.5in}Matthew Wilcox, \textit{Hewlett-Packard}\\\\
+\hspace*{0.5in}Dirk Hohndel, \textit{Intel}\\\\
+\hspace*{0.5in}Val Henson, \textit{Sun Microsystems}\\\\
+\hspace*{0.5in}Jamal Hadi Salimi, \textit{Znyx}\\\\
+\hspace*{0.5in}Andrew Hutton, \textit{Steamballoon, Inc.}
+\end{large}
+
+\vspace{1cm}
+
+\textbf{{\Large Proceedings Formatting Team}}
+
+\vspace{5mm}
+\begin{large}
+\hspace*{0.5in}John W.\ Lockhart, \textit{Red Hat, Inc.}\\\\
+\end{large}
+
+
+% \vspace*{\fill}
+
+\begin{center}
+\vspace{2.5in}
+Authors retain copyright to all submitted papers, but have granted
+unlimited redistribution rights to all as a condition of submission.
+\end{center}
+\end{minipage}
+
+%%%%%%%% PAGE HEADINGS DEFINITIONS %%%%%%%%%%%%%%%%%%%%
+\pagestyle{myheadings}
+\markboth{~~{\textbullet}~~Linux Symposium\ ~\hrulefill\ }{\ \hrulefill\ Linux Symposium 2004~~{\textbullet}~~}
+
+%%%%%%%%%%%%%%% PAPERS BEGIN HERE %%%%%%%%%%%%%%%%%%%%%%%%%%
+};
+
+###### THIS IS THE SORT OF STUFF THAT MAKES UP THE MIDDLE...
+### \setcounter{page}{176}
+### \begin{papers}
+### \coltocauthor{Kai Germaschewski} % { University of Iowa}
+### \coltoctitle{Kernel configuration and building in Linux 2.5}
+### \label{art16}
+### \import{kbuild}
+
+$ender = q{\end{papers}
+\clearpage
+\end{document}
+};
+
+# print "hey, the quotes worked\n";
+@authors = ( );
+@titles = ( );
+@imports = ( );
+@pagenos = ( );
+
+open(AUTHORS, "grep coltocauthor ./MasterOLS.tex|") or die "nogrep";
+while (defined($ln = <AUTHORS>)) {
+ chomp $ln;
+ push(@authors, $ln);
+}
+close(AUTHORS);
+
+open(TITLES, "grep coltoctitle ./MasterOLS.tex|") or die "nogrep2";
+while (defined($ln = <TITLES>)) {
+ chomp $ln;
+ push @titles, $ln;
+}
+close(TITLES);
+
+open(IMPORTS, "grep import ./MasterOLS.tex|") or die "nogrep3";
+while (defined($ln = <IMPORTS>)) {
+ chomp $ln;
+ push @imports, $ln;
+}
+close(IMPORTS);
+
+open(PAGENO, "grep coltocauthor ./MasterOLS-2side.toc|") or die "nogrep4";
+while (defined($ln = <PAGENO>)) {
+ chomp $ln;
+ push @pagenos, $ln;
+}
+close(PAGENO);
+
+$i = 0;
+foreach my $author (@authors) {
+ if (!defined($author) or !$author) {
+ print STDERR "Hey, undef author!\n";
+ exit 1;
+ }
+ $title = $titles[$i];
+ $import = $imports[$i];
+ $pageno = $pagenos[$i];
+ if ($author =~ /coltocauthor{(.*)}/) {
+ $a = $1;
+ if ($a =~ /(\S+ )*(\S+)/) {
+ $lastName = $2;
+ $fileName = "Reprint-${lastName}-OLS2004.tex";
+ $fileName =~ s/\'//;
+ ### \setcounter{page}{176}
+ ### \begin{papers}
+ if ($pageno =~ /{.*}{(\d+)}$/) {
+ open(OUT, ">$fileName") or die "cannot open $fileName";
+ $p = $1 - 1;
+ # print "$fileName\n";
+ print OUT "$preface\n";
+ print OUT '\setcounter{page}{' . $p . '}', "\n";
+ print OUT '\begin{papers}[\clearpage]', "\n";
+ print OUT "$author\n";
+ print OUT "$title\n";
+ print OUT "$import\n\n";
+ print OUT "$ender\n";
+ close(OUT);
+ # print " pageno: $p\n\n";
+ } else {
+ print STDERR "Hey, no pageno: $pageno\n";
+ }
+ }
+ # print STDERR "Got author: $a\n lastname: $lastName\n";
+ } else {
+ print STDERR "Hey, no author here: $author\n";
+ }
+ $i++;
+}
+
+
diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/cleanurl.pl b/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/cleanurl.pl
new file mode 100755
index 0000000..d5a13da
--- /dev/null
+++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/cleanurl.pl
@@ -0,0 +1,61 @@
+#!/usr/bin/perl -w
+my $ln;
+
+
+while (defined($ln = <STDIN>)) {
+ chomp $ln;
+ next if ($ln =~m/^\s*>linuxsymposium\s+/);
+ next if (($ln =~ m/^\s*Content\s+/) && ($ln =~ m/\s+Related\s*$/));
+ next if (($ln =~ m|^\s*Register/Login\s+|) && ($ln =~ m/\s+Venue\s*$/));
+ next if (($ln =~ m/^\s*Paper\s+/) && ($ln =~ m/\s+Travel\s*$/));
+
+ if (($ln =~ m/^\s*Presentations\s+/) && ($ln =~ m/\s+FAQ\s*$/)) {
+ $ln =~ s/^\s*Presentations\s+//;
+ $ln =~ s/\s+FAQ\s*$//;
+ }
+ $ln =~ s/^\s*Tutorials\s+//;
+ if (($ln =~ m|^\s*BOFS/Meetings\s+|) && ($ln =~ m/\s+Archives\s*$/)) {
+ $ln =~ s|^\s*BOFS/Meetings\s+||;
+ $ln =~ s/\s+Archives\s*$//;
+ }
+ $ln =~ s/^\s*Sponsors\s+//;
+ if (($ln =~ m/^\s*Contacts\s+/) && ($ln =~ m/\s+Photos\s*$/)) {
+ $ln =~ s/^\s*Contacts\s+//;
+ $ln =~ s/\s+Photos\s*$//;
+ }
+ if (($ln =~ m/^\s*Information\s+/) && ($ln =~ m/\s+200\d\s*$/)) {
+ $ln =~ s/^\s*Information\s+//;
+ $ln =~ s/\s+200\d\s*$//;
+ }
+ if (($ln =~ m/^\s*Home\s+/) && ($ln =~ m/\s+200\d\s*$/)) {
+ $ln =~ s/^\s*Home\s+//;
+ $ln =~ s/\s+200\d\s*$//;
+ }
+ $ln =~ s/^\s+200\d\s*$//;
+ $ln =~ s/^\s+199\d\s*$//;
+ $ln =~ s/\s+200\d\s*$//;
+ $ln =~ s/\s+199\d\s*$//;
+ $ln =~ s/\s+Proceedings\s*$//;
+ $ln =~ s/\s+Valid\sXHTML\s*$//;
+ $ln =~ s/\s+1\.0!\s*$//;
+ $ln =~ s/^\s+//g;
+ $ln =~ s/\s+$//g;
+
+ print '% ' if ($ln =~ m/^http:/i);
+ print "$ln\n";
+
+ # if (($ln =~ m/^\s*\s+/) && ($ln =~ m/\s+\s*$/));
+ # if (($ln =~ m/^\s*\s+/) && ($ln =~ m/\s+\s*$/));
+
+ # next if (($ln =~ m/^\s*\s+/) && ($ln =~ m/\s+\s*$/));
+ # next if (($ln =~ m/^\s*\s+/) && ($ln =~ m/\s+\s*$/));
+ # next if (($ln =~ m/^\s*\s+/) && ($ln =~ m/\s+\s*$/));
+ # next if (($ln =~ m/^\s*\s+/) && ($ln =~ m/\s+\s*$/));
+ # next if (($ln =~ m/^\s*\s+/) && ($ln =~ m/\s+\s*$/));
+ # next if (($ln =~ m/^\s*\s+/) && ($ln =~ m/\s+\s*$/));
+ # next if (($ln =~ m/^\s*\s+/) && ($ln =~ m/\s+\s*$/));
+ # next if (($ln =~ m/^\s*\s+/) && ($ln =~ m/\s+\s*$/));
+ # next if ($ln =~ m/\s+\s*$/);
+ # next if ($ln =~ m//);
+
+}
diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/makeMainPaper.pl b/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/makeMainPaper.pl
new file mode 100755
index 0000000..60f3782
--- /dev/null
+++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/makeMainPaper.pl
@@ -0,0 +1,81 @@
+#!/usr/bin/perl -w
+
+#
+# Creates all papers with minimal content. Caution: clobbers existing papers!
+# Run from top-level directory (GCC2004 or OLS2004), and relies on the
+# Master.tex file being correct.
+#
+# It's probably easier to make a copy of TEMPLATES/Blank.tex and edit
+# it by hand than to mess with this script. But it's included anyway,
+# just in case it's handy.
+
+open(IN,'<MasterOLS.tex') || die 'Cannot open MasterOLS.tex';
+my $inEntry = 0;
+my $author = '';
+my $instit = '';
+my $title = '';
+my $dirName = '';
+my @hrefs;
+my $paperCount = 0;
+my @keyNames = qw(__TITLE__ __AUTHOR__ __INSTITUTION__ __EMAIL__ __ABSTRACT__);
+
+while (defined($ln = <IN>)) {
+ chomp $ln;
+ next if ($ln =~ m/^\s*%*\s*$/); # skip blanks/comments
+ if (($ln =~ m/coltocauthor/) || (1 == $inEntry)) {
+ if ($ln =~ m/coltocauthor{(.*?)}\s+%\s+(.*)/) {
+ $author = $1;
+ $instit = $2;
+ $inEntry = 1;
+ $instit =~ s/\s+$//g;
+ } elsif ($ln =~ m/coltoctitle{(.*?)}/) {
+ $title = $1;
+ } elsif ($ln =~ m/import{([^}]+)}/) {
+ $dirName = $1;
+ push @hrefs, {
+ __AUTHOR__ => $author,
+ __INSTITUTION__ => $instit,
+ __TITLE__ => $title,
+ __EMAIL__ => 'your@email.address',
+ dirName => $dirName,
+ __ABSTRACT__ => ($dirName . '-abstract')};
+ $author = '';
+ $instit = '';
+ $title = '';
+ $dirName = '';
+ $inEntry = 0;
+ } elsif ($ln =~ m/label{gccart/) {
+ $paperCount++;
+ }
+ }
+}
+close(IN);
+
+print "found: count: $paperCount with ", (1 + $#hrefs), " entries\n";
+my $i = 1;
+for my $h (@hrefs) {
+ my $paper = $h->{dirName} . '/' . $h->{dirName} . '.tex';
+ printf "%02d: %s: %s | %s | %s | %s\n", $i, $paper,
+ $h->{__AUTHOR__},
+ $h->{__INSTITUTION__},
+ $h->{__TITLE__},
+ $h->{dirName};
+ $i++;
+
+ open(OUT, ">$paper") || die "Cannot open $paper for writing";
+ open(IN, '<TEMPLATES/Blank.tex') || die 'Cannot open TEMPLATES/Blank.tex for reading';
+ while (defined($ln = <IN>)) {
+ chomp $ln;
+ for my $r (@keyNames) {
+ my $v = $h->{$r};
+ $ln =~ s/$r/$v/;
+ }
+ print OUT "$ln\n";
+ }
+ print OUT "\n";
+ close(IN);
+ close(OUT);
+}
+
+
+
diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/masterToHtml.pl b/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/masterToHtml.pl
new file mode 100755
index 0000000..85be495
--- /dev/null
+++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/masterToHtml.pl
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+
+# An abject hack, but produces something that can be tidied up by hand.
+
+$in = 0;
+print "<html>\n<title></title>\n<body>\n<table>";
+while (defined($ln = <STDIN>)) {
+ chomp $ln;
+ next if ($ln =~ /^\s*$/);
+ next if ($ln =~ /^\s*%/);
+
+ if ($ln =~ /coltocauthor{(.*?)}/) {
+ $foo = $1;
+ $foo =~ s/\\//g;
+ print "<tr>\n <td>$foo</td>\n";
+ $in = 1;
+ }
+ if ($ln =~ /coltoctitle{(.*?)}/) {
+ $title = $1;
+ }
+ if ($ln =~ /import{(.*)}/) {
+ $fyle = $1;
+ if ($fyle ne 'missing') {
+ print " <td><a href=\"${fyle}.pdf\">${title}</a></td>\n</tr>\n";
+ } else {
+ print " <td>${title}</td>\n</tr>\n";
+ }
+ $in = 0;
+ }
+}
+print "</table>\n</body>\n</html>\n";
+
diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/parseall.pl b/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/parseall.pl
new file mode 100755
index 0000000..f00a7c2
--- /dev/null
+++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/parseall.pl
@@ -0,0 +1,126 @@
+#!/usr/bin/perl -w
+
+open(IN,'<all.txt') || die 'cannot open all.txt for read';
+my @recs;
+my $ref;
+# http://www.linuxsymposium.org/2004/view_abstract.php?content_key=24
+my $aurl='http://linuxsymposium.org/2004/view_abstract.php?content_key=';
+my %fields=(A=>1,I=>1,T=>1,E=>1,N=>1,);
+my @keyNames = qw(__TITLE__ __AUTHOR__ __INSTITUTION__ __EMAIL__ __ABSTRACT__);
+
+sub newrec {
+ my $r = {};
+ for my $i qw(A I T E dname abstract) {
+ $r->{$i} = '';
+ }
+ $r->{'N'} = 0;
+ for my $i (@keyNames) {
+ $r->{$i} = 'BUG';
+ }
+ return $r;
+}
+sub doItem {
+ my ($r, $l) = @_;
+ my ($f, $rest) = split /=/,$l;
+ die "bad record: $l" if (!exists($fields{$f}));
+ $rest =~ s/\s+$//g;
+ $rest =~ s/^none$/~/;
+ $r->{$f} = $rest;
+ if ($f eq 'A') {
+ my @fname = split /\s+/,lc($rest);
+ my $aname = pop(@fname);
+ $aname =~ s/[[:punct:]]//g;
+ $r->{dname} = $aname;
+ $r->{__AUTHOR__} = $r->{A};
+ $r->{__ABSTRACT__} = ($r->{dname} . '-abstract');
+ } elsif ($f eq 'N') {
+ $r->{abstract} = ($aurl . $rest);
+ } elsif ($f eq 'T') {
+ $r->{__TITLE__} = $r->{T};
+ } elsif ($f eq 'I') {
+ $r->{__INSTITUTION__} = $r->{I};
+ } elsif ($f eq 'E') {
+ $r->{__EMAIL__} = $r->{E};
+ }
+}
+
+$ref = newrec();
+while (defined($ln = <IN>)) {
+ chomp $ln;
+ if ($ln =~ m/^\s*$/) {
+ push @recs, $ref if ($ref);
+ $ref = newrec();
+ } else {
+ doItem($ref, $ln);
+ }
+}
+close(IN);
+
+# print "got $#recs records\n";
+my $cnt = 1;
+open(OUT,'>Authors.tex') || die "cannot open Authors.tex for write";
+open(CLEAN,'>Cleanup.sh') || die "cannot open Cleanup.sh for write";
+print CLEAN '#!/bin/bash', "\n\n";
+for my $r (@recs) {
+ print OUT '% email=';
+ print OUT $r->{E}, "\n";
+ print OUT '% url=', $r->{abstract}, "\n";
+
+ print OUT '\coltocauthor{';
+ $r->{A} =~ s/\./.\\/g;
+ print OUT $r->{A};
+ print OUT '}', "\n";
+
+ print OUT '\coltoctitle{';
+ print OUT $r->{T};
+ print OUT '}', "\n";
+
+ print OUT '\label{';
+ printf OUT "art%02d", $cnt;
+ print OUT '}', "\n";
+
+ print OUT '\import{';
+ print OUT $r->{dname};
+ print OUT '}', "\n";
+ print OUT "\n";
+ print CLEAN 'rm -rf ', $r->{dname}, "\n";
+
+ my $paper = $r->{dname} . '/' . $r->{dname} . '.tex';
+ my $setup = $r->{dname} . '/setup.sh';
+ if (! -d $r->{dname}) {
+ mkdir($r->{dname});
+ if (! -f $paper) {
+ open(OWT, ">$paper") || die "Cannot open $paper for writing";
+ open(INN, '<TEMPLATES/Blank.tex') || die 'Cannot open TEMPLATES/Blank.tex for reading';
+ my $ln;
+ while (defined($ln = <INN>)) {
+ chomp $ln;
+ for my $x (@keyNames) {
+ my $v = $r->{$x};
+
+ $ln =~ s/$x/$v/;
+ }
+ print OWT "$ln\n";
+ }
+ print OWT "\n";
+ close(INN);
+ close(OWT);
+ }
+ if (! -f $setup) {
+ open(OWT, ">$setup") || die "Cannot open $setup for writing";
+ print OWT '#!/bin/bash', "\n\n";
+ for my $i qw(ols-fonts.tex ols.sty zrl.sty) {
+ print OWT 'ln -s ../TEMPLATES/', $i, ' . || /bin/true', "\n";
+ }
+ print OWT 'cat ../TEMPLATES/ProtoMake | sed -e ', "'s/TOP=/TOP=",
+ $r->{dname}, "/' > Makefile\n";
+ print OWT 'echo -n ', "'%'", '> ', "'", $r->{__ABSTRACT__}, ".tex'", "\n";
+ print OWT "links -dump '", $r->{abstract}, "' | ../bin/cleanurl.pl >> ",
+ $r->{__ABSTRACT__}, '.tex', "\n";
+ close(OWT);
+ }
+ }
+ $cnt++;
+}
+close(OUT);
+close(CLEAN);
personal git repositories of Harald Welte. Your mileage may vary