2022-03-03  Sergey Poznyakoff  <gray@gnu.org>

	Version 2.1

2021-01-06  Sergey Poznyakoff  <gray@gnu.org>

	Update copyright years

2020-06-14  Sergey Poznyakoff  <gray@gnu.org>

	Use grecs with wordsplit v1.1

2019-11-26  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement MoveAddressToVpc (addr2vpc) and RestoreAddressToClassic (addr2ec2)

	* TODO: Document changes.
	* doc/Makefile.inc: Add new files.
	* doc/eclat-addr2ec2.1: New file.
	* doc/eclat-addr2vpc.1: New file.
	* etc/Makefile.am: Add new files.
	* etc/move-address-to-vpc.fln: New file.
	* etc/restore-address-to-classic.fln: New file.
	* src/Makefile.am: Add new file.
	* src/mvaddr.c: New file.
	* src/eclat.c (cmdtab): New commands: addr2vpc and addr2ec2.
	* src/eclat.h (eclat_move_address): New proto.

	* etc/describe-images.fln: List creation date.

2019-07-10  Sergey Poznyakoff  <gray@gnu.org>

	Switch to grecs b06fb7d3

2018-12-15  Sergey Poznyakoff  <gray@gnu.org>

	Fix rmaddr -v

	* src/rmaddr.c: Fix a long-standing typo

	Document chvol and lschvol commands.

	Implement ModifyVolume and DescribeVolumesModifications

2018-11-17  Sergey Poznyakoff  <gray@gnu.org.ua>

	Version 2.0.90

	Implement the terminate-instances command

	* TODO: Update.
	* doc/Makefile.inc: Add new files.
	* doc/eclat-mkinst.1: Mention the terminate command.
	* doc/eclat-terminate.1: New file.
	* etc/Makefile.am: Add new files.
	* etc/terminate-instances.fln: New file.
	* src/eclat.c (cmdtab): Register new command.
	* src/eclat.h (eclat_terminate_instances): New proto.
	* src/startstop.c (eclat_terminate_instances): New function.
	* tests/Makefile.am: Add new test.
	* tests/testsuite.at: Likewise.
	* tests/terminate-instances.at: New test.

2018-11-15  Sergey Poznyakoff  <gray@gnu.org.ua>

	Include VPC info to the describe-instances.fln format.

2018-03-19  Sergey Poznyakoff  <gray@gnu.org.ua>

	Merge branch 'master' of ssh://git.gnu.org.ua/gitroot/eclat

	Fix coredump

	* src/eclat.c (find_command_name): Avoid calling ident_matches with
	NULL argument.

2018-03-16  Sergey Poznyakoff  <gray@gnu.org>

	Version 2.0

2018-03-15  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update copyright years

2018-03-15  Sergey Poznyakoff  <gray@gnu.org>

	Minor fixes

2018-03-15  Sergey Poznyakoff  <gray@gnu.org.ua>

	Upgrade grecs

	* grecs: pull
	* configure.ac: Enable json
	* lib/Makefile.am (AM_CPPFLAGS): Use @GRECS_INCLUDES@
	(libeclat_a_SOURCES): Remove json sources.
	* src/Makefile.am (AM_CPPFLAGS): Use @GRECS_INCLUDES@
	* tests/Makefile.am: Likewise.

	* lib/json.h: Remove.
	* lib/jsongrm.y: Remove.
	* lib/jsonlex.l: Remove.
	* tests/tjson.c: Remove.

	* src/config.c (eclat_kw): Mark statically initialized memory locations
	as such.
	* src/mktags.c (process_tags): Use wordsplit to process quoted arguments.

	* lib/bidimap.c (bidimap_config): Fill allocated memory with 0's
	* lib/filemap.c (filemap_config): Likewise.
	* lib/gdbmmap.c (gdbm_map_config): Likewise.
	* lib/seqmap.c (seqmap_config): Likewise.

2018-03-15  Sergey Poznyakoff  <gray@gnu.org>

	Update docs

	Minor changes

	* src/util.c (eclat_send_request): Fix the AWS error string. Print
	a warning before sleeping. Fix memory leak.

2018-03-14  Sergey Poznyakoff  <gray@gnu.org>

	Implement exponential backoff with jitter to handle RequestLimitExceeded

	* src/eclat.h (eclat_command_env) <curl>: Remove.
	<xmltree>: New field.
	* src/util.c (translate_ids): Close the map when no longer needed
	(eclat_send_request): Implement exponential backoff.
	* src/ec2map.c: Reflect the above changes.
	* src/eclat.c: Likewise.
	* lib/libeclat.h (eclat_request_dup): New proto.
	* lib/reqcreat.c (eclat_request_dup): New function.
	* src/config.c: New configuration statements: max-retry-interval and
	retry-timeout.

2015-11-19  Sergey Poznyakoff  <gray@gnu.org>

	Restore missing translation maps

2015-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>

	Add missing files to repo

	Raise patchlevel number.

	* NEWS: Document changes.
	* configure.ac: Update.
	* tests/describe-instances.at: sync with the previous commit.

	Fix formats

	* etc/allocate-address.fln: Print allocation ID, if available.
	* etc/describe-instances.fln: Fix printing group sets.
	* etc/describe-subnets.fln: Fix undefined variable.

	Add operations on egress rules for VPC security groups.

	* src/sg-cl.opt: New options: --input (--ingress, -I), and
	--output (--egress, -O).
	* src/sg.c (command): const.
	* doc/eclat-sg.1: Document --input/--output modifiers.
	* TODO: Likewise.
	* etc/sg.fln: Add support for egress responses.

	Minor fix

	* etc/describe-internet-gateway.fln: Rename to
	* etc/describe-internet-gateways.fln: this
	* etc/Makefile.am: Likewise.

	New commands: assocrtab, mkrtab, rmrtab, lsrtab, disasrtab, route

	These implement the following EC2 actions: AssociateRouteTable,
	CreateRoute, CreateRouteTable, DeleteRoute, DeleteRouteTable,
	DescribeRouteTables, DisassociateRouteTable, ReplaceRoute.

	* TODO: Update.
	* etc/Makefile.am: Add new formats.
	* etc/associate-route-table.fln: New file.
	* etc/create-route-table.fln: New file.
	* etc/create-route.fln: New file.
	* etc/delete-route-table.fln: New file.
	* etc/delete-route.fln: New file.
	* etc/describe-route-tables.fln: New file.
	* etc/disassociate-route-table.fln: New file.
	* etc/replace-route.fln: New file.
	* etc/route.fln: New file.

	* src/Makefile.am: Add routetable.c
	* src/routetable.c: New file.
	* src/eclat.c (cmdtab): Register new subcommands.

	* src/eclat.h (ECLAT_DEBCAT_DUMP): New category.
	Add new protos.
	* src/io.c (write_callback): Enable XML dump if dump debug
	category is set.

	Add formats for new statements introduced by ed8a63af and 1473a448

	Implement subnet commands

	New commands: mksubnet, rmsubnet, lssubnet, setsubnetattr.

	* TODO: Update.
	* lib/libeclat.h (EC2_API_VERSION): Update.
	* src/Makefile.am: Add subnet.c.
	* src/subnet.c: New file.
	* src/eclat.c (cmdtab): Register new commands.
	* src/eclat.h: Add new prototypes.

2015-11-18  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement VPC and Internet Gateway commands.

	New commands: lsvpc, lsvpcattr, mkvpc,
	setvpcattr, rmvpc, lsigw, mkigw, rmigw,
	atigw, deigw.

	* TODO: Update.
	* doc/Makefile.inc: Add mkvpc manpage.

	* etc/Makefile.am: Add create-vpc.fl and describe-vpcs.fln
	* etc/describe-vpc-attribute.fln: New file.
	* etc/describe-vpcs.fln: New file.

	* src/Makefile.am: Add new files.
	* src/igw.c: New file.
	* src/lsvpc.c: New file.
	* src/mkvpc-cl.opt: New file.
	* src/mkvpc.c: New file.
	* src/rmvpc.c: New file.
	* src/vpcattr.c: New file.
	* src/eclat.c (cmdtab): Register new subcommands.
	* src/eclat.h: Add new prototypes.

	* src/mksg-cl.opt: New option: --internet-gateway, -g

	* src/lsinst.c (parse_options): Define args_doc.
	* src/lsreg.c (parse_options): Remove useless return.
	* src/lstag-cl.opt: Likewise.
	* src/mktags-cl.opt: Remove stray character.

2015-02-26  Sergey Poznyakoff  <gray@gnu.org.ua>

	Untabify docs

	Version 1.1

2015-02-02  Sergey Poznyakoff  <gray@gnu.org.ua>

	New options: --check-permissions and --add-parameter

	* NEWS: Update.
	* doc/eclat-stop.1: Update.
	* doc/eclat.1man: Update.
	* etc/default.fln: Special handling for DryRunOperation
	and UnauthorizedOperation codes.
	* lib/paramlist.c: New file.
	* lib/Makefile.am (libeclat_a_SOURCES): Add paramlist.c
	* lib/forlan.c: New function dequote.
	* lib/libeclat.h (eclat_request_add_param0)
	(ec2_param_free, ec2_param_list_create)
	(ec2_param_list_append)
	(eclat_request_add_param_list): New protos.
	* lib/reqcreat.c (ec2_param_free): Remove static qualifier.
	* src/stop-cl.opt: New file.
	* src/Makefile.am (OPTFILES): Add stop-cl.opt
	* src/cmdline.opt: New options: --check-permissions and --add-parameter.
	* src/eclat.c (extra_param): New global.
	(find_format): print error message if no such format is found.
	* src/startstop.c (eclat_stop_instance): Use parse_stop_options

2015-01-28  Sergey Poznyakoff  <gray@gnu.org.ua>

	More fixes in manpages

2015-01-27  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix remaining whatis entries

	sg: accept -1 as argument to --port

	* src/sg-cl.opt (--port option): Accept -1
	* src/sg.c (str2port): Likewise.
	(add_source_cidr): Fix coredump

2015-01-26  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update whois entries

