From fca59bea770346cf1c1f9b0e00cb48a61b44a8f3 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 25 Oct 2015 21:00:20 +0100 Subject: import of old now defunct presentation slides svn repo --- .../OLS2004-proceedings/bin/CreateIndiv.pl | 222 +++++++++++++++++++++ .../OLS2004-proceedings/bin/cleanurl.pl | 61 ++++++ .../OLS2004-proceedings/bin/makeMainPaper.pl | 81 ++++++++ .../OLS2004-proceedings/bin/masterToHtml.pl | 32 +++ .../OLS2004-proceedings/bin/parseall.pl | 126 ++++++++++++ 5 files changed, 522 insertions(+) create mode 100755 2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/CreateIndiv.pl create mode 100755 2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/cleanurl.pl create mode 100755 2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/makeMainPaper.pl create mode 100755 2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/masterToHtml.pl create mode 100755 2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/parseall.pl (limited to '2004/netfilter-failover-ols2004/OLS2004-proceedings/bin') 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 = )) { + chomp $ln; + push(@authors, $ln); +} +close(AUTHORS); + +open(TITLES, "grep coltoctitle ./MasterOLS.tex|") or die "nogrep2"; +while (defined($ln = )) { + chomp $ln; + push @titles, $ln; +} +close(TITLES); + +open(IMPORTS, "grep import ./MasterOLS.tex|") or die "nogrep3"; +while (defined($ln = )) { + chomp $ln; + push @imports, $ln; +} +close(IMPORTS); + +open(PAGENO, "grep coltocauthor ./MasterOLS-2side.toc|") or die "nogrep4"; +while (defined($ln = )) { + 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 = )) { + 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,')) { + 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, ')) { + 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 "\n\n\n"; +while (defined($ln = )) { + chomp $ln; + next if ($ln =~ /^\s*$/); + next if ($ln =~ /^\s*%/); + + if ($ln =~ /coltocauthor{(.*?)}/) { + $foo = $1; + $foo =~ s/\\//g; + print "\n \n"; + $in = 1; + } + if ($ln =~ /coltoctitle{(.*?)}/) { + $title = $1; + } + if ($ln =~ /import{(.*)}/) { + $fyle = $1; + if ($fyle ne 'missing') { + print " \n\n"; + } else { + print " \n\n"; + } + $in = 0; + } +} +print "
$foo${title}
${title}
\n\n\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,'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 = )) { + 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, ')) { + 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); -- cgit v1.2.3