pkgsrc/devel/monotone/Makefile

55 lines
1.4 KiB
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.53 2008/04/29 20:26:47 dan Exp $
#
Update to 0.40. Tested in NetBSD-current/amd64 and OS X 10.4. Changes - The vim merger has been improved and now uses diff3 to merge non-conflict changes automatically before executing vimdiff. - Values used with the --depth option used to control recursion with node and path restrictions have changed. Using --depth=0 now means exactly the specified directories and *not* their children. Using --depth=1 now means the specified directories and their immediate children. Previously --depth=0 included children and --depth=1 included grandchildren and it was not possible to exclude children using --depth. The simple fix for anyone using --depth is to add 1 to the values they are using. - Document that ssh: and file: sync transports are not supported on native Win32. Bugs fixed - `commit' now uses keydir specified in _MTN/options - duplicate name conflicts now show a proper error message, even if a parent directory got renamed as well. In that case, the error message now shows both names for the directory and the offending file name. New features - The bare parent selector 'p:' can now be used in a workspace to query the parent(s) of the workspace' base revision. This is equivalent to "mtn au select p:`mtn au get_base_workspace_revision`". - push, pull, and sync can be run with a single argument, which looks like mtn://hostname?include_pattenr/-exclude_pattern or mtn://hostname?include=include_pattern/exclude=exclude_pattern Internal - Update Botan to 1.7.4. - Usage of the internal app_state object has been reduced, objects are better encapsulated now. The database interface has been enhanced to ease reduction of locking contention in the future. - Merged the two indexes on revision_certs into a single one. - The database schema has been changed so that it now stores binary SHA1 hashes rather than their hexadecimal encoding, in most places where these are used. This reduces the database size and speeds up operations a little. Users who like to fiddle with the database directly are advised to use the sqlite functions hex() and quote() to print columns that store hashes (including IDs), and the hexadecimal literal notation x'DEADBEEF' to input them. - Binary SHA1 hashes are also used for most in-memory processing, avoiding conversions and saving memory.
2008-04-12 16:34:50 +02:00
DISTNAME= monotone-0.40
PKGREVISION= 1
CATEGORIES= devel scm
Update to 0.40. Tested in NetBSD-current/amd64 and OS X 10.4. Changes - The vim merger has been improved and now uses diff3 to merge non-conflict changes automatically before executing vimdiff. - Values used with the --depth option used to control recursion with node and path restrictions have changed. Using --depth=0 now means exactly the specified directories and *not* their children. Using --depth=1 now means the specified directories and their immediate children. Previously --depth=0 included children and --depth=1 included grandchildren and it was not possible to exclude children using --depth. The simple fix for anyone using --depth is to add 1 to the values they are using. - Document that ssh: and file: sync transports are not supported on native Win32. Bugs fixed - `commit' now uses keydir specified in _MTN/options - duplicate name conflicts now show a proper error message, even if a parent directory got renamed as well. In that case, the error message now shows both names for the directory and the offending file name. New features - The bare parent selector 'p:' can now be used in a workspace to query the parent(s) of the workspace' base revision. This is equivalent to "mtn au select p:`mtn au get_base_workspace_revision`". - push, pull, and sync can be run with a single argument, which looks like mtn://hostname?include_pattenr/-exclude_pattern or mtn://hostname?include=include_pattern/exclude=exclude_pattern Internal - Update Botan to 1.7.4. - Usage of the internal app_state object has been reduced, objects are better encapsulated now. The database interface has been enhanced to ease reduction of locking contention in the future. - Merged the two indexes on revision_certs into a single one. - The database schema has been changed so that it now stores binary SHA1 hashes rather than their hexadecimal encoding, in most places where these are used. This reduces the database size and speeds up operations a little. Users who like to fiddle with the database directly are advised to use the sqlite functions hex() and quote() to print columns that store hashes (including IDs), and the hexadecimal literal notation x'DEADBEEF' to input them. - Binary SHA1 hashes are also used for most in-memory processing, avoiding conversions and saving memory.
2008-04-12 16:34:50 +02:00
MASTER_SITES= http://monotone.ca/downloads/0.40/
MAINTAINER= jmmv@NetBSD.org
HOMEPAGE= http://monotone.ca/
COMMENT= Free distributed version control system
PKG_DESTDIR_SUPPORT= user-destdir
GCC_REQD+= 3.0
GNU_CONFIGURE= yes
INFO_FILES= yes
Update to 0.17: 0.17 release. bug fixes and features. - many, many robustness improvements - more careful checking everywhere - much more thorough test suite - all revisions subject to careful checks before entering database - not yet fully optimized; "pull" may be very slow and use lots of cpu - support for "epochs", to safely manage future rebuilds, hash migration, etc. - new "db check" command, thanks to Derek Scherger <derek@echologic.com>. - now uses sqlite3, thanks to Christof Petig <christof@petig-baender.de>. - removes most former size limitations - "restrictions" support, thanks to Derek Scherger <derek@echologic.com>. - most commands now take a list of files to limit their actions to - monotone can now be run from anywhere in the working directory (not just the root) - new command "monotone setup" required to create a working directory for a new project - important security fix -- don't use shell when calling external merge commands. - format change for "MT/options", ".mt-attrs"; you may have to edit these files - new command "attr" for managing .mt-attrs. - builds merkle tries in-memory -- netsync starts up many times faster - start of new "automate" interface, for shell scripts and others. - new command "cdiff": generates context diffs. - remove most of now-obsolete manifest/file cert support. - 60+ new integration tests. - many portability fixes - in particular, major win32 cleanups, thanks to Jon Bright <jon@siliconcircus.com>. win32 is once again fully and natively supported. - many bug fixes - several incompatible changes: see file UPGRADE for migration information
2005-03-21 23:50:20 +01:00
UNLIMIT_RESOURCES+= datasize
USE_TOOLS+= gmake makeinfo
USE_LANGUAGES= c c++
Update to 0.23: Possibly incompatible changes: - hook_note_commit and hook_note_netsync_revision_received take a new argument containing the text of the revision that was received. (Timothy Brownawell <tbrownaw@gmail.com>) - 'cat FILENAME' now acts like the old 'cat file REV FILENAME'; use new commands 'automate get_revision', 'automate get_manifest', 'automate get_file' to fetch objects by hash. (Grahame Bowland <grahame@angrygoats.net>) General improvements: - .mt-ignore support (Martin Dvorak <jezek2@advel.cz>, Timothy Brownawell <tbrownaw@gmail.com>) - much work on making monotone more i18n friendly (Benoît Dejean <benoit@placenet.org>, Matt Johnston <matt@ucc.asn.au>) - support for more interactive merge tools: - FileMerge.app (comes with OS X) (Marcel van der Boom <marcel@hsdev.com>) - TortoiseMerge (Win32; comes with TortoiseSVN) (Matthew Gregan <kinetik@orcon.net.nz>) - rename and drop now actually perform the specified rename or deletion when the argument --execute is passed. (Richard Levitte <richard@levitte.org>) - 'help' command, same as --help (Matt Johnston <matt@ucc.asn.au>). - 'usher' support: experimental method for proxying multiple netsync servers through a single port (similar concept to vhosts) (Timothy Brownawell <tbrownaw@gmail.com>) - support long passphrases (Matt Johnston <matt@ucc.asn.au>) - Faster binary file detection (Eric Anderson <anderse-monotone@cello.hpl.hp.com>) - netsync speedups: - when handling large files (Eric Anderson <anderse-monotone@cello.hpl.hp.com>) - when handling many branches (Marcel van der Boom <marcel@hsdev.com>) - new system to allow crash logs to contain not just execution traces, but also dumps of data being handled when the error was detected -- greatly improves debuggability of user crashes. - complete rework of path handling code, for clarity, robustness, and speed. No user visible changes, except for the many bugs fixed. (Special thanks to Matthew Gregan <kinetik@orcon.net.nz> and Grahame Bowland <grahame@angrygoats.net>.) - however, if you have non-normalized paths in your history (symptom: fresh pulls with 0.18 work, but fresh pulls with 0.19 do not), then 0.23 will report an error and refuse to handle the affected revisions. Since it is believed this only affects one project, and to conserve core developer time, implementing a migration was put off for now. If this causes problems or for more details, please send an email to monotone-devel@nongnu.org. - as always, many small bug fixes, speedups, and improved messages. New translations: - fr (Benoît Dejean <benoit@placenet.org>) - ja (Satoru SATOH <ss@gnome.gr.jp>) Other new monotone-related projects since 0.22: - mtsh by Timothy Brownawell: https://netfiles.uiuc.edu/brownawe/www/mtsh/ GTK+ wrapper for monotone focusing on working copy operations -- add/drop/revert/rename/commit/update/diff and browsing. Has a mechanism for per-file commit comments. - "dumb server" support by Nathaniel Smith (share your monotone repositories via HTTP/FTP, no netsync daemon needed): http://viewmtn.angrygoats.net//branch.psp?branch=net.venge.monotone.dumb Still needs a command-line frontend to be usable, among other things. Help wanted. In python. - m7 by Larry Hastings <larry@hastings.org> http://www.midwinter.com/~lch/programming/m7/ Experimental drop-in command-line wrapper for monotone. Uses certs to add local incrementing version numbers, and an enhanced annotate front-end.
2005-09-30 15:18:24 +02:00
USE_PKGLOCALEDIR= yes
Update to 0.37: Changes - mtn db kill_rev_locally now checks for an existing workspace before the revision is killed and tries to apply the changes of this particular revision back to the workspace to allow easy re-committing afterwards - the "--brief" switch for mtn annotate has been renamed to "--revs-only" for clarity - mtn help now lists the commands (and their aliases) available within a group, so its easier to get an overview which commands are available at all - the "MTN_MERGE=diffutils" merger (provided by std_hooks.lua) was improved. It now accepts a MTN_MERGE_DIFFUTILS environment variable which can be used to control its behaviour through comma-separated "key[=value]" entries. Currently supported entries are "partial" for doing a partial batch/non-modal 3-way merge conflict "resolution" which uses embedded content conflict markers and "diff3opts=[...]" and "sdiffopts=[...]" for passing arbitrary options to the used "diff3" and "sdiff" tools. When used in combination with "mtn merge_into_workspace" this way one especially can achieve a CVS/SVN style non-modal workspace-based merging. - There is a new revision selector: "p:REV" selects the parent(s) of revision REV. For example, if a revision has one parent, mtn diff -r p:REV -r REV will show the changes made in that revision. - Monotone now uses the Perl-Compatible Regular Expression (PCRE) library for all regular expressions, instead of the boost::regex library. This means that external Boost libraries are no longer required to build or use Monotone. If building from source, you will still need the Boost headers available somewhere. See INSTALL for details. PCRE's syntax for regular expressions is a superset of boost::regex's syntax; it is unlikely that any existing .mtn-ignore files or other user uses of regexps will break. The manual now contains detailed documentation of the regexp syntax, borrowed from PCRE itself. - the format of "mtn automate inventory" has changed to basic_io. This fixes a couple of corner cases where the old format returned wrong information and introduces new capabilities like restricted output, recognized attribute changes, and more. For a complete overview on the new format, please take a look in the appropriate manual section. Bugs fixed - mtn automate heads called without a branch argument now properly returns the head revisions of the workspace's branch if called over mtn automate stdio - mtn commit no longer crashes if it creates a revision whose roster already exists, i.e. was left behind by the command `mtn db kill_rev_locally REV` (savannah #18990) Documentation changes - the documentation of the "--revs-only" (formerly "--brief") switch for the annotate command didn't match its actual behavior, this has been fixed - documentation for the "ssh_agent_add" command was missing and has been added Other - contrib/usher.cc has been removed. Please use the net.venge.monotone.contrib.usher branch instead. Internal - Update SQLite to 3.4.1. - Update Lua to 5.1.2 plus latest bug fixes. - Update Botan to 1.5.10. - Internal use of regular expressions has been almost eliminated. (Regular expressions are still used for .mtn-ignore and the --show-encloser feature of mtn diff, and are still available to Lua hooks.)
2007-10-26 16:08:24 +02:00
CONFIGURE_ARGS+= --with-system-pcre
PKG_OPTIONS_VAR= PKG_OPTIONS.monotone
PKG_SUPPORTED_OPTIONS= inet6
CHECK_INTERPRETER_SKIP+= share/monotone/contrib/*
CHECK_PORTABILITY_SKIP+= debian/*
.include "../../mk/bsd.options.mk"
.if !empty(PKG_OPTIONS:Minet6)
CONFIGURE_ARGS+= --enable-ipv6
.else
CONFIGURE_ARGS+= --disable-ipv6
.endif
post-install:
${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/monotone
cd ${WRKSRC} && rm -rf contrib/.deps && \
pax -rw -pp -pm contrib \
${DESTDIR}${PREFIX}/share/monotone
Update to 0.36: Changes - The help command is now able to show documentation on subcommands (such as 'attr set'). - The help command now shows a brief abstract of each command, instead of only listing their names. - The command `list changed` now outputs the new path of any renamed item making it easier to copy and paste these paths for external program usage. - `automate attributes` has been renamed to `automate get_attributes`, also a bug has been fixed there so resurrected attributes are now properly outputted as "new" and not "changed". New features - Two new commands to set and drop attributes over automate: `automate set_attribute` and `automate drop_attribute` - There is a new function available to the lua hooks, 'server_request_sync(what, address, include, exclude)', which will initate a netsync connection to the server at "address", with the given include and exclude patterns, and will sync, push, or pull, as given in the "what" argument. If called from a monotone instance which is not acting as a server, this function will do nothing. - There is a new hook available, 'get_netsync_key(server, include, exclude)', which is called to determine which key to use for netsync operations. Note that the server calls this once at startup with the address it is listening on, "*", and "" as arguments, rather than for each connection. Other - Giving the --confdir argument will automatically set the key store directory to keys/ under that directory, unless --keydir is also given. This is a bugfix. - Fixed a regression in 0.35 that resulted in some databases becoming significantly larger when storing new revisions. Existing databases with this problem can be fixed by pulling into a fresh database using 0.36. - contrib/lua-mode.el, a Lua mode for GNU emacs. - contrib/monotone-buildbot-notification.lua, a netsync hook to have a server notify a buildbot when new changes have arrived. Useful for anyone who uses a buildbot with monotone as source. - contrib/monotone-cluster-push.lua, a netsync hook script to have arriving changes be forwarded to other servers automatically. It uses the new internal lua function 'server_request_sync'. - contrib/mtn_makepermissions, a simple script to create read-permissions and write-permissions from files in the directories read-permissions.d and write-permissions.d, Debian style. - contrib/Monotone.pm, a first attempt to write a Perl module to interface with 'monotone automate stdio'. - contrib/monotone-import.pl has been removed since monotone now has an internal import command. Internal - Commands are now defined as a tree of commands instead of a plain list, which allows the help system to look up information of a command at an level in the tree. - The command class, the automate class and all the associated macros have been cleaned up. - All C++ files now depend on base.hh, which includes the few things that are used virtually everywhere. 'make distcheck' will check for the presence of base.hh in all source files and will protest if it's not there. This is explained further in HACKING. - Update the internal SQLite to version 3.4.0. - Updated Visual C building system, which now also builds the test programs. The script visualc/runtests.bat can be used to run the tests. - Monotone can now be built successfully with Boost 1.34. Older versions of monotone would sometimes seem to work depending on the compiler used, but would have bugs in path normalization. - Monotone now requires Boost 1.33 or later. - The Boost filesystem library is no longer required. - The Boost unit test system is no longer required.
2007-08-03 20:01:23 +02:00
cd ${WRKSRC} && pax -rw -pp -pm figures/*.png \
${DESTDIR}${PREFIX}/share/doc/monotone
Update to 0.39: Changes - 'mtn di' is now an alias for 'mtn diff'. - 'automate db_set' has been renamed to 'automate set_db_variable'. - 'automate db_get' has been replaced by 'automate get_db_variables' which returns all database variables similar to 'list vars' in basic_io format, optionally restricted by domain. - The REVID argument of 'automate get_revision' is now mandatory; to retrieve the current workspace revision, use the new command 'automate get_current_revision' - messages describing conflicts from all of the various merge commands have been reworked and should be much more informative. - mtn show_conflicts now outputs much more detailed and descriptive messages, however it may report content conflicts that will be resolved automatically by the line merger. - The internal copy of PCRE has been updated to version 7.6. If you use the '--with-system-pcre' configure switch, it will insist on at least this version. - "emacs" has been removed from the list of dumb terminal types; tickers should now default to --ticker=count with emacs terminals - extensive section on merge conflicts and ways to resolve them added to the manual. Bugs fixed - for changes near the beginning of a file, mtn's unified diff output sometimes contained too many leading context lines. - the path handling of 'mtn revert' was improved and fixed two bugs: now a restricted revert on a node "dir1/file1" reverts only the content changes in "file1", but leaves renames of any of its ancestor nodes untouched; furthermore, if "dir0/" was renamed to "dir1" and "dir1/file1" was dropped, mtn now re-creates file1 at the proper place ("dir1/") and leaves no missing files around because of the non-existing "dir0/". - a few changes needed to build with gcc 4.3. New features - 'automate drop_db_variables' which drops one database variable (like the 'unset' command) or all variables within a given domain. - 'automate inventory' now accepts the options '--no-ignored', '--no-unknown', '--no-unchanged' and '--no-corresponding-renames'. Please consult the monotone documentation for more information about these new options. In addition, 'automate inventory' no longer recurses into ignored directories. The typical case of listing files that need attention now runs at least four times faster. - 'automate get_current_revision' which outputs the revision text of changes in the current workspace
2008-02-27 15:16:50 +01:00
BUILDLINK_API_DEPENDS.pcre+= pcre>=7.6
.include "../../converters/libiconv/buildlink3.mk"
Update to 0.37: Changes - mtn db kill_rev_locally now checks for an existing workspace before the revision is killed and tries to apply the changes of this particular revision back to the workspace to allow easy re-committing afterwards - the "--brief" switch for mtn annotate has been renamed to "--revs-only" for clarity - mtn help now lists the commands (and their aliases) available within a group, so its easier to get an overview which commands are available at all - the "MTN_MERGE=diffutils" merger (provided by std_hooks.lua) was improved. It now accepts a MTN_MERGE_DIFFUTILS environment variable which can be used to control its behaviour through comma-separated "key[=value]" entries. Currently supported entries are "partial" for doing a partial batch/non-modal 3-way merge conflict "resolution" which uses embedded content conflict markers and "diff3opts=[...]" and "sdiffopts=[...]" for passing arbitrary options to the used "diff3" and "sdiff" tools. When used in combination with "mtn merge_into_workspace" this way one especially can achieve a CVS/SVN style non-modal workspace-based merging. - There is a new revision selector: "p:REV" selects the parent(s) of revision REV. For example, if a revision has one parent, mtn diff -r p:REV -r REV will show the changes made in that revision. - Monotone now uses the Perl-Compatible Regular Expression (PCRE) library for all regular expressions, instead of the boost::regex library. This means that external Boost libraries are no longer required to build or use Monotone. If building from source, you will still need the Boost headers available somewhere. See INSTALL for details. PCRE's syntax for regular expressions is a superset of boost::regex's syntax; it is unlikely that any existing .mtn-ignore files or other user uses of regexps will break. The manual now contains detailed documentation of the regexp syntax, borrowed from PCRE itself. - the format of "mtn automate inventory" has changed to basic_io. This fixes a couple of corner cases where the old format returned wrong information and introduces new capabilities like restricted output, recognized attribute changes, and more. For a complete overview on the new format, please take a look in the appropriate manual section. Bugs fixed - mtn automate heads called without a branch argument now properly returns the head revisions of the workspace's branch if called over mtn automate stdio - mtn commit no longer crashes if it creates a revision whose roster already exists, i.e. was left behind by the command `mtn db kill_rev_locally REV` (savannah #18990) Documentation changes - the documentation of the "--revs-only" (formerly "--brief") switch for the annotate command didn't match its actual behavior, this has been fixed - documentation for the "ssh_agent_add" command was missing and has been added Other - contrib/usher.cc has been removed. Please use the net.venge.monotone.contrib.usher branch instead. Internal - Update SQLite to 3.4.1. - Update Lua to 5.1.2 plus latest bug fixes. - Update Botan to 1.5.10. - Internal use of regular expressions has been almost eliminated. (Regular expressions are still used for .mtn-ignore and the --show-encloser feature of mtn diff, and are still available to Lua hooks.)
2007-10-26 16:08:24 +02:00
.include "../../devel/boost-headers/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
Update to 0.37: Changes - mtn db kill_rev_locally now checks for an existing workspace before the revision is killed and tries to apply the changes of this particular revision back to the workspace to allow easy re-committing afterwards - the "--brief" switch for mtn annotate has been renamed to "--revs-only" for clarity - mtn help now lists the commands (and their aliases) available within a group, so its easier to get an overview which commands are available at all - the "MTN_MERGE=diffutils" merger (provided by std_hooks.lua) was improved. It now accepts a MTN_MERGE_DIFFUTILS environment variable which can be used to control its behaviour through comma-separated "key[=value]" entries. Currently supported entries are "partial" for doing a partial batch/non-modal 3-way merge conflict "resolution" which uses embedded content conflict markers and "diff3opts=[...]" and "sdiffopts=[...]" for passing arbitrary options to the used "diff3" and "sdiff" tools. When used in combination with "mtn merge_into_workspace" this way one especially can achieve a CVS/SVN style non-modal workspace-based merging. - There is a new revision selector: "p:REV" selects the parent(s) of revision REV. For example, if a revision has one parent, mtn diff -r p:REV -r REV will show the changes made in that revision. - Monotone now uses the Perl-Compatible Regular Expression (PCRE) library for all regular expressions, instead of the boost::regex library. This means that external Boost libraries are no longer required to build or use Monotone. If building from source, you will still need the Boost headers available somewhere. See INSTALL for details. PCRE's syntax for regular expressions is a superset of boost::regex's syntax; it is unlikely that any existing .mtn-ignore files or other user uses of regexps will break. The manual now contains detailed documentation of the regexp syntax, borrowed from PCRE itself. - the format of "mtn automate inventory" has changed to basic_io. This fixes a couple of corner cases where the old format returned wrong information and introduces new capabilities like restricted output, recognized attribute changes, and more. For a complete overview on the new format, please take a look in the appropriate manual section. Bugs fixed - mtn automate heads called without a branch argument now properly returns the head revisions of the workspace's branch if called over mtn automate stdio - mtn commit no longer crashes if it creates a revision whose roster already exists, i.e. was left behind by the command `mtn db kill_rev_locally REV` (savannah #18990) Documentation changes - the documentation of the "--revs-only" (formerly "--brief") switch for the annotate command didn't match its actual behavior, this has been fixed - documentation for the "ssh_agent_add" command was missing and has been added Other - contrib/usher.cc has been removed. Please use the net.venge.monotone.contrib.usher branch instead. Internal - Update SQLite to 3.4.1. - Update Lua to 5.1.2 plus latest bug fixes. - Update Botan to 1.5.10. - Internal use of regular expressions has been almost eliminated. (Regular expressions are still used for .mtn-ignore and the --show-encloser feature of mtn diff, and are still available to Lua hooks.)
2007-10-26 16:08:24 +02:00
.include "../../devel/pcre/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"