2015-01-23  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve ispeek

	* src/ispeek.c (is_user_data): New function
	(print_dir,ispeek_do): Always treat user-data as file.

	Use signature version 4 by default

	Implement HTTP POST

	* NEWS: Update.
	* doc/eclat.conf.5: Document http-method.  Reorganize description of
	endpoints and regions.
	* lib/libeclat.h (ec2_request) <postdata>: New member
	(eclat_request_finalize): New proto.
	* lib/req2url.c (eclat_request_to_url): Remove second argument.
	All uses changed.
	(eclat_request_finalize): New function.
	* lib/reqfree.c: Free postdata.
	* lib/reqsign.c (requestsign4): Implement post.
	* src/config.c: New configuration statement http-method.
	* src/eclat.c (use_post): New variable.
	* src/eclat.h (use_post): New extern.
	* src/util.c (eclat_send_request): Implement post.

	Namespace fixup: use "request" consistently

2015-01-22  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update copyright years.

	Version 1.0.92

	Improve setting UserData attribute. Change lsistat defaults.

	* NEWS: Update.
	* doc/eclat-setiattr.1: Document new options.
	* doc/eclat-lsistat.1: Update.
	* etc/describe-instance-attribute.fln: Decode userData.
	* grecs: Upgrade.
	* src/setiattr-cl.opt: New file.
	* src/Makefile.am (OPTFILES): Add setiattr-cl.opt
	* src/setiattr.c: Encode UserData.
	* src/eclat.h (read_file): New proto.
	* src/lsistat-cl.opt: New option -r (--running).
	* src/lsistat.c: Change default to show all instances, no matter
	their state.
	* src/mkinst-cl.opt (read_user_data): Remove. Use read_file instead.
	* src/sg.c: Add missing include.
	* src/util.c (read_file): New function.

	Fix a typo

2015-01-22  Sergey Poznyakoff  <gray@gnu.org>

	authentication-provider instance-store does not require role name argument

	* NEWS: Update.
	* doc/eclat.conf.5: Update.
	* lib/Makefile.am: Add new sources.
	* lib/istore.c: New file.
	* lib/path.c: New file.
	* lib/libeclat.h (path_concat)
	(instance_store_curl_new)
	(instance_store_read): New protos.
	* src/config.c (cb_authentication_provider): second argument is
	optional for instance-store type.
	New compound statement: instance-store.
	* src/eclat.h (instance_store_base_url)
	(instance_store_port,instance_store_document_path):
	(instance_store_credentials_path): New externs.
	* src/ispeek.c: Rewrite using new functions.
	* src/util.c: Likewise.

2015-01-21  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve ispeek

	* doc/ispeek.1: Update.
	* grecs: Upgrade
	* src/ispeek-cl.opt: New options.
	* src/ispeek.c: Optionally print variable types,
	quote strings, etc.
	Add heuristics to determine whether the obtained data are
	a directory listing or a text.

	Add ispeek.

	* src/ispeek.c: New file.
	* src/ispeek-cl.opt: New file
	* src/Makefile.am: Add ispeek
	* src/io.c (dump, eclat_trace_fun): Moved to the library.
	(eclat_io_setup): Use eclat_set_curl_trace.

	* NEWS: Document ispeek.
	* doc/Makefile.inc: Add ispeek.1
	* doc/eclat.1man: Mention ispeek(1) in the "see also" section.
	* doc/eclat.conf.5: Update.
	* doc/ispeek.1: New file.

	* lib/Makefile.am (libeclat_a_SOURCES): Add trace.c
	* lib/libeclat.h (eclat_trace_fun)
	(eclat_set_curl_trace): New proto.
	* lib/trace.c: New file.

2015-01-20  Sergey Poznyakoff  <gray@gnu.org.ua>

	Document authentication provider configuration.

2015-01-19  Sergey Poznyakoff  <gray@gnu.org.ua>

	Version 1.0.91

	New configuration statement authentication-provide

	* NEWS: Update.
	* src/config.c: New statement "authentication-provider"
	* src/eclat.c (authentication_provider): New variable.
	(main): Select credentials depending on the value of
	authentication_provider.
	* src/eclat.h (authentication_provider): New enum and extern.

	Minor improvement

	* lib/reqsign.c (querysign4): Pass credentials in HTTP headers,
	instead of parameters.

	Implement IAM in request signing v.4

	* lib/reqsign.c (querysign4): Add X-Amz-Security-Token param.

	Bugfix

	* lib/reqsign.c (eclat_hex_encode): add terminating zero

	Initial support for IAM

	* NEWS: Update.
	* doc/eclat.1man: Update.
	* lib/.gitignore: Update.
	* lib/Makefile.am (libeclat_a_SOURCES): Add new files.
	* lib/json.h: New file.
	* lib/jsongrm.y: New file.
	* lib/jsonlex.l: New file.
	* lib/yytrans: New file.
	* lib/libeclat.h (ec2_query) <token>: New member
	(eclat_query_create): Change signature.
	* lib/qcreat.c (eclat_query_create): Take security token as 5th
	argument.
	* lib/reqsign.c (querysign2): Add security token.
	* src/cmdline.opt: Update copyright years
	* src/ec2map.c (ec2_map_get): Pass security token to
	eclat_query_create.
	* src/eclat.c (security_token): New variable.
	(eclat_do_command): Pass security token to
	eclat_query_create.
	(main): Get authentication credentials from the instance
	store, if not found in the access file.
	* src/eclat.h (security_token): New extern.
	(eclat_get_instance_creds): New proto.
	* src/util.c (eclat_get_instance_zone): Use json parser.
	(eclat_get_instance_creds): New function.
	* tests/Makefile.am (noinst_PROGRAMS): add tjson
	* tests/tjson.c: New file.

2015-01-18  Sergey Poznyakoff  <gray@gnu.org.ua>

	If no region is specified, get it from the instance store

	* src/eclat.c: If no region is specified, try to get it
	from the instance store.
	* src/eclat.h (eclat_trace_fun): New proto.
	(eclat_get_instance_zone): New proto.
	* src/io.c (eclat_trace_fun): Remove static qualifier.
	* src/util.c (eclat_get_instance_meta_data): New function.
	(eclat_get_instance_zone): New function.

2015-01-15  Sergey Poznyakoff  <gray@gnu.org.ua>

	Bugfixes

	* grecs: Upgrade
	* src/sg.c (add_source_cidr): Accept /0 mask; improve error detection.

2014-12-10  Sergey Poznyakoff  <gray@gnu.org>

	Fix coredump when comparing non-existing nodes.

	* lib/forlan.c (coerce_value): Handle NULL nodes.
	(values_equal): Handle NULL strings.
	(dump_expr): Handle EQ and NE.
	* lib/forlanlex.l: Fix distinction before negative numeric and
	identifier.

	* etc/describe-security-groups.fln: ipProtocol == "-1" means "all".

	* tests/Makefile.am: Add new tests.
	* tests/testsuite.at: Likewise.
	* tests/comp00.at: New file.
	* tests/comp01.at: New file.
	* tests/comp02.at: New file.
	* tests/comp03.at: New file.
	* tests/comp04.at: New file.
	* tests/tforlan.c (main): Optionally read XML from standard input.

2014-12-02  Sergey Poznyakoff  <gray@gnu.org.ua>

	Bugfix

	* etc/flncat.c: Add boundary check

	Fix generation of consolidated format file.

	* etc/flncat.c (main): Reset outchars after opening a new file

2014-09-16  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fix in eclat1.man

2014-07-10  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improvements to signature version 4 implementation

	* lib/qaddparm.c (eclat_query_add_header): Remove leading and
	trailing whitespace.
	* lib/reqsign.c (querysign4): Add all custom headers to signed
	headers.
	Abort if EC2_QF_POST flag is set (not implemented yet).

2014-07-09  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement signature version 4 signing process

	* lib/libeclat.h (ec2_param) <encoded>: New member.
	(ec2_query) <signature>: Remove.
	<headers,region,access_key>: New members
	(eclat_query_create): Take two more arguments. All uses changed.
	(eclat_query_add_param_encoded)
	(eclat_query_add_header): New functions.
	* lib/q2url.c (eclat_query_to_url): Don't create Signature param:
	it is already in the param list (for v2 process).
	* lib/qaddparm.c (eclat_query_add_param_encoded): New function.
	(eclat_query_add_header): New function.
	* lib/qcreat.c (eclat_query_create): Take region and access key
	as additional parameters.
	* lib/qencode.c (encode_param): Skip parameters that have encoded
	set to true.
	* lib/reqsign.c (querysign2): Store access key in AWSAccessKeyId
	and the generated signature in the Signature parameters.
	(eclat_hex_encode): New function.
	(querysign4): Implement signature version 4 signing process.
	* src/ec2map.c: Update call to eclat_query_create.
	* src/eclat.c: Likewise.
	* src/util.c (eclat_send_query): Sign the query and add
	requested headers prior to sending.

	* doc/eclat.conf.5: Document signature-version.
	* NEWS: Likewise.

2014-05-20  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fixes

	* doc/eclat-mkinst.1: Escape dashes
	* etc/get-console-output.fln: Handle empty output case.

2014-02-13  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve formatting of manpages.

2014-02-04  Sergey Poznyakoff  <gray@gnu.org.ua>

	New commands: lsaattr and setaattr.

	* TODO: Update.
	* doc/Makefile.inc: Add new files.
	* doc/eclat-lsaattr.1: New file.
	* doc/eclat-setaattr.1: New file.
	* etc/Makefile.am (FLNFILES): Add new files.
	* etc/describe-image-attribute.fln: New file.
	* etc/modify-image-attribute.fln: New file.
	* src/Makefile.am (eclat_SOURCES,OPTFILES): Add new files.
	* src/eclat.c (cmdtab): New commands: lsaattr and setaattr.
	* src/eclat.h (eclat_describe_image_attribute)
	(eclat_modify_image_attribute,canonattrname): New protos.
	* src/lsaattr.c: New file.
	* src/lsiattr.c: Use canonattrname to simplify usage.
	* src/lssattr.c (canonattrname): Remove. Use external version.
	* src/setaattr-cl.opt: New file.
	* src/setaattr.c: New file.
	* src/setiattr.c: New file.
	* src/util.c (canonattrname): New function.

2014-02-03  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update copyright years

	Update documentation for mktag and rmtag.

2014-01-30  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix building standalone lsattr.forlan file.

	* etc/Makefile.am (lsattr.forlan): Fix dependencies.

2013-12-21  Sergey Poznyakoff  <gray@gnu.org.ua>

	Add missing manpages to the repository.

2013-12-20  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix a typo

	Update THANKS file.

	Version 1.0

	Rename conmesg to dmesg

	Ask for confirmation before doing rmsg

