GithubHelp home page GithubHelp logo

qutebrowser / qt-debug-pkgbuild Goto Github PK

View Code? Open in Web Editor NEW
19.0 3.0 7.0 861 KB

Archlinux PKGBUILDs for Qt5/PyQt5 with debugging enabled

Shell 97.39% Dockerfile 2.61%
archlinux-pkgbuilds pyqt5 qt5 arch-linux-pkgbuild qutebrowser

qt-debug-pkgbuild's Introduction

qutebrowser

qutebrowser logo A keyboard-driven, vim-like browser based on Python and Qt.

Build Status coverage badge

qutebrowser is a keyboard-focused browser with a minimal GUI. It’s based on Python and Qt and free software, licensed under the GPL.

It was inspired by other browsers/addons like dwb and Vimperator/Pentadactyl.

qutebrowser’s primary maintainer, The-Compiler, is currently working part-time on qutebrowser, funded by donations. To sustain this for a long time, your help is needed! See the GitHub Sponsors page or alternative donation methods for more information. Depending on your sign-up date and how long you keep a certain level, you can get qutebrowser t-shirts, stickers and more!

Screenshots

screenshot 1 screenshot 2 screenshot 3 screenshot 4

Downloads

See the github releases page for available downloads and the INSTALL file for detailed instructions on how to get qutebrowser running on various platforms.

Documentation and getting help

Please see the help page for available documentation pages and support channels.

Contributions / Bugs

You want to contribute to qutebrowser? Awesome! Please read the contribution guidelines for details and useful hints.

If you found a bug or have a feature request, you can report it in several ways:

  • Use the built-in :report command or the automatic crash dialog.

  • Open an issue in the Github issue tracker.

  • Write a mail to the mailinglist at [email protected].

Please report security bugs to [email protected] (or if GPG encryption is desired, contact [email protected] with GPG ID 0x916EB0C8FD55A072).

Alternatively, report a vulnerability via GitHub’s private reporting feature.

Requirements

The following software and libraries are required to run qutebrowser:

  • Python 3.8 or newer

  • Qt, either 6.2.0 or newer, or 5.15.0 or newer, with the following modules:

    • QtCore / qtbase

    • QtQuick (part of qtbase or qtdeclarative in some distributions)

    • QtSQL (part of qtbase in some distributions)

    • QtDBus (part of qtbase in some distributions; note that a connection to DBus at runtime is optional)

    • QtOpenGL

    • QtWebEngine (if using Qt 5, 5.15.2 or newer), or

    • alternatively QtWebKit (5.212) - This is not recommended due to known security issues in QtWebKit, you most likely want to use qutebrowser with the default QtWebEngine backend (based on Chromium) instead. Quoting the QtWebKit releases page: [The latest QtWebKit] release is based on [an] old WebKit revision with known unpatched vulnerabilities. Please use it carefully and avoid visiting untrusted websites and using it for transmission of sensitive data.

  • PyQt 6.2.2 or newer (Qt 6) or 5.15.0 or newer (Qt 5)

  • jinja2

  • PyYAML

On Python 3.8, the following backport is also required:

On macOS, the following libraries are also required:

The following libraries are optional:

  • adblock (for improved adblocking using ABP syntax)

  • pygments for syntax highlighting with :view-source on QtWebKit, or when using :view-source --pygments with the (default) QtWebEngine backend.

  • On Windows, colorama for colored log output.

  • asciidoc to generate the documentation for the :help command, when using the git repository (rather than a release).

See the documentation for directions on how to install qutebrowser and its dependencies.

Donating

qutebrowser’s primary maintainer, The-Compiler, is currently working part-time on qutebrowser, funded by donations. To sustain this for a long time, your help is needed! See the GitHub Sponsors page for more information. Depending on your sign-up date and how long you keep a certain level, you can get qutebrowser t-shirts, stickers and more!

GitHub Sponsors allows for one-time donations (using the buttons next to "Select a tier") as well as custom amounts. For currencies other than Euro or Swiss Francs, this is the preferred donation method. GitHub uses Stripe to accept payment via credit cards without any fees. Billing via PayPal is available as well, with less fees than a direct PayPal transaction.

