From owner-freebsd-ports-bugs@FreeBSD.ORG Wed Feb 25 22:18:23 2015 Return-Path: Delivered-To: freebsd-ports-bugs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 07E1A167 for ; Wed, 25 Feb 2015 22:18:23 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E243F1F8 for ; Wed, 25 Feb 2015 22:18:22 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t1PMIM3c037097 for ; Wed, 25 Feb 2015 22:18:22 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-ports-bugs@FreeBSD.org Subject: [Bug 198045] Build tools hiding dependency issues Date: Wed, 25 Feb 2015 22:18:22 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Ports & Packages X-Bugzilla-Component: Ports Framework X-Bugzilla-Version: Latest X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: melvyn@magemana.nl X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-ports-bugs@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter cc Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2015 22:18:23 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198045 Bug ID: 198045 Summary: Build tools hiding dependency issues Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: Ports Framework Assignee: freebsd-ports-bugs@FreeBSD.org Reporter: melvyn@magemana.nl CC: portmgr@FreeBSD.org The ports system can be used using `make -C ${PORTSDIR}/category/leafport install`. This is the simplest way to use the ports system and it will compile all dependencies that aren't installed yet. With build tools ranging from portmaster to poudriere building their own dependency tree and separating the build in it's own make process, a couple of bugs are not uncovered by maintainers, because the top-level makefile is no longer the leaf port being installed: 1. Exists checks: .if !exists(/path/to/file/to/be/installed/by/dep) BROKEN= Port needs foo with option bar .endif Case in point: x11-toolkits/pango. Fails when: dependency is not installed Fails because: exists check is done in top-level Makefile result not re-evaluated after dependency is installed. Fix: use if [ ! -f ] in sh, rather then make's version. 2. Ports with different version of interpreter in upwards dependencies DEFAULT_VERSIONS= python=3.3 Upwards dependency forces python=2.7. Case in point: graphics/qt4-opengl => graphics/libGL => py27-libxml:build => setuptools Fail symptom: pkg complains about /usr/local/bin/easy_install Fails because: not entirely sure, but I suspect that the DEFAULT_PYTHON_VERSION is being mangled downstream, causing the unversioned easy_install to be installed again. 3. Versions obtained from parsing output of != statements BUILD_DEPENDS+= foo:${PORTSDIR}/misc/foo FOO_VERSION!= ${LOCALBASE}/bin/foo -V PLIST_SUB+= FOO_VERSION=${FOO_VERSON} pkg-plist: lib/bar-foo-%%FOO_VERSION%%.so.1 Case in point: used to be in bsd.xorg.mk for Xorg Server. Don't know if this is still in a different incarnation used elsewhere Fail symptom: package install fails with files not being present Fail reason: FOO_VERSION is empty at evaluation time and not reevaluated when dependency is installed. Upstream build/install system does however pick up the right version at build time of leaf port resulting in packing list looking for lib/bar-foo-.so.1 and lib/bar-foo-1.0.so.1 being in STAGEDIR. All these are hidden by recommended test tools used by maintainers because of above mentioned reasons, yet it should be the installation mechanism that should always work. So this bugreport is two-fold: 1. Is `make -C ${PORTSDIR}/category/leafport install` still considered to be fully suported and always working? 2a. If 1) is yes, can the above be fixed and can a test tool be used that does not separate build stages? 2b. If 1) is no, is The Project pushing binary upgrades or ports-mgmt tools to end users and as such should docs be updated: http://www.freebsd.org/doc/en/books/handbook/ports-using.html -- You are receiving this mail because: You are the assignee for the bug.