2013-12-19  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement security group creation and deletion.

	* doc/eclat-lssg.1: New file.
	* doc/eclat-sg.1: New file.
	* doc/Makefile.inc: Add new files.
	* etc/create-security-group.fln: New file.
	* etc/delete-security-group.fln: New file.
	* etc/Makefile.am: Add new files.
	* src/mksg-cl.opt: New file.
	* src/mksg.c: New file.
	* src/rmsg-cl.opt: New file.
	* src/rmsg.c: New file.
	* src/sg.h: New file.
	* src/Makefile.am: Add new files.
	* src/eclat.c (cmdtab): New commands "mksg" and
	"rmsg".
	* src/eclat.h (eclat_create_security_group)
	(eclat_delete_security_group): New protos.
	* src/lssg.c: Include sg.h.  Use groupkw instead of the
	static rt[], which is removed.
	* src/sg-cl.opt: Use groupkw
	* src/sg.c (groupkw): New global.

	* TODO: Update.

	sg: accept port 0

2013-12-17  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix typos in eclat-sg.1

	Group sg options by functionality in --help output.

	Upgrade grecs.

	Document sg

	* TODO: Update.
	* doc/Makefile.inc: Add eclat-sg.1
	* doc/eclat-lssg.1: Update.
	* doc/eclat-sg.1: New file.
	* src/sg-cl.opt: Fix docstrings.

2013-12-16  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve sg.

	Accept --list without argument (list all groups).  Accept host
	and service names as arguments to the --source and --port options.
	* src/sg-cl.opt (parse_options): Accept --list without argument.
	* src/sg.c (add_source_cidr, str2port): New functions.
	(flush_rule): Use the above to process source CIDRs and port numbers.

2013-12-09  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update TODO

	eclat sg: make --port optional.

2013-12-03  Sergey Poznyakoff  <gray@gnu.org>

	Check for liblber, if LDAP support is enabled.

	Iprove sg

	* src/sg.c (flush_rule): Add default source address, unless specified.

	Implement sg --list

	* etc/Makefile.am (FLNFILES): Add lsattr.fln
	(.fln.forlan): Use all prerequisites, not only the first one.
	(FORMATFILES): Remove lsattr.forlan
	(lsattr.forlan): Use implicit rule.
	(sg.forlan): New rule
	* etc/flncat.c (comment): Optionally output the comment.
	(main): Output " else " only if some non-whitespace and non-comment
	characters were output before.
	* etc/lsattr.fln: New file
	* src/sg-cl.opt: New option --list.
	* src/sg.c (list_option): New variable.

	Bugfix and compatibility change in lssg/sg

	* src/lssg.c (eclat_describe_security_groups): Fix the --name option.
	* src/sg-cl.opt: Use -N as a shorcut for --next, and -n as the one
	for --name, for compatibility with lssg.

2013-11-28  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement sg command

	* etc/sg.fln: New file.
	* etc/Makefile.am (FLNFILES): Add sg.fln
	* src/sg.c: New file.
	* src/sg-cl.opt: New file.
	* src/Makefile.am (eclat_SOURCES): Add sg.c
	(OPTFILES): Add sg-cl.opt
	* src/eclat.c (cmdtab): Add entry for "sg".
	(eclat_do_command): Ignore tag if it is NULL.
	* src/eclat.h (eclat_sg): New proto.

	Upgrade grecs

	Do not depend on alignof.h

2013-11-17  Sergey Poznyakoff  <gray@gnu.org>

	Bigfix

	* lib/ldapmap.c (ldap_map_open): Return if unable to open map.

2013-11-15  Sergey Poznyakoff  <gray@gnu.org>

	Upgrade grecs

2013-08-13  Sergey Poznyakoff  <gray@gnu.org.ua>

	Documentation: use .EX/.EE for examples.

2013-07-31  Sergey Poznyakoff  <gray@gnu.org.ua>

	Prepare for Signature Version 4.

	* lib/hmac_sha256.c: New file.
	* lib/sha256.c: New file.
	* lib/sha256.h: New file.
	* lib/Makefile.am (libeclat_a_SOURCES): Add new files.
	* lib/libeclat.h (hmac_sha256): New proto.
	(eclat_query_signature): Rename to eclat_query_sign,
	take signature version as argument.
	(eclat_encode_devmap): Remove prototype.
	* lib/reqsign.c: Use HMAC256
	* src/config.c (eclat_kw): New keyword: signature-version,
	* src/devmap.c (eclat_encode_devmap): Bugfixes. Translate snapshot ids.
	* src/eclat.c (signature_version): New variable.
	* src/eclat.h (signature_version): New proto.
	(eclat_encode_devmap): New proto.
	* src/util.c (eclat_send_query): Use eclat_query_sign.
	* tests/hmac01.at: Update.
	* tests/hmac02.at: Update.
	* tests/hmac03.at: Update.
	* tests/thmac.c: Use HMAC256

2013-07-05  Sergey Poznyakoff  <gray@gnu.org.ua>

	Further fixes in eclat_encode_devmap

	* lib/envmap.c: Rename to ...
	* src/devmap.c (eclat_encode_devmap): Translate snapshot identifiers.
	Fix check for the number of parts in device specification.
	* lib/Makefile.am: Update.
	* src/Makefile.am: Update.

	Bugfix

	* lib/envmap.c (eclat_encode_devmap): Fix recognition of optional parts.

2013-07-02  Sergey Poznyakoff  <gray@gnu.org.ua>

	Bugfix

	* src/config.c (cb_confirm): Set cfmode prior to using it.

	Rename allocaddr to mkaddr

2013-06-25  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fix.

	* src/mkinst.c (add_iface): Fix incorrect argument to the diagnostics
	function.

2013-06-04  Sergey Poznyakoff  <gray@gnu.org.ua>

	eclat.cfin: Fix SnapshotId map.

2013-05-21  Sergey Poznyakoff  <gray@gnu.org.ua>

	Various minor fixes.

	* doc/eclat.conf.5: Document EC2 maps.
	* etc/eclat.cfin: Provide default maps.
	* lib/Makefile.am (AM_LFLAGS): Remove -v.
	* lib/bidimap.c (cb_submap): Remove unused variable.
	* lib/forlan.c: Minor change.
	* lib/forlangrm.y: Declare prototype for yylex.
	* lib/forlanlex.l: Add option nounput
	* lib/libeclat.h (eclat_map) <locus>: New member.
	* lib/map.c (eclat_map_config): Warn if attempting to
	redeclare an existing map.
	* src/ec2map.c (ec2_map_get): Minor change.

	Bugfix

	* src/mkinst-cl.opt (parse_options): Translate image ID.

2013-05-04  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement EC2 map.

	EC2 map allows to use AWS services as eclap maps.  For example,
	one may use an EC2 tag to map resource names to resource IDs, etc.

	* src/ec2map.c: New file.
	* src/io.c: New file.
	* src/Makefile.am (eclat_SOURCES): Add new files.
	* src/eclat.c (dump,eclat_trace_fun)
	(dumpxml,write_callback): Move to io.c
	(main): Register ec2 map.
	Use eclat_io framework.
	* src/eclat.h (eclat_io): New struct.
	(eclat_io_init, eclat_io_free)
	(eclat_io_shutdown, eclat_io_finish): New functions.
	(eclat_map_drv_ec2): New extern.

	Bugfixes.

	* src/cmdline.opt: Add closing double-quote in the -D
	preprocessor option.
	* src/util.c (translate_ids): Do not bail out if the map
	is not defined.

2013-04-27  Sergey Poznyakoff  <gray@gnu.org.ua>

	Bugfix

2013-04-26  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve ID mapping.

	* doc/eclat.conf.5: Update.
	* src/cmdline.opt: New option --no-translate (-X)
	* src/config.c (eclat_kw): New statement: translate.
	* src/eclat.c (main): override the value of translation_enabled
	from the command line.
	* src/eclat.h (translate_option): Rename to translation_enabled.
	All uses changed.
	(MAP_IMAGE,MAP_INSTANCE)
	(MAP_GROUPID,MAP_GROUPNAME)
	(MAP_SNAPSHOT,MAP_VOLUME)
	(MAP_AZ,MAP_REG): New defines, to use instead of literal
	map names. All sources updated accordingly.
	* src/util.c (translate_option): Rename to translation_enabled.
	(translate_ids): It is not an error if the name is not found in
	the map.  Use it as the resource ID in that case.

