Skip to content

Instantly share code, notes, and snippets.

@mizzy
Created February 6, 2009 10:28
Show Gist options
  • Save mizzy/59320 to your computer and use it in GitHub Desktop.
Save mizzy/59320 to your computer and use it in GitHub Desktop.
= モジュールの依存関係 =
rpmbuild でパッケージを作る際に、use/require してるモジュールがすべて rpm の依存関係に含まれてしまう、という問題がある。eval しているモジュールは依存関係の対象とはならないが、以下のように複数行にまたがっていると、依存関係の対象になってしまう。
{{{
eval {
require 'Hoge';
}
}}}
依存関係に含まれないようにするためには、/usr/lib/rpm/perl.req を以下のように修正する。
{{{
#!diff
--- /usr/lib/rpm/perl.req.org 2008-01-31 19:21:31.000000000 +0900
+++ /usr/lib/rpm/perl.req 2008-01-31 19:21:41.000000000 +0900
@@ -221,8 +221,8 @@
($module =~ m/\.ph$/) && next;
- $require{$module}=$version;
- $line{$module}=$_;
+ #$require{$module}=$version;
+ #$line{$module}=$_;
}
}
}}}
= cpanflute2 の修正 =
cpanflute2自体もビルド時に問題が発生することがあるので、以下のパッチをあてる。
{{{
#!diff
--- cpanflute2.org 2008-02-26 12:20:28.000000000 +0900
+++ cpanflute2 2008-02-26 12:21:15.000000000 +0900
@@ -159,10 +159,12 @@
my $yaml = Load($contents);
while (my ($mod, $ver) = each %{$yaml->{build_requires}}) {
- push @build_requires, [ "perl($mod)", $ver ];
+ $mod = "perl($mod)" if $mod ne 'perl';
+ push @build_requires, [ "$mod", $ver ];
}
while (my ($mod, $ver) = each %{$yaml->{requires}}) {
- push @requires, [ "perl($mod)", $ver ];
+ $mod = "perl($mod)" if $mod ne 'perl';
+ push @requires, [ "$mod", $ver ];
}
}
@@ -289,12 +291,7 @@
my $makefile_pl = qq{CFLAGS="\$RPM_OPT_FLAGS" %{__perl} Makefile.PL < /dev/null};
my $make_install = qq{make pure_install PERL_INSTALL_ROOT=\$RPM_BUILD_ROOT};
-if ($use_module_build) {
- $makefile_pl = qq{CFLAGS="\$RPM_OPT_FLAGS" %{__perl} Makefile.PL destdir=\$RPM_BUILD_ROOT $installdirs < /dev/null};
-}
-else {
- $makefile_pl = qq{CFLAGS="\$RPM_OPT_FLAGS" %{__perl} Makefile.PL $installdirs};
-}
+$makefile_pl = qq{CFLAGS="\$RPM_OPT_FLAGS" %{__perl} Makefile.PL $installdirs};
$spec->build(<<EOB);
$makefile_pl
}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment