first commit
This commit is contained in:
37
CHANGELOG.md
Normal file
37
CHANGELOG.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
## 1.0
|
||||||
|
|
||||||
|
### 29.09.2023
|
||||||
|
|
||||||
|
CHANGE:
|
||||||
|
|
||||||
|
* Organization in git
|
||||||
|
|
||||||
|
## 0.2
|
||||||
|
|
||||||
|
### 4.09.2023
|
||||||
|
|
||||||
|
ADD:
|
||||||
|
|
||||||
|
* build requirements:
|
||||||
|
libavcodec-dev
|
||||||
|
libavformat-dev
|
||||||
|
libjpeg-dev
|
||||||
|
libopus-dev
|
||||||
|
libopenh264-dev
|
||||||
|
libswscale-dev
|
||||||
|
libvpx-dev
|
||||||
|
|
||||||
|
CHANGE:
|
||||||
|
|
||||||
|
* configure for qt build
|
||||||
|
* change UserID and GroupID from 2000 to 1000
|
||||||
|
|
||||||
|
## 0.1
|
||||||
|
|
||||||
|
### 18.08.2023
|
||||||
|
|
||||||
|
CREATE:
|
||||||
|
|
||||||
|
* dockerfile
|
||||||
69
Dockerfile
Normal file
69
Dockerfile
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
ARG DOCKER_REGISTRY=harbor.avroid.tech
|
||||||
|
|
||||||
|
# https://hub.docker.com/_/ubuntu
|
||||||
|
FROM ${DOCKER_REGISTRY}/devops/base-build-image:1.0
|
||||||
|
LABEL description="Linux image for Tavro build" \
|
||||||
|
tools.qt.version="5.6.3"
|
||||||
|
|
||||||
|
###QT BUILD###
|
||||||
|
ARG NEXUS_URL="https://nexus.avroid.tech"
|
||||||
|
ARG NEXUS_QT_REPO="qt_repo" \
|
||||||
|
VERSION=5.6.3
|
||||||
|
|
||||||
|
COPY * /patches/
|
||||||
|
|
||||||
|
# Install packages for qt and dependencies
|
||||||
|
RUN apt update && \
|
||||||
|
apt install -y \
|
||||||
|
perl \
|
||||||
|
libavcodec-dev \
|
||||||
|
libavformat-dev \
|
||||||
|
libjpeg-dev \
|
||||||
|
libopus-dev \
|
||||||
|
libopenh264-dev \
|
||||||
|
libswscale-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libvpx-dev \
|
||||||
|
gperf \
|
||||||
|
libegl1-mesa-dev \
|
||||||
|
libgles2-mesa-dev \
|
||||||
|
libfontconfig1-dev \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libx11-dev \
|
||||||
|
libx11-xcb-dev \
|
||||||
|
libxext-dev \
|
||||||
|
libxfixes-dev \
|
||||||
|
libxi-dev \
|
||||||
|
libxrender-dev \
|
||||||
|
'^libxcb*' \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
libxkbcommon-x11-dev \
|
||||||
|
libgstreamer1.0-dev \
|
||||||
|
libgstreamer-plugins-base1.0-dev \
|
||||||
|
libharfbuzz-dev && \
|
||||||
|
apt clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
#download, configure and build qt
|
||||||
|
RUN wget ${NEXUS_URL}/repository/${NEXUS_QT_REPO}/v${VERSION}/qt-everywhere-opensource-src-${VERSION}.tar.xz && tar -xJf qt-everywhere-opensource-src-${VERSION}.tar.xz && \
|
||||||
|
ln -sf /usr/bin/python3 /usr/bin/python && \
|
||||||
|
cd qt-everywhere* && for file in /patches/*.patch; do patch -p1 < /patches/0001_fixed_build_with_libxi.patch; done && \
|
||||||
|
./configure -release -opensource -confirm-license -nomake tests -nomake examples -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtdoc -skip qtmacextras -skip qtscript -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebview -skip qtwinextras -skip qtserialbus -system-xcb -system-harfbuzz -system-libjpeg -no-openssl && \
|
||||||
|
make -j$(nproc) && make install -j$(nproc) && cd .. && rm -rf qt-everywhere* patches
|
||||||
|
|
||||||
|
# Personalization
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
ARG UID=1000
|
||||||
|
ARG GID=1000
|
||||||
|
ARG USER=jenkins
|
||||||
|
ARG USER_GROUP=jenkins
|
||||||
|
ARG USER_HOME=/home/${USER}
|
||||||
|
|
||||||
|
RUN (groupadd -g ${GID} ${USER_GROUP} || true) && \
|
||||||
|
useradd -d ${USER_HOME} -g ${GID} -u ${UID} --shell /bin/bash ${USER}
|
||||||
|
|
||||||
|
USER ${USER}
|
||||||
|
WORKDIR ${USER_HOME}
|
||||||
|
|
||||||
|
CMD ["/bin/bash"]
|
||||||
32
Makefile
Normal file
32
Makefile
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
.PHONY: all build push clean
|
||||||
|
|
||||||
|
IMAGE_NAME = tavro-build-linux
|
||||||
|
IMAGE_GROUP = tavro
|
||||||
|
IMAGE_TAG = 1.0
|
||||||
|
REVISION =
|
||||||
|
DOCKER_REGISTRY = harbor.avroid.tech
|
||||||
|
|
||||||
|
all:
|
||||||
|
@echo 'DEFAULT:'
|
||||||
|
@echo ' make build'
|
||||||
|
@echo ' make push'
|
||||||
|
@echo ' make getTag'
|
||||||
|
@echo ' make clean'
|
||||||
|
|
||||||
|
build:
|
||||||
|
DOCKER_BUILDKIT=1 docker build \
|
||||||
|
-f Dockerfile \
|
||||||
|
--platform linux/amd64 \
|
||||||
|
-t $(DOCKER_REGISTRY)/$(IMAGE_GROUP)/$(IMAGE_NAME):$(IMAGE_TAG)$(REVISION) src/
|
||||||
|
|
||||||
|
push:
|
||||||
|
ifeq ($(CI), false)
|
||||||
|
docker login https://$(DOCKER_REGISTRY)
|
||||||
|
endif
|
||||||
|
docker push $(DOCKER_REGISTRY)/$(IMAGE_GROUP)/$(IMAGE_NAME):$(IMAGE_TAG)$(REVISION)
|
||||||
|
|
||||||
|
getTag:
|
||||||
|
@echo $(IMAGE_TAG)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
docker rmi $(DOCKER_REGISTRY)/$(IMAGE_GROUP)/$(IMAGE_NAME):$(IMAGE_TAG)$(REVISION)
|
||||||
28
README.md
Normal file
28
README.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# tavro-build-linux
|
||||||
|
|
||||||
|
## Данный репозиторий содержит build environment для сборки приложения Tavro под linux
|
||||||
|
|
||||||
|
Для сборки образа выполните
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make build
|
||||||
|
```
|
||||||
|
|
||||||
|
Для загрузки образа в harbor выполните
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make push
|
||||||
|
```
|
||||||
|
Для вывода тега докер образа выполните
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make getTag
|
||||||
|
```
|
||||||
|
|
||||||
|
Для удаления образа из системы выполните
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make clean
|
||||||
|
```
|
||||||
|
|
||||||
|
За версию докер образа отвечает переменная IMAGE_TAG в [Makefile](./Makefile#L5)
|
||||||
17
src/0001_fixed_build_with_libxi.patch
Normal file
17
src/0001_fixed_build_with_libxi.patch
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
--- a/qtbase/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp 2023-08-21 14:35:51.107483754 +0300
|
||||||
|
+++ b/qtbase/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp 2023-08-21 16:14:51.554260285 +0300
|
||||||
|
@@ -698,14 +698,6 @@
|
||||||
|
" Minimum libXi version required is 1.7.4."
|
||||||
|
" Expect issues with touch behavior.");
|
||||||
|
}
|
||||||
|
-#elif LIBXI_MAJOR == 1 && (LIBXI_MINOR < 7 || (LIBXI_MINOR == 7 && LIBXI_PATCH < 4))
|
||||||
|
- static bool allowTouchWarningShown = false;
|
||||||
|
- if (!allowTouchWarningShown) {
|
||||||
|
- allowTouchWarningShown = true;
|
||||||
|
- qWarning("Skipping XIAllowTouchEvents() due to not having libXi >= 1.7.4."
|
||||||
|
- " libXi version at build time was %d.%d.%d."
|
||||||
|
- " Expect issues with touch behavior.", LIBXI_MAJOR, LIBXI_MINOR, LIBXI_PATCH);
|
||||||
|
- }
|
||||||
|
#else
|
||||||
|
XIAllowTouchEvents(static_cast<Display *>(m_xlib_display), xiDeviceEvent->deviceid,
|
||||||
|
xiDeviceEvent->detail, xiDeviceEvent->event, XIAcceptTouch);
|
||||||
Reference in New Issue
Block a user