2013-04-25  Sergey Poznyakoff  <gray@gnu.org.ua>

	Rename freeaddr to rmaddr

	Bugfix.

	* src/eclat.c (print_matching_commands): Fix coredump.

	Provide additional m4 magic for creating cl interfaces.

	* src/Makefile.am (EXTRA_DIST): Add eclatcl.m4
	* src/eclatcl.m4: New file.
	* src/detvol-cl.opt: Rename to src/devol-cl.opt
	* src/cmdline.opt: Fix a typo

	* src/allocaddr-cl.opt: Rewrite usning new m4 macros.
	* src/asscaddr-cl.opt: Likewise.
	* src/cpimg-cl.opt: Likewise.
	* src/cpsnap-cl.opt: Likewise.
	* src/disasaddr-cl.opt: Likewise.
	* src/freeaddr-cl.opt: Likewise.
	* src/lsaddr-cl.opt: Likewise.
	* src/lsattr-cl.opt: Likewise.
	* src/lsimg-cl.opt: Likewise.
	* src/lsistat-cl.opt: Likewise.
	* src/lssg-cl.opt: Likewise.
	* src/lssnap-cl.opt: Likewise.
	* src/lstag-cl.opt: Likewise.
	* src/mkimg-cl.opt: Likewise.
	* src/mkinst-cl.opt: Likewise.
	* src/mktags-cl.opt: Likewise.
	* src/mkvol-cl.opt: Likewise.

	* src/allocaddr.c: Update calls to parse_options.
	* src/asscaddr.c: Likewise.
	* src/cpimg.c: Likewise.
	* src/cpsnap.c: Likewise.
	* src/devol.c: Likewise.
	* src/disasaddr.c: Likewise.
	* src/freeaddr.c: Likewise.
	* src/lsaddr.c: Likewise.
	* src/lsattr.c: Likewise.
	* src/lsimg.c: Likewise.
	* src/lsistat.c: Likewise.
	* src/lssg.c: Likewise.
	* src/lssnap.c: Likewise.
	* src/lstag.c: Likewise.
	* src/mkimg.c: Likewise.
	* src/mkinst.c: Likewise.
	* src/mktags.c: Likewise.
	* src/mkvol.c: Likewise.

	Update README

	Improve help and usage output.

	* NEWS: Version 0.9.90
	* configure.ac: Likewise.

	* grecs: Upgrade.

	* src/allocaddr-cl.opt: Use OPTIONS_COMMAND_BEGIN to
	declare subcommand. Remove the nousage flag.
	* src/cpimg-cl.opt: Likewise.
	* src/cpsnap-cl.opt: Likewise.
	* src/asscaddr-cl.opt: Likewise.
	* src/detvol-cl.opt: Likewise.
	* src/disasaddr-cl.opt: Likewise.
	* src/freeaddr-cl.opt: Likewise.
	* src/lsaddr-cl.opt: Likewise.
	* src/lsattr-cl.opt: Likewise.
	* src/lsimg-cl.opt: Likewise.
	* src/lsistat-cl.opt: Likewise.
	* src/lssg-cl.opt: Likewise.
	* src/lssnap-cl.opt: Likewise.
	* src/lstag-cl.opt: Likewise.
	* src/mkimg-cl.opt: Likewise.
	* src/mkinst-cl.opt: Likewise.
	* src/mktags-cl.opt: Likewise.
	* src/mkvol-cl.opt: Likewise.

	* src/generic-cl.opt (generic_parse_options): Change signature.
	Use subcmd member of struct grecs_proginfo.

	* src/eclat.h (eclat_do_command): New proto.
	(generic_parse_options): Change signature.

	* src/atvol.c: Update call to generic_parse_options.
	* src/deimg.c: Likewise.
	* src/getconout.c: Likewise.
	* src/lsiattr.c: Likewise.
	* src/lsinst.c: Likewise.
	* src/lsreg.c: Likewise.
	* src/lssattr.c: Likewise.
	* src/lsvol.c: Likewise.
	* src/lszon.c: Likewise.
	* src/mksnap.c: Likewise.
	* src/rmsnap.c: Likewise.
	* src/rmvol.c: Likewise.
	* src/setiattr.c: Likewise.
	* src/startstop.c: Likewise.

	* src/util.c (translate_ids): Remove unused variable.

2013-04-24  Sergey Poznyakoff  <gray@gnu.org.ua>

	Document cpimg and cpsnap

	Upgrade grecs

2013-04-23  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement copy-image and copy-snapshot.

	* TODO: Update.
	* lib/libeclat.h (EC2_API_VERSION): Update.
	* src/Makefile.am: Add new file.
	* src/cpimg-cl.opt: New file.
	* src/cpimg.c: New file.
	* src/cpsnap-cl.opt: New file.
	* src/cpsnap.c: New file.
	* src/eclat.c (cmdtab): Add new commands.
	* src/eclat.h (eclat_copy_image)
	(eclat_copy_snapshot): New protos.
	* etc/copy-snapshot.fln: New file.
	* etc/copy-image.fln: New file.
	* etc/Makefile.am (FLNFILES): Add copy-image.fln

	Document all implemented commands.

2013-04-22  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor doc-related changes.

	* doc/.gitignore: Add webdoc
	* doc/Makefile.am: Include Makefile.inc
	* doc/Makefile.inc: New file.
	* grecs: Update.
	* todostat.awk: Print short command names.

	Minor fix.

	* src/eclat.h (find_command_name): New proto.

	Automate generation of command lists in the docs.

	* src/.gitignore: Add generated *.man files.
	* src/Makefile.am (comtab.man,xref.man): Generate auxiliary man
	files for inclusion into eclat.1
	* doc/.gitignore: New file.
	* doc/Makefile.am: Generate eclat.1 from eclat.1man by including
	two auxiliary files from src
	* doc/eclat.1: Rename to doc/eclat.1man
	* doc/eclat.1man: Replace the list of eclat commands and the
	"see also" list by the .so requests.

2013-04-20  Sergey Poznyakoff  <gray@gnu.org.ua>

	Some more fixes.

	Implement new command - lsattr.  Improve docs.

	The lsattr command combines the functionality of lsiattr and lssattr.

	Restore one more file.

	Add back an accidentally removed file.

	Major rewrite. Provide short names for each command.

2013-04-18  Sergey Poznyakoff  <gray@gnu.org.ua>

	Document describe-images and describe-snapshot-attribute.

2013-04-11  Sergey Poznyakoff  <gray@gnu.org.ua>

	Document create-image and deregister-image

2013-04-05  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement create-image and deregister-image.

	* TODO: Update.
	* etc/create-image.fln: New file.
	* etc/deregister-image.fln: New file.
	* etc/Makefile.am (FLNFILES): Add new files.
	* lib/envmap.c: New file.
	* lib/Makefile.am (libeclat_a_SOURCES): Add new files.
	* lib/libeclat.h (eclat_encode_devmap): New proto.
	* src/creimg-cl.opt: New file.
	* src/creimg.c: New file.
	* src/drgimg.c: New file.
	* src/Makefile.am: Add new files.
	* src/dscrimgs-cl.opt: Change short option to -u for
	consistency with other commands.
	* src/eclat.c: New commands create-image and
	deregister-image.
	* src/eclat.h (eclat_create_image)
	(eclat_deregister_image): New prototypes.
	* src/runinsts.c (encode_devmap): Move to the library.

2013-02-15  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement DescribeImages and RunInstances.

	* TODO: Update.
	* etc/describe-images.fln: New file.
	* etc/run-instances.fln: New file.
	* etc/Makefile.am: Add new files.

	* lib/q2url.c (add_param): Accept NULL values.
	* lib/qaddparm.c (eclat_query_add_param): Likewise.
	* lib/qencode.c (encode_param): Likewise.
	* lib/reqsign.c (eclat_query_signature): Likewise.

	* src/dscrimgs-cl.opt: New file.
	* src/dscrimgs.c: New file.
	* src/runinsts-cl.opt: New file.
	* src/runinsts.c: New file.
	* src/Makefile.am: Add new files.
	* src/eclat.c (cmdtab): Register new commands.
	* src/eclat.h (eclat_run_instances)
	(eclat_describe_images): New protos.

2013-02-09  Sergey Poznyakoff  <gray@gnu.org.ua>

	Read default options from the environment variable ECLAT_OPTIONS.

	* src/cmdline.opt (process_options): Process the value
	of the environment variable ECLAT_OPTIONS prior to the
	actual command line options.
	* src/eclat.c (main): Update invocation of process_options.
	* doc/eclat.1: Update.

	Make all tag-related subcommands accept the same set of options.

	* src/dscrtags-cl.opt: New file.
	* src/Makefile.am (OPTFILES): Add dscrtags-cl.opt
	* src/cretags.c (process_tags): New parameter "require_tags".
	All uses updated.

	* src/dscrtags.c: Include dscrtags-cl.h.
	(eclat_describe_tags): Accept the same set of arguments as
	eclat_create_tags and eclat_delete_tags.
	* src/eclat.h (describe_query_update): New proto.
	* src/util.c (describe_query_update): New function.
	(describe_query_create): Rewrite as an entry point
	to describe_query_update.

	* doc/eclat-delete-tags.1: Update.
	* doc/eclat-describe-tags.1: Update

	* grecs: Upgrade
	* src/dscrsnapattr.c (eclat_modify_snapshot_attribute)
	(eclat_reset_snapshot_attribute): Remove unused locals.

2013-01-23  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update TODO.

	Some housekeeping.

	* grecs: Updgrade.
	* todostat.awk: New file.

	Implement snapshot attribute commands.

	* TODO: Update.
	* etc/describe-snapshot-attribute.fln: New file.
	* etc/modify-snapshot-attribute.fln: New file.
	* etc/reset-snapshot-attribute.fln: New file.
	* etc/Makefile.am: Add new files.
	* src/dscrsnapattr.c: New file.
	* src/Makefile.am: Add new files.
	* src/dscrinstattr.c (list_attrs): Remove.
	(eclat_describe_instance_attribute): Assign available_attrs.
	* src/eclat.c (cmdtab): New commands: describe-snapshot-attribute,
	modify-snapshot-attribute, and reset-snapshot-attribute.
	* src/eclat.h (eclat_describe_snapshot_attribute)
	(eclat_modify_snapshot_attribute)
	(eclat_reset_snapshot_attribute): New protos.
	(available_attrs): New extern.
	(list_attrs): New function.
	* src/modinstattr.c (list_attrs): Rename to list_mod_attrs.
	* src/util.c (available_attrs): New global.
	(list_attrs): New function.

	Escape backslashes in manpages.

	* doc/eclat-create-tags.1: Escape \n.

2013-01-21  Sergey Poznyakoff  <gray@gnu.org.ua>

	Bugfix

	* src/crevol.c (eclat_create_volume): Add SnapshotId parameter.

2013-01-19  Sergey Poznyakoff  <gray@gnu.org.ua>

	Update copyright years.

	Use AM_CPPFLAGS instead of the obsolete INCLUDES.

	* lib/Makefile.am: Update.
	* src/Makefile.am: Update.
	* tests/Makefile.am: Update.

	Implement modify-instance-attribute

	* src/modinstattr.c: New file.
	* src/Makefile.am (eclat_SOURCES): add modinstattr.c
	* src/eclat.c (cmdtab): Add "modify-instance-attribute"
	* src/eclat.h (eclat_modify_instance_attribute): New proto.

	* TODO: Update.
	* doc/eclat-modify-instance-attribute.1: New file.
	* doc/eclat-describe-instance-attribute.1: Update.
	* doc/Makefile.am: Add new file.

	* etc/modify-instance-attribute.fln: New file.
	* etc/Makefile.am: Add new file.

