summaryrefslogtreecommitdiff
path: root/build/parseReqs.c
AgeCommit message (Collapse)AuthorFilesLines
2012-04-23Add support for dpkg-style sorting of tilde in version/releaseMichael Schroeder1-1/+1
- This allows much nicer handling some common scenarios such as upstream pre-releases where the pre-release version would normally appear newer than final release, eg 1.0-rc1 vs 1.0. Previously this required mapping the pre-release tag into the release tag to achieve desired sorting, with tild this becomes simply 1.0~rc1 < 1.0. - Add a rpmlib() tracking dependency to prevent older rpm versions from getting confused with packages relying on the new behavior. Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
2010-12-13Implement transaction ordering hintingPanu Matilainen1-0/+3
- Add support for new "OrderWithRequires: foo" spec syntax which has "if and only if foo is present in transaction, order the transaction as if this package required foo" semantics. While it looks, and in some ways is, a soft dependency, this is not the same as recommends/suggests etc: those have unknown depsolver policy dependent semantics attached to them, whereas ordering hints have a clear definition and is only relevant for rpm itself, depsolvers should not even look at the data. - This allows packages to express correct ordering for optional functionality, such as %post if [ -x %{_bindir}/register-component ]; then %{_bindir}/register-component %{name} fi If the package containing %{_bindir}/register-component is included in the same transaction, it makes sense to have it installed before the package(s) that use it. But as it is fully optional, Requires would not be appropriate. Using OrderWithRequires allows this to be expressed without dragging in extraneous dependencies for optional functionality.
2010-12-10Remove broken versioned provides rpmlib() trackingPanu Matilainen1-12/+0
- Every single package since rpm >= 3.0.4 or so has a versioned provide through the automatically added N = VR provide, which hasn't gotten tracked in all these years. Drop the useless dependency.
2010-12-01Fix bogus error reporting from autogenerated dependencies (ticket #181)Panu Matilainen1-10/+14
- Automatically generated dependencies do not relate to spec lines, use different error reporting for manually vs automatically added dependencies.
2010-10-22Brute-force s/rpmTag/rpmTagVal/ in entire librpmbuildPanu Matilainen1-2/+2
- Many of these cases would be true enums from preambleList & similar, except for the list terminating sentinel. Just switch all the remaining rpmTag's to rpmTagVals to bring our enum-whacking to a grande finale.
2010-09-21Initialize nametag to RPMTAG_NOT_FOUND in parseRCPOT()Panu Matilainen1-1/+1
- Doesn't matter what the value is, the switch (somewhat hysterically) makes it default to RPMTAG_REQUIRENAME in unknown cases anyway
2010-08-25Mass eviction of remaining internal helpers in librpmbuild APIPanu Matilainen1-1/+2
- Yank everything qualifying as "internal helper function" into internal-only headers, loosely grouped as follows: 1) Everything involving spec-manipulation goes into rpmbuild_internal.h 2) All other miscellaneous helpers go into rpmbuild_misc.h - This leaves us a rather minimal, and nearly useful API into librpmbuild: Users need to be able to parse a spec, query or build (parts of) it and free up the spec structure when done. This is what we have now, various still exposed structures not counting.
2010-08-25Eliminate unused spec argument from addReqProv()Panu Matilainen1-1/+1
- addReqProv() only operates on the header, not spec
2010-03-29Remove redundant assignmentsPanu Matilainen1-10/+1
- everything but buildrequires goes to pkg->header, no point having this separately set in each case
2010-03-29Group the tag cases a bit more logically in parseRCPOT()Panu Matilainen1-9/+9
2010-03-29Free up three bits from rpmsenseFlagsPanu Matilainen1-5/+13
- pass the wanted dependency type to addReqProv() as tagN argument (previously unused, eh...) instead of taking up three precious bits for internal-only purposes from a constrained bitfield
2010-01-05Move <ctype.h> include out of system.h to the places that need itPanu Matilainen1-0/+1
2009-12-17Permit unexpanded macros to slip through spec tag sanity checks (RhBug:547997)Panu Matilainen1-1/+1
- For now, let %{} characters through our valid character set checks on specs. This isn't right really, but unexpanded, unrelated macros in spec can now cause failure to parse out buildrequires which would allow those macros to be expanded. This needs a better fix.
2009-10-21Fix memory leaks on error exit from parseRCPOT()Panu Matilainen1-7/+17
2009-08-31Replace equal/not equal uses of str[n]cmp() with rstreq[n] in build codePanu Matilainen1-1/+1
2009-06-23Allow ':' character in EVR, it's needed for Epoch separationJindrich Novy1-1/+1
2009-06-16Don't check Provides/Requires for bad characters, they could be UTF-8Jindrich Novy1-6/+1
- don't check Name but EVR in parseRCPOT() - use rpm namespacing for charCheck() - remove unused variable
2009-06-15Check for valid chars in Requires/Provides as wellJindrich Novy1-0/+6
2009-06-01Map PreReq into Requires(pre,preun) at buildPanu Matilainen1-1/+2
- this gives a more reasonable mapping to former behavior of PreReq when cutting loops
2009-05-29Build prereq is exactly the same as buildrequiresPanu Matilainen1-4/+1
2009-02-21Loosen up restrictions on dependency token names (rhbz#455119)Panu Matilainen1-2/+5
- Package names aren't restricted to ascii, no point restricting dependency names either. - This lets UTF-8 to go through but also all sorts of other junk but as we haven't got a clue about the specs encoding, no can do. So we only check for bad characters from plain ascii.
2008-05-21Include rpmtypes.h first instead of rpmtag.h everywherePanu Matilainen1-1/+1
2008-04-17Fix dumb off-by-one errors introduced by rstrlcpy() changesPanu Matilainen1-2/+2
2008-04-17Use rstrlcpy() for parseRCPOT() version + releasePanu Matilainen1-4/+2
- just avoids manual zero-termination
2008-03-18Minimal namespacing for locale-insensitive x*() string functionsPanu Matilainen1-3/+3
2008-03-06Mark bunch of static build-related tables as read-onlyPanu Matilainen1-2/+2
2008-02-05Mass convert (back) to rpmTag as it's usable everywhere nowPanu Matilainen1-1/+1
- cast away a few cases where the enum usage causes ridiculous amount of compiler warnings from unhandled switch-cases
2008-01-30rpmlib.h mass evictionPanu Matilainen1-0/+1
- explicitly include what's really needed instead - document remaining uses
2008-01-09Implementation of triggerprein scriptlets.Panu Matilainen1-0/+4
Ported from rpm5.org work of Jeff Johnson to 4.4.x by Pascal Rigaux, further adopted to fit HEAD...
2007-12-13Use rpm_tag_t everywhere for rpm (header) tag typePanu Matilainen1-1/+1
- typedef'ed as int32_t for now, negative values used in some places for error cases - easy to grep, easy to change... - add RPMTAG_NOT_FOUND define, used in place of -1 "magic",
2007-12-08Switch to <rpm/foo.h> style for public headersPanu Matilainen1-2/+2
- adjust include paths accordingly
2007-12-07Yet more rpmbuild fixups from rpmerr.h removal (partly from rpm5.org)Panu Matilainen1-5/+5
- additionally use rpmRC return types instead of numbers where appropriate
2007-11-23Use #include <x.h> syntax to include public headers.Ralf Corsépius1-2/+2
2007-11-19Lose rpmerr.h for goodPanu Matilainen1-1/+1
2007-11-19Replace all RPMERR_* etc uses with corresponding RPMLOG_* levelsPanu Matilainen1-6/+6
2007-10-09Make rpmerr.h private, include directly where needed.Panu Matilainen1-0/+1
2007-10-09Replace all rpmError() uses with rpmlog()Panu Matilainen1-3/+3
2007-09-21Rename Spec -> rpmSpec for namespacingPanu Matilainen1-1/+1
2007-09-11Remove splint tags.Ralf Corsépius1-10/+5
2004-10-17- permit Conflicts: /path/to/file.jbj1-14/+0
CVS patchset: 7476 CVS date: 2004/10/17 18:44:15
2004-10-17fix: legacy syntax not even close.jbj1-1/+0
- permit Obsoletes: /path/to/file. CVS patchset: 7474 CVS date: 2004/10/17 18:24:36
2004-10-09Splint fiddles.jbj1-23/+23
CVS patchset: 7438 CVS date: 2004/10/09 18:23:00
2002-12-12- fix: add rpmlib(VersionedDependencies) if versioned Provides: found.jbj1-1/+1
CVS patchset: 5937 CVS date: 2002/12/12 19:16:45
2002-07-02Add boundsread annotations throughout, enable +bounds checking.jbj1-0/+2
Start narrowing the scope of bounds annotations by adding more annotations. CVS patchset: 5537 CVS date: 2002/07/02 23:54:35
2001-10-15Explicit branchstate annotations.jbj1-0/+2
CVS patchset: 5113 CVS date: 2001/10/15 17:53:34
2001-10-15lclint fiddles to annotate globals.jbj1-0/+1
CVS patchset: 5106 CVS date: 2001/10/15 03:22:10
2001-10-13More lclint annotations.jbj1-5/+5
CVS patchset: 5105 CVS date: 2001/10/13 22:01:38
2001-06-05- fix typos in linux.{req,prov}.jbj1-2/+2
CVS patchset: 4834 CVS date: 2001/06/05 19:26:22
2001-04-30- yet more boring lclint annotations and fiddles.jbj1-3/+3
CVS patchset: 4732 CVS date: 2001/04/30 22:32:22
2001-04-29- globalize _free(3) wrapper in rpmlib.h, consistent usage throughout.jbj1-10/+10
- internalize locale insensitive ctype(3) in rpmio.h - boring lclint annotations and fiddles. CVS patchset: 4721 CVS date: 2001/04/29 01:05:43