Quantcast
Channel: Debian User Forums
Viewing all articles
Browse latest Browse all 3423

Downloading buildd log for Debian packages with getbuildlog

$
0
0
Hello,

I'm using Debian Bookworm 12.5 amd64 (last updated today).

I'm trying to download the log generated by buildd (Debian build daemon) for the Debian package linux-signed-amd64 for Debian Bookworm.

These are the existing packages in Debian repositories for linux-signed-amd64:

Code:

$ rmadison linux-signed-amd64linux-signed-amd64 | 4.19.235+1         | oldoldstable       | sourcelinux-signed-amd64 | 4.19.249+2         | oldoldstable       | sourcelinux-signed-amd64 | 5.10.127+2~bpo10+1 | buster-backports   | sourcelinux-signed-amd64 | 5.10.197+1         | oldstable          | sourcelinux-signed-amd64 | 5.10.209+2         | oldstable          | sourcelinux-signed-amd64 | 6.1.55+1~bpo11+1   | bullseye-backports | sourcelinux-signed-amd64 | 6.1.66+1           | stable             | sourcelinux-signed-amd64 | 6.1.67+1           | stable-updates     | sourcelinux-signed-amd64 | 6.1.69+1~bpo11+1   | bullseye-backports | sourcelinux-signed-amd64 | 6.1.76+1~bpo11+1   | backports-policy   | sourcelinux-signed-amd64 | 6.1.76+1           | stable             | sourcelinux-signed-amd64 | 6.1.82+1           | proposed-updates   | sourcelinux-signed-amd64 | 6.1.85+1           | proposed-updates   | sourcelinux-signed-amd64 | 6.5.3+1~bpo12+1    | stable-backports   | sourcelinux-signed-amd64 | 6.5.10+1~bpo12+1   | stable-backports   | sourcelinux-signed-amd64 | 6.6.13+1~bpo12+1   | stable-backports   | sourcelinux-signed-amd64 | 6.6.15+2           | testing            | sourcelinux-signed-amd64 | 6.7.12+1           | buildd-unstable    | sourcelinux-signed-amd64 | 6.7.12+1           | unstable           | source
According to the "Debian Package Auto-Building" web page [1], I could use the getbuildlog [2] utility (from the devscripts package):
Download build logs

Install getbuildlog: sudo apt install devscripts
Download linux-signed-amd64 6.1.82+1 amd64 build log: getbuildlog linux-signed-amd64 6.1.82+1 amd64
Download all linux-signed-amd64 6.1.82+1 build logs: getbuildlog linux-signed-amd64 6.1.82+1
Download latest linux-signed-amd64 amd64 build log: getbuildlog linux-signed-amd64 "last" amd64
Download all linux-signed-amd64 amd64 build logs: getbuildlog linux-signed-amd64 "" amd64
Download latest linux-signed-amd64 build logs: getbuildlog linux-signed-amd64 last
Download all linux-signed-amd64 build logs: getbuildlog linux-signed-amd64
The following command successfully downloads all build logs:

Code:

$ getbuildlog linux-signed-amd64 
On the contrary, the following command do not download the buildd log for the 6.1.82+1 version:

Code:

$ getbuildlog linux-signed-amd64 6.1.82+1 amd64
Analysing the script running, this is its output:

Code:

