forked from sassoftware/conary
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
9374 lines (8623 loc) · 458 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changes in 2.5.6:
o Bug Fixes:
* Interrupting an update with Ctrl-C during "Committing database
transaction" no longer results in the filesystem journal being
rolled back after the database has already committed. (CNY-3106)
* Fixed getChangeSetSize failing when given a job containing
erasures. (CNY-3876)
* Fixed a "pathId not in changeset" crash when updating a trove
across labels after local filesystem file types were changed.
(CNY-3877)
* Allow None types when serializing update jobs. (CNY-3879)
* Fixed a race condition in standalone proxy caches that could cause
a crash when three or more clients requested the same changeset
simultaneously. (CNY-3880)
* Fixed "conary repair" crashing when a config file was replaced by
a symlink. (CNY-3881)
o Internal Changes:
* Committing to repositories running Conary older than 2.1.0 is no
longer supported.
* Removed support for mod_python in the repository. Use a WSGI
server such as gunicorn or uwsgi.
Changes in 2.5.5:
o New Features:
* Added a new repository content store type 'flat'. In this
configuration contents are stored without any intermediate
directories, which may improve access times and will improve
sequential access by e.g. backups. To use it, use the syntax
"contentsDir flat /path/to/store". (CNY-2406)
* The time at which a trove was committed is now shown in "conary rq
--debug --info". It is also shown without --debug for source
troves. (CNY-3487)
* Added a new 'subPackages' troveinfo that enumerates the names of
packages created via PackageSpec and groups created via
createGroup from the same source. Query, repquery, and
showchangeset commands with the --info and --debug flag set will
display the list of subpackages.
o Bug Fixes:
* The online help for GroupSetRecipe has been fixed to refer to the
CML method that exists, rather than the SystemModel method that
does not. (CNY-3868)
* Fixed crash in GroupSetRecipe when using an empty find()
(CNY-3872)
o Internal Changes:
* When committing changesets to a repository, regular contents are
written before the database operations begin. This avoids holding
the commit lock any longer than necessary.
* Upgraded the embedded SQLite version to 3.8.7.1
Changes in 2.5.4:
o New Features:
* Progress information is no longer emitted when downloading
ephemeral sources during a cook. This keeps logs from being
bloated when using very large sources. (CNY-3865)
* Add createAppOnlyArchive script for creating archives that could
be used in an App Only deployment.
* r.MakeInstall now takes a makeName argument for overriding the
name of the make binary. Additionally, a makeName macro may be
specified to override the default make binary used for both r.Make
and r.MakeInstall.
* Added cscache hit/miss counters to the proxy.
* Minor performance improvements for updates.
* Add an architecture configuration for i86pc (Solaris x86)
* Allow tar binary name to be overriden by the tar macro.
o Bug Fixes:
* Conary no longer fails to load user/group information on platforms
where uid 0 or gid 0 are not root. (CNY-3867)
* Fixed applying updates with a configuration of 'dbPath :memory:'
always failing with a permission error.
* Policy no longer fails a build if /etc/ld.so.conf doesn't exist.
o Internal Changes:
* When running the test suite, if the python executable being used
does not have cap_sys_chroot, skip the capsule tests that require
cap_sys_chroot and print a message documenting how to enable those
tests.
* Define a MIN C macro for portabilty to Solaris.
* Switch install, sed, cp, and make calls to use Makefile macros for
portabilty to platforms that rename the GNU versions of those
utilities.
* Switch to using os.setpgid when configuring the build process
instead of os.setpgrp because setpgrp creates a new session on
Solaris.
Changes in 2.5.3:
o New Features:
* Key/Value metadata is no longer copied forward during the build
process. To re-enable this behavior remove 'keyValue' from
r.metadataSkipSet. (CNY-3854)
* Add a new JsonUpdateCallback class that produces json-formatted
output. Conary commands that use an UpdateCallback now take a
--json flag to turn on json output (CNY-3855)
* Disabled commitRelativeChangeset by default. This may improve the
reliability of very large cooks. (CNY-3856)
* Added support for LZO compression in sources.
o Bug Fixes:
* Fixed system-model updates doing pairs of erase/install operations
instead of updates for all troves pulled in as dependencies
(CNY-3841)
* Some truncated gzip files no longer abort builds due to uncaught
struct.error exception (CNY-3852)
* 'conary rq' now emits a helpful error message instead of crashing
when installLabelPath is not defined. (CNY-3853)
* conarycfg: fixed parsing of repositoryMap scaling exponentially
with the number of entries (CNY-3857)
* Fixed 'buildlabel' macro not being set during initial checkin of a
recipe
o Internal Changes:
* The includeConfigFile directive now normalizes relative paths and
URLs. This improves compatibility with various types of web
services.
Changes in 2.5.2:
o New Features:
* Added an updated version of the Conary introductory technical
paper as doc/ConaryTechnology.fodt
o Bug Fixes:
* Fixed being unable to create roles via the web interface.
(CNY-3837)
* Fixed performance regression when committing to a very large
repository. (CNY-3834)
* Fixed model cache corruption when the system-model contained
'patch' operations. (CNY-3836)
* lookaside: fix sourceSearchDir always missing autosourced files
(CNY-3845)
Changes in 2.5.1:
o New Features:
* The mirror process can now build bigger changesets, which slightly
speeds up mirror jobs. If configured using the new 'splitNodes
False' option, the mirror can commit multiple versions of a trove
at once, although doing so on an older repository will cause a
crash.
* Minor performance improvements when committing changesets.
* Repositories can now accept changesets containing multiple
versions of the same trove.
* The Python dep analyzer is now compatible with Python 3, but no
longer compatible with Python 2.4 (CNY-3828)
o Bug Fixes:
* Fixed mirror-mode changesets always including all file contents,
instead of only those files that have changed. (CNY-3822)
* Capsule synchronization no longer fails if a RPM contains a
symlink but the filesystem contains a different type of file
instead. (CNY-3823)
* Fixed default userinfo handler crashing when malformed lines (e.g.
comments) are present in passwd and group files. (CNY-3824)
* A bug that caused erroneous Insufficient Permission errors when
authenticating via an entitlement has been fixed. (CNY-3827)
* Fixed a long-standing caching bug in which a system-model update
would fail with unresolved dependencies that were already
satisfied by installed troves. (CNY-3770)
Changes in 2.5.0:
o New Features:
* Significant performance improvements when working with
configuration objects. Configuration metadata, such as the
definition of each option, is now processed at import time and not
each time the configuration is instantiated or copied.
* Dropped support for Python 2.4. Conary now requires Python 2.6 or
later.
* Added systemId header to repository requests for client tracking.
(CNY-3806)
o API Changes:
* Changesets are now inlined within the HTTP response when doing a
getChangeSet call to the repository. This improves compatibility
with load balancers and round-robin configurations by removing the
need for a second request. (CNY-3819)
* The 'getLog' web call has been removed
* The 'closed' repository configuration option has been removed
o Bug Fixes:
* Fixed preinstall and preupdate scripts not running during system-
model updates. (CNY-3803)
* Fixed preserveOwnership not applying to files and directories with
spaces in the name. (CNY-3789)
* "conary rdiff --diff" no longer crashes when a binary file changes
to a config file (CNY-3804)
* "conary updateall" no longer fails if snapshotted troves in the
system-model have been markremoved or otherwise cannot be found.
(CNY-3796)
* Fixed derived packages inheriting all file flavor instruction
sets, not just those that are compatible with the build flavor.
(CNY-3807)
* Appropriately attach key/value metadata to troves through the
r._addMetadataItem recipe method. (CNY-3809)
* Command line options can now be defined using a dictionary-like
syntax, which allows for default values too. (CNY-3810) (CNY-3810)
* Negative cache entries are no longer used when there is only one
URL to fetch for a source action. (CNY-3816)
* Fixed a few instances where httpHeaders was not correctly passed
when using a source action.
* Basic auth is now always sent when fetching a source, rather than
waiting for a 401 status code
* GroupSetRecipe now defines an instance of the findFile interface
to lookaside to enable fetching files. (CNY-3818)
* Added support to logcat for parsing systemId field of the
repository log. (CNY-3821)
Changes in 2.4.13:
o New Features:
* A trove's getNameVersionFlavor() now returns a
trovetup.TroveTuple. (CNY-3798)
* The syncCapsuleDatabase option now has four modes of operation in
total. The new default is to prevent phantom troves from being
erased during a model operation but permit them to be updated.
See the description in the manpage for details.
o Bug Fixes:
* Remove hard coded icon name for windows package builds. (CNY-3801)
Changes in 2.4.12:
o New Features:
* Improved python dependency analysis. Changes include detecting
explicit and implicit relative imports, creating all requires for
"from" imports rather than just the parent package, and warning on
missing requirements. (CNY-3790)
* Mirroring by group (recursive mode) now starts much more quickly.
(CNY-3446)
* Added to all source actions an "ephemeral" parameter that keeps
autosourced files from being committed to the repository.
(CNY-3794)
o Bug Fixes:
* Fixed a failure when synchronizing capsule databases after a
phantom component, but not the containing package, had been
erased. (CNY-3791)
* Fixed source control snapshots always being recreated when cooking
locally, even if one was already cached.
Changes in 2.4.11:
o New Features:
* Conary operations now succeed through proxies that unilaterally
re-encode as gzip (CNY-3781)
* Added sample WSGI server configuration under extra/repos. The
conary recipe also installs this in the conary-repository:server
component (off by default). gunicorn and nginx are required for
this default configuration.
o Bug Fixes:
* Fixed memory leaks and reference leaks in extension modules,
discovered by Uri Simchoni (CNY-3784)
* Update addGitSnapshot doc string to include information about the
branch option. (CNY-3787)
* Fixed a crash when using the web interface to view a filename
containing non-ASCII characters. (CNY-3775)
Changes in 2.4.10:
o New Features:
* The addArchive source method now takes new preserveSetid and
preserveDirectories keyword arguments to honor setuid/setgid bits,
and to preserve directories that are empty, have non-root owner or
group, or have non-default permissions (not 755). (CNY-3780)
o Bug Fixes:
* Fixed GroupSetRecipe's latestPackages() method crashing when
removed troves are present in the repository (CNY-3779)
* Fix CVS :ext: paths not being recognized as autosource. (CNY-3778)
* Improved performance of path conflict checking when building
groups containing packages with many files and potential path
conflicts. (CNY-3782)
* Fixed Python dep analysis on CentOS being extraordinarily slow
(CNY-3783)
Changes in 2.4.9:
o New Features:
* Conary is now published under the Apache License version 2.0
* Improved proxy server operation in WSGI mode
* Added a "vhost" WSGI entry point that allows serving different
repository configurations depending on the repository the client
requested.
* Conary proxies now use repositoryMap directives in their
configuration to override URLs given by clients
o Bug Fixes:
* Fixed a crash when using "conary repair" on an encapsulated RPM
containing ghost files (CNY-3773)
* Fixed IPv6 literals not being escaped correctly in HTTP "Host"
headers. (CNY-3776)
Changes in 2.4.8:
o New Features:
* Added --replace-modified-files, --replace-managed-files, and
--replace-unmanaged-files options to the "conary rollback" command
(CNY-3748)
* The --replace-files option is now deprecated. Scripts should use
the more specific options --replace-unmanaged-files, --replace-
modified-files, --replace-managed-files, and --replace-config-
files, depending on which scenarios need to be overridden.
Typically only the first two will be useful and are safe other
than that they may overwrite modifications to the system.
(CNY-3763)
o Bug Fixes:
* Fixed createSourceTrove conflicting with markremoved troves when
choosing a new version (CNY-3771)
Changes in 2.4.7:
o Bug Fixes:
* Fixed GroupSetRecipe builds featuring a subgroup containing bare
components. Previously the parent group would not have the
mandatory parent package for those components, making the group
unpromotable. (CNY-3720)
* The 'buildlabel' macro is now set at checkin time, enabling more
straightforward recipes (CNY-3765)
* Fixed "conary sync" not cleaning up an aborted update when no
further operations needed to be performed (CNY-3669)
Changes in 2.4.6:
o Bug Fixes:
* Fixed a crash when migrating from an encapsulated package to a
native package with the same contents. (CNY-3762)
* Fixed an AssertionError crash related to info packages that was
typically seen when migrating an appliance with custom info
packages across repositories, or when migrating from a :user
component containing a group to a separate :group component.
(CNY-3685)
Changes in 2.4.5:
o Bug Fixes:
* r.RemoveCapsuleFiles now works on paths that do not provide a file
dependency. (CNY-3760)
* Fixed all updates on the CentOS 5 unencapsulated platform failing,
due to the presence of an empty RPM database triggering a capsule
sync. (CNY-3756)
Changes in 2.4.4:
o New Features:
* getSystemModel() now returns a SystemModel object, which exposes
the file's contents and the system model path. (CNY-3753)
o Bug Fixes:
* A one-time crash experienced while upgrading from Conary 2.3 or
earlier to Conary 2.4 has been fixed. This retroactively corrects
the problem for prior versions of Conary by making the problematic
module backwards-compatible, so that if it is imported partway
through the upgrade process the upgrade is likely to proceed
safely. (CNY-3752)
* Capsule troves that are too old to have a stored RPM header digest
are now matched correctly during the capsule database sync phase
of the update. Previously, updates to a RHEL 5 system would
recreate many phantom troves on every operation due to the
mismatch. (CNY-3755)
Changes in 2.4.3:
o New Features:
* The Conary client API now exposes a hasSystemModel() call that
returns True if the machine is system modeled, and a
getSystemModel() call to retrieve the text of the model file.
(CNY-3749)
o Bug Fixes:
* Fixed a crash that could occur when applying a multi-job rollback
of capsule troves. (CNY-3747)
* Fixed a bug that caused unusable rollbacks to be generated when
erasing a capsule trove while "localRollbacks True" was
configured. This only fixes newly-generated rollbacks -- any
existing rollbacks created from previous versions still cannot be
applied. (CNY-3751)
Changes in 2.4.2:
o Bug Fixes:
* The 'package' option of addCapsule now properly handles package
names only. (CNY-3743)
* Fixed updates on encapsulated SLES 10 systems always crashing
since 2.4.0 due to a difference in the rpm-python API. (CNY-3745)
Changes in 2.4.1:
o New Features:
* Phantom components are now created with a parent phantom package
for easier querying.
* The date and time at which a trove was installed is now recorded
in the Conary database. This information is visible through
"conary q --info". (CNY-3740)
* Users and groups are now broken down into their own components
rather than having users have the side effect of creating groups.
This allows for handling circular depenedencies in user group
membership. (CNY-3731)
o Bug Fixes:
* Tag and trove scripts no longer run when --test is in effect
Changes in 2.4.0:
o New Features:
* Conary 2.4 includes a new WSGI-based repository stack. Forward-
and backward-compatibility with clients is maintained. However,
Python 2.6 is now the minimum version for repositories that wish
to run on WSGI or that have a web interface, and these also
require the WebOb library ( http://www.webob.org/ )
* Conary can now automatically reconcile its own database with
external capsule databases. If a package is installed in the RPM
database without using Conary, the next Conary update operation
will first fabricate a "phantom" trove as a placeholder. That
trove can then be erased, updated to a regular encapsulated trove,
or left as-is. Similarly, if a Conary-managed package is erased
from the RPM database, the next update operation will also erase
the corresponding Conary trove. This feature can be disabled by
setting the 'syncCapsuleDatabase' configuration option to False.
o Bug Fixes:
* Fixed a bug in the system model dependency solver cache that
caused surprising behavior when more than one trove in the search
path provided the same dependency. (CNY-3735)
* Fixed use of branch specs with system model (CNY-3645)
* Fixed "cvc promote" when buildLabel is not set (CNY-3660)
* Previously, updates could fail with an unhelpful 'TroveNotFound'
error that named the top-level trove when in fact a network
configuration problem had prevented fetching a sub-component of
that trove. This has been corrected so that the original network
error is displayed instead. (CNY-3732)
* Similarly, "File Stream Missing" errors will no longer mask
network problems that prevent reaching a file sourced from another
repository. (CNY-3680)
Changes in 2.3.12:
o New Features:
* Switched r.Properties to taking a full config descriptor rather
than field snippets. (CNY-3730)
Changes in 2.3.11:
o New Features:
* Added a --to-file option to "cvc cook" to write the result of a
repository cook to file instead of committing.
* Added support for specifying config properties that are attached
to files rather than specific components.
o Bug Fixes:
* Fixed refreshing of autosourced URLs that contain a question mark.
(CNY-3722)
* The recipe loader now resolves autoLoadRecipe entries using the
search flavor rather than buildFlavor. (CNY-3725)
Changes in 2.3.10:
o New Features:
* Added support for caching repository passwords with keyutils
(CNY-3718)
* "Hidden" troves committed by a mirror script are now fetchable.
This allows commit mail to be sent from a mirror target.
o Bug Fixes:
* PGP keys will no longer be deleted from the repository if the user
that uploaded the key is deleted. (CNY-3710)
* Changesets generated on systems using Python 2.7 now use a diff
format compatible with Conary running on older versions of Python.
* The never-used "conary updateconary" command, last seen in version
0.71.2, and associated server support have been removed.
* Fixed a crash when updating a capsule package with a changed file
version but the same fileId. (CNY-3719)
Changes in 2.3.9:
o Bug Fixes:
* Fixed the 'rollback' command failing if --from-file was not
specified. (CNY-3711)
Changes in 2.3.8:
o New Features:
* Added an experimental psycopg2 dbstore driver.
o Bug Fixes:
* Added --from-file to rollback command to allow passing a set of
changesets which will be searched for capsule content. This is
only needed/useful for localRollbacks of capsule packages.
(CNY-3705)
* Requests that get or put changesets now send the X-Conary-
Servername header, fixing a proxying issue with some rBuilder
configurations.
Changes in 2.3.7:
o New Features:
* The new rPath Corporate and Designated PGP signing keys have been
added to the default keyring. (CNY-3702)
o Bug Fixes:
* Derived packages no longer build regular expressions for the set
of files in a single component. (CNY-3594)
* Python requires are now resolved against the destdir Python first
even if there is a system Python of the same version. (CNY-3699)
Changes in 2.3.6:
o New Features:
* Added a "reference" section to mirror script configuration. If
provided, the reference repository will be used to determine what
troves are to be mirrored but the content will be downloaded from
the "source" repository. This allows mirroring only the troves
visible on an external mirror while using a closer copy of the
repository contents that might have more troves than desired.
* Added support for new MSI file magic.
o Bug Fixes:
* Conary now preloads all installer modules required for the entire
operation before beginning. This prevents a bug where Conary
updates itself to a new version with incompatible internal APIs,
then attempts to load the now-incompatible module and crashes.
(CNY-3662)
Changes in 2.3.5:
o New Features:
* The 'commitaction' repository commit hook now accepts python
module names, which will be searched for on the regular Python
search path.
o Bug Fixes:
* Fixed a bug that caused downloading PGP keys to always fail.
* getFileContents now succeeds when a capsule itself is requested,
rather than trying to extract contents from the capsule archive.
(CNY-3686)
* r.RemoveCapsuleFiles() now removes the automatically generated
provides for that path (CNY-3695)
* cvc explain now includes reference documentation for CapsuleRecipe
and its policies (CNY-3694)
Changes in 2.3.4:
o New Features:
* `conary rdiff` is now equivalent to changeset/showcs, taking the
same command line arguments and producing the same output
(CNY-3678)
o Bug Fixes:
* Python packages will no longer provide modules with site-packages
in the name. (CNY-3677)
Changes in 2.3.3:
o Bug Fixes:
* Including configuration files over HTTP on Python 2.7 was broken
since 2.3.0, this has been fixed. (CNY-3672)
* A bug in handling launchpad URLs with addBzrSnapshot first
introduced in 2.3.0 has been corrected. (CNY-3674)
Changes in 2.3.2:
o New Features:
* The new "proxyMap" configuration item has been added, making proxy
management now more extensive and configurable. This allows for
load balancing and failover across multiple proxies of the same
type. (CNY-3427)
o Internal Changes:
* The transport code has been refactored into a different module to
simplify subclassing and robustness in flaky network scenarios. To
simplify the code running on different python versions, urlparse
from python 2.7 was backported and internalized. (CNY-3458)
* Changed how fingerprints are calculated to facilitate fingerprint
caching in the future (this invalidates all fingerprints in
existing caches)
* Changeset caches are now one directory deep instead of two.
* Changesets cached by a repository no longer encode full paths to
file contents. This allows content stores to be moved without
flushing the cache.
Changes in 2.2.16:
o New Features:
* Capsule files will no longer conflict at build time due to mtime
differences; the ignoreAllConflictingTimes flag to addCapsule is
now ignored.
* Python modules reachable through multiple sys.path entries are now
provided under each of those paths.
o Bug Fixes:
* Conary 2.2.12 changed the structure of the update.UpdateFlags
object. Since we no longer restart after critical updates,
rpmcapsule.py needs to accept both the old style flags and the new
style ones, in case it has updated from pre-2.2.12. (CNY-3662)
* A bug that caused WIM capsule package builds to fail has been
fixed. (CNY-3663)
* An issue that caused a traceback when building native packages for
a Windows platform has been fixed. (CNY-3664)
* Python modules provided in a directory added using .pth files are
now detected properly when building with a different Python
interpreter than the system Python. (CNY-3667)
* Specifying tags for addBzrSnapshot is now less restrictive, by not
forcing a tag: specification. As a result, one can now specify
tags like revno: or branch: too. See
http://wiki.bazaar.canonical.com/BzrRevisionSpec for revision
specifications. (CNY-3647)
* Importing RPMs that contain a prelinked executable no longer
crashes. (CNY-3671)
Changes in 2.2.15:
o New Features:
* Added support for breaking RPM jobs based on native Conary
dependencies. (CNY-3655)
* Added the capability to white-out the Conary representation of RPM
dependencies. (CNY-3656)
* Added the r.RemoveCapsuleFiles policy to exclude encapsulated
files and directories from Conary package manifests. (CNY-3657)
o Bug Fixes:
* A bug in the dependency ordering code has been corrected. This bug
could cause some troves to be installed before their requirements
are installed, thus temporarily leaving the system in a non-
dependency-closed state. End users are unlikely to be affected by
this bug. (CNY-3654)
Changes in 2.2.14:
o New Features:
* A new command, search, was added, to allow for model searching.
(CNY-3649)
* Repository contents files are now created world-readable by
default. The actual permissions are dependent on the process'
umask parameter.
* Mirror script configuration files now accept an
"excludeCapsuleContents" option which permits mirroring of troves
from repositories that do not contain capsule contents.
* Repositories now log full stack traces to a file in /tmp, the path
of which is logged in the main error log.
Changes in 2.2.13:
o New Features:
* Added support for setting package flavor based on MSI information
from the Windows Build Service when generating MSIs. (CNY-3641)
o Bug Fixes:
* Platform and component information is now properly passed to the
Windows Build Service. (CNY-3642)
* The TroveSet.makeOptional method was inappropriately discarding
all optional troves from the base TroveSet. It now includes those
optional troves in the optional set of the result. (CNY-3646)
Changes in 2.2.12:
o New Features:
* conaryclient.newtrove's createSourceTrove now accepts an
additional keyword argument "metadata", containing key/value
metadata to be stored in the newly created source trove.
(CNY-3628)
* GroupRecipe PathConflicts policy now records the conflicting paths
which were explicitly allowed and the system model based install
code treats those paths as if --replace-managed-files were enabled
whenever that group would be present at the end of the operation
(CNY-3634)
* Added support for building 64bit MSIs based on the build flavor.
(CNY-3617)
* Added support for determining flavor for encapsulated MSI
packages. (CNY-3636)
o Bug Fixes:
* Fixed typo in BuildMSI build action documentation. (CNY-3627)
* Jobs which install shared contents for a file would fail if those
contents were delivered in the update changeset as both a diff and
complete contents (CNY-3631)
* Always use the cached source when building sources from CVS
repositories. (CNY-3336)
* No longer attempt to set the mode of files that are not part of
the package. These files are normally side effects of other policy
actions. (CNY-3607)
* Changed job ordering to install info packages before the critical
section. (CNY-3629)
* Groups implemented as GroupSetRecipe will now build under rMake.
(CNY-3624)
* A single job with overlapping files would erroneously include
local file information on one of the versions of the file in the
rollback, preventing that rollbacks from being applied. (CNY-3637)
* RPM capsule installation no longer fails when file types change.
(CNY-3630)
* Creating rollbacks for individual files being replaced during an
update would fail if multiple incoming troves owned the file in
question. (CNY-3633)
* The GroupSetRecipe SearchPath method is now correctly documented
to take Repository or TroveSet objects as methods, and now checks
its arguments for sanity and reports errors usefully. (CNY-3639)
o Internal Changes:
* The recommended version of SQLite for use with Conary has been
upgraded to 3.7.5
Changes in 2.2.11:
o New Features:
* Added the ability to manually specify configuration properties,
rather than requiring a packaged file. (CNY-3619)
o Bug Fixes:
* Conary 2.2.9 introduced the PathConflict policy, which was added
to allow building groups with intentionally conflicting paths. If
path conflicts were allowed in inner groups, Conary would build
groups lacking weakrefs. This has been fixed, and affects only
Conary 2.2.9 and 2.2.10. (CNY-3625)
Changes in 2.2.10:
o New Features:
* Added basic support for memcached for fingerprints, dependencies,
and troveInfo. The support is for both the proxy and the
repository, but the cache is not actively invalidated.
o Bug Fixes:
* Promoting redirect troves now rewrites versions in redirects when
the target of the redirect has been promoted according to the
promote map, and leaves other redirects untouched. Previously,
it converted the redirect into a redirect to nothing.
Additionally, a script called "promote-redirects" has been added
to automate the process of finding and promoting redirect packages
between labels. (CNY-1900)
* The changemail script will now send mail even if rdiff fails when
attempting to generate a list of changes between versions of
source packages.
* cvc rdiff tried to show changes in autosource files whose names
didn't change, causing a traceback (CNY-3383)
* Several potential SQL injection vulnerabilities have been
eliminated. These vectors require repository administrator
privileges and a non-standard configuration to exploit, so
potential impact is low. (CNY-3612)
* Corrected a bug that would allow authenticated repository users to
grant themselves additional repository privileges including
additional read access and write access, but not administrative
privileges or access to repository mirror services. (CNY-3611)
* Corrected a bug that would allow authenticated repository users
with limited mirror privileges to deny repository mirror services
to other authenticated users. (CNY-3610)
* Conary was too vigilant enforcing file conflict checking during
RPM updates. Many cases need to be caught by the database layer
instead of the capsule installation layer to avoid false
positives. (CNY-3620)
o Internal Changes:
* Some limitations of the "conary repair" command have been
documented. (CNY-3618)
Changes in 2.2.9:
o New Features:
* The "cvc explain" command now honors the PAGER environment
variable, and if PAGER is unset or is set to "less", has
additional formatting that shows more character styles.
* GroupSetRecipe, a new superclass for building groups, has been
added. Documentation is available via "cvc explain"; start with
the command "cvc explain GroupSetRecipe" and follow references to
Repository, TroveSet, and SearchPath documentation.
* The "conary install" command has been added. It is equivalent to
the "conary update --keep-existing" command. While the "--keep-
existing" argument option has been not commonly recommended in the
old update model because it can easily introduce packages with
versions that are unintentionally out of sync, it is commonly
useful with a system model because the search path used for a
system model can keep versions in sync.
* The new group policy PathConflicts has been added, allowing more
granular control over which paths are allowed to conflict.
(CNY-3505)
* Added support for specifying trove requirements on other troves.
(CNY-3517)
* Add support for defining the actions that run based on the target
platform. (CNY-3519)
* Added support for building specially formatted zip archives into
MSIs (CNY-3475)
* The BuildMSI build action has been updated to always store the
Windows Build Service log as part of the package build log.
(CNY-3521)
* Add support for specifying web applications to the Windows Build
Service. (CNY-3522)
* Added support for storing and persisting MSI component
information. (CNY-3523)
* Added support for WIM capsules (CNY-3473)
* In group recipes the add, replace, addAll, and addCopy methods now
take a allowMissing keyword argument that prevents the action from
failing if the trove can not be found. (CNY-3532)
* An experimental implementation of a WSGI conary repository is now
available.
* Added support for specifying and storing msiexec arguments.
(CNY-3550)
* A new Properties policy parses iconfig property description files
and adds the information from them to Conary packages. (CNY-3571)
* Conary now works with python 2.7. (CNY-3582)
* Handle Linux ABI type for sonames by mapping it to SysV (CNY-3584)
* --no-restart is now implied for operations in a chroot (since we
would just run the same conary version anyway), and is allowed
when conary is run on the system's root directory (CNY-3515)
* A new update mechanism called "system model" has been added. In
this model, a file called /etc/conary/system-model describes what
should be installed on the system. This file is modified by
certain conary update commands, and can also be edited with a text
editor. The system model allows a system to be updated relative
to a search path that includes groups as well as labels, leading
to more coherent sets of updated packages. It also allows re-
starting updates with transient failures; the filename /etc/conary
/system-model.next is reserved for storing the system target state
during an update operation. (CNY-3592)
* On systems with a system model, the "conary unpin" command
synchronizes the system to the model after unpinning. (CNY-3591)
* gobject-introspection's gir files are now included in :devel
components by default, because they are non-arch-specific
development artifacts. (CNY-3579)
* Sped up metadata lookups during builds by collapsing many
getTroves() into a single call.
* Sped up path conflict checking when path names conflict and file
signatures need to be compared
* Conary no longer restarts after updating Conary ("critical
restarts") by default. When an alternative root has not been
provided, the --restart option is available to choose to restart.
(CNY-3601)
o API Changes:
* The conary command line handling has been made available as
conary.cmds.conarycmd, and the cvc command line handling has been
moved from conary.cvc to conary.cmds.cvccmd. Similarly,
conary.branch has been renamed to conary.cmds.branch, conary.clone
has been renamed to conary.cmds.clone, conary.commit has been
renamed to conary.cmds.commit, conary.cscmd has been renamed to
conary.cmds.cscmd, conary.fmtroves has been renamed to
conary.cmds.fmtroves, conary.metadata has been renamed to
conary.cmds.metadata, conary.query has been renamed to
conary.cmds.query, conary.queryrep has been renamed to
conary.cmds.queryrep, conary.rollbacks has been renamed to
conary.cmds.rollbacks, conary.showchangeset has been renamed to
conary.cmds.showchangeset, conary.updatecmd has been renamed to
conary.cmds.updatecmd, and conary.verify has been renamed to
conary.cmds.verify. The old locations will be available for
backward compatibility for the foreseeable future. (CNY-3471)
o Bug Fixes:
* Make negative openpgp key cache entries to avoid repeated server
queries for keys which don't exist. (CNY-3450)
* Labels no longer allow equal signs in them.
* Ignore images without Windows content when evaluating results from
the Windows Build Service. These images are normally used for
system rescue. (CNY-3558)
* Add information about MSIs and WMIs to the documentation string of
the addCapsule source action. (CNY-3563)
* Querying RPM deps is now possible if the deps contains a colon.
(CNY-3289)
* The migrate command is now displayed in the basic help text
(CNY-3456)
* Synthesized soname requirements map "Linux" to "SysV" because a
Linux ABI ELF object is capable of using dlopen() to open a SysV
ELF object. (CNY-3604)
* Cleaned up standard conary help and moved least commonly used
sub-commands to verbose help. (CNY-3605)
* The lookaside cache now correctly supports ftp urls with
user/passwords. (CNY-3508)
Changes in 2.1.28:
o Bug Fixes:
* Content injection for capsules is no longer retrieving the
changeset over HTTP when it is available locally. (CNY-3573)
* isEncapsulatedContent is reset when derived capsules overwrite
capsule content. (CNY-3577)
* The proxy layer will now properly include in changesets any files
with isCapsuleOverride() set. (CNY-3578)
* Conary proxies will no longer crash if a changeset is requested
which has more troves than the current process file descriptor
limit. (CNY-3497)
* The getFileContentsCapsuleInfo call no longer returns results in
database order (which is non-deterministic). (CNY-3581)
* The proxy now works around device files inadvertently marked as
overrides of the capsule. (CNY-3583)
* Another case where content overriden outside of a capsule is not
included in the changeset is now fixed. (CNY-3586)
* Deriving large packages no longer runs into regular expression
size limitations. (CNY-3594)
* Capsule-based packages no longer allow their contents to be
changed - that can be achieved in a derived package. (CNY-3590)
Changes in 2.1.27:
o New Features:
* Support for PostgreSQL 9.0 has been added.
* The Requires policy now takes an optional pythonFlagNamespace
keyword argument which, if provided, is attached to flags in
python dependencies generated by Provides and Requires. (CNY-3493)
* The object representing an RPM file header now has additional
methods, getFiles() and getFilesByPath(), which return convenient
file objects. (CNY-3567)
o Bug Fixes:
* Don't execute capsule update operations when the fileId of the
underlying capsule has not changed.
* Another instance where passwords could be exposed in extended
tracebacks has been fixed. (CNY-3552)
* The LZMAFile class can now handle gzip-compressed file streams.
(CNY-3553)
* The read method of util.LZMAFile is now properly dealing with
short reads from the underlying pipe. (CNY-3564)
* The os.getcwd function can raise an exception if the working
directory has been deleted; the internal _freezeFromChangesets
call was changed to no longer call os.getcwd if only absolute
paths are used. (CNY-3557)
Changes in 2.1.26:
o Bug Fixes:
* Make negative openpgp key cache entries to avoid repeated server
queries for keys which don't exist (CNY-3450) (CNY-3450)
* promoting groups which include multiple groups with the same name
(either strongly or weakly) when those groups come from source
components with different names no longer fails (CNY-3525)
* A bug in inspection of the rpm module in rpmExpandMacro has been
fixed. (CNY-3506)
* Fixed perl dependency calculation for the case when perl itself is
being built. (CNY-3077)
Changes in 2.1.25:
o New Features:
* It is now possible to choose whether to merge kernel module
symbols into a single Conary dependency when importing RPM kernels
and modules. The new default is not to merge the symbols, to
enable multiple interdependent kernel modules. (CNY-3518)
o Bug Fixes:
* The repository commit email system now can be given a mailhost
with the --mailhost argument; localhost is used as the default
mailhost. (CNY-3206)
Changes in 2.1.24:
o Bug Fixes:
* Documentation for the "user" configuration option has been added
to the conary.1 man page. (document-user-config)
* Platforms which we need to support rpm's netsharedpath don't
necessarily have expandMacro in their python module; add our own
binding in misc.c (CNY-3506)
* The repository commit email system has been modified to use python
internal email and smtplib modules. It no longer relies on an
external mail program, and handles non-ascii characters correctly.
(CNY-3206)
* Fixed a hard-to-trigger crash when opening a build logger PTY
fails. (CNY-2938)
* Added hardlinked file support to CpioStream. (CNY-3504)
* Bz2File.read() now returns the ammount of data that is requested.
(CNY-3513)
Changes in 2.1.23:
o New Features:
* Support "data.tar.lzma" in .deb files (CNY-3491)
* respect RPM's _netsharedpath macro during capsule handling
(CNY-3503)
o Bug Fixes:
* Derived packages now work with packages containing shared files
and and ghost files. (RBLD-335)
* A bug introduced in Conary 2.1.21 that prevented `cvc promote`
from functioning has been corrected. (CNY-3490)
Changes in 2.1.22:
o Bug Fixes:
* A bug introduced in Conary 2.1.21 that prevented `cvc cook` from
functioning has been corrected. (CNY-3490)
* Fix an inconsistency between Conary and RPM databases when RPM
fails to install a requested package. (CNY-3488)
* Rewrite derived package shadow creation code because the previous
attempt to support capsules was fragile and frankly a bad idea.
(RBLD-326)
* Fix exception when doing a repository cook when the recipe sources
a multiurl of mirrors. (CNY-3485)
Changes in 2.1.21:
o New Features:
* The --no-recurse option is now allowed with the "conary migrate"
command. This can be used to rebuild a system from a manifest
file.
* A no-scripts option has been added. If set, capsule scripts,
trove scripts, and tag scripts are skipped during an update.
(CNY-3452)
* Conary now records in /var/log/conary the order in which RPM
chooses to install encapsulated RPMs. (CNY-3460)
* When RPM fails to unpack a package when being invoked as non-root,
Conary will now warn about the failure but will not fail the
entire transaction. (CNY-3462)
* Conary now validates RPM capsule operations against the RPM
database as early as possible to flag errors when they occur.
(CNY-3455)
o Bug Fixes:
* Make negative openpgp key cache entries to avoid repeated server
queries for keys which don't exist (CNY-3450) (CNY-3450)
* Process directory creation for other file types (CNY-3451)
* Fixed a repository crash when converting a cached changeset for an
older client. (CNY-3453)
* The getCapsulesTroveList function was restored to sqldb for use in
recreatedb.
* Fixed signing of packages with pycrypto 2.1 (CNY-3465)
* Fixed a bug which caused an internal server error when the same
trove permission was applied to more than two roles. (CNY-3469)
* When multiple installed conary components shared an underlying RPM
capsule removing one of those components would result in the
conary database becoming out of sync with the rpm database
(CNY-3470)
* Changesets can contain shared files where one is a diff and the
other is not. The diff will be used (CNY-3483)
o Internal Changes:
* Hotspot profiling hooks have been removed. (CNY-3250)
* added cksig script for verifying (and fixing) signatures in a
repository
* Add argument to the API for cooking troves to allow someone to
specify a changeset file instead of committing the changeset to
the repository. (CNY-3466)
* The transport layer is now handling network errors more reliably.
(CNY-3429)
Changes in 2.1.20:
o Bug Fixes:
* Injector code for relative changesets creates the new trove once
instead of once for every file being merged. (CNY-3444)
* symbol hashes found in RPMs are used by ksym deps as well as
kernel deps (CNY-3442)
* UtilizeUser and UtilizeGroup policies now support macros in the
user and group argument (CNY-3445)
* Make negative openpgp key cache entries to avoid repeated server
queries for keys which don't exist (CNY-3450)
Changes in 2.1.19: