Bug#681760: busybox: broken on s390x due to alignment issues

2012-07-16 Thread Aurelien Jarno
Package: busybox
Version: 1:1.20.0-5
Severity: critical
Tags: d-i upstream patch

busybox is currently broken on s390x to the point of not being usable.
Depending on the configuration, some strings are replaced by empty 
strings. For the current version 1:1.20.0-5, this is the case of at 
least for the banner and the binary path, the later causing all exec
applets to fail to execute. In turns this renders the system 
unbootable:

| $ busybox sh
|
|
|  built-in shell (ash)
| Enter 'help' for a list of built-in commands.
| 
| $ switch_root
| sh: switch_root: not found

busybox-udeb is also affected, I haven't tried yet the impact on d-i, 
but at least essential applets like swapon, syslogd, realpath or uname
are not working.

This is due to aggressive size optimization by chaning the default 
strings alignement in the definitions of the strings in 
libbb/messages.c. Given it is not done in the corresponding declarations
in include/libbb.h, the compiler is free to optimize the access to these
constants with aligned access, which is what GCC does on s390x. This is
why the bug appears and disappears from version to version, as the issue
depends on the size of neighbouring constants and variables.

The patch below, also submitted upstream and adapted to the debian 
package (due to changes in shell-ash-export-HOME.patch) fixes the 
problem.



include/libbb.h: declare messages with ALIGN1

Some messages strings are defined with ALIGN1 in libbb/messages.c
to make sure strings are not aligned and thus to save some bytes. The
corresponding declaration in include/libbb.h should also use ALIGN1,
otherwise the compiler may assume they are aligned and generate wrong
code to access them. This is the case on at least s390x.

Signed-off-by: Aurelien Jarno aurel...@aurel32.net
---
 include/libbb.h |   36 ++--
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/include/libbb.h b/include/libbb.h
index 322a28c..f22e58e 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1612,8 +1612,8 @@ unsigned get_cpu_count(void) FAST_FUNC;
 char *percent_decode_in_place(char *str, int strict) FAST_FUNC;
 
 
-extern const char bb_uuenc_tbl_base64[];
-extern const char bb_uuenc_tbl_std[];
+extern const char bb_uuenc_tbl_base64[] ALIGN1;
+extern const char bb_uuenc_tbl_std[] ALIGN1;
 void bb_uuencode(char *store, const void *s, int length, const char *tbl) 
FAST_FUNC;
 enum {
BASE64_FLAG_UU_STOP = 0x100,
@@ -1694,24 +1694,24 @@ extern const char *applet_name;
  * Therefore now we use #defines.
  */
 /* BusyBox vN.N.N (timestamp or extra_version) */
-extern const char bb_banner[];
-extern const char bb_msg_memory_exhausted[];
-extern const char bb_msg_invalid_date[];
+extern const char bb_banner[] ALIGN1;
+extern const char bb_msg_memory_exhausted[] ALIGN1;
+extern const char bb_msg_invalid_date[] ALIGN1;
 #define bb_msg_read_error read error
 #define bb_msg_write_error write error
-extern const char bb_msg_unknown[];
-extern const char bb_msg_can_not_create_raw_socket[];
-extern const char bb_msg_perm_denied_are_you_root[];
-extern const char bb_msg_you_must_be_root[];
-extern const char bb_msg_requires_arg[];
-extern const char bb_msg_invalid_arg[];
-extern const char bb_msg_standard_input[];
-extern const char bb_msg_standard_output[];
+extern const char bb_msg_unknown[] ALIGN1;
+extern const char bb_msg_can_not_create_raw_socket[] ALIGN1;
+extern const char bb_msg_perm_denied_are_you_root[] ALIGN1;
+extern const char bb_msg_you_must_be_root[] ALIGN1;
+extern const char bb_msg_requires_arg[] ALIGN1;
+extern const char bb_msg_invalid_arg[] ALIGN1;
+extern const char bb_msg_standard_input[] ALIGN1;
+extern const char bb_msg_standard_output[] ALIGN1;
 
 /* NB: (bb_hexdigits_upcase[i] | 0x20) - lowercase hex digit */
-extern const char bb_hexdigits_upcase[];
+extern const char bb_hexdigits_upcase[] ALIGN1;
 
-extern const char bb_path_wtmp_file[];
+extern const char bb_path_wtmp_file[] ALIGN1;
 
 /* Busybox mount uses either /proc/mounts or /etc/mtab to
  * get the list of currently mounted filesystems */
@@ -1725,10 +1725,10 @@ extern const char bb_path_wtmp_file[];
 #define bb_path_motd_file /etc/motd
 
 #define bb_dev_null /dev/null
-extern const char bb_busybox_exec_path[];
+extern const char bb_busybox_exec_path[] ALIGN1;
 /* util-linux manpage says /sbin:/bin:/usr/sbin:/usr/bin,
  * but I want to save a few bytes here */
-extern char bb_PATH_root_path[]; /* PATH=/sbin:/usr/sbin:/bin:/usr/bin */
+extern char bb_PATH_root_path[] ALIGN1; /* 
PATH=/sbin:/usr/sbin:/bin:/usr/bin */
 #define bb_default_root_path (bb_PATH_root_path + sizeof(PATH))
 #define bb_default_path  (bb_PATH_root_path + 
sizeof(PATH=/sbin:/usr/sbin))
 
