Skip to content

Commit 8a779ef

Browse files
committed
Script: add build appimage in fedora
1 parent 6daeaa2 commit 8a779ef

5 files changed

Lines changed: 83 additions & 31 deletions

File tree

.github/workflows/docker.yml

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ jobs:
5959
image: ubuntu
6060
lable: "25.04"
6161
os: ubuntu-24.04-arm
62+
- PACKAGE: appimage
63+
image: fedora
64+
lable: "43"
65+
os: ubuntu-24.04
66+
- PACKAGE: appimage
67+
image: fedora
68+
lable: "43"
69+
os: ubuntu-24.04-arm
6270

6371
- PACKAGE: rpm
6472
image: fedora
@@ -149,10 +157,10 @@ jobs:
149157
mv rabbitremotecontrol_*.deb rabbitremotecontrol_${{env.RabbitRemoteControl_VERSION}}_${docker_image}_`uname -m`.deb
150158
151159
- name: AppIagme update configure file
152-
if: ${{ matrix.variant.PACKAGE == 'appimage' }}
160+
if: ${{ matrix.variant.PACKAGE == 'appimage' && matrix.variant.image == 'ubuntu'}}
153161
#continue-on-error: true
154162
run: |
155-
# OpenGL
163+
#sudo ./Script/build_depend.sh --system_update --base
156164
sudo apt update -y -q
157165
sudo apt install -y -q libgl1-mesa-dev libglx-dev libglu1-mesa-dev libvulkan-dev mesa-common-dev
158166
sudo apt install -y -q libfuse-dev libfuse3-dev
@@ -181,6 +189,18 @@ jobs:
181189
popd
182190
popd
183191
192+
- name: AppIagme update configure file
193+
if: ${{ matrix.variant.PACKAGE == 'appimage' && matrix.variant.image == 'fedora'}}
194+
#continue-on-error: true
195+
run: |
196+
ARCH=`uname -m`
197+
pushd ${{env.BUILD_DIR}}/build_linux/install
198+
sudo mv -f RabbitRemoteControl_${ARCH}.AppImage RabbitRemoteControl_${{env.RabbitRemoteControl_VERSION}}_fedora_${ARCH}.AppImage
199+
popd
200+
pushd ${{env.BUILD_DIR}}/build_linux
201+
mv install RabbitRemoteControl_${{env.RabbitRemoteControl_VERSION}}_fedora_${ARCH}_Setup
202+
zip RabbitRemoteControl_${{env.RabbitRemoteControl_VERSION}}_fedora_${ARCH}_Setup.zip RabbitRemoteControl_${{env.RabbitRemoteControl_VERSION}}_fedora_${ARCH}_Setup/*
203+
184204
- name: Update artifact
185205
#if: ${{matrix.variant.PACKAGE != 'deb'}}
186206
uses: actions/upload-artifact@v4

Script/build_android.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@ ${Qt6_DIR}/bin/qt-cmake .. \
4949
-Dtigervnc_DIR=${DEPENDENT_INSTALL_DIR}/lib/cmake \
5050
-DQXmpp_DIR=${DEPENDENT_INSTALL_DIR}/lib/cmake/qxmpp \
5151
-DBUILD_FREERDP=ON
52-
cmake --build .
53-
cmake --install .
52+
cmake --build . --config ${BUILD_TYPE}
53+
cmake --install . --config ${BUILD_TYPE}
5454
cd $OLD_DIR

Script/build_appimage.sh

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ fi
158158

159159
pushd "${TOOLS_DIR}"
160160
if [ ! -f linuxdeploy-`uname -m`.AppImage ]; then
161-
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-20250213-2/linuxdeploy-`uname -m`.AppImage
161+
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-20251107-1/linuxdeploy-`uname -m`.AppImage
162162
chmod u+x linuxdeploy-`uname -m`.AppImage
163163
fi
164164
if [ ! -f linuxdeploy-plugin-qt-`uname -m`.AppImage ]; then
@@ -237,8 +237,17 @@ if [ -n "$QMAKE" ]; then
237237
fi
238238
fi
239239

240+
case "$DISTRO" in
241+
ubuntu|debian)
242+
DEPLOY_PARA=
243+
;;
244+
fedora)
245+
export NO_STRIP=true
246+
;;
247+
esac
248+
240249
# [linuxdeploy user guide](https://docs.appimage.org/packaging-guide/from-source/linuxdeploy-user-guide.html)
241-
${TOOLS_DIR}/linuxdeploy-`uname -m`.AppImage --appdir=AppDir \
250+
${TOOLS_DIR}/linuxdeploy-`uname -m`.AppImage --appdir=AppDir ${DEPLOY_PARA} \
242251
--plugin qt \
243252
--output appimage \
244253
--deploy-deps-only=${INSTALL_APP_DIR}/plugins

Script/build_depend.sh

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,16 @@ validate_parameters
501501
# Display configuration
502502
show_configuration
503503

504+
case "$DISTRO" in
505+
ubuntu|debian)
506+
LIB_PATH="lib"
507+
;;
508+
fedora)
509+
LIB_PATH="lib64"
510+
;;
511+
esac
512+
513+
504514
if [ $SYSTEM_UPDATE -eq 1 ]; then
505515
echo "System update ......"
506516
case "$PACKAGE_TOOL" in
@@ -566,7 +576,7 @@ if [ $BASE_LIBS -eq 1 ]; then
566576
package_install libavcodec-dev libavformat-dev libresample1-dev libswscale-dev
567577
package_install libx264-dev libx265-dev
568578
# Needed by QtMultimedia
569-
#package_install pipewire
579+
package_install pipewire
570580
# Needed by QtMultimedia
571581
#package_install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer*-dev
572582
# Needed by AppImage and FreeRDP
@@ -696,7 +706,7 @@ fi
696706
if [ $LIBSSH -eq 1 ]; then
697707
echo "Install libssh ......"
698708
pushd "$SOURCE_DIR"
699-
if [ ! -d ${INSTALL_DIR}/lib/cmake/libssh ]; then
709+
if [ ! -d ${INSTALL_DIR}/${LIB_PATH}/cmake/libssh ]; then
700710
git clone -b libssh-0.11.3 --depth=1 https://git.libssh.org/projects/libssh.git
701711
cmake -E make_directory $BUILD_DEPEND_DIR/libssh
702712
pushd $BUILD_DEPEND_DIR/libssh
@@ -732,7 +742,7 @@ if [ $FREERDP -eq 1 ]; then
732742
# See: https://github.com/FreeRDP/FreeRDP/discussions/11139
733743
#-DWITH_INTERNAL_MD4=ON
734744
cmake --build . --config Release --parallel $(nproc)
735-
cmake --build . --config Release --target install
745+
cmake --install . --config Release
736746
popd
737747
fi
738748
popd
@@ -741,7 +751,7 @@ fi
741751
if [ $TIGERVNC -eq 1 ]; then
742752
echo "Install tigervnc ......"
743753
pushd "$SOURCE_DIR"
744-
if [ ! -d ${INSTALL_DIR}/lib/cmake/tigervnc ]; then
754+
if [ ! -d ${INSTALL_DIR}/${LIB_PATH}/cmake/tigervnc ]; then
745755
git clone --depth=1 https://github.com/KangLin/tigervnc.git
746756
cmake -E make_directory $BUILD_DEPEND_DIR/tigervnc
747757
pushd $BUILD_DEPEND_DIR/tigervnc
@@ -751,7 +761,7 @@ if [ $TIGERVNC -eq 1 ]; then
751761
-DBUILD_TESTS=OFF -DBUILD_VIEWER=OFF -DENABLE_NLS=OFF \
752762
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
753763
cmake --build . --config Release --parallel $(nproc)
754-
cmake --build . --config Release --target install
764+
cmake --install . --config Release
755765
popd
756766
fi
757767
popd
@@ -760,7 +770,7 @@ fi
760770
if [ $PCAPPLUSPLUS -eq 1 ]; then
761771
echo "Install PcapPlusPlus ......"
762772
pushd "$SOURCE_DIR"
763-
if [ ! -d ${INSTALL_DIR}/lib/cmake/pcapplusplus ]; then
773+
if [ ! -d ${INSTALL_DIR}/${LIB_PATH}/cmake/pcapplusplus ]; then
764774
git clone -b v25.05 --depth=1 https://github.com/seladb/PcapPlusPlus.git
765775
cmake -E make_directory $BUILD_DEPEND_DIR/PcapPlusPlus
766776
pushd $BUILD_DEPEND_DIR/PcapPlusPlus
@@ -771,7 +781,7 @@ if [ $PCAPPLUSPLUS -eq 1 ]; then
771781
-DPCAPPP_BUILD_TESTS=OFF \
772782
-DPCAPPP_BUILD_TUTORIALS=OFF
773783
cmake --build . --config Release --parallel $(nproc)
774-
cmake --build . --config Release --target install
784+
cmake --install . --config Release
775785
popd
776786
fi
777787
popd
@@ -780,7 +790,7 @@ fi
780790
if [ $libdatachannel -eq 1 ]; then
781791
echo "Install libdatachannel ......"
782792
pushd "$SOURCE_DIR"
783-
if [ ! -d ${INSTALL_DIR}/lib/cmake/LibDataChannel ]; then
793+
if [ ! -d ${INSTALL_DIR}/${LIB_PATH}/cmake/LibDataChannel ]; then
784794
git clone -b v0.17.8 --depth=1 https://github.com/paullouisageneau/libdatachannel.git
785795
cd libdatachannel
786796
git submodule update --init --recursive
@@ -790,7 +800,7 @@ if [ $libdatachannel -eq 1 ]; then
790800
-DCMAKE_VERBOSE_MAKEFILE=${BUILD_VERBOSE} \
791801
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}
792802
cmake --build . --config Release --parallel $(nproc)
793-
cmake --build . --config Release --target install
803+
cmake --install . --config Release
794804
popd
795805
fi
796806
popd
@@ -799,7 +809,7 @@ fi
799809
if [ $QtService -eq 1 ]; then
800810
echo "Install QtService ......"
801811
pushd "$SOURCE_DIR"
802-
if [ ! -d ${INSTALL_DIR}/lib/cmake/QtService ]; then
812+
if [ ! -d ${INSTALL_DIR}/${LIB_PATH}/cmake/QtService ]; then
803813
git clone --depth=1 https://github.com/KangLin/qt-solutions.git
804814
cd qt-solutions/qtservice
805815
git submodule update --init --recursive
@@ -809,7 +819,7 @@ if [ $QtService -eq 1 ]; then
809819
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
810820
-DCMAKE_VERBOSE_MAKEFILE=${BUILD_VERBOSE}
811821
cmake --build . --config Release --parallel $(nproc)
812-
cmake --build . --config Release --target install
822+
cmake --install . --config Release
813823
popd
814824
fi
815825
popd
@@ -838,10 +848,10 @@ if [ $QTERMWIDGET -eq 1 ]; then
838848
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
839849
-DCMAKE_VERBOSE_MAKEFILE=${BUILD_VERBOSE}
840850
cmake --build . --config Release --parallel $(nproc)
841-
cmake --build . --config Release --target install
851+
cmake --install . --config Release
842852
popd
843853
fi
844-
if [ ! -d ${INSTALL_DIR}/lib/cmake/qtermwidget6 ]; then
854+
if [ ! -d ${INSTALL_DIR}/${LIB_PATH}/cmake/qtermwidget6 ]; then
845855
pushd "$SOURCE_DIR"
846856
if [ ! -d qtermwidget ]; then
847857
git clone --depth=1 https://github.com/KangLin/qtermwidget.git
@@ -854,7 +864,7 @@ if [ $QTERMWIDGET -eq 1 ]; then
854864
-DCMAKE_VERBOSE_MAKEFILE=${BUILD_VERBOSE} \
855865
-Dlxqt2-build-tools_DIR=${INSTALL_DIR}/share/cmake/lxqt2-build-tools
856866
cmake --build . --config Release --parallel $(nproc)
857-
cmake --build . --config Release --target install
867+
cmake --install . --config Release
858868
popd
859869
fi
860870
popd
@@ -863,7 +873,7 @@ fi
863873
if [ $QTKEYCHAIN -eq 1 ]; then
864874
echo "Install QtKeyChain ......"
865875
pushd "$SOURCE_DIR"
866-
if [ ! -d ${INSTALL_DIR}/lib/cmake/Qt6Keychain ]; then
876+
if [ ! -d ${INSTALL_DIR}/${LIB_PATH}/cmake/Qt6Keychain ]; then
867877
git clone -b 0.15.0 --depth=1 https://github.com/frankosterfeld/qtkeychain.git
868878
cmake -E make_directory $BUILD_DEPEND_DIR/qtkeychain
869879
pushd $BUILD_DEPEND_DIR/qtkeychain
@@ -872,7 +882,7 @@ if [ $QTKEYCHAIN -eq 1 ]; then
872882
-DCMAKE_VERBOSE_MAKEFILE=${BUILD_VERBOSE} \
873883
-DBUILD_WITH_QT6:BOOL=ON
874884
cmake --build . --config Release --parallel $(nproc)
875-
cmake --build . --config Release --target install
885+
cmake --install . --config Release
876886
popd
877887
fi
878888
popd
@@ -881,7 +891,7 @@ fi
881891
if [ $QFtpServer -eq 1 ]; then
882892
echo "Install QFtpServer ......"
883893
pushd "$SOURCE_DIR"
884-
if [ ! -d ${INSTALL_DIR}/lib/cmake/QFtpServerLib/QFtpServerLib ]; then
894+
if [ ! -d ${INSTALL_DIR}/${LIB_PATH}/cmake/QFtpServerLib/QFtpServerLib ]; then
885895
git clone --depth=1 https://github.com/KangLin/QFtpServer.git
886896
cmake -E make_directory $BUILD_DEPEND_DIR/QFtpServer
887897
pushd $BUILD_DEPEND_DIR/QFtpServer
@@ -890,7 +900,7 @@ if [ $QFtpServer -eq 1 ]; then
890900
-DCMAKE_VERBOSE_MAKEFILE=${BUILD_VERBOSE} \
891901
-DWITH_APP=OFF
892902
cmake --build . --config Release --parallel $(nproc)
893-
cmake --build . --config Release --target install
903+
cmake --install . --config Release
894904
popd
895905
fi
896906
popd

Script/build_linux.sh

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -367,10 +367,20 @@ if [ $DOCKER -eq 1 ]; then
367367
cp \${SOURCE_CODE_DIR}/rabbitremotecontrol*.deb /home/build/
368368
"
369369
fi
370+
370371
if [ $APPIMAGE -eq 1 ]; then
371-
if [[ "$DOCKER_IMAGE" =~ ^(ubuntu|debian) ]]; then
372+
#if [[ "$DOCKER_IMAGE" =~ ^(ubuntu|debian) ]]; then
373+
# DOCKER_PARA="-e DEBIAN_FRONTEND=noninteractive -e TZ=UTC"
374+
#fi
375+
case "$DISTRO" in
376+
ubuntu|debian)
372377
DOCKER_PARA="-e DEBIAN_FRONTEND=noninteractive -e TZ=UTC"
373-
fi
378+
;;
379+
fedora)
380+
# Install getopt
381+
dnf install -y util-linux
382+
;;
383+
esac
374384
docker run --privileged ${DOCKER_PARA} \
375385
-e CI=${CI} \
376386
--volume ${REPO_ROOT}:/home/RabbitRemoteControl \
@@ -398,6 +408,7 @@ if [ $DOCKER -eq 1 ]; then
398408
popd
399409
"
400410
fi
411+
401412
if [ $RPM -eq 1 ]; then
402413
docker run --volume ${BUILD_LINUX_DIR}:/home/build \
403414
--volume ${INSTALL_DIR}:/home/install \
@@ -459,22 +470,24 @@ if [ $APPIMAGE -eq 1 ]; then
459470
# export QMAKE=$QT_ROOT/bin/qmake
460471
# export QT_PLUGIN_PATH=$QT_ROOT/plugins
461472
# export PATH=$QT_ROOT/libexec:$PATH
462-
# export PKG_CONFIG_PATH=$QT_ROOT/lib/pkgconfig:$PKG_CONFIG_PATH
463-
# export LD_LIBRARY_PATH=$QT_ROOT/lib:$LD_LIBRARY_PATH
464473
# export CMAKE_PREFIX_PATH=$QT_ROOT:${INSTALL_DIR}:${CMAKE_PREFIX_PATH}
465474
# ;;
466475
# esac
476+
LIB_PATH="lib"
467477
depend_para="$depend_para --freerdp --libssh --qtermwidget --qtkeychain --qftpserver"
468478
;;
469479
fedora)
480+
LIB_PATH="lib64"
481+
depend_para="$depend_para --package-tool=dnf --qftpserver "
482+
#dnf builddep -y ${REPO_ROOT}/Package/rpm/rabbitremotecontrol.spec
470483
;;
471484
*)
472485
esac
473486

474487
export RabbitCommon_ROOT=${SOURCE_DIR}/RabbitCommon
475488
export BUILD_FREERDP=ON
476-
export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH
477-
export LD_LIBRARY_PATH=${INSTALL_DIR}/lib:$LD_LIBRARY_PATH
489+
export PKG_CONFIG_PATH=${INSTALL_DIR}/${LIB_PATH}/pkgconfig:$PKG_CONFIG_PATH
490+
export LD_LIBRARY_PATH=${INSTALL_DIR}/${LIB_PATH}:$LD_LIBRARY_PATH
478491
export CMAKE_PREFIX_PATH=${INSTALL_DIR}:${CMAKE_PREFIX_PATH}
479492

480493
./build_depend.sh --system_update --base --default \
@@ -496,7 +509,7 @@ fi
496509

497510
if [ $RPM -eq 1 ]; then
498511
echo "build rpm package ......"
499-
dnf builddep -y ${REPO_ROOT}/Package/rpm/rabbitremotecontrol.spec
512+
#dnf builddep -y ${REPO_ROOT}/Package/rpm/rabbitremotecontrol.spec
500513
./build_depend.sh --system_update --base --default --package-tool=dnf \
501514
--rabbitcommon --tigervnc --pcapplusplus --qftpserver \
502515
--install=${INSTALL_DIR} \

0 commit comments

Comments
 (0)