From nobody Sun Jan 15 23:04:49 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Nw9jP00HCz2sttL; Sun, 15 Jan 2023 23:05:13 +0000 (UTC) (envelope-from dan@langille.org) Received: from wout3-smtp.messagingengine.com (wout3-smtp.messagingengine.com [64.147.123.19]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nw9jN4fKYz4CWm; Sun, 15 Jan 2023 23:05:12 +0000 (UTC) (envelope-from dan@langille.org) Authentication-Results: mx1.freebsd.org; none Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 9DC0132006F2; Sun, 15 Jan 2023 18:05:10 -0500 (EST) Received: from imap42 ([10.202.2.92]) by compute5.internal (MEProxy); Sun, 15 Jan 2023 18:05:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=langille.org; h= cc:content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm3; t=1673823910; x=1673910310; bh=aqKwJkwtbi Wsp3k6aEo9H9bUUVlQr2XAQtRgkt3eAek=; b=LGLVWVUL7YTFiuOARkXS9bZlIl RAMcLqnFma+1SBdwlLXN42kQtOnuaiFReEIIpLNzsvryP2wxWU8wPkV0TmbaLl+k 8Afd305iZqyK2GLXNQFQ9opj6ITsfpXyuc3R8tbAFG7Raj9tkCzjR0CcVmSCYAi2 dfCgEQd4/C2o1LwI7OZmAKg4n89WeMYYLZa0lA0ReG5+saQjXUfWoGvVdSUa78jz CZy21vg5YkqioCVwVVNvTRbKcnBi1UjP/Zjx9swaZmcWJmTO8FrfoUtiyyHspgau tUppiiMqo5FhRHfj1MQQgFun2zslew0ca+CCvHd/suWrrEgHKFBnF3wngM9w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1673823910; x=1673910310; bh=aqKwJkwtbiWsp3k6aEo9H9bUUVlQ r2XAQtRgkt3eAek=; b=A6I0tMP8UPjoaf8b5yRkG9J7T3rval8Zw6rWRUS4m3j7 fa/gbAtya6wg9N7Eqd++hUebg+4WeFLp3ExOGpGR18UJXKCC7jKujXM4c1wqqblB AtYuo4hDbOfpEhQ+Fe1ygtSuZLjL787s6NkZk6A6h2MAulIlB+HWO0PVWN9UgzTK WP6D+sZHbZZ6kAG2IB93YrFlPZoie4DsVcBNJlupBdG0gPd8u9kyVmpxXObckjdg oEHZFL5P/wfkp2hiCYyCS+2r9aSEMoNSAcMEkXgPqNJ102H+2v/lyNDuiLOME3OS ev4EmZRFkSH4VytRwHGCZ3WTg0PU0+lJeLIRXM3Mcw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedruddtfedgtdehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfgjfhffhffvufgtsehttd ertderredtnecuhfhrohhmpedfffgrnhcunfgrnhhgihhllhgvfdcuoegurghnsehlrghn ghhilhhlvgdrohhrgheqnecuggftrfgrthhtvghrnhepveefheeggfegieehudelhfdtvd egtdehleejheefteejveevfedtkeduveegtdetnecuffhomhgrihhnpehfrhgvvggsshgu rdhorhhgpdhpohhrthdrmhhkpdhlihgtvghnshgvshdrmhhknecuvehluhhsthgvrhfuih iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepuggrnheslhgrnhhgihhllhgvrdho rhhg X-ME-Proxy: Feedback-ID: ifbf9424e:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id D53AEBC0078; Sun, 15 Jan 2023 18:05:09 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.7.0-alpha0-1187-g678636ba0d-fm-20230113.001-g678636ba List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org Mime-Version: 1.0 Message-Id: <06f05b0c-2c75-4b7a-a3cb-01cc08b0927b@app.fastmail.com> In-Reply-To: <202301152105.30FL5PVk045777@gitrepo.freebsd.org> References: <202301152105.30FL5PVk045777@gitrepo.freebsd.org> Date: Sun, 15 Jan 2023 18:04:49 -0500 From: "Dan Langille" To: "Guido Falsi" , ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: Re: git: 6d8e63c53f12 - main - editors/ghostwriter: Add flavors for qt version 5 and 6. Content-Type: text/plain X-Rspamd-Queue-Id: 4Nw9jN4fKYz4CWm X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:29838, ipnet:64.147.123.0/24, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N On Sun, Jan 15, 2023, at 4:05 PM, Guido Falsi wrote: > The branch main has been updated by madpilot: > > URL: > https://cgit.FreeBSD.org/ports/commit/?id=6d8e63c53f121527898f3228fdecdc72a57022e3 > > commit 6d8e63c53f121527898f3228fdecdc72a57022e3 > Author: Guido Falsi > AuthorDate: 2023-01-15 21:04:24 +0000 > Commit: Guido Falsi > CommitDate: 2023-01-15 21:05:21 +0000 > > editors/ghostwriter: Add flavors for qt version 5 and 6. > --- > editors/ghostwriter/Makefile | 24 ++++++++++++++++++++---- > 1 file changed, 20 insertions(+), 4 deletions(-) > > diff --git a/editors/ghostwriter/Makefile b/editors/ghostwriter/Makefile > index 7879f9e05178..afdc9ef9ed74 100644 > --- a/editors/ghostwriter/Makefile > +++ b/editors/ghostwriter/Makefile > @@ -11,9 +11,25 @@ LICENSE_FILE= ${WRKSRC}/COPYING > > LIB_DEPENDS= libhunspell-1.7.so:textproc/hunspell > > -USES= compiler:c++11-lang desktop-file-utils kde:5 pkgconfig qmake qt:5 > -USE_QT= core gui svg webchannel webengine widgets buildtools:build \ > - linguisttools:build > +FLAVORS= qt5 qt6 > +FLAVOR?= ${FLAVORS:[0]} > +qt5_PKGNAMESUFFIX= > +qt6_PKGNAMESUFFIX= -qt6 > +qt5_CONFLICTS_INSTALL= ${PORTNAME}-qt6 > +qt6_CONFLICTS_INSTALL= ${PORTNAME} > + > +USES= compiler:c++11-lang desktop-file-utils kde:5 pkgconfig qmake > + > +.if ${FLAVOR} == qt5 > +USES+= qt:5 > +USE_QT= buildtools:build core gui linguisttools:build svg \ > + webchannel webengine widgets > +RCCREGEXP= \/lib\/qt5\/bin\/rcc > +.else > +USES+= qt:6 > +USE_QT= 5compat base svg tools webchannel webengine > +RCCREGEXP= \/libexec\/qt6\/rcc > +.endif > > # cf. PR 224488 > LDFLAGS+= -Wl,--as-needed > @@ -23,7 +39,7 @@ KDE_INVENT= 151268bcfdca57bba4944caa7172dde9549f0622 > office > post-configure: > @${REINPLACE_CMD} -e > 's|^\(build/release/qrc_QtAwesomeFree.cpp:[^\\]*\)\\|\1|' \ > -e '/3rdparty\/QtAwesome\/fonts\/Font/d' \ > - -e '/\/lib\/qt5\/bin\/rcc \\/d' \ > + -e '/${RCCREGEXP} \\/d' \ > ${WRKSRC}/Makefile > > .include This commit seems to have upset something: [pkg01 dan ~/ports/head/editors/ghostwriter] % make generate-plist make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 3406: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 4479: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5352: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5353: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5355: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5356: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make: Graph cycles through /usr/home/dan/ports/head/editors/ghostwriter/work-qt5 make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 3406: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 4479: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5193: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5352: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5353: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5355: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5356: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: "/usr/home/dan/ports/head/Mk/bsd.port.mk" line 5365: warning: duplicate script for target "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" ignored make[1]: "/usr/home/dan/ports/head/Mk/bsd.licenses.mk" line 769: warning: using previous script for "/usr/home/dan/ports/head/editors/ghostwriter/work-qt5" defined here make[1]: Graph cycles through /usr/home/dan/ports/head/editors/ghostwriter/work-qt5 ^C*** Signal 2 *** Signal 2 -- Dan Langille dan@langille.org