Page MenuHomeFreeBSD

New port, www/qutebrowser: Keyboard-driven, vim-like browser based on PyQt5
AbandonedPublic

Authored by jrm on Nov 4 2017, 4:00 AM.

Details

Reviewers
koobs
Group Reviewers
Python
kde
Summary
Test Plan

portlint: Ok
poudriere testport: fine on 11amd64 (tests for other ARCHS still running,
will update)

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 12602
Build 12876: arc lint + arc unit

Event Timeline

jrm created this revision.Nov 4 2017, 4:00 AM

I get:

===>   py36-qutebrowser-1.0.2 depends on package: /packages/All/py36-Jinja2-2.9.6.txz - not found
jrm updated this revision to Diff 34759.Nov 4 2017, 4:20 PM

Fix issue with missing py36-Jinja2 package

sunpoet added a subscriber: sunpoet.Nov 4 2017, 4:50 PM
sunpoet added inline comments.
www/qutebrowser/Makefile
30

There's no USE_PYTHON=setuptools.

34

It's ok to use just =.

jrm updated this revision to Diff 34811.Nov 5 2017, 5:44 AM

Incorporate sunpoet's suggestions, update to 1.0.3.

Open issues:

Videos will not play with qt5-webkit backend and I am unable to get it to work with qt5-webengine (error reported is "QtWebEngineWidgets must be imported before a QCoreApplication instance is created")

jrm marked 2 inline comments as done.Nov 5 2017, 5:45 AM

Thanks sunpoet. Done.

mat added inline comments.Nov 7 2017, 4:34 PM
www/qutebrowser/Makefile
28–29

Maybe don't add commented out stuff.

jrm updated this revision to Diff 34895.Nov 7 2017, 8:25 PM

Add options to use either qt5-webkit or qt5-webengine backend

jrm updated this revision to Diff 34896.Nov 7 2017, 8:27 PM

Remove www/Makefile for the diff

tcberner added inline comments.Nov 7 2017, 8:49 PM
www/qutebrowser/Makefile
40

^ OPTIONS_SINGLE? or can they be built at the same time?

jrm added a comment.Nov 7 2017, 8:52 PM

Both backends can be installed at the same time and the user can choose at run-time which backend to use.

In D12933#269651, @jrm wrote:

Both backends can be installed at the same time and the user can choose at run-time which backend to use.

Thanks for clarifying.

koobs requested changes to this revision.Nov 8 2017, 1:26 AM
koobs added a subscriber: koobs.
koobs added inline comments.
www/qutebrowser/Makefile
26

Upstream says 3.5+ [1]

[1] https://pypi.python.org/pypi/qutebrowser

 Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
Programming Language :: Python :: 3.6
27

Use MASTER_SITES=CHEESESHOP by default for Python packages that provide distribution files via PyPI, unless there is a compelling (temporary) reason not to, such as test/test data files not included in the source distribution (sdist)

31

Python packages that provide end-user, console scripts, or other files [1] in common/shared locations should tested to be, or made to be USE_PYTHON=concurrent safe.

Concurrent safe means two package installs of the same port for different python versions (eg: py27-foo and py36-foo) do not conflict (each file in common locations has a unique filename).

USE_PYTHON=concurrent handles most common examples automatically (localbase/bin/*, docs)

[1] https://github.com/qutebrowser/qutebrowser/blob/master/setup.py#L72

This revision now requires changes to proceed.Nov 8 2017, 1:26 AM
jrm updated this revision to Diff 35002.Nov 9 2017, 3:43 PM
jrm marked an inline comment as done.

Use MASTER_SITES=CHEESESHOP and USE_PYTHON=concurrent

jrm updated this revision to Diff 35003.Nov 9 2017, 3:44 PM

Remove comments

jrm marked 3 inline comments as done.Nov 9 2017, 3:44 PM
mat added a comment.Nov 9 2017, 3:55 PM

As a side note, there is USES=python:3.5+ but you depend on py-* ports, which are Python 2.7 variants, it will probably not work at all.

jrm added a comment.Nov 9 2017, 4:14 PM
In D12933#270422, @mat wrote:

As a side note, there is USES=python:3.5+ but you depend on py-* ports, which are Python 2.7 variants, it will probably not work at all.

I originally did depend on the py3- variants (if they were available) like devel/py3-Jinja2, but ran into issues. I don't recall the details now, but I can return to them to test if necessary to see what was going on. I haven't seen any build- or run-time issues with the current dependencies. It's worth noting that I have very little experience with python or the python ports, so I may have done something stupid.

jrm added a comment.Nov 9 2017, 5:16 PM

When I switch to RUN_DEPENDS=${PYTHON_PKGNAMEPREFIX}Jinja2>=2.9.5:devel/py3-Jinja2 I see

===>   py36-qutebrowser-1.0.3 depends on package: py36-Jinja2>=2.9.5 - not found
===>   py36-qutebrowser-1.0.3 depends on package: /packages/All/py36-Jinja2-2.9.6.txz - not found
===>   USE_PACKAGE_DEPENDS_ONLY set - not building missing dependency from source

When I look in poudriere's package repository I do see data/packages/11amd64-default/All/py36-Jinja2-2.9.5.txz, which I think was built from devel/py-Jinja2 because it's version 2.9.5 and not 2.9.6, the version of devel/py3-Jinja2. When I try poudriere bulk -j 11amd64 devel/py3-Jinja2 it doesn't build anything new.

mat added a comment.Nov 9 2017, 9:16 PM

I am not sure how to explain this differently, but foo/py-bar will generate a py27-bar package, so if you have ${PYTHON_PKGNAMEPREFIX}bar:foo/py-bar, it will want py36-bar and only get py27-bar, which poudriere-devel will tell you something like:

[00:02:36] Warning: security/nyx@python3 dependency on security/py-stem has wrong PKGNAME of 'py36-stem' but should be 'py27-stem'

(This is with python flavors, but you get the gist of the problem.)

jrm added a comment.Nov 9 2017, 9:35 PM

For some reason, I am not seeing this with poudreiere-devel. I get py36-* for all the packages.

Is this correct? Note, some of those py3- ports do not currently exist.

RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}Jinja2>=2.9.6:devel/py3-Jinja2 \
		${PYTHON_PKGNAMEPREFIX}yaml>=3.11:devel/py3-yaml \
		${PYTHON_PKGNAMEPREFIX}pyPEG2>=2.15.2:textproc/py3-pyPEG2 \
		${PYTHON_PKGNAMEPREFIX}pygments>=2.2.0:textproc/py3-pygments \
		${PYTHON_PKGNAMEPREFIX}cssutils>=1.0.2:www/py3-cssutils \
		${PYTHON_PKGNAMEPREFIX}attrs>=17.1.0:devel/py3-attrs \
		${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins
jrm added a comment.EditedNov 10 2017, 2:08 AM

According to bdrewery, the behaviour is excpected in poudriere-devel.

bdrewery_ on #freebsd_python
<bdrewery_> jrm: poudriere-devel even lets you invent new origins that don't exist.... if there's only a devel/py-foo you can build devel/py36-foo and it will do what you expect
<bdrewery_> I don't really like that but it was a side-effect of letting the python deps all work
<bdrewery_> the production builders don't have any of this
<bdrewery_> so we still get the USE_PACKAGE_DEPENDS_ONLY error

novel added a subscriber: novel.Nov 18 2017, 10:16 AM

Uh, looks like I've hijacked this by https://reviews.freebsd.org/D13113 (which I committed already). Just found this one while searching for the qt-pywebengine revision. :\
Really sorry about that.

jrm abandoned this revision.Jan 5 2018, 5:00 PM