From owner-svn-ports-all@freebsd.org Sat Oct 12 18:57:16 2019 Return-Path: Delivered-To: svn-ports-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1BD7E141D28; Sat, 12 Oct 2019 18:57:16 +0000 (UTC) (envelope-from adridg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46rDZz6x5Hz4RbB; Sat, 12 Oct 2019 18:57:15 +0000 (UTC) (envelope-from adridg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D2A377E40; Sat, 12 Oct 2019 18:57:15 +0000 (UTC) (envelope-from adridg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x9CIvFNr020321; Sat, 12 Oct 2019 18:57:15 GMT (envelope-from adridg@FreeBSD.org) Received: (from adridg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x9CIvFFj020320; Sat, 12 Oct 2019 18:57:15 GMT (envelope-from adridg@FreeBSD.org) Message-Id: <201910121857.x9CIvFFj020320@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adridg set sender to adridg@FreeBSD.org using -f From: Adriaan de Groot Date: Sat, 12 Oct 2019 18:57:15 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r514351 - head/audio/kwave/files X-SVN-Group: ports-head X-SVN-Commit-Author: adridg X-SVN-Commit-Paths: head/audio/kwave/files X-SVN-Commit-Revision: 514351 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Oct 2019 18:57:16 -0000 Author: adridg Date: Sat Oct 12 18:57:15 2019 New Revision: 514351 URL: https://svnweb.freebsd.org/changeset/ports/514351 Log: Fix build of audio/kwave on -CURRENT (or with clang 9 in general). There's a long description in the patch just added, but the error looks something like this: /tmp/v.cpp:1:27: note: constrained by private inheritance here class foo {}; class bar : private foo {}; class baz : public bar { publi... No PORTREVISION because it's no change for everyone except clang 9 users, who couldn't compile it previously. Reported by: fallout Added: head/audio/kwave/files/patch-private (contents, props changed) Added: head/audio/kwave/files/patch-private ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/audio/kwave/files/patch-private Sat Oct 12 18:57:15 2019 (r514351) @@ -0,0 +1,127 @@ +commit cb13b7153452060d919603d31ad4db94b3056f35 +Author: Adriaan de Groot +Date: Sat Oct 12 20:41:30 2019 +0200 + + Private inheritance hides base-class names. + + Summary: + Kwave fails to compile with clang 9.0, with this kind of error message: + + === + In file included from /wrkdirs/usr/ports/audio/kwave/work/kwave-19.08.1/libkwave/undo/UndoDeleteAction.cpp:24: + /wrkdirs/usr/ports/audio/kwave/work/kwave-19.08.1/libkwave/MultiTrackReader.h:61:24: error: 'QList' is a private member of 'QList' + const QList &track_list, + ^ + /wrkdirs/usr/ports/audio/kwave/work/kwave-19.08.1/libkwave/MultiTrackSource.h:41:36: note: constrained by private inheritance here + private QList + ^~~~~~~~~~~~~~~~~~~~~~~ + /usr/local/include/qt5/QtCore/qlist.h:127:7: note: member is declared here + class QList + ^ + 1 error generated. + === + + This can be demonstrated much more shortly with this code: + + === + class foo {}; + class bar : private foo {}; + class baz : public bar + { + public: + foo m_foo; + }; + === + + Within baz, foo is looked up in bar, and then (because it's *private* + inheritance) afterwards access-control kicks in and disallows its use. + By fully-qualifying foo (or, in Kwave's case, QList) the name-lookup + happens differently, and the public (global) name is found. + + There is also a description of the problem on StackOverflow, + https://stackoverflow.com/questions/41595208/accessing-the-name-of-a-private-inherited-class-from-a-subclass + + Test Plan: + - still compiles + - packaging on FreeBSD-CURRENT, with clang 9, works again + + Differential Revision: https://reviews.freebsd.org/D22002 +diff --git libkwave/MultiTrackReader.cpp libkwave/MultiTrackReader.cpp +index aedce6bb..0053d980 100644 +--- libkwave/MultiTrackReader.cpp ++++ libkwave/MultiTrackReader.cpp +@@ -32,7 +32,7 @@ Kwave::MultiTrackReader::MultiTrackReader() + //*************************************************************************** + Kwave::MultiTrackReader::MultiTrackReader(Kwave::ReaderMode mode, + Kwave::SignalManager &signal_manager, +- const QList &track_list, ++ const ::QList &track_list, + sample_index_t first, + sample_index_t last) + :Kwave::MultiTrackSource(0), +diff --git libkwave/MultiTrackReader.h libkwave/MultiTrackReader.h +index 5de02956..1d08c296 100644 +--- libkwave/MultiTrackReader.h ++++ libkwave/MultiTrackReader.h +@@ -58,7 +58,7 @@ namespace Kwave + */ + MultiTrackReader(Kwave::ReaderMode mode, + Kwave::SignalManager &signal_manager, +- const QList &track_list, ++ const ::QList &track_list, + sample_index_t first, sample_index_t last); + + /** Destructor */ +diff --git libkwave/MultiTrackWriter.cpp libkwave/MultiTrackWriter.cpp +index e875f445..6c6b662a 100644 +--- libkwave/MultiTrackWriter.cpp ++++ libkwave/MultiTrackWriter.cpp +@@ -35,7 +35,7 @@ Kwave::MultiTrackWriter::MultiTrackWriter() + + //*************************************************************************** + Kwave::MultiTrackWriter::MultiTrackWriter(Kwave::SignalManager &signal_manager, +- const QList &track_list, ++ const ::QList &track_list, + Kwave::InsertMode mode, + sample_index_t left, + sample_index_t right) +@@ -52,7 +52,7 @@ Kwave::MultiTrackWriter::MultiTrackWriter(Kwave::SignalManager &signal_manager, + Kwave::InsertMode mode) + :Kwave::MultiWriter() + { +- QList track_list = signal_manager.selectedTracks(); ++ ::QList track_list = signal_manager.selectedTracks(); + sample_index_t left = 0; + sample_index_t right = 0; + +@@ -82,7 +82,7 @@ Kwave::MultiTrackWriter::~MultiTrackWriter() + + //*************************************************************************** + bool Kwave::MultiTrackWriter::init(Kwave::SignalManager &signal_manager, +- const QList &track_list, ++ const ::QList &track_list, + Kwave::InsertMode mode, + sample_index_t left, + sample_index_t right) +diff --git libkwave/MultiTrackWriter.h libkwave/MultiTrackWriter.h +index df3c3086..d809680e 100644 +--- libkwave/MultiTrackWriter.h ++++ libkwave/MultiTrackWriter.h +@@ -55,7 +55,7 @@ namespace Kwave + * @param right index of the last sample + */ + MultiTrackWriter(Kwave::SignalManager &signal_manager, +- const QList &track_list, ++ const ::QList &track_list, + Kwave::InsertMode mode, + sample_index_t left, sample_index_t right); + +@@ -86,7 +86,7 @@ namespace Kwave + * @internal + */ + bool init(Kwave::SignalManager &signal_manager, +- const QList &track_list, ++ const ::QList &track_list, + Kwave::InsertMode mode, + sample_index_t left, sample_index_t right); +