This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
RFC: automatically listing fixed bugs for NEWS
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Thu, 29 Oct 2015 16:57:47 +0000
- Subject: RFC: automatically listing fixed bugs for NEWS
- Authentication-results: sourceware.org; auth=none
Attached is a (Python 3) script to generate a list of fixed bugs for NEWS
from Bugzilla data (including bug summaries as proposed by Mike in
<https://sourceware.org/ml/libc-alpha/2015-08/msg00103.html>), using the
Bugzilla API to obtain the relevant information from Bugzilla in JSON
format. I've included current output below. Note that this output is
*not* complete, as I haven't finished going through bugs listed in NEWS
for 2.23 to set their milestones; that would be necessary before switching
from manual NEWS updates to using this script.
What do people think of using this script - put in
scripts/list-fixed-bugs.py, say - to replace the manual NEWS edits when
fixing bugs?
Notes:
* We previously discussed having a "fixed in" Bugzilla field to handle
bugs fixed on both mainline and release branches. But since we don't
currently make point releases (just leaving it to distributors to get
release branch changes from git), that seems pretty pointless - the script
would never be run for release branches. So for now I'd proposed that
people continue to edit NEWS manually for release branch fixes (using the
new longer format, of course).
* The section on milestones at
<https://sourceware.org/glibc/wiki/Bugzilla%20Procedures> should be
considered largely obsolete (and mostly speculative rather than describing
anything that ever happened). Closed bugs, closed as FIXED, should have
the milestone set to the version of the first mainline release with the
fix (not to any older branch to which the fix was backported). Open bugs,
and bugs closed other than as FIXED, should not have milestones.
* It would become important that people do actually set milestones when
closing bugs as fixed. Thus, people watching commits and Bugzilla should
watch for that.
* The script's output is UTF-8 when non-ASCII characters are included in
bug descriptions; it needs to be run in a UTF-8 locale.
* I'd be inclined to put the list of fixed bugs at the *end* of the NEWS
section for a release, rather than at the start, so starting with the more
significant changes with their own NEWS items.
* Before a release, the NEWS file would contain a placeholder like:
[The release manager will add the list generated by
scripts/list-fixed-bugs.py just before the release.]
and <https://sourceware.org/glibc/wiki/Release> would list this step just
before the existing "6.10. Tag".
[BZ #887] Math library function "logb" and "nextafter" inconsistent
[BZ #2542] Incorrect return from float gamma (-0X1.FA471547C2FE5P+1)
[BZ #2543] Incorrect return from float gamma (-0X1.9260DCP+1)
[BZ #2558] Incorrect return from double gamma (-0X1.FA471547C2FE5P+1)
[BZ #2898] [improve] warning: the use of `mktemp' is dangerous, better
use `mkstemp'
[BZ #4404] German translation of "Alarm clock" is misleading
[BZ #6803] scalb(), scalbln(), scalbn() do not set errno on
overflow/underflow
[BZ #10432] _nss_nis_setnetgrent assertion failure
[BZ #14341] Dynamic linker crash when DT_JMPREL and DT_REL{,A} are not
contiguous
[BZ #14912] Rename non-installed bits/*.h headers
[BZ #15367] Let gcc use __builtin_isinf
[BZ #15384] One constant fewer in ieee754/dbl-64/wordsize-64/s_finite.c
[BZ #15470] [arm] On ARM llrintl() and llroundl() do not raise FE_INVALID
with argument out of range
[BZ #15491] [i386/x86_64] x86 nearbyint implementations wrongly clear all
exceptions
[BZ #15786] ifunc resolver functions can smash function arguments
[BZ #15918] Unnecessary check for equality in hypotf()
[BZ #16068] [i386/x86_64] x86 and x86_64 fesetenv exclude state they
should include
[BZ #16141] strptime %z offset restriction
[BZ #16296] fegetround is pure?
[BZ #16347] [ldbl-128ibm] ldbl-128/e_lgammal_r.c may not be suitable.
[BZ #16399] [mips] lrint / llrint / lround / llround missing exceptions
[BZ #16415] Clean up ldbl-128 / ldbl-128ibm expm1l for large positive
arguments
[BZ #16422] [powerpc] math-float, math-double failing llrint tests with
"Exception "Inexact" set" on ppc32
[BZ #16517] Missing underflow exception from tanf/tan/tanl
[BZ #16519] Missing underflow exception from sinhf
[BZ #16520] Missing underflow exception from tanhf
[BZ #16521] Missing underflow exception from exp2
[BZ #16620] [ldbl-128ibm] exp10l spurious overflows / bad directed
rounding results
[BZ #16734] fopen calls mmap to allocate its buffer
[BZ #16973] Fix lang_lib/lang_term as per ISO 639-2
[BZ #16985] localedef: confusing error message when opening output fails
[BZ #17118] ctanh(INFINITY + 2 * I) returns incorrect value
[BZ #17243] trunk/posix/execl.c:53: va_args problem ?
[BZ #17244] trunk/sysdeps/unix/sysv/linux/semctl.c:116: va_args muxup ?
[BZ #17250] static linking breaks nss loading
(getaddrinfo/getpwnam/etc...)
[BZ #17404] atomic_exchange_rel lacking a barrier on MIPS16, GCC before
4.7?
[BZ #17441] isnan() should use __builtin_isnan() in GCC
[BZ #17787] Exponent on page 324 of the PDF ends prematurely
[BZ #17886] strptime should be able to parse "Z" as a timezone with %z
[BZ #17887] strptime should be able to parse "+01:00" style timezones
[BZ #17905] catopen() Multiple unbounded stack allocations
[BZ #18084] backtrace (..., 0) dumps core on x86
[BZ #18086] nice() sets errno to 0 on success
[BZ #18240] hcreate((size_t)-1) should fail with ENOMEM
[BZ #18265] add attributes for wchar string and memory functions
[BZ #18370] csqrt missing underflows
[BZ #18421] [hppa] read-only segment has dynamic relocations
[BZ #18480] hppa glibc miscompilation in sched_setaffinity()
[BZ #18525] Remove locale timezone information
[BZ #18589] sort-test.sh fails at random
[BZ #18595] ctan, ctanh missing underflows
[BZ #18610] S390: fetestexcept() reports any exception if DXC-code
contains a vector instruction exception.
[BZ #18611] j1, jn missing errno setting on underflow
[BZ #18618] sync Chechen locale definitions with other *_RU locales
[BZ #18647] powf(-0x1.000002p0, 0x1p30) returns 0 instead of +inf
[BZ #18661] Some x86-64 assembly codes don't align stack to 16 bytes
[BZ #18674] [i386] trunk/sysdeps/i386/tst-auditmod3b.c:84: possible
missing break ?
[BZ #18675] fpathconf(_PC_NAME_MAX) fails against large filesystems for
32bit processes
[BZ #18681] regexp.h is obsolete and buggy, and should be desupported
[BZ #18699] tilegx cproj() for various complex infinities does not yield
infinity
[BZ #18724] Harden put*ent functions against data injection
[BZ #18743] PowerPC: findutils testcase fails with --enable-lock-elision
[BZ #18757] fmemopen fails to set errno on failure
[BZ #18778] ld.so crashes if failed dlopen causes libpthread to be forced
unloaded
[BZ #18781] openat64 lacks O_LARGEFILE
[BZ #18787] [hppa] sysdeps/unix/sysv/linux/hppa/bits/atomic.h:71:6: error:
canʼt find a register in class ʽR1_REGSʼ while reloading ʽasmʼ
[BZ #18789] [ldbl-128ibm] sinhl inaccurate near 0
[BZ #18790] [ldbl-128ibm] tanhl inaccurate
[BZ #18803] hypot missing underflows
[BZ #18823] csqrt spurious underflows
[BZ #18824] fma spurious underflows
[BZ #18825] pow missing underflows
[BZ #18857] [ldbl-128ibm] nearbyintl wrongly uses signaling comparisons
[BZ #18875] Excess precision leads incorrect libm
[BZ #18918] hu_HU: change time to HH:MM:SS format
[BZ #18951] tgamma missing underflows
[BZ #18953] lt_LT: change currency symbol to the euro
[BZ #18956] powf inaccuracy
[BZ #18961] [i386] exp missing underflows
[BZ #18966] [i386] exp10 missing underflows
[BZ #18967] math.h XSI POSIX namespace (gamma, isnan, scalb)
[BZ #18970] Reference of pthread_setcancelstate in libc.a
[BZ #18980] i386 libm functions return with excess range and precision
[BZ #18982] va_list and vprintf
[BZ #19003] [x86_64] fma4 version of pow inappropriate contraction
[BZ #19007] FAIL: elf/check-localplt with -z now and binutils 2.26
[BZ #19016] clog, clog10 inaccuracy
[BZ #19032] [i386] acosh (-qNaN) spurious "invalid" exception
[BZ #19046] ldbl-128 / ldbl-128ibm lgamma bad overflow handling
[BZ #19049] [powerpc] erfc incorrect zero sign
[BZ #19050] [powerpc] log* incorrect zero sign
[BZ #19059] nexttoward overflow incorrect in non-default rounding modes
[BZ #19076] [ldbl-128ibm] log1pl (-1) wrong sign of infinity
[BZ #19077] [ldbl-128ibm] logl (1) incorrect sign of zero result
[BZ #19078] [ldbl-128ibm] expl overflow incorrect in non-default rounding
modes
[BZ #19079] dbl-64/wordsize-64 lround based on llround incorrect for ILP32
[BZ #19085] ldbl-128 lrintl, lroundl missing exceptions for 32-bit long
[BZ #19086] posix_fallocate64 documented argument order is wrong.
[BZ #19088] lround, llround missing exceptions close to overflow threshold
[BZ #19094] lrint, llrint missing exceptions close to overflow threshold
[BZ #19095] dbl-64 lrint incorrect for 64-bit long
[BZ #19124] ld.so failed to build with older assmebler
[BZ #19125] [powerpc32] llroundf, llround incorrect exceptions
[BZ #19129] [arm] Concurrent lazy TLSDESC resolution can crash
[BZ #19134] [powerpc32] lround, lroundf spurious exceptions
[BZ #19137] i386/epoll_pwait.S doesn't support cancellation
[BZ #19156] [ldbl-128] j0l spurious underflows
[BZ #19174] PowerPC: TLE enabled pthread mutex performs poorly.
[BZ #19181] [i386/x86_64] fesetenv (FE_DFL_ENV), fesetenv (FE_NOMASK_ENV)
do not clear SSE exceptions
--
Joseph S. Myers
joseph@codesourcery.com
#! /usr/bin/python3
# Copyright (C) 2015 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <http://www.gnu.org/licenses/>.
"""List fixed bugs for the NEWS file.
This script takes a version number as input and generates a list of
bugs marked as FIXED with that milestone, to be added to the NEWS file
just before release. Run the script in a UTF-8 locale.
"""
import json
import sys
import textwrap
import urllib.request
def list_fixed_bugs(version):
"""List the bugs fixed in a given version."""
url = ('https://sourceware.org/bugzilla/rest.cgi/bug?product=glibc'
'&resolution=FIXED&target_milestone=%s'
'&include_fields=id,summary' % version)
response = urllib.request.urlopen(url)
json_data = response.read().decode('utf-8')
data = json.loads(json_data)
for bug in data['bugs']:
desc = '[BZ #%d] %s' % (bug['id'], bug['summary'])
desc = textwrap.fill(desc, width=76, initial_indent=' ',
subsequent_indent=' ')
print(desc)
if __name__ == '__main__':
list_fixed_bugs(sys.argv[1])