Alternatively, the following donation methods are available — note that eligibility for swag (shirts/stickers/etc.) is handled on a case-by-case basis for those, please get in touch for details.

  • Liberapay, which can handle payments via Credit Card, SEPA bank transfers, or Paypal. Payment fees are paid by me, but they are relatively low.

  • SEPA bank transfer inside Europe (no fees):

    • Account holder: Florian Bruhin

    • Country: Switzerland

    • IBAN (EUR): CH13 0900 0000 9160 4094 6

    • IBAN (other): CH80 0900 0000 8711 8587 3

    • Bank: PostFinance AG, Mingerstrasse 20, 3030 Bern, Switzerland (BIC: POFICHBEXXX)

    • If you need any other information: Contact me at [email protected].

    • If possible, please consider yearly or semi-yearly donations, because of the additional overhead from many individual transactions for bookkeeping/tax purposes.

  • PayPal: CHF, EUR, USD. Note: Fees can be very high (around 5-40%, depending on the donated amounts) - consider using GitHub Sponsors (credit card), Liberapay (credit cards, PayPal, or bank transfer) or SEPA bank transfers instead.

  • Cryptocurrencies:

    • Bitcoin: bc1q3ptyw8hxrcfz6ucfgmglphfvhqpy8xr6k25p00

    • Bitcoin Cash: 1BnxUbnJ5MrEPeh5nuUMx83tbiRAvqJV3N

    • Ethereum: 0x10c2425856F7a8799EBCaac4943026803b1089c6

    • Litecoin: MDt3YQciuCh6QyFmr8TiWNxB94PVzbnPm2

    • Others: Please get in touch, I’d happily set up anything supported by Ledger Live

Sponsors

Thanks a lot to MacStadium for supporting qutebrowser with a free hosted Mac Mini via their Open Source Project.

(They don’t require including this here - I’ve just been very happy with their offer, and without them, no macOS releases or tests would exist)

Thanks to the HSR Hochschule für Technik Rapperswil, which made it possible to work on qutebrowser extensions as a student research project.

powered by MacStadium HSR Hochschule für Technik Rapperswil

Authors

qutebrowser’s primary author is Florian Bruhin (The Compiler), but qutebrowser wouldn’t be what it is without the help of hundreds of contributors!

Additionally, the following people have contributed graphics:

  • Jad/yelo (new icon)

  • WOFall (original icon)

  • regines (key binding cheatsheet)

Also, thanks to everyone who contributed to one of qutebrowser’s crowdfunding campaigns!

Similar projects

Various projects with a similar goal like qutebrowser exist. Many of them were inspirations for qutebrowser in some way, thanks for that!

Active

Inactive

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/gpl-3.0.txt.

pdf.js

qutebrowser optionally uses pdf.js to display PDF files in the browser. Windows releases come with a bundled pdf.js.

pdf.js is distributed under the terms of the Apache License. You can find a copy of the license in qutebrowser/3rdparty/pdfjs/LICENSE (in the Windows release or after running scripts/dev/update_3rdparty.py), or online here.

qt-debug-pkgbuild's People

Contributors

foxboron avatar the-compiler avatar vilhalmer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

qt-debug-pkgbuild's Issues

gdb can't find not source code

The built package doesn't contain the source code. Thus gdb would complain as follows,

(gdb) n
8056 kernel/qwidget.cpp: No such file or directory.

I noticed if I use OPTIONS+=(debug strip) for makepkg, a seperate package qt5-base-debug will be built and installing this package will put the source code into /usr/src/debug/qtbase-everywhere-src-5.14.2/src/. So makepkg can avoid this issue.

Blacklist qt5-doc package

It takes a long time to build, but doesn't actually provide any value over the normal qt5-doc one (I think?).

Installation of pyqt5 package fails

The first (i.e. non py2) configure.py step in the PKGBUILD fails. After some research, the run_command(' '.join([quote(a) for a in argv]), verbose) step on line 2619 of the configure.py fails to produce any output in src/PyQt5_gpl-5.13.0/QtCore. It then checks for the existence of a file in there, doesn't find it, and errors out.

Here's the log:

