Commit Graph

53 Commits

Author SHA1 Message Date
Steve Lawrence 2fd0913a6a Add common Collection requirements
This patch adds the install-time feature that if a package requires a package
in a collection, then it also requires all other packages in that collection.
This has the effect that collections will be roughly grouped together during a
transaction.

Although this is not absolutely necessary for the majority of collections, it
is required for the SELinux collection. This is because all SELinux policies
must be installed before the applications they secure to ensure correct labels.
This means we must ensure packages in the selinux collection are ordered
earlier in the transaction than all applications they protect. Adding this
implicit runtime requirements achieves this in a general manner, without major
modifications to dependency ordering.

To accomplish this, this patch splits the addRelation function into two parts:
one that determines which relations to add, and one that actually adds them.
After the usual relation is added between two packages, it then determines if
the required package contains any collections. If so, it finds all other
packages that are in the same collections and creates additional relations.
2010-06-22 11:12:43 +03:00
Panu Matilainen 03576e6f9f Lose leftovers from former rpmal implementation 2010-03-18 23:21:01 +02:00
Panu Matilainen e79cf036af rpmalAdd() prototype cosmetics 2010-03-18 20:10:26 +02:00
Panu Matilainen c1a677e839 Lazy rpmal hash creation on first lookup, make rpmalMakeIndex() static
- the "new" hash-based rpmal only uses rpmalMakeIndex() for initial
  creation of the hash tables as late as possible for better estimate
  of needed hash size, but doesn't require any index regeneration if something
  is added
- first call to rpmalSatisfiedDepend() now initializes the hashes, if
  significant amount of entries are added after the first call hash
  table might get full ... so dont do that ;) (this was already true
  with rpmalMakeIndex(), now its just hidden out of sight)
2010-03-18 19:58:39 +02:00
Panu Matilainen ec1e622307 Make rpmalAllFileSatisfiesDepend() and rpmalAllSatisfiesDepend() static
- rpmtsCheck() only wants yes/no answers from rpmal, and ordering
  wants the best provider, rpmalSatisfiesDepend() works for both
- update comments
2010-03-18 19:49:25 +02:00
Panu Matilainen 31f0d94df1 Add preferred color to rpmal 2009-06-11 17:16:03 +03:00
Panu Matilainen 26ac9b3d94 Make rpmal header & all internal
- rpmal is hardly useful outside rpm itself, avoid exporting stuff
  unnecessarily
2009-04-03 13:07:42 +03:00
Florian Festi 3a6f3133a1 Reimplement rpmal by using hashes and cleaning up the color handling 2009-03-26 12:20:26 +01:00
Florian Festi 3e37044eb9 Make rpmal store rpmtes and kill rpmte->pkgKey 2009-03-26 12:15:27 +01:00
Panu Matilainen 630a5a4c1a Add rpm_color_t type for rpm color bits, use where spotted 2008-02-05 12:12:31 +02:00
Panu Matilainen 458bf3b208 Remove bunch of unnecessary rpmlib.h includes
- replace with rpmtypes.h where needed
2008-01-30 11:49:25 +02:00
Panu Matilainen 8f4000b00b Move rpmalKey and rpmal to rpmtypes 2008-01-30 10:57:15 +02:00
Panu Matilainen 9ce13e09ef Switch to <rpm/foo.h> style for public headers
- adjust include paths accordingly
2007-12-08 14:02:32 +02:00
Panu Matilainen fc53d307ad Add separate public header for callback declarations
- rpmmessages is empty, lose it
- adjust includes
2007-12-01 10:08:13 +02:00
Ralf Corsépius abeea80a38 Use #include <x.h> syntax to include public headers. 2007-11-23 06:46:19 +01:00
Ralf Corsépius bebeb89735 Eliminate [u|]int_[8|16|32]. Use c99 stdint.h types instead. 2007-10-26 13:24:14 +02:00
Ralf Corsépius 9e1a6a395f Make headers self-contained. 2007-10-08 11:03:57 +02:00
Ralf Corsépius d6ffa9891f 'Adjust extern C {} blocks.' 2007-10-08 10:05:06 +02:00
Panu Matilainen 7e5099e52f Rename alKey & alNum to rpmal* for namespacing
Also move it out of rpmlib.h, nothing needs it there...
2007-09-21 15:17:08 +03:00
Ralf Corsépius ebef4f211c Remove splint tags. 2007-09-11 19:07:39 +02:00
jbj 39cbc98d69 1st crack at colored installs.
CVS patchset: 5989
CVS date: 2002/12/31 01:23:03
2002-12-31 01:23:03 +00:00
jbj ae8428475c - add --with-efence to configure, check install/upgrade with efence.
- beecrypt: short hex string conversion overflows target buffer.
- mark "successors only" packages in transaction.
- reap scriptlets with SIGCHLD handler.
- rename PSM_t to rpmpsm, add methods and refcounts to manage.
- remove %%configure/%%makeinstall from arch-os/macros, default is OK.
- don't export MALLOC_CHECK_ to scriptlets.
- squeaky clean memory leak checking.
- always malloc rpmfi structure, refcounts are correct in rpmtsRun().
- skip redundant /sbin/ldconfig scripts on upgrade (if possible).

