-->

2013-08-30

PORTDIR_OVERLAYの追加 part4

参考URL.
https://devmanual.gentoo.org/general-concepts/dependencies/index.html

http://www.gentoo.org/doc/ja/policy.xml

http://www.atzm.org/gentoo/ebuilds2.html

http://insnvlovn.blogspot.jp/2013/08/memo-hhvm.html

hhvmの依存パッケージをemerge --depcleanで消したくない。
# /var/lib/portage/world(emerge --oneshot => emerge --noreplace)登録では
# 後で何でインストールした?となることがある。
# 全部libevent-1.4.14b-stableみたいにソースから入れれば良かったのでは?
$ /usr/local/hhvm/2013-08-11/hiphop-php/hphp/hhvm/hhvm --version
HipHop VM v2.1.0-dev (rel)
Compiler: heads/master-0-g67ec381c907f1cb0c20fd7ae39bac594cce5260f
Repo schema: c1d8348ed4576c1d8bea8d67f007c715860f7c6d

そんな時はvirtualパッケージを登録する。
# もっと楽にできたような気がする。コマンド的な何かで一発登録。
$ grep /usr/local/portage/test /etc/portage/make.conf
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage/test"

mkdir -p /usr/local/portage/test/virtual/hhvm
cd /usr/local/portage/test/virtual/hhvm
cp -i /usr/portage/virtual/acl/acl-0-r1.ebuild hhvm-2.1.0.ebuild

RDEPENDだけ修正する。
# ={$packagename}-{$version} でバージョン固定で依存("="のかわりに"~"で-r1とかOK.)
# {$packagename}[useflag1,useflag2] で依存パッケージにuseflagを要求。
# もっと細かく指定可能なのでマニュアルを閲覧する。
# 個人の用途であれば説明とか修正しなくても動く。
# たまたま元から入っていた依存パッケージもあるので、それも書かないと後で動作しなくなる。
# バージョン書いてないのにもバージョン指定があったような気がした。インストール時のエラーメッセージで。
$ cat hhvm-2.1.0.ebuild
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/virtual/acl/acl-0-r1.ebuild,v 1.3 2013/03/22 16:03:21 jer Exp $

EAPI="3"

DESCRIPTION="Virtual for acl support (sys/acl.h)"
HOMEPAGE=""
SRC_URI=""

LICENSE=""
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux"
IUSE=""

DEPEND=""
RDEPEND="
dev-libs/boost
dev-cpp/glog[unwind]
=dev-libs/libmemcached-0.39
media-libs/gd[jpeg,png]
dev-cpp/tbb
net-nds/openldap
=dev-libs/libdwarf-20120410
net-libs/c-client
"

インストールする。
ebuild hhvm-2.1.0.ebuild manifest
sudo emerge -avt hhvm

確認する。
$ grep hhvm /var/lib/portage/world
virtual/hhvm

チェックする。
逆にuseflagがあってはいけない、と変更する。
...
dev-cpp/glog[-unwind]
...

インストールはしないが、どうなるか確認する。
$ ebuild hhvm-2.1.0.ebuild manifest
$ sudo emerge -avtp hhvm

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by virtual/hhvm-2.1.0::x-test
# required by hhvm (argument)
>=dev-cpp/glog-0.3.3 -unwind

These are the packages that would be merged, in reverse order:

Calculating dependencies  ... done!
[ebuild   R    ] virtual/hhvm-2.1.0::x-test  0 kB
[ebuild   R    ]  dev-cpp/glog-0.3.3  USE="-gflags -static-libs {-test} -unwind*" 0 kB

Total: 2 packages (2 reinstalls), Size of downloads: 0 kB

戻す。
$ grep unwind hhvm-2.1.0.ebuild
dev-cpp/glog[unwind]
$ ebuild hhvm-2.1.0.ebuild manifest

$ sudo emerge -avtp hhvm

These are the packages that would be merged, in reverse order:

Calculating dependencies  .... done!
[ebuild   R    ] virtual/hhvm-2.1.0::x-test  0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

0 件のコメント: