Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • Maytha8/glibc
  • vimerbf-guest/glibc
  • schopin/glibc
  • yumeyao/glibc
  • carlespina/po-debconf-manager-glibc
  • Claudia/glibc-widevine
  • andrewsh/glibc
  • jscott/glibc
  • bluca/glibc
  • gioele/glibc
  • rouca/glibc
  • sven/glibc
  • josch/glibc
  • cjwatson/glibc
  • fw/glibc
  • rbalint/glibc
  • bsd-team/glibc-packaging
  • glibc-team/glibc
  • bigon/glibc
  • ahrex-guest/glibc
  • friki/glibc
21 results
Show changes
Commits on Source (26)
Showing
with 180 additions and 3264 deletions
glibc (2.41-2) UNRELEASED; urgency=medium
[ Samuel Thibault ]
* debian/patches/hurd-i386/proc_reauth.diff: Mark as committed for 2.42.
[ Aurelien Jarno ]
* debian/debhelper.in/*.lintian-overrides, debian/source/lintian-overrides:
update to limit the errors/warnings with recent lintian versions.
* debian/salsa-ci.yml: add CI/CD pipeline configuration for salsa.
* debian/patches/git-updates.diff: update from upstream stable branch.
* debian/patches/m68k/local-dwarf2-buildfix.diff: drop, obsolete.
* debian/patches/m68k/submitted-gcc34-seccomment.diff: drop, obsolete.
* debian/patches/hppa/local-inlining.diff: drop, obsolete.
* debian/control.in/libc: add breaks against dhcpcd (<< 1:10.1.0-7~), see
#1096157.
* debian/testsuite-xfail-debian.mk: mark math/test-float-log10 and
math/test-float32-log10 as XFAIL on powerpc as requested by the porters.
* debian/control.in/libc: add breaks against libraries with executable stack
that can be dlopened().
[ Camaleón ]
* Update Spanish debconf translation. Closes: #1098283.
[ Paulo Henrique de Lima Santana ]
* Update Brazilian Portuguese translation. Closes: #1098500.
-- Samuel Thibault <sthibault@debian.org> Sat, 01 Feb 2025 18:21:38 +0100
glibc (2.41-1) experimental; urgency=medium
[ Aurelien Jarno ]
* New upstream release:
- Add the sched_setattr and sched_getattr functions. Closes: #870488.
- Fix failure of pthread_cond_signal() to wake up pthread_cond_wait().
Closes: #986724.
- debian/copyright: update following upstream changes.
- debian/symbols.wildcards: add 2.41.
- debian/patches/git-updates.diff: update from upstream stable branch.
- debian/patches/arm/git-hwcap2-constants.diff: upstreamed.
- debian/patches/hurd-i386/git-fault-64bit.diff: upstreamed.
- debian/patches/hurd-i386/git-pthread_symbols.diff: upstreamed.
- debian/patches/hurd-i386/git-tst-aligned-alloc-random-thread.diff:
upstreamed.
- debian/patches/hurd-i386/git-tst-aligned-alloc-random-thread-mcheck.diff:
upstreamed.
- debian/patches/hurd-i386/git-default_pager.h.diff: upstreamed.
- debian/patches/hurd-i386/git-MAP_NORESERVE.diff: upstreamed.
- debian/patches/hurd-i386/git-signal-reply-port.diff: upstreamed.
- debian/patches/hurd-i386/git-CMSG_DATA.diff: upstreamed.
- debian/patches/hurd-i386/git-early-kill.diff: upstreamed.
- debian/patches/hurd-i386/submitted-bind_umask2.diff: rebased.
- debian/patches/hurd-i386/submitted-net.diff: rebased.
- debian/patches/hurd-i386/local-clock_gettime_MONOTONIC.diff: rebased.
- debian/patches/any/local-cudacc-float128.diff: dropped, obsolete.
- debian/patches/any/git-iconv-*: upstreamed.
- debian/patches/any/git-posix-fix-system-when-a-child-cannot-be*.patch:
upstreamed.
* debian/watch: rewrite pointing to git instead of release tarball (as we
need to mangle it anyway).
* debian/rules.d/tarball.mk: get rid of the now useless get-orig-source
target.
[ Samuel Thibault ]
* debian/patches/hurd-i386/local-clock_gettime_MONOTONIC.diff: rebased.
-- Aurelien Jarno <aurel32@debian.org> Thu, 30 Jan 2025 23:14:50 +0100
glibc (2.40-7) unstable; urgency=medium
 
[ Samuel Thibault ]
......
......@@ -12,7 +12,7 @@ Build-Depends: gettext, dpkg (>= 1.18.7), dpkg-dev (>= 1.17.14), xz-utils, file,
g++-14-for-host (>= 14.1.0-4) [arm64],
python3:native,
libidn2-0 (>= 2.0.5~) <!nocheck>,
libc-bin (>= 2.40) <cross>,
libc-bin (>= 2.41) <cross>,
libgd-dev <!stage1 !stage2>,
Build-Depends-Indep: perl, po-debconf (>= 1.0)
Rules-Requires-Root: no
......@@ -50,7 +50,7 @@ Priority: optional
Multi-Arch: foreign
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: manpages, manpages-dev
Suggests: libc-devtools (>> 2.40)
Suggests: libc-devtools (>> 2.41)
Build-Profiles: <!stage1>
Description: GNU C Library: Development binaries
This package contains utility programs related to the GNU C Library
......@@ -116,7 +116,7 @@ Package: locales
Architecture: all
Section: localization
Priority: standard
Depends: libc-bin (>> 2.40), libc-l10n (>> 2.40), ${misc:Depends}, debconf | debconf-2.0
Depends: libc-bin (>> 2.41), libc-l10n (>> 2.41), ${misc:Depends}, debconf | debconf-2.0
Build-Profiles: <!stage1>
Description: GNU C Library: National Language (locale) data [support]
Machine-readable data files, shared objects and programs used by the
......@@ -133,7 +133,7 @@ Architecture: any
Section: localization
Priority: optional
Multi-Arch: foreign
Depends: libc-l10n (>> 2.40), ${misc:Depends}
Depends: libc-l10n (>> 2.41), ${misc:Depends}
Build-Profiles: <!stage1>
Description: GNU C Library: Precompiled locale data
This package contains the precompiled locale data for all supported locales.
......@@ -165,7 +165,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-any], libnss-nis, libnss-nisplus
Provides: libc6-sparcv9b [sparc sparc64], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-i686 [i386], libc6.1-alphaev67 [alpha]
Breaks: nscd (<< 2.40), locales (<< 2.40), locales-all (<< 2.40), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit-core (<< 3.09-2~), sysvinit (<< 3.09-2~), base-files (<< 13.3~), openssh-server (<< 1:9.9p1-3+hurd.1) [hurd-amd64]
Breaks: nscd (<< 2.41), locales (<< 2.41), locales-all (<< 2.41), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit-core (<< 3.09-2~), sysvinit (<< 3.09-2~), base-files (<< 13.3~), openssh-server (<< 1:9.9p1-3+hurd.1) [hurd-amd64], dhcpcd (<< 1:10.1.0-7~), pd-scaf (<< 1:0.14.1+darcs20180201-6+b4), postgresql-pllua (<< 1:2.0.12-3+b2), librccl1 (<< 5.4.3-3+b1), libamdhip64-5 (<< 5.7.1-5+b1), libhiprtc-builtins5 (<< 5.7.1-5+b1), lua-swupdate (<< 2024.12.1+dfsg-1+b3), libswupdate0.1 (<< 2024.12.1+dfsg-1+b3), uwsgi-plugin-pypy3 (<< 0.0.2+b1), python3-onnxruntime (<< 1.20.1+dfsg-2~)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.3-i686 [hurd-i386],
......@@ -237,7 +237,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-any], libnss-nis, libnss-nisplus
Provides: libc6-sparcv9b [sparc sparc64], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-i686 [i386], libc6.1-alphaev67 [alpha]
Breaks: nscd (<< 2.40), locales (<< 2.40), locales-all (<< 2.40), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit-core (<< 3.09-2~), sysvinit (<< 3.09-2~), base-files (<< 13.3~), openssh-server (<< 1:9.9p1-3+hurd.1) [hurd-amd64]
Breaks: nscd (<< 2.41), locales (<< 2.41), locales-all (<< 2.41), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit-core (<< 3.09-2~), sysvinit (<< 3.09-2~), base-files (<< 13.3~), openssh-server (<< 1:9.9p1-3+hurd.1) [hurd-amd64], dhcpcd (<< 1:10.1.0-7~), pd-scaf (<< 1:0.14.1+darcs20180201-6+b4), postgresql-pllua (<< 1:2.0.12-3+b2), librccl1 (<< 5.4.3-3+b1), libamdhip64-5 (<< 5.7.1-5+b1), libhiprtc-builtins5 (<< 5.7.1-5+b1), lua-swupdate (<< 2024.12.1+dfsg-1+b3), libswupdate0.1 (<< 2024.12.1+dfsg-1+b3), uwsgi-plugin-pypy3 (<< 0.0.2+b1), python3-onnxruntime (<< 1.20.1+dfsg-2~)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.3-i686 [hurd-i386],
......@@ -309,7 +309,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-any], libnss-nis, libnss-nisplus
Provides: libc6-sparcv9b [sparc sparc64], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-i686 [i386], libc6.1-alphaev67 [alpha]
Breaks: nscd (<< 2.40), locales (<< 2.40), locales-all (<< 2.40), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit-core (<< 3.09-2~), sysvinit (<< 3.09-2~), base-files (<< 13.3~), openssh-server (<< 1:9.9p1-3+hurd.1) [hurd-amd64]
Breaks: nscd (<< 2.41), locales (<< 2.41), locales-all (<< 2.41), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit-core (<< 3.09-2~), sysvinit (<< 3.09-2~), base-files (<< 13.3~), openssh-server (<< 1:9.9p1-3+hurd.1) [hurd-amd64], dhcpcd (<< 1:10.1.0-7~), pd-scaf (<< 1:0.14.1+darcs20180201-6+b4), postgresql-pllua (<< 1:2.0.12-3+b2), librccl1 (<< 5.4.3-3+b1), libamdhip64-5 (<< 5.7.1-5+b1), libhiprtc-builtins5 (<< 5.7.1-5+b1), lua-swupdate (<< 2024.12.1+dfsg-1+b3), libswupdate0.1 (<< 2024.12.1+dfsg-1+b3), uwsgi-plugin-pypy3 (<< 0.0.2+b1), python3-onnxruntime (<< 1.20.1+dfsg-2~)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.3-i686 [hurd-i386],
......
......@@ -8,7 +8,7 @@ Recommends: libidn2-0 (>= 2.0.5~)
Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-any], libnss-nis, libnss-nisplus
Provides: libc6-sparcv9b [sparc sparc64], libc0.3-i686 [hurd-i386], libc6-i686 [i386]
Conflicts: libc6-i686 [i386], libc6.1-alphaev67 [alpha]
Breaks: nscd (<< @DEB_VERSION_UPSTREAM@), locales (<< @DEB_VERSION_UPSTREAM@), locales-all (<< @DEB_VERSION_UPSTREAM@), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit-core (<< 3.09-2~), sysvinit (<< 3.09-2~), base-files (<< 13.3~), openssh-server (<< 1:9.9p1-3+hurd.1) [hurd-amd64]
Breaks: nscd (<< @DEB_VERSION_UPSTREAM@), locales (<< @DEB_VERSION_UPSTREAM@), locales-all (<< @DEB_VERSION_UPSTREAM@), gnumach-image-1.8-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-486-dbg (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486 (<< 2:1.8+git20210923~), gnumach-image-1.8-xen-486-dbg (<< 2:1.8+git20210923~), hurd (<< 1:0.9.git20220301-2), python3-iptables (<< 1.0.0-2), fakechroot (<< 2.19-3.5), tinydns (<< 1:1.05-14), chrony (<< 4.2-3~), valgrind (<< 1:3.19.0-1~), firefox (<< 91~), firefox-esr (<< 91~), systemd (<< 256~rc4-1~), sysvinit-core (<< 3.09-2~), sysvinit (<< 3.09-2~), base-files (<< 13.3~), openssh-server (<< 1:9.9p1-3+hurd.1) [hurd-amd64], dhcpcd (<< 1:10.1.0-7~), pd-scaf (<< 1:0.14.1+darcs20180201-6+b4), postgresql-pllua (<< 1:2.0.12-3+b2), librccl1 (<< 5.4.3-3+b1), libamdhip64-5 (<< 5.7.1-5+b1), libhiprtc-builtins5 (<< 5.7.1-5+b1), lua-swupdate (<< 2024.12.1+dfsg-1+b3), libswupdate0.1 (<< 2024.12.1+dfsg-1+b3), uwsgi-plugin-pypy3 (<< 0.0.2+b1), python3-onnxruntime (<< 1.20.1+dfsg-2~)
Replaces: libc6-amd64 [amd64],
libc6-i386 [i386],
libc0.3-i686 [hurd-i386],
......
......@@ -5,7 +5,7 @@ Files-Excluded:
manual/*
Files: *
Copyright: 1991-2024 Free Software Foundation, Inc.
Copyright: 1991-2025 Free Software Foundation, Inc.
License: LGPL-2.1+
Files:
......@@ -34,7 +34,7 @@ Files:
sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h
sysdeps/unix/sysv/linux/default-sched.h
sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h
Copyright: 1995-2024 Free Software Foundation, Inc.
Copyright: 1995-2025 Free Software Foundation, Inc.
License: LGPL-2+
Files:
......@@ -45,11 +45,11 @@ Files:
sysdeps/powerpc/nofpu/sqrt*f2.c
sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c
sysdeps/x86/fpu/e_sqrtf128.c
Copyright: 1997-2024 Free Software Foundation, Inc.
Copyright: 1997-2025 Free Software Foundation, Inc.
License: LGPL-2.1+-with-link-exception
Files: sysdeps/htl/raise.c
Copyright: 2008-2024 Free Software Foundation, Inc.
Copyright: 2008-2025 Free Software Foundation, Inc.
License: LGPL-3+
Files:
......@@ -146,17 +146,17 @@ Files:
sysdeps/unix/sysv/linux/nscd_setup_thread.c
sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c
sysdeps/unix/sysv/linux/tst-ofdlocks.c
Copyright: 1991-2024 Free Software Foundation, Inc.
Copyright: 1991-2025 Free Software Foundation, Inc.
License: GPL-2+
Files: sysdeps/arm/unwind.h
Copyright: 2003-2024 Free Software Foundation, Inc.
Copyright: 2003-2025 Free Software Foundation, Inc.
License: GPL-2+-with-link-exception
Files: sysdeps/unix/sysv/linux/mips/sys/user.h
Copyright:
1995, 1999 by Ralf Baechle
2002-2024 Free Software Foundation
2002-2025 Free Software Foundation
License: LGPL-2.1+ and GPL-2
Files: scripts/move-if-change
......@@ -194,7 +194,7 @@ Files:
mach/msgserver.c
Copyright:
1991,1990,1989 Carnegie Mellon University
1993-2024 Free Software Foundation, Inc.
1993-2025 Free Software Foundation, Inc.
License: Carnegie and LGPL-2.1+
Files:
......@@ -202,7 +202,7 @@ Files:
nss/getnameinfo.c
Copyright:
1996 by Craig Metz
1997-2024 Free Software Foundation, Inc.
1997-2025 Free Software Foundation, Inc.
License: Inner-Net and LGPL-2.1+
Files: posix/runtests.c
......@@ -319,31 +319,19 @@ Files:
sysdeps/ieee754/dbl-64/s_scalbln.c
sysdeps/ieee754/dbl-64/s_scalbn.c
sysdeps/ieee754/dbl-64/s_tanh.c
sysdeps/ieee754/flt-32/e_acosf.c
sysdeps/ieee754/flt-32/e_acoshf.c
sysdeps/ieee754/flt-32/e_atan2f.c
sysdeps/ieee754/flt-32/e_coshf.c
sysdeps/ieee754/flt-32/e_ilogbf.c
sysdeps/ieee754/flt-32/e_j0f.c
sysdeps/ieee754/flt-32/e_j1f.c
sysdeps/ieee754/flt-32/e_jnf.c
sysdeps/ieee754/flt-32/e_lgammaf_r.c
sysdeps/ieee754/flt-32/e_log10f.c
sysdeps/ieee754/flt-32/e_remainderf.c
sysdeps/ieee754/flt-32/e_sinhf.c
sysdeps/ieee754/flt-32/e_sqrtf.c
sysdeps/ieee754/flt-32/s_asinhf.c
sysdeps/ieee754/flt-32/s_atanf.c
sysdeps/ieee754/flt-32/s_ceilf.c
sysdeps/ieee754/flt-32/s_copysignf.c
sysdeps/ieee754/flt-32/s_erff.c
sysdeps/ieee754/flt-32/s_expm1f.c
sysdeps/ieee754/flt-32/s_fabsf.c
sysdeps/ieee754/flt-32/s_finitef.c
sysdeps/ieee754/flt-32/s_floorf.c
sysdeps/ieee754/flt-32/s_frexpf.c
sysdeps/ieee754/flt-32/s_isnanf.c
sysdeps/ieee754/flt-32/s_log1pf.c
sysdeps/ieee754/flt-32/s_logbf.c
sysdeps/ieee754/flt-32/s_modff.c
sysdeps/ieee754/flt-32/s_nearbyintf.c
......@@ -351,8 +339,6 @@ Files:
sysdeps/ieee754/flt-32/s_rintf.c
sysdeps/ieee754/flt-32/s_scalblnf.c
sysdeps/ieee754/flt-32/s_scalbnf.c
sysdeps/ieee754/flt-32/s_tanf.c
sysdeps/ieee754/flt-32/s_tanhf.c
sysdeps/ieee754/k_standard.c
sysdeps/ieee754/ldbl-128/e_atan2l.c
sysdeps/ieee754/ldbl-128/e_atanhl.c
......@@ -433,7 +419,6 @@ Comment: Files from Sun fdlibm
Files:
sysdeps/ieee754/dbl-64/s_floor.c
sysdeps/ieee754/flt-32/e_asinf.c
sysdeps/ieee754/k_standardl.c
sysdeps/ieee754/ldbl-128/e_acosl.c
sysdeps/ieee754/ldbl-128/e_asinl.c
......@@ -459,10 +444,37 @@ Files:
Copyright:
1993 by Sun Microsystems, Inc.
1984, 1991, 2001 by Stephen L. Moshier
2011-2024 Free Software Foundation, Inc.
2012-2024 Free Software Foundation, Inc.
2011-2025 Free Software Foundation, Inc.
2012-2025 Free Software Foundation, Inc.
License: LGPL-2.1+ and SunPro
Files:
sysdeps/ieee754/flt-32/e_acosf.c
sysdeps/ieee754/flt-32/e_acoshf.c
sysdeps/ieee754/flt-32/e_asinf.c
sysdeps/ieee754/flt-32/e_atan2f.c
sysdeps/ieee754/flt-32/e_atanhf.c
sysdeps/ieee754/flt-32/e_coshf.c
sysdeps/ieee754/flt-32/e_gammaf_r.c
sysdeps/ieee754/flt-32/e_lgammaf_r.c
sysdeps/ieee754/flt-32/e_log10f.c
sysdeps/ieee754/flt-32/e_sinhf.c
sysdeps/ieee754/flt-32/s_asinhf.c
sysdeps/ieee754/flt-32/s_atanf.c
sysdeps/ieee754/flt-32/s_cbrtf.c
sysdeps/ieee754/flt-32/s_erfcf.c
sysdeps/ieee754/flt-32/s_erff.c
sysdeps/ieee754/flt-32/s_exp10m1f.c
sysdeps/ieee754/flt-32/s_exp2m1f.c
sysdeps/ieee754/flt-32/s_expm1f.c
sysdeps/ieee754/flt-32/s_log10p1f.c
sysdeps/ieee754/flt-32/s_log1pf.c
sysdeps/ieee754/flt-32/s_log2p1f.c
sysdeps/ieee754/flt-32/s_tanf.c
sysdeps/ieee754/flt-32/s_tanhf.c
Copyright: 2022-2024 Alexei Sibidanov and Paul Zimmermann
License: CORE-MATH
Files:
gmon/gmon.c
gmon/mcount.c
......@@ -525,11 +537,15 @@ Files:
sysdeps/unix/sysv/linux/sys/quota.h
Copyright:
1982-1994 Regents of the University of California
1991-2024 Free Software Foundation, Inc.
1991-2025 Free Software Foundation, Inc.
1988 Stephen Deering
License: BSD-3-clause-Berkeley and LGPL-2.1+
Comment: Code incorporated from 4.4 BSD
Files: support/bundled/linux/include/uapi/linux/fuse.h
Copyright: 2001-2007 Miklos Szeredi
License: BSD-2-clause or GPL-2
Files:
inet/bindresvport.c
inet/rpc/netdb.h
......@@ -653,14 +669,14 @@ Files:
Copyright:
1983, 1985, 1988, 1989, 1990, 1993 The Regents of the University of California
1993 by Digital Equipment Corporation.
1995-2024 Free Software Foundation, Inc.
1995-2025 Free Software Foundation, Inc.
1996-1999 by Internet Software Consortium.
License: BSD-3-clause-Berkeley and DEC and ISC and LGPL-2.1+
Comment: DNS resolver code, taken from BIND 4.9.5
Files: resolv/nss_dns/dns-host.c
Copyright:
1996-2024 Free Software Foundation, Inc.
1996-2025 Free Software Foundation, Inc.
1985, 1988, 1993 The Regents of the University of California
1993 by Digital Equipment Corporation
License: BSD-3-clause-Berkeley and DEC and LGPL-2.1+
......@@ -681,7 +697,7 @@ Files: resolv/nss_dns/dns-network.c
Copyright:
1993 Carlos Leandro and Rui Salgueiro Dep. Matematica Universidade de Coimbra, Portugal, Europe
1983, 1993 The Regents of the University of California
1996-2024 Free Software Foundation, Inc.
1996-2025 Free Software Foundation, Inc.
License: BSD-3-clause-Berkeley and LGPL-2.1+ and Univ-Coimbra
Comment: DNS resolver code, taken from BIND 4.9.5
......@@ -729,7 +745,7 @@ Files:
resolv/res_data.c
resolv/res_libc.c
Copyright:
1996-2024 Free Software Foundation, Inc.
1996-2025 Free Software Foundation, Inc.
1995-1999 by Internet Software Consortium
License: ISC and LGPL-2.1+
Comment: DNS resolver code, taken from BIND 4.9.5
......@@ -968,6 +984,27 @@ License: Univ-Coimbra
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
License: CORE-MATH
This file is part of the CORE-MATH project
.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
License: DEC
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
......
# all those files are part of Debian packaging which is provided as part
# of glibc-source binary package to allow re-use of it for cross
# compiler packages.
script-not-executable usr/src/glibc/debian/debhelper.in/libc-alt.preinst
script-not-executable usr/src/glibc/debian/debhelper.in/libc-alt.postrm
script-not-executable usr/src/glibc/debian/debhelper.in/libc-bin.postinst
script-not-executable usr/src/glibc/debian/debhelper.in/libc-dev-alt.preinst
script-not-executable usr/src/glibc/debian/debhelper.in/libc-dev-alt.preinst.i386
script-not-executable usr/src/glibc/debian/debhelper.in/libc-dev-alt.postinst
script-not-executable usr/src/glibc/debian/debhelper.in/libc.postinst
script-not-executable usr/src/glibc/debian/debhelper.in/libc.postrm
script-not-executable usr/src/glibc/debian/debhelper.in/libc.preinst
script-not-executable usr/src/glibc/debian/debhelper.in/libc.prerm
script-not-executable usr/src/glibc/debian/debhelper.in/locales-all.postinst
script-not-executable usr/src/glibc/debian/debhelper.in/locales-all.prerm
script-not-executable usr/src/glibc/debian/debhelper.in/locales.config
script-not-executable usr/src/glibc/debian/debhelper.in/locales.postinst
script-not-executable usr/src/glibc/debian/debhelper.in/locales.postrm
script-not-executable usr/src/glibc/debian/debhelper.in/locales.prerm
script-not-executable usr/src/glibc/debian/debhelper.in/nscd.init
script-not-executable usr/src/glibc/debian/debhelper.in/nscd.postrm
script-not-executable usr/src/glibc/debian/generate-supported.mk
script-not-executable usr/src/glibc/debian/local/manpages/Makefile
script-not-executable usr/src/glibc/debian/local/usr_sbin/locale-gen
script-not-executable usr/src/glibc/debian/local/usr_sbin/update-locale
script-not-executable usr/src/glibc/debian/local/usr_sbin/validlocale
script-not-executable usr/src/glibc/debian/shlibs-add-udebs
......@@ -3,4 +3,4 @@ shared-library-is-executable 0755 [*/ld*.so*]
# It is normal that the ELF dynamic linker does not need any other
# library
shared-lib-without-dependency-information */ld*.so*
shared-library-lacks-prerequisites */ld*.so*
# ldconfig must be executable even when the libc is not configured, and
# thus must be linked statically
statically-linked-binary usr/sbin/ldconfig
shared-library-lacks-prerequisites [usr/sbin/ldconfig]
# these manpages are provided by the manpages package
......
......@@ -12,3 +12,7 @@ no-code-sections [*/libpthread.a]
no-code-sections [*/libpthread_nonshared.a]
no-code-sections [*/librt.a]
no-code-sections [*/libutil.a]
# Lintian false positive (see bug#994716)
unpack-message-for-deb-data ar failed for */libm.a
unpack-message-for-deb-data ar failed for */libmcheck.a
......@@ -2,13 +2,17 @@
# thus should not be stripped
unstripped-binary-or-object [*/libmcheck.a]
# All functionality formerly implemented in the libraries libpthread, libdl,
# libutil, libanl has been integrated into libc. For backwards compatibility,
# empty static archives libpthread.a, libdl.a, libutil.a, libanl.a are
# provided, so that the linker options keep working.
# All functionality formerly implemented in the libraries libpthread,
# libdl, libutil, libanl has been integrated into libc. For backwards
# compatibility, empty static archives libpthread.a, libdl.a, libutil.a,
# libanl.a are provided, so that the linker options keep working.
no-code-sections [*/libanl.a]
no-code-sections [*/libdl.a]
no-code-sections [*/libpthread.a]
no-code-sections [*/libpthread_nonshared.a]
no-code-sections [*/librt.a]
no-code-sections [*/libutil.a]
# Lintian false positive (see bug#994716)
unpack-message-for-deb-data ar failed for */libm.a
unpack-message-for-deb-data ar failed for */libmcheck.a
......@@ -5,9 +5,19 @@ shared-library-is-executable 0755 [*/ld*.so.*]
# library
shared-library-lacks-prerequisites */ld*.so.*
# A linker script is used instead of a symlink (see debian-policy bug#1095039)
lacks-unversioned-link-to-shared-library * [*/libc.so.*]
lacks-unversioned-link-to-shared-library * [*/libm.so.*]
# These are empty libraries shipped for backward compatibilities
lacks-unversioned-link-to-shared-library * [*/libdl.so.*]
lacks-unversioned-link-to-shared-library * [*/libpthread.so.*]
lacks-unversioned-link-to-shared-library * [*/librt.so.*]
lacks-unversioned-link-to-shared-library * [*/libutil.so.*]
# These are plugins and not general purpose libraries
lacks-unversioned-link-to-shared-library * [*/libnss_dns.so.*]
lacks-unversioned-link-to-shared-library * [*/libnss_files.so.*]
# dependency on debconf is not needed, as glibc has a fallback to tty
missing-debconf-dependency-for-preinst
# The call to systemctl in postinst is not about restarting services,
# but restarting systemd.
maintainer-script-calls-systemctl
# SOME DESCRIPTIVE TITLE
# Copyright (C) 2005 Free Software Foundation, Inc.
# Brazilian <debian-l10n-portuguese@lists.debian.org>, 2005.
# , fuzzy
#
#
# Paulo Henrique de Lima Santana (phls) <phls@debian.org>, 2025.
#
#
msgid ""
msgstr ""
"Project-Id-Version: base-config man\n"
"Project-Id-Version: glibc_2.40-7 man\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-12-27 17:38-0500\n"
"PO-Revision-Date: 2005-10-24 21:25-0200\n"
"Last-Translator: Brazilian <debian-l10n-portuguese@lists.debian.org>\n"
"PO-Revision-Date: 2025-02-21 11:13-0300\n"
"Last-Translator: Paulo Henrique de Lima Santana (phls) <phls@debian.org>\n"
"Language-Team: Brazilian <debian-l10n-portuguese@lists.debian.org>\n"
"Language: br\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.5\n"
# type: TH
#: validlocale.8:1
......@@ -133,7 +135,7 @@ msgstr "% validlocale C"
# type: Plain text
#: validlocale.8:33
msgid "locale 'C' valid and available"
msgstr "locale·'C'·é válida e está disponível"
msgstr "locale 'C' é válida e está disponível"
# type: Plain text
#: validlocale.8:37
......@@ -181,323 +183,5 @@ msgstr "VEJA TAMBÉM"
# type: Plain text
#: validlocale.8:49
#, fuzzy
msgid "locale-gen(8), localedef(1), locale(1)"
msgstr "locale-gen(8), localedef(1), locale(1), base-config(8)"
# type: TH
#~ msgid "BASE-CONFIG"
#~ msgstr "BASE-CONFIG"
# type: Plain text
#~ msgid "base-config - Debian base system configuration"
#~ msgstr "base-config - Configuração do sistema base Debian"
# type: SH
#~ msgid "SYNOPSIS"
#~ msgstr "SINOPSE"
# type: Plain text
#~ msgid "B<base-config [new]>"
#~ msgstr "B<base-config [new]>"
# type: Plain text
#~ msgid ""
#~ "B<base-config> is the program that was run when you first rebooted into "
#~ "your newly installed debian system. It walks you through setting up the "
#~ "system and downloading additional software, and so forth. The program can "
#~ "be run at any later date to walk you through essentially the same process "
#~ "again."
#~ msgstr ""
#~ "B<base-config> é o programa que foi executado quando você reiniciou a "
#~ "primeira vez em seu novo sistema debian instalado. Ele o guia através das "
#~ "configurações de seu sistema e baixando softwares adicionais, indo além. "
#~ "O programa pode ser executado posteriormente a qualquer momento para guiá-"
#~ "lo essencialmente através do mesmo processo novamente."
# type: SH
#~ msgid "IMPLEMENTATION"
#~ msgstr "IMPLEMENTAÇÂO"
# type: Plain text
#~ msgid ""
#~ "B<base-config> generates a menu of choices from the contents of B</usr/"
#~ "lib/base-config/>, and from debconf templates."
#~ msgstr ""
#~ "B<base-config> gera um menu de opções a partir do conteúdo de B</usr/lib/"
#~ "base-config/>, e dos modelos debconf."
# type: Plain text
#~ msgid ""
#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item "
#~ "appears only on new installs (Only-New: true), whether debconf can "
#~ "already be running when the item is run (Debconf: true), a numeric Order "
#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true"
#~ "\", then base-config will terminate after running that menu item. "
#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the "
#~ "menu after running the menu item."
#~ msgstr ""
#~ "Os arquivos .mnu em /usr/lib/base-config/ controlam quando um item de "
#~ "menu aparece apenas em novas instalações (Only-New: true), ou o debconf "
#~ "pode já estar sendo executado quando o item é executado (Debconf: true), "
#~ "um número Order controla a posição no menu. Se um arquivo .mnu contém "
#~ "\"Exit-Menu: true\", então base-config será terminado após executar esse "
#~ "item do menu. Finalmente a linha \"Changes-Menu: true\" fará com que "
#~ "base-config reconstrua o menu após executar este item."
# type: Plain text
#~ msgid ""
#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds "
#~ "the menu and must return true for that menu item to appear on the menu."
#~ msgstr ""
#~ "Os arquivos .tst em /usr/lib/base-config/ são executados quando base-"
#~ "config constrói o menu e devem retornar verdadeiro para que apareçam no "
#~ "menu."
# type: Plain text
#~ msgid ""
#~ "The menu items are taken from debconf, by looking for items in the "
#~ "debconf database named base-config/menu/whatever."
#~ msgstr ""
#~ "Os itens do menu são pegos do debconf olhando para itens na base de dados "
#~ "do debconf chamada de base-config/menu/qualquercoisa"
# type: Plain text
#~ msgid ""
#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-"
#~ "config is run. If this is a fresh install onto a new debian system, the "
#~ "program receives \"new\" as its first argument."
#~ msgstr ""
#~ "Quando um item do menu é selecionado, o programa correspondente, em /usr/"
#~ "lib/base-config é executado. Se esta é uma instalação novo em um novo "
#~ "sistema debian, o programa recebe \"new\" como seu primeiro argumento."
# type: Plain text
#~ msgid ""
#~ "B<base-config> checks the return codes of each of the programs. If a "
#~ "program returns nonzero, the main menu is displayed (this may involve "
#~ "lowering the debconf priority)."
#~ msgstr ""
#~ "B<base-config> checa os códigos de retorno de cada um dos programas. Se "
#~ "um programa retorna não-zero, o menu principal é exibido (isso pode "
#~ "envolver diminuir a prioridade do debconf)."
# type: Plain text
#~ msgid ""
#~ "Generally the user is advanced down the menu from item to item as each "
#~ "succeeds. If a menu item needs to jump back to a previous item in the "
#~ "menu, or skip over a subsequent item, it can write the name of the next "
#~ "menu item to show to the file \"jump-to\" in the current directory."
#~ msgstr ""
#~ "Geralmente o usuário avança descendo o menu item a item à medida que cada "
#~ "um é completado com sucesso. Se um item do menu precisa voltar para um "
#~ "item anterior ou pular algum item subseqüente, ele pode escrever o nome "
#~ "do próximo item do menu para mostrar ao arquivo \"jump-to\" no diretório "
#~ "atual."
# type: Plain text
#~ msgid ""
#~ "Every base-config run is logged to B</var/log/base-config.log>. B</var/"
#~ "log/base-config.timings> contains timing information to go with the log. "
#~ "This allows replays of base-config runs using the B<replay>(1) utility."
#~ msgstr ""
#~ "Cada execução do base-config é registrada em B</var/log/base-config."
#~ "log>. B</var/log/base-config.timings> contém as informações de tempo que "
#~ "vão juntamente com o registro. Isso permite repetições da execução do "
#~ "base-config usando o utilitário B<replay>(1)."
# type: Plain text
#~ msgid ""
#~ "B</var/log/installer/cdebconf>, if it exists, is used by B<base-config> "
#~ "on new installs to get values from the debian-installer first stage "
#~ "install."
#~ msgstr ""
#~ "B</var/log/installer/cdebconf>, se o arquivo existe, é usado pelo B<base-"
#~ "config> em novas instalações para obter valores do primeiroestágio de "
#~ "instalação do debian-installer."
# type: Plain text
#~ msgid ""
#~ "Other packages can drop files into B</usr/lib/base-config/>, and add menu "
#~ "titles in debconf, and they will be added to the menu. It is very "
#~ "strongly encouraged that any such programs communicate with the user "
#~ "entirely via debconf, so that the base configuration maintains a "
#~ "consistent and professional look."
#~ msgstr ""
#~ "Outros pacotes podem colocar arquivos em B</usr/lib/base-config/>, e "
#~ "adicionar títulos de menu no debconf, que serão adicionados ao menu. É "
#~ "fortemente encorajado que qualquer programa desses comunique-se com o "
#~ "usuário inteiramente via debconf, de forma que a configuração da base "
#~ "mantenha a consistência e o visual profissional."
# type: Plain text
#~ msgid ""
#~ "Another useful thing for custom distributions is /usr/share/base-config/"
#~ "debconf-seed. If that directory exists, every file in it will be loaded "
#~ "into the debconf database using B<debconf-set-selections>(1)"
#~ msgstr ""
#~ "Outra coisa útil para distribuições customizadas é /usr/share/base-config/"
#~ "debconf-seed. Se esse diretório existir, cada arquivo nele será carregado "
#~ "no banco de dados do debconf usando B<debconf-set-selections>(1)"
# type: Plain text
#~ msgid ""
#~ "If the file /var/log/installer/debconf-seed is created by the debian-"
#~ "installer, it will also be loaded into the debconf database."
#~ msgstr ""
#~ "Se o arquivo /var/log/installer/debconf-seed é criado pelo debian-"
#~ "installer, ele também será carregado no banco de dados do debconf."
# type: SH
#~ msgid "ENVIRONMENT"
#~ msgstr "AMBIENTE"
# type: Plain text
#~ msgid ""
#~ "The following environment variables influence B<base-config>. These "
#~ "variables may be set at run time, or for new installs, may be passed to "
#~ "the kernel at the B<lilo>(8) (or other bootloader) command line. Consult "
#~ "your boot loader's documentation for details. For example, lilo can be "
#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"."
#~ msgstr ""
#~ "As seguintes variáveis de ambiente influenciam B<base-config>. Essas "
#~ "variáveis podem ser definidas em tempo de execução, ou para novas "
#~ "instalações, podem ser passadas ao kernel na linha de comando do B<lilo>"
#~ "(8) (ou outro gerenciador de boot). Consulte a documentação do seu "
#~ "gerenciador de boot para detalhes. Por exemplo, lilo pode ser bootado com "
#~ "algo como: \"linux DEBIAN_FRONTEND=readline\"."
# type: TP
#~ msgid "B<DEBIAN_FRONTEND>"
#~ msgstr "B<DEBIAN_FRONTEND>"
# type: TP
#~ msgid "B<DEBIAN_PRIORITY>"
#~ msgstr "B<DEBIAN_PRIORITY>"
# type: TP
#~ msgid "B<DEBCONF_DEBUG>"
#~ msgstr "B<DEBCONF_DEBUG>"
# type: TP
#~ msgid "B<DEBCONF_TERSE>"
#~ msgstr "B<DEBCONF_TERSE>"
# type: Plain text
#~ msgid "Control various things about B<debconf>(7)"
#~ msgstr "Controla várias coisas sobre o B<debconf>(7)"
# type: SH
#~ msgid "AUTHOR"
#~ msgstr "AUTOR"
# type: Plain text
#~ msgid "Joey Hess E<lt>joeyh@debian.orgE<gt>"
#~ msgstr "Joey Hess E<lt>joey@kitenet.netE<gt>"
# type: TH
#~ msgid "TERMWRAP"
#~ msgstr "TERMWRAP"
# type: Plain text
#~ msgid "termwrap - terminal wrapper"
#~ msgstr "termwrap - wrapper de terminal"
# type: Plain text
#~ msgid "B<termwrap [-nnt] command [args]>"
#~ msgstr "B<termwrap [-nnt] comando [argumentos]>"
# type: Plain text
#~ msgid ""
#~ "B<termwrap> is used to execute B<base-config>(8) on newly installed "
#~ "Debian systems. It examines the environment, taking note of locale "
#~ "settings, and what type of console is available, and runs an appropriate "
#~ "terminal program. For example, at the Linux console and in a Japanese "
#~ "locale, it runs jfterm. The specified command is run inside the terminal "
#~ "program (if any)."
#~ msgstr ""
#~ "B<termwrap> é usado para executar B<base-config>(8) em novos sistemas "
#~ "Debian instalados. Ele examina o ambiente, tomando nota das configurações "
#~ "de localização, qual tipo de console está disponível e executa um "
#~ "programa de terminal apropriado. Por exemplo, no console Linux e em uma "
#~ "localização Japonesa, ele executa jfterm. O comando especificado é "
#~ "executado dentro do programa de terminal (caso exista algum)."
# type: SH
#~ msgid "OPTIONS"
#~ msgstr "OPÇÕES"
# type: TP
#~ msgid "I<-nnt>"
#~ msgstr "I<-nnt>"
# type: Plain text
#~ msgid "Don't run another terminal."
#~ msgstr "Não execute outro terminal."
# type: TH
#~ msgid "APT-SETUP"
#~ msgstr "APT-SETUP"
# type: Plain text
#~ msgid "apt-setup - add apt download sources"
#~ msgstr "apt-setup - adiciona fontes de download para o apt"
# type: Plain text
#~ msgid "B<apt-setup [probe] [-N]>"
#~ msgstr "B<apt-setup [probe] [-N]>"
# type: Plain text
#~ msgid ""
#~ "B<apt-setup> is an interactive program that simplifies adding sources to "
#~ "apt's sources.list. It knows about all the major debian mirrors and can "
#~ "help you select one. It can even use B<apt-cdrom>(8) to scan CDs."
#~ msgstr ""
#~ "B<apt-setup> é um programa interativo que simplifica a adição de fontes "
#~ "no arquivo sources.list do apt. Ele conhece todos os principais espelhos "
#~ "(mirrors) debian e pode ajudá-lo a selecionar um. Pode até mesmo usar o "
#~ "B<apt-cdrom>(8) para vasculhar CDs."
# type: TP
#~ msgid "I<probe>"
#~ msgstr "I<probe>"
# type: Plain text
#~ msgid ""
#~ "By default no probing of CDs is done. Passing \"probe\" as the first "
#~ "argument to this program will make it probe for a CD in the drive on "
#~ "startup and add it to sources.list. This is useful on initial debian "
#~ "installs, to minimize interaction with the user."
#~ msgstr ""
#~ "Por padrão nenhuma consulta de CDs é feita. Passar \"probe\" como o "
#~ "primeiro argumento para este programa fará com que o mesmo procure por um "
#~ "CD no drive em sua inicialização e adicione-o ao sources.list. Isto é "
#~ "útil em instalações iniciais do debian para minimizar a interação com o "
#~ "usuário."
# type: TP
#~ msgid "I<-N>"
#~ msgstr "I<-N>"
# type: Plain text
#~ msgid ""
#~ "Indicates that this is a new install. This parameter allows apt-setup to "
#~ "run in noninteractive mode if its debconf questions have been preseeded."
#~ msgstr ""
#~ "Indica que esta é uma nova instalação. Este parâmetro permite ao apt-"
#~ "setup executar no modo não-interativo se suas perguntas do debconf foram "
#~ "previamente respondidas."
# type: Plain text
#~ msgid "Joey Hess E<lt>joey@kitenet.netE<gt>"
#~ msgstr "Joey Hess E<lt>joey@kitenet.netE<gt>"
# type: TH
#, fuzzy
#~ msgid "TZSETUP"
#~ msgstr "APT-SETUP"
# type: SH
#, fuzzy
#~ msgid "DERIVATION"
#~ msgstr "DESCRIÇÃO"
msgstr "locale-gen(8), localedef(1), locale(1)"
commit a5c68a6bf1a7dc769ea660961dff33a5cb2ca041
Author: Florian Weimer <fweimer@redhat.com>
Date: Fri Sep 20 13:10:54 2024 +0200
iconv: Base tests for buffer management
Reviewed-by: DJ Delorie <dj@redhat.com>
diff --git a/iconv/Makefile b/iconv/Makefile
index 65b4a44ab8..b0fa550141 100644
--- a/iconv/Makefile
+++ b/iconv/Makefile
@@ -76,8 +76,11 @@ include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
ifeq ($(run-built-tests),yes)
xtests-special += $(objpfx)test-iconvconfig.out
-tests-special += $(objpfx)tst-iconv_prog.out
-tests-special += $(objpfx)tst-translit-mchar.out
+tests-special += \
+ $(objpfx)tst-iconv_prog-buffer.out \
+ $(objpfx)tst-iconv_prog.out \
+ $(objpfx)tst-translit-mchar.out \
+ # tests-special
endif
# Make a copy of the file because gconv module names are constructed
@@ -141,3 +144,8 @@ $(objpfx)tst-translit-mchar.out: tst-translit-mchar.sh \
'$(run-program-env)' '$(run-program-prefix-after-env)' \
$< > $@; \
$(evaluate-test)
+
+$(objpfx)tst-iconv_prog-buffer.out: \
+ tst-iconv_prog-buffer.sh $(objpfx)iconv_prog
+ $(BASH) $< $(common-objdir) '$(test-program-prefix)' > $@; \
+ $(evaluate-test)
diff --git a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh
new file mode 100644
index 0000000000..a27107f02b
--- /dev/null
+++ b/iconv/tst-iconv_prog-buffer.sh
@@ -0,0 +1,177 @@
+#!/bin/bash
+# Test for iconv (the program) buffer management.
+# Copyright (C) 2024 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
+# <https://www.gnu.org/licenses/>.
+
+exec 2>&1
+set -e
+
+exec {logfd}>&1
+
+codir=$1
+test_program_prefix="$2"
+
+# Use internal converters to avoid issues with module loading.
+iconv_args="-f ASCII -t UTF-8"
+
+failure=false
+
+tmp=`mktemp -d`
+trap 'rm -rf "$tmp"' 0
+echo ABC > "$tmp/abc"
+echo DEF > "$tmp/def"
+echo GGG > "$tmp/ggg"
+echo HH > "$tmp/hh"
+echo XY > "$tmp/xy"
+echo ZT > "$tmp/zt"
+echo OUT > "$tmp/out-template"
+printf '\xff' > "$tmp/0xff"
+cat "$tmp/xy" "$tmp/0xff" "$tmp/zt" > "$tmp/0xff-wrapped"
+
+run_iconv () {
+ local c=0
+ if test "${FUNCNAME[2]}" = main; then
+ c=1
+ fi
+ echo "${BASH_SOURCE[$c]}:${BASH_LINENO[$c]}: iconv $iconv_args $@" >&$logfd
+ $test_program_prefix $codir/iconv/iconv_prog $iconv_args "$@"
+}
+
+check_out_expected () {
+ if ! cmp -s "$tmp/out" "$tmp/expected" ; then
+ echo "error: iconv output difference" >&$logfd
+ echo "*** expected ***" >&$logfd
+ cat "$tmp/expected" >&$logfd
+ echo "*** actual ***" >&$logfd
+ cat "$tmp/out" >&$logfd
+ failure=true
+ fi
+}
+
+expect_files () {
+ local f
+ ! test -z "$1"
+ cp "$tmp/$1" "$tmp/expected"
+ shift
+ for f in "$@" ; do
+ cat "$tmp/$f" >> "$tmp/expected"
+ done
+ check_out_expected
+}
+
+check_out () {
+ cat > "$tmp/expected"
+ check_out_expected
+}
+
+expect_exit () {
+ local expected=$1
+ shift
+ # Prevent failure for stopping the script.
+ if "$@" ; then
+ actual=$?
+ else
+ actual=$?
+ fi
+ if test "$actual" -ne "$expected"; then
+ echo "error: expected exit status $expected, not $actual" >&$logfd
+ exit 1
+ fi
+}
+
+ignore_failure () {
+ set +e
+ "$@"
+ status=$?
+ set -e
+}
+
+# Concatentation test.
+run_iconv -o "$tmp/out" "$tmp/abc" "$tmp/def"
+expect_files abc def
+
+# Single-file in-place conversion.
+run_iconv -o "$tmp/out" "$tmp/out"
+expect_files abc def
+
+# Multiple input files with in-place conversion.
+
+run_iconv -o "$tmp/out" "$tmp/out" "$tmp/abc"
+expect_files abc def abc
+
+# But not if we are writing to standard output.
+
+cp "$tmp/out-template" "$tmp/out"
+run_iconv </dev/null >>"$tmp/out"
+expect_files out-template
+
+cp "$tmp/out-template" "$tmp/out"
+run_iconv - </dev/null >>"$tmp/out"
+expect_files out-template
+
+cp "$tmp/out-template" "$tmp/out"
+run_iconv /dev/null >>"$tmp/out"
+expect_files out-template
+
+# Conversion errors should avoid clobbering an existing file if
+# it is also an input file.
+
+cp "$tmp/0xff" "$tmp/out"
+expect_exit 1 run_iconv -o "$tmp/out" "$tmp/out"
+expect_files 0xff
+
+cp "$tmp/0xff" "$tmp/out"
+expect_exit 1 run_iconv -o "$tmp/out" < "$tmp/out"
+expect_files 0xff
+
+cp "$tmp/0xff" "$tmp/out"
+expect_exit 1 run_iconv -o "$tmp/out" - < "$tmp/out"
+expect_files 0xff
+
+# If errors are ignored, the file should be overwritten.
+
+cp "$tmp/out-template" "$tmp/out"
+expect_exit 1 \
+ run_iconv -c -o "$tmp/out" "$tmp/abc" "$tmp/0xff" "$tmp/def" 2>"$tmp/err"
+! test -s "$tmp/err"
+expect_files abc def
+
+# FIXME: This is not correct, -c should not change the exit status.
+cp "$tmp/out-template" "$tmp/out"
+run_iconv -c -o "$tmp/out" \
+ "$tmp/abc" "$tmp/0xff-wrapped" "$tmp/def" 2>"$tmp/err"
+! test -s "$tmp/err"
+expect_files abc xy zt def
+
+# If the file does not exist yet, it should not be created on error.
+
+rm "$tmp/out"
+expect_exit 1 run_iconv -o "$tmp/out" "$tmp/0xff"
+! test -e "$tmp/out"
+
+expect_exit 1 run_iconv -o "$tmp/out" < "$tmp/0xff"
+! test -e "$tmp/out"
+
+expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" "$tmp/0xff" "$tmp/def"
+! test -e "$tmp/out"
+
+expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" - < "$tmp/0xff" "$tmp/def"
+! test -e "$tmp/out"
+
+if $failure ; then
+ exit 1
+fi
commit 49449cbb3580bbdfb2e17fb5140db54496928219
Author: Florian Weimer <fweimer@redhat.com>
Date: Fri Sep 20 13:10:54 2024 +0200
iconv: Do not use mmap in iconv (the program) (bug 17703)
On current systems, very large files are needed before
mmap becomes beneficial. Simplify the implementation.
This exposed that inptr was not initialized correctly in
process_fd. Handling multiple input files resulted in
EFAULT in read because a null pointer was passed. This
could be observed previously if an input file was not
mappable and was reported as bug 17703.
Reviewed-by: DJ Delorie <dj@redhat.com>
diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c
index a765b1af21..88a928557e 100644
--- a/iconv/iconv_prog.c
+++ b/iconv/iconv_prog.c
@@ -31,9 +31,6 @@
#include <string.h>
#include <unistd.h>
#include <libintl.h>
-#ifdef _POSIX_MAPPED_FILES
-# include <sys/mman.h>
-#endif
#include <charmap.h>
#include <gconv_int.h>
#include "iconv_prog.h"
@@ -253,10 +250,6 @@ conversions from `%s' and to `%s' are not supported"),
else
do
{
-#ifdef _POSIX_MAPPED_FILES
- struct stat64 st;
- char *addr;
-#endif
int fd, ret;
if (verbose)
@@ -276,39 +269,6 @@ conversions from `%s' and to `%s' are not supported"),
}
}
-#ifdef _POSIX_MAPPED_FILES
- /* We have possibilities for reading the input file. First try
- to mmap() it since this will provide the fastest solution. */
- if (fstat64 (fd, &st) == 0
- && ((addr = mmap (NULL, st.st_size, PROT_READ, MAP_PRIVATE,
- fd, 0)) != MAP_FAILED))
- {
- /* Yes, we can use mmap(). The descriptor is not needed
- anymore. */
- if (close (fd) != 0)
- error (EXIT_FAILURE, errno,
- _("error while closing input `%s'"),
- argv[remaining]);
-
- ret = process_block (cd, addr, st.st_size, &output,
- output_file);
-
- /* We don't need the input data anymore. */
- munmap ((void *) addr, st.st_size);
-
- if (ret != 0)
- {
- status = EXIT_FAILURE;
-
- if (ret < 0)
- /* We cannot go on with producing output since it might
- lead to problem because the last output might leave
- the output stream in an undefined state. */
- break;
- }
- }
- else
-#endif /* _POSIX_MAPPED_FILES */
{
/* Read the file in pieces. */
ret = process_fd (cd, fd, &output, output_file);
@@ -544,7 +504,7 @@ process_fd (iconv_t cd, int fd, FILE **output, const char *output_file)
process it in one step. */
static char *inbuf = NULL;
static size_t maxlen = 0;
- char *inptr = NULL;
+ char *inptr = inbuf;
size_t actlen = 0;
while (actlen < maxlen)
commit badbc82b4f003df0d081ebfb4c05c8b79fdf3e95
Author: Andreas Schwab <schwab@suse.de>
Date: Mon Jun 10 12:19:17 2024 +0200
iconv: Fix matching of multi-character transliterations (bug 31859)
Only return __GCONV_INCOMPLETE_INPUT for a partial match when the end of
the input buffer is reached. Otherwise it is a non-match, and other
patterns should be tried.
diff --git a/iconv/Makefile b/iconv/Makefile
index 63afc853ff..65b4a44ab8 100644
--- a/iconv/Makefile
+++ b/iconv/Makefile
@@ -57,6 +57,10 @@ tests = \
tst-iconv-opt \
# tests
+test-srcs := \
+ tst-translit-mchar \
+ # test-srcs
+
others = iconv_prog iconvconfig
install-others-programs = $(inst_bindir)/iconv
install-sbin = iconvconfig
@@ -73,6 +77,7 @@ include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
ifeq ($(run-built-tests),yes)
xtests-special += $(objpfx)test-iconvconfig.out
tests-special += $(objpfx)tst-iconv_prog.out
+tests-special += $(objpfx)tst-translit-mchar.out
endif
# Make a copy of the file because gconv module names are constructed
@@ -92,6 +97,8 @@ $(objpfx)tst-gconv-init-failure.out: \
$(objpfx)gconv-modules $(objpfx)tst-gconv-init-failure-mod.so
endif
+generated-dirs += tst-translit
+
include ../Rules
ifeq ($(run-built-tests),yes)
@@ -126,3 +133,11 @@ $(objpfx)tst-iconv_prog.out: tst-iconv_prog.sh $(objpfx)iconv_prog
$(BASH) $< $(common-objdir) '$(test-wrapper-env)' \
'$(run-program-env)' > $@; \
$(evaluate-test)
+
+$(objpfx)tst-translit-mchar.out: tst-translit-mchar.sh \
+ $(objpfx)tst-translit-mchar \
+ tst-translit-locale
+ $(SHELL) $< $(common-objpfx) '$(run-program-prefix-before-env)' \
+ '$(run-program-env)' '$(run-program-prefix-after-env)' \
+ $< > $@; \
+ $(evaluate-test)
diff --git a/iconv/gconv_trans.c b/iconv/gconv_trans.c
index 08b7a3f71d..44f0fd849a 100644
--- a/iconv/gconv_trans.c
+++ b/iconv/gconv_trans.c
@@ -150,7 +150,7 @@ __gconv_transliterate (struct __gconv_step *step,
/* Nothing found, continue searching. */
}
- else if (cnt > 0)
+ else if (cnt > 0 && winbuf + cnt == winbufend)
/* This means that the input buffer contents matches a prefix of
an entry. Since we cannot match it unless we get more input,
we will tell the caller about it. */
diff --git a/iconv/tst-translit-locale b/iconv/tst-translit-locale
new file mode 100644
index 0000000000..712b08628a
--- /dev/null
+++ b/iconv/tst-translit-locale
@@ -0,0 +1,10 @@
+# Test multi-character transliteration rule
+
+LC_CTYPE
+copy "POSIX"
+
+translit_start
+"ÄÄ" "AA"
+translit_end
+
+END LC_CTYPE
diff --git a/iconv/tst-translit-mchar.c b/iconv/tst-translit-mchar.c
new file mode 100644
index 0000000000..7d432ea667
--- /dev/null
+++ b/iconv/tst-translit-mchar.c
@@ -0,0 +1,48 @@
+/* Test multi-character transliterations.
+ Copyright (C) 2024 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <locale.h>
+#include <iconv.h>
+#include <support/support.h>
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ iconv_t cd;
+ /* An input sequence that shares a common prefix with a transliteration
+ rule. */
+ char input[] = "ÄÅ";
+ char *inptr = input;
+ char outbuf[10];
+ char *outptr = outbuf;
+ size_t inlen = sizeof (input), outlen = sizeof (outbuf);
+ size_t n;
+
+ xsetlocale (LC_CTYPE, "tst-translit");
+
+ cd = iconv_open ("ASCII//TRANSLIT", "UTF-8");
+ TEST_VERIFY (cd != (iconv_t) -1);
+
+ /* This call used to loop infinitely. */
+ n = iconv (cd, &inptr, &inlen, &outptr, &outlen);
+ TEST_VERIFY (iconv_close (cd) == 0);
+ return n == 0;
+}
+
+#include <support/test-driver.c>
diff --git a/iconv/tst-translit-mchar.sh b/iconv/tst-translit-mchar.sh
new file mode 100644
index 0000000000..ab7a7f8729
--- /dev/null
+++ b/iconv/tst-translit-mchar.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+# Testing of multi-character transliterations
+# Copyright (C) 2024 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
+# <https://www.gnu.org/licenses/>.
+
+set -e
+
+common_objpfx=$1
+run_program_prefix_before_env=$2
+run_program_env=$3
+run_program_prefix_after_env=$4
+
+# Generate data files.
+# The locale only defines the LC_CTYPE category, so we expect a failure
+# due to warnings.
+ret=0
+${run_program_prefix_before_env} \
+${run_program_env} \
+I18NPATH=../localedata \
+${run_program_prefix_after_env} ${common_objpfx}locale/localedef \
+--quiet -i tst-translit-locale -f UTF-8 ${common_objpfx}iconv/tst-translit || ret=$?
+if [ $ret -gt 1 ]; then
+ echo "FAIL: Locale compilation for tst-translit-locale failed (error $ret)."
+ exit 1
+fi
+
+set -x
+
+# Run the test.
+${run_program_prefix_before_env} \
+${run_program_env} \
+LOCPATH=${common_objpfx}iconv \
+${run_program_prefix_after_env} ${common_objpfx}iconv/tst-translit-mchar
+
+# Local Variables:
+# mode:shell-script
+# End:
commit b55a3285f9b4174781e1f1faf0f26d6b63fa1aef
Author: Florian Weimer <fweimer@redhat.com>
Date: Fri Sep 20 13:10:54 2024 +0200
iconv: Input buffering for the iconv program (bug 6050)
Do not read the entire input file into memory.
Reviewed-by: DJ Delorie <dj@redhat.com>
diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c
index dd4bc3a59a..a2f1d34e45 100644
--- a/iconv/iconv_prog.c
+++ b/iconv/iconv_prog.c
@@ -118,8 +118,9 @@ static size_t output_buffer_size = 1024 * 1024;
/* Prototypes for the functions doing the actual work. */
static void prepare_output_file (char **argv);
-static void close_output_file (int status);
-static int process_block (iconv_t cd, char *addr, size_t len);
+static void close_output_file (__gconv_t cd, int status);
+static int process_block (iconv_t cd, char **addr, size_t *len,
+ off64_t file_offset, bool *incomplete);
static int process_fd (iconv_t cd, int fd);
static int process_file (iconv_t cd, FILE *input);
static void print_known_names (void);
@@ -311,7 +312,7 @@ conversions from `%s' and to `%s' are not supported"),
status = EXIT_FAILURE;
/* Close the output file now. */
- close_output_file (status);
+ close_output_file (cd, status);
}
return status;
@@ -599,7 +600,7 @@ flush_output (void)
}
static void
-close_output_file (int status)
+close_output_file (__gconv_t cd, int status)
{
/* Do not perform a flush if a temporary file or the in-memory
buffer is in use and there was an error. It would clobber the
@@ -608,10 +609,28 @@ close_output_file (int status)
(output_using_temporary_file || output_fd < 0))
return;
- /* The current_input_file_index variable is now larger than
- last_overlapping_file_index, so the flush_output call switches
+ /* All the input text is processed. For state-dependent character
+ sets we have to flush the state now.
+
+ The current_input_file_index variable is now larger than
+ last_overlapping_file_index, so the flush_output calls switch
away from the temporary file. */
+ size_t n = iconv (cd, NULL, NULL,
+ &output_buffer_current, &output_buffer_remaining);
+ if (n == (size_t) -1 && errno == E2BIG)
+ {
+ /* Try again if the state flush exceeded the buffer space. */
+ flush_output ();
+ n = iconv (cd, NULL, NULL,
+ &output_buffer_current, &output_buffer_remaining);
+ }
+ int saved_errno = errno;
flush_output ();
+ if (n == (size_t) -1 && !omit_invalid)
+ {
+ errno = saved_errno;
+ output_error ();
+ }
if (output_fd == STDOUT_FILENO)
{
@@ -625,51 +644,35 @@ close_output_file (int status)
output_error ();
}
+/* CD is the iconv handle. Input processing starts at *ADDR, and
+ consumes upto *LEN bytes. *ADDR and *LEN are updated. FILE_OFFSET
+ is the file offset of the data initially at ADDR. *INCOMPLETE is
+ set to true if conversion stops due to an incomplete input
+ sequence. */
static int
-process_block (iconv_t cd, char *addr, size_t len)
+process_block (iconv_t cd, char **addr, size_t *len, off64_t file_offset,
+ bool *incomplete)
{
- const char *start = addr;
+ const char *start = *addr;
size_t n;
int ret = 0;
- while (len > 0)
+ while (*len > 0)
{
- n = iconv (cd, &addr, &len,
+ n = iconv (cd, addr, len,
&output_buffer_current, &output_buffer_remaining);
if (n == (size_t) -1 && omit_invalid && errno == EILSEQ)
{
ret = 1;
- if (len == 0)
+ if (*len == 0)
n = 0;
else
errno = E2BIG;
}
if (n != (size_t) -1)
- {
- /* All the input test is processed. For state-dependent
- character sets we have to flush the state now. */
- n = iconv (cd, NULL, NULL,
- &output_buffer_current, &output_buffer_remaining);
- if (n == (size_t) -1 && errno == E2BIG)
- {
- /* Try again if the state flush exceeded the buffer space. */
- flush_output ();
- n = iconv (cd, NULL, NULL,
- &output_buffer_current, &output_buffer_remaining);
- }
- bool errno_is_EILSEQ = errno == EILSEQ;
-
- if (n != (size_t) -1)
- break;
-
- if (omit_invalid && errno_is_EILSEQ)
- {
- ret = 1;
- break;
- }
- }
+ break;
if (errno == E2BIG)
flush_output ();
@@ -680,13 +683,12 @@ process_block (iconv_t cd, char *addr, size_t len)
{
case EILSEQ:
if (! omit_invalid)
- error (0, 0, _("illegal input sequence at position %ld"),
- (long int) (addr - start));
+ error (0, 0, _("illegal input sequence at position %lld"),
+ (long long int) (file_offset + (*addr - start)));
break;
case EINVAL:
- error (0, 0, _("\
-incomplete character or shift sequence at end of buffer"));
- break;
+ *incomplete = true;
+ return ret;
case EBADF:
error (0, 0, _("internal error (illegal descriptor)"));
break;
@@ -706,79 +708,49 @@ incomplete character or shift sequence at end of buffer"));
static int
process_fd (iconv_t cd, int fd)
{
- /* we have a problem with reading from a descriptor since we must not
- provide the iconv() function an incomplete character or shift
- sequence at the end of the buffer. Since we have to deal with
- arbitrary encodings we must read the whole text in a buffer and
- process it in one step. */
- static char *inbuf = NULL;
- static size_t maxlen = 0;
- char *inptr = inbuf;
- size_t actlen = 0;
-
- while (actlen < maxlen)
+ char inbuf[BUFSIZ];
+ char *inbuf_end = inbuf + sizeof (inbuf);
+ size_t inbuf_used = 0;
+ off64_t file_offset = 0;
+ int status = 0;
+ bool incomplete = false;
+
+ while (true)
{
- ssize_t n = read (fd, inptr, maxlen - actlen);
-
- if (n == 0)
- /* No more text to read. */
- break;
-
- if (n == -1)
+ char *p = inbuf + inbuf_used;
+ ssize_t read_ret = read (fd, p, inbuf_end - p);
+ if (read_ret == 0)
+ {
+ /* On EOF, check if the previous iconv invocation saw an
+ incomplete sequence. */
+ if (incomplete)
+ {
+ error (0, 0, _("\
+incomplete character or shift sequence at end of buffer"));
+ return 1;
+ }
+ return 0;
+ }
+ if (read_ret < 0)
{
- /* Error while reading. */
error (0, errno, _("error while reading the input"));
return -1;
}
-
- inptr += n;
- actlen += n;
+ inbuf_used += read_ret;
+ incomplete = false;
+ p = inbuf;
+ int ret = process_block (cd, &p, &inbuf_used, file_offset, &incomplete);
+ if (ret != 0)
+ {
+ status = ret;
+ if (ret < 0)
+ break;
+ }
+ /* The next loop iteration consumes the leftover bytes. */
+ memmove (inbuf, p, inbuf_used);
+ file_offset += read_ret - inbuf_used;
}
-
- if (actlen == maxlen)
- while (1)
- {
- ssize_t n;
- char *new_inbuf;
-
- /* Increase the buffer. */
- new_inbuf = (char *) realloc (inbuf, maxlen + 32768);
- if (new_inbuf == NULL)
- {
- error (0, errno, _("unable to allocate buffer for input"));
- return -1;
- }
- inbuf = new_inbuf;
- maxlen += 32768;
- inptr = inbuf + actlen;
-
- do
- {
- n = read (fd, inptr, maxlen - actlen);
-
- if (n == 0)
- /* No more text to read. */
- break;
-
- if (n == -1)
- {
- /* Error while reading. */
- error (0, errno, _("error while reading the input"));
- return -1;
- }
-
- inptr += n;
- actlen += n;
- }
- while (actlen < maxlen);
-
- if (n == 0)
- /* Break again so we leave both loops. */
- break;
- }
-
- /* Now we have all the input in the buffer. Process it in one run. */
- return process_block (cd, inbuf, actlen);
+ return status;
}
diff --git a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh
index a9c3729d94..23098ac56a 100644
--- a/iconv/tst-iconv_prog-buffer.sh
+++ b/iconv/tst-iconv_prog-buffer.sh
@@ -50,6 +50,9 @@ echo OUT > "$tmp/out-template"
: > "$tmp/empty"
printf '\xff' > "$tmp/0xff"
+# Length should be a prime number, to help with buffer alignment testing.
+printf '\xc3\xa4\xe2\x80\x94\xe2\x80\x94\xc3\xa4\n' > "$tmp/utf8-sequence"
+
# Double all files to produce larger buffers.
for p in "$tmp"/* ; do
i=0
@@ -270,6 +273,34 @@ expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" - < "$tmp/0xff" "$tmp/def"
run_iconv -o "$tmp/out" "$tmp/xy" - - "$tmp/zt" < "$tmp/abc"
expect_files xy abc zt
+# NB: Extra iconv args are ignored after this point. Actual
+# multi-byte conversion does not work with tiny buffers.
+iconv_args="-f UTF-8 -t ASCII"
+
+printf 'x\n\xc3' > "$tmp/incomplete"
+expect_exit 1 run_iconv -o "$tmp/out" "$tmp/incomplete"
+check_out <<EOF
+x
+EOF
+
+# Test buffering behavior if the buffer ends with an incomplete
+# multi-byte sequence.
+prefix=""
+prefix_length=0
+while test $prefix_length -lt 12; do
+ echo "info: testing prefix length $prefix_length" 2>&$logfd
+ printf "%s" "$prefix" > "$tmp/prefix"
+ cat "$tmp/prefix" "$tmp/utf8-sequence" > "$tmp/tmp"
+ iconv_args="-f UTF-8 -t UCS-4"
+ run_iconv -o "$tmp/out1" "$tmp/tmp"
+ iconv_args="-f UCS-4 -t UTF-8"
+ run_iconv -o "$tmp/out" "$tmp/out1"
+ expect_files prefix utf8-sequence
+
+ prefix="$prefix@"
+ prefix_length=$(($prefix_length + 1))
+done
+
if $failure ; then
exit 1
fi
commit d8582b56d0c34f924863c21cc8642bc1b6deb29f
Author: Florian Weimer <fweimer@redhat.com>
Date: Fri Sep 20 13:10:54 2024 +0200
iconv: Multiple - on command line should not fail (bug 32050)
Usually, the second and subsequent - return EOF immediately
and do not contribute to the output, but this is not an error.
Reviewed-by: DJ Delorie <dj@redhat.com>
diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c
index 3e02db7319..dd4bc3a59a 100644
--- a/iconv/iconv_prog.c
+++ b/iconv/iconv_prog.c
@@ -287,7 +287,8 @@ conversions from `%s' and to `%s' are not supported"),
ret = process_fd (cd, fd);
/* Now close the file. */
- close (fd);
+ if (fd != STDIN_FILENO)
+ close (fd);
if (ret != 0)
{
diff --git a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh
index 54ff871d32..a9c3729d94 100644
--- a/iconv/tst-iconv_prog-buffer.sh
+++ b/iconv/tst-iconv_prog-buffer.sh
@@ -265,6 +265,11 @@ expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" "$tmp/0xff" "$tmp/def"
expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" - < "$tmp/0xff" "$tmp/def"
! test -e "$tmp/out"
+# Listing standard input multiple times should not fail (bug 32050).
+
+run_iconv -o "$tmp/out" "$tmp/xy" - - "$tmp/zt" < "$tmp/abc"
+expect_files xy abc zt
+
if $failure ; then
exit 1
fi
From 9a4b0eaf726f5404c6683d5c7c5e86f61c3f3fbc Mon Sep 17 00:00:00 2001
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Sat, 14 Dec 2024 11:44:11 +0100
Subject: [PATCH] iconv: do not report error exit with transliteration [BZ
#32448]
Commit 6cbf845fcdc7 ("iconv: Preserve iconv -c error exit on invalid
inputs (bug 32046)") changed the error exit code to report an error when
an input character has been transliterated. This looks like a bug as the
moto in the iconv program is to report an error code in the same
condition as the iconv() function.
This happens because the STANDARD_TO_LOOP_ERR_HANDLER macro sets a
default value for result and later updates it if the transliteration
succeed. With the changes, setting the default value also marks the
input as illegal.
Fix that by setting up the default value of result only when the
transliteration is not used. This works because __gconv_transliterate()
calls __gconv_mark_illegal_input() to return an error. At the same time
also fix the typo outself -> ourselves.
Fixes: 6cbf845fcdc7
Resolves: BZ #32448
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
iconv/loop.c | 13 ++++++++-----
iconv/tst-iconv_prog.sh | 24 +++++++++++++-----------
2 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/iconv/loop.c b/iconv/loop.c
index 199fb28326..7149cec9b2 100644
--- a/iconv/loop.c
+++ b/iconv/loop.c
@@ -141,12 +141,13 @@
points. */
#define STANDARD_TO_LOOP_ERR_HANDLER(Incr) \
{ \
- result = __gconv_mark_illegal_input (step_data); \
- \
if (irreversible == NULL) \
- /* This means we are in call from __gconv_transliterate. In this \
- case we are not doing any error recovery outself. */ \
- break; \
+ { \
+ /* This means we are in call from __gconv_transliterate. In this \
+ case we are not doing any error recovery ourselves. */ \
+ result = __gconv_mark_illegal_input (step_data); \
+ break; \
+ } \
\
/* If needed, flush any conversion state, so that __gconv_transliterate \
starts with current shift state. */ \
@@ -157,6 +158,8 @@
result = __gconv_transliterate \
(step, step_data, *inptrp, \
&inptr, inend, &outptr, irreversible); \
+ else \
+ result = __gconv_mark_illegal_input (step_data); \
\
REINIT_PARAMS; \
\
diff --git a/iconv/tst-iconv_prog.sh b/iconv/tst-iconv_prog.sh
index ca4dbd4a3a..f3a03ac062 100644
--- a/iconv/tst-iconv_prog.sh
+++ b/iconv/tst-iconv_prog.sh
@@ -211,12 +211,13 @@ hangarray=(
"\x00\x81;-c;WIN-SAMI-2;UTF-8//TRANSLIT//IGNORE"
)
-# List of option combinations that *should* lead to an error
-errorarray=(
+# List of option combinations with their expected return code
+testarray=(
# Converting from/to invalid character sets should cause error
-"\x00\x00;;INVALID;INVALID"
-"\x00\x00;;INVALID;UTF-8"
-"\x00\x00;;UTF-8;INVALID"
+"\x00\x00;;INVALID;INVALID;1"
+"\x00\x00;;INVALID;UTF-8;1"
+"\x00\x00;;UTF-8;INVALID;1"
+"\xc3\xa9;;UTF-8;ASCII//TRANSLIT;0"
)
# Requires $twobyte input, $c flag, $from, and $to to be set; sets $ret
@@ -264,7 +265,7 @@ done
check_errtest_result ()
{
- if [ "$ret" -eq "1" ]; then # we errored out as expected
+ if [ "$ret" -eq "$eret" ]; then # we got the expected return code
result="PASS"
else
result="FAIL"
@@ -277,11 +278,12 @@ check_errtest_result ()
fi
}
-for errorcommand in "${errorarray[@]}"; do
- twobyte="$(echo "$errorcommand" | cut -d";" -f 1)"
- c="$(echo "$errorcommand" | cut -d";" -f 2)"
- from="$(echo "$errorcommand" | cut -d";" -f 3)"
- to="$(echo "$errorcommand" | cut -d";" -f 4)"
+for testcommand in "${testarray[@]}"; do
+ twobyte="$(echo "$testcommand" | cut -d";" -f 1)"
+ c="$(echo "$testcommand" | cut -d";" -f 2)"
+ from="$(echo "$testcommand" | cut -d";" -f 3)"
+ to="$(echo "$testcommand" | cut -d";" -f 4)"
+ eret="$(echo "$testcommand" | cut -d";" -f 5)"
execute_test
check_errtest_result
done
--
2.45.2
From 6fd215d6ae9a4a6e75f7ea18d89db6a10f158eaf Mon Sep 17 00:00:00 2001
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Thu, 19 Dec 2024 23:55:15 +0100
Subject: [PATCH] posix: fix system when a child cannot be created [BZ #32450]
POSIX states that "if a child process cannot be created, or if the
termination status for the command language interpreter cannot be
obtained, system() shall return -1 and set errno to indicate the error."
In the glibc implementation it could happen when posix_spawn fails,
which happens when the underlying fork, vfork, or clone call fails. They
could fail with EAGAIN and ENOMEM.
Resolves: BZ #32450
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
---
stdlib/tst-system.c | 21 +++++++++++++++++++++
sysdeps/posix/system.c | 10 +++++++---
2 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/stdlib/tst-system.c b/stdlib/tst-system.c
index 1581a06e68..d37902088a 100644
--- a/stdlib/tst-system.c
+++ b/stdlib/tst-system.c
@@ -20,6 +20,7 @@
#include <string.h>
#include <signal.h>
#include <paths.h>
+#include <sys/resource.h>
#include <support/capture_subprocess.h>
#include <support/check.h>
@@ -194,6 +195,26 @@ do_test (void)
xpthread_join (long_sleep_thread);
}
+ {
+ struct rlimit rlimit_orig, rlimit_new;
+
+ if (getrlimit (RLIMIT_NPROC, &rlimit_orig) != 0)
+ FAIL_EXIT1 ("getrlimit (RLIMIT_NPROC) failed: %m");
+
+ /* Force failure for the system call */
+ rlimit_new.rlim_cur = 0;
+ rlimit_new.rlim_max = rlimit_orig.rlim_max;
+
+ if (setrlimit (RLIMIT_NPROC, &rlimit_new) != 0)
+ FAIL_EXIT1 ("setrlimit (RLIMIT_NPROC) failed: %m");
+
+ TEST_COMPARE (system (""), -1);
+
+ /* Restore NPROC limit */
+ if (setrlimit (RLIMIT_NPROC, &rlimit_orig) != 0)
+ FAIL_EXIT1 ("setrlimit (RLIMIT_NPROC) failed: %m");
+ }
+
TEST_COMPARE (system (""), 0);
return 0;
diff --git a/sysdeps/posix/system.c b/sysdeps/posix/system.c
index be32704280..f3e173e465 100644
--- a/sysdeps/posix/system.c
+++ b/sysdeps/posix/system.c
@@ -175,10 +175,14 @@ do_system (const char *line)
__libc_cleanup_region_end (0);
#endif
}
+ else if (ret == EAGAIN || ret == ENOMEM)
+ /* POSIX states that failure to create a child process should
+ return -1. */
+ status = -1;
else
- /* POSIX states that failure to execute the shell should return
- as if the shell had terminated using _exit(127). */
- status = W_EXITCODE (127, 0);
+ /* POSIX states that failure to execute the shell should return
+ as if the shell had terminated using _exit(127). */
+ status = W_EXITCODE (127, 0);
/* sigaction can not fail with SIGINT/SIGQUIT used with old
disposition. Same applies for sigprocmask. */
--
2.45.2