CVS patchset: 5645
CVS date: 2002/08/19 22:27:44
2002-08-19 22:27:44 +00:00
jbj 261b4a2ecb - install rpmal.h and rpmhash.h, implicit rpmps.hinclude, for now.
- revert headerFree/headerLink/headerUnlink debugging.

CVS patchset: 5550
CVS date: 2002/07/13 19:08:51
2002-07-13 19:08:51 +00:00
jbj 05cb73a7ee Factor bounds checking annotations into source code.
CVS patchset: 5521
CVS date: 2002/06/22 18:51:56
2002-06-22 18:51:56 +00:00
jbj 8d1ff9feac Lclint fiddles.
CVS patchset: 5468
CVS date: 2002/06/05 22:07:55
2002-06-05 22:07:55 +00:00
jbj 259bb824cc Add rpmal bindings, Grand Renaming to rpmalFoo().
CVS patchset: 5450
CVS date: 2002/05/27 18:12:12
2002-05-27 18:12:12 +00:00
jbj 386882db7a - fix: synthesize unpacking progress callbacks for packages w/o files.
CVS patchset: 5440
CVS date: 2002/05/19 23:37:24
2002-05-19 23:37:24 +00:00
jbj 2126e4ad09 - Grand Renaming of rpm data types.
CVS patchset: 5439
CVS date: 2002/05/19 18:42:25
2002-05-19 18:42:25 +00:00
jbj 46bbc20b32 - use rpmdb-redhat to suggest dependency resolution(s).
CVS patchset: 5401
CVS date: 2002/04/13 01:28:20
2002-04-13 01:28:20 +00:00
jbj 2404e8d918 - rescusitate --rebuild.
CVS patchset: 5389
CVS date: 2002/04/11 16:55:19
2002-04-11 16:55:19 +00:00
jbj 21a35690b3 - commit to using rpmDepSet and TFI_t, not header.
- lclint rpmio fiddles.

CVS patchset: 5177
CVS date: 2001/11/12 20:51:05
2001-11-12 20:51:05 +00:00
jbj 55ffccbdde - unify rpmFNSet into TFI_t.
- eliminate header reference in rpmtransAddPackage, use TFI_t data.

