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.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Mar 12, 2:45 PM
Unknown Object (File)
Fri, Mar 8, 9:47 AM
Unknown Object (File)
Nov 17 2023, 1:11 AM
Unknown Object (File)
Nov 12 2023, 3:12 AM
Unknown Object (File)
Nov 10 2023, 8:26 PM
Unknown Object (File)
Nov 9 2023, 12:41 AM
Unknown Object (File)
Nov 8 2023, 11:29 AM
Unknown Object (File)
Nov 8 2023, 12:40 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 Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 12601
Build 12875: arc lint + arc unit

Event Timeline

I get:

===>   py36-qutebrowser-1.0.2 depends on package: /packages/All/py36-Jinja2-2.9.6.txz - not found

Fix issue with missing py36-Jinja2 package

sunpoet added inline comments.
www/qutebrowser/Makefile
30

There's no USE_PYTHON=setuptools.

34

It's ok to use just =.

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.

www/qutebrowser/Makefile
28–29

Maybe don't add commented out stuff.

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

Remove www/Makefile for the diff

www/qutebrowser/Makefile
40

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

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 marked an inline comment as done.

Use MASTER_SITES=CHEESESHOP and USE_PYTHON=concurrent

jrm marked 3 inline comments as done.Nov 9 2017, 3:44 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.

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.

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.

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.)

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

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

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.