Personal tools
     DOCUMENTATION

Conary:Release Notes/1.2

From rPath Wiki

Jump to: navigation, search
Conary --> Release Notes --> 1.2.x

Contents

The following release notes apply to 1.2.x versions of Conary.

Conary 1.2.22

  • The SubscriptionLogWriter now handles line continuation. CNY-2693
  • A bug that caused a traceback when r.MakeDevices() is called with a path that contains 'lib' has been fixed. CNY-2692
  • A regression introduced by the multi-URL support for addArchive has been fixed. CNY-2696


Conary 1.2.21

  • An xml formatted log has been added to :debuginfo. This is in addition to the human readable log. The xml log contains the same information as the human readable log, plus additional contextual information useful for formatting the log data. CNY-2487
  • A new selective logging facility for policy to use to inspect build output has been added. CNY-2622
  • It is now possible to pass a list of multiple URLs to addArchive. Conary will try to download the source from each URL, in order, until it succeeds. CNY-2505
  • Previously, rollbacks could restore files from local rollbacks by overwriting existing contents rather than replacing the file. In addition, the operation was not journaled properly. CNY-2596
  • A bug in finding the sources required to build all the packages for a group that omitted replace[1] packages has been fixed. This mainly affected rmake builds of group recipes. CNY-2605
  • When using PostgreSQL as a repository backend, some queries could be executed with poor execution plans CNY-2639
  • A bug that caused a local cook "cvc cook pkg.recipe" e.g., "cvc cook pkg.recipe" to fail at "Copying forward metadata to newly built items..." when the Conary repository for that recipe is not available has been fixed. CNY-2640
  • The conary rdiff command works correctly for groups that include troves from foreign repositories. CNY-2544
  • An issue related to the build logger not properly setting the logging pseudo-tty in raw mode has been fixed. CNY-2647
  • Conary can now parse perl dependencies with periods in them from the command line. CNY-2667
  • A source of circular references which could cause unpredictable memory usage has been removed. CNY-2674
  • Fixed a file descriptor leak when using in-memory-only databases.
  • More of the update logic is now protected by the filesystem journal, and the journal now cleans up rollback state on failure. CNY-2592
  • Conary now displays more progress information during the "Preparing changeset request..." phase. Much of the time in this phase is spent communicating with the repository. Now "Requesting changeset ..." and "Downloading" will be shown as data is transferred.

Conary 1.2.20

  • A bug that occasionally caused a thread deadlock when multiple threads access the local system Conary database concurrently has been fixed. CNY-2586
  • Checking out sources unpacks duplicate binary files CNY-2543
  • Derived packages use the revision which was shadowed from to find the version to derive from instead of the latest on the branch CNY-2577
  • A bug that occurred when rMake recursed through a group recipe that made use of the replace command has been fixed. CNY-2606

Conary 1.2.19

  • A close() method has been added to UpdateJob objects. It is recommended to call the method explicitly instead of relying on the object to be collected when going out of scope. CNY-2489
  • Conary now has support for group policies. Policies deriving from GroupEnforcementPolicy and ImageGroupEnforcementPolicy will be run on groups at the end of the cook process. CNY-2378
  • ImageGroup is now an attribute tracked in a group's troveInfo. This attribute is set for groups meant to define a complete, functional system, and implies that ImageGroupEnforcementPolicy group policies have been run for that group, recursively. CNY-2520
  • The VersionConflicts group policy has been added. This group policy enforces that two different versions of a trove will not be accidentally included in one install image. CNY-2371
  • TroveFilters now exist. Trove filters allow a packager to reference particular troves within a group for group policy inclusions/exceptions. CNY-2477
  • The Conary policy to fix trailing newlines in config files has been corrected to handle non-writable config files. CNY-2559
  • The "cvc derive" command now creates a reference directory named _OLD_ROOT_ alongside _ROOT_ when the --extract argument is provided. CNY-2530
  • A new group recipe command, startGroup, has been added, which calls createGroup, addNewGroup and setDefaultGroup in one step. CNY-2197
  • The addCvsSnapshot source action no longer caches the HEAD of the repository, since cvs export will not use it. CNY-2568
  • Macros from config files and from the command line are now available to group recipes. CNY-2574
  • Binary packages built from superclass recipes will be unflavored, regardless of any flavor-related references in a recipe. CNY-2576
  • Conary no longer loses ownership of changed files when updating multiple flavors of the same version of the same package at the same time. CNY-2553
  • If Conary is running on kernels which, under certain circumstances, return EINVAL when calling poll(), the lazy file cache will only count the file descriptors it has open itself. CNY-2571
  • Job invocation information no longer uses null characters, which are not allowed in an XML document. CNY-2580
  • Updating files which point to other files (due to a PTR in the changeset) previously failed when those other files were not being installed at the same time (due to a "conary remove" on those files, for example). CNY-2595
  • Filtering all java dependencies no longer produces a stack trace. CNY-2594

