Reorganizing everything under a single repo
This commit is contained in:
parent
8077e80497
commit
9fa96ef8dc
10 changed files with 84 additions and 58 deletions
21
LICENSE
Normal file
21
LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2021-2024 Ad5001, 2016 Chris R
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
32
README.md
32
README.md
|
@ -1,12 +1,28 @@
|
||||||
# accountfree-docker
|
# docker-ubuntu-pyside-xvfb
|
||||||
---
|
---
|
||||||
|
|
||||||
This repository contains the Dockerfiles required to build AccountFree:
|
This repository contains the Dockerfiles required to build all tags on [Docker Hub](https://hub.docker.com/repository/docker/ad5001/ubuntu-pyside-xvfb/):
|
||||||
- ubuntu-pyside6-xvfb: Ubuntu jammy base containing PySide6 (Qt for Python) & Xvfb (virtual X server that does not require a display).
|
|
||||||
- ubuntu-pyside6-xvfb-wine: Contains the latest wine installation, with Windows python3, PySide6 & pyinstaller + Xvfb.
|
All tags come with:
|
||||||
- ubuntu-pyside2-xvfb: Ubuntu focal base containing PySide2 (Qt for Python) & Xvfb (virtual X server that does not require a display).
|
|
||||||
- ubuntu-pyside2-xvfb-wine: Contains the latest wine installation, with Windows python3, PySide2 & pyinstaller + Xvfb.
|
- a version of Python (v3.12 for PySide6, v3.10 for PySide2)
|
||||||
- accountfree-build-img: Based on ubuntu-pyside2-xvfb, contains AccountFree dependencies to build it's Linux packages.
|
- the tagged version of PySide2/6.
|
||||||
- accountfree-build-img: Based on ubuntu-pyside2-xvfb-wine, contains AccountFree dependencies to build it's Windows installer.
|
- Python packages: `pip`, `requests`, `packaging`, `pytest` (+ `pytest-cov` + `pytest-qt`)
|
||||||
|
- `xvfb`, `xdotool`, and `wmctrl`.
|
||||||
|
|
||||||
|
The linux tags have the following:
|
||||||
|
- a Ubuntu base (noble for PySide6 and jammy for PySide2)
|
||||||
|
- python3 is available under `/usr/bin/python3`.
|
||||||
|
- External pip management disabled (allows you to install packages from pip directly).
|
||||||
|
- `make`, `git`, `rpm`, and `dh-python`.
|
||||||
|
|
||||||
|
The wine tags have the following:
|
||||||
|
- The latest `winehq-staging` under a Ubuntu base.
|
||||||
|
- `/usr/bin/python` calling `python3` under wine.
|
||||||
|
- `/usr/bin/pip` calling `pip` under wine.
|
||||||
|
- `/usr/bin/pyinstaller` calling `pyinstaller` under wine.
|
||||||
|
- `wget`, `curl`, `git`, `p7zip-full`, `unzip` and `nsis`.
|
||||||
|
|
||||||
|
Additionally, the LaTeX linux tag include a full TeXlive installation including `dvipng` and the latex extras.
|
||||||
|
|
||||||
NOTE: In Docker, use xvfb-run to run a program within a Xvfb server.
|
NOTE: In Docker, use xvfb-run to run a program within a Xvfb server.
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
FROM ad5001/ubuntu-pyside2-xvfb-wine:win7-5.15.2
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt install unzip nsis curl -y
|
|
||||||
RUN apt clean
|
|
||||||
# Installing tor
|
|
||||||
RUN wget https://dist.torproject.org/torbrowser/10.5.4/tor-win64-0.4.5.9.zip \
|
|
||||||
&& ls -la \
|
|
||||||
&& unzip tor-win64-0.4.5.9.zip -x Data/* \
|
|
||||||
&& rm tor-win64-0.4.5.9.zip \
|
|
||||||
&& mv Tor /wine/drive_c/
|
|
||||||
|
|
||||||
RUN wine reg ADD "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment" /v PATH /f /t REG_EXPAND_SZ /d "C:\windows\system32;C:\windows;C:\windows\system32\wbem;C:\Tor"
|
|
||||||
# Installing dependencies
|
|
||||||
RUN pip install packaging websocket-client pywin32 stem requests
|
|
|
@ -1,8 +0,0 @@
|
||||||
FROM ad5001/ubuntu-pyside2-xvfb:hirsute-5.15.2
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
ENV TZ=Europe/Paris
|
|
||||||
RUN apt-get update && apt-get upgrade -y \
|
|
||||||
&& apt-get -y install tor qml-module-qtqml-models2 qml-module-qtquick-controls python3-stdeb python-all python3-requests python3-stem rpm dh-python
|
|
||||||
RUN pip3 install packaging websocket-client
|
|
14
pyside2-linux/Dockerfile
Normal file
14
pyside2-linux/Dockerfile
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
FROM ubuntu:jammy # Jammy uses python3.10 and not 3.12, which is not compatible with PySide2.
|
||||||
|
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
ARG PYSIDE2_VERSION=5.15.2.1
|
||||||
|
|
||||||
|
ENV TZ=Europe/Paris
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get -y install make git rpm dh-python \
|
||||||
|
xvfb xdotool wmctrl \
|
||||||
|
python3 python3-pip python3-stdeb python-all python3-requests python3-packaging python3-pip python3-pytest python3-pytest-cov python3-pytestqt \
|
||||||
|
qml-module-qtquick-controls2 qml-module-qtmultimedia qml-module-qtgraphicaleffects qml-module-qtquick2 qml-module-qtqml-models2 qml-module-qtquick-controls
|
||||||
|
RUN rm /usr/lib/python3.*/EXTERNALLY-MANAGED # Disable managed environment. We don't care about breaking system packages here.
|
||||||
|
RUN python3 -m pip install PySide2==$PYSIDE2_VERSION
|
||||||
|
RUN apt clean
|
|
@ -1,14 +1,14 @@
|
||||||
FROM ubuntu:jammy
|
FROM ubuntu:noble
|
||||||
|
|
||||||
ARG PYSIDE2_VERSION=5.15.2.1
|
ARG PYSIDE2_VERSION=5.15.2.1
|
||||||
|
|
||||||
# Adapted rom https://github.com/cdrx/docker-pyinstaller/blob/master/Dockerfile-py3-win64
|
# Adapted from https://github.com/cdrx/docker-pyinstaller/blob/master/Dockerfile-py3-win64
|
||||||
# Unupdated for a while.
|
# Upstream hasn't been updated for a while.
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
|
||||||
ARG WINE_VERSION=winehq-staging
|
ARG WINE_VERSION=winehq-staging
|
||||||
ARG PYTHON_VERSION=3.9.6
|
ARG PYTHON_VERSION=3.10.15 # Python3.10 are the last supported version of Python for PySide2.
|
||||||
ARG PYINSTALLER_VERSION=5.0.1
|
ARG PYINSTALLER_VERSION=5.0.1
|
||||||
|
|
||||||
# we need wine for this all to work, so we'll use the PPA
|
# we need wine for this all to work, so we'll use the PPA
|
||||||
|
@ -41,17 +41,17 @@ RUN set -x \
|
||||||
&& winetricks win7 \
|
&& winetricks win7 \
|
||||||
&& for msifile in `echo core dev exe lib path pip tcltk tools`; do \
|
&& for msifile in `echo core dev exe lib path pip tcltk tools`; do \
|
||||||
wget -nv "https://www.python.org/ftp/python/$PYTHON_VERSION/amd64/${msifile}.msi"; \
|
wget -nv "https://www.python.org/ftp/python/$PYTHON_VERSION/amd64/${msifile}.msi"; \
|
||||||
wine msiexec /i "${msifile}.msi" /qb TARGETDIR=C:/Python39; \
|
wine msiexec /i "${msifile}.msi" /qb TARGETDIR=C:/Python310; \
|
||||||
rm ${msifile}.msi; \
|
rm ${msifile}.msi; \
|
||||||
done \
|
done \
|
||||||
&& cd /wine/drive_c/Python39 \
|
&& cd /wine/drive_c/Python310 \
|
||||||
&& echo 'wine '\''C:\Python39\python.exe'\'' "$@"' > /usr/bin/python \
|
&& echo 'wine '\''C:\Python310\python.exe'\'' "$@"' > /usr/bin/python \
|
||||||
&& echo 'wine '\''C:\Python39\Scripts\easy_install.exe'\'' "$@"' > /usr/bin/easy_install \
|
&& echo 'wine '\''C:\Python310\Scripts\easy_install.exe'\'' "$@"' > /usr/bin/easy_install \
|
||||||
&& echo 'wine '\''C:\Python39\Scripts\pip.exe'\'' "$@"' > /usr/bin/pip \
|
&& echo 'wine '\''C:\Python310\Scripts\pip.exe'\'' "$@"' > /usr/bin/pip \
|
||||||
&& echo 'wine '\''C:\Python39\Scripts\pyinstaller.exe'\'' "$@"' > /usr/bin/pyinstaller \
|
&& echo 'wine '\''C:\Python310\Scripts\pyinstaller.exe'\'' "$@"' > /usr/bin/pyinstaller \
|
||||||
&& echo 'wine '\''C:\Python39\Scripts\pyupdater.exe'\'' "$@"' > /usr/bin/pyupdater \
|
&& echo 'wine '\''C:\Python310\Scripts\pyupdater.exe'\'' "$@"' > /usr/bin/pyupdater \
|
||||||
&& echo 'assoc .py=PythonScript' | wine cmd \
|
&& echo 'assoc .py=PythonScript' | wine cmd \
|
||||||
&& echo 'ftype PythonScript=c:\Python39\python.exe "%1" %*' | wine cmd \
|
&& echo 'ftype PythonScript=c:\Python310\python.exe "%1" %*' | wine cmd \
|
||||||
&& while pgrep wineserver >/dev/null; do echo "Waiting for wineserver"; sleep 1; done \
|
&& while pgrep wineserver >/dev/null; do echo "Waiting for wineserver"; sleep 1; done \
|
||||||
&& chmod +x /usr/bin/python /usr/bin/easy_install /usr/bin/pip /usr/bin/pyinstaller /usr/bin/pyupdater \
|
&& chmod +x /usr/bin/python /usr/bin/easy_install /usr/bin/pip /usr/bin/pyinstaller /usr/bin/pyupdater \
|
||||||
&& (pip install -U pip || true) \
|
&& (pip install -U pip || true) \
|
||||||
|
@ -75,7 +75,7 @@ RUN set -x \
|
||||||
|
|
||||||
# Additional data for PySide2
|
# Additional data for PySide2
|
||||||
|
|
||||||
RUN apt install -y wget curl p7zip-full git xvfb
|
RUN apt install -y wget curl p7zip-full git unzip nsis xvfb xdotool wmctrl
|
||||||
RUN apt clean
|
RUN apt clean
|
||||||
# Installing pyside2 & pyinstaller
|
# Installing pyside2 & pyinstaller
|
||||||
RUN pip install wheel PySide2==$PYSIDE2_VERSION pyinstaller==$PYINSTALLER_VERSION
|
RUN pip install wheel PySide2==$PYSIDE2_VERSION pyinstaller==$PYINSTALLER_VERSION requests pytest pytest-cov pytest-qt packaging
|
6
pyside6-linux-latex/Dockerfile
Normal file
6
pyside6-linux-latex/Dockerfile
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
FROM ad5001/ubuntu-pyside-xvfb:linux-6.7.2
|
||||||
|
|
||||||
|
ENV TZ=Europe/Paris
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get -y install texlive-base dvipng texlive-latex-extra
|
||||||
|
RUN apt clean
|
|
@ -5,7 +5,9 @@ ARG PYSIDE2_VERSION=6.7.2
|
||||||
|
|
||||||
ENV TZ=Europe/Paris
|
ENV TZ=Europe/Paris
|
||||||
RUN apt-get update
|
RUN apt-get update
|
||||||
RUN apt-get -y install make git python3-pip python3-pytest python3-pytest-cov python3-pytestqt xvfb xdotool wmctrl libxcb-cursor0
|
RUN apt-get -y install make git rpm dh-python \
|
||||||
|
xvfb xdotool wmctrl \
|
||||||
|
python3 python3-pip python3-stdeb python-all python3-requests python3-packaging python3-pip python3-pytest python3-pytest-cov python3-pytestqt
|
||||||
RUN rm /usr/lib/python3.*/EXTERNALLY-MANAGED # Disable managed environment. We don't care about breaking system packages here.
|
RUN rm /usr/lib/python3.*/EXTERNALLY-MANAGED # Disable managed environment. We don't care about breaking system packages here.
|
||||||
RUN python3 -m pip install PySide6==$PYSIDE2_VERSION
|
RUN python3 -m pip install PySide6==$PYSIDE2_VERSION
|
||||||
RUN apt clean
|
RUN apt clean
|
|
@ -75,7 +75,7 @@ RUN set -x \
|
||||||
|
|
||||||
# Additional data for PySide6
|
# Additional data for PySide6
|
||||||
|
|
||||||
RUN apt install -y wget curl p7zip-full git xvfb unzip nsis
|
RUN apt install -y wget curl p7zip-full git unzip nsis xvfb xdotool wmctrl
|
||||||
RUN apt clean
|
RUN apt clean
|
||||||
# Installing pyside6 & pyinstaller
|
# Installing pyside6 & pyinstaller
|
||||||
RUN pip install wheel PySide6==$PYSIDE2_VERSION pyinstaller==$PYINSTALLER_VERSION pytest
|
RUN pip install wheel PySide6==$PYSIDE2_VERSION pyinstaller==$PYINSTALLER_VERSION requests pytest pytest-cov pytest-qt packaging
|
|
@ -1,10 +0,0 @@
|
||||||
FROM ubuntu:jammy
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
ARG PYSIDE2_VERSION=5.15.2.1
|
|
||||||
|
|
||||||
ENV TZ=Europe/Paris
|
|
||||||
RUN apt-get update
|
|
||||||
RUN apt-get -y install make git python3-pip qml-module-qtquick-controls2 qml-module-qtmultimedia qml-module-qtgraphicaleffects qml-module-qtquick2 xvfb xdotool wmctrl
|
|
||||||
RUN python3 -m pip install PySide2==$PYSIDE2_VERSION
|
|
||||||
RUN apt clean
|
|
Loading…
Reference in a new issue