Skip to content

Commit

Permalink
Add and update tools
Browse files Browse the repository at this point in the history
  • Loading branch information
D3vil0p3r committed Dec 5, 2024
1 parent 2db59e5 commit a283fda
Show file tree
Hide file tree
Showing 2 changed files with 124 additions and 0 deletions.
4 changes: 4 additions & 0 deletions packages/pentesting/pyside2/.nvchecker.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[pyside2]
source = 'regex'
url = 'https://download.qt.io/official_releases/QtForPython/pyside2/'
regex = 'PySide2-([\d.]+)-src'
120 changes: 120 additions & 0 deletions packages/pentesting/pyside2/PKGBUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Credits BlackArch ( https://www.blackarch.org/ ).
# See COPYING for license details.

# Maintainer: Antonio Rojas <arojas@archlinux.org>
# Maintainer: Felix Yan <felixonmars@archlinux.org>

pkgbase=pyside2
pkgname=(shiboken2 python-shiboken2 pyside2 pyside2-tools)
_qtver=5.15.13
_clangver=17.0.6
pkgver=${_qtver/-/}
pkgrel=3
arch=('x86_64' 'aarch64')
url='https://www.qt.io'
license=('LGPL')
makedepends=(cmake python-setuptools python-wheel llvm clang=$_clangver
qt5-multimedia qt5-tools qt5-sensors qt5-charts qt5-webengine qt5-datavis3d
qt5-websockets qt5-speech qt5-3d qt5-svg qt5-script qt5-scxml qt5-x11extras
qt5-quickcontrols2 qt5-serialport qt5-remoteobjects qt5-xmlpatterns)
optdepends=('qt5-svg: QtSvg bindings'
'qt5-script: QtScript bindings'
'qt5-speech: QtTextToSpeech bindings'
'qt5-websockets: QtWebSockets bindings'
'qt5-webengine: QtWebEngine bindings'
'qt5-datavis3d: QtDataVisualization bindings'
'qt5-scxml: QtScxml bindings'
'qt5-sensors: QtSensors bindings'
'qt5-3d: Qt3D bindings'
'qt5-x11extras: QtX11Extras bindings'
'qt5-charts: QtCharts bindings'
'qt5-tools: QtHelp bindings'
'qt5-remoteobjects: QtRemoteObjects bindings'
'qt5-serialport: QtSerialPort bindings'
'qt5-quickcontrols2: QtQuickControls2 bindings')
_pkgfqn=pyside-setup-opensource-src-$_qtver
source=(https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-$pkgver-src/${_pkgfqn}.tar.xz)
sha512sums=('559e1d474e382ec835cdf2bc69eb27113fdb920a96a63ab0ee022c2a9d2141e5919afd566cb82701e4d2130b142aa59fcbfd60db34823a4f03b879eee5d9e3a8')

prepare(){
cd "$srcdir/$_pkgfqn"

# https://github.com/python/cpython/issues/118777
sed '/PyObject \*dict = type->tp_dict;/a\ if (dict == NULL) dict = PyType_GetDict(type);' -i sources/shiboken2/libshiboken/signature/signature_helper.cpp

# https://github.com/arch4edu/arch4edu/issues/268
sed '/typing.TypeVar.__repr__ = _typevar__repr__/d' -i sources/pyside2/PySide2/support/generate_pyi.py

sed '/check_allowed_python_version()/d' -i setup.py
}

build() {
cmake -B build -S $_pkgfqn \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=None \
-DBUILD_TESTS=OFF \
-DPYTHON_EXECUTABLE=/usr/bin/python
cmake --build build
}

package_shiboken2() {
pkgdesc='Generates bindings for C++ libraries using CPython source code'
depends=(clang=$_clangver llvm libxslt qt5-xmlpatterns)

DESTDIR="$pkgdir" cmake --install build/sources/shiboken2
# Provided in python-shiboken2
rm -r "$pkgdir"/usr/lib/{python*,libshiboken*}
# Conflicts with shiboken6 and doesn't work anyway
rm "$pkgdir"/usr/bin/shiboken_tool.py
}

package_python-shiboken2() {
pkgdesc='Python bindings for shiboken2'
depends=(python)

DESTDIR="$pkgdir" cmake --install build/sources/shiboken2
# Provided in shiboken2
rm -r "$pkgdir"/usr/{bin,include,lib/{cmake,pkgconfig}}

# Install egg-info
cd $_pkgfqn
python setup.py egg_info --build-type=shiboken2
_pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
cp -r shiboken2.egg-info "$pkgdir"/$_pythonpath
}

package_pyside2() {
pkgdesc='Enables the use of Qt5 APIs in Python applications'
depends=(python-shiboken2 qt5-declarative)
optdepends=('qt5-svg: QtSvg bindings'
'qt5-script: QtScript bindings'
'qt5-speech: QtTextToSpeech bindings'
'qt5-websockets: QtWebSockets bindings'
'qt5-webengine: QtWebEngine bindings'
'qt5-datavis3d: QtDataVisualization bindings'
'qt5-scxml: QtScxml bindings'
'qt5-sensors: QtSensors bindings'
'qt5-3d: Qt3D bindings'
'qt5-x11extras: QtX11Extras bindings'
'qt5-charts: QtCharts bindings'
'qt5-tools: QtHelp bindings'
'qt5-remoteobjects: QtRemoteObjects bindings'
'qt5-serialport: QtSerialPort bindings'
'qt5-quickcontrols2: QtQuickControls2 bindings')
provides=(qt5-python-bindings)

DESTDIR="$pkgdir" cmake --install build/sources/pyside2
# Install egg-info
cd $_pkgfqn
python setup.py egg_info --build-type=pyside2
_pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
cp -r PySide2.egg-info "$pkgdir"/$_pythonpath
}

package_pyside2-tools() {
pkgdesc='Tools for PySide2'
depends=(pyside2)

DESTDIR="$pkgdir" cmake --install build/sources/pyside2-tools
rm "$pkgdir"/usr/bin/{rcc,uic,designer,pyside_tool.py} # provided by qt5-base
}

0 comments on commit a283fda

Please sign in to comment.