2012-12-15  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement map lookup functions in forlan.

	* lib/forlan.c: New functions "has_map" and "lookup".
	* lib/map.c (eclat_map_open): Don't issue error message
	if failed to open the map. Leave that to the caller.
	* src/util.c (translate_ids)
	(translate_resource_ids): Issue an error message if
	eclat_map_open fails.

	Implement direct and reverse map lookups.

	Not all maps support reverse lookups generically (for
	example, gdbm does not), therefore introduce a new
	"bidi" (bi-directional) map, which is a compound of
	two maps, each one used for a particular lookup direction.

	* lib/Makefile.am (maps): List all maps here.
	* lib/bidimap.c: New file. Implementation of a
	bi-directional map.
	* lib/filemap.c: Update to the changes in API.
	Implement reverse lookup.
	* lib/gdbmmap.c: Update to the changes in API.
	* lib/nullmap.c: Likewise.
	* lib/seqmap.c: Likewise.
	* lib/ldapmap.c: Update to the changes in API.
	Implement reverse lookup.
	New configuration keywords: reverse-filter, reverse-attr.
	* lib/libeclat.h (eclat_map_drv) <map_get>: Change signature,
	take search direction as a new argument.
	(eclat_map_get): Likewise.
	(eclat_map) <eclat_map_bad_dir>: New status code.
	(MAP_DIR, MAP_REV): New macros.
	(eclat_map_name_split): New function.
	(eclat_map_drv_bidi): New extern.
	* lib/map.c (eclat_map_get): Change signature,
	take search direction as a new argument.
	Pass new keyword to the "key" translation: "dir".
	(eclat_map_strerror): Handle new status code.
	(eclat_map_name_split): New function.
	* src/eclat.c (main): Register eclat_map_drv_bidi.
	* src/util.c (translate_ids): Use eclat_map_name_split
	to obtain direction code from the map name.
	(translate_resource_ids): Use direct lookups.

	* tests/Makefile.am: Add new testcases.
	* tests/testsuite.at: Likewise.
	* tests/bidimap.at: New testcase.
	* tests/filemap.at: Test reverse lookups.

	Bugfix

	* src/cretags-cl.opt: Expect colon as a separator between the
	map id and symbolic name (-r option).

2012-12-11  Sergey Poznyakoff  <gray@gnu.org.ua>

	Document attach-volume and detach-volume

	* TODO: Update.
	* doc/Makefile.am: Add new files.
	* doc/eclat-attach-volume.1: New file.
	* doc/eclat-detach-volume.1: New file.
	* doc/eclat.1: Mention attach-volume and detach-volume.

	Accept both Eclat command names and EC2 action names in format statements.

	* src/util.c (eclat_actcmp): New function.
	* src/eclat.h (eclat_actcmp): New proto.
	* src/eclat.c (find_command_tag): Use eclat_actcmp.

	Change handler invocation.

	* src/eclat.c: Initialize query in main and pass it to
	each handler along with the curl pointer in a "runtime
	environment" structure.  If the handler returns 0, send
	that query to the endpoint (from main, again).  This
	avoids duplication of code. Reserve a CMD_NOQRY flag
	for commands that are supposed to do everything by
	themselves.  Use command->tag member as the Action
	parameter.
	* src/eclat.h (eclat_command_env): New structure.
	Change all handler prototypes.
	* src/util.c (describe_query_create): Take a pointer
	to eclat_command_env_t as the first argument. Assume
	that the query structure is already initialized. The
	"verb" argument becomes superfluous and is removed. All
	uses changed.

	* src/allocaddr.c: Update.
	* src/asscaddr.c: Update.
	* src/attvol.c: Update.
	* src/cresnap.c: Update.
	* src/cretags.c: Update.
	* src/crevol.c: Update.
	* src/delsnap.c: Update.
	* src/delvol.c: Update.
	* src/detvol.c: Update.
	* src/disassaddr.c: Update.
	* src/dscraddrs.c: Update.
	* src/dscrazs.c: Update.
	* src/dscrinstattr.c: Update.
	* src/dscrinsts.c: Update.
	* src/dscrinststat.c: Update.
	* src/dscrregs.c: Update.
	* src/dscrsecgrps.c: Update.
	* src/dscrsnap.c: Update.
	* src/dscrtags.c: Update.
	* src/dscrvols.c: Update.
	* src/getconout.c: Update.
	* src/reladdr.c: Update.
	* src/startinst.c: Update.

2012-12-10  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement attach-volume and detach-volume

	* TODO: Update
	* etc/attach-volume.fln: New file.
	* etc/detach-volume.fln: New file.
	* etc/Makefile.am: Add new files.
	* src/attvol.c: New file.
	* src/detvol-cl.opt: New file.
	* src/detvol.c: New file.
	* src/Makefile.am: Add new files.
	* src/eclat.c: Add new commands.
	* src/eclat.h: Add new protos.
	* src/util.c (translate_ids)
	(translate_resource_ids): Do nothing id argc is 0.

2012-12-07  Sergey Poznyakoff  <gray@gnu.org.ua>

	Re-implement confirmation support.

	* doc/eclat-delete-volume.1: Update.
	* doc/eclat-release-address.1: Update.
	* doc/eclat.1: Update.
	* doc/eclat.conf.5: New section "CONFIRMATION"
	* lib/getyn.c (eclat_vgetyn): Negative default stands for no
	default at all.
	* lib/confirm.c (eclat_confirm_mode): Remove.
	(eclat_confirm): Change signature. Act according to the
	first argument.
	* lib/libeclat.h (eclat_confirm_mode): New enum.
	(eclat_confirm): Change signature.
	* src/cmdline.opt: Change handling of -Y and -N options.
	* src/config.c: New statement "confirm".
	* src/cretags.c: Remove call to eclat_confirm.  This is done by
	the caller.
	* src/delvol.c: Likewise.
	* src/reladdr.c: Likewise.
	* src/eclat.c (confirm_mode): New variable.
	(command) <flags>: New member.
	(cmdtab): Mark commands with appropriate flags.
	(main): Call eclat_confirm to confirm the command.
	* src/eclat.h (confirm_mode): New extern.
	(set_command_confirmation): New proto.

	* etc/eclat.cfin: Set a reasonably safe confirmation default.

	* lib/forlan.c (strtots): Remove unused variable.

2012-12-06  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fix.

	Implement create-volume and delete-volume commands.

	* doc/eclat-create-volume.1: New file.
	* doc/eclat-delete-volume.1: New file.
	* doc/Makefile.am: Add new files.
	* doc/eclat.1: Mention new commands.
	* etc/create-volume.fln: New file.
	* etc/delete-volume.fln: New file.
	* etc/Makefile.am: Add new files.
	* src/crevol-cl.opt: New file.
	* src/crevol.c: New file.
	* src/delvol.c: New file.
	* src/Makefile.am: Add new files.
	* src/eclat.c: Register new commands.
	* src/eclat.h (eclat_create_volume)
	(eclat_delete_volume): New protos.
	* TODO: Update.

	Add missing file.

	Implement the describe-regions command.

	* TODO: Update.
	* doc/Makefile.am: Add new files.
	* doc/eclat-describe-availability-zones.1: Mention describe-regions.
	* doc/eclat-describe-regions.1: New file.
	* doc/tmpl.1: Fix time-stamp-start setting.
	* etc/Makefile.am: Add new files.
	* etc/describe-regions.fln: New file.
	* src/Makefile.am: Add new files.
	* src/dscrregs.c: New file.
	* src/eclat.c: Register describe-regions.
	* src/eclat.h (eclat_describe_regions): New proto.

	Implement describe-availability-zones

	* TODO: Update.
	* doc/Makefile.am: Add new files.
	* doc/eclat-describe-availability-zones.1: New file.
	* doc/eclat.1: Mention describe-availability-zones.
	* src/Makefile.am: Add new files.
	* src/dscrazs.c: New file.
	* src/eclat.c: Register the describe-availability-zones command.
	* src/eclat.h (eclat_describe_availability_zones): New proto.
	* tests/describe-availability-zones.at: New file.
	* tests/Makefile.am: Add new file.
	* tests/testsuite.at: Include new test.

2012-12-05  Sergey Poznyakoff  <gray@gnu.org.ua>

	Merge branch 'master' of ssh://gray@git.gnu.org.ua/gitroot/eclat

	Implement release-address.

	* TODO: Update.
	* doc/Makefile.am: Add new files.
	* doc/eclat-allocate-address.1: New file.
	* doc/eclat-release-address.1: New file.
	* doc/eclat-associate-address.1: Update.
	* doc/eclat-describe-addresses.1: Update.
	* doc/eclat-disassociate-address.1: Update.
	* doc/eclat.1: Update.
	* etc/Makefile.am: Add new files.
	* etc/release-address.fln: New file.
	* lib/Makefile.am: Add new files.
	* lib/confirm.c: New file.
	* lib/getyn.c: New file.
	* lib/libeclat.h (eclat_getyn,eclat_vgetyn)
	(eclat_confirm): New protos.
	(eclat_confirm_mode): New extern.
	* src/Makefile.am: Add new files.
	* src/cmdline.opt: New options -Y (--yes) and -N (--no).
	* src/eclat.c: Register the release-address command.
	* src/eclat.h (EX_CANCELLED): New constant.
	(eclat_release_address): New proto.
	* src/reladdr-cl.opt: New file.
	* src/reladdr.c: New file.

	Fix time-stamp-start settings in manpages.

	Implement allocate-address command.

	* etc/Makefile.am: Add new files.
	* etc/allocate-address.fln: new file.
	* src/Makefile.am: Add new files.
	* src/allocaddr-cl.opt: New file.
	* src/allocaddr.c: New file.
	* src/eclat.c (): Add allocate-address.
	* src/eclat.h (eclat_allocate_address): New command.
	* tests/Makefile.am: Add new files.
	* tests/allocate-address.at: New file.
	* tests/testsuite.at: Include allocate-address.at

	* TODO: Update.
	* doc/eclat-create-tags.1: New file.
	* doc/eclat.1: Update.

	* doc/eclat-create-tags.1: Minor fix.

2012-10-23  Sergey Poznyakoff  <gray@gnu.org.ua>

	Version 0.1

2012-10-22  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fixes in documentation.

2012-10-18  Sergey Poznyakoff  <gray@gnu.org.ua>

	Document all commands implemented so far.

	* TODO: Update.
	* doc/Makefile.am: Update.
	* doc/eclat-describe-instance-status.1: New file.
	* doc/eclat-describe-security-groups.1: New file.
	* doc/eclat-describe-volumes.1: New file.
	* src/dscrsecgrps-cl.opt: Fix documentation.
	* src/dscrvols.c: Accept volume IDs in the command line.

2012-10-17  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve documentation.

	* doc/eclat-describe-instance-attribute.1: New file.
	* doc/eclat-describe-instances.1: New file.
	* TODO: Update.
	* doc/Makefile.am: Update.