Conary 1.2.18

  • Handling pkg-config dependencies has been moved to conary-policy. CNP-93
  • When resuming the update after the execution of a critical update, Conary will now use the original file replacement flags. This corrects file conflict errors in a migrate when a critical update was present. CNY-2513
  • The lazy file cache was using /proc/self/fd as a method of determining the number of open file descriptors for the current process. However, under certain circumstances the directory is not readable. The lazy file cache now uses a poll(2)-based technique. CNY-2536


Conary 1.2.17

  • Java dependencies for classes that are not dependency-complete are now automatically disabled. To re-enable them, the missing dependencies should be added as buildRequires. CNY-2175
  • A minor bug in the display of the password prompt has been fixed. CNY-2497
  • Slow SQL queries used to remove unused entries from the TroveFiles table and TroveTroves table have been rewritten to make some queries faster with repositories implemented with a SQLite database. CNY-2515
  • When using the tagScript argument with the client's applyUpdateJob call, the paths to group scripts to be executed are stored relative to the root of the installation, instead of absolute. The tag script is always supposed to be executed under chroot. CNY-2523
  • The file EULA_Conary.txt has been added to clarify that Conary is available under two licenses, and to state the conditions under which the two licenses apply.

Conary 1.2.16

  • The rollback API now raises a RollbackError instead of returning non-zero on errors. CNY-1643
  • When file conflicts occur while cooking groups, the deps that caused a package to be pulled in are listed. CNY-2308
  • Config policy will automatically append a newline to non-binary files. Files that are marked as Config and appear to be binary will continue to trigger an error as they have previously. CNY-2422
  • Perl requirements that are not present on the system or provided by the package being built are dropped. CNY-2180
  • Two expansion functions have been introduced to package recipes: r.glob and r.regexp. These functions return an object that can be substituted for any API parameter that calls for a string based regexp or glob. CNY-2222
  • Group recipe actions like "r.addAll" and "r.addCopy" now record the version of the group that is being copied from into the newly created group. CNY-2359
  • Add code to display new-style metadata through rq, q, and showchangeset, as well as propagate that metadata via cooking, promoting, shadowing, and committing source packages. Entering this metadata must still be done through scripts. CNY-1808
  • Added a hook that allows build requirements to be overridden by rMake. CNY-2427
  • Build actions that don't match anything (r.Move, r.Copy etc) will now log exactly what they were trying to do. CNY-2216
  • Conary no longer tracebacks when building a package that contains a pkgconfig reference to a file in the current package that is in a symlinked directory. CNY-2455
  • The order in which configuration files are read when a glob was passed to includeConfigFile is now deterministic. CNY-2483

Conary 1.2.15

  • Moving an unmodified shadow to tip via cvc promote no longer causes an error. CNY-2441
  • Recipes using addSvnSnapshot no longer modify the conary configuration object's tmpDir setting CNY-2401
  • Fixed a rare bug in which dependency resolution would fail when a dependency that used to be provided by one installed package is now provided by two new packages. CNY-2459
  • Conary will now use the proxy settings stored in its local configuration when loading remote configuration files. CNY-2363
  • Policies that move files in destdir now track path changes they make so that files will end up in the correct package or component after being moved, when "package=" or "component=" has been used in a build action. CNY-1679

