Summary: | Several rubygem CONFLICTS: Eg: archivers/rubygem-rubyzip & devel/rubygem-i18n causing security/metasploit build failure | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | dewayne |
Component: | Individual Port(s) | Assignee: | freebsd-ruby (Nobody) <ruby> |
Status: | Closed Not A Bug | ||
Severity: | Affects Some People | CC: | delphij, koobs, mmoll, ruby, sunpoet, swills, tanawts, xmj |
Priority: | --- | Keywords: | needs-patch, needs-qa |
Version: | Latest | Flags: | koobs:
maintainer-feedback-
|
Hardware: | Any | ||
OS: | Any |
Description
dewayne
2015-04-02 04:41:11 UTC
(In reply to dewayne from comment #0) Update with an svn update of ports today Installing rubygem-json_pure-1.8.2... pkg-static: rubygem-json_pure-1.8.2 conflicts with rubygem-i18n-0.7.0,2 (installs files into the same place). Problematic file: /usr/local/lib/ruby/gems/2.1/doc/i18n-0.7.0/rdoc/GetText/PoParser.html *** Error code 70 (In reply to dewayne from comment #1) After sprinkling this OPTIONS_UNSET=DOC RDOC DOCS HTMLDOCS PORTDOCS APIDOCS RDOC MANPAGES EXAMPLES PORTEXAMPLES over all the ruby and rubygem ports, a similar problem appears pkg-static: rubygem-activemodel-3.2.21 conflicts with rubygem-json_pure-1.8.2 (installs files into the same place). Problematic file: /usr/local/lib/ruby/gems/2.1/doc/activemodel-3.2.21/rdoc/ActiveModel/AttributeMethods/ClassMethods/AttributeMethodMatcher.html *** Error code 70 (In reply to dewayne from comment #2) Continuing to fail due to conflicts (on amd64, 10.1S r283037 (yesterday)): Log from rubygem-arel3 ---------------------- Installing rubygem-arel3-3.0.3,1... pkg-static: rubygem-arel3-3.0.3,1 conflicts with rubygem-activemodel-3.2.21 (installs files into the same place). Problematic file: /usr/local/lib/ruby/gems/2.1/doc/activemodel-3.2.21/rdoc/ActiveModel/AttributeMethods/ClassMethods/AttributeMethodMatcher.html *** Error code 70 Upon examining the svn logs for both, they were last modified on: /usr/ports/databases/rubygem-arel3 2014-08-27 /usr/ports/databases/rubygem-activerecord 2015-04-03 /usr/ports/security/metasploit 2015-03-09 My last successful build of metaploit was 2015-02-22. Maintainer timeout, open to take. CC some ruby@ people explicitly. I can't reproduce this here on my workstation and also not in poudriere. Neither rubyzip vs. i18n nor arel3 vs. activerecord. Did you build take place in poudriere or on the system directly? It looks strange and I cannot reproduce this problem. For examples, rubygem-i18n-0.7.0,2.txz contains only: /usr/local/share/licenses/rubygem-i18n-0.7.0,2/* /usr/local/lib/ruby/gems/2.1/cache/i18n-0.7.0.gem /usr/local/lib/ruby/gems/2.1/specifications/i18n-0.7.0.gemspec /usr/local/lib/ruby/gems/2.1/doc/i18n-0.7.0/* /usr/local/lib/ruby/gems/2.1/gems/i18n-0.7.0/* It will not install any file to /usr/local/lib/ruby/gems/2.1/doc/rubyzip-1.1.6/. Then it cannot conflict with rubygem-rubyzip-1.1.6. (In reply to Sunpoet Po-Chuan Hsieh from comment #6) Thank-you for looking into this issue. I'm able to reproduce *a* problem simply by building the metasploit package on a: FreeBSD 10.1-STABLE FreeBSD 10.1-STABLE #0 r283313M: Sun May 24 06:48:51 AEST 2015 1001515 1001515 poudriere is not used. I just updated /usr/ports via svnlite, and attempted to build metasploit with this result ===> Registering installation for rubygem-journey-1.0.4 as automatic [b2.hs] Installing rubygem-journey-1.0.4... pkg-static: rubygem-journey-1.0.4 conflicts with rubygem-erubis-2.7.0_1 (installs files into the same place). Problematic file: /usr/local/lib/ruby/gems/2.1/doc/erubis-2.7.0/rdoc/ActionController.html *** Error code 70 Stop. make[2]: stopped in /usr/ports/www/rubygem-journey *** Error code 1 Stop. make[1]: stopped in /usr/ports/www/rubygem-actionpack *** Error code 1 Stop. make: stopped in /usr/ports/security/metasploit Out of frustration I've tried silly things like OPTIONS_UNSET=DOC RDOC DOCS RDOCS HTMLDOCS PORTDOCS APIDOCS RDOC and pkg delete rubygem-rubyzip-1.1.7 rubygem-multi_json-1.11.0 rubygem-json_pure-1.8.2 rubygem-journey-1.0.4 rubygem-i18n-0.7.0,2 rubygem-erubis-2.7.0_1 rubygem-builder-3.0.4 rubygem-activesupport-3.2.21 rubygem-activemodel-3.2.21 ruby21-gems-2.4.7 ruby-2.1.6ruby-2.1.6,1 which are all the ruby related packages. So after applying the above, the problem is reproduced via: cd /usr/ports/security/metasploit make -DBATCH clean deinstall package This is a one off test, as we don't incrementally build packages (historical reasons) we blow everything away before a major rebuild and currently build 600+ packages successfully but only metasploit uses ruby and hence failing, which appear to be due to doc or rdoc issues with different dependences over time. (blow away means: pkg delete -f -y -a; rm -R $WRKDIRPREFIX/* $STAGEDIR/* ) (In reply to dewayne from comment #7) When I removed STAGEDIR=/usr/staging from make.conf, the conflicts amoung the various rubygem ports ceased being a barrier. So that is where the problem lay. On the way to this discovery, I'd introduced NOPORTDOCS and DISABLE_CONFLICTS into make.conf, which unfortunately moved the doc and rdoc conflicts to other areas. Eg pkg-static: rubygem-network_interface-0.0.1 conflicts with rubygem-msgpack-0.5.5 (installs files into the same place). Problematic file: /usr/local/lib/ruby/gems/2.1/extensions/amd64-freebsd-10/2.1/msgpack-0.5.5/gem.build_complete Canonicalize assignment. Overriding STAGEDIR with something that is not unique per port will obviously lead to conflicts with ports using autoplist etc. If you override it, use something unique per port. |