2012-10-16  Sergey Poznyakoff  <gray@gnu.org.ua>

	Provide configuration statements for SSL control.

	* doc/eclat.conf.5: Document new configuration statements.
	* src/cmdline.opt (replvar): Change structure.
	(replace_int_var): New function.
	* src/config.c: Use "ssl" as a block or scalar statement.
	* src/eclat.c (ssl_verify_peer, ssl_ca_file)
	(ssl_ca_path): New variables.
	(main): Set up SSL configuration.
	* src/eclat.h (ssl_verify_peer, ssl_ca_file)
	(ssl_ca_path): New protos.

	Provide an option to read tags from file (for create-tags and delete-tags).

	* doc/eclat-create-tags.1: Document new options.
	* doc/eclat-delete-tags.1: Likewise.
	* src/cretags-cl.opt: New option --from-file (-T).
	* src/cretags.c (process_tags): Read tags from file, if supplied.

	Improve documentation.

	* TODO: Update.
	* doc/Makefile.am: Update.
	* doc/eclat-describe-addresses.1: New file.
	* doc/eclat-create-tags.1: Fix extra prefix in command synopsis.
	* doc/eclat-delete-tags.1: Likewise.
	* doc/eclat-describe-tags.1: Likewise.
	* doc/eclat-tmpl.1: Likewise.
	* src/eclat.c: Sort options.

2012-10-15  Sergey Poznyakoff  <gray@gnu.org.ua>

	Document tag manipulation commands.

	Improve manpages.

	Document snapshot commands.

	Add testcases for snapshot-management commands.

	* tests/delete-snapshot.at: New file.
	* tests/describe-snapshots.at: New file.
	* tests/Makefile.am: Add new files.
	* tests/testsuite.at: Likewise.

2012-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve the sort function.

	* grecs: Upgrade.
	* lib/forlan.c (strtots): New function.
	(func_sort): Rewrite.  The "sort" built-in takes two
	optional arguments: a path to the node to use as a key,
	and a string of flags that set the comparison function and
	sorting order.
	* lib/forlangrm.y: Bugfix in argument verification code.
	* src/dscrsnap-cl.opt: Document filters.
	* tests/sortnum.at: New file.
	* tests/sortrevnum.at: New file.
	* tests/sortstring.at: New file.
	* tests/sortts.at: New file.
	* tests/Makefile.am: Add new test cases.
	* tests/testsuite.at: Likewise.

	Implement snapshot-management commands.

	* TODO: Update.
	* configure.ac: Update.
	* doc/eclat.1: Update.
	* etc/create-snapshot.fln: New file.
	* etc/delete-snapshot.fln: New file.
	* etc/describe-snapshots.fln: New file.
	* etc/Makefile.am: Add new files.
	* lib/forlan.c (eval_func): Set return type according to
	that of the called function.
	(empty,timestamp): New built-in functions.
	* src/Makefile.am: Add new files.
	* src/cresnap.c: New file.
	* src/delsnap.c: New file.
	* src/dscrsnap-cl.opt: New file.
	* src/dscrsnap.c: New file.
	* src/eclat.c: Register new commands.
	* src/eclat.h: Add new prototypes.
	* tests/create-snapshot.at: New file.
	* tests/Makefile.am: Add new file.
	* tests/testsuite.at: Likewise.

2012-10-12  Sergey Poznyakoff  <gray@gnu.org.ua>

	Upgrade grecs

	Implement sequence map.

	* doc/eclat.conf.5: Document sequence maps.
	* lib/Makefile.am: Add new files.
	* lib/libeclat.h (eclat_map_drv_seq): New extern.
	* lib/seqmap.c: New file.
	* src/eclat.c: Minor fixes.
	* tests/Makefile.am: Add new testcase.
	* tests/testsuite.at: Likewise.
	* tests/seqmap.at: New file.

2012-10-11  Sergey Poznyakoff  <gray@gnu.org.ua>

	Trivial fixes.

2012-10-10  Sergey Poznyakoff  <gray@gnu.org.ua>

	Translate resource-id filters.

	* src/dscrtags.c (eclat_describe_tags): Call translate_resource_ids.
	* src/eclat.h (translate_resource_ids): New proto.
	* src/util.c (translate_resource_ids): New function.

	Improve map support.

	* doc/eclat.conf.5: Document the null map.
	* lib/nullmap.c: New file.
	* lib/Makefile.am: Add new files.
	* lib/gdbmmap.c (gdbm_map_open): Fix gdbm_open arguments.
	Report a detailed error description if it fails.
	* lib/libeclat.h (eclat_map_drv_null): New extern.
	* src/eclat.c (main): Register the null map.
	* tests/.gitignore: Update.
	* tests/Makefile.am: Add new files.
	* tests/filemap.at: New file.
	* tests/gdbmload.c: New file.
	* tests/gdbmmap.at: New file.
	* tests/nullmap.at: New file.
	* tests/atlocal.in (GDBMLOAD): New variable.
	* tests/testsuite.at: Include new files.

2012-10-09  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fixes in doc/eclat.conf.5

	Various improvements.

	* src/Makefile.am: Update.
	* src/cretags-cl.opt: New file.
	* src/deltags.c: Remove.
	* src/cretags.c: Rewrite.
	* src/dscraddrs-cl.opt: Document filters.
	* src/dscrinstattr.c: First check arguments, then translate.
	* src/eclat.c (main): Don't attempt to interpret the return
	if --dry-run is given.

	Improve the docs.

	* doc/eclat.conf.5: New file.
	* doc/Makefile.am: Add new file.
	* doc/eclat.1: Update.
	* lib/expand.c (eclat_expand_kw): New macro: login.
	* lib/filemap.c: Add the "key" statement.
	* lib/gdbmmap.c: Likewise.
	* lib/ldapmap.c: Likewise.
	(ldap_map_open): Always expand binddn.

	Implement test map mode.

	* src/cmdline.opt: New options: --map, --test-map
	* src/eclat.c: Implement test map mode.
	(test_map_name): New variable.
	* src/eclat.h (test_map_name): new extern.
	* src/util.c (custom_map): New variable.
	(translate_ids): Use custom_map if specified.

2012-10-08  Sergey Poznyakoff  <gray@gnu.org.ua>

	Remove spurious code.

	Improve configuration syntax help.

	* grecs: Upgrade.
	* lib/filemap.c: Revamp configuration routine.
	Provide configuration syntax help.
	* lib/gdbmmap.c: Likewamp.
	* lib/ldapmap.c: Provide configuration syntax help.
	* lib/libeclat.h (eclat_map_drv) <map_confhelp>: New member.
	(eclat_map_confhelp): New proto.
	* lib/map.c (eclat_map_confhelp): New function.
	* src/config.c (config_help): Call eclat_map_confhelp.

	Improve LDAP map.

	* lib/expand.c: New file.
	* lib/getans.c: New file.
	* lib/Makefile.am: Add new files.
	* lib/ldapmap.c (ldap_map) <passfile,prompt>: New members.
	(ldapmap_kw) <passfile,prompt>: New keywords.
	(ldap_map_open): Prompt for undefined credentials if the
	"prompt" statement is set to true.
	(ldap_map_get): Use eclat_expand_kw to expand the filter.
	* lib/libeclat.h (eclat_trimnl,eclat_getans)
	(eclat_expand_kw): New protos.
	* lib/map.c (eclat_map_get): Use eclat_expand_kw.
	* src/eclat.c (read_format): Likewise.

	Minor fixes.

	* lib/diag.c (parse_debug_level): Allow for category
	specifications without level (100 is assumed).
	* lib/ldapmap.c (ldap_map_config): Error checking.
	(ldap_map_free): Free all allocated memory.
	(parse_ldap_uri): Cleanup.

	Implement LDAP backend.

	* configure.ac: Check for openldap.
	* lib/Makefile.am (maps) [COND_LDAP]: Add ldapmap.c
	* lib/ldapmap.c: New file.
	* lib/libeclat.h (eclat_map_drv_ldap): New extern.
	* src/eclat.c (main) [WITH_LDAP]: Register eclat_map_drv_ldap.

2012-10-07  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement GDBM map backend.

	* README: Document --with-gdbm
	* configure.ac: Detect libgdbm.  New option --with-gdbm.
	* lib/gdbmmap.c
	* lib/Makefile.am (maps) [COND_GDBM]: Add new file.
	* lib/libeclat.h (eclat_map_drv_gdbm): New extern.
	* src/Makefile.am (LDADD): Add MAPLIBS.
	* src/eclat.c (mail) [WITH_GDBM]: Register eclat_map_drv_gdbm.

	Implement resource identifier mapping.

	Resource identifier mapping permits to use more customized identifiers
	instead of the Amazon resource identifiers.  For instance, you can use
	hostnames instead of the instance IDs, etc.

	* lib/Makefile.am: Add new files.
	* lib/filemap.c: New file.
	* lib/map.c: New file.
	* lib/libeclat.h (eclat_map_drv,eclat_map): New structs.
	(eclat_map_status): New enum.
	(eclat_map_init,eclat_map_lookup,eclat_map_config)
	(eclat_map_free,eclat_map_open,eclat_map_close)
	(eclat_map_get,eclat_map_strerror,eclat_map_drv_register)
	(eclat_map_foreach,eclat_map_free_all)
	(eclat_get_string_node): New protos.
	(eclat_map_drv_file): New extern.
	* src/accfile.c (access_file_lookup): Fix memory leak.
	* src/cmdline.opt: New option: --translate (-x)
	* src/config.c (eclat_kw) <map>: New block statement.
	(config_finish): Parse map configs.
	* src/asscaddr.c: Translate key.
	* src/dscrinstattr.c: Likewise.
	* src/dscrinsts.c: Likewise.
	* src/dscrinststat.c: Likewise.
	* src/dscrsecgrps.c: Likewise.
	* src/getconout.c: Likewise.
	* src/startinst.c: Likewise.
	* src/eclat.c (main): Initialize maps and free them when no
	more needed.
	* src/eclat.h (translate_option): New extern.
	(translate_ids): New proto.
	* src/util.c (translate_option): New variable.
	(translate_ids): New function.

