diff --git a/common/modules/swh-fuse.org b/common/modules/swh-fuse.org index 9649825..461ee9d 100644 --- a/common/modules/swh-fuse.org +++ b/common/modules/swh-fuse.org @@ -1,89 +1,114 @@ #+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %10BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra) %8BEAMER_opt(Opt) #+INCLUDE: "prelude.org" :minlevel 1 ** Software Heritage Filesystem (SwhFS) :PROPERTIES: :CUSTOM_ID: oneslide :END: *** The *Software Heritage Filesystem (SwhFS)* is a user-space POSIX filesystem that enables browsing parts of the Software Heritage archive as if it were locally available. *** - code: https://forge.softwareheritage.org/source/swh-fuse/ - documentation: https://docs.softwareheritage.org/devel/swh-fuse/ *** #+BEGIN_EXPORT latex \begin{thebibliography}{Foo Bar, 1969} \bibitem{Allancon2021} Thibault Allançon, Antoine Pietri, Stefano Zacchiroli \newblock The Software Heritage Filesystem (SwhFS): Integrating Source Code Archival with Development \newblock ICSE 2021: The 43rd International Conference on Software Engineering \newblock \url{https://arxiv.org/abs/2102.06390} \end{thebibliography} #+END_EXPORT * Software Heritage Filesystem (SwhFS) --- Tutorial :PROPERTIES: :CUSTOM_ID: tutorial :END: ** Software Heritage Filesystem (SwhFS) --- Tutorial *** #+BEGIN_SRC $ pip install swh.fuse # install SwhFS $ mkdir swhfs $ swh fs mount swhfs/ # mount the archive $ ls -1F swhfs/ # list entry points archive/ # <- start browsing from here cache/ origin/ README #+END_SRC ** Software Heritage Filesystem (SwhFS) --- Tutorial (cont.) *** #+BEAMER: \footnotesize #+BEGIN_SRC $ cd swhfs/ $ cat archive/swh:1:cnt:c839dea9e8e6f0528b468214348fee8669b305b2 #include int main(void) { printf("Hello, World!\n"); } #+END_SRC ** Software Heritage Filesystem (SwhFS) --- Tutorial (cont.) *** #+BEAMER: \footnotesize #+BEGIN_SRC $ cd archive/swh:1:dir:1fee702c7e6d14395bbf5ac3598e73bcbf97b030 $ ls | wc -l 127 $ grep -i antenna THE_LUNAR_LANDING.s | cut -f 5 # IS THE LR ANTENNA IN POSITION 1 YET # BRANCH IF ANTENNA ALREADY IN POSITION 1 #+END_SRC ** Software Heritage Filesystem (SwhFS) --- Tutorial (cont.) *** #+BEAMER: \footnotesize #+BEGIN_SRC $ cd archive/swh:1:rev:9d76c0b163675505d1a901e5fe5249a2c55609bc $ ls -F history/ meta.json@ parent@ parents/ root@ $ jq '.author.name, .date, .message' meta.json "Michal Golebiowski-Owczarek" "2020-03-02T23:02:42+01:00" "Data:Event:Manipulation: Prevent collisions with Object.prototype ..." $ find root/src/ -type f -name '*.js' | xargs cat | wc -l 10136 #+END_SRC + +** Software Heritage Filesystem (SwhFS) --- Tutorial (cont.) +*** + #+BEAMER: \footnotesize + #+BEGIN_SRC +$ swh web search git-annex --limit 1 +... +git://git.joeyh.name/git-annex.git \ + https://archive.softwareheritage.org/api/1/origin/git://git.joeyh.name/git-annex.git/visits/ +... + +$ swh web search git-annex --url-encode | cut -f 1 +git%3A%2F%2Fgit.joeyh.name%2Fgit-annex.git + +$ cd origin/git%3A%2F%2Fgit.joeyh.name%2Fgit-annex.git +$ ls -F +2020-12-19/ + +$ ls 2020-12-19/snapshot/refs/heads/master/root/ +Annex/ COPYRIGHT NEWS +Annex.hs Creds.hs P2P/ +Assistant/ Crypto.hs README +Assistant.hs Database/ Remote/ +Backend/ debian/ RemoteDaemon/ +#+END_SRC diff --git a/talks-public/2021-03-20-libreplanet/2021-03-20-libreplanet.org b/talks-public/2021-03-20-libreplanet/2021-03-20-libreplanet.org index d348b04..296b0b9 100644 --- a/talks-public/2021-03-20-libreplanet/2021-03-20-libreplanet.org +++ b/talks-public/2021-03-20-libreplanet/2021-03-20-libreplanet.org @@ -1,97 +1,97 @@ #+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %10BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra) %8BEAMER_opt(Opt) #+TITLE: Software Heritage #+SUBTITLE: The Great Library of Source Code -#+BEAMER_HEADER: \date[2021-03-20, LibrePlanet]{20 March 2021\\LibrePlanet\\online} +#+BEAMER_HEADER: \date[2021-03-20, LibrePlanet]{20 March 2021\\LibrePlanet} #+DATE: 20 March 2021 #+INCLUDE: "../../common/modules/prelude-toc.org" :minlevel 1 #+INCLUDE: "../../common/modules/169.org" -#+BEAMER_HEADER: \institute[Software Heritage]{Université de Paris \& Inria --- \href{mailto:zack@upsilon.cc}{\tt zack@upsilon.cc}} +#+BEAMER_HEADER: \institute[Software Heritage]{Université de Paris \& Inria\\zack@upsilon.cc / @zacchiro / @zacchiro@mastodon.xyz} #+BEAMER_HEADER: \author{Stefano Zacchiroli} * The Free Software commons ** Our Software Commons #+INCLUDE: "../../common/modules/foss-commons.org::#commonsdef" :only-contents t #+BEAMER: \pause *** Source code is /a precious part/ of our commons \hfill are we taking care of it? #+INCLUDE: "../../common/modules/swh-motivations-foss.org::#fragile" :minlevel 2 * Software Heritage #+INCLUDE: "../../common/modules/swh-goals-oneslide-vertical.org::#goals" :minlevel 2 #+INCLUDE: "../../common/modules/principles-compact.org::#principles" :minlevel 2 #+INCLUDE: "../../common/modules/status-extended.org::#archivinggoals" :minlevel 2 #+INCLUDE: "../../common/modules/status-extended.org::#architecture" :minlevel 2 :only-contents t #+INCLUDE: "../../common/modules/data-model.org::#merklestruct" :minlevel 2 #+INCLUDE: "../../common/modules/status-extended.org::#archive" :minlevel 2 ** Software Heritage and GNU Guix #+BEAMER: \begin{center}\hfill\includegraphics[height=0.6\textheight]{swh-guix-1}\hfill\includegraphics[height=0.6\textheight]{swh-guix-2}\hfill\end{center} #+BEAMER: \scriptsize - \url{https://www.softwareheritage.org/2019/04/18/software-heritage-and-gnu-guix-join-forces-to-enable-long-term-reproducibility/} - \url{https://guix.gnu.org/blog/2019/connecting-reproducible-deployment-to-a-long-term-source-code-archive/} * Using the archive ** Web interface #+BEAMER: \centering \huge #+BEAMER: \href{https://archive.softwareheritage.org}{archive.softwareheritage.org} #+BEAMER: \vfill #+BEAMER: DEMO TIME ! # searches: # - gnu gcc git # - git-annex # - apollo11 chrislgarry # - unix history dspinellis #+INCLUDE: "../../common/modules/status-extended.org::#apiintro" :minlevel 2 #+INCLUDE: "../../common/modules/swhid.org::#oneslide" :minlevel 2 #+INCLUDE: "../../common/modules/swhid.org::#swhidentify" :minlevel 2 #+INCLUDE: "../../common/modules/swh-fuse.org::#oneslide" :minlevel 2 #+INCLUDE: "../../common/modules/swh-fuse.org::#tutorial" :minlevel 2 :only-contents t * How you can help ** You can help! *** Financially - Donations: [[https://www.softwareheritage.org/donate/][www.softwareheritage.org/donate/]] - Sponsoring: [[https://www.softwareheritage.org/support/sponsors/][www.softwareheritage.org/support/sponsors/]] *** :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: #+BEAMER: \vspace{-2mm} *** Coding - Developer info: [[https://www.softwareheritage.org/community/developers/][www.softwareheritage.org/community/developers/]] *** :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: #+BEAMER: \vspace{-2mm} *** Expanding archive coverage - [[https://save.softwareheritage.org/][save.softwareheritage.org]] - Development grants: [[https://framaforms.org/expression-of-interest-expanding-software-heritage-1589195728][framaforms.org/expression-of-interest-expanding-software-heritage-1589195728]] *** :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: #+BEAMER: \vspace{-2mm} *** Student opportunities - Internships: [[https://wiki.softwareheritage.org/wiki/Internships][wiki.softwareheritage.org/wiki/Internships]] - Google Summer of Code 2021: [[https://wiki.softwareheritage.org/wiki/gsoc][wiki.softwareheritage.org/wiki/gsoc]] * FAQ :B_appendix: :PROPERTIES: :BEAMER_env: appendix :END: ** Q: do you archive /only/ Free Software? - We only crawl origins /meant/ to host source code (e.g., forges) - Most (~90%) of what we /actually/ retrieve is textual content #+BEAMER: \vfill *** Our goal Archive *the entire Free Software Commons*, present and future. #+BEAMER: \vfill *** - Large parts of what we retrieve is /already/ Free Software, today - Most of the rest /will become/ Free Software in the long term - e.g., at copyright expiration