trying to build a port for vagrant and failing
Greg Larkin
glarkin at FreeBSD.org
Tue Nov 6 22:58:53 UTC 2012
-----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-----
More information about the freebsd-ports
mailing list