2012-10-04  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve the docs.

	* README: Update.
	* TODO: Update.
	* src/dscrsecgrps-cl.opt: Document available filters.

	Implement eq/ne comparisons in forlan; Implement describe-security-groups command.

	* etc/Makefile.am: Add new file.
	* etc/describe-security-groups.fln: New file.
	* lib/forlan.c: Implement equality and inequality comparisons.
	* lib/forlan.h (forlan_opcode_eq)
	(forlan_opcode_ne): New opcodes.
	(FORLAN_NTYPES): New constants.
	* lib/forlangrm.y: Add equality and inequality productions.
	* lib/forlanlex.l: New tokens: == and !=
	* src/dscrsecgrps-cl.opt: New file.
	* src/dscrsecgrps.c: New file.
	* src/Makefile.am: Add new files.
	* src/eclat.c: Implement describe-security-groups
	* src/eclat.h (eclat_describe_security_groups): New proto.
	* src/cretags.c: Fix memory leaks.
	* src/deltags.c: Likewise.
	* src/dscrtags.c: Likewise.

	* tests/describe-security-groups.at: New test case.
	* tests/testsuite.at: Include new test case.
	* tests/Makefile.am: Add new test case.

2012-10-03  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fix.

	Add missing files.

2012-10-02  Sergey Poznyakoff  <gray@gnu.org.ua>

	Fix a typo

	Implement delete-tags and create-tags.

	Improve bash command completion

	Update TODO.

	Implement describe-instance-attribute

	* etc/describe-instance-attribute.fln: New file.
	* etc/Makefile.am: Add new file.
	* src/dscrinstattr.c: New file.
	* src/Makefile.am: Add new file.
	* src/eclat.c: New command describe-instance-attribute.
	* src/eclat.h: New proto.
	* tests/describe-instance-attribute.at: New test case.
	* tests/Makefile.am: Add new file.
	* tests/testsuite.at: Likewise.

	Improve grammar.

	Update docs.

	Add command completion routine for bash. Install formats to pkgdatadir

	* README: Update.
	* configure.ac: Remove --with-format-dir. Use --pkgdatadir instead.
	* etc/Makefile.am: Add new file.
	* etc/compl.sh: New file.

	Minor change

2012-10-01  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor change.

	Document get-console-output

	Fix disassociate-address to work with VPC addresses. Improve docs.

	Improve command matching

	* src/eclat.c (name_matches): New function.
	(find_command_name): Use it.
	(main): Handle --match-commands.
	* src/cmdline.opt: New option: --match-commands.
	* doc/eclat.1: Document new command matching algorithm.

	Implement exit; add some docs.

	* Makefile.am (SUBDIRS): Add doc.
	* configure.ac: Build doc/Makefile
	* doc/Makefile.am: New file.
	* doc/eclat-associate-address.1: New file.
	* doc/eclat.1: New file.
	* etc/associate-address.fln: Call exit if the request fails.
	* etc/default.fln: Call exit if error is returned or if the
	response is not recognized.
	* lib/forlan.c (forlan_eval_env) <exit_code>: New member.
	New built-in function: exit.
	(forlan_run): Return exit code.
	* lib/forlan.h (forlan_run): Change return type.
	* lib/forlanlex.l: Treat unquoted decimal number as
	a quoted string.
	* src/asscaddr-cl.opt: Minor changes.
	* src/cmdline.opt: Minor changes.
	* src/eclat.c: Return EX_NOPERM on unsufficient permissions
	to open the configuration file.
	* tests/exit.at: New file.
	* tests/Makefile.am: Add new files.
	* tests/testsuite.at: Include new test cases.
	* tests/tforlan.c: Propagate the return from forlan_run to
	the shell.

	Implement get-console-output command.

	* etc/Makefile.am: Add new files.
	* etc/get-console-output.fln: New file.
	* lib/forlan.c: New built-in function "decode".
	* lib/forlangrm.y: Fix grammar to allow functions to
	return any data type, not only node.
	* src/Makefile.am (eclat_SOURCES): Add new files.
	* src/eclat.c: Register get-console-output command.
	* src/eclat.h (eclat_get_console_output): New proto.
	* src/getconout.c: New file.
	* tests/Makefile.am: Add new files.
	* tests/testsuite.at: Include new files.
	* tests/decode.at: New test case.
	* tests/get-console-output.at: New test case.
	* tests/last.at: Minor change.

2012-09-30  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement reboot-instances.

	Implement the describe-volumes command.

	* etc/Makefile.am (FLNFILES): Add describe-volumes.fln
	(install-formats): New rule.
	* etc/describe-volumes.fln: New file.
	* src/Makefile.am (eclat_SOURCES): Add dscrvols.c
	(AM_LDFLAGS): Remove.
	(LDADD): Add $(CURL_LIBS)
	* src/accfile.c (get_access_creds): Minor changes.
	* src/cmdline.opt: New option --format-expression.
	* src/dscrinsts.c: Minor change.
	* src/dscrvols.c: New file.
	* src/eclat.c: New command "describe-volumes".
	* src/eclat.h (eclat_describe_volumes): New proto.
	* tests/describe-volumes.at: New file.
	* tests/Makefile.am: Add new file.
	* tests/testsuite.at: Include new file.

2012-09-29  Sergey Poznyakoff  <gray@gnu.org.ua>

	Minor fix.

	Implement describe-addresses; improve assign-address (vpc functionality)

	* etc/Makefile.am: Add new files.
	* etc/describe-addresses.fln
	* src/Makefile.am: Add new files.
	* src/asscaddr-cl.opt: New file.
	* src/asscaddr.c: Handle VPC addresses.
	* src/dscraddrs-cl.opt: New file.
	* src/dscraddrs.c: New file.
	* src/eclat.c: Add new commands.
	* src/eclat.h: Update.
	* tests/Makefile.am: Add new test suites.
	* tests/testsuite.at: Likewise.
	* tests/describe-addresses.at: New file.

	Minor change

	* src/eclat.c (read_format): Non-existent format file is
	not an error, if its name has been obtained from the
	format-file configuration statement.

2012-09-28  Sergey Poznyakoff  <gray@gnu.org.ua>

	Initial implementation of associate/dissociate address requests.

	* etc/Makefile.am: Add new files.
	* etc/associate-address.fln: New file.
	* etc/disassociate-address.fln: New file.
	* lib/forlan.c (eval_expr): Fix boolean NOT.
	* src/Makefile.am: Add new files.
	* src/asscaddr.c: New file.
	* src/dscrtags.c (eclat_describe_tags): Remove unused variables.
	* src/eclat.c (cmdtab): Register new commands.
	* src/eclat.h (eclat_associate_address)
	(eclat_disassociate_address): New commands.
	* src/util.c: Add AWSAccessKeyId param in eclat_send_query
	instead of in describe_query_create.
	* tests/Makefile.am: Add new files.
	* tests/testsuite.at: Include new test cases.
	* tests/associate-address.at: New test case.

	Remove spurious sources.

	* src/eclat.h (generic_parse_options): New proto.
	(generic_proginfo): New extern.
	* src/Makefile.am: Update.
	* src/dscrinsts-cl.opt: Remove.
	* src/dscrtags-cl.opt: Remove.
	* src/startinst-cl.opt: Remove.
	* src/generic-cl.opt: New file.
	* src/genericcl.c: New file.
	* src/dscrinsts.c: Use generic_parse_options.
	* src/dscrtags.c: Likewise.
	* src/startinst.c: Likewise.

	Minor fixes.

	* src/dscrinsts-cl.opt: Document filters..
	* src/eclat.c (aws_typestr): Add new types.
	(list_filters): Minor fix.
	* src/eclat.h (FILTER_BOOL)
	(FILTER_INT,FILTER_ENUM): New constants.
	* src/util.c (describe_query_create): Change signature.
	All uses updated.

	Add user-defined formats.

	* etc/Makefile.am: Minor fixes.
	* src/cmdline.opt: New option --format.
	Add alias --formfile to --format-file
	* src/config.c: New configuration statement "define-format".
	* src/eclat.c (define_format): Rename to set_command_format.
	All uses changed.
	(define_format,find_format): New functions
	(read_format): Compile named format, if supplied with the
	--format option.
	* src/eclat.h: Update.

	Improve testsuite.  Reorganize directory structure.

	* Makefile.am (SUBDIRS): Add etc
	(distuninstallcheck_listfiles): Ignore *.forlan files.
	* configure.ac: New options --split-format and --format-dir
	* etc/Makefile.am: New file.
	* etc/default.fln: New file.
	* etc/describe-instance-status.fln: New file.
	* etc/describe-instances.fln: New file.
	* etc/describe-tags.fln: New file.
	* etc/eclat.cfin: New file.
	* etc/flncat.c: New file.
	* etc/start-instances.fln: New file.
	* etc/stop-instances.fln: New file.
	* src/Makefile.am: Remove eclat.conf. It is built in /etc now.
	* src/eclat.conf: Remove.
	* src/cmdline.opt: Update.
	* src/config.c: New configuration statement "format-file".
	* src/eclat.c (format_file_option): New global.
	(main): Read format from format-file, if supplied.  Expand
	keywords in its argument.
	* src/eclat.h (format_file_option): New extern.
	* tests/.gitignore: Update.
	* tests/Makefile.am: Add new files.
	* tests/describe-instance-status.at: New test case.
	* tests/describe-instances.at: New test case.
	* tests/describe-tags.at: New test case.
	* tests/dscrinststat.at: New test case.
	* tests/start-instances.at: New test case.
	* tests/stop-instances.at: New test case.
	* tests/testsuite.at (ECLAT_TEST_FORMAT): New macro.
	Include new test cases.
	* tests/trws.c: New file.

2012-09-27  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve credentials file handling.

	* src/accfile.c: Treat access_file_name as a globbing pattern.
	Allow for account names in the file.

	Implement describe-instances and some bugfixes.

	* configure.ac: Change bug-reporting email.
	* grecs: Upgrade.
	* lib/forlan.c (eval_comp0): Set root.
	* lib/xmltree.c (eclat_partial_tree_end_handler): Set type
	to grecs_node_block for empty blocks.
	* src/Makefile.am: Add new files.
	* src/eclat.c: Rewrite and simplify command name matcher.
	Implement describe-instances.
	* src/eclat.conf (DescribeInstances): New format.
	* src/eclat.h (eclat_describe_instances): New proto.