$ bash -x getbuildlog linux-signed-amd64 6.1.82+1 amd64+ set -e+ PROGNAME=getbuildlog+ '[' linux-signed-amd64 = -h ']'+ '[' linux-signed-amd64 = --help ']'+ '[' linux-signed-amd64 = -V ']'+ '[' linux-signed-amd64 = --version ']'+ '[' 3 -ge 1 ']'+ '[' 3 -le 3 ']'+ which wget+ PACKAGE=linux-signed-amd64+ VERSION=6.1.82+1+ ARCH=amd64++ echo linux-signed-amd64++ sed -e 's/\+/\\\+/g'+ ESCAPED_PACKAGE=linux-signed-amd64+ GET_LAST_VERSION=no+ '[' 6.1.82+1 = last ']'+ '[' 6.1.82+1 = last-all ']'+ PATTERN='fetch\.(cgi|php)\?pkg=linux-signed-amd64&arch=amd64&ver=6.1.82+1&stamp=[[:digit:]]+'+ getbuildlog https://buildd.debian.org+ BASE=https://buildd.debian.org++ mktemp --tmpdir getbuildlog.tmp.XXXXXXXXXX+ ALL_LOGS=/tmp/getbuildlog.tmp.u6G4nlCLNz+ wget -q -O /tmp/getbuildlog.tmp.u6G4nlCLNz 'https://buildd.debian.org/status/logs.php?pkg=linux-signed-amd64'+ sed -i -e 's/href="/\nhref="/g' /tmp/getbuildlog.tmp.u6G4nlCLNz+ sed -i -e 's/&/\&/g' -e 's/%2B/\+/g' -e s/%3A/:/g -e s/%7E/~/g /tmp/getbuildlog.tmp.u6G4nlCLNz+ '[' no '!=' no ']'+ NEWPATTERN='fetch\.(cgi|php)\?pkg=linux-signed-amd64&arch=amd64&ver=6.1.82+1&stamp=[[:digit:]]+'++ grep -E -o 'fetch\.(cgi|php)\?pkg=linux-signed-amd64&arch=amd64&ver=6.1.82+1&stamp=[[:digit:]]+' /tmp/getbuildlog.tmp.u6G4nlCLNz+ '[' no = yes ']'
Therefore, the following regex expression does not match any lines in the list of buildd logs available at https://buildd.debian.org/status/logs.php?pkg=linux-signed-amd64:

Code:

PATTERN='fetch\.(cgi|php)\?pkg=linux-signed-amd64&arch=amd64&ver=6.1.82+1&stamp=[[:digit:]]+'[..]grep -E -o 'fetch\.(cgi|php)\?pkg=linux-signed-amd64&arch=amd64&ver=6.1.82+1&stamp=[[:digit:]]+' /tmp/getbuildlog.tmp.u6G4nlCLNz[..]
It turns out that the regex fails because of the '+' character (which is interpreted as a regex expression, not a character); the regex expression that matches the log name is (note the double back slash to escape the '+' character):

Code:

grep -E -o 'fetch\.(cgi|php)\?pkg=linux-signed-amd64&arch=amd64&ver=6.1.82\\+1&stamp=[[:digit:]]+' /tmp/getbuildlog.tmp.u6G4nlCLNz
Therefore, the command should be:

Code:

$ getbuildlog linux-signed-amd64 6.1.82\\+1 amd64--2024-04-26 15:52:45--  https://buildd.debian.org/status/fetch.php?pkg=linux-signed-amd64&arch=amd64&ver=6.1.82%2B1&stamp=1712000451&raw=1Resolving buildd.debian.org (buildd.debian.org)... 209.87.16.60, 2607:f8f0:614:1::1274:60Connecting to buildd.debian.org (buildd.debian.org)|209.87.16.60|:443... connected.HTTP request sent, awaiting response... 200 OKLength: unspecified [text/plain]Saving to: 'linux-signed-amd64_6.1.82+1_amd64.log'linux-signed-amd64_6.1.82+1_amd     [      <=>                                            ]   1.81M  1.59MB/s    in 1.1s    2024-04-26 15:52:48 (1.59 MB/s) - 'linux-signed-amd64_6.1.82+1_amd64.log' saved [1894891]
or more precisely:

Code:

getbuildlog linux-signed-amd64 6\\.1\\.82\\+1 amd64
Am I missing something ?

What could be changed in the getbuildlog script [2] to help fix this and contribute to the Debian project?

--
[1] Debian Package Auto-Building
[2] getbuildlog.sh

Statistics: Posted by Aki — 2024-04-26 13:53 — Replies 1 — Views 57



Viewing all articles
Browse latest Browse all 3423

Trending Articles