diff --git a/Dockerfile_centos7_base b/Dockerfile_centos7_base index afe48e0..21ba34e 100644 --- a/Dockerfile_centos7_base +++ b/Dockerfile_centos7_base @@ -48,8 +48,9 @@ xorg-x11-apps && \ wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage && \ wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage && \ wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage && \ -chmod +x linuxdeploy-x86_64.AppImage appimagetool-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImage && \ -mv linuxdeploy-x86_64.AppImage appimagetool-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImage /usr/bin/ && \ +wget https://raw.githubusercontent.com/linuxdeploy/linuxdeploy-plugin-gtk/master/linuxdeploy-plugin-gtk.sh && \ +chmod +x linuxdeploy-x86_64.AppImage appimagetool-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImage linuxdeploy-plugin-gtk.sh && \ +mv linuxdeploy-x86_64.AppImage appimagetool-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImage linuxdeploy-plugin-gtk.sh /usr/bin/ && \ yum clean all && python3 -m pip install --upgrade pip && pip3 install six # on fixe le fuseau horaire dans le conteneur, diff --git a/Makefile b/Makefile index 89bcbc1..bbf562b 100644 --- a/Makefile +++ b/Makefile @@ -31,3 +31,7 @@ valgrind: init_env build_base kdiff3: init_env build_base_qt docker-compose build kdiff3 docker-compose run --rm kdiff3 + +tilix: init_env build_base + docker-compose build tilix + docker-compose run --rm tilix diff --git a/README.md b/README.md index 8e71a89..21d775a 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ Les applications suivantes: - qgit - qtcreator - qcachegrind + - tilix (en cours) sont compilées dans un conteneur CentOS7 (glibc 2.17) puis livrées au format [AppImage](https://appimage.org/) via les outils [linuxdeploy](https://github.com/linuxdeploy/linuxdeploy) et [appimagetool](https://github.com/AppImage/AppImageKit). diff --git a/docker-compose.yml b/docker-compose.yml index 12270d5..d5e4e22 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -121,3 +121,19 @@ services: - NOM_APPIMAGE=kdiff_3_1.9.2 command : ["bash", "-c","/template.sh /usr/local/bin/kdiff3 /build"] + tilix: + build: + context: ./tilix + dockerfile: ./Dockerfile_centos7_tilix + image: cos7_tilix + container_name: docker_cos7_tilix + privileged: true + volumes: + - ./tilix:/build + - ./template.sh:/template.sh + env_file: + - ./.env + environment: + - CUSTOM_STEP_PRE_DEPLOY=/build/tilix_pre_step.sh + - NOM_APPIMAGE=tilix_1.9.4 + command : ["bash", "-c","/template.sh /usr/bin/tilix /build"] diff --git a/tilix/0001-Set-hhomogeneous-parameter-for-title-stack.patch b/tilix/0001-Set-hhomogeneous-parameter-for-title-stack.patch new file mode 100644 index 0000000..3763ad0 --- /dev/null +++ b/tilix/0001-Set-hhomogeneous-parameter-for-title-stack.patch @@ -0,0 +1,25 @@ +From 8e9ba0fe9343da3d57d9c3eae490e594a3586ad4 Mon Sep 17 00:00:00 2001 +From: Briffou +Date: Sat, 12 Oct 2019 22:42:29 -0400 +Subject: [PATCH 1/2] Set hhomogeneous parameter for title stack + +should fix https://github.com/gnunn1/tilix/issues/1691 +--- + source/gx/tilix/appwindow.d | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/source/gx/tilix/appwindow.d b/source/gx/tilix/appwindow.d +index 485ddb3d..e46aad97 100644 +--- a/source/gx/tilix/appwindow.d ++++ b/source/gx/tilix/appwindow.d +@@ -2119,6 +2119,7 @@ public: + add(afNotifications); + + stTitle = new Stack(); ++ stTitle.setHhomogeneous(false); + + lblText = new Label(text); + lblText.setEllipsize(PangoEllipsizeMode.START); +-- +2.31.1 + diff --git a/tilix/Dockerfile_centos7_tilix b/tilix/Dockerfile_centos7_tilix new file mode 100644 index 0000000..f73ac47 --- /dev/null +++ b/tilix/Dockerfile_centos7_tilix @@ -0,0 +1,49 @@ +# Eh beh, une sacrée tannée à compiler ce logiciel... +# voir le README de GtkD pour avoir tous les bons numéros de version des libs +FROM cos7_base + +ARG TILIX_VER=1.9.4 + +# patch pour corriger la longueur des onglets (en mode "onglets" donc), cf https://github.com/gnunn1/tilix/issues/1691 +ARG PATCH=0001-Set-hhomogeneous-parameter-for-title-stack.patch +COPY $PATCH $PATCH + +RUN yum install -y meson libffi-devel curl-devel libxml2-devel libyaml-devel lmdb-devel gobject-introspection-devel libstemmer-devel gperf libxslt gtk-doc openssl-devel vala intltool glibc-devel libmount-devel libsecret-devel desktop-file-utils ldc po4a gtk3-devel gettext-devel meson xdg-utils gdk-pixbuf2-devel librsvg2-devel vte291-devel libunwind-devel && \ + curl -fsS https://dlang.org/install.sh | bash -s ldc && source ~/dlang/ldc-1.26.0/activate && ln -s /usr/bin/cmake3 /usr/bin/cmake + +# vte +RUN git clone https://github.com/GNOME/vte.git && cd vte && \ + export LD_LIBRARY_PATH="/lib64" && git checkout 0.52.4 && \ + ./autogen.sh && make && make install && cd / && rm -rf /vte + +# Glib +RUN git clone https://github.com/GNOME/glib.git && cd glib && \ + git checkout 2.56.0 && meson _build && \ + export LC_CTYPE=en_US.UTF-8 && \ + ninja -C _build && ninja -C _build install && cd / && rm -rf /glib + +# curl +RUN git clone https://github.com/curl/curl.git && cd curl && \ + autoreconf -fi && ./configure --with-openssl && make && make install && cd / && rm -rf /curl + +# Appstreamcli +RUN export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/:/usr/local/lib/pkgconfig/ && \ + git clone https://github.com/ximion/appstream.git && \ + cd appstream && git checkout v0.12.9 && \ + meson _build && ninja -C _build && ninja -C _build install && \ + export LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH && cd / && rm -rf appstream + +# GtkD +RUN git clone https://github.com/gtkd-developers/GtkD.git && cd GtkD && \ + source ~/dlang/ldc-1.26.0/activate && \ + git checkout v3.8.5 && make -i -j20 && make -j20 install && cd / && rm -rf GtkD + +# tilix, enfin !!! +RUN source ~/dlang/ldc-1.26.0/activate && export LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH && \ + git clone https://github.com/gnunn1/tilix.git && \ + cd tilix && git apply /$PATCH && \ + export PKG_CONFIG_PATH=/usr/local/share/pkgconfig:$PKG_CONFIG_PATH && \ + meson _build --buildtype=release --prefix=/usr && ninja -C _build && ninja -C _build install + +# Exécuter une commande au démarrage de l'image. +CMD ["/bin/bash"] diff --git a/tilix/tilix.desktop b/tilix/tilix.desktop new file mode 100644 index 0000000..9f3ff0d --- /dev/null +++ b/tilix/tilix.desktop @@ -0,0 +1,203 @@ +[Desktop Entry] +Version=1.0 +Name[ar]=تِلِكس +Name[bg]=Tilix +Name[ca]=Tilix +Name[cs]=Tilix +Name[de]=Tilix +Name[en_GB]=Tilix +Name[eo]=Tilix +Name[es]=Tilix +Name[eu]=Tilix +Name[fi]=Tilix +Name[fr]=Tilix +Name[gl]=Tilix +Name[he]=Tilix +Name[hr]=Tilix +Name[hu]=Tilix +Name[id]=Tilix +Name[it]=Tilix +Name[ja]=Tilix +Name[ko]=Tilix +Name[nb_NO]=Tilix +Name[nl]=Tilix +Name[pl]=Tilix +Name[pt_BR]=Tilix +Name[pt_PT]=Tilix +Name[ro]=Tilix +Name[ru]=Tilix +Name[sr]=Тајликс +Name[sv]=Tilix +Name[tr]=Tilix +Name[uk]=Tilix +Name[zh_CN]=Tilix +Name[zh_TW]=Tilix +Name=Tilix +Comment[ca]=Un mosaic de terminals per a Gnome +Comment[cs]=Dlaždicový terminál pro Gnome +Comment[de]=Ein Terminal für GNOME mit Kacheldarstellung +Comment[en_GB]=A tiling terminal for Gnome +Comment[eo]=Kaheliga terminalo por GNOME +Comment[es]=Una terminal divisible para Gnome +Comment[fi]=Laatoittava pääte Gnomelle +Comment[fr]=Un terminal scindable pour Gnome +Comment[he]=מסוף בריצוף עבור GNOME +Comment[hr]=Pločasti terminal za GNOME +Comment[it]=Un terminale a riquadri per Gnome +Comment[ko]=그놈을 위한 타일링 터미널 +Comment[nl]=Een terminal voor Gnome met tegelmogelijkheid +Comment[pl]=Emuluje działanie terminala w środowisku GNOME wykorzystując interfejs kafli +Comment[pt_BR]=Um terminal em mosaico para o GNOME +Comment[pt_PT]=Um terminal em mosaico para o GNOME +Comment[ro]=Un terminal fără suprapunere pentru Gnome +Comment[ru]=Тайлинговый терминал для Gnome +Comment[sr]=Плочасти терминал за Гном +Comment[sv]=En sida-vid-sida-terminal för GNOME +Comment[tr]=Gnome için döşeyen bir terminal +Comment[uk]=Мозаїчний термінал для Gnome +Comment[zh_CN]=GNOME 的平铺终端模拟器 +Comment=A tiling terminal for Gnome +Keywords[ar]=shell;prompt;command;commandline;cmd; +Keywords[ca]=intèrpret d'ordres;indicador;ordre;línia d'ordres; +Keywords[cs]=shell;terminál;příkaz;příkazový řádek;cmd; +Keywords[de]=Shell;Prompt;Befehl;Befehlszeile;command;commandline;cmd; +Keywords[en_GB]=shell;prompt;command;commandline;cmd; +Keywords[eo]=ŝelo;komando;komandlinio;terminalo;terminalimitilo; +Keywords[es]=intérprete;shell;indicador;prompt;orden;línea de órdenes;cmd; +Keywords[fi]=shell;prompt;command;commandline;cmd;komentorivi;pääte; +Keywords[fr]=shell;prompt;commande;ligne de commande;cmd; +Keywords[he]=מעטפת;של;פרומפט;מסוף;טרמינל;שורת פקודה;חלון שחור;פקודה;פקודות; +Keywords[hr]=ljuska;upit;naredba;naredbeni redak;cmd; +Keywords[id]=shell;prompt;perintah;baris perintah;cmd; +Keywords[it]=shell;prompt;comando;linea di comando;cmd; +Keywords[nl]=shell;prompt;opdracht;opdrachtprompt;cmd; +Keywords[oc]=shell;prompt;comanda;linha de comanda; +Keywords[pl]=powłoka;terminal;polecenie;wiersz poleceń;cmd;konsola; +Keywords[pt_BR]=shell;prompt;comando;linha de comando;cmd; +Keywords[pt_PT]=shell;prompt;comando;linha de comando;cmd; +Keywords[ro]=shell;prompt;command;commandline;cmd; +Keywords[ru]=shell;prompt;command;commandline;cmd; +Keywords[sr]=shell;prompt;command;commandline;cmd;terminal;školjka;skoljka;komanda;naredba;linija;šel;терминал;шкољка;команда;наредба;линија;шел; +Keywords[sv]=skal;prompt;kommando;kommandorad;cmd; +Keywords[tr]=shell;prompt;command;commandline;cmd;kabuk;istem;komut;komutsatırı; +Keywords[uk]=shell;prompt;command;commandline;cmd; +Keywords[zh_CN]=shell;prompt;command;commandline;cmd;命令行;提示符; +Keywords[zh_TW]=shell;prompt;command;commandline;cmd;命令列; +Keywords=shell;prompt;command;commandline;cmd; +Exec=tilix +Terminal=false +Type=Application +StartupNotify=true +Categories=System;TerminalEmulator;X-GNOME-Utilities; +Icon=tilix +Actions=new-window;new-session;preferences; + +[Desktop Action new-window] +Name[ar]=نافذة جديدة +Name[bg]=Нов прозорец +Name[ca]=Finestra nova +Name[cs]=Nové okno +Name[de]=Neues Fenster +Name[el]=Νέο παράθυρο +Name[en_GB]=New Window +Name[eo]=Nova Fenestro +Name[es]=Ventana nueva +Name[eu]=Leiho berria +Name[fi]=Uusi ikkuna +Name[fr]=Nouvelle fenêtre +Name[gl]=Nova Xanela +Name[he]=חלון חדש +Name[hr]=Novi prozor +Name[hu]=Új ablak +Name[id]=Jendela Baru +Name[it]=Nuova finestra +Name[ja]=新しいウィンドウ +Name[ko]=새 창 +Name[nb_NO]=Nytt vindu +Name[nl]=Nieuw venster +Name[oc]=Fenèstra novèla +Name[pl]=Nowe okno +Name[pt_BR]=Nova janela +Name[pt_PT]=Nova janela +Name[ro]=Fereastră Nouă +Name[ru]=Новое окно +Name[sr]=Нови прозор +Name[sv]=Nytt fönster +Name[tr]=Yeni Pencere +Name[uk]=Створити вікно +Name[zh_CN]=新建窗口 +Name[zh_TW]=新建視窗 +Name=New Window +Exec=tilix --action=app-new-window + +[Desktop Action new-session] +Name[ar]=جلسة جديدة +Name[bg]=Нова сесия +Name[ca]=Sessió nova +Name[cs]=Nové sezení +Name[de]=Neue Sitzung +Name[el]=Νέα συνεδρία +Name[en_GB]=New Session +Name[eo]=Nova Seanco +Name[es]=Sesión nueva +Name[fi]=Uusi istunto +Name[fr]=Nouvelle session +Name[he]=הפעלה חדשה +Name[hr]=Nova sesija +Name[id]=Sesi Baru +Name[it]=Nuova sessione +Name[ja]=新しいセッション +Name[ko]=새 세션 +Name[nb_NO]=Ny økt +Name[nl]=Nieuwe sessie +Name[oc]=Session novèla +Name[pl]=Nowa sesja +Name[pt_BR]=Nova sessão +Name[pt_PT]=Nova sessão +Name[ro]=Nouă Sesiune +Name[ru]=Новый сеанс +Name[sr]=Нова сесија +Name[sv]=Ny session +Name[tr]=Yeni Oturum +Name[uk]=Створити сеанс +Name[zh_CN]=新建会话 +Name[zh_TW]=新建會話 +Name=New Session +Exec=tilix --action=app-new-session + +[Desktop Action preferences] +Name[ar]=التفضيلات +Name[bg]=Настройки +Name[ca]=Preferències +Name[cs]=Předvolby +Name[de]=Einstellungen +Name[en_GB]=Preferences +Name[eo]=Agordoj +Name[es]=Preferencias +Name[eu]=Ezarpenak +Name[fi]=Asetukset +Name[fr]=Préférences +Name[gl]=Preferencias +Name[he]=העדפות +Name[hr]=Postavke +Name[hu]=Beállítások +Name[id]=Preferensi +Name[it]=Preferenze +Name[ja]=設定 +Name[ko]=기본 설정 +Name[nb_NO]=Innstillinger +Name[nl]=Voorkeuren +Name[oc]=Preferéncias +Name[pl]=Preferencje +Name[pt_BR]=Preferências +Name[pt_PT]=Preferências +Name[ro]=Preferințe +Name[ru]=Параметры +Name[sr]=Поставке +Name[sv]=Inställningar +Name[tr]=Tercihler +Name[uk]=Параметри +Name[zh_CN]=首选项 +Name[zh_TW]=偏好 +Name=Preferences +Exec=tilix --preferences diff --git a/tilix/tilix.png b/tilix/tilix.png new file mode 100644 index 0000000..dde5952 Binary files /dev/null and b/tilix/tilix.png differ diff --git a/tilix/tilix_pre_step.sh b/tilix/tilix_pre_step.sh new file mode 100755 index 0000000..ad825a4 --- /dev/null +++ b/tilix/tilix_pre_step.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +yum install -y patchelf gvfs-devel libcanberra-gtk3 PackageKit-gtk3-module + +fichierIcon=/build/tilix.png +fichierDesktop=/build/tilix.desktop + +LDC_LIB=/opt/app-root/src/dlang/ldc-1.26.0/lib/ +export LD_LIBRARY_PATH=$LDC_LIB:$LD_LIBRARY_PATH + +AUTRES_OPTIONS="-l /usr/lib64/libgtk-3.so.0.2200.30 -l /usr/lib64/libcanberra-gtk3.so.0 -l /usr/lib64/gtk-3.0/modules/libpk-gtk-module.so -l /usr/lib64/gio/modules/libgvfsdbus.so -l /usr/lib64/gvfs/libgvfscommon.so -l /usr/lib64/libvte-2.91.so.0 -l /usr/lib64/libatk-bridge-2.0.so -l /usr/lib64/libgtk-3.so.0 -l /usr/lib64/libgtk-3.so -l $LDC_LIB/libphobos2-ldc-shared.so.96 -l $LDC_LIB/libdruntime-ldc-shared.so.96 -i $fichierIcon -d $fichierDesktop --plugin gtk" +