Merge lp:~paelzer/ubuntu-manpage-repository/ubuntu-manpage-repository-speed-boost into lp:ubuntu-manpage-repository
- ubuntu-manpage-repository-speed-boost
- Merge into trunk
Proposed by
Christian Ehrhardt
Status: | Merged |
---|---|
Approved by: | Christian Ehrhardt |
Approved revision: | 244 |
Merged at revision: | 244 |
Proposed branch: | lp:~paelzer/ubuntu-manpage-repository/ubuntu-manpage-repository-speed-boost |
Merge into: | lp:ubuntu-manpage-repository |
Diff against target: |
263 lines (+47/-34) 3 files modified
bin/fetch-man-pages.sh (+12/-12) bin/make-manpage-repo.sh (+29/-16) bin/w3mman-to-html.pl (+6/-6) |
To merge this branch: | bzr merge lp:~paelzer/ubuntu-manpage-repository/ubuntu-manpage-repository-speed-boost |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Christian Ehrhardt | Approve | ||
Paride Legovini | lgtm | Approve | |
Review via email: mp+456936@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Christian Ehrhardt (paelzer) wrote : | # |
Revision history for this message
Christian Ehrhardt (paelzer) wrote : | # |
FYI: there is a bit of extra churn as I couldn't ignore the trailing whitespaces anymore :-)
Revision history for this message
Paride Legovini (paride) wrote : | # |
Another LGTM level review, meaning that I didn't test any of this, however the changes do look good.
review:
Approve
(lgtm)
Revision history for this message
Christian Ehrhardt (paelzer) wrote : | # |
It built the same content just fine utilization gone up linearly as expected.
Two full releases in 18h
That formerly was more like 24h on my system being blocked by network.
The prod system is less network limited and should gain even more.
And either way, the timestamped logs help to track things better ...
Revision history for this message
Christian Ehrhardt (paelzer) wrote : | # |
Thereby tests are good as well
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'bin/fetch-man-pages.sh' | |||
2 | --- bin/fetch-man-pages.sh 2018-06-05 23:34:38 +0000 | |||
3 | +++ bin/fetch-man-pages.sh 2023-12-06 08:10:05 +0000 | |||
4 | @@ -43,7 +43,7 @@ | |||
5 | 43 | NAME_AND_VER=$(echo "$PKG" | sed "s/\.deb$//") | 43 | NAME_AND_VER=$(echo "$PKG" | sed "s/\.deb$//") |
6 | 44 | DEB="$TEMPDIR/$PKG" | 44 | DEB="$TEMPDIR/$PKG" |
7 | 45 | 45 | ||
9 | 46 | echo "INFO: fetching: $PKGURL" | 46 | echo "INFO ($(date '+%H:%M:%S.%N')) - ${DIST}: fetching: $PKGURL" |
10 | 47 | curl --silent "$PKGURL" > "$DEB" | 47 | curl --silent "$PKGURL" > "$DEB" |
11 | 48 | 48 | ||
12 | 49 | DESTDIR="$PUBLIC_HTML_DIR/manpages/$DIST" | 49 | DESTDIR="$PUBLIC_HTML_DIR/manpages/$DIST" |
13 | @@ -52,13 +52,13 @@ | |||
14 | 52 | export W3MMAN_MAN='man --no-hyphenation' | 52 | export W3MMAN_MAN='man --no-hyphenation' |
15 | 53 | export MAN_KEEP_FORMATTING=1 | 53 | export MAN_KEEP_FORMATTING=1 |
16 | 54 | 54 | ||
18 | 55 | echo "INFO: Looking for manpages in [$DEB]" | 55 | echo "INFO ($(date '+%H:%M:%S.%N')) - ${DIST}: Looking for manpages in [$DEB]" |
19 | 56 | # The .*man bit is to handle postgres' inane manpage installation | 56 | # The .*man bit is to handle postgres' inane manpage installation |
20 | 57 | man=$(dpkg-deb -c "$DEB" | grep -E " \./usr/share.*/man/.*\.[0-9][a-zA-Z0-9\.\-]*\.gz$" | sed -e "s/^.*\.\//\.\//" -e "s/ \-> /\->/") | 57 | man=$(dpkg-deb -c "$DEB" | grep -E " \./usr/share.*/man/.*\.[0-9][a-zA-Z0-9\.\-]*\.gz$" | sed -e "s/^.*\.\//\.\//" -e "s/ \-> /\->/") |
21 | 58 | 58 | ||
22 | 59 | # Exit immediately if this package does not contain manpages | 59 | # Exit immediately if this package does not contain manpages |
23 | 60 | if [ -z "$man" ]; then | 60 | if [ -z "$man" ]; then |
25 | 61 | echo "INFO: No manpages: [$DIST] [$PKG]" | 61 | echo "INFO ($(date '+%H:%M:%S.%N')) - ${DIST}: No manpages: [$DIST] [$PKG]" |
26 | 62 | # Touch the cache file so we don't look again until package updated | 62 | # Touch the cache file so we don't look again until package updated |
27 | 63 | sha1sum "$DEB" | awk '{ print $1 }' > "$DESTDIR/.cache/$NAME" | 63 | sha1sum "$DEB" | awk '{ print $1 }' > "$DESTDIR/.cache/$NAME" |
28 | 64 | exit 0 | 64 | exit 0 |
29 | @@ -68,22 +68,22 @@ | |||
30 | 68 | 68 | ||
31 | 69 | dpkg-deb -x "$DEB" "$TEMPDIR" | 69 | dpkg-deb -x "$DEB" "$TEMPDIR" |
32 | 70 | for i in $man; do | 70 | for i in $man; do |
34 | 71 | #printf "%s\n" "INFO: Considering entry [$i]" | 71 | #printf "%s\n" "DEBUG: Considering entry [$i]" |
35 | 72 | i=$(printf "%s" "$i" | sed "s/^.*\.\///") | 72 | i=$(printf "%s" "$i" | sed "s/^.*\.\///") |
36 | 73 | if printf "%s" "$i" | grep -qs "\->"; then | 73 | if printf "%s" "$i" | grep -qs "\->"; then |
37 | 74 | SYMLINK=1 | 74 | SYMLINK=1 |
38 | 75 | symlink_src_html=$(printf "%s" "$i" | sed -e "s/^.*\->//" -e "s/\.gz$/\.html/") | 75 | symlink_src_html=$(printf "%s" "$i" | sed -e "s/^.*\->//" -e "s/\.gz$/\.html/") |
41 | 76 | i=$(printf "%s" "$i" | sed "s/\->.*$//") | 76 | i=$(printf "%s" "$i" | sed "s/\->.*$//") |
42 | 77 | #printf "%s\n" "INFO: [$i] is a symbolic link" | 77 | #printf "%s\n" "DEBUG: [$i] is a symbolic link" |
43 | 78 | else | 78 | else |
44 | 79 | SYMLINK=0 | 79 | SYMLINK=0 |
45 | 80 | fi | 80 | fi |
46 | 81 | manpage="$TEMPDIR/$i" | 81 | manpage="$TEMPDIR/$i" |
47 | 82 | i=$(printf "%s" "$i" | sed -e "s/usr\/share.*\/man\///i" -e "s/\.gz$//") | 82 | i=$(printf "%s" "$i" | sed -e "s/usr\/share.*\/man\///i" -e "s/\.gz$//") |
49 | 83 | #printf "%s\n" "INFO: Considering manpage [$i]" | 83 | #printf "%s\n" "DEBUG: Considering manpage [$i]" |
50 | 84 | # shellcheck disable=SC2166 | 84 | # shellcheck disable=SC2166 |
51 | 85 | if [ ! -s "$manpage" -o -z "$i" ] && [ "$SYMLINK" = "0" ]; then | 85 | if [ ! -s "$manpage" -o -z "$i" ] && [ "$SYMLINK" = "0" ]; then |
53 | 86 | #printf "%s\n" "INFO: Skipping empty manpage [$manpage]" | 86 | #printf "%s\n" "DEBUG: Skipping empty manpage [$manpage]" |
54 | 87 | continue | 87 | continue |
55 | 88 | fi | 88 | fi |
56 | 89 | out="$DESTDIR"/"$i".html | 89 | out="$DESTDIR"/"$i".html |
57 | @@ -91,12 +91,12 @@ | |||
58 | 91 | mkdir -p "$(dirname "$out")" "$outgz" > /dev/null || true | 91 | mkdir -p "$(dirname "$out")" "$outgz" > /dev/null || true |
59 | 92 | if [ "$SYMLINK" = "1" ]; then | 92 | if [ "$SYMLINK" = "1" ]; then |
60 | 93 | ln -f -s "$symlink_src_html" "$out" | 93 | ln -f -s "$symlink_src_html" "$out" |
62 | 94 | printf "%s\n" "INFO: Created symlink [$out]" | 94 | printf "%s\n" "INFO ($(date '+%H:%M:%S.%N')) - ${DIST}: Created symlink [$out]" |
63 | 95 | else | 95 | else |
64 | 96 | if LN=$(zcat "$manpage" | head -n1 | grep "^\.so "); then | 96 | if LN=$(zcat "$manpage" | head -n1 | grep "^\.so "); then |
65 | 97 | LN=$(printf "%s" "$LN" | sed -e 's/^\.so /\.\.\//' -e 's/\/\.\.\//\//g' -e 's/$/\.html/') | 97 | LN=$(printf "%s" "$LN" | sed -e 's/^\.so /\.\.\//' -e 's/\/\.\.\//\//g' -e 's/$/\.html/') |
66 | 98 | ln -f -s "$LN" "$out" | 98 | ln -f -s "$LN" "$out" |
68 | 99 | printf "INFO: Created symlink [%s]" "$out" | 99 | printf "INFO ($(date '+%H:%M:%S.%N')) - ${DIST}: Created symlink [%s]" "$out" |
69 | 100 | else | 100 | else |
70 | 101 | BODY=$(COLUMNS=100 /usr/lib/w3m/cgi-bin/w3mman2html.cgi "local=$manpage" | grep -A 1000000 "^<b>" | sed -e '/<\/body>/,+100 d' -e 's:^<b>\(.*\)</b>$:</pre><h4><b>\1</b></h4><pre>:g' -e 's:<a href="file\:///[^?]*?\([^(]*\)(\([^)]*\))">:<a href="../man\2/\1.\2.html">:g') | 101 | BODY=$(COLUMNS=100 /usr/lib/w3m/cgi-bin/w3mman2html.cgi "local=$manpage" | grep -A 1000000 "^<b>" | sed -e '/<\/body>/,+100 d' -e 's:^<b>\(.*\)</b>$:</pre><h4><b>\1</b></h4><pre>:g' -e 's:<a href="file\:///[^?]*?\([^(]*\)(\([^)]*\))">:<a href="../man\2/\1.\2.html">:g') |
71 | 102 | TITLE=$(printf "%s" "$BODY" | head -n2 | tail -n1 | sed "s/<[^>]\+>//g") | 102 | TITLE=$(printf "%s" "$BODY" | head -n2 | tail -n1 | sed "s/<[^>]\+>//g") |
72 | @@ -110,7 +110,7 @@ | |||
73 | 110 | $BODY | 110 | $BODY |
74 | 111 | </pre><!--#include virtual='/below.html' -->" > "$out" | 111 | </pre><!--#include virtual='/below.html' -->" > "$out" |
75 | 112 | 112 | ||
77 | 113 | printf "%s\n" "INFO: Created manpage [$out]" | 113 | printf "%s\n" "INFO ($(date '+%H:%M:%S.%N')) - ${DIST}: Created manpage [$out]" |
78 | 114 | fi | 114 | fi |
79 | 115 | fi | 115 | fi |
80 | 116 | mv -f "$manpage" "$outgz" | 116 | mv -f "$manpage" "$outgz" |
81 | @@ -121,7 +121,7 @@ | |||
82 | 121 | done | 121 | done |
83 | 122 | 122 | ||
84 | 123 | # After extracting all manpages, cache the sha1sum, so we don't | 123 | # After extracting all manpages, cache the sha1sum, so we don't |
86 | 124 | # repeat the downloads | 124 | # repeat the downloads |
87 | 125 | sha1sum "$DEB" | awk '{ print $1 }' > "$DESTDIR/.cache/$NAME" | 125 | sha1sum "$DEB" | awk '{ print $1 }' > "$DESTDIR/.cache/$NAME" |
88 | 126 | 126 | ||
89 | 127 | # In the case of freakish package permissions, fix them on rm failure. | 127 | # In the case of freakish package permissions, fix them on rm failure. |
90 | 128 | 128 | ||
91 | === modified file 'bin/make-manpage-repo.sh' | |||
92 | --- bin/make-manpage-repo.sh 2023-12-01 14:24:45 +0000 | |||
93 | +++ bin/make-manpage-repo.sh 2023-12-06 08:10:05 +0000 | |||
94 | @@ -2,23 +2,23 @@ | |||
95 | 2 | 2 | ||
96 | 3 | ############################################################################### | 3 | ############################################################################### |
97 | 4 | # Copyright (C) 2008 Canonical Ltd. | 4 | # Copyright (C) 2008 Canonical Ltd. |
99 | 5 | # | 5 | # |
100 | 6 | # This code was originally written by Dustin Kirkland <kirkland@ubuntu.com>, | 6 | # This code was originally written by Dustin Kirkland <kirkland@ubuntu.com>, |
101 | 7 | # based on a framework by Kees Cook <kees@ubuntu.com>. | 7 | # based on a framework by Kees Cook <kees@ubuntu.com>. |
103 | 8 | # | 8 | # |
104 | 9 | # This program is free software: you can redistribute it and/or modify | 9 | # This program is free software: you can redistribute it and/or modify |
105 | 10 | # it under the terms of the GNU General Public License as published by | 10 | # it under the terms of the GNU General Public License as published by |
106 | 11 | # the Free Software Foundation, either version 3 of the License, or | 11 | # the Free Software Foundation, either version 3 of the License, or |
107 | 12 | # (at your option) any later version. | 12 | # (at your option) any later version. |
109 | 13 | # | 13 | # |
110 | 14 | # This program is distributed in the hope that it will be useful, | 14 | # This program is distributed in the hope that it will be useful, |
111 | 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
112 | 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
113 | 17 | # GNU General Public License for more details. | 17 | # GNU General Public License for more details. |
115 | 18 | # | 18 | # |
116 | 19 | # You should have received a copy of the GNU General Public License | 19 | # You should have received a copy of the GNU General Public License |
117 | 20 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | 20 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
119 | 21 | # | 21 | # |
120 | 22 | # On Debian-based systems, the complete text of the GNU General Public | 22 | # On Debian-based systems, the complete text of the GNU General Public |
121 | 23 | # License can be found in /usr/share/common-licenses/GPL-3 | 23 | # License can be found in /usr/share/common-licenses/GPL-3 |
122 | 24 | ############################################################################### | 24 | ############################################################################### |
123 | @@ -75,27 +75,28 @@ | |||
124 | 75 | fi | 75 | fi |
125 | 76 | local deb="$1" | 76 | local deb="$1" |
126 | 77 | local sum="$2" | 77 | local sum="$2" |
127 | 78 | local distnopocket="$3" | ||
128 | 78 | local name=$(basename "$deb" | awk -F_ '{print $1}') | 79 | local name=$(basename "$deb" | awk -F_ '{print $1}') |
129 | 79 | existing_sum=$(cat "$PUBLIC_HTML_DIR/manpages/$dist/.cache/$name" 2>/dev/null) | 80 | existing_sum=$(cat "$PUBLIC_HTML_DIR/manpages/$dist/.cache/$name" 2>/dev/null) |
130 | 80 | 81 | ||
131 | 81 | # Take the first two digits of the existing_sum modulo 28 to | 82 | # Take the first two digits of the existing_sum modulo 28 to |
132 | 82 | # compare to the current day of month. | 83 | # compare to the current day of month. |
134 | 83 | # | 84 | # |
135 | 84 | # Reasoning: this will invalidate the cache for everything ~ | 85 | # Reasoning: this will invalidate the cache for everything ~ |
136 | 85 | # once per month (days: 1-28) | 86 | # once per month (days: 1-28) |
137 | 86 | day_mod=$((0x$(echo "$existing_sum" | cut -b 1-2)%27 + 1)) | 87 | day_mod=$((0x$(echo "$existing_sum" | cut -b 1-2)%27 + 1)) |
138 | 87 | if [ "$day_mod" -eq "$(date +%d)" ]; then | 88 | if [ "$day_mod" -eq "$(date +%d)" ]; then |
140 | 88 | echo "INFO: date_mod match, regnerating: $deb ($day_mod)" | 89 | echo "INFO ($(date '+%H:%M:%S.%N')) - ${distnopocket}: date_mod match, regnerating: $deb ($day_mod)" |
141 | 89 | return 0 | 90 | return 0 |
142 | 90 | fi | 91 | fi |
143 | 91 | 92 | ||
144 | 92 | # Of course, if the sum found in the packages file for this | 93 | # Of course, if the sum found in the packages file for this |
145 | 93 | # package does not equal the sum I have on disk, regenerate. | 94 | # package does not equal the sum I have on disk, regenerate. |
146 | 94 | if [ "$existing_sum" = "$sum" ]; then | 95 | if [ "$existing_sum" = "$sum" ]; then |
148 | 95 | echo "INFO: cksum skip: $deb" | 96 | echo "INFO ($(date '+%H:%M:%S.%N')) - ${distnopocket}: cksum skip: $deb" |
149 | 96 | return 1 | 97 | return 1 |
150 | 97 | else | 98 | else |
152 | 98 | echo "INFO: cksum mismatch: $deb" | 99 | echo "INFO ($(date '+%H:%M:%S.%N')) - ${distnopocket}: cksum mismatch: $deb" |
153 | 99 | return 0 | 100 | return 0 |
154 | 100 | fi | 101 | fi |
155 | 101 | } | 102 | } |
156 | @@ -107,7 +108,7 @@ | |||
157 | 107 | local deburl=$(get_deb_url "$deb") | 108 | local deburl=$(get_deb_url "$deb") |
158 | 108 | # FIXME: the || true needs to bubble up to a list of things wrong obviously. | 109 | # FIXME: the || true needs to bubble up to a list of things wrong obviously. |
159 | 109 | # shellcheck disable=SC2015 | 110 | # shellcheck disable=SC2015 |
161 | 110 | is_pkg_cache_invalid "$deb" "$sum" && "$DIR/fetch-man-pages.sh" "$distnopocket" "$deburl" || true | 111 | is_pkg_cache_invalid "$deb" "$sum" "$distnopocket" && "$DIR/fetch-man-pages.sh" "$distnopocket" "$deburl" || true |
162 | 111 | } | 112 | } |
163 | 112 | 113 | ||
164 | 113 | link_en_locale() { | 114 | link_en_locale() { |
165 | @@ -135,8 +136,8 @@ | |||
166 | 135 | return 0 | 136 | return 0 |
167 | 136 | } | 137 | } |
168 | 137 | 138 | ||
171 | 138 | declare -A pkg_handled | 139 | handle_series() { |
172 | 139 | for dist in $DISTROS; do | 140 | local dist="${1}" |
173 | 140 | # On one hand in some cases we do not want to know the pocket, as it | 141 | # On one hand in some cases we do not want to know the pocket, as it |
174 | 141 | # would show up in paths, URLs and bug links | 142 | # would show up in paths, URLs and bug links |
175 | 142 | distnopocket="${dist}" | 143 | distnopocket="${dist}" |
176 | @@ -146,6 +147,7 @@ | |||
177 | 146 | # It orders by likely most up-to-date pocket first and only re-renders if | 147 | # It orders by likely most up-to-date pocket first and only re-renders if |
178 | 147 | # a newer version of the same source package is found later (even single | 148 | # a newer version of the same source package is found later (even single |
179 | 148 | # Packages files can list the same source multiple times). | 149 | # Packages files can list the same source multiple times). |
180 | 150 | declare -A pkg_handled | ||
181 | 149 | pkg_handled=() | 151 | pkg_handled=() |
182 | 150 | for pocket in "-updates" "-security" ""; do | 152 | for pocket in "-updates" "-security" ""; do |
183 | 151 | mkdir -p "$PUBLIC_HTML_DIR/manpages/$distnopocket/.cache" "$PUBLIC_HTML_DIR/manpages.gz/$distnopocket" || true | 153 | mkdir -p "$PUBLIC_HTML_DIR/manpages/$distnopocket/.cache" "$PUBLIC_HTML_DIR/manpages.gz/$distnopocket" || true |
184 | @@ -153,7 +155,7 @@ | |||
185 | 153 | for repo in $REPOS; do | 155 | for repo in $REPOS; do |
186 | 154 | for arch in $ARCH; do | 156 | for arch in $ARCH; do |
187 | 155 | file=$(get_packages_url "${dist}${pocket}" "$repo" "$arch") | 157 | file=$(get_packages_url "${dist}${pocket}" "$repo" "$arch") |
189 | 156 | echo "INFO: Packages.gz: $file" | 158 | echo "INFO ($(date '+%H:%M:%S.%N')) - ${dist}: Packages.gz: $file" |
190 | 157 | plist=$(mktemp "/tmp/XXXXXXX.manpages.${dist}${pocket}.$repo.$arch.plist") | 159 | plist=$(mktemp "/tmp/XXXXXXX.manpages.${dist}${pocket}.$repo.$arch.plist") |
191 | 158 | curl -s "$file" \ | 160 | curl -s "$file" \ |
192 | 159 | | gunzip -c \ | 161 | | gunzip -c \ |
193 | @@ -164,20 +166,31 @@ | |||
194 | 164 | while read -r binpkg version deb sum; do | 166 | while read -r binpkg version deb sum; do |
195 | 165 | if dpkg --compare-versions "${version}" gt "${pkg_handled["$binpkg"]}"; then | 167 | if dpkg --compare-versions "${version}" gt "${pkg_handled["$binpkg"]}"; then |
196 | 166 | if [[ -n "${pkg_handled[$binpkg]}" ]]; then | 168 | if [[ -n "${pkg_handled[$binpkg]}" ]]; then |
198 | 167 | echo "INFO: binpkg: $binpkg ${version} > ${pkg_handled["$binpkg"]} (processing it again)" | 169 | echo "INFO ($(date '+%H:%M:%S.%N')) - ${dist}: binpkg: $binpkg ${version} > ${pkg_handled["$binpkg"]} (processing it again)" |
199 | 168 | else | 170 | else |
201 | 169 | echo "INFO: First encounter of binpkg: $binpkg ${version} (processing)" | 171 | echo "INFO ($(date '+%H:%M:%S.%N')) - ${dist}: First encounter of binpkg: $binpkg ${version} (processing)" |
202 | 170 | fi | 172 | fi |
203 | 171 | pkg_handled["$binpkg"]="${version}" | 173 | pkg_handled["$binpkg"]="${version}" |
204 | 172 | handle_deb "$distnopocket" "$deb" "$sum" | 174 | handle_deb "$distnopocket" "$deb" "$sum" |
205 | 173 | else | 175 | else |
207 | 174 | echo "INFO: binpkg: $binpkg ${version} < ${pkg_handled["$binpkg"]} (not processing)" | 176 | echo "INFO ($(date '+%H:%M:%S.%N')) - ${dist}: binpkg: $binpkg ${version} < ${pkg_handled["$binpkg"]} (not processing)" |
208 | 175 | fi | 177 | fi |
209 | 176 | done < "${plist}" | 178 | done < "${plist}" |
210 | 177 | rm -f "${plist}" | 179 | rm -f "${plist}" |
211 | 178 | done | 180 | done |
212 | 179 | done | 181 | done |
213 | 180 | done | 182 | done |
214 | 183 | |||
215 | 184 | } | ||
216 | 185 | |||
217 | 186 | # Simple parallelization on the level of releases; they do not overlap | ||
218 | 187 | # in regard to directories/files, but doing so help to keep the network | ||
219 | 188 | # connection utilized as one can fetch while the other is converting. | ||
220 | 189 | # Furthermore it avoids that issues, or a lot of new content, in one release | ||
221 | 190 | # (e.g. -dev opened) will make the regular update on the others take ages. | ||
222 | 191 | for dist in $DISTROS; do | ||
223 | 192 | handle_series "${dist}" & | ||
224 | 181 | done | 193 | done |
225 | 194 | wait | ||
226 | 182 | 195 | ||
227 | 183 | "$DIR/make-sitemaps.sh" | 196 | "$DIR/make-sitemaps.sh" |
228 | 184 | 197 | ||
229 | === modified file 'bin/w3mman-to-html.pl' | |||
230 | --- bin/w3mman-to-html.pl 2009-02-09 21:37:49 +0000 | |||
231 | +++ bin/w3mman-to-html.pl 2023-12-06 08:10:05 +0000 | |||
232 | @@ -2,25 +2,25 @@ | |||
233 | 2 | 2 | ||
234 | 3 | ############################################################################## | 3 | ############################################################################## |
235 | 4 | # This is the Ubuntu manpage repository generator and interface. | 4 | # This is the Ubuntu manpage repository generator and interface. |
237 | 5 | # | 5 | # |
238 | 6 | # Copyright (C) 2008 Canonical Ltd. | 6 | # Copyright (C) 2008 Canonical Ltd. |
240 | 7 | # | 7 | # |
241 | 8 | # This code was originally written by Dustin Kirkland <kirkland@ubuntu.com>, | 8 | # This code was originally written by Dustin Kirkland <kirkland@ubuntu.com>, |
242 | 9 | # based on a framework by Kees Cook <kees@ubuntu.com>. | 9 | # based on a framework by Kees Cook <kees@ubuntu.com>. |
244 | 10 | # | 10 | # |
245 | 11 | # This program is free software: you can redistribute it and/or modify | 11 | # This program is free software: you can redistribute it and/or modify |
246 | 12 | # it under the terms of the GNU General Public License as published by | 12 | # it under the terms of the GNU General Public License as published by |
247 | 13 | # the Free Software Foundation, either version 3 of the License, or | 13 | # the Free Software Foundation, either version 3 of the License, or |
248 | 14 | # (at your option) any later version. | 14 | # (at your option) any later version. |
250 | 15 | # | 15 | # |
251 | 16 | # This program is distributed in the hope that it will be useful, | 16 | # This program is distributed in the hope that it will be useful, |
252 | 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
253 | 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
254 | 19 | # GNU General Public License for more details. | 19 | # GNU General Public License for more details. |
256 | 20 | # | 20 | # |
257 | 21 | # You should have received a copy of the GNU General Public License | 21 | # You should have received a copy of the GNU General Public License |
258 | 22 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | 22 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
260 | 23 | # | 23 | # |
261 | 24 | # On Debian-based systems, the complete text of the GNU General Public | 24 | # On Debian-based systems, the complete text of the GNU General Public |
262 | 25 | # License can be found in /usr/share/common-licenses/GPL-3 | 25 | # License can be found in /usr/share/common-licenses/GPL-3 |
263 | 26 | ############################################################################## | 26 | ############################################################################## |
Trying to help with fixing and debugging the slow execution in prodstack.
On one hand this will run the releases concurrently allowing it to make more use of the CPUs now given to us.
On the other hand adding timing into to the log will allow comparisons of this vs execution on other platforms where it seems faster.
A full run of noble+mantic is running locally atm, I'll provide a log later.