trying to build a port for vagrant and failing

Christopher J. Ruwe cjr at cruwe.de
Wed Nov 7 21:46:26 UTC 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tue, 06 Nov 2012 17:58:42 -0500
Greg Larkin <glarkin at FreeBSD.org> wrote:

> -----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-----
> 

Hi Greg,

thank you for your extensive clarification.

- From your reply I infer that having vagrant in ports would necessitate
another port, thereby somewhat cluttering ports with various
rubygems. Is this the reason why you aborted the attempt and what is
your advise on that matter: Continue ports-integration using two ports
or abolishing the attempt (and have some "private" ports instead)?

Thanks anyways, at least it helps understanding that I have not
"terribly messed up" ;-)

Cheers,
- -- 
Christopher
TZ: 	    GMT + 2h
GnuPG/GPG:  0xE8DE2C14

Punctuation matters:
"Let's eat Grandma" or "Let's eat, Grandma" - Punctuation saves lives.
"A panda eats shoots and leaves" or "A panda eats, shoots, and leaves" -
Punctuation teaches proper biology.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iQIcBAEBAgAGBQJQmtZcAAoJEJTIKW/o3iwUouUQAI4wuM/EpfbpHYCyd488BnFf
m8WI/rLZFY7mPWJn1PPRF1WAh+9bxFWUsLPbfOdTBRXdw0Io/yI6XQeQ0aXpUONF
QdEh1lswHc/flb5nDk5W9Wyun1sQ7baq99seND0vhB+TjqI37wOCfE5ycgY+HreS
QExJg2UKMyd/GM8rXOEF/eVj3+DbvhsxAMmqhD0mXqxPDv3zeVd6uumcjs8kce+x
FpYwCx0ZZE66qXhMCUsEyH5Yj+uKbveZJqcHTD0SxaTtpS4cP5x2FIKUXtb+C2uF
TIRHfaHa5y450pU0l1F2WiivgjRDwZmt1j8LstOGuU8sFUolx/U4Z24l0hrpd67T
wXM3KLt5bNj5PAMx7vo0PSdWzCou5mdYDyJqA/3U7o9TMnvcgXLJDmZz8EmRuvPG
Tq/gut/fcDeMYjmerb0e0yRal9dHR5FaRz3FFeBGdymZ8tPWeA5L+VK5adEaGik4
nl/sQLCnLhWKnQ3hAAS+cmZpWL+W923obiX9EnLReDkIqp8hEksAejh2S7Kb6V2y
eK+iMSGsYP9YNdALXMGZlgVyDCQrOp6ougNRD4vwGWOSLpdkwY4puHbqb1wkmqdr
M2kmdv4pBrGPe0toliCuV96K6KK4k2/Oue8qmw+SpzUqo5ftMBSI+Z58pQAKGGJF
/VQdflBzrO7t9lxp2vGP
=LDSh
-----END PGP SIGNATURE-----


More information about the freebsd-ports mailing list