This is a bugfix release.
* Entirely new icon set, for palettes, gorm, gmodel, nib and the
application.
* Replaced some of the images for the inspectors.
* Changed formatting in some of the inspectors so that they are
easier to navigate.
* Updated version number to match GNOME version.
Changes 2.12.2:
* init: Fix an out-of-bounds error.
* Build from cvs: Look for gmmproc in generic libdir
directory, fixing the build on some 64-bit systems.
* Glade::get_widget(): Show the name of not-found
widgets on the console, because libglade does not seem to
do this anymore (I think it did once.)
* Example: Delete the dialog when we are finished with it.
* Windows build fixes.
* Windows Build:
- Define GLIBMM_DLL when building with mingw32 or cygwin,
because it is needed by gtkmm.
* OptionGroup: Allow default values, by not initializing them all.
* Slight code size reduction by marking private functions as static.
Makedepf90 is a program for automatic creation of Makefile dependency
lists for Fortran source code. Makedepf90 supports MODULE:s,
INCLUDE:s, cpp #include:s, f90ppr $include:s and coco ??include:s and
set-files.
msgfmt, then it should set the following in the package Makefile:
USE_TOOLS+= msgfmt
To deal with message files that use the "msgid_plural" statement,
which isn't supported in NetBSD<=3.x and also in gettext<=0.10.35, we
determine if the built-in "msgfmt" is sufficiently new enough to
understand "msgid_plural". If it isn't, then we use the msgfmt.sh
script to transform the msgid_plural statements to an equivalent
construct that's understood by older msgfmt tools.
The msgfmt.sh script is a straightforward translation of the original
perl script msgfmt.pl script by Julio M. Merino Vidal into shell and
awk, which are more lightweight dependencies than perl.
We remove the USE_MSGFMT_PLURALS bits in gettext-lib/builtin.mk as they
are made obsolete by the new code in mk/tools/msgfmt.mk.
BUILD_USE_MSGFMT is still supported but will be removed in a separate
commit.
vendor-specific locations for scripts installed by Perl modules. By
default, site scripts go into lib/perl5/site_perl/bin and vendor scripts
go into lib/perl5/vendor_perl/bin. This matches the behavior of the
ExtUtils::MakeMaker that is in pkgsrc perl (which has been similarly
patched). This package now doesn't overwrite the "instmodsh" script
installed by the perl package.
Bump the PKGREVISION to 1.
Sat Apr 8 19:33:35 PDT 2006
0.26 release. Major enhancements and internal rewrites.
Please read these notes carefully, as significant changes are
described. In particular, you _cannot_ upgrade to 0.26
without some attention to the migration, especially if you are
working on a project with other people. See UPGRADE for
details of this procedure.
The changes are large enough that there were 3 pre-releases of
this code; the changes that occurred in each can be seen
below. However, for the convenience of those following
releases, all changes since 0.25 will be summarized in these
release notes. There is no need to read the pre-release notes
individually.
Major changes since 0.25:
- The most user-visible change is that the default name of the
monotone binary has changed to 'mtn'. So, for example, you
would now run 'mtn checkout', 'mtn diff', 'mtn commit',
etc., instead of 'monotone checkout', 'monotone diff',
'monotone commit'.
- Similarly, the name of the workspace bookkeeping directory
has changed from "MT" to "_MTN". As workspaces will
generally be recreated when migrating to this release,
this should not cause any problems.
- Similarly, built-in attrs like 'execute' have had 'mtn:'
prepended to their names. For example, executable files
should now have the attr 'mtn:execute' set to 'true' on
them. The migration code will automatically add this
prefix; no user intervention is needed.
- Similarly, the name of the ignore file has changed from
'.mt-ignore' to '.mtn-ignore'. The migration code will
automatically rename this file; no user intervention is
needed.
- Similarly, the recommended suffix for monotone db files is
now '.mtn'.
These changes are all purely cosmetic, and have no affect on
functionality.
- The most developer-visible change is that the data
structure for representing trees has been completely
replaced, and all related code rewritten. The new data
structure is called a 'roster'. You don't really need to
know this name; unless you are hacking on monotone or using
various debug operations, you will never see a roster.
It's mostly useful to know that when someone says something
about 'roster-enabled monotone' or the like, they're
referring to this body of new code.
This change has a number of consequences:
- The textual format for revisions and manifests changed.
There is no conceptual change, they still contain the same
information and work the same way. The formats were
merely cleaned up to correct various problems experience
showed us, and allow various enhancements now and in the
future. However, this change means that a flag-day
migration is required. See UPGRADE for details.
- Directories are now first-class objects. You can add an
empty directory, must drop a directory if you want it to
go away, etc.
- Attrs are now first-class objects. '.mt-attrs' no longer
exists; attrs are now described directly in the manifest,
and changes to them appear directly in revisions. The
migration code will automatically convert existing
.mt-attrs files to the new first-class attrs. If you have
custom attrs, those may require special handling -- if
this is the case, then the upgrader will tell you.
- The merge code has been rewritten completely. The
interface is currently the same (though this rewrite makes
it easier to improve the interface going forward); if you
have found merging in monotone to be easy in the past,
then you will not notice anything different. If you have
run into problems, then the new merger should make your
life substantially simpler. It has full support for
renames (of both directories and files), intelligent
merging of attrs, improved handling of file content
merges. Is the first known merger implementation based on
a provably correct algorithm (the "multi-*-merge"
algorithm), has exhaustive automated tests, and generally
should give accurate, conservative merges.
- The new code is generally faster, though not yet as
fast as it could be.
Netsync changes:
- The default netsync port has changed 5253 to 4691. 4691 is
our official IANA-assigned port. Please adjust firewalls
appropriately.
- Netsync code has also been largely reworked; new code should
provide better opportunities for
- The protocol is incompatible with earlier versions of
monotone. This should not be a surprise, since the data it
carries is also incompatible (see above)...
New features:
- New option --brief to 'annotate', gives somewhat more
friendly output.
- Several enhancements to log:
- New option --next, to display descendent revisions
(rather than ancestor revisions).
- When 'log -r' is given an ambiguous selector, it now just
logs all matching revisions, instead of requiring the
selector be disambiguated.
- New option --no-files.
- New command 'show_conflicts', performs a dry run merge.
- New command 'ls changed'.
- 'rename' (and its alias 'mv') now accept a broader range of
syntax:
mtn rename foo some_dir
-> renames foo to some_dir/foo
mtn rename foo bar baz some_dir
-> moves foo, bar, and baz to some_dir/foo,
some_dir/bar, and some_dir/baz
- New hook 'validate_commit_message', which may be used to
verify that all commit messages meet arbitrary user-defined
rules.
- New option --log, to log monotone's output to a file.
- New option 'drop --recursive', to remove a directory and its
contents in one swoop.
- The root dir may now be renamed. This is a somewhat exotic
feature, but has some interesting uses related to splitting
up or joining together projects; see new commands
'pivot_root', 'merge_into_dir'.
Minor bug fixes:
- 'serve' with no --bind argument should now work on systems
where the C library has IPv6 support, but the kernel does
not.
- Stricter checking on the internal version of filenames to
ensure that they are valid UTF-8.
- If the database is in the workspace, then it is always
ignored.
- Monotone no longer errors out when using a French (fr)
locale with a non-Unicode codeset.
Other changes:
- Packet commands ('rdata', 'fdata', etc.) have been moved to
'automate'.
- Database storage now uses sqlite's blob support; database
files should be ~1/4 smaller as a result.
- Monotone now uses sqlite 3.3; this means that older versions
of the command line client (e.g., an 'sqlite3' command built
against sqlite version 3.2) cannot be used to poke at a
monotone 0.26 database. Solution is to upgrade your sqlite3
program. Hopefully this is irrelevant to most users...
- Translations updated, and 3 new translations added (de, it,
sv).
Reliability considerations:
- This new codebase has received much less testing under real
world conditions than the codebase used in 0.25, simply
because it is newer. It has been in active use for monotone
development since 8 January 2006, and only a small number of
bugs have been found; all bugs found so far have been very
minor, and none stood any danger of corrupting data.
Furthermore, we are much more confident in the theoretical
underpinnings of the new approach than the old, and the test
suite attempts to exhaustively exercise all new code paths.
However, none of this is or can be a substitute for real
world experience. We advise caution in upgrading to this
version of monotone, and suggest that (especially) those who
upgrade aggressively should pay extra attention to the
monotone mailing list before and after doing so.
Wed Mar 29 05:20:10 PST 2006
0.26pre3 release. This release may be considered a "release
candidate", in that while we need to write some tests and make
sure some bugs are fixed, all features are in and we hope that
no further bug fixes will be needed either. It is still a
pre-release for testing. Do not package it. DO NOT USE THIS
RELEASE UNLESS YOU WANT TO BE A DAREDEVIL.
But, PLEASE PLEASE TEST this release. There are some
non-trivial changes since 0.26pre2, and this is your last
chance!
Major changes since 0.26pre2:
- The name of the monotone binary has changed to 'mtn'.
- Similarly, the name of the bookkeeping directory in
workspaces has changed from 'MT' to '_MTN' (if you have an
existing 0.26-line workspace, just rename the MT directory
to _MTN).
- Similarly, the name of the ignore file has changed from
".mt-ignore" to ".mtn-ignore". 'rosterify' will rename
these automatically (if you have already rosterified, you
get to rename them by hand).
- Similarly, the recommended suffix for monotone db files is
now ".mtn".
- We now perform stricter checking to make sure that filenames
are valid UTF-8. It is in principle possible that this
stricter checking will cause histories that used to work to
break; if you have non-ascii filenames, it is strongly
recommended to test with this release.
- Root dir renaming is now supported. See new commands
'pivot_root', 'merge_into_dir'.
- As a side-effect, it is now possible to run 'rosterify' on
histories in which two independent lines of history were
merged.
- The security fix released in 0.25.2 has been forward-ported
to this release; this prevents some security exposure to
people running monotone as a client on case-insensitive file
systems.
Minor change since 0.26pre2:
- Database now uses sqlite blobs for storage; should be ~1/4
smaller.
- New command: show_conflicts, does a dry-run merge.
- New option 'drop --recursive', to remove a directory and all
its contents in one swoop.
- Changes to 'log':
- New option --no-files
- Including merges is again the default (i.e., it now acts
like 0.25, and not like 0.26pre2).
- When 'log -r' is given an ambiguous selector, it now just
logs all matching revisions, instead of requiring the
selector be disambiguated.
- New option --log, to log monotone output to a file.
- Netsync changes:
- Was sending far too much data in some cases; now does not.
- Several bugs that caused it to lock up fixed
- Tweak to allow 'usher' proxy to transparently redirect
based on client's protocol version, to ease migration
between incompatible protocol versions.
- Packet commands have been moved to 'automate'.
- Fixed bugs in 'db kill_rev_locally', should no longer leave
an inconsistent db behind.
- Translation updates
Other projects receiving notable work:
- Monotone's "dumb server" support (repo distribution over
HTTP/FTP/SFTP etc.) has been ported to 0.26, a first command
line version written, etc.
- The 'usher' netsync proxy used for hosting many databases on
a single machine has received significant cleanups, and the
'webhost' project to provide a simple interface to shared
monotone hosting providers has received even more work.
Sat Feb 11 13:32:51 PST 2006
0.26pre2 release. Inching towards 0.26. If you are using
0.25 or earlier, then make sure to read the very important
notes for 0.26pre1, below. In particular, like 0.26pre1, this
is a pre-release for testing. Do not package it. DO NOT USE
THIS RELEASE UNLESS YOU WANT TO BE A DAREDEVIL.
(Though, in fact, in a month of usage, only one bug has been
found in the new history code, and it was both minor and
harmless. It has additionally been fixed.)
Database changes:
- SQLite 3.3.3 has been imported. 3.3 introduces a new database
format that is not backwards compatible with earlier 3.x releases.
New databases will be created using this new format. Existing
databases remain compatible, and are not converted automatically.
Existing databases can be converted by performing a database
vacuum ('monotone db execute vacuum').
New features:
- New hook validate_commit_message -- use to verify that all
commit messages meet arbitrary user-defined rules.
UI improvements:
- rename (and mv) commands now accept a broader range of
syntax:
monotone rename foo some_dir
-> renames foo to some_dir/foo
monotone rename foo bar baz some_dir
-> moves foo, bar, and baz to some_dir/foo,
some_dir/bar, and some_dir/baz
- Print a warning if it looks like a user has made a quoting
mistake on push/pull/sync/serve (windows cmd.exe has
confusing rules here).
- New command "ls changed".
- New option "--next" to log, which displays descendents of
the start revision.
- Updating to an arbitrary revision now works again (as it did
in 0.25 and earlier). This allows one to, for instance,
switch a working copy to another head, or back up to an
earlier version, while preserving uncommitted changes.
- New option --brief to annotate, gives somewhat more friendly
output.
- Fixed bug that made ticker output from netsync inaccurate.
- In 'log', --no-merges is now the default, use --merges to
override.
- If the database is in the working copy, then it is always
ignored.
Bugs:
- 'serve' with no --bind should now work on systems where the
C library has IPv6 support, but the kernel does not.
- Compile fixes for GCC 4.1 pre-releases.
Other:
- Better detection when users have not run "rosterify", and
more helpful suggestions on what to do in this case.
- Documentation, translation, error message,
etc. improvements.
- Updates to contrib/mtbrowse.sh, simple shell-based monotone
interface.
- Updates to many other contrib/ files, mostly to maintain
compatibility with monotone changes.
Sun Jan 8 01:08:56 PST 2006
0.26pre1 release. Massive rewrites, released for shakedown.
This release is also dedicated to Shweta Narayan.
This release includes massive changes compared to 0.25. The
core versioning code has all been replaced with a completely
different mechanism. Data formats and the netsync protocol
have changed in incompatible ways.
Migration to 0.26pre1 or later is irreversible and requires a
flag day for your project. See UPGRADE for details. Note
that we DO NOT recommend upgrading at this time; see below.
If you have been following the development list for the last
few months, you may have heard about "rosters" -- this is the
name for the new core data structure we use. While the code
is completely different, the user experience should not be
very different. You will never see a roster, unless you are
debugging monotone itself; everything still revolves around
revisions, manifests, and certs.
While this new code has extensive tests, because of these
incompatibilities, it has never been used for real work. The
purpose of this release is to make a version available for the
monotone developers to begin using for day-to-day work, to
shake out bugs.
Let's say that again in caps: THIS CODE IS PROBABLY BUGGY, DO
NOT USE IT IN PRODUCTION UNLESS YOU WANT TO BE A DAREDEVIL.
However, testing of this version with real databases is a good
idea, and we'd very much appreciate hearing about your
experiences.
Some of the many changes:
- New textual format for revisions and manifests; they remain
conceptually the same, but have been tweaked. Manifests
now use the same "basic_io" format as everything else in
monotone, and contain entries for directories, revisions
record file adds slightly differently and record directory
adds for the first time, etc. Because of this format
change, revision hashes are now different; converting
rosters requires a full history rebuild and reissue of certs.
- Directories are now first class. To get rid of a directory
you must remove it; to create a directory, you must add it.
You can add an empty directory.
- Attrs are now first class. The .mt-attrs file is gone;
attributes are now stored directly in the manifest.
- New merge algorithm, based on "multi-*-merge", and more
aggressive, less buggy merge ancestor selection code
- Netsync's core has been largely rewritten. Code is now much
clearer and more reliable, and now includes the ability to
resume interrupted partial transfers. The netsync protocol
version number has been bumped, and netsync now runs on the
IANA-assigned port 4691 by default.
- 100% fewer change_set.cc related bugs. 100% more roster.cc
related bugs. But the idea of touching roster.cc does not
terrify people.
Changes:
- new extensions:
mq (manage a queue of patches, like quilt only better)
email (send changes as series of email patches)
- new command: merge (replaces "update -m")
- improved commands: log (--limit option added), pull/push ("-r" works
on specific revisions), revert (rewritten, much better)
- comprehensive hook support
- output templating added, supporting e.g. GNU changelog style
- Windows, Mac OS X: prebuilt binary packages, better support
- many reliability, performance, and memory usage improvements
Overview of Changes from GLib 2.10.1 to GLib 2.10.2
===================================================
* Bugs fixed:
322476 Missing check for .dylib [Anders Carlsson]
332841 Segmentation Fault when %llu is passed to
vasnprintf and HAVE_SNPRINTF is not defined [Michael McDonald]
333098 Add support for write FDs to GIOChannel [Markus Brinkmann]
334519 Memleak in goption.c::parse_short_option [Chris Wilson]
334471 g_parse_debug_string reads beyond buffer [Morten Welinder]
334611 g_option_context_parse() should not set program
name to '<Unknown>' if it is already set [Chong Kai Xiong]
335207 g_main_context_unref calls g_source_destroy_internal
with incorrect arguments [Chris Wilson]
335216 Slight performance gains (GList, GAsyncQueue) [Chris Wilson]
335209 Use of unitialised memory in g_mem_profile [Chris Wilson]
334943 make check FAIL: threadpool-test
336085 g_option_context_new parameter lacks better
explanation [Claudio Saavedra]
335215 Some breakages with GThreadPool [Chris Wilson]
333879 gthread/gthread-win32.c: IsDebuggerPresent needs
'#define _WIN32_WINDOWS 0x0401' [Kazuki Iwamoto]
334440 dlerror() portability issue causes crash on (old)
a.out NetBSD platform [ITOH Yasufumi]
333916 g_timer_elapsed docs should mention that
microseconds may be NULL [Christian Neumair]
334646 goption + error out params [Christian Persch]
335294 Documentation should not reference G_HAVE_GINT64,
as it's deprecated. [Richard Laager]
* Translation updates (dz,et,he,hi,ka,or,pt_BR,ro,tr)
* Fix non-OpenType fonts losing kerning in 1.12.0 [#336026, Denis Jacquerye]
* Fix blurred underlines on Win32 [#332656, Tor Lillqvist]
* Build fix when having both Win32 and FreeType cairo backends available
[#337502, Alexander Larsson]
* Bugs fixed in this release:
334802,336026,332656,337502