ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] apt virtual packages
Date: Fri, 15 Dec 2006 02:40:38 +0300
Message-ID: <20061214234038.GH13476@localhost.localdomain> (raw)
In-Reply-To: <20061207225233.GA14226@nomad.office.altlinux.org>

[-- Attachment #1: Type: text/plain, Size: 4596 bytes --]

On Fri, Dec 08, 2006 at 01:52:33AM +0300, Dmitry V. Levin wrote:
> У него была проблема с очень похожими симптомами, и она, к сожалению,
> твоим исправлением не решена.

Это совсем другая проблема.

> Как воспроизвести:
> 1. Взять пакет python-2.4.4-alt2.src.rpm из Сизифа, увеличить релиз и
> собрать получившийся python-2.4.4-alt2.1.src.rpm
> 2. Взять пакет python-module-tpg-3.1.0-alt1.src.rpm из Сизифа и
> попробовать собрать (--with-stuff по умолчанию).
> Этот python-module-tpg не соберётся с такой диагностикой:
> 
> Reading Package Lists...
> Building Dependency Tree...
> Selected version 2.4.4-alt2 for python-devel
> Selected version 0.29-alt3 for rpm-build-python
> rpm-build-python is already the newest version.
> Some packages could not be installed. This may mean that you have
> requested an impossible situation or if you are using the unstable
> distribution that some required packages have not yet been created
> or been moved out of Incoming.
> The following information may help to resolve the situation:
> 
> The following packages have unmet dependencies:
>   python-dev: Depends: python-base (= 2.4.4-alt2) but 2.4.4-alt2.1 is to be installed
> E: Broken packages
> install: failed to calculate package file list.
> install: Failed to generate package file list.
> 
> Причём:
> $ rpmquery -pR python-module-tpg-3.1.0-alt1.src.rpm |grep -v ^rpmlib
> python-devel = 2.4
> rpm-build-python >= 0.8
> $ workdir/aptbox/apt-get -y --print-uris install python-devel 2>&1 |grep ^Selecting
> Selecting python-dev for 'python-devel'
> $ workdir/aptbox/apt-get -y --print-uris install python-devel=2.4
> Reading Package Lists...
> Building Dependency Tree...
> Selected version 2.4.4-alt2 for python-devel
> Some packages could not be installed. This may mean that you have
> requested an impossible situation or if you are using the unstable
> distribution that some required packages have not yet been created
> or been moved out of Incoming.
> 
> Since you only requested a single operation it is extremely likely that
> the package is simply not installable and a bug report against
> that package should be filed.
> The following information may help to resolve the situation:
> 
> The following packages have unmet dependencies:
>   python-dev: Depends: python-base (= 2.4.4-alt2) but 2.4.4-alt2.1 is to be installed
> E: Broken packages

Суть проблемы в том, что когда просят установить виртуальный пакет с
версией, apt берет первый попавшийся реальный пакет, который дает этот
виртуальный пакет с этой версией.

apt-get.cc:
  2102           if (VerTag != 0)
  2103              // CNC:2003-11-05
  2104              if (TryToChangeVer(Pkg,Cache,VerOp,VerTag,VerIsRel) == false)
  2105                 return false;
  2106           if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false)
  2107              return false;

Проблема в процедуре TryToChangeVer.  Эта процедура пытается подыскать
реальный пакет (в данном случае для python-devel=2.4) и выбирает первое
что только можно выбрать.

--- apt-get.cc- 2006-12-14 23:36:02 +0000
+++ apt-get.cc  2006-12-14 23:38:04 +0000
@@ -1537,6 +1537,8 @@ bool TryToChangeVer(pkgCache::PkgIterato
                                 pkgVersionMatch::Version),VerOp);

    pkgCache::VerIterator Ver = Match.Find(Pkg);