@@ -1758,7 +1758,7 @@ extern struct globals *const ptr_to_globals;
  * If you change LIBBB_DEFAULT_LOGIN_SHELL,
  * don't forget to change increment constant. */
 #define LIBBB_DEFAULT_LOGIN_SHELL  -/bin/sh
-extern const char bb_default_login_shell[];
+extern const 

Bug#681656: Bug 681656

2012-07-16 Thread Gaston

Hello,

I'm experiencing the same problem. I have an Intel 82567LM network 
card.

The installer I used: wheezy-DI-b1 amd64 Binary-1 20120715-00:01

Gaston


--
To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/500411c6.7040...@gmail.com



Bug#681801: Preseeding console-keymaps-at/keymap=us no longer works to select keymap

2012-07-16 Thread Floris Bos / Maxnet

Package: console-setup-udeb
Version: 1.80


We perform automated preseeded Debian installations.
With Debian Squeeze we are able to use the following boot parameters to 
prevent Debian from prompting for country and keyboard settings:


==
debian-installer/locale=en_US kbd-chooser/method=us 
console-keymaps-at/keymap=us

==

However with Wheezy this no longer works, and we get prompted for 
keyboard map regardless (screenshot: 
http://s17.postimage.org/on6is922n/keymap_prompt.png )



In case a different preseed value then console-keymaps-at/keymap=us is 
necessary nowadays, please update the documentation ( 
http://d-i.alioth.debian.org/manual/en.amd64/apbs04.html#preseed-l10n )



--
Yours sincerely,

Floris Bos


--
To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/5004481c.6020...@je-eigen-domein.nl



di - Running own udeb in rescue-mode if append parameter ies-restore/enable=true is set

2012-07-16 Thread Bastian Nolte

Hello,

I should like to create an additional rescue-mode in debian installer.

The primary function of this mode is the automatically restore of a 
brocken system from backup.


If the kernel append parameter ies-restore/enable=true is set, the d-i 
should start the postinst file of the package ies-restore.udeb instead 
of the rescue-mode.udeb.


In the d-i initrd, which files I have to modify to make the determination?

I haven't found information about this problematic in debian wiki and on 
alioths homepage.


I am sorry for my poor english.


Thank you for helping

Bastian
attachment: b_nolte.vcf

Bug#681801: Preseeding console-keymaps-at/keymap=us no longer works to select keymap

2012-07-16 Thread Samuel Thibault
reassign 681801 installation-guide
tags 681801 + pending
thanks

Floris Bos / Maxnet, le Mon 16 Jul 2012 18:58:04 +0200, a écrit :
 In case a different preseed value then console-keymaps-at/keymap=us is
 necessary nowadays, please update the documentation (
 http://d-i.alioth.debian.org/manual/en.amd64/apbs04.html#preseed-l10n )

Yes, it has changed, and the manual has been updated already, just not
uploaded yet.

Samuel


--
To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20120717033313.GG5136@type



Processed: Re: Bug#681801: Preseeding console-keymaps-at/keymap=us no longer works to select keymap

2012-07-16 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

 reassign 681801 installation-guide
Bug #681801 [console-setup-udeb] Preseeding console-keymaps-at/keymap=us no 
longer works to select keymap
Bug reassigned from package 'console-setup-udeb' to 'installation-guide'.
No longer marked as found in versions console-setup/1.80.
Ignoring request to alter fixed versions of bug #681801 to the same values 
previously set
 tags 681801 + pending
Bug #681801 [installation-guide] Preseeding console-keymaps-at/keymap=us no 
longer works to select keymap
Added tag(s) pending.
 thanks
Stopping processing here.

Please contact me if you need assistance.
-- 
681801: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681801
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems


--
To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/handler.s.c.13424964024248.transcr...@bugs.debian.org



Bug#681760: busybox: broken on s390x due to alignment issues

2012-07-16 Thread Michael Tokarev
forwarded 681760 
http://lists.busybox.net/pipermail/busybox/2012-July/078155.html
tags 681760 + pending
thanks

On 16.07.2012 12:57, Aurelien Jarno wrote:

 busybox is currently broken on s390x to the point of not being usable.
 Depending on the configuration, some strings are replaced by empty 
 strings. For the current version 1:1.20.0-5, this is the case of at 
 least for the banner and the binary path, the later causing all exec
 applets to fail to execute. In turns this renders the system 
 unbootable:
[]
 This is due to aggressive size optimization by chaning the default 
 strings alignement in the definitions of the strings in 
 libbb/messages.c. Given it is not done in the corresponding declarations
 in include/libbb.h, the compiler is free to optimize the access to these
 constants with aligned access, which is what GCC does on s390x. This is
 why the bug appears and disappears from version to version, as the issue
 depends on the size of neighbouring constants and variables.
 
 The patch below, also submitted upstream and adapted to the debian 
 package (due to changes in shell-ash-export-HOME.patch) fixes the 
 problem.

Thank you for the excellent bugreport.  If you ask me, I'd say the whole
thing - killing alignment - is not worth the effort here, it saves a
few bytes but may cost much more, like is demonstrated by this very
issue, so I'd just remove the ALIGN1 marker.  Also, I'd say it is a
bug in GCC, since it produces no warning when declaration and definition
of the same variable are different and may produce different results.

As for the patch, I'd use the same patch as sent to upstream, and adapt
the ash-export-HOME instead, since it is already debian-specific.  But
I'm not sure what's better for the release team.  I'll ask around.

Thanks you!

/mjt


-- 
To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/5004f49d.9050...@msgid.tls.msk.ru



Processed: Re: Bug#681760: busybox: broken on s390x due to alignment issues

2012-07-16 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

 forwarded 681760 
 http://lists.busybox.net/pipermail/busybox/2012-July/078155.html
Bug #681760 [busybox] busybox: broken on s390x due to alignment issues
Set Bug forwarded-to-address to 
'http://lists.busybox.net/pipermail/busybox/2012-July/078155.html'.
 tags 681760 + pending
Bug #681760 [busybox] busybox: broken on s390x due to alignment issues
Added tag(s) pending.
 thanks
Stopping processing here.

Please contact me if you need assistance.
-- 
681760: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681760
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems


--
To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/handler.s.c.134250239528414.transcr...@bugs.debian.org