Please merge mksh 39.3-1 (universe) from Debian unstable (main)

Bug #529559 reported by Thorsten Glaser
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mksh (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: mksh

Binary package hint: mksh

I just uploaded a new version of mksh to Debian sid, and would like to request
that it be merged into *buntu universe. Debdiff against the sid version will be
attached. I will have actually tested this in a lucid chroot, updated today.

As I could not test running it as /bin/sh I’m continuing to deactivate this
facility (and document it in README.Debian this time).

LP: #355883 is fixed in this release, all four of {Ctrl,Alt}-Cur{Left,Right} work.

LP: #375604 does no longer need an *buntu patch, because I put some
workaround code into the Debian package already, taken from the OpenSuSE
Build Service package and tested there.

LP: #381332 had no activity, thus the workaround had to stay.

Related branches

Revision history for this message
Thorsten Glaser (mirabilos) wrote :
Download full text (11.3 KiB)

Now, debdiff attached, *.deb built and tested.

Changelog since last *buntu version:

mksh (39.3-1ubuntu1) lucid; urgency=low

  * Merge from Debian unstable. (Closes LP: #529559)
    New upstream version. (Closes LP: #355883)
    This integrates a workaround for a gcc bug. (cf. LP: #375604)
    Remaining Ubuntu changes:
    - debian/control, debian/rules: Exclude dietlibc on powerpc/ppc64
      and sparc (cf. LP: #381332)
    - debian/README.Debian, debian/mksh.postinst: Hardcode installing
      mksh as /bin/sh to false (cf. LP: #348872) but retain debconf
      infrastructure so that, if set to true in old installations, it
      will correctly be removed on upgrade

 -- Thorsten Glaser <email address hidden> Sun, 28 Feb 2010 17:32:01 +0000

mksh (39.3-1) unstable; urgency=low

  * New upstream version R39c; shortened ChangeLog since R39:
    - [tg] Build system, code, docs and testsuite cleanup, also style(9)
    - [tg] Parse and evaluate ${parameter op word} correctly
    - [tg] Fix possible SIGSEGV in interactive mode bind builtin due to
      mis-optimisation of gcc combined with a bogus prototype;
      discovered by Grml.org's Frank Terbeck (ft), thanks!
    - [tg] Clean up some more strict *roff or compiler warnings: dashes,
      undefined macros; casting errors (constness, signedness, type
      width/class) and catch possibly unaligned pointer dereferences
      early; remove code/rodata redundancies, plug memory leaks
    - [smultron] Tweak the manual page: point out the word “colour”
    - [tg] Optimise dot.mkshrc DJB’s CDB hash implementations; add Bob
      Jenkins’ one-at-a-time hash (standard and leading-bit
      initialised); fix signedness in expressions; let the hashes use
      stdin if "$*" is empty, like Lb64{en,de}code; use
      “[[ -o utf8-mode ]]” ipv “[[ $- = *U* ]]”
    - [tg] Build.sh portability fixes: missing prerequisite headers;
      ensure $CC is never called without $CFLAGS; fix test.sh, et al.
    - [tg] Optimise internal variable representation; use one-at-a-time
      hash; cache hash values for faster resizing at zero memory cost;
      clean up hash table (keytab) code; switch hash table collision
      resolution algorithm to Python’s; prepare for later changes
    - [tg] Fix type errors in the source code (int → bool, size_t,
      mksh_uari_t)
    - [tg] Fix “${foo:bar:$baz}” not working (missing substitute() call)
    - [tg] Implement “typeset ±a” as nop
    - [tg] Support ksh93-like “${!foo[@]}” listing the keys (indicēs) of
      all set array elements
    - [tg] Support bash/ksh93-like “array=([key]=value …)” and
      (additionally) “set ±A array -- [key]=value …” to directly
      specify indicēs to use
    - [tg] Document the optional, unsupported, printf(1) builtin in TFM
    - [tg] Replace realpath(3) dependency and internally used
      get_phys_path() pdksh code with own implementation; always offer
      the realpath builtin
    - [tg] Implement nameref='typeset -n' (bounded variables) like AT&T
      ksh93 but with mksh-style nested/dynamic scoping and on-use
      resolving; they cannot currently be stored in an array though
    - [tg] Add “chdir” builtin doing the same as “cd” special bu...

tags: added: debdiff merge motu patch
Revision history for this message
Benjamin Drung (bdrung) wrote :

We are past feature freeze. Please follow the feature freeze exception process [1] if you want to have the package in lucid. Resubscribe ubuntu-universe-sponsors once you have the exception granted.

[1] https://wiki.ubuntu.com/FreezeExceptionProcess

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

Okay, let’s go for it.

I’m upstream, and R39c (39.3) is a major bugfix release over R39 (39.1), especially
with regards to the shell scripting language, but also usability and errors.

As for testing, the build log contains the results of the testsuite run, which is quite
excessive. I’ve also tested it interactively.

First of all, though, I’m attaching the upstream changelog.

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

Hrm. Since cowbuilder --create in my lucid chroot does not work (see below), find attached
a regular build and install log. Note that the package first builds mksh (dynamically linked
against eglibc) then mksh-static (with dietlibc), hence twice the (similar) output.

I: Base system installed successfully.
I: debootstrap finished
I: copying local configuration
I: Installing apt-lines
I: Refreshing the base.tgz
I: upgrading packages
I: mounting /proc filesystem
I: mounting /dev/pts filesystem
I: installing dummy policy-rc.d
Get:1 http://archive.ubuntu.com lucid Release.gpg [189B]
Hit http://archive.ubuntu.com lucid Release
Hit http://archive.ubuntu.com lucid/main Packages
Fetched 189B in 0s (1154B/s)
Reading package lists...
I: Obtaining the cached apt archive contents
Reading package lists...
Building dependency tree...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists...
Building dependency tree...
apt is already the newest version.
Package cowdancer is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package cowdancer has no installation candidate
I: unmounting dev/pts filesystem
I: unmounting proc filesystem
pbuilder create failed
  forking: rm -rf /var/cache/pbuilder/base.cow

Revision history for this message
Benjamin Drung (bdrung) wrote :

Are all changes only bugfixes or are new features implemented?

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

Both.

Some of the bugfixes *are* new features.

Some are for forwards-compatibility to future mksh versions.

Genuine new features:
• nameref / typeset -n (bound variables), similar to ksh93
• support for $'…' like most other shells (important)
• support for taking the ascii code of a char in arithmetic expressions, like ksh93
• new [[ -o ?foo ]] test, like ksh93
• fix LP: #355883

The new features, however, are not so much an issue as the bugfixes,
which might require changes to existing (non-conformant) scripts.
These are documented on http://www.mirbsd.org/mksh.htm#c39c

These fixes, however, are very important.

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

Oops… I suppose I should subscribe ubuntu-release not motu-release here, too… sorry

Revision history for this message
StefanPotyra (sistpoty) wrote :

ACK, FFe granted, please go ahead.

Changed in mksh (Ubuntu):
status: New → Confirmed
Revision history for this message
StefanPotyra (sistpoty) wrote :

uploading, thanks! (I've also adjusted the maintainer field as per policy).

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (11.1 KiB)

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

---------------
mksh (39.3-1ubuntu1) lucid; urgency=low

  * Merge from Debian unstable. (Closes LP: #529559)
    New upstream version. (Closes LP: #355883)
    This integrates a workaround for a gcc bug. (cf. LP: #375604)
    Remaining Ubuntu changes:
    - debian/control, debian/rules: Exclude dietlibc on powerpc/ppc64
      and sparc (cf. LP: #381332)
    - debian/README.Debian, debian/mksh.postinst: Hardcode installing
      mksh as /bin/sh to false (cf. LP: #348872) but retain debconf
      infrastructure so that, if set to true in old installations, it
      will correctly be removed on upgrade

mksh (39.3-1) unstable; urgency=low

  * New upstream version R39c; shortened ChangeLog since R39:
    - [tg] Build system, code, docs and testsuite cleanup, also style(9)
    - [tg] Parse and evaluate ${parameter op word} correctly
    - [tg] Fix possible SIGSEGV in interactive mode bind builtin due to
      mis-optimisation of gcc combined with a bogus prototype;
      discovered by Grml.org's Frank Terbeck (ft), thanks!
    - [tg] Clean up some more strict *roff or compiler warnings: dashes,
      undefined macros; casting errors (constness, signedness, type
      width/class) and catch possibly unaligned pointer dereferences
      early; remove code/rodata redundancies, plug memory leaks
    - [smultron] Tweak the manual page: point out the word “colour”
    - [tg] Optimise dot.mkshrc DJB’s CDB hash implementations; add Bob
      Jenkins’ one-at-a-time hash (standard and leading-bit
      initialised); fix signedness in expressions; let the hashes use
      stdin if "$*" is empty, like Lb64{en,de}code; use
      “[[ -o utf8-mode ]]” ipv “[[ $- = *U* ]]”
    - [tg] Build.sh portability fixes: missing prerequisite headers;
      ensure $CC is never called without $CFLAGS; fix test.sh, et al.
    - [tg] Optimise internal variable representation; use one-at-a-time
      hash; cache hash values for faster resizing at zero memory cost;
      clean up hash table (keytab) code; switch hash table collision
      resolution algorithm to Python’s; prepare for later changes
    - [tg] Fix type errors in the source code (int → bool, size_t,
      mksh_uari_t)
    - [tg] Fix “${foo:bar:$baz}” not working (missing substitute() call)
    - [tg] Implement “typeset ±a” as nop
    - [tg] Support ksh93-like “${!foo[@]}” listing the keys (indicēs) of
      all set array elements
    - [tg] Support bash/ksh93-like “array=([key]=value …)” and
      (additionally) “set ±A array -- [key]=value …” to directly
      specify indicēs to use
    - [tg] Document the optional, unsupported, printf(1) builtin in TFM
    - [tg] Replace realpath(3) dependency and internally used
      get_phys_path() pdksh code with own implementation; always offer
      the realpath builtin
    - [tg] Implement nameref='typeset -n' (bounded variables) like AT&T
      ksh93 but with mksh-style nested/dynamic scoping and on-use
      resolving; they cannot currently be stored in an array though
    - [tg] Add “chdir” builtin doing the same as “cd” special builtin
    - [tg, David Korn] Document more differences between mksh (and
      pdks...

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.