diff --git a/roles/debuginfod/files/archlinux.png b/roles/debuginfod/files/archlinux.png new file mode 100644 index 0000000000000000000000000000000000000000..8830fe11852118ad93839a42dec9ff91da86950c Binary files /dev/null and b/roles/debuginfod/files/archlinux.png differ diff --git a/roles/debuginfod/files/index.html b/roles/debuginfod/files/index.html new file mode 100644 index 0000000000000000000000000000000000000000..22a2338e62e0a346467535435858e3ca8ad8acc6 --- /dev/null +++ b/roles/debuginfod/files/index.html @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> +<head> +<!-- HTML is shamelessly copied from https://debuginfod.debian.net/ --> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Debuginfod service – Arch Linux</title> +<meta name="generator" content="Org mode" /> +<script type="text/javascript"> +/* +@licstart The following is the entire license notice for the +JavaScript code in this tag. + +Copyright (C) 2012-2020 Free Software Foundation, Inc. + +The JavaScript code in this tag is free software: you can +redistribute it and/or modify it under the terms of the GNU +General Public License (GNU GPL) as published by the Free Software +Foundation, either version 3 of the License, or (at your option) +any later version. The code is distributed WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU GPL for more details. + +As additional permission under GNU GPL version 3 section 7, you +may distribute non-source (e.g., minimized or compacted) forms of +that code without the copy of the GNU GPL normally required by +section 4, provided you include this license notice and a URL +through which recipients can access the Corresponding Source. + + +@licend The above is the entire license notice +for the JavaScript code in this tag. +*/ +<!--/*--><![CDATA[/*><!--*/ + function CodeHighlightOn(elem, id) + { + var target = document.getElementById(id); + if(null != target) { + elem.cacheClassElem = elem.className; + elem.cacheClassTarget = target.className; + target.className = "code-highlighted"; + elem.className = "code-highlighted"; + } + } + function CodeHighlightOff(elem, id) + { + var target = document.getElementById(id); + if(elem.cacheClassElem) + elem.className = elem.cacheClassElem; + if(elem.cacheClassTarget) + target.className = elem.cacheClassTarget; + } +/*]]>*///--> +</script> +</head> +<body> +<div id="content"> +<h1 class="title">Debuginfod service – Arch Linux</h1> + +<div class="figure"> +<p><img src="archlinux.png" align="center" /> +</p> +</div> + +<p> +This is the <a href="https://sourceware.org/elfutils/Debuginfod.html">debuginfod</a> service for Arch Linux. For more information about +it, please refer to <a href="https://wiki.archlinux.org/title/Debuginfod">https://wiki.archlinux.org/title/Debuginfod</a>. +</p> + +<p> +The following environment variable must be set in your shell to use it: +</p> + +<div class="org-src-container"> +<pre class="src src-shell">DEBUGINFOD_URLS="https://debuginfod.archlinux.org" +</pre> +</div> + +<p> +A dashboard can be found on <a href="https://dashboards.archlinux.org/d/U0xac1x7z/debuginfod?orgId=1">https://dashboards.archlinux.org/</a>. +</p> +<p> +List of currently available packages can be found on <a href="/packages">here</a>. +</p> +</div> +</body> +</html> diff --git a/roles/debuginfod/files/packagelist.service b/roles/debuginfod/files/packagelist.service index 4935b10b0c2fcbacb586e0ef49da3e47e81712e1..0a2c11413208c01ccae3936b034554155192b102 100644 --- a/roles/debuginfod/files/packagelist.service +++ b/roles/debuginfod/files/packagelist.service @@ -3,4 +3,4 @@ Description=Synchronize package list [Service] Type=oneshot -ExecStart=/usr/bin/bash -c "find /srv/ftp/pool/*-debug/ -type f -not -name *.sig > /srv/http/debuginfod/index.html" +ExecStart=/usr/bin/bash -c "find /srv/ftp/pool/*-debug/ -type f -not -name *.sig > /srv/http/debuginfod/packages" diff --git a/roles/debuginfod/tasks/main.yml b/roles/debuginfod/tasks/main.yml index 730b614dec47499e37dc63dc0d4d6e60d290803d..84695eee2f7831d675e14f2a3237e15b43aa6fc5 100644 --- a/roles/debuginfod/tasks/main.yml +++ b/roles/debuginfod/tasks/main.yml @@ -19,6 +19,12 @@ - name: create http directory for debuginfod website files file: path=/srv/http/debuginfod state=directory owner=root group=root mode=0755 +- name: install website files + copy: src={{ item }} dest=/srv/http/debuginfod/{{ item }} owner=root group=root mode=0644 + loop: + - archlinux.png + - index.html + - name: install packagelist units copy: src={{ item }} dest=/etc/systemd/system/{{ item }} owner=root group=root mode=0644 loop: diff --git a/roles/debuginfod/templates/nginx.d.conf.j2 b/roles/debuginfod/templates/nginx.d.conf.j2 index aa98df6e93387e5825f435ca586bd63cc82b5ba4..456a9aba53cf382488ea25950b9785d33f8c9c97 100644 --- a/roles/debuginfod/templates/nginx.d.conf.j2 +++ b/roles/debuginfod/templates/nginx.d.conf.j2 @@ -32,12 +32,15 @@ server { index index.html; location / { - proxy_set_header X-Forwarded-For $remote_addr; - proxy_pass http://127.0.0.1:8002; + try_files $uri $uri/ @debuginfod; } - location /packages { + location = /packages { default_type "text/plain"; - alias /srv/http/debuginfod/; + } + + location @debuginfod { + proxy_set_header X-Forwarded-For $remote_addr; + proxy_pass http://127.0.0.1:8002; } }