CVS patchset: 5176
CVS date: 2001/11/11 22:51:00
2001-11-11 22:51:00 +00:00
jbj 7ea4943276 Iterate over TR_REMOVED transactionElement stripped data, don't hit rpmdb.
CVS patchset: 5171
CVS date: 2001/11/11 02:50:31
2001-11-11 02:50:31 +00:00
jbj 8d08d4a43b Rip headers out of addedPackages.
CVS patchset: 5170
CVS date: 2001/11/11 01:46:43
2001-11-11 01:46:43 +00:00
jbj a086ad7dd1 Start removing alGetHeader.
CVS patchset: 5168
CVS date: 2001/11/10 19:24:19
2001-11-10 19:24:19 +00:00
jbj 431499aeca - strip header tags for erased as well as installed transactionElements.
CVS patchset: 5167
CVS date: 2001/11/10 01:39:50
2001-11-10 01:39:50 +00:00
jbj eb1789dad7 - no-brainer refcounts for rpmDepSet and rpmFNSet objects.
CVS patchset: 5166
CVS date: 2001/11/09 23:13:50
2001-11-09 23:13:50 +00:00
jbj 56a319f1aa - header tag sets are per-transactionElement, not per-availablePackage.
CVS patchset: 5165
CVS date: 2001/11/09 20:41:18
2001-11-09 20:41:18 +00:00
jbj ae2e9b1bad - linear search on added package provides is dumb.
- discarding entire signature header when using --addsign is dumb.
- typedef the fuile name/python object "key" throughout as fnpyKey.
- start ripping rpmDependencyConflict out of the API.

CVS patchset: 5160
CVS date: 2001/11/08 00:12:49
2001-11-08 00:12:49 +00:00
jbj e680cce3e8 - fix: harmless typo in db3 chroot hack.
- fix: big-endian's with sizeof(time_t) != sizeof(int_32) mtime broken.
- fix: add Korean message catalogs (#54473).
- add RPHNPLATFORM and PLATFORM tags.
- linear search on added package provides is dumb.
- discarding entire signature header when using --addsign is dumb.

CVS patchset: 5159
CVS date: 2001/11/06 22:46:26
2001-11-06 22:46:26 +00:00
jbj 0724785fb3 Start merging file info into dependency set.
CVS patchset: 5157
CVS date: 2001/11/05 14:09:22
2001-11-05 14:09:22 +00:00
jbj a5a5eed7c4 Start deconstructing availablePackage list.
CVS patchset: 5156
CVS date: 2001/11/05 03:44:05
2001-11-05 03:44:05 +00:00
jbj 37a303a3a7 - rpmal: availablePackage is totally opaque, alKey with index replaces.
CVS patchset: 5155
CVS date: 2001/11/04 22:00:11
2001-11-04 22:00:11 +00:00
jbj 358848088d - depends.c: rpmDepSet is (almost) opaque, move to rpmds.[ch].
CVS patchset: 5152
CVS date: 2001/11/03 02:34:15
2001-11-03 02:34:15 +00:00
jbj b9520f3a94 - create toy rpmDepSet iterators.
CVS patchset: 5150
CVS date: 2001/11/02 21:01:25
2001-11-02 21:01:25 +00:00
jbj 973638fdc2 - create rpmDepSet constructors/destructors.
CVS patchset: 5149
CVS date: 2001/11/02 05:36:48
2001-11-02 05:36:48 +00:00
jbj b0e16172c3 - depends.c: availablePackage is (almost) opaque.
CVS patchset: 5147
CVS date: 2001/11/01 23:18:15
2001-11-01 23:18:15 +00:00
jbj df89c3d200 Do tsort on transactionElement's, not availaiblePackage's.
CVS patchset: 5145
CVS date: 2001/10/31 22:19:42
2001-10-31 22:19:42 +00:00
jbj a15e74ecd6 More unraveling of availablePackage from depends.c.
CVS patchset: 5144
CVS date: 2001/10/31 04:00:58
2001-10-31 04:00:58 +00:00
jbj 93ab09b3d9 Create rpmDepSet.
CVS patchset: 5143
CVS date: 2001/10/30 18:55:39
2001-10-30 18:55:39 +00:00