Bug 13307 - perl-Apache-DBI requires apache1 when only apache2 installed
Summary: perl-Apache-DBI requires apache1 when only apache2 installed
Status: CLOSED FIXED
Alias: None
Product: Branch 4.0
Classification: Distributions
Component: perl-Apache-DBI (show other bugs)
Version: 4.0
Hardware: all Linux
: P2 normal
Assignee: Victor Forsyuk
QA Contact: Q.A. 4.0
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-11-02 16:49 MSK by Mike Lykov
Modified: 2007-11-08 16:14 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Lykov 2007-11-02 16:49:53 MSK
ситуация такая:
стоят на данный момент пакеты
apache2-2.2.6-alt4
apache2-mod_ssl-2.2.4-alt33
apache2-httpd-prefork-2.2.4-alt33
apache2-common-2.2.6-alt4
alterator-apache2-2.1-alt1
apache2-mod_perl-doc-2.0.3-alt5
apache2-mod_perl-2.0.3-alt5

т.е. никаких пакетов, обносящихся к apache1, нет.
некоему приложению под mod_perl2 требуется модуль perl-Apache-DBI.

но при попытке его установить происходит такое:
The following extra packages will be installed:
  apache-common apache-mod_perl libmm perl-B-Graph perl-BSD-Resource
perl-Devel-Symdump

т.е. он, хотя мог бы работать с apache2/mod_perl2, он тащит за собой apache1.

предлагаю либо вообще отвязать его от apache (кто его ставит - знает что делает,
и apache он поставит/л и самостоятельно) либо собрать второй пакет
perl-Apache2-DBI, который будет тянуть с собой apache2 ;)


Steps to Reproduce:
1.apt-get install perl-Apache-DBI
2.
3.
Comment 1 Victor Forsyuk 2007-11-06 16:43:51 MSK
(In reply to comment #0)
> т.е. никаких пакетов, обносящихся к apache1, нет.
> некоему приложению под mod_perl2 требуется модуль perl-Apache-DBI.
> 
> но при попытке его установить происходит такое:
> The following extra packages will be installed:
>   apache-common apache-mod_perl libmm perl-B-Graph perl-BSD-Resource
> perl-Devel-Symdump
> 
> т.е. он, хотя мог бы работать с apache2/mod_perl2, он тащит за собой apache1.
> 
> предлагаю либо вообще отвязать его от apache (кто его ставит - знает что делает,

Это возможное решение.

> и apache он поставит/л и самостоятельно) либо собрать второй пакет
> perl-Apache2-DBI, который будет тянуть с собой apache2 ;)

"Тянет" apache1 на самом деле скрипт генерации зависимостей rpm (в данном случае
perl.req). В самом коде Apache-DBI есть условная run-time загрузка модулей
(require) в зависимости от того, какой MOD_PERL_API_VERSION был обнаружен. То
есть, от того работаем ли мы с mod_perl для apache1 или apache2:

use constant MP2 => (exists $ENV{MOD_PERL_API_VERSION}
    && $ENV{MOD_PERL_API_VERSION} == 2) ? 1 : 0;

BEGIN {
  my @constants = qw( OK AUTH_REQUIRED FORBIDDEN DECLINED SERVER_ERROR );
  if (MP2) {
                require Apache2::Access;
    require Apache2::Const;
    import Apache2::Const @constants;
  }
  else {
    require Apache::Constants;
    import Apache::Constants @constants;
  }
}

Ближнесрочным решением мне видится релаксация зависимостей perl-Apache-DBI, как
Вы и предлагаете. В дальнейшем, чтобы все-таки отразить требование любого из
mod_perl, можно вручную прописать требование виртуального провайда,
предоставляемого и apache-mod_perl и apache2-mod_perl.
Comment 2 Mike Lykov 2007-11-07 10:10:07 MSK
хех. то есть сейчас он будет требовать оба одновременно, получается, что бы ни
стояло. как-то это неправильно ;)

чтобы выполнить среднесрочную перспективу надо договориться с маинтейнерами
apache*-mod_perl, чтобы они проставили у себя.

ну а пока, может, пришлете мне модуль без зависимостей? ;)
Comment 3 Victor Forsyuk 2007-11-07 13:55:23 MSK
(In reply to comment #2)
> хех. то есть сейчас он будет требовать оба одновременно, получается, что бы ни
> стояло. как-то это неправильно ;)

Нет, конечно. Из чего Вы делаете такой вывод?

> чтобы выполнить среднесрочную перспективу надо договориться с маинтейнерами
> apache*-mod_perl, чтобы они проставили у себя.

Да.
 
> ну а пока, может, пришлете мне модуль без зависимостей? ;)
 
Он уже в сизифе: perl-Apache-DBI-1.06-alt2
Comment 4 Michael Shigorin 2007-11-07 23:00:53 MSK
(In reply to comment #1)
> В дальнейшем, чтобы все-таки отразить требование любого из
> mod_perl, можно вручную прописать требование виртуального провайда,
> предоставляемого и apache-mod_perl и apache2-mod_perl.
Ну я не против.
Comment 5 Mike Lykov 2007-11-08 12:08:51 MSK
спасибо, Виктор. поставил сейчас из сизифа таким образом:

The following NEW packages will be installed:
  perl-Apache-DBI
0 upgraded, 1 newly installed, 0 removed and 733 not upgraded.
Need to get 48.7kB of archives.
After unpacking 132kB of additional disk space will be used.
Get:1 ftp://ftp.altlinux.org noarch/classic perl-Apache-DBI 1.06-alt2 [48.7kB]
Fetched 48.7kB in 1s (38.5kB/s)

без зависимостей ;)

а что не реагирует naf@ ?
написал ему ;)
Comment 6 Nikolay A. Fetisov 2007-11-08 12:19:53 MSK
> а что не реагирует naf@ ?
А я внимательно читаю. Единственный вопрос, который вроде бы остался - это имя  
виртуального провайда. mod_perl-general ?
Comment 7 Victor Forsyuk 2007-11-08 12:50:53 MSK
(In reply to comment #6)
> А я внимательно читаю. Единственный вопрос, который вроде бы остался - это имя  
> виртуального провайда. mod_perl-general ?

Не очень как-то красиво... Поскольку у нас имена пакетов с mod_perl префиксуются
указанием апача (apache-mod_perl, apache2-mod_perl), то почему бы виртуальный
провайд не назвать просто mod_perl
Comment 8 Michael Shigorin 2007-11-08 16:14:43 MSK
(In reply to comment #7)
> то почему бы виртуальный провайд не назвать просто mod_perl

Тем более что я его и так уже провайдю:
%package mod_perl
# ...
Provides: mod_perl = %mod_perl_version
;-)