Sync mksh 37.3-2 (universe) from Debian unstable (main).

Bug #375604 reported by Michael Terry
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
mksh (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Please sync mksh 37.3-2 (universe) from Debian unstable (main).

Explanation of the Ubuntu delta and why it can be dropped:
Only Ubuntu change was fixing the Build-Depends from locales-all to locales. That same fix is now in Debian (in fact, they changed it to "locales | belocs-locales-bin".

Changelog since current karmic version 36.2-1ubuntu1:

mksh (37.3-2) unstable; urgency=low

  * Provide a way to not use dietlibc for /bin/mksh-static
    on certain architectures; use it for s390 (Closes: #523088)
  * debian/control: run ispell over it

 -- Thorsten Glaser <email address hidden> Wed, 08 Apr 2009 18:07:55 +0000

mksh (37.3-1) unstable; urgency=low

  * New upstream version R37c; complete ChangeLog:
    - [tg] Improve præprocessor detection/work in Build.sh
    - [tg] Decouple MKSH_CONSERVATIVE_FDS from MKSH_SMALL
    - [tg] Enable MKSH_CONSERVATIVE_FDS by default on Minix 3
    - [tg] Work around the (in-)famous ACK "const" bug
    - [tg] Optimise structure alignment and padding; Closes: #522778
    - [tg] Retain LOCPATH (for glibc locale) in check.pl
    - [tg] Document, simplify and clean up the code better
    - [tg] Use mirbsd.org eMail addresses consistently
  * debian/rules: try to at least execute the built binaries in !nocheck
    cases, to prevent totally unusable packages from being published;
    Closes: #522779
  * Use LOCPATH and a temporarily generated UTF-8 locale for the regres-
    sion test suite (from Steve “vorlon” Langasek); depend on localedef
    Closes: #522777
  * debian/control: add comment where the dietlibc list comes from
  * Sync package description, etc. with R37c release and upstream
  * debian/control: mention VCS-CVS syntax and place of upstream source

 -- Thorsten Glaser <email address hidden> Tue, 07 Apr 2009 23:24:48 +0200

mksh (37.2-1) unstable; urgency=low

  * New upstream version R37b; complete ChangeLog:
    - [tg] Clean up build system and dot.mkshrc some more
    - [tg] Add getrusage(2) implementation using times(3) if none found
    - [tg] Add jobless mode (for Minix 3, Plan 9, …)
    - [tg] Detect the Amsterdam Compiler Kit in the build system
    - [tg] If no RLIM_INFINITY don’t try to do ulimit
    - [tg] Work around gcc4 strict warnings vs. broken system headers
    - [tg] Work around systems with mmap(2) but no munmap(2)
    - [tg] Fix (disallow) bind key macro recursion (instead of beeping
      and going into an endless loop), allow multi-line bind key macros
      (mostly from Alexander Hall), remove dead code (the beeping) and
      optimise
    - [tg] Add (commented out, undesired, standards compliance breaking)
      compatibility code to MidnightBSD 0.1 /bin/sh for ctriv
    - [tg] Clarify the mksh(1) manual page even more
    - [tg] Port to Minix 3 + GCC
  * New upstream version R37; complete ChangeLog:
    - [tg] Rename -o utf8-hack to -o utf8-mode
    - [tg] Fix spacing mode error (pasto) in the mdoc(7) format manpage
    - [tg] Implement $((#…)) unsigned arithmetic calculation, needed for
      arc4random_uniform(3)-in-korn-shell implementation
    - [tg] Really preserve LD_LIBRARY_PATH in check.pl
    - [tg] New Build.sh option ‘-combine’ for building mksh(1) at once
      with “-fwhole-program --combine” (gcc4, llvm-gcc4) if available
    - [tg] Always set COLUMNS and LINES trying as hard as we can, using
      TIOCGWINSZ even if used without FTALKING, and with the sane 80x24
      default if the ioctl(2) fails
    - [tg] Handle _POSIX_VDISABLE being undefined (e.g. Linux/klibc)
    - [tg] <sys/file.h> is only required for flock(2)
    - [tg] Fix multi-column output routine for the corner case if the
      screen is less wide than one output column; 10x Gábor Gergely
    - [tg] Fix ${foo/@(%)/\\x} in UTF-8 mode (utf_widthadj for control
      characters U+0080‥U+009F is slightly broken; this fix shifts the
      brokenness into the command line editing mode only)
    - [tg] Introduce mksh_ari_t and mksh_uari_t internal types to limit
      arithmetics to 32 bit on all systems; currently depending on the
      already-used standard int32_t and uint32_t types. Future expansion
      to 64 bit possible. Document that shell integer variables use this
      type.
    - [tg] The variables PGRP, PPID, RANDOM and USER_ID are now unsigned
    - [tg] Fix two off-by-ones breaking PS1 ending with a newline; bug
      reported by Matthias Diener
    - [tg] Just pass through C1 control characters for now
    - [tg] Code and internal interfaces cleanup
    - [tg] Regression test fixes for Cygwin env(1) being unsorted
    - [tg] Replace the memory allocator by something equally simple and
      homegrown but optimised for use with mksh and free checking
    - [tg] Import a couple of minor fixes (e.g. spelling) from oksh
    - [tg] Fix problems with "set -e" for real; from oksh,
      Closes: #518359
    - [tg] In "set -o posix" mode, have limited echo(1) to improve
      standards compliance; the exact feature set is open for discussion,
      e.g. with pkgsrc® people; for now, only -n as first arg
    - [tg] Make test builtin operator precedence consistent; from oksh
    - [tg] Revamp and fold and enhance the regression tests
    - [tg] Document somewhat surprising behaviour in mksh(1) better;
      here: [ x -eq y ]; for gps23 from #ksh
    - [tg] Reduce memory consumption by allocator simplification
    - [tg] Fix bugs spotted by DEC ucode cc (ULTRIX) and gcc 1.42 (BSD/OS)
    - [laffer1] Make mksh the default /bin/sh in MidnightBSD
  * debian/rules: add support for applying patches to the source code
  * debian/rules: build with new ‘-combine’ option for better optimisation
  * Fix debconf checks if dash is uninstalled; Closes: #518355
  * Use 「--package mksh」 consistently with dpkg-divert
  * debian/control: update package description
  * Upgrade Standards-Version to 3.8.1
    - debian/rules: support nocheck in DEB_BUILD_OPTIONS
    - debian/control: add RCS Id as comment field
  * debian/source.lintian-overrides: add (things not deemed fixable)
    - package-uses-deprecated-debhelper-compat-version (who cares)
    - vcs-field-uses-not-recommended-uri-format (source is available
      via AnonCVS, but pserver must die!)
  * debian/control: prepend :ext: anoncvs protocol to VCS-CVS field

 -- Thorsten Glaser <email address hidden> Sun, 05 Apr 2009 15:48:16 +0000

Revision history for this message
Michael Bienia (geser) wrote :

It failed to build in my karmic pbuilder:

cc -Wall -g -O2 -fno-strict-aliasing -fstack-protector-all -fwrapv -std=gnu99 -Wall -I. -I'../../mksh' -DMKSH_BINSHREDUCED -include /usr/include/bsd/bsd.h -D_GNU_SOURCE -DHAVE_ATTRIBUTE=1 -DHAVE_ATTRIBUTE_BOUNDED=0 -DHAVE_ATTRIBUTE_USED=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_MKDEV_H=0 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_SYSMACROS_H=1 -DHAVE_LIBGEN_H=1 -DHAVE_LIBUTIL_H=1 -DHAVE_PATHS_H=1 -DHAVE_STDBOOL_H=1 -DHAVE_STRINGS_H=1 -DHAVE_GRP_H=1 -DHAVE_ULIMIT_H=1 -DHAVE_VALUES_H=1 -DHAVE_STDINT_H=1 -DHAVE_RLIM_T=1 -DHAVE_SIG_T=1 -DHAVE_SYS_SIGNAME=0 -DHAVE_SYS_SIGLIST=1 -DHAVE_STRSIGNAL=0 -DHAVE_ARC4RANDOM=1 -DHAVE_ARC4RANDOM_PUSHB=0 -DHAVE_GETRUSAGE=1 -DHAVE_MKNOD=1 -DHAVE_MKSTEMP=1 -DHAVE_NICE=1 -DHAVE_REALPATH=1 -DHAVE_REVOKE=0 -DHAVE_SETLOCALE_CTYPE=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_SETMODE=1 -DHAVE_SETRESUGID=1 -DHAVE_SETGROUPS=1 -DHAVE_STRCASESTR=1 -DHAVE_STRLCPY=1 -DHAVE_ARC4RANDOM_DECL=1 -DHAVE_ARC4RANDOM_PUSHB_DECL=1 -DHAVE_FLOCK_DECL=0 -DHAVE_REVOKE_DECL=1 -DHAVE_SYS_SIGLIST_DECL=1 -DHAVE_PERSISTENT_HISTORY=1 -Wl,-Bsymbolic-functions -fwhole-program --combine -o mksh ../../mksh/lalloc.c ../../mksh/edit.c ../../mksh/eval.c ../../mksh/exec.c ../../mksh/expr.c ../../mksh/funcs.c ../../mksh/histrap.c ../../mksh/jobs.c ../../mksh/lex.c ../../mksh/main.c ../../mksh/misc.c ../../mksh/shf.c ../../mksh/syn.c ../../mksh/tree.c ../../mksh/var.c -lbsd || rm -f ${tcfn}*
../../mksh/jobs.c: In function 'exchild':
../../mksh/jobs.c:438: warning: ignoring return value of 'nice', declared with attribute warn_unused_result
../../mksh/edit.c: In function 'vi_cmd':
/usr/include/bits/string3.h:56: sorry, unimplemented: inlining failed in call to 'memmove': function body not available
../../mksh/edit.c:4062: sorry, unimplemented: called from here
/usr/include/bits/string3.h:56: sorry, unimplemented: inlining failed in call to 'memmove': function body not available
../../mksh/edit.c:4066: sorry, unimplemented: called from here
/usr/include/bits/string3.h:49: sorry, unimplemented: inlining failed in call to 'memcpy': redefined extern inline functions are not considered for inlining
../../mksh/edit.c:4097: sorry, unimplemented: called from here
/usr/include/bits/string3.h:49: sorry, unimplemented: inlining failed in call to 'memcpy': redefined extern inline functions are not considered for inlining
../../mksh/edit.c:4100: sorry, unimplemented: called from here
/usr/include/bits/string3.h:56: sorry, unimplemented: inlining failed in call to 'memmove': function body not available
../../mksh/edit.c:5022: sorry, unimplemented: called from here
make[1]: *** [do-build] Error 1
make[1]: Leaving directory `/tmp/buildd/mksh-37.3/build/full'
make: *** [debian/.build_stamp] Error 2
dpkg-buildpackage: failure: debian/rules build gave error exit status 2
pbuilder: Failed autobuilding of package

Changed in mksh (Ubuntu):
status: New → Incomplete
Revision history for this message
Thorsten Glaser (mirabilos) wrote :

This is actually a compiler bug fixed in gcc-snapshot:

https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/352475

I suppose with this and https://bugs.launchpad.net/dash/+bug/348872
it doesn’t make sense to drop the -ubuntu1 delta altogether.

The debconf stuff should be removed unless karmic fixes the issues
when running with mksh as /bin/sh I had on my hardy PC at work,
and the 「-combine」 option to mksh/Build.sh uses the gcc options
「-fwhole-program --combine」 which trigger the aforementioned
bug in certain versions of gcc.

Is it desirable if I make a package for karmic based on the Debian
sid one, test it in a chroot, and submit it (where/how)?

Revision history for this message
Michael Bienia (geser) wrote :

Simply create a debdiff against the deb package in sid with the needed changes for karmic and attach it here to this bug.

Revision history for this message
Thorsten Glaser (mirabilos) wrote :

Hi,

thanks for the response. There it is, both issues addressed in the least
intrusive way; I admit I haven’t tested this on an actual chroot because
of the faster response time of mine, but this should almost certainly
work (the debconf patch I have been using with personal hardy packages
for a while already).

Revision history for this message
Michael Bienia (geser) wrote :

The build proceeds now further, but fails at a different point now:

lex.o: In function `yyerror':
/tmp/buildd/mksh-38.1/build/small/../../mksh/lex.c:1045: undefined reference to `__builtin_stdarg_start'
main.o: In function `shellf':
/tmp/buildd/mksh-38.1/build/small/../../mksh/main.c:958: undefined reference to `__builtin_stdarg_start'
main.o: In function `internal_warningf':
/tmp/buildd/mksh-38.1/build/small/../../mksh/main.c:930: undefined reference to `__builtin_stdarg_start'
main.o: In function `warningf':
/tmp/buildd/mksh-38.1/build/small/../../mksh/main.c:866: undefined reference to `__builtin_stdarg_start'
main.o: In function `internal_errorf':
/tmp/buildd/mksh-38.1/build/small/../../mksh/main.c:919: undefined reference to `__builtin_stdarg_start'
main.o:/tmp/buildd/mksh-38.1/build/small/../../mksh/main.c:972: more undefined references to `__builtin_stdarg_start' follow
collect2: ld returned 1 exit status
make[1]: *** [do-build] Error 1
make[1]: Leaving directory `/tmp/buildd/mksh-38.1/build/small'
make: *** [debian/.build_stamp] Error 2

The build log also contains:
../../mksh/tree.c: In function 'fptreef':
../../mksh/tree.c:355: warning: implicit declaration of function '__builtin_stdarg_start'
(that's not the only one appearance of it)

Revision history for this message
Thorsten Glaser (mirabilos) wrote :

Yep, I already discovered and fixed it, this is a bug in dietlibc, filed as
https://bugs.launchpad.net/ubuntu/+source/dietlibc/+bug/381215
but I haven’t yet gotten around to replying again to this bug report
because, although I could take the time (I’m at work right now) to
make me a karmic chroot and test it, out of a sudden I had several
requests to work on.

If you take the patch from LP: #381215 and install the fixed dietlibc
.deb files, mksh with the debdiff already applied here will build fine.

I’d add a “blocked by #381215” to this bugreport, but haven’t found
out how to do so in Launchpad yet ☺

Revision history for this message
Michael Bienia (geser) wrote :

With a fixed dietlibc, mksh builds fine now. I'll sponsor dietlibc and mksh soon.
Thanks for the patches.

Revision history for this message
Thorsten Glaser (mirabilos) wrote :

Thanks for the help in getting these fixed and the quick responses.

Changed in mksh (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (8.4 KiB)

This bug was fixed in the package mksh - 38.1-1ubuntu1

---------------
mksh (38.1-1ubuntu1) karmic; urgency=low

  * debian/mksh.postinst: hardcode debconf question if mksh should
    be installed as /bin/sh to false (LP: #348872) but retain debconf
    stuff so that if this was set to true in previous packages, it
    will correctly be removed on upgrade
  * debian/rules: remove “-combine” option from Build.sh invocation
    (LP: #375604)

mksh (38.1-1) unstable; urgency=low

  * debian/control: depend on locales-all on m68k because its
    locales and glibc packages are not up to date / installable
  * debian/rules: ignore localedef failure (uncritical to build)
  * New upstream version R38; complete ChangeLog:
    - [tg] Improve regression test output debugging
    - [tg] Fix <libutil.h> prerequisites on MidnightBSD in mirtoconf
    - [tg] Mention that RedHat BZ#496791 cannot currently be fixed in
      the manpage by discouraging use of apostrophes in comments in
      comsubs; add appropriate (expected-fail) regression tests
    - [tg] Sync with OpenBSD ksh (mostly a no-op)
    - [James Butler] Add search-history-up and search-history-down
      keybindings (tcsh-like) to the Emacs command line editing mode
    - [tg] Bind new search-history-{up,down} to ANSI PgUp and PgDn keys
    - [tg] Document ANSI default keybindings (↑↓←→ Home End Del
      PgUp PgDn) in the mksh(1) manual page as well
    - [tg] Optimise internal UTF-8 handling code for size and reusability
    - [tg] Incompatible change: ${foo:1:2} and ${#foo} now operate on
      characters, not on bytes. Characters are octets (set +U) or
      (utf8-mode) MirOS OPTU-8 multibyte characters (set -U)
    - [tg] Improve regression tests relating to ${foo:1:2} and ${#foo} and
      let wc=1#x and utf8-mode
    - [tg] Use per-file copyright notices, move global text to manpage
    - [tg] Expose new MKSH_MIDNIGHTBSD01ASH_COMPAT ifdef; change it to only
      trigger if FPOSIX (or MKSH_BINSHREDUCED and /bin/sh)
    - [tg] Remove already-dead “#if 0” style debugging code
    - [tg] Change some code into a more portable fashion, optimise
    - [tg] Allow [[ $foo ]] (ksh93 extension) mentioned by pgas
    - [tg] Clean up mksh and the contributed arc4random.c for some
      conversion, enum and other warnings for gcc-snapshot trunk r147610
    - [tg] Ensure no function uses more than 768 bytes of stack either
    - [tg, wbx] Add extension to make “!string” lines work like in GNU bash
  * debian/rules, debian/copyright: adjust to upstream changes,
    provide separate copyright file for Debian
  * Remove package-uses-deprecated-debhelper-compat-version
    lintian override to show up in statistics, we want to
    retain the old debhelper version to facilitate backports

mksh (37.3-2) unstable; urgency=low

  * Provide a way to not use dietlibc for /bin/mksh-static
    on certain architectures; use it for s390 (Closes: #523088)
  * debian/control: run ispell over it

mksh (37.3-1) unstable; urgency=low

  * New upstream version R37c; complete ChangeLog:
    - [tg] Improve præprocessor detection/work in Build.sh
    - [tg] Decouple MKSH_CONSERVATIVE_FDS from MKSH_SMALL
    - [tg] Enable MKSH...

Read more...

Changed in mksh (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.