Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 06 Nov 2012 17:58:42 -0500
From:      Greg Larkin <glarkin@FreeBSD.org>
To:        "Christopher J. Ruwe" <cjr@cruwe.de>
Cc:        freebsd-questions@freebsd.org, freebsd-ports@freebsd.org
Subject:   Re: trying to build a port for vagrant and failing
Message-ID:  <50999622.6080306@FreeBSD.org>
In-Reply-To: <20121106220059.7de9f176@dijkstra.cruwe.de>
References:  <20121106220059.7de9f176@dijkstra.cruwe.de>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/6/12 4:00 PM, Christopher J. Ruwe wrote:
> Currently, I am trying to write up a port for vagrant, a VirtualBox
> managment thing (http://vagrantup.com/). I am failing with the
> dependencies and would be grateful for some help.
> 
> I have
> 
> BUILD_DEPENDS= 
> minitar:${PORTSDIR}/archivers/rubygem-archive-tar-minitar \
> 
> RUN_DEPENDS=    erubis:${PORTSDIR}/www/rubygem-erubis \ 
> rubygem-childprocess>=0.3.1:${PORTSDIR}/devel/rubygem-childprocess 
> \ rubygem-i18n>=0.6.0:${PORTSDIR}/devel/rubygem-i18n \ 
> rubygem-json>=1.5.1:${PORTSDIR}/devel/rubygem-json \ 
> rubygem-log4r>=1.1.9:${PORTSDIR}/sysutils/rubygem-log4r \ 
> rubygem-net-ssh>=2.2.2:${PORTSDIR}/security/rubygem-net-ssh \ 
> rubygem-net-scp>=1.0.4:${PORTSDIR}/security/rubygem-net-scp
> 
> in the makefile.
> 
> From the build log (I am using poudriere for testing) I get
> 
> 
> =======================<phase: 
> run-depends>========================== ===>
> rubygem-vagrant-1.0.5 depends on executable: erubis - not found
> ===>    Verifying install for erubis in
> /usr/ports/www/rubygem-erubis ===>   Installing existing package
> /usr/ports/packages/All/rubygem-erubis-2.7.0.tbz ===>   Returning
> to build of rubygem-vagrant-1.0.5 ===> rubygem-vagrant-1.0.5
> depends on package: rubygem-childprocess>=0.3.1 - not found ===>
> Verifying install for rubygem-childprocess>=0.3.1 in 
> /usr/ports/devel/rubygem-childprocess ===>   Installing existing 
> package /usr/ports/packages/All/rubygem-childprocess-0.3.5.tbz
> ===> Returning to build of rubygem-vagrant-1.0.5 ===> 
> rubygem-vagrant-1.0.5 depends on package: rubygem-i18n>=0.6.0 -
> not found ===>    Verifying install for rubygem-i18n>=0.6.0 in 
> /usr/ports/devel/rubygem-i18n ===>   Installing existing package 
> /usr/ports/packages/All/rubygem-i18n-0.6.0,2.tbz ===>   Returning 
> to build of rubygem-vagrant-1.0.5 ===>   rubygem-vagrant-1.0.5 
> depends on package: rubygem-json>=1.5.1 - not found ===> Verifying
> install for rubygem-json>=1.5.1 in /usr/ports/devel/rubygem-json
> ===>   Installing existing package 
> /usr/ports/packages/All/rubygem-json-1.7.5.tbz ===>   Returning to 
> build of rubygem-vagrant-1.0.5 ===>   rubygem-vagrant-1.0.5
> depends on package: rubygem-log4r>=1.1.9 - not found ===>
> Verifying install for rubygem-log4r>=1.1.9 in 
> /usr/ports/sysutils/rubygem-log4r ===>   Installing existing 
> package /usr/ports/packages/All/rubygem-log4r-1.1.10.tbz ===> 
> Returning to build of rubygem-vagrant-1.0.5 ===> 
> rubygem-vagrant-1.0.5 depends on package: rubygem-net-ssh>=2.2.2 - 
> not found ===>    Verifying install for rubygem-net-ssh>=2.2.2 in 
> /usr/ports/security/rubygem-net-ssh ===>   Installing existing 
> package /usr/ports/packages/All/rubygem-net-ssh-2.1.4,2.tbz ===> 
> Returning to build of rubygem-vagrant-1.0.5 ===> 
> rubygem-vagrant-1.0.5 depends on package: rubygem-net-scp>=1.0.4 - 
> not found ===>    Verifying install for rubygem-net-scp>=1.0.4 in 
> /usr/ports/security/rubygem-net-scp ===>   Installing existing 
> package /usr/ports/packages/All/rubygem-net-scp-1.0.4_1.tbz ===> 
> Returning to build of rubygem-vagrant-1.0.5 ===> 
> rubygem-vagrant-1.0.5 depends on file: /usr/local/bin/gem18 - found
> ===>   rubygem-vagrant-1.0.5 depends on file: /usr/local/bin/ruby18
> - found 
> ===================================================================
>
>
> 
So far so good. I noticed that rubygem-net-ssh-2.1.4.2 is supposed
> to satisfy >=rubygem-net-ssh-2.2.2, which I ignore for the while.
> 
> Now, building yields
> 
> =======================<phase: install
>> ========================== ===>  Installing for
> rubygem-vagrant-1.0.5 ===>   rubygem-vagrant-1.0.5 depends on 
> executable: erubis - found ===>   rubygem-vagrant-1.0.5 depends on 
> package: rubygem-childprocess>=0.3.1 - found ===> 
> rubygem-vagrant-1.0.5 depends on package: rubygem-i18n>=0.6.0 - 
> found ===>   rubygem-vagrant-1.0.5 depends on package: 
> rubygem-json>=1.5.1 - found ===>   rubygem-vagrant-1.0.5 depends
> on package: rubygem-log4r>=1.1.9 - found ===>
> rubygem-vagrant-1.0.5 depends on package: rubygem-net-ssh>=2.2.2 -
> found ===> rubygem-vagrant-1.0.5 depends on package:
> rubygem-net-scp>=1.0.4 - found ===>   rubygem-vagrant-1.0.5 depends
> on file: /usr/local/bin/gem18 - found ===>   rubygem-vagrant-1.0.5
> depends on file: /usr/local/bin/ruby18 - found ===>   Generating
> temporary packing list ===>  Checking if emulators/rubygem-vagrant
> already installed /usr/bin/env  /usr/local/bin/gem18 install -l 
> --no-update-sources --no-ri --install-dir /usr/local/lib/r\ 
> uby/gems/1.8 /usr/ports/distfiles/rubygem/vagrant-1.0.5.gem -- 
> --build-args ERROR:  While executing gem ... (Gem::DependencyError)
> Unable to resolve dependencies: vagrant requires json (~> 1.5.1),
> net-ssh (~> 2.2.2) *** Error code 1
> 
> The installation is right about net-ssh (confer above), but 
> definitely not on json (1.7.5 > 1.5.1).
> 
> Can anybody hint me on a path to pursue to resolve that error?
> 
> Many thanks, cheers,

Hi Chris,

You've run into a problem we have with the ports system and Rubygem
ports specifically.

I also worked on porting vagrant a few months ago.  I ran into this
issue, too, and it's caused by the fact that Ruby has the "~>" version
dependency operator. Check this thread for some details:
http://stackoverflow.com/questions/5170547/what-does-tilde-greater-than-mean-in-ruby-gem-dependencies

The ports tree has the devel/rubygem-json and the
devel/rubygem-json146, but neither of these satisfy the "~> 1.5.1"
version dependency for vagrant.  In order to do that, you'll have to
create a new port (devel/rubygem-json15) and install the 1.5.4 JSON
gem (http://rubygems.org/gems/json/versions/1.5.4).

Hope that helps,
Greg
- -- 
Greg Larkin

http://www.FreeBSD.org/           - The Power To Serve
http://www.sourcehosting.net/     - Ready. Set. Code.
http://twitter.com/cpucycle/      - Follow you, follow me
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (Darwin)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iEYEARECAAYFAlCZliIACgkQ0sRouByUApBTigCgnbpPrumRIVvLjYXjjLDeMjaK
WasAniPgIvIeRWIKEiHCl32sRI2ruFsx
=REtW
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?50999622.6080306>