+   for (pkgCache::VerIterator i = Ver; i.end() == false; i++)
+      fprintf(stderr, "Seen pkg %s ver %s\n", Pkg.Name(), i.VerStr());

    if (Ver.end() == true)
    {

$ PATH=$PWD:$PATH ~tmp/build/aptbox/apt-get --dry-run install python-devel=2.4
Reading Package Lists... Done                                                              
Building Dependency Tree... Done
Seen pkg python-devel ver 2.4.4-alt2
^^^
Selected version 2.4.4-alt2 for python-devel
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

Since you only requested a single operation it is extremely likely that
the package is simply not installable and a bug report against
that package should be filed.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
  python-dev: Depends: python-base (= 2.4.4-alt2) but 2.4.4-alt2.1 is to be installed
E: Broken packages
$

Т.е. 2.4.4-alt2.1 в этом месте не видно вообще.
Соответственно, дальше, вероятно, стоит ковырять pkgVersionMatch::Find.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2006-12-14 23:40 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-09 22:32 Alexey Tourbin
2006-10-09 22:41 ` Dmitry V. Levin
2006-10-10  0:40   ` Alexey Tourbin
2006-10-10 15:39     ` Dmitry V. Levin
2006-10-10 15:52       ` Alexey Tourbin
2006-10-10 22:11         ` Dmitry V. Levin
2006-10-11  0:16           ` Alexey Tourbin
2006-10-12  9:18             ` Serge Pavlovsky
2006-12-07 22:52             ` Dmitry V. Levin
2006-12-08 21:27               ` Alexey Tourbin
2006-12-08 21:43                 ` Dmitry V. Levin
2006-12-08 21:59                   ` Alexey Tourbin
2006-12-08 22:01                 ` Dmitry V. Levin
2006-12-08 22:23                   ` Dmitry V. Levin
2006-12-13  3:35               ` Alexey Tourbin
2006-12-14 23:40               ` Alexey Tourbin [this message]
2006-12-14 23:46                 ` Alexey Tourbin
2006-12-14 23:54                   ` Alexey Tourbin
2006-12-15  1:25                 ` Alexey Tourbin
2006-12-15 13:49                   ` Michael Shigorin
2006-12-15 16:52                     ` Alexey Tourbin
2006-12-15 22:27                   ` Dmitry V. Levin
2006-12-15 22:42                     ` Alexey Tourbin
2006-12-16 12:03                       ` Alexey I. Froloff
2006-12-16 20:19                         ` Alexey Tourbin
2006-12-16 21:02                           ` Dmitry V. Levin
2006-12-16 21:08                             ` Alexey Tourbin
2006-12-16 21:26                               ` Dmitry V. Levin
2006-12-16 21:42                                 ` Alexey Tourbin
2006-12-17 13:51                             ` Alexey I. Froloff
2006-12-17 14:12                               ` Alexey Tourbin
2006-12-17 16:47                                 ` [devel] Papadimitriou Alexey Tourbin
2006-12-17 16:58                                 ` [devel] apt virtual packages Alex V. Myltsev
2006-12-17 17:45                                   ` Alexey Tourbin
2006-12-17 17:57                                     ` [devel] [JT] " Alex V. Myltsev
2006-12-17 18:13                                       ` Alexey Tourbin
2006-12-17  9:58                     ` [devel] " Alexey Tourbin
2006-12-17 10:02                       ` Alexey Tourbin
2006-12-17 10:37                         ` Alexey Tourbin
2006-12-17 13:43                   ` [devel] [PATCH] " Alexey Tourbin
2006-12-17 13:46                     ` [devel] gendiff Alexey Tourbin
2006-12-17 14:14                     ` [devel] [PATCH] apt virtual packages Alexey Tourbin
2006-12-17 16:09                       ` Alexey Tourbin
2006-12-17 16:15                         ` Alexey Tourbin
2006-12-17 17:05                           ` Hihin Ruslan
2006-12-17 17:17                             ` Alexey Tourbin
2006-12-17 16:41                         ` Alexey Tourbin
2006-12-17 16:49                           ` [devel] std::sort Alex V. Myltsev
2006-12-17 17:15                             ` Alexey Tourbin
2006-12-17 17:54                               ` [devel] [JT] std::sort Alex V. Myltsev
2006-12-17 18:06                                 ` Alexey Tourbin
2006-12-17 19:42                                 ` Hihin Ruslan
2006-12-17 20:01                                   ` Hihin Ruslan
2006-12-17 20:33                                     ` Hihin Ruslan
2006-12-17 20:18                                   ` Alex V. Myltsev
2006-12-18  7:51                                     ` Hihin Ruslan
2006-12-18 10:39                         ` [devel] [PATCH] apt virtual packages Led
2006-12-18 13:17                           ` Alexey Tourbin
2006-12-17 16:51                       ` Dmitry V. Levin
2006-12-20 17:25                     ` Alexey Tourbin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061214234038.GH13476@localhost.localdomain \
    --to=at@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git