Commit Graph

83 Commits

Author SHA1 Message Date
dcb817f3ff Merge branch 'master' of git.alt:/people/avm/packages/apt 2008-11-27 22:42:25 +00:00
Alex V. Myltsev
d6ac8fcdfa 0.5.15lorg2-alt21
- fix by led@: change type of Package.ID to int (fixes #16900)
- fixes by raorn@:
 - apt-get.cc: protect VerTag (fixes #16311)
 - apt-get.cc: fix memory corruption (fixes #14929)
 - fileutl.cc: change semantics of flExtension() (fixes #15909)
2008-09-01 22:41:45 +04:00
Alexey I. Froloff
65a82cc0f2 Fix a memory corruption (altbug #14929). 2008-08-29 22:14:08 +04:00
Alex V. Myltsev
f2922999ae Change flExtension() to return the empty string if there is no extension.
This should fix #15909, thanks to raorn for investigating.
2008-08-29 22:14:00 +04:00
Alex V. Myltsev
c2a7ba45e0 Protect VerTag by pointing it to OrigS, not to S (closes #16311). 2008-08-29 22:13:52 +04:00
Alex V. Myltsev
418a824fd6 Change type of pkgCache::Package.ID to 'unsigned int'.
'unsigned short' breaks when there are more than 65535 packages.
2008-08-29 22:13:44 +04:00
06b3e692bd apt.spec: s/repositaries/repositories/ (ALT#14775) 2008-05-11 22:49:08 +00:00
Alexey Tourbin
92b2ba1c36 0.5.15lorg2-alt20
- genpkglist.cc: RPMTAG_FILEFLAGS should not be copied into header list
- lorg-cache-limit.patch: increase cache size limit
- removed old triggers, updated dependencies
2008-05-11 19:12:59 +04:00
Alexey Tourbin
b3abb08b99 spec (apt-utils): removed comment 2008-05-11 19:11:26 +04:00
Alexey Tourbin
1351d4a75c spec: removed URL part in Source0 2008-05-11 19:10:49 +04:00
Alexey Tourbin
ecbb921870 spec: removed *apt-0.5* obsoletes 2008-05-11 19:09:13 +04:00
Alexey Tourbin
f8e8cd00c6 spec: dropped very old triggers (Master 2.4 has apt-0.5.15cnc6-alt6) 2008-05-11 19:07:20 +04:00
Alexey Tourbin
d5ff215628 lorg-cache-limit.patch: increase cache size limit 2008-05-11 18:58:35 +04:00
Alexey Tourbin
ab496886f6 genpkglist.cc: RPMTAG_FILEFLAGS should not be copied into header list
(Or, at least, RPMTAG_FILEFLAGS should be copiled consistently with
RPMTAG_BASENAMES, RPMTAG_DIRNAMES, and RPMTAG_DIRINDEXES.)
2008-05-11 17:40:09 +04:00
Alexey Tourbin
6ba7ec5518 0.5.15lorg2-alt19
- lorg-pkgcachegen-selfprov.patch: allow self-referencing provides,
  so that e.g. ocaml-runtime#3.10.2-alt2 can provide ocaml-runtime = 3.10
2008-03-30 06:08:07 +04:00
Alexey Tourbin
c8750effef spec: buildreq (bzlib-devel and zlib-devel were missing) 2008-03-30 05:01:46 +04:00
Alexey Tourbin
818a9d5ff8 lorg-pkgcachegen-selfprov.patch: allow self-referencing provides
E.g. ocaml-runtime#3.10.2-alt1 can provide ocaml-runtime = 3.10.
2008-03-30 01:30:43 +03:00
Alex V. Myltsev
b8a9615897 0.5.15lorg2-alt18
- algorithms.cc: better package name comparison
  (now automake_1.10 > automake_1.9)
2007-12-17 17:58:41 +03:00
Alex V. Myltsev
94df084ec5 Better pkgname comparison: now automake_1.10 > automake_1.9.
Before this patch, strcmp(3) would be used to select
the best package. This was sometimes counter-intuitive
(for example, APT would choose autoconf_2.5 over
autoconf_2.13).

[NB: fixing this can break some packages that rely
on the historic sort order; e.g. postgresql74
may be preferred to postgresql8.2.]

We considered using rpmvercmp() for package name
comparison, but chose to write a specially-crafted
function that's mostly compatible with strcmp(3),
except for numeric fragments in the names.

As a matter of fact, strtoull usage is suboptimal here.
It may overflow the returned long long, leading to an
incorrect comparison. Fixing the code to avoid strtoull
is, however, left as an exercise to the diligent
maintenance programmer (and you are insane anyway
if you need package names that trigger the overflow).
2007-12-17 17:58:41 +03:00
Alex V. Myltsev
745b1d9053 Completely silent genbasedir by default
(I failed to convert one 'echo' to 'Verbose' last time).
2007-12-17 17:58:40 +03:00
Alexey Tourbin
71740d9f91 0.5.15lorg2-alt17
- genpkglist.cc: rewrite copyStrippedFileList() to avoid inplace
  dirnames edit bug
2007-12-03 10:49:31 +03:00
Alexey Tourbin
e00c2bc5a3 genpkglist.cc: rewrite copyStrippedFileList() to avoid inplace dirnames edit bug
There was an assumption that DIRINDEXES are always sorted ascending,
which actually does not hold.  This means we CANNOT use inplace
replacement in "dirnames" array, so as to append "later dirs" on top
of "older dirs".

The bug can actually be more subtle.  It is very well possible that
I simply cannot understand that previous "inplace optimization" logic.
But I think that it sucks anyway.  I choose to rewrite this piece of code
for the sake of clarity and correctness.  I hope that the correctness of
the code now should be a bit more obvious, even for a casual reader.
2007-11-30 19:19:42 +03:00
Alexey Tourbin
42f65df4d9 0.5.15lorg2-alt16
- genpkglist: removed very bad piece of code which could break
  my fine-grained file list stripping algorithm
- genbasedir: made silent by default, added --verbose and --silent
  options (Alex V. Myltsev)
2007-11-23 14:43:15 +03:00
Alexey Tourbin
27122041c0 genpkglist.cc: removed very bad piece of code which could break my fine-grained file list stripping algorithm 2007-11-23 13:52:00 +03:00
846591e31e genbasedir: Strip "function" keyword 2007-11-12 15:39:24 +00:00
Alex V. Myltsev
f6a47d1cb1 Add the --silent option. 2007-11-09 19:05:29 +03:00
Alex V. Myltsev
959a7fbbaa Make genbasedir silent by default. Add the --verbose option. 2007-11-09 19:05:22 +03:00
bed9545e2a 0.5.15lorg2-alt15
- apt-get: Fixed manifest file support (Stanislav Ievlev).
2007-10-30 12:02:46 +00:00
Stanislav Ievlev
d848f3e8ff - fix manifest patch (initialize memory with zero values) 2007-10-30 14:54:58 +03:00
Alexey Tourbin
67ca1fb77f 0.5.15lorg2-alt14
- genpkglist: don't strip paths that are owned by 2 or more packages,
  to deal with cross-arch semi-unmets like /usr/share/wallpapers
- apt-get: added support of manifest file (Stanislav Ievlev)
2007-10-24 18:36:51 +04:00
Stanislav Ievlev
c8560f7ff1 - add support of manifest file 2007-10-22 16:29:28 +04:00
Alexey Tourbin
bb7eaffe62 genpkglist: don't strip paths that are owned by 2 or more packages
Another attempt to deal with semi-unmet dependencies.  This should fix
most of the cross-arch semi-unmets generated via conetnts_index_all.

Consider a few noarch packages which own /usr/share/foo.  Now if i586
package somehow refers /usr/share/foo, contents_index_all search will
produce as-is reference, which is going to be cross-arch semi-unmet.

Note that if /usr/share/foo is owned by only one package,
contents_index_all search will produce explicit package name.

This is why genpkglist should not strip paths that are owned
by 2 or more packages.
2007-10-08 22:57:09 +04:00
Alexey Tourbin
341bcecf1e 0.5.15lorg2-alt13
- Updated file list stripping algorithm in genpkglist (apt-utils);
  now it keeps files which can resolve file-level dependencies.
2007-08-11 23:36:16 +04:00
Alexey Tourbin
ef2de99f5f fixed alt-genpkglist-reqfiles.patch: plugged memory leak, added progress bar for the first pass 2007-08-11 22:10:49 +04:00
Alexey Tourbin
30e27b0f1c apt-0.5.15lorg2-alt-genpkglist-reqfiles.patch
genpkglist strips file lists by default (without --bloat option).
It keeps only some "useful files" by using a few ad hoc patterns.

This can break file-level dependencies.  Consider pkgA requires
/usr/lib/foo1/bar, and pkgB owns this file without explicitly
providing it.  Now if genpkglist strips /usr/lib/foo1/bar
from pkgB file list, this is going to be an unmet dependency.

This patch changes genpkglist behaviour, so that, when genpkglist
is invoked without --bloat option, it first finds all file-level
dependencies (something like "rpm -qaR |grep ^/").  This requires
a separate pass.  The list of file-level dependencies is saved into
"reqfiles" global variable.  And on the second (normal) pass, the
function usefulFile() is modified to check the "reqfiles" variable;
that is, it should keep a file in the file list if it's been required
by some package in the repo.

(Unfortunately, this patch does not solve all of the problems
I want it to solve; we have separate repos for i586 and noarch --
inter-repo file-level dependencies cannot be resolved this way.)
2007-08-11 20:01:05 +04:00
Alexey Tourbin
fe9628abf2 0.5.15lorg2-alt12
- Fixed apt-get exit status (#11527)
2007-08-01 00:29:36 +04:00
Alexey Tourbin
aaa4540dd6 spec: updated URL 2007-08-01 00:29:06 +04:00
Alexey Tourbin
1b13c64d1d git-mv apt-0.5.15lorg3-alt-exit-status.patch apt-0.5.15lorg3-alt-exit-status.patch 2007-08-01 00:28:32 +04:00
Slava Semushin
d4f21fc971 0.5.15lorg2-alt11.1
- Fixed typo in output of help command in apt-shell (#5400)
- Fixed wrong message during remove package(s) in apt-shell (#7618)
2007-08-01 00:59:13 +07:00
Slava Semushin
7bc07200d0 Fixed typo in patch description. 2007-08-01 00:14:46 +07:00
Slava Semushin
2485721f59 Fixed wrong message during remove package(s) in apt-shell (#7618) 2007-07-31 23:46:03 +07:00
Slava Semushin
e6ba1a5631 Fixed typo in output of help command in apt-shell (#5400) 2007-07-31 23:22:22 +07:00
Alexey Tourbin
50c8f0252e fixed apt-get exit status (#11527) 2007-04-19 01:24:13 +04:00
Alexey Tourbin
a8a5b2693d 0.5.15lorg2-alt11
- Updated 'apt-get install' algorithm for versioned dependencies:
  + fixed wrong usage of ScoreSort condition introduced in previous release;
  + added explicit check if any package satisfying versioned dependency is
    already installed or selected for install; in this case, apt-get will
    not try to install any other package.
2007-04-09 16:17:11 +04:00
Alexey Tourbin
7e1e99e990 updated alt-versionmatch-TryToChangeVer.patch
This fixes two problems:

1) Wrong usage of ScoreSort condition.  ScoreSort sorts descending,
not ascending.  Thus, previous patch assigned wrong score for already
installed packages.

2) Explicit check for already installed packages.  If any package
that satisfies versioned dependency is already installed, nothing
at all should be installed (even if better versions are available).
2007-04-09 16:16:57 +04:00
a7e56f9ac2 0.5.15lorg2-alt10
- Added bzip2 and gzip requirements (#10408).
2007-03-23 22:11:02 +00:00
0310bc18d9 apt-0.5.15lorg2-alt-versionmatch-TryToChangeVer.patch: Fix redundant check 2007-03-23 22:02:32 +00:00
Alexey Tourbin
11c1ca4797 0.5.15lorg2-alt9
- Updated my previous patch for versioned dependencies, which was half-way
  wrong and incomplete.  For versioned virtual dependencies like python=2.4,
  'apt-get install' will always select real package with the best version
  (which is python-strict#2.4.4-alt8, as for now)
2007-03-22 23:22:13 +03:00
Alexey Tourbin
6c2eeb8ea6 updated versionmatch/TryToChangeVer logic
My previous versionmatch.patch was half-way wrong and/or incomplete.
The problem was that pkgCache::VerIterator::CompareVer() does not
do full-blown version comparison, but rather something strange
(see apt-pkg/pkgcache.cc).

I also noticed that, while TryToInstall() does use Fix.ScoreSort,
TryToChangeVer() does not, which is probably wrong.

The solution is as follows:

1) pkgVersionMatch::FindAll() does not sort versions any longer;
it does not have sufficient information, such as Cache and Fix,
to sort the versions.

2) TryToChangeVer() calls FindAll() instead of Find() and uses
Fix.ScoreSort to sort the versions.  If Fix.ScoreSort returns 0,
it also tries Cache.VS().CmpVersion(), which is the right way to
reach rpmvercmp().

Also updated 'Selected version ... for ...' diagnostics.

(old result and message)
$ ~tmp/build/aptbox/apt-get --dry-run install python=2.4 2>&1 |grep ^Selected
Selected version 2.4.4-alt8 for python
$

The result was wrong, because I have a better version,
which is 2.4.4-alt8.1.

(new result and message)
$ ~tmp/build/aptbox/apt-get --dry-run install python=2.4 2>&1 |grep ^Selected
Selected version python-strict#2.4.4-alt8.1 for python=2.4
$

Update: also do not sort ascending and reverse the list, this is going
to break "stable sort" logic.  Just sort descending.

Update2: actually make CmpVersion() primarily sort condition and
Fix.ScoreSort secondary sort condition.  Fix.ScoreSort should not be
activated early, because e.g. for 'python-devel>=2.3' it is going to
select python2.3-dev, but I want python-dev#2.4.
2007-03-22 23:14:38 +03:00
11b0080fe6 0.5.15lorg2-alt8
- Fixed longstanding problem with versioned virtual packages (Alexey Tourbin),
  see http://lists.altlinux.org/pipermail/devel/2006-December/039317.html
2006-12-31 00:29:51 +00:00