┌─[ignormies][~/git/qt-debug-pkgbuild/pyqt5]
└──▪ makepkg -si
==> Making package: pyqt5-debug 5.13.0-1 (Mon 14 Oct 2019 10:57:28 AM PDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found PyQt5_gpl-5.13.0.tar.gz
==> Validating source files with sha256sums...
    PyQt5_gpl-5.13.0.tar.gz ... Passed
==> Extracting sources...
  -> Extracting PyQt5_gpl-5.13.0.tar.gz with bsdtar
==> Starting prepare()...
==> Removing existing $pkgdir/ directory...
==> Starting build()...
Querying qmake about your Qt installation...
Determining the details of your Qt installation...
This is the GPL version of PyQt 5.13.0 (licensed under the GNU General Public
License) for Python 3.7.4 on linux.
Found the license file pyqt-gpl.sip.
Checking to see if the QtGui module should be built...
Checking to see if the QtHelp module should be built...
Checking to see if the QtMultimedia module should be built...
Checking to see if the QtMultimediaWidgets module should be built...
Checking to see if the QtNetwork module should be built...
Checking to see if the QtOpenGL module should be built...
Checking to see if the QtPrintSupport module should be built...
Checking to see if the QtQml module should be built...
Checking to see if the QtQuick module should be built...
Checking to see if the QtSql module should be built...
Checking to see if the QtSvg module should be built...
Checking to see if the QtTest module should be built...
Checking to see if the QtWebKit module should be built...
Checking to see if the QtWebKitWidgets module should be built...
Checking to see if the QtWidgets module should be built...
Checking to see if the QtXml module should be built...
Checking to see if the QtXmlPatterns module should be built...
Checking to see if the QtDesigner module should be built...
Checking to see if the QAxContainer module should be built...
Checking to see if the QtDBus module should be built...
Checking to see if the _QOpenGLFunctions_2_0 module should be built...
Checking to see if the _QOpenGLFunctions_2_1 module should be built...
Checking to see if the _QOpenGLFunctions_4_1_Core module should be built...
Checking to see if the QtSensors module should be built...
Checking to see if the QtSerialPort module should be built...
Checking to see if the QtX11Extras module should be built...
Checking to see if the QtBluetooth module should be built...
Checking to see if the QtMacExtras module should be built...
Checking to see if the QtPositioning module should be built...
Checking to see if the QtWinExtras module should be built...
Checking to see if the QtQuickWidgets module should be built...
Checking to see if the QtWebSockets module should be built...
Checking to see if the Enginio module should be built...
Checking to see if the QtWebChannel module should be built...
Checking to see if the QtLocation module should be built...
Checking to see if the QtNfc module should be built...
Checking to see if the QtNetworkAuth module should be built...
Checking to see if the QtRemoteObjects module should be built...
Checking to see if the dbus support module should be built...
Qt v5.13.1 is being used.
The qmake executable is /usr/bin/qmake.
Qt is built as a shared library.
SIP 4.19.19 is being used.
The sip executable is /usr/bin/sip.
These PyQt5 modules will be built: QtCore, QtGui, QtHelp, QtMultimedia,
QtMultimediaWidgets, QtNetwork, QtOpenGL, QtPrintSupport, QtQml, QtQuick,
QtSql, QtSvg, QtTest, QtWebKit, QtWebKitWidgets, QtWidgets, QtXml,
QtXmlPatterns, QtDesigner, QtDBus, _QOpenGLFunctions_2_0,
_QOpenGLFunctions_2_1, _QOpenGLFunctions_4_1_Core, QtSensors, QtSerialPort,
QtX11Extras, QtBluetooth, QtPositioning, QtQuickWidgets, QtWebSockets,
QtWebChannel, QtLocation, QtNfc, QtNetworkAuth, QtRemoteObjects.
The PyQt5 Python package will be installed in /usr/lib/python3.7/site-packages.
A debug version of PyQt5 will be built.
PyQt5 is being built with generated docstrings.
PyQt5 is being built with 'protected' redefined as 'public'.
The Designer plugin will be installed in /usr/lib/qt/plugins/designer.
The qmlscene plugin will be installed in /usr/lib/qt/plugins/PyQt5.
The QScintilla API file will be installed in /usr/share/qt/qsci/api/python.
The PyQt5 PEP 484 stub files will be installed in
/usr/lib/python3.7/site-packages/PyQt5.
The dbus support module will be installed in
/usr/lib/python3.7/site-packages/dbus/mainloop.
pyuic5, pyrcc5 and pylupdate5 will be installed in /usr/bin.
The interpreter used by pyuic5 is /usr/bin/python.
Generating the C++ source for the QtCore module...
Error: Unable to create the C++ code.
==> ERROR: A failure occurred in build().
    Aborting...

cannot open any Qt5 app: "error while loading shared libraries: libicui18n.so.64: cannot open shared object file: No such file or directory"

Hi
I have installed your packages on my Arch Linux with the following command:

sudo pacman -S qt5-base-debug qt5-declarative-debug qt5-graphicaleffects-debug qt5-imageformats-debug qt5-location-debug qt5-multimedia-debug qt5-quickcontrols-debug qt5-quickcontrols2-debug qt5-script-debug qt5-sensors-debug qt5-speech-debug qt5-svg-debug qt5-tools-debug qt5-wayland-debug qt5-webchannel-debug qt5-webengine-debug qt5-websockets-debug qt5-x11extras-debug qt5-xmlpatterns-debug qt5-webkit-debug qt5-translations-debug qt5-networkauth-debug

Terminal shows this error when I try to open any Qt5 app:
error while loading shared libraries: libicui18n.so.64: cannot open shared object file: No such file or directory

Release temp packages

When building with --temp we should have a way to mark them as "okay" and release

cannot install packages: "The requested URL returned error: 404"

error when I try to install any package from your repo

error: failed retrieving file 'qt5-webkit-debug-5.212.0alpha3-8-x86_64.pkg.tar.xz' from qutebrowser.org : The requested URL returned error: 404
warning: failed to retrieve some files

error: failed retrieving file 'qt5-translations-debug-5.14.0-1-any.pkg.tar.xz' from qutebrowser.org : The requested URL returned error: 404
warning: failed to retrieve some files

error: failed retrieving file 'qt5-networkauth-debug-5.14.0-1-x86_64.pkg.tar.xz' from qutebrowser.org : The requested URL returned error: 404
warning: failed to retrieve some files

error: failed to commit transaction (failed to retrieve some files)
Errors occurred, no packages were upgraded.

update.sh has problems with new qt5-quick3d package

https://projects.archlinux.org/kde-build.git/plain/qt-opt-packages?h=qt returns a new entry qt5-quick3d

Unfortunately, the qt5-quick3d package has no trunk directory, which means that after you try cloning the repo using svntogit, the cp below fails trying to find packages/trunk. This doesn't break anything, but you do get an (ignored) error when the script is run. qt5-quick3d also gets added to pkglist even though it actually isn't provided.

(as an aside, why not use asp export $pkg instead of the git clone approach?)

Cache Docker image

Rebuilding the docker image every time takes considerable time - we should cache a docker image with the deps installed (maybe even build that in a Travis cronjob) and then only do an incremental update from there when building.

qt5-webengine: Enable debug build of Chromium

Chromium provides an option to build in the debug mode, which can be enabled in qt5-webengine with the following patch:

diff --git a/trunk/PKGBUILD b/trunk/PKGBUILD
index 977c658..ff70366 100644
--- a/trunk/PKGBUILD
+++ b/trunk/PKGBUILD
@@ -44,7 +44,7 @@ build() {
   cd build
 
   export PATH="$srcdir/bin:$PATH"
-  qmake ../${_pkgfqn} -- \
+  qmake ../${_pkgfqn} -config debug -- \
     -proprietary-codecs \
     -system-ffmpeg \
     -webp \

In this mode DCHECK* assertions are enabled, making debugging easier. For example, the following check helps me find the actual reason to nextcloud/desktop#941.

[2817:2817:1219/211037.742179:FATAL:render_process_host_impl.cc(887)] Check failed: map_.empty(). 

Could you consider adding this option to the qt5-webengine-debug package?

Support multiple arguments to patch.sh

$ bash patch.sh qt5-{base,imageformats,virtualkeyboard,webkit}                                               
+ ((  4 == 0  ))
+ packages='qt5-base qt5-imageformats qt5-virtualkeyboard qt5-webkit'
+ patch_qt 'qt5-base qt5-imageformats qt5-virtualkeyboard qt5-webkit'
+ for pkg in '"$@"'
+ [[ qt5-base qt5-imageformats qt5-virtualkeyboard qt5-webkit != *qt5-* ]]
+ grep -q _orig_pkgname qt5-base qt5-imageformats qt5-virtualkeyboard qt5-webkit/PKGBUILD
grep: qt5-base: Is a directory
grep: qt5-imageformats: Is a directory
grep: qt5-virtualkeyboard: Is a directory
+ sed -i 's|^pkgname=.*|&-debug\n_orig_pkgname=${pkgname/-debug/}|' qt5-base qt5-imageformats qt5-virtualkeyboard qt5-webkit/PKGBUILD
sed: couldn't edit qt5-base: not a regular file

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.