Bug 794347

Summary: glibc-locale.i686 doesn't contain /usr/lib/locale - conflicts with glibc-locale.i586 which does
Product: [openSUSE] openSUSE 12.2 Reporter: Jeff Mahoney <jeffm>
Component: BasesystemAssignee: Andreas Schwab <schwab>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Critical    
Priority: P1 - Urgent CC: adrian.schroeter, aj, bruce.lilly, forgotten_o5N6HWuMhD, maintenance, mfrueh
Version: Final   
Target Milestone: ---   
Hardware: i686   
OS: Other   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Jeff Mahoney 2012-12-13 17:15:20 UTC
mater:~ # locale -v
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=POSIX
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

3111  open("/usr/lib/locale/en_US.UTF-8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
3111  open("/usr/lib/locale/en_US.utf8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
3111  open("/usr/lib/locale/en_US/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
3111  open("/usr/lib/locale/en.UTF-8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
3111  open("/usr/lib/locale/en.utf8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
3111  open("/usr/lib/locale/en/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

It looks like this was a conscious change but I'm not sure how the .i686 package is supposed to work - or if it should even exist.

-------------------------------------------------------------------
Mon Apr 16 14:31:38 UTC 2012 - aj@suse.de

- Do not build locales and profile for i686 since we only ship
  the base and glibc-devel packages.

%files locale -f libc.lang
%defattr(-,root,root)
%{_datadir}/locale/locale.alias
%if %{build_locales}
        /usr/lib/locale
%endif
%{_libdir}/gconv

-- Should that %if directive be around the entire %files section so the i586 version gets pulled in?
Comment 1 Andreas Schwab 2012-12-14 14:52:54 UTC
*** Bug 794565 has been marked as a duplicate of this bug. ***
Comment 2 Andreas Jaeger 2012-12-14 20:31:02 UTC
*** Bug 794630 has been marked as a duplicate of this bug. ***
Comment 3 Forgotten User o5N6HWuMhD 2012-12-15 16:31:35 UTC
for reference, here's a diff of the glibc-locale installs on x64 & ix86

  http://www.diffchecker.com/0snuVGsH

as pointed out, /usr/lib/local/ is simply missing on ix86 ...
Comment 4 Bernhard Wiedemann 2012-12-17 10:00:10 UTC
This is an autogenerated message for OBS integration:
This bug (794347) was mentioned in
https://build.opensuse.org/request/show/145607 Maintenance / 
https://build.opensuse.org/request/show/145608 Maintenance /
Comment 5 Bernhard Wiedemann 2012-12-17 15:00:15 UTC
This is an autogenerated message for OBS integration:
This bug (794347) was mentioned in
https://build.opensuse.org/request/show/145664 Maintenance /
Comment 6 Benjamin Brunner 2012-12-17 16:49:01 UTC
Andreas, your submitted package for glibc.i686 doesn't build. It looks like that the _link is broken, because it points to glibc.i686 again and ends up in an "circular package link"-error (see the maintenance-incident https://build.opensuse.org/project/show?project=openSUSE%3AMaintenance%3A1176 ). Could you have a look at it please and submit a fixed package, please? Thanks.
Comment 7 Andreas Schwab 2012-12-17 17:05:39 UTC
This is a bug in osc branch, it always creates this broken link for glibc.i686.
Comment 8 Andreas Jaeger 2012-12-17 19:17:17 UTC
Adrian ,could you fix this, please?
Comment 9 Bruce Lilly 2012-12-18 11:37:17 UTC
This bug is causing DoS here (e.g. postgresql and other services that need locale data).

IMO, the i686 glibc-locale package should be removed from the update servers until after it has been fixed and passes regression tests; zypper dup keeps trying to "upgrade" it from i586 to i686, which causes extensive problems.

In the meantime, the i586 package works.

Two 32-bit systems here:
d220mt.blilly.net:/etc/ups # zypper se -i -s glibc-locale
Loading repository data...
Reading installed packages...

S | Name         | Type    | Version     | Arch | Repository    
--+--------------+---------+-------------+------+---------------
i | glibc-locale | package | 2.15-22.9.1 | i586 | updates_mirror
d220mt.blilly.net:/etc/ups # locale -a | head
C
POSIX
aa_DJ
aa_DJ.utf8
aa_ER
aa_ER@saaho
aa_ET
af_ZA
af_ZA.utf8
am_ET

e2300a.blilly.net:/root # zypper se -i -s glibc-locale
Loading repository data...
Reading installed packages...

S | Name         | Type    | Version     | Arch | Repository    
--+--------------+---------+-------------+------+---------------
i | glibc-locale | package | 2.15-22.9.1 | i686 | updates_mirror
e2300a.blilly.net:/root # locale -a                   
locale: Cannot set LC_CTYPE to default locale: No such file or directory
C
POSIX
e2300a.blilly.net:/root #
Comment 10 Andreas Jaeger 2012-12-18 13:07:39 UTC
Maintenance team, could you remove the update - or at least the locale package, please?
Comment 11 Benjamin Brunner 2012-12-18 14:04:29 UTC
AJ, I'll remove the update from the test-channel. Bruce, thanks for bringing this up.
Comment 12 Adrian Schröter 2012-12-18 15:29:44 UTC
branching fixed in git and on api.opensuse.org. (and test case created for the special glibc.i686 case).
Comment 13 Forgotten User o5N6HWuMhD 2012-12-19 20:13:49 UTC
To fix the support problem this is causing around here, I'm going to push a zypper lock and a downgrade to all our x86 boxes.

Unless ... this is about to drop into the actual production/update repos.  Either as a fixed package, or as a removal of the broken one.

Can anyone comment/speculate as to possible timing?

Thanks.
Comment 14 Bruce Lilly 2012-12-20 04:40:02 UTC
For clarification:

The problem i686 package exists in the "updates" repository for openSUSE 12.2, i.e. rsync.opensuse.org::opensuse-updates/12.2 (and of course mirrors, and of course via other protocols).
N.B. 12.2 release, not Factory or 12.3 RCs
N.B. 12.2 release, not specifically 12.2-test

# rsync --no-motd rsync.opensuse.org::opensuse-updates/12.2/i686/
...
-rw-r--r--      129972 2012/12/12 12:51:36 glibc-locale-2.15-22.6.4_22.9.1.i686.drpm
-rw-r--r--     1730129 2012/12/12 08:11:06 glibc-locale-2.15-22.9.1.i686.rpm
...

It affects production 32-bit systems running 12.2 with updates, e.g.:
# uname -s -r -v -m -p -i -o
Linux 3.4.11-2.16-desktop #1 SMP PREEMPT Sat Oct 13 10:24:51 EDT 2012 i686 i686 i386 GNU/Linux

On those systems, 'zypper dup' (with the updates repository enabled), but not 'zypper up', yields:
...
The following package is going to change architecture:
  glibc-locale  i586 -> i686

and continuing installs the broken package with previously described adverse effects.

i586 architecture package is fine.  x86_64 architecture native package is fine. I haven't tried to test the -32bit x86_64 variant.
Comment 15 Andreas Jaeger 2012-12-20 08:39:57 UTC
Maintenance team, please remove the previous glibc update from *all* channels for now - and let's push this update quickly through to fix it.

Andreas, seems that Benji removed your update - instead of the previous one. Could you submit again, please?
Comment 16 Benjamin Brunner 2012-12-20 13:19:48 UTC
A new submission is not necessary, I undeleted the project and will release it asap. I also removed the previous update from the update channel. I'm sorry I'm getting it wrong with deleting the package.
Comment 17 Benjamin Brunner 2012-12-20 14:36:36 UTC
The new update is released now, too. I'll mark the bug as resolved fixed. Feel free to reopen it, if something is still missing.
Comment 18 Swamp Workflow Management 2012-12-20 17:09:04 UTC
openSUSE-RU-2012:1681-1: An update that has two recommended fixes can now be installed.

Category: recommended (low)
Bug References: 793619,794347
CVE References: 
Sources used:
openSUSE 12.2 (src):    glibc-2.15-22.17.1