Bug 210450 - [NEW PORT] devel/liteide: Simple, open source, cross-platform Go IDE
Summary: [NEW PORT] devel/liteide: Simple, open source, cross-platform Go IDE
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jan Beich
URL:
Keywords: feature, patch
Depends on:
Blocks:
 
Reported: 2016-06-21 22:53 UTC by Dmitri Goutnik
Modified: 2016-07-10 15:37 UTC (History)
1 user (show)

See Also:


Attachments
shar archive (14.97 KB, text/plain)
2016-06-21 22:53 UTC, Dmitri Goutnik
no flags Details
shar archive (17.61 KB, text/plain)
2016-07-04 21:24 UTC, Dmitri Goutnik
no flags Details
shar archive (14.29 KB, text/plain)
2016-07-07 20:57 UTC, Dmitri Goutnik
no flags Details
shar archive (14.15 KB, text/plain)
2016-07-10 00:56 UTC, Dmitri Goutnik
no flags Details
minor style changes (1.41 KB, patch)
2016-07-10 06:33 UTC, Jan Beich
no flags Details | Diff
shar archive (14.17 KB, text/plain)
2016-07-10 15:01 UTC, Dmitri Goutnik
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitri Goutnik freebsd_committer 2016-06-21 22:53:22 UTC
Created attachment 171660 [details]
shar archive

portlint -ACN: no issues.

testport 10.3-RELEASE-p5 amd64: http://poudriere.syrec.org/liteide/29/10amd64-default.log

testport 9.3-RELEASE-p44 amd64: http://poudriere.syrec.org/liteide/29/9amd64-default.log
Comment 1 Dmitri Goutnik freebsd_committer 2016-07-04 21:24:49 UTC
Created attachment 172119 [details]
shar archive

* Updated to upstream version x30
* Removed unneeded linguist/linguisttools build dependency
* Updated pkg-descr
Comment 2 Dmitri Goutnik freebsd_committer 2016-07-04 21:27:05 UTC
testport 10.3-RELEASE-p5 amd64: http://poudriere.syrec.org/liteide/30/10amd64-default.log

testport 9.3-RELEASE-p44 amd64: http://poudriere.syrec.org/liteide/30/9amd64-default.log
Comment 3 Dmitri Goutnik freebsd_committer 2016-07-07 20:57:23 UTC
Created attachment 172213 [details]
shar archive

* Updated to upstream version x30.1
* Removed unneeded .pri/.pro patches (merged upstream)
Comment 4 Dmitri Goutnik freebsd_committer 2016-07-07 20:59:13 UTC
testport 10.3-RELEASE-p5 amd64: http://poudriere.syrec.org/liteide/30.1/10amd64-default.log

testport 9.3-RELEASE-p44 amd64: http://poudriere.syrec.org/liteide/30.1/9amd64-default.log
Comment 5 Jan Beich freebsd_committer 2016-07-09 11:28:23 UTC
Can you do i386 and QT5=on builds using poudriere as well? Both at least on 9.3-RELEASE-*.

> XGH_PROJECT=	liteide

Drop this (default) line.

> XUSES=		qmake
> XQT4_USE=	QT4=corelib,gui,network,webkit,xml,moc_build,rcc_build,uic_build
> XQT5_USE=	QT5=core,gui,widgets,network,webkit,xml,printsupport,buildtools_build

Having option helpers in different or non-optional sections is... visually confusing.

> XOPTIONS_RADIO=		QT
> XOPTIONS_RADIO_QT=	QT4 QT5

As USES=qmake requires either USE_QT4 or USE_QT5 you need OPTIONS_SINGLE instead, or move USES=qmake into option helpers. Otherwise, QT4=off + QT5=off leads to

  $ make
  ===>  liteide-30.1 'USES+= qmake' must be accompanied with 'USE_QT[]=.
  *** Error code 1

> X.include <bsd.port.options.mk>
> X
> X.if ${PORT_OPTIONS:MQT5}
> XUSE_GL+=	gl
> X.endif

Can you convert this into option helpers?

> Xpost-install-DOCS-on:
> X	@${MKDIR} ${STAGEDIR}${DOCSDIR}
> X.for d in ${PORTDOCS}
> X	${INSTALL_DATA} ${WRKSRC:H}/${d} ${STAGEDIR}${DOCSDIR}
> X.endfor

COPYTREE_SHARE would be more concise e.g.,

  post-install-DOCS-on:
  	(cd ${WRKSRC:H} && ${COPYTREE_SHARE} \
  		"${PORTDOCS}" ${STAGEDIR}${DOCSDIR})
Comment 6 Dmitri Goutnik freebsd_committer 2016-07-10 00:56:33 UTC
Created attachment 172298 [details]
shar archive

Jan, I'm not quite sure what you mean by visually confusuing but I looked at other ports that have QT4/QT5 as build options and rearranged USEs a bit. All other issues are fixed, poudriere tests results:

with QT4=on:

10.3-RELEASE-p5 amd64: OK [1]
10.3-RELEASE-p5 i386: OK [2]
9.3-RELEASE-p44 amd64: OK [3]
9.3-RELEASE-p44 i386: OK [4]

with QT5=on:

10.3-RELEASE-p5 amd64: OK [5]
10.3-RELEASE-p5 i386: OK [6]
9.3-RELEASE-p44 amd64: OK [7]
9.3-RELEASE-p44 i386: OK [8]