2012-09-26  Sergey Poznyakoff  <gray@gnu.org.ua>

	Improve documentation output.

	* src/dscrinststat-cl.opt: Document available filters.
	* src/dscrtags-cl.opt: Likewise.
	* src/eclat.c (list_filters): New function.
	* src/eclat.h (FILTER_STRING,FILTER_DATE)
	(FILTER_ENUM): : New defines.
	(filter_descr): New struct.
	* src/util.c (get_scr_cols): New function.
	(describe_query_create): Minor fix.

	Implement DescribeInstanceStatus action.

	* lib/forlan.c (generic_print): Skip NULL entries.
	* src/Makefile.am (eclat_SOURCES): Add new files.
	(OPTFILES): New variable.
	(BUILT_SOURCES,EXTRA_DIST): Add OPTFILES and their derivatives.
	* src/dscrinststat-cl.opt: New file.
	* src/dscrinststat.c: New file.
	* src/util.c: New file.
	* src/dscrtags.c: Use functions from util.c
	* src/eclat.c: New command describe-instance-status.
	(main): Don't coredump on NULL formats.
	* src/eclat.conf (DescribeInstanceStatus): New format.
	* src/eclat.h (eclat_describe_instance_status)
	(describe_query_create)
	(eclat_send_query): New protos.

	Change command line syntax.

	The new syntax is:

	  eclat [GLOBAL-OPTIONS] COMMAND [COMMAND-OPTIONS] [ARGS]

	* grecs: Upgrade.

	* lib/forlan.c: New forlan function: sort().
	* src/.gitignore: Update.
	* src/Makefile.am: Update.
	* src/cmdline.opt: Use the nopermute option.
	* src/dscrtags-cl.opt: New file.
	* src/descrtags.c: Rename to src/dscrtags.c
	* src/eclat.c (command): Revamp structure.
	(eclat_command): Remove.
	(command_tab): Remove.
	(cmdtab,cmdcnt): New globals.
	(main): Change command line syntax.
	* src/eclat.h (eclat_command): Remove.
	(eclat_command): Remove.
	* src/startinst-cl.opt: New file.
	* src/startinst.c: Include startinst-cl.h. Process the command
	line options.

2012-09-25  Sergey Poznyakoff  <gray@gnu.org.ua>

	Some housekeeping.

	* README: Update
	* README-hacking: New file.
	* bootstrap: Create a placeholder for ChangeLog, if it doesn't exist.

	Provide default formats for all implemented commands.

	* src/cmdline.opt: Work over quoting errors in getopt.m4
	* src/eclat.c: In debug level main.10 and higher dump XML
	to the file eclat.dump.xml.
	* src/eclat.h (XML_DUMP_FILE_NAME): New define.
	* src/eclat.conf: Provide default formats for all implemented
	commands.

	Upgrade grecs.

	Use forlan to format the output.

	* lib/forlan.h (forlan_lex_begin): Remove
	(forlan_lex_from_buffer)
	(forlan_lex_from_file): New protos.
	(forlan_parse): Remove.
	(forlan_parse_bufferm,forlan_parse_file): New protos.
	* lib/forlangrm.y (forlan_parse): Remove.
	(forlan_parse_bufferm,forlan_parse_file): New functions.
	* lib/forlanlex.l (YY_INPUT): Optionally, read input from file.
	(forlan_lex_begin): Remove
	(forlan_lex_from_buffer)
	(forlan_lex_from_file): New functions.
	* src/cmdline.opt: New options: --format, --sort
	* src/config.c: New statement: format.
	* src/eclat.c: Use output format scripts, if provided.
	* src/eclat.conf: Define output format for DescribeTags.
	* src/eclat.h: Include forlan.h
	(define_format): New proto.
	* tests/tforlan.c: New option: -s

	Implement variables and loops in forlan.

	* lib/forlan.c (free_type_comp): Free labels and argv.
	(dump_comp): Rewrite.
	(eval_node_finder): Remove.
	(eval_comp): Rewrite.
	(eval_comp0): New function.
	(free_type_loop, dump_loop, eval_loop)
	(dump_continue, eval_continue)
	(dump_break, eval_break)
	(dump_stop,  eval_stop): New methods.
	(f_tab): Add new methods.
	* lib/forlan.h (forlan_node_comp): Change structure.
	* lib/forlangrm.y: Implement loops.
	* tests/Makefile.am: Add new tests.
	* tests/testsuite.at: Likewise.
	* tests/forlan01.at: Update.
	* tests/tforlan.c: New option -s (sort tree).
	* tests/dump01.at: New file.
	* tests/dump02.at: New file.
	* tests/last.at: New file.
	* tests/let.at: New file.
	* tests/listall.at: New file.
	* tests/print01.at: New file.
	* tests/print02.at: New file.
	* tests/print03.at: New file.
	* tests/tags.xml: New file.
	* tests/tagshairy.at: New file.

2012-09-24  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement loops and variables

	* lib/forlan.c: Implement loops and variables.
	* lib/forlangrm.y: Likewise.
	* lib/forlanlex.l: Likewise.
	* lib/forlan.h (forlan_parse): Change return type.
	(forlan_type): New types.
	(forlan_dump_tree): Change signature.
	(forlan_value_type) <forlan_value_boolean>: New type.
	* tests/tforlan.c: Update.

2012-09-22  Sergey Poznyakoff  <gray@gnu.org.ua>

	Introduce forlan functions.

	* lib/forlan.c (forlan_find_function): New function.
	(func_dump, func_print)
	(func_error,func_parent): Function placeholders.
	* lib/forlan.h (forlan_node_func) <fp>: Change datatype.
	(forlan_eval_env_t): New typedef.
	(forlan_value_type): New enum.
	(forlan_value,forlan_function): New struct.
	* lib/forlangrm.y: Check number of arguments passed to functions.
	* tests/forlan01.at: Update.

	Minor change to pacify distcheck

	* Makefile.am: Define distuninstallcheck_listfiles

	Introduce output formatting language

	* configure.ac: Check for lex and yacc.
	* lib/diag.c: New file (moved from ../src with edits)
	* lib/forlan.c: New file.
	* lib/forlan.h: New file.
	* lib/forlangrm.y: New file.
	* lib/forlanlex.l: New file.
	* lib/.gitignore: Add new files.
	* lib/Makefile.am: Add new file.
	* lib/libeclat.h: Add diagnostics-related stuff.
	* src/Makefile.am (eclat_SOURCES): Remove diag.c
	* src/cmdline.opt (set_program_name): Move to ../lib/diag.c
	* src/diag.c: Remove (see above).
	* src/config.c: Reflect changes to the diagnostics subsystem.
	* src/eclat.c: Likewise.
	* src/eclat.h: Remove diagnostics-related stuff.
	It lives in libeclat.h from now on.
	* src/error.c: Remove.
	* tests/forlan01.at: New testcase.
	* tests/testsuite.at: Include forlan01.at
	* tests/tforlan.c: New file.
	* tests/.gitignore: Add new files.
	* tests/Makefile.am: Add new files.

2012-09-20  Sergey Poznyakoff  <gray@gnu.org.ua>

	Parse returned XML into a grecs tree structure.

	* lib/xmltree.c: New file.
	* lib/Makefile.am: Add new file.
	* lib/libeclat.h: Include expat.h and grecs.h
	(eclat_partial_tree_t): New typedef.
	(eclat_partial_tree_create,eclat_partial_tree_destroy)
	(eclat_partial_tree_finish,eclat_partial_tree_data_handler)
	(eclat_partial_tree_start_handler)
	(eclat_partial_tree_end_handler): New protos.
	* src/eclat.c (main): Initialize XML parser with eclat_partial_tree
	handlers and bind it to the CURL output handler.
	* tests/.gitignore: Add txml
	* tests/Makefile.am (TESTSUITE_AT): Add xml01.at
	Build txml
	* tests/testsuite.at: Include xml01.at
	* tests/txml.c: New file.
	* tests/xml01.at: New file.

	Require libexpat, implement DescribeTags.

	* configure.ac: Require libexpat
	* src/descrtags.c: New file.
	* src/Makefile.am: Add new files.
	* src/accfile.c (access_file_lookup): Bugfix (stripped the
	first byte from the returned access_key).
	* src/cmdline.opt: New option --describe-tags
	* src/eclat.c: Register eclat_describe_tags handler.
	* src/eclat.h: Include expat.h
	(dry_run_mode): New extern.
	(eclat_command_describe_tags): New command code.
	(eclat_describe_tags): New proto.
	* src/startinst.c: More debugging info. Implement dry-run,

	Include default configuration file.

	* src/eclat.conf: New file.
	* src/Makefile.am (install-data-local): New rule.

	Implement multiple regions and StopInstance command.

	* src/config.c: Change configuration statements.
	* src/eclat.c: Translate endpoint if region is given.
	* src/eclat.h: Update.
	* src/startinst.c: Implement stop instance.

	Minor fix.

	* lib/libeclat.h (EC2_API_VERSION): New define.
	* lib/qcreat.c: Add "Version: parameter here.
	* src/startinst.c: Update.

	Implement start-instance.

	* lib/qaddparm.c: New file.
	* lib/qcreat.c: New file.
	* lib/qencode.c: New file.
	* lib/qfree.c: new file.
	* lib/Makefile.am: Add new files.
	* lib/libeclat.h (ec2_query) <https, verb>: Remove.
	<flags>: New member.
	(eclat_query_create, eclat_query_free)
	(eclat_query_encode): New protos.
	* lib/q2url.c (eclat_query_to_url): Fix.
	* lib/reqsign.c (eclat_query_signature): Bugfixes.
	* src/config.c (config_finish): Call grecs_tree_process.
	* src/eclat.c (url_base): Remove.
	(main): Install curl debugging function if required.
	* src/eclat.h: Update.
	* src/startinst.c (eclat_start_instance): Implement.

2012-09-19  Sergey Poznyakoff  <gray@gnu.org.ua>

	Implement query-to-url function.

	* lib/q2url.c: New file.
	* lib/Makefile.am: Add new file.
	* lib/libeclat.h (ec2_query) <signature>: New member.
	(eclat_query_to_url): New proto.
	(eclat_query_signature): Change signature.
	* lib/reqsign.c (eclat_query_signature): Store signature to
	req->signature.

	lib: include config.h where it is missing.

	Implement query signature.

	* lib/reqsign.c: New file
	* lib/libeclat.h (eclat_query_signature): New proto.
	* lib/Makefile.am: Add reqsign.c

	Initial commit

Local Variables:
mode: change-log
version-control: never
buffer-read-only: t
End:
