diff --git a/talks-public/2022-10-18-Henix/2022-10-18-Henix.org b/talks-public/2022-10-18-Henix/2022-10-18-Henix.org new file mode 100644 index 0000000..9ed9c2e --- /dev/null +++ b/talks-public/2022-10-18-Henix/2022-10-18-Henix.org @@ -0,0 +1,387 @@ +#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %10BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra) %8BEAMER_opt(Opt) +#+TITLE: The Software Heritage Archive +#+SUBTITLE: an essential infrastructure for industry +# #+AUTHOR: Benoit Chauvet +# #+EMAIL: contact@benoitchauvet.com +#+BEAMER_HEADER: \date[18/10/2022]{18/10/2022\\Club Qualité Logicielle} +#+BEAMER_HEADER: \title[www.softwareheritage.org]{The Software Heritage archive} +#+BEAMER_HEADER: \author[B. Chauvet~~~~ contact@benoitchauvet.com ~~~~ (CC-BY 4.0)]{Benoit Chauvet} +#+BEAMER_HEADER: \institute[Software Heritage]{Engineering Manager, Software Heritage\\Inria} +# #+BEAMER_HEADER: \setbeameroption{show notes on second screen} +#+BEAMER_HEADER: \setbeameroption{hide notes} +#+KEYWORDS: software heritage legacy preservation knowledge mankind technology +#+LATEX_HEADER: \usepackage{tcolorbox} +#+LATEX_HEADER: \definecolor{links}{HTML}{2A1B81} +#+LATEX_HEADER: \hypersetup{colorlinks,linkcolor=,urlcolor=links} + +# +# prelude.org contains all the information needed to export the main beamer latex source +# use prelude-toc.org to get the table of contents +# + +#+INCLUDE: "../../common/modules/prelude-toc.org" :minlevel 1 + + +#+INCLUDE: "../../common/modules/169.org" + +# +LaTeX_CLASS_OPTIONS: [aspectratio=169,handout,xcolor=table] + +#+LATEX_HEADER: \usepackage{bbding} +#+LATEX_HEADER: \DeclareUnicodeCharacter{66D}{\FiveStar} + +# +# If you want to change the title logo it's here +# +# +BEAMER_HEADER: \titlegraphic{\includegraphics[width=0.5\textwidth]{SWH-logo}} + +# aspect ratio can be changed, but the slides need to be adapted +# - compute a "resizing factor" for the images (macro for picblocks?) +# +# set the background image +# +# https://pacoup.com/2011/06/12/list-of-true-169-resolutions/ +# +#+BEAMER_HEADER: \pgfdeclareimage[height=90mm,width=160mm]{bgd}{swh-world-169.png} +#+BEAMER_HEADER: \setbeamertemplate{background}{\pgfuseimage{bgd}} +#+LATEX: \addtocounter{framenumber}{-1} + +* Introduction +#+INCLUDE: "../../common/modules/rdc-bio.org::#main" :only-contents t :minlevel 2 + +** Short Bio: Stefano Zacchiroli + :PROPERTIES: + :CUSTOM_ID: biosz + :END: + + - Free/Open Source Software activist (20+ years) + - \emph{IRILL} researcher + + \mbox{}\\ + \begin{minipage}[c]{0.18\linewidth} + \includegraphics[width=1.0\linewidth]{zack} + \end{minipage} + \begin{minipage}[c]{0.8\linewidth} + \begin{description} + \item[2010-2013] \emph{Debian} Project Leader + \item[2011] Associate Professor of Computer Science, Université de Paris, on leave at Inria + \item[2014-2017] \emph{Open Source Initiative (OSI)} director + \item[2015] \emph{Software Heritage} co-founder & CTO + \item[2021] Professor of Computer Science, \emph{Télécom Paris} + \end{description} + \end{minipage} + + +* The Software Heritage Archive + +** Why an archive ? Software is spread all around + :PROPERTIES: + :CUSTOM_ID: spread + :END: + #+latex: \begin{flushleft} + #+ATTR_LATEX: :width \extblockscale{.5\linewidth} + file:myriadsources.png + #+latex: \end{flushleft} + +*** Fashion victims + - many disparate development platforms + - a myriad places where distribution may happen + - projects tend to migrate from one place to another over time + +*** One place... :B_block: + :PROPERTIES: + :BEAMER_env: block + :END: + \hfill ... where can we find, track and search /all/ source code? + +** Why an archive ? Software is fragile + :PROPERTIES: + :CUSTOM_ID: fragile + :END: + #+latex: \begin{flushleft} + #+ATTR_LATEX: :width \extblockscale{.5\linewidth} + file:fragilecloud.png + #+latex: \end{flushleft} + +*** Like all digital information, FOSS is fragile +# - inconsiderate and/or malicious code loss (e.g., Code Spaces) + - link rot: projects are created, moved around, removed + - business-driven code loss (e.g., Gitorious, Google Code, Bitbucket) + - data rot: physical media with legacy software decay + +*** If a website disappears you go to the Internet Archive... :B_block: + :PROPERTIES: + :BEAMER_env: block + :END: + \hfill where do you go if (a repository on) GitHub or GitLab goes away? + +** Software is missing its own Research Infrastructure + :PROPERTIES: + :CUSTOM_ID: research + :END: + #+latex: \begin{flushleft} + #+ATTR_LATEX: :width \extblockscale{.4\linewidth} + file:atacama-telescope.jpg + #+latex: \mbox{}\\{\tiny Photo: ALMA(ESO/NAOJ/NRAO), R. Hills} + #+latex: \end{flushleft} +*** A wealth of software research on crucial issues... + - safety, security, test, verification, proof + - software engineering, software evolution + - empirical and big data studies + +*** If you study the stars, you go to Atacama... :B_block: + :PROPERTIES: + :BEAMER_env: block + :END: + \hfill ... where is the /very large telescope/ of source code? + + + +** Our mission: Collect, Preserve and Share + +*** Collect + :PROPERTIES: + :BEAMER_COL: .3 + :BEAMER_env: block + :END: + #+BEGIN_EXPORT latex + \begin{center} + \includegraphics[width=.7\linewidth]{this/collect.jpg} + \end{center} + #+END_EXPORT + Reference catalogue: + - *find* and *reference* all software source code (open source) + +*** Preserve + :PROPERTIES: + :BEAMER_COL: .3 + :BEAMER_env: block + :END: + #+BEGIN_EXPORT latex + \begin{center} + \includegraphics[width=.7\linewidth]{this/preserve.jpg} + \end{center} + #+END_EXPORT + Universal archive: + - *preserve* all the archived software source code *forever* + + +*** Share + :PROPERTIES: + :BEAMER_COL: .3 + :BEAMER_env: block + :END: + #+BEGIN_EXPORT latex + \begin{center} + \includegraphics[width=.7\linewidth]{this/share.jpg} + \end{center} + #+END_EXPORT + Research infrastructure: + - *enable analysis* of all software source code + - make every piece *identifiable* and freely *available* + +** Our principles + :PROPERTIES: + :CUSTOM_ID: principlesstatus + :END: +#+latex: \begin{center} +#+ATTR_LATEX: :width .6\linewidth +file:SWH-as-foundation-slim.png +#+latex: \end{center} +#+latex: \footnotesize\vspace{-3mm} + + #+latex: \centering + #+ATTR_LATEX: :width \extblockscale{.8\linewidth} + file:2022-05-06-archive-growth.png + +** Collect strategies + :PROPERTIES: + :CUSTOM_ID: automation + :END: + #+BEAMER: \begin{center} + #+BEAMER: \only<1>{\includegraphics[width=\extblockscale{\textwidth}]{swh-collect-strategies.pdf}} + #+BEAMER: \end{center} + +* A peek under the hood +** Crawling forges and repos +*** Forges and repositories + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: block + :END: + #+BEAMER: \begin{center} + #+BEAMER: \only<1>{\includegraphics[width=0.8\linewidth]{this/listers.png}} + #+BEAMER: \end{center} +*** Actual coverage + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: block + :END: + /Global development history/ *permanently archived* in a *uniform data model* + - over *12 billion* unique source files from almost *180 million* software projects + - *~900 TB* (uncompressed) blobs, *~25 B* nodes, *~300 B* edges + - Supported listers + - Supported loaders + +** Automation and storage (merkle graph) + :PROPERTIES: + :CUSTOM_ID: automation + :END: + #+BEAMER: \begin{center} + #+BEAMER: \only<1>{\includegraphics[width=1\linewidth]{swh-dataflow-merkle.png}} + #+BEAMER: \end{center} + +** Metadata landscape + +#+latex: \begin{center} + #+ATTR_LATEX: :width \linewidth +file:metadata_landscape_RDA11.png +#+latex: \end{center} + +** Software Heritage Identifiers (SWHIDs) \hfill [[https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html][(full spec)]] +*** SWHID structure + :PROPERTIES: + :CUSTOM_ID: oneslide + :END: + #+LATEX: \centering + #+LATEX: \includegraphics[width=0.8\linewidth]{SWHID-v1.4_3.png} + #+LATEX: \forcebeamerend + +*** An emerging standard + :PROPERTIES: + :BEAMER_COL: .6 + :BEAMER_env: block + :END: + - Linux Foundation[[https://spdx.github.io/spdx-spec/appendix-VI-external-repository-identifiers/#persistent-id][SPDX 2.2]] + - IANA-registered ="swh:"= URI prefix + - WikiData property [[https://www.wikidata.org/wiki/Property:P6138][P6138]] +*** examples : + :PROPERTIES: + :BEAMER_COL: .4 + :BEAMER_env: block + :END: + - [[https://archive.softwareheritage.org/swh:1:cnt:64582b78792cd6c2d67d35da5a11bb80886a6409;origin=https://github.com/virtualagc/virtualagc;visit=swh:1:snp:3c074afad81ad6b14d434b96e705e01d184752cf;anchor=swh:1:rev:007c2b95f301f9438b8b74d7993b7a3b9a66255b;path=/Luminary099/THE_LUNAR_LANDING.agc;lines=245-261/][Apollo 11 AGC excerpt]] + - [[https://archive.softwareheritage.org/swh:1:cnt:bb0faf6919fc60636b2696f32ec9b3c2adb247fe;origin=https://github.com/id-Software/Quake-III-Arena;visit=swh:1:snp:4ab9bcef131aaf449a7c01370aff8c91dcecbf5f;anchor=swh:1:rev:dbe4ddb10315479fc00086f08e25d968b4b43c49;path=/code/game/q_math.c;lines=549-572/][Quake III rsqrt]] + + +** Deposit : Save code now, add forge now, Deposit, SWHAP + +* Benefits for industry +** A universal software warehouse +** Map of the stars +** Persistent unique references + +* Industry use cases + +** Complete Corresponding Source (CCS) hosting + :PROPERTIES: + :CUSTOM_ID: ccs-compliance + :END: + #+BEAMER: \vspace{-1mm} +*** Complete Corresponding Source (CCS) requirement + #+BEGIN_QUOTE + For an executable work, complete source code means all the source code for + all modules it contains, plus any associated interface definition files, + plus the scripts used to control compilation and installation of the + executable.\hfill --- /GPLv2/ + #+END_QUOTE + + #+BEAMER: \vspace{-1mm} +*** CCS management in the real world + - CCS tarballs published at release time; URLs included in user manuals + - IT reorganizations → link rot (e.g., 404 on CCS URLs) → out of compliance + +# #+BEAMER: \pause + #+BEAMER: \vspace{-1mm} +*** A better approach \hfill (Intel+SWH prototype) + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .48 + :END: + Delegate CCS hosting to an archive: + 1. prepare CCS tarball + 2. deposit it to Software Heritage + 3. include SWHID in user manuals + +# #+BEAMER: \pause +*** Is it compliant? + :PROPERTIES: + :BEAMER_env: block + :BEAMER_COL: .55 + :END: + - yes! (with agreement with hoster) + - Cf. GPL FAQ /Can I put the binaries on my Internet server and put the + source on a different Internet site?/ + + +** Open Invention Network (OIN) + +*** Mission + +- World’s largest patent non-aggression community and free defensive patent pool +- Linux System : linux core + external open source components +- 3700+ members (Google, IBM/Red Hat, SUSE, Sony, NEC, Philips, Toyota) +- https://openinventionnetwork.com + +*** Software Heritage Contribution +- Use SWHIDs to reference FOSS patents + #+BEGIN_EXPORT latex + \begin{center} + \includegraphics[width=.9\linewidth]{this/oin_table.png} + \end{center} + #+END_EXPORT + + +* Getting involved +** An international, non profit initiative\hfill built for the long term + :PROPERTIES: + :CUSTOM_ID: support+sponsors + :END: +*** Sharing the vision :B_block: + :PROPERTIES: + :CUSTOM_ID: endorsement + :BEAMER_COL: .5 + :BEAMER_env: block + :END: + #+LATEX: \begin{center}{\includegraphics[width=\extblockscale{.4\linewidth}]{unesco_logo_en_285}}\end{center} + #+LATEX: \vspace{-0.8cm} + #+LATEX: \begin{center}\vskip 1em \includegraphics[width=\extblockscale{1.4\linewidth}]{support.pdf}\end{center} + #+latex: \small And many more ...\\ + #+latex:\mbox{}~~~~~~~\tiny\url{www.softwareheritage.org/support/testimonials} +*** Donors, members, sponsors :B_block: + :PROPERTIES: + :CUSTOM_ID: sponsors + :BEAMER_COL: .5 + :BEAMER_env: block + :END: + #+LATEX: \begin{center}\includegraphics[width=\extblockscale{.4\linewidth}]{inria-logo-new}\end{center} + #+LATEX: \begin{center} + # #+LATEX: \includegraphics[width=\extblockscale{.2\linewidth}]{sponsors-levels.pdf} + #+LATEX: \colorbox{white}{\includegraphics[width=\extblockscale{1.4\linewidth}]{sponsors.pdf}} + #+LATEX: \end{center} +# - sponsoring / partnership :: \hfill \url{sponsorship.softwareheritage.org} +*** :B_ignoreheading: + :PROPERTIES: + :BEAMER_env: ignoreheading + :END: +*** Research collaboration :B_picblock:noexport: + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: picblock + :BEAMER_OPT: pic=Qwant_Logo, leftpic=true + :END: + source code search engine +*** See more :noexport: + \hfill\tiny\url{http:://www.softwareheritage.org/support/testimonials} +*** Global network :B_picblock:noexport: + :PROPERTIES: + :BEAMER_COL: .5 + :BEAMER_env: picblock + :BEAMER_OPT: pic=fossid, leftpic=true, width=.3\linewidth + :END: + - first *independent mirror* + - increased reliability +** Become a partner +** Ambassadors program + +* END + \end{document} diff --git a/talks-public/2022-10-18-Henix/Makefile b/talks-public/2022-10-18-Henix/Makefile new file mode 100644 index 0000000..68fbee7 --- /dev/null +++ b/talks-public/2022-10-18-Henix/Makefile @@ -0,0 +1 @@ +include ../Makefile.slides diff --git a/talks-public/2022-10-18-Henix/this/collect.jpg b/talks-public/2022-10-18-Henix/this/collect.jpg new file mode 100644 index 0000000..74c10e9 Binary files /dev/null and b/talks-public/2022-10-18-Henix/this/collect.jpg differ diff --git a/talks-public/2022-10-18-Henix/this/listers.png b/talks-public/2022-10-18-Henix/this/listers.png new file mode 100644 index 0000000..508d259 Binary files /dev/null and b/talks-public/2022-10-18-Henix/this/listers.png differ diff --git a/talks-public/2022-10-18-Henix/this/oin_logo.jpg b/talks-public/2022-10-18-Henix/this/oin_logo.jpg new file mode 100644 index 0000000..1ad44e5 Binary files /dev/null and b/talks-public/2022-10-18-Henix/this/oin_logo.jpg differ diff --git a/talks-public/2022-10-18-Henix/this/oin_table.png b/talks-public/2022-10-18-Henix/this/oin_table.png new file mode 100644 index 0000000..c24d1ea Binary files /dev/null and b/talks-public/2022-10-18-Henix/this/oin_table.png differ diff --git a/talks-public/2022-10-18-Henix/this/preserve.jpg b/talks-public/2022-10-18-Henix/this/preserve.jpg new file mode 100644 index 0000000..5f001c0 Binary files /dev/null and b/talks-public/2022-10-18-Henix/this/preserve.jpg differ diff --git a/talks-public/2022-10-18-Henix/this/share.jpg b/talks-public/2022-10-18-Henix/this/share.jpg new file mode 100644 index 0000000..ca6552b Binary files /dev/null and b/talks-public/2022-10-18-Henix/this/share.jpg differ