From owner-freebsd-ports@FreeBSD.ORG Tue Nov 6 22:58:52 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E8995CBA; Tue, 6 Nov 2012 22:58:52 +0000 (UTC) (envelope-from glarkin@FreeBSD.org) Received: from mail1.sourcehosting.net (mail1.sourcehosting.net [74.205.51.45]) by mx1.freebsd.org (Postfix) with ESMTP id B5A7D8FC12; Tue, 6 Nov 2012 22:58:52 +0000 (UTC) Received: from 24-181-237-39.dhcp.oxfr.ma.charter.com ([24.181.237.39] helo=Gregory-Larkins-iMac.local) by mail1.sourcehosting.net with esmtp (Exim 4.73 (FreeBSD)) (envelope-from ) id 1TVs6V-000PQo-GI; Tue, 06 Nov 2012 17:58:46 -0500 Received: from Gregory-Larkins-iMac.local (localhost [127.0.0.1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by Gregory-Larkins-iMac.local (Postfix) with ESMTPS id ED47F179156D; Tue, 6 Nov 2012 17:58:42 -0500 (EST) Message-ID: <50999622.6080306@FreeBSD.org> Date: Tue, 06 Nov 2012 17:58:42 -0500 From: Greg Larkin Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:16.0) Gecko/20121026 Thunderbird/16.0.2 MIME-Version: 1.0 To: "Christopher J. Ruwe" References: <20121106220059.7de9f176@dijkstra.cruwe.de> In-Reply-To: <20121106220059.7de9f176@dijkstra.cruwe.de> X-Enigmail-Version: 1.4.5 X-SA-Exim-Connect-IP: 24.181.237.39 X-SA-Exim-Mail-From: glarkin@FreeBSD.org X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail1.sourcehosting.net X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00, RCVD_IN_SORBS_DUL,RDNS_DYNAMIC,TVD_RCVD_IP autolearn=no version=3.3.1 Subject: Re: trying to build a port for vagrant and failing Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SA-Exim-Version: 4.2 X-SA-Exim-Scanned: Yes (on mail1.sourcehosting.net) Cc: freebsd-questions@freebsd.org, freebsd-ports@freebsd.org X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: glarkin@FreeBSD.org List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Nov 2012 22:58:53 -0000 -----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 > > > ======================= 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 > > =======================> ========================== ===> 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-----