click (0.4.11) saucy; urgency=low

  * Drop --force-missing-framework from PackageKit plugin now that
    /usr/share/click/frameworks/ubuntu-sdk-13.10.framework is in
    ubuntu-sdk-libs.
  * Show a neater error message when a package's framework is not installed
    (LP: #1236671).
  * Show a neater error message when building a package whose manifest file
    cannot be parsed (LP: #1236669).
  * Show a neater error message when running "click install" with
    insufficient privileges (LP: #1236673).

 -- Colin Watson <cjwatson@ubuntu.com>  Fri, 11 Oct 2013 12:07:06 +0100

click (0.4.10) saucy; urgency=low

  * When removing packages, only drop privileges after ensuring the
    existence of the database directory (LP: #1233280).

 -- Colin Watson <cjwatson@ubuntu.com>  Mon, 30 Sep 2013 18:12:14 +0100

click (0.4.9) saucy; urgency=low

  * Explicitly build-depend on pkg-config, since it's needed even if the
    PackageKit/GLib-related build-dependencies are removed for backporting.
  * Remove some stray documentation references to Ubuntu 13.04.
  * Ensure that the user's overlay database directory exists when
    unregistering a preinstalled package (LP: #1232066).
  * Support packages containing code for multiple architectures, and
    document the "architecture" manifest field (LP: #1214380, #1214864).
  * Correctly pass through return values of commands as the exit status of
    the "click" wrapper.
  * Extend "click info" to take a registered package name as an alternative
    to a path to a Click package file (LP: #1232118).
  * Force unpacked files to be owner-writeable (LP: #1232128).

 -- Colin Watson <cjwatson@ubuntu.com>  Mon, 30 Sep 2013 15:24:49 +0100

click (0.4.8) saucy; urgency=low

  * Show a proper error message if "click build" or "click buildsource" is
    called on a directory that does not exist or does not contain a manifest
    file, rather than crashing (LP: #1228619).
  * Restore missing newlines after JSON dumps in "click info" and "click
    list --manifest".
  * Tidy up use of PackageKit IDs; local:click should refer to uninstalled
    packages, while installed:click refers to installed packages.
  * Expose application names and whether a package is removable via the
    PackageKit API: the IDs of installed applications are now formed as
    comma-separated key/value pairs, e.g.
    "installed:click,removable=1,app_name=foo,app_name=bar" (LP: #1209329).
  * Rename ClickUser.__setitem__ to ClickUser.set_version and
    ClickUser.__delitem__ to ClickUser.remove; with multiple databases it
    was impossible for these methods to fulfil the normal contract for
    mutable mappings, since deleting an item might simply expose an item in
    an underlying database.
  * Allow unregistering preinstalled packages.  A preinstalled package
    cannot in general actually be removed from disk, but unregistering it
    for a user records it as being hidden from that user's list of
    registered packages.  Reinstalling the same version unhides it.
  * Consolidate ClickInstaller.audit_control into ClickInstaller.audit.
  * Validate the shipped md5sums file in "click verify" (LP: #1217333).

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 24 Sep 2013 15:21:48 +0100

click (0.4.7) saucy; urgency=low

  * Run system hooks when removing a package from the file system
    (LP: #1227681).
  * If a hook symlink is already correct, don't unnecessarily remove and
    recreate it.
  * Improve "click hook install-system" and "click hook install-user" to
    remove any stale symlinks they find, and to run Exec commands only once
    per hook.  This significantly speeds up system and session startup when
    lots of applications are installed (LP: #1227604).
  * Rename "click hook install-system" and "click hook install-user" to
    "click hook run-system" and "click hook run-user" respectively, to
    better fit their semantics.  (I expect these commands only to have been
    used internally by click's own Upstart jobs.)
  * Filter version control metadata and editor backup files out of binary
    packages in "click build" (LP: #1223640).

 -- Colin Watson <cjwatson@ubuntu.com>  Fri, 20 Sep 2013 18:07:13 +0100

click (0.4.6) saucy; urgency=low

  * Make sure all unpacked files and directories are group- and
    world-readable, and (if owner-executable) also group- and
    world-executable (LP: #1226553).

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 17 Sep 2013 13:37:06 +0100

click (0.4.5) saucy; urgency=low

  * Document --force-missing-framework option in the error message produced
    when a package's required framework is not present.
  * Make "click pkgdir" exit 1 if a directory for the given package name or
    path is not found, rather than letting the exception propagate
    (LP: #1225923).
  * Run system hooks at boot time, in particular so that AppArmor profiles
    for packages in /custom are generated and loaded (LP: #1223085).

 -- Colin Watson <cjwatson@ubuntu.com>  Mon, 16 Sep 2013 20:55:28 +0100

click (0.4.4) saucy; urgency=low

  * Amend "click help install" to recommend using "pkcon install-local".
  * Run hooks when removing a per-user package registration.
  * Adjust usage lines for "click help verify" and "click help pkgdir" to
    indicate that options are allowed.
  * Add a click(1) manual page.
  * Use json.dump and json.load in most places rather than json.dumps and
    json.loads (which unnecessarily construct strings).
  * Add "click unregister", which unregisters a package for a user and
    removes it from disk if it is not being used.
  * Add RemovePackage support to the PackageKit plugin, mapped to "click
    unregister".
  * Attempt to remove the old version of a package after installing or
    registering a new one.
  * Remove code supporting PackageKit 0.7 API, and instead arrange to
    disable the PackageKit plugin if the new API is not available, since we
    don't need to build it on Ubuntu 12.04 LTS.
  * Report errors from click subprocesses in PackageKit plugin
    (LP: #1218483).
  * Implement PackageKit search by name and by details.
  * Reserve manifest keys starting with an underscore for use as dynamic
    properties of installed packages.
  * Add the dynamic key "_directory" to "click list --manifest" output,
    showing the directory where each package is unpacked (LP: #1221760).
  * Add the dynamic key "_removable" to "click list --manifest" output,
    which is 1 if a package is unpacked in a location from which it can be
    removed, otherwise 0.

 -- Colin Watson <cjwatson@ubuntu.com>  Mon, 09 Sep 2013 13:37:39 +0100

click (0.4.3) saucy; urgency=low

  * Add support for multiple installation root directories, configured in
    /etc/click/databases/.  Define /usr/share/click/preinstalled,
    /custom/click, and /opt/click.ubuntu.com by default.
  * Add --all-users option to "click install" and "click register": this
    registers the installed package for a special pseudo-user "@all", making
    it visible to all users.
  * Add "click hook install-user", which runs all user-level hooks for all
    packages for a given user.  This is useful at session startup to catch
    up with packages that may have been preinstalled and registered for all
    users.
  * Run "click hook install-user" on session startup from an Upstart user
    job.
  * Avoid calling "click desktophook" if
    /usr/share/click/hooks/upstart-app-launch-desktop.hook exists.
  * Force umask to a sane value when dropping privileges (022 for clickpkg,
    current-umask | 002 for other users; LP: #1215480).
  * Use aa-exec-click rather than aa-exec in .desktop files generated by
    "click desktophook" (LP: #1197047).

 -- Colin Watson <cjwatson@ubuntu.com>  Wed, 04 Sep 2013 17:01:58 +0100

click (0.4.2) saucy; urgency=low

  * Suppress dpkg calls to lchown when not running as root (LP: #1220125).

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 03 Sep 2013 10:12:29 +0100

click (0.4.1) saucy; urgency=low

  [ Sergio Schvezov ]
  * Compare mtimes for desktop files, not stat objects.

 -- Colin Watson <cjwatson@ubuntu.com>  Mon, 02 Sep 2013 14:54:49 +0100

click (0.4.0) saucy; urgency=low

  [ Colin Watson ]
  * Add "installed-size" as a mandatory field in the control area's
    "manifest" file; it should not be present in source manifest files, and
    is generated automatically by "click build".
  * Add an optional "icon" manifest key.
  * Consistently call clickpreload_init from preloaded functions in case
    they happen to be called before libclickpreload's constructor.
  * Run dpkg with --force-bad-path so that /sbin and /usr/sbin are not
    required to be on $PATH; we don't use the tools dpkg gets from there.

  [ Loïc Minier ]
  * Add fopen64 wrapper (LP: #1218674).

 -- Colin Watson <cjwatson@ubuntu.com>  Fri, 30 Aug 2013 17:59:34 +0100

click (0.3.4) saucy; urgency=low

  * Make "click desktophook" tolerate dangling symlinks in
    ~/.local/share/applications/.

 -- Colin Watson <cjwatson@ubuntu.com>  Wed, 28 Aug 2013 18:00:55 +0200

click (0.3.3) saucy; urgency=low

  * Recommend click-apparmor from click (suggested by Jamie Strandboge).

 -- Colin Watson <cjwatson@ubuntu.com>  Wed, 28 Aug 2013 12:17:23 +0200

click (0.3.2) saucy; urgency=low

  [ Jamie Strandboge ]
  * Document maintainer as an optional field.

  [ Matthias Klumpp ]
  * Support PackageKit 0.8 API.

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 27 Aug 2013 21:07:02 +0200

click (0.3.1) saucy; urgency=low

  [ Colin Watson ]
  * Fix some more failures with mock 0.7.2.
  * Work around the lack of a python-apt backport of
    apt_pkg.TagFile(sequence, bytes=True) to precise.

  [ Jamie Strandboge ]
  * Codify allowed characters for "application ID".
  * Fix typos in apparmor hook example.

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 13 Aug 2013 10:10:11 +0200

click (0.3.0) saucy; urgency=low

  * Insert a new "_click-binary" ar member immediately after
    "debian-binary"; this allows detecting the MIME type of a Click package
    even when it doesn't have the extension ".click" (LP: #1205346).
  * Declare the application/x-click MIME type, since the shared-mime-info
    upstream would rather not take the patch there at this point
    (https://bugs.freedesktop.org/show_bug.cgi?id=66689).
  * Make removal of old links for single-version hooks work even when the
    application ID is not a prefix of the pattern's basename.
  * Add an optional Hook-Name field to hook files, thereby allowing multiple
    hooks to attach to the same virtual name.
  * Rename click's own "desktop" hook to "click-desktop", making use of the
    new Hook-Name facility.

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 06 Aug 2013 11:08:46 +0100

click (0.2.10) saucy; urgency=low

  * Force click's stdout encoding to UTF-8 regardless of the locale.
  * Don't encode non-ASCII characters in JSON dumps.
  * Treat manifests as UTF-8.

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 30 Jul 2013 15:14:16 +0100

click (0.2.9) saucy; urgency=low

  * Tolerate dangling source symlinks in "click desktophook".
  * Handle the case where the clickpkg user cannot read the .click file,
    using some LD_PRELOAD trickery to allow passing it as a file descriptor
    opened by the privileged process (LP: #1204523).
  * Remove old links for single-version hooks when installing new versions
    (LP: #1206115).

 -- Colin Watson <cjwatson@ubuntu.com>  Mon, 29 Jul 2013 16:56:42 +0100

click (0.2.8) saucy; urgency=low

  * Check in advance whether the root is writable by the clickpkg user, not
    just by root, and do so in a way less vulnerable to useful exception
    text being eaten by a subprocess preexec_fn (LP: #1204570).
  * Actually install
    /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.click.pkla in
    the packagekit-plugin-click binary package.

 -- Colin Watson <cjwatson@ubuntu.com>  Thu, 25 Jul 2013 17:40:49 +0100

click (0.2.7) saucy; urgency=low

  * Fix error message when rejecting "_" from a package name or version
    (LP: #1204560).

 -- Colin Watson <cjwatson@ubuntu.com>  Wed, 24 Jul 2013 16:42:59 +0100

click (0.2.6) saucy; urgency=low

  * Adjust written .desktop files to avoid tickling some bugs in Unity 8's
    parsing.

 -- Colin Watson <cjwatson@ubuntu.com>  Wed, 24 Jul 2013 08:03:08 +0100

click (0.2.5) saucy; urgency=low

  * Ensure that ~/.local/share/applications exists if we need to write any
    .desktop files.

 -- Colin Watson <cjwatson@ubuntu.com>  Wed, 24 Jul 2013 07:44:44 +0100

click (0.2.4) saucy; urgency=low

  * Mangle Icon in .desktop files to point to an absolute path within the
    package unpack directory if necessary.
  * Add a "--" separator between aa-exec's options and the subsidiary
    command, per Jamie Strandboge.

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 23 Jul 2013 23:38:29 +0100

click (0.2.3) saucy; urgency=low

  * Set Path in generated .desktop files to the top-level package directory.
  * Revert part of geteuid() change in 0.2.2; ClickUser._drop_privileges and
    ClickUser._regain_privileges need to check the real UID, or else they
    will never regain privileges.
  * When running a hook, set HOME to the home directory of the user the hook
    is running as.

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 23 Jul 2013 22:57:03 +0100

click (0.2.2) saucy; urgency=low

  * dh_click: Support --name option.
  * Avoid ClickUser.__iter__ infecting its caller with dropped privileges.
  * Use geteuid() rather than getuid() in several places to check whether we
    need to drop or regain privileges.
  * Add a user-level hook to create .desktop files in
    ~/.local/share/applications/.  (This should probably move to some other
    package at some point.)

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 23 Jul 2013 19:36:44 +0100

click (0.2.1) saucy; urgency=low

  * Fix "click help list".
  * Remove HOME from environment when running dpkg, so that it doesn't try
    to read .dpkg.cfg from it (which may fail when dropping privileges from
    root and produce a warning message).
  * Refuse to install .click directories at any level, not just the top.
  * Add "click pkgdir" command to print the top-level package directory from
    either a package name or a path within a package; based on work by Ted
    Gould, for which thanks.

 -- Colin Watson <cjwatson@ubuntu.com>  Mon, 22 Jul 2013 09:36:19 +0100

click (0.2.0) saucy; urgency=low

  * Revise and implement hooks specification.  While many things have
    changed, the previous version was never fully implemented.  However, I
    have incremented the default Click-Version value to 0.2 to reflect the
    design work.
    - The "hooks" manifest key now contains a dictionary keyed by
      application name.  This means manifest authors have to repeat
      themselves much less in common cases.
    - There is now an explicit distinction between system-level and
      user-level hooks.  System-level hooks may reflect multiple concurrent
      versions, and require a user name.
    - Hook symlinks are now named by a combination of the Click package
      name, the application name, and the Click package version.
    - The syntax of Pattern has changed to make it easier to extend with new
      substitutions.
  * Reject '_' and '/' characters in all of package name, application name,
    and package version.

 -- Colin Watson <cjwatson@ubuntu.com>  Fri, 19 Jul 2013 13:11:31 +0100

click (0.1.7) saucy; urgency=low

  * Correct name of .pkla file (now
    /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.click.pkla).

 -- Colin Watson <cjwatson@ubuntu.com>  Thu, 18 Jul 2013 17:00:46 +0100

click (0.1.6) saucy; urgency=low

  * Move defaults for frameworks and hooks directories to click.paths.
  * Install /var/lib/polkit-1/localauthority/10-vendor.d/10-click.pkla to
    allow the phablet user to install Click packages without being known to
    logind, as a temporary workaround.

 -- Colin Watson <cjwatson@ubuntu.com>  Thu, 18 Jul 2013 16:55:08 +0100

click (0.1.5) saucy; urgency=low

  * Fix infinite recursion in ClickUser.click_pw.
  * When all the files requested for installation are Click packages,
    override org.freedesktop.packagekit.package-install* PolicyKit actions
    to com.ubuntu.click.package-install, defined with a more open default
    policy.  (This requires some backports to PackageKit, not in the archive
    yet.)

 -- Colin Watson <cjwatson@ubuntu.com>  Wed, 17 Jul 2013 15:46:48 +0100

click (0.1.4) saucy; urgency=low

  * Add support for per-user package registration.
  * Move install log file from $root/.click.log to $root/.click/log.
  * Add an autotools-based build system for our C components.
  * Initial version of a PackageKit plugin, in a new packagekit-plugin-click
    package; still experimental.
  * Restore compatibility with Python 3.2 (LP: #1200670).
  * Adjust tests to pass with mock 0.7.2 (as in Ubuntu 12.04 LTS).
  * Make the default root directory a configure option.
  * Add a simple "click list" command.

 -- Colin Watson <cjwatson@ubuntu.com>  Mon, 15 Jul 2013 15:55:48 +0100

click (0.1.3) saucy; urgency=low

  * Rename to click, per Mark Shuttleworth.

 -- Colin Watson <cjwatson@ubuntu.com>  Thu, 27 Jun 2013 15:57:25 +0100

click-package (0.1.2) saucy; urgency=low

  * Disable dh_sphinxdoc for builds that are not building
    architecture-independent packages.

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 25 Jun 2013 18:57:47 +0100

click-package (0.1.1) saucy; urgency=low

  * clickpackage.tests.test_install: Set NO_PKG_MANGLE when building fake
    packages, to avoid having Maintainer fields mangled on the buildds.

 -- Colin Watson <cjwatson@ubuntu.com>  Tue, 25 Jun 2013 17:32:00 +0100

click-package (0.1) saucy; urgency=low

  * Initial release.

 -- Colin Watson <cjwatson@ubuntu.com>  Mon, 24 Jun 2013 14:43:21 +0100
