[Git][qa/jenkins.debian.net][master] 2 commits: Fix reproduce.debian.net /all/api/ nginx proxy rules
Holger Levsen (@holger)
gitlab at salsa.debian.org
Thu Feb 20 13:03:28 GMT 2025
Holger Levsen pushed to branch master at Debian QA / jenkins.debian.net
Commits:
e62b098f by kpcyrd at 2025-02-20T11:55:15+01:00
Fix reproduce.debian.net /all/api/ nginx proxy rules
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
e742ee8b by Holger Levsen at 2025-02-20T14:03:08+01:00
r.d.n: move to r.d.n/$arch
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
9 changed files:
- bin/rebuilderd_stats.py
- hosts/osuosl5-amd64/etc/nginx/nginx.conf
- hosts/osuosl5-amd64/var/www/html/index_all.html → hosts/osuosl5-amd64/var/www/html/all/index.html
- hosts/osuosl5-amd64/var/www/html/index_amd64.html → hosts/osuosl5-amd64/var/www/html/amd64/index.html
- hosts/osuosl5-amd64/var/www/html/index_arm64.html → hosts/osuosl5-amd64/var/www/html/arm64/index.html
- hosts/osuosl5-amd64/var/www/html/index_armhf.html → hosts/osuosl5-amd64/var/www/html/armhf/index.html
- hosts/osuosl5-amd64/var/www/html/index_i386.html → hosts/osuosl5-amd64/var/www/html/i386/index.html
- hosts/osuosl5-amd64/var/www/html/rdn_index.html → hosts/osuosl5-amd64/var/www/html/index.html
- hosts/osuosl5-amd64/var/www/html/index_riscv64.html → hosts/osuosl5-amd64/var/www/html/riscv64/index.html
Changes:
=====================================
bin/rebuilderd_stats.py
=====================================
@@ -92,10 +92,10 @@ def main() -> None:
print(
'<!DOCTYPE html><html lang="en"><head>'
'<meta charset="utf-8">'
- f"<title>https://{arch}.reproduce.debian.net/ stats</title>"
+ f"<title>https://reproduce.debian.net/{arcj}/stats</title>"
'<meta name="viewport" content="width=device-width, initial-scale=1">'
"</head><body>"
- f'<header><h1>https://<a href="/">{arch}</a>.reproduce.debian.net/ stats</h1></header> <main>'
+ f'<header><h1>https://<a href="/">reproduce</a>.debian.net/<a href="/{arch}">{arch}</a>/stats</h1></header> <main>'
)
print(f"Database size: {bytes2human(path.getsize(db))}<br/>")
print(f"Last changed: {datetime.now().replace(microsecond=0)} - updated every 3h.")
=====================================
hosts/osuosl5-amd64/etc/nginx/nginx.conf
=====================================
@@ -13,14 +13,33 @@ http {
server_tokens off;
server {
+ listen 80;
+ server_name all.reproduce.debian.net;
+ server_name reproduce.debian.net;
server_name amd64.reproduce.debian.net;
+ server_name i386.reproduce.debian.net;
+ server_name arm64.reproduce.debian.net;
+ server_name armhf.reproduce.debian.net;
+ server_name riscv64.reproduce.debian.net;
+ location /.well-known/acme-challenge/ {
+ alias /var/lib/dehydrated/acme-challenges/;
+ disable_symlinks off;
+ autoindex off;
+ }
+ location / {
+ return 301 https://$host$request_uri;
+ }
+ }
+
+ server {
+ server_name reproduce.debian.net;
ssi on;
- index index_amd64.html;
+ autoindex on;
root /var/www/html;
listen 443 ssl;
- ssl_certificate /var/lib/dehydrated/certs/amd64.reproduce.debian.net/fullchain.pem;
- ssl_certificate_key /var/lib/dehydrated/certs/amd64.reproduce.debian.net/privkey.pem;
+ ssl_certificate /var/lib/dehydrated/certs/reproduce.debian.net/fullchain.pem;
+ ssl_certificate_key /var/lib/dehydrated/certs/reproduce.debian.net/privkey.pem;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
@@ -36,90 +55,99 @@ http {
autoindex off;
}
- location / {
- # First attempt to serve request as file, then
- # as directory, then fall back to displaying a 404.
- try_files $uri $uri/ =404;
+ # all
+ location /all/api/ {
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_pass http://127.0.0.1:8489/api/;
}
-
- location /api/ {
+ location = /all/api/v0/build/report {
+ client_max_body_size 200M;
proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8484;
+ proxy_pass http://127.0.0.1:8489/api/v0/build/report;
}
- location = /api/v0/build/report {
+ location /all/stats/ {
+ alias /srv/rebuilderd/all/stats/ ;
+ disable_symlinks off;
+ }
+ # amd64
+ location /amd64/api/ {
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_pass http://127.0.0.1:8484/api/;
+ }
+ location = /amd64/api/v0/build/report {
client_max_body_size 200M;
proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8484;
+ proxy_pass http://127.0.0.1:8484/api/v0/build/report;
}
-
- location /stats/ {
+ location /amd64/stats/ {
alias /srv/rebuilderd/amd64/stats/ ;
disable_symlinks off;
- autoindex on;
- index index.html;
}
-
- }
-
- server {
- server_name i386.reproduce.debian.net;
- ssi on;
- index index_i386.html;
- root /var/www/html;
-
- listen 443 ssl;
- ssl_certificate /var/lib/dehydrated/certs/i386.reproduce.debian.net/fullchain.pem;
- ssl_certificate_key /var/lib/dehydrated/certs/i386.reproduce.debian.net/privkey.pem;
-
- ssl_session_cache shared:le_nginx_SSL:10m;
- ssl_session_timeout 1440m;
- ssl_session_tickets off;
- ssl_protocols TLSv1.2 TLSv1.3;
- ssl_prefer_server_ciphers off;
- ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-C
- HACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
-
- location /.well-known/acme-challenge/ {
- alias /var/lib/dehydrated/acme-challenges/;
+ # arm64
+ location /arm64/api/ {
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_pass http://127.0.0.1:8486/api/;
+ }
+ location = /arm64/api/v0/build/report {
+ client_max_body_size 200M;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_pass http://127.0.0.1:8486/api/v0/build/report;
+ }
+ location /arm64/stats/ {
+ alias /srv/rebuilderd/arm64/stats/ ;
disable_symlinks off;
- autoindex off;
}
-
- location / {
- # First attempt to serve request as file, then
- # as directory, then fall back to displaying a 404.
- try_files $uri $uri/ =404;
+ # armhf
+ location /armhf/api/ {
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_pass http://127.0.0.1:8487/api/;
}
-
- location /api/ {
+ location = /armhf/api/v0/build/report {
+ client_max_body_size 200M;
proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8485;
+ proxy_pass http://127.0.0.1:8487/api/v0/build/report;
}
- location = /api/v0/build/report {
+ location /armhf/stats/ {
+ alias /srv/rebuilderd/armhf/stats/ ;
+ disable_symlinks off;
+ }
+ # i386
+ location /i386/api/ {
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_pass http://127.0.0.1:8485/api/;
+ }
+ location = /i386/api/v0/build/report {
client_max_body_size 200M;
proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8485;
+ proxy_pass http://127.0.0.1:8485/api/v0/build/report;
}
-
- location /stats/ {
+ location /i386/stats/ {
alias /srv/rebuilderd/i386/stats/ ;
disable_symlinks off;
- autoindex on;
- index index.html;
}
-
+ # riscv64
+ location /riscv64/api/ {
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_pass http://127.0.0.1:8488/api/;
+ }
+ location = /riscv64/api/v0/build/report {
+ client_max_body_size 200M;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_pass http://127.0.0.1:8488/api/v0/build/report;
+ }
+ location /riscv64/stats/ {
+ alias /srv/rebuilderd/riscv64/stats/ ;
+ disable_symlinks off;
+ }
}
server {
- server_name arm64.reproduce.debian.net;
+ server_name all.reproduce.debian.net;
ssi on;
- index index_arm64.html;
root /var/www/html;
-
listen 443 ssl;
- ssl_certificate /var/lib/dehydrated/certs/arm64.reproduce.debian.net/fullchain.pem;
- ssl_certificate_key /var/lib/dehydrated/certs/arm64.reproduce.debian.net/privkey.pem;
-
+ ssl_certificate /var/lib/dehydrated/certs/all.reproduce.debian.net/fullchain.pem;
+ ssl_certificate_key /var/lib/dehydrated/certs/all.reproduce.debian.net/privkey.pem;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
@@ -127,48 +155,23 @@ http {
ssl_prefer_server_ciphers off;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-C
HACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
-
location /.well-known/acme-challenge/ {
alias /var/lib/dehydrated/acme-challenges/;
disable_symlinks off;
autoindex off;
}
-
location / {
- # First attempt to serve request as file, then
- # as directory, then fall back to displaying a 404.
- try_files $uri $uri/ =404;
+ return 301 https://reproduce.debian.net/all$request_uri;
}
-
- location /api/ {
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8486;
- }
- location = /api/v0/build/report {
- client_max_body_size 200M;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8486;
- }
-
- location /stats/ {
- alias /srv/rebuilderd/arm64/stats/ ;
- disable_symlinks off;
- autoindex on;
- index index.html;
- }
-
}
server {
- server_name armhf.reproduce.debian.net;
+ server_name amd64.reproduce.debian.net;
ssi on;
- index index_armhf.html;
root /var/www/html;
-
listen 443 ssl;
- ssl_certificate /var/lib/dehydrated/certs/armhf.reproduce.debian.net/fullchain.pem;
- ssl_certificate_key /var/lib/dehydrated/certs/armhf.reproduce.debian.net/privkey.pem;
-
+ ssl_certificate /var/lib/dehydrated/certs/amd64.reproduce.debian.net/fullchain.pem;
+ ssl_certificate_key /var/lib/dehydrated/certs/amd64.reproduce.debian.net/privkey.pem;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
@@ -176,47 +179,23 @@ http {
ssl_prefer_server_ciphers off;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-C
HACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
-
location /.well-known/acme-challenge/ {
alias /var/lib/dehydrated/acme-challenges/;
disable_symlinks off;
autoindex off;
}
-
location / {
- # First attempt to serve request as file, then
- # as directory, then fall back to displaying a 404.
- try_files $uri $uri/ =404;
+ return 301 https://reproduce.debian.net/amd64$request_uri;
}
-
- location /api/ {
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8487;
- }
- location = /api/v0/build/report {
- client_max_body_size 200M;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8487;
- }
-
- location /stats/ {
- alias /srv/rebuilderd/armhf/stats/ ;
- disable_symlinks off;
- autoindex on;
- index index.html;
- }
-
}
server {
- server_name riscv64.reproduce.debian.net;
+ server_name arm64.reproduce.debian.net;
ssi on;
- index index_riscv64.html;
root /var/www/html;
-
listen 443 ssl;
- ssl_certificate /var/lib/dehydrated/certs/riscv64.reproduce.debian.net/fullchain.pem;
- ssl_certificate_key /var/lib/dehydrated/certs/riscv64.reproduce.debian.net/privkey.pem;
+ ssl_certificate /var/lib/dehydrated/certs/arm64.reproduce.debian.net/fullchain.pem;
+ ssl_certificate_key /var/lib/dehydrated/certs/arm64.reproduce.debian.net/privkey.pem;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
@@ -225,47 +204,23 @@ http {
ssl_prefer_server_ciphers off;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-C
HACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
-
location /.well-known/acme-challenge/ {
alias /var/lib/dehydrated/acme-challenges/;
disable_symlinks off;
autoindex off;
}
-
location / {
- # First attempt to serve request as file, then
- # as directory, then fall back to displaying a 404.
- try_files $uri $uri/ =404;
- }
-
- location /api/ {
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8488;
- }
- location = /api/v0/build/report {
- client_max_body_size 200M;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8488;
- }
-
- location /stats/ {
- alias /srv/rebuilderd/riscv64/stats/ ;
- disable_symlinks off;
- autoindex on;
- index index.html;
+ return 301 https://reproduce.debian.net/arm64$request_uri;
}
-
}
server {
- server_name all.reproduce.debian.net;
+ server_name armhf.reproduce.debian.net;
ssi on;
- index index_all.html;
root /var/www/html;
-
listen 443 ssl;
- ssl_certificate /var/lib/dehydrated/certs/all.reproduce.debian.net/fullchain.pem;
- ssl_certificate_key /var/lib/dehydrated/certs/all.reproduce.debian.net/privkey.pem;
+ ssl_certificate /var/lib/dehydrated/certs/armhf.reproduce.debian.net/fullchain.pem;
+ ssl_certificate_key /var/lib/dehydrated/certs/armhf.reproduce.debian.net/privkey.pem;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
@@ -274,48 +229,23 @@ http {
ssl_prefer_server_ciphers off;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-C
HACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
-
location /.well-known/acme-challenge/ {
alias /var/lib/dehydrated/acme-challenges/;
disable_symlinks off;
autoindex off;
}
-
location / {
- # First attempt to serve request as file, then
- # as directory, then fall back to displaying a 404.
- try_files $uri $uri/ =404;
- }
-
- location /api/ {
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8489;
+ return 301 https://reproduce.debian.net/armhf$request_uri;
}
- location = /api/v0/build/report {
- client_max_body_size 200M;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8489;
- }
-
- location /stats/ {
- alias /srv/rebuilderd/all/stats/ ;
- disable_symlinks off;
- autoindex on;
- index index.html;
- }
-
}
server {
- server_name reproduce.debian.net;
+ server_name i386.reproduce.debian.net;
ssi on;
- index rdn_index.html;
root /var/www/html;
-
listen 443 ssl;
- ssl_certificate /var/lib/dehydrated/certs/reproduce.debian.net/fullchain.pem;
- ssl_certificate_key /var/lib/dehydrated/certs/reproduce.debian.net/privkey.pem;
-
+ ssl_certificate /var/lib/dehydrated/certs/i386.reproduce.debian.net/fullchain.pem;
+ ssl_certificate_key /var/lib/dehydrated/certs/i386.reproduce.debian.net/privkey.pem;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
@@ -323,55 +253,38 @@ http {
ssl_prefer_server_ciphers off;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-C
HACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
-
location /.well-known/acme-challenge/ {
alias /var/lib/dehydrated/acme-challenges/;
disable_symlinks off;
autoindex off;
}
-
- # all
- location /all/ {
- alias /var/www/html ;
- index index_all.html;
- }
- location /all/api/ {
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8489;
- }
- location = /all/api/v0/build/report {
- client_max_body_size 200M;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://127.0.0.1:8489;
- }
- location /all/stats/ {
- alias /srv/rebuilderd/all/stats/ ;
- disable_symlinks off;
- autoindex on;
- index index.html;
+ location / {
+ return 301 https://reproduce.debian.net/i386$request_uri;
}
}
server {
- listen 80;
- server_name reproduce.debian.net;
- server_name amd64.reproduce.debian.net;
- server_name i386.reproduce.debian.net;
- server_name arm64.reproduce.debian.net;
- server_name armhf.reproduce.debian.net;
server_name riscv64.reproduce.debian.net;
- server_name all.reproduce.debian.net;
-
+ ssi on;
+ root /var/www/html;
+ listen 443 ssl;
+ ssl_certificate /var/lib/dehydrated/certs/riscv64.reproduce.debian.net/fullchain.pem;
+ ssl_certificate_key /var/lib/dehydrated/certs/riscv64.reproduce.debian.net/privkey.pem;
+ ssl_session_cache shared:le_nginx_SSL:10m;
+ ssl_session_timeout 1440m;
+ ssl_session_tickets off;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_prefer_server_ciphers off;
+ ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-C
+ HACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
location /.well-known/acme-challenge/ {
alias /var/lib/dehydrated/acme-challenges/;
disable_symlinks off;
autoindex off;
}
-
location / {
- return 301 https://$host$request_uri;
+ return 301 https://reproduce.debian.net/riscv64$request_uri;
}
-
}
=====================================
hosts/osuosl5-amd64/var/www/html/index_all.html → hosts/osuosl5-amd64/var/www/html/all/index.html
=====================================
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>
- all.reproduce.debian.net - trixie (arch:all)
+ reproduce.debian.net/all - trixie (arch:all)
</title>
<style>
body {
@@ -68,7 +68,7 @@
function searchPkgs(query) {
let div = document.getElementById('search-results');
- let url = '/api/v0/pkgs/list?' + new URLSearchParams({
+ let url = '/all/api/v0/pkgs/list?' + new URLSearchParams({
name: query,
distro: 'debian',
});
@@ -98,19 +98,19 @@
if (build_id) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/log`, 'log'));
+ r.appendChild(linkTo(`/all/api/v0/builds/${build_id}/log`, 'log'));
r.appendChild(spanWith(']'));
}
if (pkg.has_attestation) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/attestation`, 'attestation'));
+ r.appendChild(linkTo(`/all/api/v0/builds/${build_id}/attestation`, 'attestation'));
r.appendChild(spanWith(']'));
}
if (pkg.has_diffoscope) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
+ r.appendChild(linkTo(`/all/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
r.appendChild(spanWith(']'));
}
@@ -145,7 +145,7 @@
}
function fetchStats() {
- fetch('/api/v0/dashboard')
+ fetch('/all/api/v0/dashboard')
.then(response => response.json())
.then(data => {
let div = document.getElementById('stats');
@@ -176,9 +176,9 @@
</script>
</head>
<body>
- <img src="/stats/rb.png" align="right">
+ <img src="/all/stats/rb.png" align="right">
<h1>
- all.reproduce.debian.net
+ reproduce.debian.net/all
</h1>
<h3>
trixie (arch:all)
@@ -200,17 +200,17 @@
pew pew, <a href="https://github.com/kpcyrd/rebuilderd">rebuilderd</a> using <a href="https://tracker.debian.org/pkg/devscripts">debrebuild</a> (with <a href="https://tracker.debian.org/pkg/sbuild">sbuild+unshare</a> as backend) to reproduce what Debian distributes via <code><a href="https://deb.debian.org/debian/dists/">deb.debian.org</a></code>. ♥️
<br/>
<a href="https://reproduce.debian.net">https://reproduce.debian.net</a>
- / all
- / <a href="https://amd64.reproduce.debian.net">amd64</a>
- / <a href="https://arm64.reproduce.debian.net">arm64</a>
- / <a href="https://armhf.reproduce.debian.net">armhf</a>
- / <a href="https://i386.reproduce.debian.net">i386</a>
- / <a href="https://riscv64.reproduce.debian.net">riscv64</a>
+ / ( all
+ | <a href="https://reproduce.debian.net/amd64">amd64</a>
+ | <a href="https://reproduce.debian.net/arm64">arm64</a>
+ | <a href="https://reproduce.debian.net/armhf">armhf</a>
+ | <a href="https://reproduce.debian.net/i386">i386</a>
+ | <a href="https://reproduce.debian.net/riscv64">riscv64</a> )
<br/>
- <a href="/stats/">Statistics about BAD packages</a> on all.
+ <a href="stats/">Statistics about BAD packages</a> on all.
<br/>
- <a href="/api/v0/pkgs/list">/api/v0/pkgs/list</a> (JSON)
- / <a href="/stats/db-backup/">rebuilderd database backups</a>
+ <a href="api/v0/pkgs/list">/all/api/v0/pkgs/list</a> (JSON)
+ / <a href="stats/db-backup/">rebuilderd database backups</a>
<br/>
<code>
# How to judge your own systen:
=====================================
hosts/osuosl5-amd64/var/www/html/index_amd64.html → hosts/osuosl5-amd64/var/www/html/amd64/index.html
=====================================
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>
- amd64.reproduce.debian.net - trixie (arch:amd64)
+ reproduce.debian.net/amd64 - trixie (arch:amd64)
</title>
<style>
body {
@@ -68,7 +68,7 @@
function searchPkgs(query) {
let div = document.getElementById('search-results');
- let url = '/api/v0/pkgs/list?' + new URLSearchParams({
+ let url = '/amd64/api/v0/pkgs/list?' + new URLSearchParams({
name: query,
distro: 'debian',
});
@@ -98,19 +98,19 @@
if (build_id) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/log`, 'log'));
+ r.appendChild(linkTo(`/amd64/api/v0/builds/${build_id}/log`, 'log'));
r.appendChild(spanWith(']'));
}
if (pkg.has_attestation) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/attestation`, 'attestation'));
+ r.appendChild(linkTo(`/amd64/api/v0/builds/${build_id}/attestation`, 'attestation'));
r.appendChild(spanWith(']'));
}
if (pkg.has_diffoscope) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
+ r.appendChild(linkTo(`/amd64/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
r.appendChild(spanWith(']'));
}
@@ -145,7 +145,7 @@
}
function fetchStats() {
- fetch('/api/v0/dashboard')
+ fetch('/amd64/api/v0/dashboard')
.then(response => response.json())
.then(data => {
let div = document.getElementById('stats');
@@ -176,9 +176,9 @@
</script>
</head>
<body>
- <img src="/stats/rb.png" align="right">
+ <img src="stats/rb.png" align="right">
<h1>
- amd64.reproduce.debian.net
+ reproduce.debian.net/amd64
</h1>
<h3>
trixie (arch:amd64)
@@ -200,17 +200,17 @@
pew pew, <a href="https://github.com/kpcyrd/rebuilderd">rebuilderd</a> using <a href="https://tracker.debian.org/pkg/devscripts">debrebuild</a> (with <a href="https://tracker.debian.org/pkg/sbuild">sbuild+unshare</a> as backend) to reproduce what Debian distributes via <code><a href="https://deb.debian.org/debian/dists/">deb.debian.org</a></code>. ♥️
<br/>
<a href="https://reproduce.debian.net">https://reproduce.debian.net</a>
- / <a href="https://all.reproduce.debian.net">all</a>
- / amd64
- / <a href="https://arm64.reproduce.debian.net">arm64</a>
- / <a href="https://armhf.reproduce.debian.net">armhf</a>
- / <a href="https://i386.reproduce.debian.net">i386</a>
- / <a href="https://riscv64.reproduce.debian.net">riscv64</a>
+ ( <a href="https://reproduce.debian.net/all">all</a>
+ | amd64
+ | <a href="https://reproduce.debian.net/arm64">arm64</a>
+ | <a href="https://reproduce.debian.net/armhf">armhf</a>
+ | <a href="https://reproduce.debian.net/i386">i386</a>
+ | <a href="https://reproduce.debian.net/riscv64">riscv64</a> )
<br/>
- <a href="/stats/">Statistics about BAD packages</a> on amd64.
+ <a href="stats/">Statistics about BAD packages</a> on amd64.
<br/>
- <a href="/api/v0/pkgs/list">/api/v0/pkgs/list</a> (JSON)
- / <a href="/stats/db-backup/">rebuilderd database backups</a>
+ <a href="/amd64/api/v0/pkgs/list">/amd64/api/v0/pkgs/list</a> (JSON)
+ / <a href="stats/db-backup/">rebuilderd database backups</a>
<br/>
<code>
# How to judge your own systen:
=====================================
hosts/osuosl5-amd64/var/www/html/index_arm64.html → hosts/osuosl5-amd64/var/www/html/arm64/index.html
=====================================
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>
- arm64.reproduce.debian.net - trixie (arch:arm64)
+ reproduce.debian.net/arm64 - trixie (arch:arm64)
</title>
<style>
body {
@@ -68,7 +68,7 @@
function searchPkgs(query) {
let div = document.getElementById('search-results');
- let url = '/api/v0/pkgs/list?' + new URLSearchParams({
+ let url = '/arm64/api/v0/pkgs/list?' + new URLSearchParams({
name: query,
distro: 'debian',
});
@@ -98,19 +98,19 @@
if (build_id) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/log`, 'log'));
+ r.appendChild(linkTo(`/arm64/api/v0/builds/${build_id}/log`, 'log'));
r.appendChild(spanWith(']'));
}
if (pkg.has_attestation) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/attestation`, 'attestation'));
+ r.appendChild(linkTo(`/arm64/api/v0/builds/${build_id}/attestation`, 'attestation'));
r.appendChild(spanWith(']'));
}
if (pkg.has_diffoscope) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
+ r.appendChild(linkTo(`/arm64/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
r.appendChild(spanWith(']'));
}
@@ -145,7 +145,7 @@
}
function fetchStats() {
- fetch('/api/v0/dashboard')
+ fetch('/arm64/api/v0/dashboard')
.then(response => response.json())
.then(data => {
let div = document.getElementById('stats');
@@ -176,9 +176,9 @@
</script>
</head>
<body>
- <img src="/stats/rb.png" align="right">
+ <img src="stats/rb.png" align="right">
<h1>
- arm64.reproduce.debian.net
+ reproduce.debian.net/arm64
</h1>
<h3>
trixie (arch:arm64)
@@ -200,17 +200,17 @@
pew pew, <a href="https://github.com/kpcyrd/rebuilderd">rebuilderd</a> using <a href="https://tracker.debian.org/pkg/devscripts">debrebuild</a> (with <a href="https://tracker.debian.org/pkg/sbuild">sbuild+unshare</a> as backend) to reproduce what Debian distributes via <code><a href="https://deb.debian.org/debian/dists/">deb.debian.org</a></code>. ♥️
<br/>
<a href="https://reproduce.debian.net">https://reproduce.debian.net</a>
- / <a href="https://all.reproduce.debian.net">all</a>
- / <a href="https://amd64.reproduce.debian.net">amd64</a>
- / arm64
- / <a href="https://armhf.reproduce.debian.net">armhf</a>
- / <a href="https://i386.reproduce.debian.net">i386</a>
- / <a href="https://riscv64.reproduce.debian.net">riscv64</a>
+ ( <a href="https://reproduce.debian.net/all">all</a>
+ | <a href="https://reproduce.debian.net/amd64">amd64</a>
+ | arm64
+ | <a href="https://reproduce.debian.net/armhf">armhf</a>
+ | <a href="https://reproduce.debian.net/i386">i386</a>
+ | <a href="https://reproduce.debian.net/riscv64">riscv64</a> )
<br/>
- <a href="/stats/">Statistics about BAD packages</a> on arm64.
+ <a href="stats/">Statistics about BAD packages</a> on arm64.
<br/>
- <a href="/api/v0/pkgs/list">/api/v0/pkgs/list</a> (JSON)
- / <a href="/stats/db-backup/">rebuilderd database backups</a>
+ <a href="/arm64/api/v0/pkgs/list">/arm64/api/v0/pkgs/list</a> (JSON)
+ / <a href="stats/db-backup/">rebuilderd database backups</a>
<br/>
<code>
# How to judge your own systen:
=====================================
hosts/osuosl5-amd64/var/www/html/index_armhf.html → hosts/osuosl5-amd64/var/www/html/armhf/index.html
=====================================
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>
- armhf.reproduce.debian.net - trixie (arch:armhf)
+ reproduce.debian.net/armhf - trixie (arch:armhf)
</title>
<style>
body {
@@ -68,7 +68,7 @@
function searchPkgs(query) {
let div = document.getElementById('search-results');
- let url = '/api/v0/pkgs/list?' + new URLSearchParams({
+ let url = '/armhf/api/v0/pkgs/list?' + new URLSearchParams({
name: query,
distro: 'debian',
});
@@ -98,19 +98,19 @@
if (build_id) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/log`, 'log'));
+ r.appendChild(linkTo(`/armhf/api/v0/builds/${build_id}/log`, 'log'));
r.appendChild(spanWith(']'));
}
if (pkg.has_attestation) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/attestation`, 'attestation'));
+ r.appendChild(linkTo(`/armhf/api/v0/builds/${build_id}/attestation`, 'attestation'));
r.appendChild(spanWith(']'));
}
if (pkg.has_diffoscope) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
+ r.appendChild(linkTo(`/armhf/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
r.appendChild(spanWith(']'));
}
@@ -145,7 +145,7 @@
}
function fetchStats() {
- fetch('/api/v0/dashboard')
+ fetch('/armhf/api/v0/dashboard')
.then(response => response.json())
.then(data => {
let div = document.getElementById('stats');
@@ -176,9 +176,9 @@
</script>
</head>
<body>
- <img src="/stats/rb.png" align="right">
+ <img src="stats/rb.png" align="right">
<h1>
- armhf.reproduce.debian.net
+ reproduce.debian.net/armhf
</h1>
<h3>
trixie (arch:armhf)
@@ -200,17 +200,17 @@
pew pew, <a href="https://github.com/kpcyrd/rebuilderd">rebuilderd</a> using <a href="https://tracker.debian.org/pkg/devscripts">debrebuild</a> (with <a href="https://tracker.debian.org/pkg/sbuild">sbuild+unshare</a> as backend) to reproduce what Debian distributes via <code><a href="https://deb.debian.org/debian/dists/">deb.debian.org</a></code>. ♥️
<br/>
<a href="https://reproduce.debian.net">https://reproduce.debian.net</a>
- / <a href="https://all.reproduce.debian.net">all</a>
- / <a href="https://amd64.reproduce.debian.net">amd64</a>
- / <a href="https://arm64.reproduce.debian.net">arm64</a>
- / armhf
- / <a href="https://i386.reproduce.debian.net">i386</a>
- / <a href="https://riscv64.reproduce.debian.net">riscv64</a>
+ ( <a href="https://reproduce.debian.net/all">all</a>
+ | <a href="https://reproduce.debian.net/amd64">amd64</a>
+ | <a href="https://reproduce.debian.net/arm64">arm64</a>
+ | armhf
+ | <a href="https://reproduce.debian.net/i386">i386</a>
+ | <a href="https://reproduce.debian.net/riscv64">riscv64</a> )
<br/>
- <a href="/stats/">Statistics about BAD packages</a> on armhf.
+ <a href="stats/">Statistics about BAD packages</a> on armhf.
<br/>
- <a href="/api/v0/pkgs/list">/api/v0/pkgs/list</a> (JSON)
- / <a href="/stats/db-backup/">rebuilderd database backups</a>
+ <a href="/armhf/api/v0/pkgs/list">/armhf/api/v0/pkgs/list</a> (JSON)
+ / <a href="stats/db-backup/">rebuilderd database backups</a>
<br/>
<code>
# How to judge your own systen:
=====================================
hosts/osuosl5-amd64/var/www/html/index_i386.html → hosts/osuosl5-amd64/var/www/html/i386/index.html
=====================================
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>
- i386.reproduce.debian.net - trixie (arch:i386)
+ reproduce.debian.net/i386 - trixie (arch:i386)
</title>
<style>
body {
@@ -68,7 +68,7 @@
function searchPkgs(query) {
let div = document.getElementById('search-results');
- let url = '/api/v0/pkgs/list?' + new URLSearchParams({
+ let url = '/i386/api/v0/pkgs/list?' + new URLSearchParams({
name: query,
distro: 'debian',
});
@@ -98,19 +98,19 @@
if (build_id) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/log`, 'log'));
+ r.appendChild(linkTo(`/i386/api/v0/builds/${build_id}/log`, 'log'));
r.appendChild(spanWith(']'));
}
if (pkg.has_attestation) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/attestation`, 'attestation'));
+ r.appendChild(linkTo(`/i386/api/v0/builds/${build_id}/attestation`, 'attestation'));
r.appendChild(spanWith(']'));
}
if (pkg.has_diffoscope) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
+ r.appendChild(linkTo(`/i386/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
r.appendChild(spanWith(']'));
}
@@ -145,7 +145,7 @@
}
function fetchStats() {
- fetch('/api/v0/dashboard')
+ fetch('/i386/api/v0/dashboard')
.then(response => response.json())
.then(data => {
let div = document.getElementById('stats');
@@ -176,9 +176,9 @@
</script>
</head>
<body>
- <img src="/stats/rb.png" align="right">
+ <img src="stats/rb.png" align="right">
<h1>
- i386.reproduce.debian.net
+ reproduce.debian.net/i386
</h1>
<h3>
trixie (arch:i386)
@@ -200,17 +200,17 @@
pew pew, <a href="https://github.com/kpcyrd/rebuilderd">rebuilderd</a> using <a href="https://tracker.debian.org/pkg/devscripts">debrebuild</a> (with <a href="https://tracker.debian.org/pkg/sbuild">sbuild+unshare</a> as backend) to reproduce what Debian distributes via <code><a href="https://deb.debian.org/debian/dists/">deb.debian.org</a></code>. ♥️
<br/>
<a href="https://reproduce.debian.net">https://reproduce.debian.net</a>
- / <a href="https://all.reproduce.debian.net">all</a>
- / <a href="https://amd64.reproduce.debian.net">amd64</a>
- / <a href="https://arm64.reproduce.debian.net">arm64</a>
- / <a href="https://armhf.reproduce.debian.net">armhf</a>
- / i386
- / <a href="https://riscv64.reproduce.debian.net">riscv64</a>
+ ( <a href="https://reproduce.debian.net/all">all</a>
+ | <a href="https://reproduce.debian.net/amd64">amd64</a>
+ | <a href="https://reproduce.debian.net/arm64">arm64</a>
+ | <a href="https://reproduce.debian.net/armhf">armhf</a>
+ | i386
+ | <a href="https://reproduce.debian.net/riscv64">riscv64</a> )
<br/>
- <a href="/stats/">Statistics about BAD packages</a> on i386.
+ <a href="stats/">Statistics about BAD packages</a> on i386.
<br/>
- <a href="/api/v0/pkgs/list">/api/v0/pkgs/list</a> (JSON)
- / <a href="/stats/db-backup/">rebuilderd database backups</a>
+ <a href="/i386/api/v0/pkgs/list">/i386/api/v0/pkgs/list</a> (JSON)
+ / <a href="stats/db-backup/">rebuilderd database backups</a>
<br/>
<code>
# How to judge your own systen:
=====================================
hosts/osuosl5-amd64/var/www/html/rdn_index.html → hosts/osuosl5-amd64/var/www/html/index.html
=====================================
@@ -71,52 +71,52 @@
<table>
<tr>
<td>
- <a href="https://all.reproduce.debian.net/">all.r.d.n</a>
+ <a href="https://reproduce.debian.net/all/">r.d.n/all</a>
</td><td>
trixie (arch:all)
</td><td>
- <a href="https://all.reproduce.debian.net/">
- <img src="https://all.reproduce.debian.net/stats/rb.png" width="20%">
+ <a href="https://reproduce.debian.net/all/">
+ <img src="https://reproduce.debian.net/all/stats/rb.png" width="20%">
</a>
</td></tr><tr><td>
- <a href="https://amd64.reproduce.debian.net/">amd64.r.d.n</a>
+ <a href="https://reproduce.debian.net/amd64/">r.d.n/amd64</a>
</td><td>
trixie (arch:amd64)
</td><td>
- <a href="https://amd64.reproduce.debian.net/">
- <img src="https://amd64.reproduce.debian.net/stats/rb.png" width="20%">
+ <a href="https://reproduce.debian.net/amd64/">
+ <img src="https://reproduce.debian.net/amd64/stats/rb.png" width="20%">
</a>
</td></tr><tr><td>
- <a href="https://arm64.reproduce.debian.net/">arm64.r.d.n</a>
+ <a href="https://reproduce.debian.net/arm64/">r.d.n/arm64</a>
</td><td>
trixie (arch:arm64)
</td><td>
- <a href="https://arm64.reproduce.debian.net/">
- <img src="https://arm64.reproduce.debian.net/stats/rb.png" width="20%">
+ <a href="https://reproduce.debian.net/arm64/">
+ <img src="https://reproduce.debian.net/arm64/stats/rb.png" width="20%">
</a>
</td></tr><tr><td>
- <a href="https://armhf.reproduce.debian.net/">armhf.r.d.n</a>
+ <a href="https://reproduce.debian.net/armhf/">r.d.n/armhf</a>
</td><td>
trixie (arch:armhf)
</td><td>
- <a href="https://armhf.reproduce.debian.net/">
- <img src="https://armhf.reproduce.debian.net/stats/rb.png" width="20%">
+ <a href="https://reproduce.debian.net/armhf/">
+ <img src="https://reproduce.debian.net/armhf/stats/rb.png" width="20%">
</a>
</td></tr><tr><td>
- <a href="https://i386.reproduce.debian.net/">i386.r.d.n</a>
+ <a href="https://reproduce.debian.net/i386/">r.d.n/i386</a>
</td><td>
trixie (arch:i386)
</td><td>
- <a href="https://i386.reproduce.debian.net/">
- <img src="https://i386.reproduce.debian.net/stats/rb.png" width="20%">
+ <a href="https://reproduce.debian.net/i386/">
+ <img src="https://reproduce.debian.net/i386/stats/rb.png" width="20%">
</a>
</td></tr><tr><td>
- <a href="https://riscv64.reproduce.debian.net/">riscv64.r.d.n</a>
+ <a href="https://reproduce.debian.net/riscv64/">r.d.n/riscv64</a>
</td><td>
trixie (arch:riscv64)
</td><td>
- <a href="https://riscv64.reproduce.debian.net/">
- <img src="https://riscv64.reproduce.debian.net/stats/rb.png" width="20%">
+ <a href="https://reproduce.debian.net/riscv64/">
+ <img src="https://reproduce.debian.net/riscv64/stats/rb.png" width="20%">
</a>
</td></tr>
</table>
=====================================
hosts/osuosl5-amd64/var/www/html/index_riscv64.html → hosts/osuosl5-amd64/var/www/html/riscv64/index.html
=====================================
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>
- riscv64.reproduce.debian.net - trixie (arch:riscv64)
+ reproduce.debian.net/riscv64 - trixie (arch:riscv64)
</title>
<style>
body {
@@ -68,7 +68,7 @@
function searchPkgs(query) {
let div = document.getElementById('search-results');
- let url = '/api/v0/pkgs/list?' + new URLSearchParams({
+ let url = '/riscv64/api/v0/pkgs/list?' + new URLSearchParams({
name: query,
distro: 'debian',
});
@@ -98,19 +98,19 @@
if (build_id) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/log`, 'log'));
+ r.appendChild(linkTo(`/riscv64/api/v0/builds/${build_id}/log`, 'log'));
r.appendChild(spanWith(']'));
}
if (pkg.has_attestation) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/attestation`, 'attestation'));
+ r.appendChild(linkTo(`/riscv64/api/v0/builds/${build_id}/attestation`, 'attestation'));
r.appendChild(spanWith(']'));
}
if (pkg.has_diffoscope) {
r.appendChild(spanWith(' ['));
- r.appendChild(linkTo(`/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
+ r.appendChild(linkTo(`/riscv64/api/v0/builds/${build_id}/diffoscope`, 'diffoscope'));
r.appendChild(spanWith(']'));
}
@@ -145,7 +145,7 @@
}
function fetchStats() {
- fetch('/api/v0/dashboard')
+ fetch('/riscv64/api/v0/dashboard')
.then(response => response.json())
.then(data => {
let div = document.getElementById('stats');
@@ -176,9 +176,9 @@
</script>
</head>
<body>
- <img src="/stats/rb.png" align="right">
+ <img src="stats/rb.png" align="right">
<h1>
- riscv64.reproduce.debian.net
+ reproduce.debian.net/riscv64
</h1>
<h3>
trixie (arch:riscv64)
@@ -200,17 +200,17 @@
pew pew, <a href="https://github.com/kpcyrd/rebuilderd">rebuilderd</a> using <a href="https://tracker.debian.org/pkg/devscripts">debrebuild</a> (with <a href="https://tracker.debian.org/pkg/sbuild">sbuild+unshare</a> as backend) to reproduce what Debian distributes via <code><a href="https://deb.debian.org/debian/dists/">deb.debian.org</a></code>. ♥️
<br/>
<a href="https://reproduce.debian.net">https://reproduce.debian.net</a>
- / <a href="https://all.reproduce.debian.net">all</a>
- / <a href="https://amd64.reproduce.debian.net">amd64</a>
- / <a href="https://arm64.reproduce.debian.net">arm64</a>
- / <a href="https://armhf.reproduce.debian.net">armhf</a>
- / <a href="https://i386.reproduce.debian.net">i386</a>
- / riscv64
+ ( <a href="https://reproduce.debian.net/all">all</a>
+ | <a href="https://reproduce.debian.net/amd64">amd64</a>
+ | <a href="https://reproduce.debian.net/arm64">arm64</a>
+ | <a href="https://reproduce.debian.net/armhf">armhf</a>
+ | <a href="https://reproduce.debian.net/i386">i386</a>
+ | riscv64 )
<br/>
- <a href="/stats/">Statistics about BAD packages</a> on riscv64.
+ <a href="stats/">Statistics about BAD packages</a> on riscv64.
<br/>
- <a href="/api/v0/pkgs/list">/api/v0/pkgs/list</a> (JSON)
- / <a href="/stats/db-backup/">rebuilderd database backups</a>
+ <a href="/riscv64/api/v0/pkgs/list">/riscv64/api/v0/pkgs/list</a> (JSON)
+ / <a href="stats/db-backup/">rebuilderd database backups</a>
<br/>
<code>
# How to judge your own systen:
View it on GitLab: https://salsa.debian.org/qa/jenkins.debian.net/-/compare/5e761039121cd5c00650b4dd469f46f02caa2255...e742ee8b899021323f0408ce61cc55f923697ee4
--
View it on GitLab: https://salsa.debian.org/qa/jenkins.debian.net/-/compare/5e761039121cd5c00650b4dd469f46f02caa2255...e742ee8b899021323f0408ce61cc55f923697ee4
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/qa-jenkins-scm/attachments/20250220/c89a6f02/attachment-0001.htm>
More information about the Qa-jenkins-scm
mailing list