Bug 194103 - [exp-run] without gperf in base (for clang architectures)
Summary: [exp-run] without gperf in base (for clang architectures)
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Ports Framework (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Ed Maste
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-10-02 21:27 UTC by Ed Maste
Modified: 2014-10-09 23:11 UTC (History)
2 users (show)

See Also:
antoine: exp-run?


Attachments
patch to disable gperf when not building g++ (1.14 KB, patch)
2014-10-02 21:27 UTC, Ed Maste
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Maste freebsd_committer freebsd_triage 2014-10-02 21:27:51 UTC
Created attachment 147922 [details]
patch to disable gperf when not building g++

gperf is needed for building g++, so we should be able to avoid building it for clang architectures (i.e., i386, amd64, arm).
Comment 1 Antoine Brodin freebsd_committer freebsd_triage 2014-10-04 15:50:40 UTC
Hi,

Can we exp-run this by removing gperf on 10.0 or 10.1 instead of head (around 150 more ports will be tested)

Waiting for feedback before starting the exp-run
Comment 2 Ed Maste freebsd_committer freebsd_triage 2014-10-06 15:13:53 UTC
> Can we exp-run this by removing gperf on 10.0 or 10.1 instead

That sounds reasonable to me.
Comment 3 Antoine Brodin freebsd_committer freebsd_triage 2014-10-06 17:31:41 UTC
Take for exp-run
Comment 4 Antoine Brodin freebsd_committer freebsd_triage 2014-10-07 14:00:06 UTC
Below a list of ports that fail to build without gperf,  I can re-exp-run once they USES=gperf

cad/gtkwave
databases/evolution-data-server
devel/gearmand-devel
games/tuxpaint
graphics/flasm
graphics/libfreehand
graphics/libfreehand00
textproc/libabw
textproc/libabw00
textproc/libe-book
textproc/libe-book00
graphics/libetonyek01
textproc/libvisio
www/netsurf
www/webkit-qt5
Comment 5 Ed Maste freebsd_committer freebsd_triage 2014-10-07 14:17:37 UTC
Thanks for the run.

A number of these have gperf as a BUILD_DEPENDS, e.g.:

textproc/libvisio/Makefile
31:BUILD_DEPENDS+=      ${LOCALBASE}/bin/gperf:${PORTSDIR}/devel/gperf
32:CONFIGURE_ENV+=      GPERF=${LOCALBASE}/bin/gperf

www/netsurf/Makefile
44:BUILD_DEPENDS+=      gperf:${PORTSDIR}/devel/gperf

Should these not build properly w/o gperf in base?
Comment 6 Baptiste Daroussin freebsd_committer freebsd_triage 2014-10-07 16:00:16 UTC
All converted if I didn't messed up
Comment 7 Ed Maste freebsd_committer freebsd_triage 2014-10-07 16:40:23 UTC
Proposed updating entry:

2014xxxx:                                                                       
        gperf has been removed from the base system for architectures           
        that use clang. Ports that require gperf will now obtain it from
        the devel/gperf port.
Comment 8 Antoine Brodin freebsd_committer freebsd_triage 2014-10-09 17:44:58 UTC
Exp-run results:

http://package18.nyi.freebsd.org/jail.html?mastername=101amd64nogperf-default-PR194103

No new failures after the USES=gperf conversion,  look good to go in. (you can add info page and man page to obsolete files too)
Comment 9 Ed Maste freebsd_committer freebsd_triage 2014-10-09 18:33:58 UTC
Thanks for the exp-run.  Patch in reviews.freebsd.org updated with the man and info pages.
Comment 10 commit-hook freebsd_committer freebsd_triage 2014-10-09 23:06:06 UTC
A commit references this bug:

Author: emaste
Date: Thu Oct  9 23:05:32 UTC 2014
New revision: 272849
URL: https://svnweb.freebsd.org/changeset/base/272849

Log:
  Build gperf only if we're using g++ (not clang++)

  gperf is used as a build tool for g++ and is not needed for Clang
  architectures. Ports and third-party software that need it can use the
  up-to-date devel/gperf port.

  PR:		194103 (exp-run)
  Reviewed by:	bapt
  Sponsored by:	The FreeBSD Foundation
  Differential Revision: https://reviews.freebsd.org/D886

Changes:
  head/UPDATING
  head/gnu/usr.bin/Makefile
  head/tools/build/mk/OptionalObsoleteFiles.inc