- 1 Fedora Weekly News Issue 161
- 1.1 Announcements
- 1.2 Special Report: Fonts SIG
- 1.3 Planet Fedora
- 1.4 Developments
- 1.5 Translation
- 1.6 Infrastructure
- 1.7 Artwork
- 1.8 Security Advisories
- 1.9 Virtualization
- 1.9.1 Enterprise Management Tools List
- 1.9.2 Fedora Virtualization List
- 1.9.3 Fedora Xen List
- 1.9.4 Libvirt List
Fedora Weekly News Issue 161
Welcome to Fedora Weekly News Issue 161 for the week ending February 1, 2009.
This week's FWN goodness offers a very special update from the Fonts SIG to bring us up to date on their work leading up to Fedora 11. You may also notice that we are tweaking the wiki formatting to take advantage of the cite module and other features in MediaWiki, and employing User: references for links to named Fedora folk. We'd love to hear your feedback on these changes. Also in this week's intrepid issue details on the upcoming Fedora monthly public meeting, updates on upcoming events with a Fedora presence, and news updates from around the Fedora Planet. In Developments, details on a slight delay to F11 Alpha and Electronic Automation Tools updates. Translation news brings updates from the latest FLP meeting and website translation updates, along with more Fedora 11 plans. A couple brief updates from the Infrastructure Team, including discussion of possible automation of fedora hosted requests. The Artwork beat paints a lovely picture with details on Fedora 11 visual details, and we're brought up to date with the latest security advisories for Fedora 9 and 10. The issue completes with updates from the various virtualization projects, including details on a new libvirt and virt-manager, as well as meaty updates on the Fedora Xen list. Enjoy, everyone!
We are currently looking for a new writer to cover the Fedora Ambassadors for FWN. The work chiefly involves summarizing each's week's traffic on the Fedora Ambassadors' list, and is likely a time committment of perhaps one hour per week.
If you are interested in contributing to Fedora Weekly News, please see our 'join' page. We welcome reader feedback: email@example.com
In this section, we cover announcements from the Fedora Project.
Contributing Writer: Max Spevack
Fedora Board Meeting
- Join #fedora-board-meeting to see the Board's conversation. This channel is read-only for non-Board members.
- Join #fedora-board-public to discuss topics and post questions. This channel is read/write for everyone.
Tom Callaway announced  that "after talking with Red Hat Legal about how we should be handling trademarks in package summaries and descriptions, we came to the conclusion that it would be far easier (and less risky for Red Hat) if we did not use "(TM)" or "(R)" notations at all."
Fedora 11 Alpha is likely to be delayed for a few days (originally scheduled for February 3) due to a GUI checkbox bug in Anaconda and a problem with nfs-utils that prevented installs over NFS.
Fedora will have a presence at several events in the next few weeks. Feel free to join us,
February 6 - 8: Free and Open Source Developers European Meeting (FOSDEM)
Also, people are encouraged to register for Fedora or JBoss.org related speaking slots at LinuxTag 2009.
Contributing Writer: Nicolas Mailhot
Special Report: Fonts SIG
Since Fedora 11 Alpha is quickly approaching, here is a much-delayed edition of the fonts SIG irregular status report. You may recall FWN covered the font surveys in FWN #153. The following special report is largely in addition to that previous report.
I should probably have done one for Fedora 10 release, but (silly me) expected then that the new font packaging guidelines would be adopted quickly. After all, they only reworded existing rules and added material already presented and discussed on the fonts and devel lists.
Of course various instances decided to celebrate F10 by taking a break, then there was some bike-shedding, then we had the Christmas vacations, then FUDCON and more bike-shedding. Live and learn. At least after being hammered to death the result is clear and clean.
Anyway, to the report.
New fonts packaging guidelines
After much anguish and unexpected developments FPC and FESCO approved the complete set of fonts packaging changes that we had submitted.
The end result is:
1) a completed and clarified policy page
3) a helper package with rpm macros, documentation, plus fontconfig and spec templates
Distribution-wide font auditing and repackaging
Some innocent repoqueries revealed a distressing number of source packages (>130) that made us ship fonts while completely ignoring our previous fonts packaging guidelines and existing licensing rules. So applying new font guidelines twists quickly turned into distribution-wide operation.
1) Its advancement is now tracked
2) A (long) FAQ was published to help packagers with no fonts experience
3) To make sure documentation, QA and other groups are aware and help implement the changes they've been proposed as a Fedora 11 feature
Our wishlist stood at 56 entries for last report. It has now reached 76 entries . The current fonts packagers are clearly unable to cope with Fedora demands, fresh blood is needed before it moves into 100+ numbers.
At the same time the respected lwn.net is running a front page article listing more indispensable free or open fonts, some of them being neither in Fedora nor in our wishlist yet.
Volunteers to package those or at least add them to our wishlist are welcome. The free and open font landscape is really moving now, and the quality and breadth of its font offerings is now a distribution differentiator.
At this time there are no un-reviewed font packages in Fedora bugzilla. However, several reviews have been open for quite a long time with their requesters not acting on review comments.
Please do respond to review comments. Reviewing packages is tedious ungrateful work and getting no response after one is demotivating.
Ignoring renamings ctan-musixtex-fonts, dustin-dustismo-roman-fonts,dustin-dustismo-sans-fonts, hanazono-fonts, google-droid-sans-fonts, google-droid-sans-mono-font, google-droid-serif-fonts, serafettin-cartoon-fonts, and unikurd-web-font are now available in the repository.
The most user-visible of those are probably the Droid fonts, but Dustimo had been waited for a long time.
Several other fonts previously hidden deep inside apps have now been exposed as part of the ongoing F11 auditing and repackaging. The complete set of changes is documented as usual
Several new packagers worked on those and on other packages not pushed yet and I want to thank them publicly for their contribution to a better Fedora.
Web font surveys
Fedora 10 shipped with an openjdk plugin that should be complete enough to run web font surveys. There is no reason left for Fedora users not to participate in them, and help web designers select fonts that work well with Fedora browsers. Please take the time to contribute to these
Better fonts whiteboard
The desktop team has added a whiteboard page to the wiki to help identify the software changes needed to improve Fedora fonts and text handling.
Please contribute comments and complements to this page to help make Fedora better.
Rumors on IRC are that the feature is advancing fast. Hopefully we'll have finished cleaning up our font packages before they need to be rebuild to add auto-install metadata. Automating this operation requires clean packages free of historic cruft.
And that's all for this issue, thank you for reading it to its end.
In this section, we cover the highlights of Planet Fedora - an aggregation of blogs from Fedora contributors worldwide.
Contributing Writer: Adam Batkin
Chris Ball posted a video and brief description of some patches to the
Vino VNC server to support the multiple pointers on X over VNC, so there will be no more fighting over the mouse cursor when connecting into another computer.
Matthew Garrett discussed some of the issues associated with power management under Linux and how "to make it sufficiently useful and inobtrusive that manual configuration is almost never required."
Gary Benson shared,,,, a series of articles that he wrote about the internals of
Shark (projects which extend
OpenJDK to let it run on new platforms without additional and often cumbersome low-level CPU-specific support).
Martin Sourada developed a set of scripts "which are intended to ease the life of echo-icon artist - they create new icons from template, are able to add icons/symlinks to echo icon theme and add manage their local git repository."
Jonathan Roberts posted, some thoughts about how some of the upcoming major
Gnome 3.0 changes might be able to handle things like locating information ("Ubiquitous Search") and saving information automatically.
Adam Williamson expressed some frustrations with the fact that the drivers for the Intel GMA 500 (Poulsbo) graphics chip (most notably used in the Dell Mini 12) don't seem to compile cleanly or integrate well with anything, and in fact only work on Ubuntu Netbook Remix.
In this section the people, personalities and debates on the @fedora-devel mailing list are summarized.
Contributing Writer: Oisin Feeley
Fedora 11 Alpha May Be Delayed
Jesse Keating reported that the
Fedora 11 Alpha release date might slip due to some
anaconda bugs which manifested themselves late in his testing on some architectures. A later post suggested that installation using
NFS was broken and that "[t]his likely means a slip, perhaps only a two day slip, of Alpha." More info to come either later this weekend or early next week. A bugzilla comment from Warren Togami on a side-effect of trying to fix this problem by reverting to an earlier
nfs-utils version warned "People should be aware that NFS as a server in F11 Alpha is broken. That is all." As of going to press on 2009-02-01 there was no further information available.
GCC: Default ISA Flags and Glibc
Jakub Jelinek asked whether the minimum CPU which would run code compiled by Fedora 11's
GCC should be re-evaluated. A follow-on question was whether the minimum supported kernel version in
glibc could be bumped to
2.6.29. Jakub held out the promise of potentially increased speed and decreased shared library sizes.
A problem raised by Kevin Kofler was that
mock builds would no longer be able to run on older
Fedora releases and that some VPSs would not be able to upgrade at all. Gerd Hoffman agreed: "We just can't make the huge jump from .9 to .29. We have to do it smaller steps, considering kernel versions at least in supported Fedora versions, maybe also latest RHEL."
See this same FWN#161 "Dropping Support for i586 Architecture" for a related discussion.
RPM Packagers: Too Many Unowned Directories
Colin Walters remembered discussions which had suggested that if
RPM were able to reference count directories there could be a technological fix. Separately Richard W.M. Jones made a similar argument. Panu Matilainen seemed willing to move this task to the top of his queue if it were sufficiently important.
Lack of Update Information
A can of worms was opened by Rahul Sundaram when he noticed that the update information provided by package maintainers was often unhelpful. He cited generic messages of the form "Update foo to upstream x.y.z" as a common problem and wondered if guidelines could improve the situation.
Following some questions Rahul expanded on the problem pointing out that package maintainers had the knowledge to tersely explain what upstream changes implied for ordinary users. He emphasized that he was concerned with the "description that is part of bodhi update and not the changelog which can be very brief."
Richard W.M. Jones wondered if
rpm could be altered to allow it to reference upstream changelogs which could be pulled out by other tools. Panu Matilainen averred that while rpm was alterable Richard's proposed change would just dump the information into the rpm payload and it would thus not be available to users until after they had installed it. Further brainstorming seemed to run into various practical dead ends.
Subsequently Rahul published a draft guideline which fanned the flames back to life. Thorsten Leemhuis asked "Don't we have way [too] many guidelines and policies already? [...] Note that I don't disagree with the text that was proposed. My 2 cent: Put it as text into the wiki somewhere, write "best practices" on top of it (avoid the words "rules" and "guidelines") and add a link to the bodhi UI ("best practices for filling this box with information")." Rahul appeared to agree that this was the best course for the present and deferred to FESCo for the ultimate decision.
Electronic Design Automation Content Without Tools ?
Chitlesh Goorah redirected a debate on Electronic Design Automation (EDA) tools from FESCo to @fedora-devel. Chitlesh is the prime mover behind the
Fedora Electronic Lab Spin. He was concerned that FESCo had decided that packages in the OVM format were barred from Fedora on the grounds that there was no FLOSS tool which could use them although they were licensed acceptably.
Jef Spaleta explained that there were subtle problems in the discussion as "[OVM] is code of some sort. The problem is we don't have a compiler or interpreter that can process the instructions. In the context of Fedora its code that can't be used." Kevin Kofler supplied the appropriate guideline.
Kevin Fenzi expressed appreciation for Chitlesh's work on the Fedora Electronics Lab and asked if there was any use for OVM besides hooking it up with a non-Free simulator? Manuel Wolfshant argued that OVM "is interesting for a subset of the people interested in EDA" and that it should be provided for them. Horst von Brand disliked the idea of mirrors carrying such a little-used package around and suggested that Manuel could just set up his own repository.
Dropping Support for i586 Architecture ?
Following FESCo discussions Bill Nottingham reported that the supported architecture list was going to change. Important changes include building binaries only for i686 and above. There are concerns that older thin clients based on i586 hardware and the AMD Geode-based XO laptops may then be unsupported or unstable. Bill characterized the discussions as a follow-up to the compiler flag discussions (see this same FWN#161"GCC: Default ISA Flags and Glibc") and summarized the main points as:
- install x86.64 kernel on 32-bit OS where appropriate - install PAE kernel on other 32-bit OS installs where appropriate - build only i686 and above for Fedora
Dominik 'Rathann' Mierzejewski predicted "[t]here's going to be some screaming from VIA C3 and AMD K6 users about this." His suggestion was true during an older similar discussion (see FWN#93) in 2007 which concerned plans to drop shipping an i586 kernel. Suggested attempts to compensate by making the i686 kernel bootable on i586 architectures were thwarted as rpm balked at installing a kernel which violated its architecture check. Alan Cox was one of the strongest objectors to the possibility of thus losing support for i586 as he had many thin clients using that architecture. Doubt was cast during that thread as to whether the smolt statistics were believable. However, Alan has recently become an Intel employee (following other ex-Red Hat luminaries David Woodhouse and Arjan van de Ven) and did not contribute to the thread. The
smolt statistics listed on the feature page suggest that there are only 130 i586 users.
The suggestion seemed generally popular but Dominik `Rathann' Mierzejewski wished to retain the blinking cursor and expressed a desire for more information on the methodology which Matthew had used. Bill Nottingham reminded that it would still be possible to turn the cursor back on from this new default. Matthew provided some of the requested details.
This section covers the news surrounding the Fedora Translation (L10n) Project.
Contributing Writer: Runa Bhattacharjee
FLP Meeting held on 27th January 2009
Website Translation Process Update
Ricky Zhou reminded the list about the requirement of notification to be sent to the fedora-websites team for the inclusion of translations for a new language. It is to be noted, that for new languages the relevant language code is also required to be added to the LINGUAS file. However, the notification sent to the fedora-websites team ensures that the apache configuration is modified to activate the translations for the new language.
System-Config-Printer branch 1.1.x to be used for Fedora 11
Tim Waugh announced that the branch 1.1.x of System-Config-Printer is to be used for submitting translations. This branch has been activated for submission on translate.fedoraproject.org by Dimitris Glezos. Additionally, the obsolete branches for System-Config-Printer have been removed from the submission interface.
Fedora 11 Release Schedule Plans
John Poelstra has drafted the Documentation and Translation Schedules for the upcoming Fedora 11 Release. The Translation Schedule has been based upon the Documentation Schedule. FLSCo member Noriko Mizumoto provided feedback from the FLP about the Translation Schedule. Earlier during the week, Dimitris Glezos attended the Fedora 11 Alpha Readiness Meeting.
Anaconda bug due to UTF characters
L10n Infrastructure Roadmap Proposal
In response to the earlier discussions about the problems faced by the L10n infrastructure, Asgeir Frimannsson sent in a proposal for a review roadmap of the current infrastructure. He explained that based upon the outcome of this discussion, further plans can be determined about restructuring the infrastructure.
New Member in FLP
Daniele joined the Italian translation team in the FLP this week.
This section contains the discussion happening on the fedora-infrastructure-list
Contributing Writer: Huzaifa Sidhpurwala
Automating hosted projects?
Paul W. Frields asked on the @fedora-infrastructure-list if it was possible to automate the creation of projects on the fedorahosted.org site. Since some potential contributors may need more immediate results and not wait for an admin to create the project.
CSI (Security Policy)
In this section, we cover the Fedora Artwork Project.
Contributing Writer: Nicu Buculei
Fedora 11 Visual Concepts
With the first milestone for the Fedora 11 visual concept closing on February 1st, Máirín Duffy posted on @fedora-art a first mockup "I'm thinking maybe somewhere more mountainous with some mists, and with some vines/plants growing up the columns with some sunbeams on them", which was warmly received by the rest of the team, which opted still for a more lively image, as Luya Tshimbalanga put it "I think of desolation when I see that image with a ruins from old Greek temple (tend to get bored so easily) and a very dry land. That picture would mean Fedora after collapse. Greece is famous with its olive field so the land needs to be green. I see mountain that look like Olympia and the sky appears to be a god/goddess land. That image needs to be live, not dead."
Following this "lively" concept, Konstantinos Antonakoglou came with a photographic collage "I just want to point out the main concept, which is the combination of ancient Greece and nature (water, mountains with a lot of green)" and Bill Nottingham advanced the idea of using photographs "is it possible/should we look for a full photo (appropriately licensed) that can be used?"
At the same time, Samuele Storari tried a different concept in the same Grecian spirit "For this theme I try to work on the Spartan 'Leonidas' idea, I work on the Acient Helm so we don't have discussion on violence or other not connected idea."
In this section, we cover Security Advisories from fedora-package-announce.
Contributing Writer: David Nalley
Fedora 10 Security Advisories
Fedora 9 Security Advisories
In this section, we cover discussion on the @et-mgmnt-tools-list, @fedora-virt, @fedora-xen-list, and @libvirt-list of Fedora virtualization technologies.
Contributing Writer: Dale Bewley
Enterprise Management Tools List
This section contains the discussion happening on the et-mgmt-tools list
New Release virt-manager 0.6.1
Cole Robinson announced a new
release, version 0.6.1.
Virtual Machine Manager provides a graphical tool for administering virtual
QEmu. Start, stop, add or remove virtual devices,
connect to a graphical or serial console, and see resource usage statistics
for existing VMs on local or remote machines. Uses
libvirt as the backend
- VM disk and network stats reporting (Guido Gunther)
- VM Migration support (Shigeki Sakamoto)
- Support for adding sound devices to an existing VM
- Enumerate host devices attached to an existing VM
- Allow specifying a device model when adding a network device to an existing VM
- Combine the serial console view with the VM Details window
- Allow connection to multiple VM serial consoles
- Bug fixes and many minor improvements.
New Release virtinst 0.4.1
Cole Robinson announced a new
virtinst release, version 0.4.1.
is a module that helps build and install
libvirt based virtual
machines. Currently supports
Xen virtual machines. Package
includes several command line utilities, including
and install new VMs) and
virt-clone (clone an existing virtual machine).
- Add virt-image -> vmx support to virt-convert, replacing virt-pack (Joey Boggs)
- Add disk checksum support to virt-image (Joey Boggs)
- Enhanced URL install support: Debian Xen paravirt, Ubuntu kernel and boot.iso, Mandriva kernel, and Solaris Xen Paravirt (Guido Gunther, John Levon, Cole Robinson)
- Expanded test suite
- Numerous bug fixes, cleanups, and minor improvements
Fedora Virtualization List
This section contains the discussion happening on the fedora-virt list.
Fedora Virt Status Update
- F11 Alpha Blockers - Workaround found for "unsynchronized TSC" issue which caused guests on certain hosts to hang or crash.
- New release of
coming very soon. It's out now.
- The KVM PCI Device Assignment feature for F11 "received a very positive reception from FESCo", and "basic device assignment seems to be working."
- "Related to PCI device assignment are Intel VT-d issues that have been reported recently. Basically, on some machines ... VT-d support is causing serious [problems] and, in one case, data loss."
- New F11 feature page created for
sVirt. "sVirt integrates SELinux with the Fedora virtualization stack".
- New patches from Jeremy Fitzhardinge reduce the overhead of enabling paravirt_ops on bare-metal by 75% in testing.
- Bug count climbed from 186 to 191.
Fedora Xen List
This section contains the discussion happening on the fedora-xen list.
Xen Users Future on Fedora
Evan Lavelle might have struck a nerve when wondering if those who have invested years in
on Fedora have been "shafted". "
Xen isn't flavour of the month around here, but I assumed there were good reasons for that. Now, rather belatedly, I've found" that Red Hat acquired Qumranet and
. (FWN #143)
Neil Thompson thought not. "Shafted?...I don't think so. We're just in a blip at the moment." Neil pointed out that "RHEL5, which has a number of years left, includes xen - I don't think
Red Hat are going to mess their corporate clients around by removing it. The problem with F8 is that the
people could no longer drag an obsolete (2.6.21)
kernel around just for xen, and decided to concentrate on helping get it into the mainstream
kernel. This has taken longer than expected."
Jan ONDREJ was also concerned that, "
KVM is still not a replacement for paravirtualized machines and I think fully virtualized
KVM will be slower like a paravirtualized XEN."
Richard W.M. Jones countered
KVM is a great replacement for
Xen. It's much easier to use for a start -- no more rebooting into a completely separate
kernel hypervisor. As long as you have the
virtio drivers in the guest, which is the default for all new Linux distros, performance is roughly the same."
Apropos to the topic, but on another list, Mark McLoughlin explained
"Para-virtualization isn't always better.
KVM uses full virtualization, meaning that it uses the processor's support for virtualization. This means you can run an unmodified guest OS on
If you can modify the guest OS, then
KVM does allow you to use paravirtualization for some performance sensitive operations - so e.g. we've got
pvclock, pv MMU and
Don't get tied up in marketing terminology - try both and decide for yourself which works best for you."
Support for dom0 is targeted for
kernel 2.6.29, but the changelogs for the release candidates don't seem to indicate completion yet.
Gerd Hoffmann confirmed that "...most of the dom0 stuff missed the boat. Some prelimary stuff might be in though..." adding that "The pv_ops/dom0 kernel has some not-yet debugged storage issues (disk controller either fails after a while or doesn't work at all), which is the major stumbling block right now."
Daniel P. Berrange, of Red Hat Engineering, detailed the history of
Xen on Fedora and explained "while it is definitely unfortunate that we don't have a
Xen Dom0 kernel in Fedora 9/10, we are *not* trying to shaft anyone & will re-introduce
Xen Dom0 kernels to Fedora when they become available." ... "It [is] still hard to say just when these will be accepted upstream, but there is a semi-reasonable [chance] we'll be able to turn
Xen Dom0 back on in Fedora 11 kernels."
- http://www.kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.29-rc2 http://www.kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.29-rc1
Migrating Xen DomU to KVM Guest
Talk of the future of
Xen on Fedora led to talk of migrating
KVM. Fortunately, migrating a virtual machine from
KVM is straight forward. Well, more or less.
Richard W.M. Jones explained
"Install a recent Linux kernel in the guest, adjust the [libvirt] configuration file, and reboot."
will enable running "the
Xen PV guest unchanged (ie. without installing a new guest kernel)."
- Ensure the guest
is new enough to support
virtionetwork drivers (
- change the domain <type>, <os>, and <emulator> fields - '
virsh edit <domname>'
- "tell the host to give the guest a
virtionetwork card - change the NIC
Richard finally noted "For newly installed guests, recent anaconda just works everything out for you and puts the correct drivers into
initrd." Mark McLoughlin provided the
mkinitrd command to build the appropriate
initrd in existing guests: '
mkinitrd --with virtio_pci --with virtio_blk -f /boot/initrd-$(kernelversion) $(kernelversion)' "You only need to do this once. After that, if a new kernel is installed while you're booted off a virtio disk, then mkinitrd will include the modules automatically."
Emre Erenoglu noted
"You will also need to specify
/dev/vdX on the
kernel root= line and make sure your init script inside your
initrd triggers the virtio drivers at boot so that the
/dev/vdX are created."
Mark McLoughlin added a caveat. "the F9 x86_64 xen kernel didn't have support for running 32 bit binaries like grub, so the bootloader would never have been installed into the MBR. That works fine for pygrub, but not with KVM's real BIOS."
Also see this guide to converting to
This section contains the discussion happening on the libvir-list.
New Release libvirt 0.6.0
Libvirt is a
C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes).
- thread safety of the API and event handling (Daniel Berrange)
- allow QEmu domains to survive daemon restart (Guido Gunther)
- extended logging capabilities
- support copy-on-write storage volumes (Daniel Berrange)
- support of storage cache control options for QEmu/KVM (Daniel Berrange)
- driver infrastructure and locking (Daniel Berrange)
- Test driver infrastructure (Daniel Berrange)
- parallelism in the daemon and associated config (Daniel Berrange)
- virsh help cleanups (Jim Meyering)
- logrotate daemon logs (Guido Gunther)
- more regression tests (Jim Meyering)
- QEmu SDL graphics (Itamar Heim)
- add --version flag to daemon (Dave Allan)
- memory consumption cleanup (Dave Allan)
- QEmu pid file and XML states for daemon restart (Guido Gunther)
- gnulib updates (Jim Meyering and Dan Berrange)
- PCI passthrough for KVM (Jason Krieg)
- generic internal thread API (Daniel Berrange)
- RHEL-5 specific Xen configure option and code (Markus Armbruster)
- save domain state as string in status file (Guido Gunther)
- add locking to all API entry points (Daniel Berrange)
- new ref counting APIs (Daniel Berrange)
- IP address for Xen bridges (John Levon)
- driver format for disk file types (Daniel Berrange)
- improve QEmu/KVM tun/tap performances (Mark McLoughlin)
- enable floppies for Xen fully virt (John Levon)
- support VNC password settings for QEmu/KVM (Daniel Berrange)
- qemu driver version reporting (Daniel Berrange)
There were also dozens of cleanups, documentation enhancements, portability and bug fixes.