[1] http://poudriere.syrec.org/liteide/30.1/10amd64-default-qt4.log
[2] http://poudriere.syrec.org/liteide/30.1/10i386-default-qt4.log
[3] http://poudriere.syrec.org/liteide/30.1/9amd64-default-qt4.log
[4] http://poudriere.syrec.org/liteide/30.1/9i386-default-qt4.log
[5] http://poudriere.syrec.org/liteide/30.1/10amd64-default-qt5.log
[6] http://poudriere.syrec.org/liteide/30.1/10i386-default-qt5.log
[7] http://poudriere.syrec.org/liteide/30.1/9amd64-default-qt5.log
[8] http://poudriere.syrec.org/liteide/30.1/9i386-default-qt5.log
Comment 7 Kubilay Kocak freebsd_committer freebsd_triage 2016-07-10 06:31:12 UTC
Thank you Dmitri.

For future reference, just the confirmation of QA passing is necessary, external links/attachments are not
Comment 8 Jan Beich freebsd_committer 2016-07-10 06:33:25 UTC
Created attachment 172301 [details]
minor style changes

The following is bogus

  QT5_USE=	... gl

and should be

  QT5_USE=	... GL=gl

or removed by adding

  LDFLAGS+=	-Wl,--as-needed

-lGL seems to be pulled by QtGui.

------------------

USE_QT5=webkit is unused according to *-qt5.log

   0x00000001 (NEEDED)                     Shared library: [libQt5Core.so.5]
   0x00000001 (NEEDED)                     Shared library: [libQt5Gui.so.5]
   0x00000001 (NEEDED)                     Shared library: [libQt5Network.so.5]
   0x00000001 (NEEDED)                     Shared library: [libQt5PrintSupport.so.5]
   0x00000001 (NEEDED)                     Shared library: [libQt5Widgets.so.5]
   0x00000001 (NEEDED)                     Shared library: [libQt5Xml.so.5]

However, liteidex/src/plugins/webkithtmlwidget/webkithtmlwidget.pro actually supports it

  greaterThan(QT_MAJOR_VERSION, 4) {
  QT += webkitwidgets
  } else {
  QT += network
  QT += webkit
  }

but disabled by liteidex/liteidex.pri

  linux* {
      contains(CONFIG, liteide_qtwebkit) {
	  DEFINES += LITEIDE_QTWEBKIT
      }
  } else {
      greaterThan(QT_MAJOR_VERSION, 4) {
      } else {
	  DEFINES += LITEIDE_QTWEBKIT
      }
  }

(In reply to Dmitri Goutnik from comment #6)
> Jan, I'm not quite sure what you mean by visually confusuing but I
> looked at other ports that have QT4/QT5 as build options and
> rearranged USEs a bit.

Options and their helpers generally go at the bottom just before conditionals and target definitions. I'm attaching a patch to illustrate but the last word is up to you, the maintainer.
Comment 9 Jan Beich freebsd_committer 2016-07-10 07:04:55 UTC
(In reply to Kubilay Kocak from comment #7)
> For future reference, just the confirmation of QA passing is
> necessary, external links/attachments are not

In some cases having logs are useful to check things not covered by QA warnings/errors e.g., NEEDED lines, CFLAGS/LDFLAGS. While your advice is geared against bugzilla attachment bloat external links should work fine. Of course, a committer can double-check but this is offset by build times or not being away from a beefy box.

YMMV
Comment 10 Kubilay Kocak freebsd_committer freebsd_triage 2016-07-10 07:37:35 UTC
(In reply to Jan Beich from comment #9)

While I currently hold this position as well, we (bugmeister) are aiming for consistent guidelines/expectations for users/maintainers, which was the issue in the past.

Attachments to confirm QA results are no longer required, *but* attachments are preferable to links, that invariably end up stale/404 in the long term. Every issue's data should be self-contained.

Additionally, nothing precludes anyone running QA results themselves to investigate/confirm other things (*FLAGS, etc), which I imagine most committers do any way

If/When/Once we have ports CI, this issue becomes moot.
Comment 11 Dmitri Goutnik freebsd_committer 2016-07-10 15:01:44 UTC
Created attachment 172321 [details]
shar archive

Thanks Jan, Kubilay. Updated shar attached.
Comment 12 commit-hook freebsd_committer 2016-07-10 15:36:04 UTC
A commit references this bug:

Author: jbeich
Date: Sun Jul 10 15:35:24 UTC 2016
New revision: 418327
URL: https://svnweb.freebsd.org/changeset/ports/418327

Log:
  devel/liteide: add new port

  PR:		210450
  Submitted by:	Dmitri Goutnik <dg@syrec.org>

  LiteIDE is a simple, open source, cross-platform Go IDE.

  Main features:
  - System environment management
  - Configurable build commands
  - Simple and open debug system
  - Kate format for auto-completion and theming
  - Configurable auto-completion with WordApi
  - MIME type based system
  - Plugin support
  - Package browser
  - Class view and outline
  - Document browser
  - Gocode support
  - GOPATH API index
  - Code Navigation
  - Find Usages
  - Code Refactor
  - Go playground
  - Markdown
  - Json
  - Golang Present

  https://github.com/visualfc/liteide

Changes:
  head/devel/Makefile
  head/devel/liteide/
  head/devel/liteide/Makefile
  head/devel/liteide/distinfo
  head/devel/liteide/pkg-descr
  head/devel/liteide/pkg-message
  head/devel/liteide/pkg-plist
Comment 13 Jan Beich freebsd_committer 2016-07-10 15:37:01 UTC
Thanks. Landed.