Conary 1.2.14

  • The /etc/ld.so.conf.d/*.conf handling added to Conary 1.2.13 introduced a bug that could erase necessary entries from ld.so.conf in some circumstances. This bug has been resolved. CNY-2440

Conary 1.2.13

  • Conary will not downgrade packages if no version is specified by the user, but, due to an out of date mirror or other reasons, the update available for a package is older than the currently installed package. CNY-2402
  • Conary now recognizes /etc/ld.so.conf.d/*.conf files, adding an include line to /etc/ld.so.conf if they exist, and does not add new duplicate entries to /etc/ld.so.conf for directories already specified in /etc/ld.so.conf.d/*.conf files. CNY-2432
  • Superclasses are now loaded from the filesystem. Superclasses can now be cooked. Doing so will make a changeset that installs the recipe itself on the filesystem. CNY-983
  • When building packages, Conary now reads /etc/ld.so.conf.d/*.conf files to determine whether to include the path in the dependency. CNY-2433


Conary 1.2.12

  • A getDatabase() method has been added to the ConaryClient class. This method returns the local system database object. Code that needs to query the local system database should use this method to obtain the database object. CNY-2316
  • Spaces in URLs are now automatically escaped. CNY-2389
  • The Requires() policy now inspects Lib: and Lib.private: pkg-config keywords in .pc files to find library files, and where it finds them, it adds appropriate Conary trove requirements to the .pc files. CNY-2370
  • The PackageSpec documentation incorrectly stated that you could pass both package and component information to it; this has been corrected to properly redirect to ComponentSpec for this usage. CNY-2387
  • An update bug that could result in a trove integrity error has been fixed. The issue would occur when updating packages where, for some files, the only changes are to file versions. CNY-2403

Conary 1.2.11

  • The error message printed when Conary encounters an unhandled exception has been changed to reflect the fact that the common case is merely poor handling of the error condition, rather than another bug. It has also been reformatted to display better in rITS. CNY-2265
  • The "conary-debug" script that collects information to help debug a crash has been enhanced to include the recently-added manifest file. CNY-2338
  • PythonSetup synopsis now mentions the setupName keyword argument. CNY-2360
  • The conary.1 manual page now documents the purpose of the /etc/conary/components directory. CNY-2361
  • The clearBuildReqs() function now has a synonym called clearBuildRequires() and the clearCrossReqs() function now has a synonym called clearCrossRequires(). The old function names will be deprecated in the future. CNY-834
  • When building groups, r.addCopy() now respects the groupName flag. CNY-2345
  • The searchPath parameter in group methods now works when it contains packages (before it worked only with labels). CNY-2372
  • A bug that was preventing users with colons in their passwords to use the web interface has been fixed. CNY-2374
  • Attempting to add entitlements for unknown entitlement classes now raises an UnknownEntitlementGroup exception. CNY-2377
  • Committing source packages that use shell-style brace and glob expansion in addPatch() can now be committed to a repository. CNY-1152

Conary 1.2.10

  • The conary verify command no longer complains about files which have been removed with conary remove. CNY-950
  • Local rollbacks for removals now store the original contents for modified config files. CNY-2350
  • Permission errors now list both the URL and the repository hostname. CNY-2211
  • A new boolean server configuration option, serializeCommits, has been added to explicitly limit contention in certain cases. Successfully enabling it requires a minor schema update. CNY-2285
  • Servers in maintenance mode no longer return Internal Server Errors to GET requests from clients. CNY-2229
  • The addPatch() source action honors shell-style brace and glob expansion when sourceDir is defined. CNY-1152
  • A new command, cvc explain, has been added. cvc explain displays the documentation for recipe methods. For example, cvc explain addSource shows the on-line documentation for the addSource() source action. CNY-2242
  • The command line interface to cvc derive (added in Conary 1.2.8) has been changed. It now derives onto your buildLabel by default, with a --target option to derive onto a different label. The cvc derive interface is subject to further change.
  • A bug that caused an exception when inspecting ELF files with a standalone ABI has been fixed. CNY-2333
  • A bug that caused updates with group scripts to fail when run with the --root option with a trailing slash in the path has been fixed. CNY-2348
  • An issue related to file placeholders potentially being lost while rewriting rollback changesets has been fixed.


Conary 1.2.9

  • The documentation strings for the update code have been revised to include the most common exceptions raised as part of prepareChangeSet and updateChangeSet. CNY-1732
  • File level requirements provided by the same file are dropped. CNY-2177
  • Java dependencies that do not start with a valid TLD are now excluded. CNY-2176
  • The exceptDeps keyword parameter is now allowed for r.Provides(), analogously to r.Requires(). CNY-1485
  • The new sourceDir keyword parameter is now available for r.addSource(), r.addPatch(), and r.addArchive() to specify that the source is found within the maindir. CNY-1439
  • LD_LIBRARY_PATH is now set when calling bootstrapped python, in order to load the correct python libraries. CNY-2319
  • The :config component is built by file location, rather than from files marked as config files by the Config policy. This means that the configComponent configuration item no longer operates. CNY-2256
  • A keepRequired config option has been added. This has the same effect as always setting the --keep-required flag on update. CNY-569
  • The error message for erased dependencies is now more explicit about what happened to the package that is no longer providing dependencies, and where the package with the missing dependencies came from. CNY-2248
  • We now record the current state of the database to a flat file after updates as an extreme recovery mechanism. CNY-1801
  • The "logcat" script no longer errors out if the log file is empty or contains None for entitlements. CNY-2252
  • Repositories running under Apache are now correctly displaying the real error when trying to generate the verbose traceback emails. CNY-2320
  • An update job that includes a critical update and an update to a group that includes a pre-update script will no longer run the script twice. CNY-2325
  • A bug that could cause incorrect SQLite database error messages has been fixed. CNY-1840


Conary 1.2.8

  • Added the cvc derive command. CNY-2237
  • A new method, conary.conaryclient.getClient(), has been added to allow the creation of a conaryclient with configuration to match that would be used with a conary command line client. CNY-1745
  • Unhandled exceptions that are raised inside a progress callback no longer terminate the update process. A warning is emitted and the update continues. CNY-2304
  • The Conary library now has a parallel implementation to gpg for the trust algorithm. CNY-1988
  • A problem occurring when updating troves sharing a large number of identical files has been fixed. CNY-2273
  • Repository traceback emails are now more verbose. CNY-2287
  • Methods starting with two underscore characters are considered internal and are no longer passed to the XML-RPC library for marshaling. CNY-2289
  • It is now possible to clone a group that contains references to both a cloned package and the version that the cloned package originated from. CNY-2302
  • When data from stdin is provided to a taghandler, but the taghandler is missing or fails to read some or all of the data, it will no longer result in a database locked error. CNY-2257
  • Conary no longer exits with an unhandled exception if /tmp does not exist when attempting to run a trove script (e.g., group pre/post scripts). CNY-2303


Conary 1.2.7

  • The cvc command now prints out the most recent log message from the underlying source code control system when creating new snapshot archives. CNY-1778
  • Conary now has support for cmake, using the r.CMake() build action in recipes. CNY-1321
  • Fixed a traceback that would occur when a component doesn't exist even though its containing package does. CNY-2213
  • Cloning with --default-only no longer removes references to components of packages that are not being cloned. CNY-2226
  • A bug that prevented cvc cook from being able to look up path IDs if a component of the package being built was missing from the repository has been fixed. CNY-2250
  • PGP keys using unknown string-to-key specifiers (as generated by gpg --export-secret-subkeys for the corresponding secret key) are no longer producing an error when iterating through the keyring. CNY-2258
  • Embedded signatures in secret subkeys now use the public key's cryptographic key, which does not require a passphrase to be decoded. CNY-2224


Conary 1.2.6

  • When cooking packages or groups, conary now displays the methods that are called. It also displays the methods that are unused, making it easier to see if a function from a superclass has been left out. CNY-2193
  • Use of macros in the r.Link() build action worked only in limited cases. CNY-2209
  • Mirror mode now includes full file streams in changesets, instead of differential streams. CNY-2210


Conary 1.2.5

  • The OpenPGP implementation now merges PGP keys properly. CNY-1987
  • The OpenPGP implementation is capable of generating trust signatures. CNY-1990
  • A bug which could cause troves containing identical files to become corrupted in a system database has been fixed. Note that repository databases were not affected, and that by default Conary does not allow installing troves containing identical files. CNY-2191
  • MakeDirs now handles trailing '/' characters in directory names. CNY-1526
  • Using the new provideGroup keyword argument to the r.User() method in a UserGroupRecipe, you can now specify that the user's primary group needs to be already on the system, rather than be added while creating the user. CNY-2096
  • A bug that resulted in a KeyError when removing a trove from a group that has 3 levels of subgroups has been fixed. CNY-1372
  • A bug that could result in a decremented source count when promoting a package to a sibling of a parent branch has been fixed. CNY-2108
  • A problem resulting in derived packages corrupting files with the same content was fixed. CNY-2157
  • A bug that caused internal server errors when retrieving changesets that contained compressed file data over 4GB in size has been fixed. CNY-2170, CNY-2173
  • HTTP error codes generated by HTTP proxies are now properly interpreted by Conary clients. CNY-2181
  • When talking to a repository, Conary proxies will now automatically switch the protocol to HTTPS whenever authentication information is injected on behalf of the client. CNY-2184
  • addSvnSnapshot no longer generates conflicts in the paths for temporary checkouts. CNY-2196

Conary 1.2.4

  • Fixed: A file that was mistakenly ommitted from packaging 1.2.3. CNY-2155

Conary 1.2.3

  • Commands cvc listkeys, cvc addkey, and cvc getkey provide basic command-line PGP key management. CNY-2150
  • Source action addSvnSnapshot has the ability to add specific SVN revisions using the revision argument.
  • Fixed: An updated failure that occurred when two version of a package have been installed: one local and one from a repository. CNY-2127
  • Fixed: A regression introduced in 1.2.1 affecting patch files that apply multiple changes to the same file. CNY-2141
  • Fixed: Potential problem for scripts that open file descriptors and then disconnect from the terminal. CNY-2143

Conary 1.2.2

  • The conary rollback command has an alias of conary rb.
  • The conary rblist output combines packages and their components in a single line, similar to the output of conary update. CNY-2134
  • Python and Ruby lib-specific flags cause a package to be architecture-flavored. CNY-2110
  • Groups using setSearchPath prefer packages on the labels and troves listed explicitly in the search path, even if the label is specified in r.add. For example, if the your search path includes example=conary.rpath.com@rpl:1/1-1-1, then r.add('example', 'conary.rpath.com@rpl:1') in a group recipe will prefer revision 1-1-1 over later revision. Before, it would find the latest revision in the repository when specifying the label in r.add. CNY-1993
  • PGP version 2 keys are ignored when parsing the GPG keyring. CNY-2115
  • Conary accepts direct key signatures for PHP keys. CNY-2120
  • Action setSearchPath searches the leaves for every source in the search path before searching the rest of the repository. Before, it searched the leaves for each label, then the rest of the labels, and then groups. CNY-2131
  • Fixed: Source actions that draw from source control systems, such as addMercurialSnapshot, produced directory names that collided with a trove with the same name on a different label, producing a snapshot of a different source control repository. CNY-2124
  • Fixed: Tag scripts did not close file descriptors larger than 2 before calling a function from the exec family. CNY-2114
  • Fixed: Error determining the correct version for packages when multiple branches of that package exist on the same label. CNY-2128
  • Fixed: Error handling multiple entitlements to the same hostname. CNY-2105
  • Fixed: Incorrect computing of the URL sent back to the client when connecting through an HTTP proxy. CNY-2117

Conary 1.2.1

  • The client is less aggressive when sending keepalive packets with long-running requests. 2104
  • Callbaks for cvc promote and cvc clone are more verbose. CNY-2063
  • Source action addGitSnapshot is available for adding source from a Git source control system. CNY-1965
  • A cvc cook no longer warns that derived packages are in an experimental state. CNY-2092
  • Improved search for matching packages on check-in, making it easier to develop correct packages. CNY-2027
  • More efficient addition of a large number of user maps when addServerGlobs is used. CNY-2083
  • Fixed: Incorrect handling during schema migration of branches that end in redirects CNY-2081
  • Fixed: Erroneous handling of redirects between branches on the same label. CNY-2103
  • Fixed: Erroneous handling of the --replace-files option for conary updateall. CNY-2112
  • Fixed: Patches were partially applied when building, and they were not reverted, resulting in rare circumstances of incorrect patches appearing to be correctly applied. Patches are no longer partially applied. CNY-2017
  • Fixed: Conary incorrectly determined the flags for Python dependencies on 64-bit systems. CNY-2091
  • Fixed: Ruby dependencies functioned incorrectly in a bootstrap build of the Ruby package. CNY-2109

Conary 1.2.0

  • Label Affinity replaces Branch Affinity: This release deprecates branch affinity in favor of label affinity. This is to eliminate instances of label multiplicity, in which a trove on the same label can appear on multiple branches, each considered unique and simultanously installable. With label affinity, all troves on the same label are considered together, despite their branches, with the newest trove being preferred over older ones. As a result, Conary keeps packages from the same label during an update rather than from the same branch. Many of the individual changes in this version are parts of implementing this general change in behavior.
  • Critical update information includes enough data to recreate the original update job. CNY-1608
  • Unknown trove types in the database are properly stored in extracted trove information. CNY-2059
  • The internal diff and patch implementation support files without trailing newlines. CNY-1979
  • The cvc clone and cvc promote commands work more efficiently by not downloading unnecessary packages. This also allows a user to clone packages where access to some included troves is unavailable at the time of the promote or clone operation. CNY-1913
  • The Conary client API has an improved way to release open file descriptors. CNY-1834
  • Filesets can be cloned. CNY-1297
  • When creating rollbacks, large files are compressed on disk instead of in memory. CNY-1896
  • A migrate overwrites changes made to files that are not yet owned by Conary, but that already exist on the system, including managed non-configuration files that have changed. CNY-1868
  • When signals are received during updates, the journal is rolled back before Conary terminates. CNY-1393
  • The cvc checkout operations for multiple projects uses fewer repository calls and a single changeset.
  • The cvc update and cvc diff commands accept a source version argument without a source count. 1921
  • Client-side call getTroveLatestByLabel was added.
  • Client-side call getAllTroveLeavesByLabel filters results by server names to eliminate illegitimate results from repositories which host multiple server names. CNY-1771
  • Label lookups pick the latest version which matches instead of the latest version on each branch.
  • The cvc and conary commands ignore broken pipes on standard output instead of producing a traceback. CNY-1853
  • Redirects follow the label of the branch with which they were built instead of the branch itself.
  • Redirects point to labels rather than branches. CNY-1857
  • The --replace-files option has been split into four options: --replace-managed files, --replace-unmanaged files, --replace-modified-files, and --replace-config-files. The original option is still accepted and is equivalent to specifying all four options simultaneously. CNY-1270
  • Dependency resolution allows updates across branches if the branches are on the same label.
  • The --show-files parameter added to conary config displays where configuration items originated.
  • Newly installed transient files silently replace files which are otherwise unowned. CNY-1841
  • EntitlementTimeout exception notifies clients that an entitlement has timed out from the authentication cache. CNY-1862
  • When EntitlementTimeout is received, Conary rereads entitlements from disk. CNY-1862
  • User- and entitlement-based external authentication checks include remote_ip. CNY-1864
  • External entitlement servers can specify per-entitlement timeouts and automatic retry values. CNY-2060
  • Setting forceSSL requires an HTTPS connection when authentication data is passed to an Apache-based Conary repository. CNY-1880
  • Fixed: The update journal did not have an entry for hard links which were made to targets which already existing on the system. This was causing system corruption if the journal had to be rolled back. CNY-1671
  • Fixed: The cvc clone and cvc promote commands complained when a build requirement was not cloned to the new location. CNY-1844
  • Fixed: The mirror client could not use hidden commits when mirroring to a single target. CNY-1981
  • Fixed: Exception triggers while migrating postgresql repositories. CNY-1912
  • Fixed: The server would not respond with the proper error message when in maintenance mode. CNY-1996

Additional changes, including build changes and bug fixes, can be found here.