From: mookid@sigent.ru (Mikhail Zabaluev) To: devel@linux.iplabs.ru Subject: [devel] perl.{req,prov} improvements Date: Thu, 30 Nov 2000 13:32:29 +0300 Message-ID: <20001130133229.A8282@localhost.localdomain> (raw) [-- Attachment #1: Type: text/plain, Size: 757 bytes --] Доброе время суток. Предлагаются новые доработки скриптов автоматического поиска зависимостей для rpm. Теперь perl.req записывает в зависимости только те файлы, которые существуют в системе или устанавливаются текущей сборкой. Не знаю, насколько это хорошо идеологически, но позволяет избавиться от некоторых совсем фантомных зависимостей. Дмитрию: c find-{provides,requires} была проблема, они дают начальную пустую строку на вход этих скриптов. Я от этого защитился, но все же лучше формировать списки так (поскольку порядок неважен): LIST_PERL="$f $LIST_PERL" -- Stay tuned, MhZ mailto:mookid@sigent.ru ----------- Neurotics build castles in the sky, Psychotics live in them, And psychiatrists collect the rent. [-- Attachment #2: reqprov.patch --] [-- Type: text/plain, Size: 2255 bytes --] --- perl.req.orig Thu Nov 30 12:32:34 2000 +++ perl.req Thu Nov 30 13:01:51 2000 @@ -58,15 +58,37 @@ } +# obtain the list of library directories. If not provided, use @INC + +if (exists $ENV{RPM_PERL_LIB_PATH}) { + @perl_inc = split(/[:,\s]+/, $ENV{RPM_PERL_LIB_PATH}); +} +else { + @perl_inc = grep { m|^/| } @INC; +} + +# add installation mirrors to the library search list + +my $buildroot = $ENV{RPM_BUILD_ROOT}; +push @perl_inc, map { "${buildroot}$_" } @perl_inc; + + foreach $module (sort keys %require) { + + # search for the file to be installed in the system or in this same package + + my $found = 0; + for (@perl_inc) { + if (-e "$_/$module") { + $found = 1; + last; + } + } + next unless $found; + if (length($require{$module}) == 0) { print "perl($module)\n"; } else { - - # I am not using rpm3.0 so I do not want spaces arround my - # operators. Also I will need to change the processing of the - # $RPM_* vairable when I upgrage. - print "perl($module) >= $require{$module}\n"; } } @@ -80,6 +102,8 @@ my ($file) = @_; chomp($file); + return if $file eq ''; + open(FILE, "<$file")|| die("$0: Could not open file: '$file' : $!\n"); @@ -147,11 +171,6 @@ next if $2 eq '"' && $module =~ /\$/; - # ignore files with non-perl suffixes because they will not be detected - # by find-provides - - next unless $module =~ /\.p[lmh]/; - $module = File::Spec->canonpath($module); if (File::Spec->file_name_is_absolute) { @@ -164,7 +183,7 @@ # unsure what to do with paths that lead to parent directories - next if $module =~ /\.\.\//; + next if $module =~ /(^|\/)\.\.\//; # otherwise, continue with $module set @@ -210,7 +229,7 @@ sub package_version { my $version = shift; - if ($version =~ s/^v// || $version =~ /\.\d+\./) { + if ($version =~ s/^v// || $version =~ /\.[\d_]+\./) { return "1:$version"; } else { --- perl.prov.orig Thu Nov 30 13:00:32 2000 +++ perl.prov Thu Nov 30 13:00:39 2000 @@ -124,6 +124,8 @@ my ($file) = @_; chomp $file; + return if $file eq ''; + # find the longest matching prefix among Perl library search directories my $prefix = '';
reply other threads:[~2000-11-30 10:32 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20001130133229.A8282@localhost.localdomain \ --to=mookid@sigent.ru \ --cc=devel@linux.iplabs.ru \ /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