Skip to content

Commit a75c3e2

Browse files
committed
RPM: modify Package/rpm/serialportassistant.spec
1 parent c887b6e commit a75c3e2

7 files changed

Lines changed: 92 additions & 92 deletions

File tree

Package/Flatpak/io.github.KangLin.SerialPortAssistant.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"-DBUILD_TESTING=OFF"
2727
],
2828
"cleanup": [
29-
"/bin"
29+
"/bin",
30+
"/share/man"
3031
]
3132
},
3233
{
@@ -42,6 +43,12 @@
4243
"builddir": true,
4344
"config-opts": [
4445
"-DCMAKE_BUILD_TYPE=Release"
46+
],
47+
"cleanup": [
48+
"/bin",
49+
"/etc",
50+
"/share/applications",
51+
"/share/doc"
4552
]
4653
},
4754
{

Package/rpm/serialportassistant.spec

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ BuildRequires: openssl-devel
2626

2727
Requires: openssl cmark
2828

29-
Requires: qt6-qtbase qt6-qtmultimedia qt6-qt5compat qt6-qtmultimedia qt6-qtscxml
29+
Requires: qt6-qtbase qt6-qtmultimedia qt6-qt5compat qt6-qtscxml
3030
Requires: qt6-qtserialport qt6-qtsvg
3131

3232
%description
@@ -76,9 +76,28 @@ cmake --install $RPM_BUILD_DIR --config Release \
7676

7777
# 安装后需要做的任务 如:自动启动的任务
7878
%post
79+
INSTALL_ROOT=/opt/SerialPortAssistant
80+
chmod -R a+w $INSTALL_ROOT/etc
81+
82+
if [ ! -f /usr/share/applications/io.github.KangLin.SerialPortAssistant.desktop ]; then
83+
ln -s ${INSTALL_ROOT}/share/applications/io.github.KangLin.SerialPortAssistant.desktop /usr/share/applications/io.github.KangLin.SerialPortAssistant.desktop
84+
fi
85+
if [ ! -f /usr/share/pixmaps/io.github.KangLin.SerialPortAssistant.png ]; then
86+
if [ ! -d /usr/share/pixmaps ]; then
87+
mkdir -p /usr/share/pixmaps
88+
fi
89+
ln -s ${INSTALL_ROOT}/share/icons/hicolor/128x128/apps/io.github.KangLin.SerialPortAssistant.png /usr/share/pixmaps/io.github.KangLin.SerialPortAssistant.png
90+
fi
91+
if [ ! -f /usr/bin/serialportassistant ]; then
92+
ln -s $INSTALL_ROOT/bin/SerialPortAssistant /usr/bin/serialportassistant
93+
fi
7994

8095
# 卸载前需要做的任务 如:停止任务
8196
%preun
97+
INSTALL_ROOT=/opt/SerialPortAssistant
98+
rm -fr /usr/share/applications/io.github.KangLin.SerialPortAssistant.desktop
99+
rm -fr /usr/share/pixmaps/io.github.KangLin.SerialPortAssistant.png
100+
rm -f /usr/bin/serialportassistant
82101

83102
# 卸载后需要做的任务 如:删除用户,删除/备份业务数据
84103
%postun

Script/build_depend.sh

Lines changed: 50 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66
set -e
77
#set -v
88

9-
APT=
9+
PACKAGE_TOOL=apt
10+
PACKAGE=
1011
APT_UPDATE=0
1112
BASE_LIBS=0
1213
DEFAULT_LIBS=0
1314
QT=0
1415
RabbitCommon=0
1516

1617
usage_long() {
17-
echo "$0 [--install=<install directory>] [--source=<source directory>] [--tools=<tools directory>] [--build=<build directory>] [--apt=<'lib1 lib2 ...'>] [--apt_update=[0|1]] [--base[=0|1]] [--default[=0|1]] [--qt[=0|1]] [--rabbitcommon[=0|1]]"
18+
echo "$0 [--install=<install directory>] [--source=<source directory>] [--tools=<tools directory>] [--build=<build directory>] [--package=<'package1 package2 ...'>] [--package-tool=<apt|dnf>] [--apt_update=[0|1]] [--base[=0|1]] [--default[=0|1]] [--qt[=0|1]] [--rabbitcommon[=0|1]]"
1819
echo "Directory:"
1920
echo " --install: Set install directory"
2021
echo " --source: Set source directory"
@@ -24,27 +25,12 @@ usage_long() {
2425
echo " --base: Install the base libraries with apt"
2526
echo " --default: Install the default dependency libraries that comes with the system"
2627
echo " --apt_update: Update system"
27-
echo " --apt: Install package with apt"
28+
echo " --package-tool: Package install tool, apk or dnf"
29+
echo " --package: Install package"
2830
echo " --qt: Install QT"
2931
echo " --rabbitcommon: Install RabbitCommon"
3032
}
3133

32-
usage() {
33-
echo "$0 [-i <install directory>] [-s <source directory>] [-t <tools directory>] [-b <build directory>] [-a <'lib1 lib2 ...'>] [apt_update] [base] [default] [qt] [rabbitcommon]"
34-
echo "Directory:"
35-
echo " -i: Set install directory"
36-
echo " -s: Set source directory"
37-
echo " -t: Set tools directory"
38-
echo " -b: set build directory"
39-
echo "Depend:"
40-
echo " base: Install then base libraries with apt"
41-
echo " default: Install the default dependency libraries that comes with the system"
42-
echo " apt_update: Update system"
43-
echo " -a: Install package with apt"
44-
echo " qt: Install QT"
45-
echo " rabbitcommon: Install RabbitCommon"
46-
}
47-
4834
# [如何使用getopt和getopts命令解析命令行选项和参数](https://zhuanlan.zhihu.com/p/673908518)
4935
# [【Linux】Shell命令 getopts/getopt用法详解](https://blog.csdn.net/arpospf/article/details/103381621)
5036
if command -V getopt >/dev/null; then
@@ -55,7 +41,7 @@ if command -V getopt >/dev/null; then
5541
# 后面没有冒号表示没有参数。后跟有一个冒号表示有参数。跟两个冒号表示有可选参数。
5642
# -l 或 --long 选项后面是可接受的长选项,用逗号分开,冒号的意义同短选项。
5743
# -n 选项后接选项解析错误时提示的脚本名字
58-
OPTS=help,install:,source:,tools:,build:,apt:,apt_update::,base::,default::,qt::,rabbitcommon::
44+
OPTS=help,install:,source:,tools:,build:,package:,package-tool:,apt_update::,base::,default::,qt::,rabbitcommon::
5945
ARGS=`getopt -o h -l $OPTS -n $(basename $0) -- "$@"`
6046
if [ $? != 0 ]; then
6147
echo "exec getopt fail: $?"
@@ -87,8 +73,12 @@ if command -V getopt >/dev/null; then
8773
BUILD_DIR=$2
8874
shift 2
8975
;;
90-
--apt)
91-
APT=$2
76+
--package)
77+
PACKAGE=$2
78+
shift 2
79+
;;
80+
--package-tool)
81+
PACKAGE_TOOL=$2
9282
shift 2
9383
;;
9484
--apt_update)
@@ -150,30 +140,6 @@ if command -V getopt >/dev/null; then
150140
;;
151141
esac
152142
done
153-
else
154-
echo "getopt is not exits"
155-
if [ $# -eq 0 ]; then
156-
usage
157-
else
158-
for i in "$@"; do
159-
case "$i" in
160-
"apt_update") APT_UPDATE=1;;
161-
"base") BASE_LIBS=1;;
162-
"default") DEFAULT_LIBS=1;;
163-
"qt") QT=1;;
164-
"rabbitcommon") RabbitCommon=1;;
165-
esac
166-
done
167-
while getopts :i:s:t: opt; do
168-
case $opt in
169-
i) INSTALL_DIR=$OPTARG ;;
170-
s) SOURCE_DIR=$OPTARG ;;
171-
t) TOOLS_DIR=$OPTARG ;;
172-
b) BUILD_DIR=$OPTARG ;;
173-
a) APT=$OPTARG ;;
174-
esac
175-
done
176-
fi
177143
fi
178144

179145
# store repo root as variable
@@ -220,34 +186,49 @@ if [ $APT_UPDATE -eq 1 ]; then
220186
apt-get upgrade -y
221187
fi
222188

223-
if [ -n "$APT" ]; then
224-
apt install -y -q $APT
189+
if [ -n "$PACKAGE" ]; then
190+
${PACKAGE_TOOL} install -y -q $PACKAGE
225191
fi
226192

227193
if [ $BASE_LIBS -eq 1 ]; then
228194
echo "Install base libraries ......"
229-
apt install -y -q build-essential \
230-
git cmake gcc g++ debhelper fakeroot graphviz gettext \
231-
xserver-xorg-input-mouse xserver-xorg-input-kbd \
232-
libglu1-mesa-dev libpulse-mainloop-glib0
233-
if [ -z "$SerialPortAssistant_VERSION" ]; then
234-
apt install -y -q xvfb xpra
195+
if [ "$PACKAGE_TOOL" = "apt" ]; then
196+
apt install -y -q build-essential \
197+
git cmake gcc g++ debhelper fakeroot graphviz gettext \
198+
xserver-xorg-input-mouse xserver-xorg-input-kbd \
199+
libglu1-mesa-dev libpulse-mainloop-glib0
200+
if [ -z "$SerialPortAssistant_VERSION" ]; then
201+
apt install -y -q xvfb xpra
202+
fi
203+
# Base dependency
204+
apt install -y -q libssl-dev libcrypt-dev libicu-dev zlib1g-dev
205+
# RabbitCommon dependency
206+
apt install -y -q libcmark-dev cmark
207+
# AppImage
208+
apt install -y -q libfuse-dev libfuse3-dev
209+
fi
210+
211+
if [ "$PACKAGE_TOOL" = "dnf" ]; then
212+
dnf install -y make git rpm-build rpmdevtools gcc-c++ util-linux \
213+
automake autoconf libtool gettext gettext-autopoint \
214+
cmake desktop-file-utils appstream appstream-util curl wget
235215
fi
236-
# Base dependency
237-
apt install -y -q libssl-dev libcrypt-dev libicu-dev zlib1g-dev
238-
# RabbitCommon dependency
239-
apt install -y -q libcmark-dev cmark
240-
# AppImage
241-
apt install -y -q libfuse-dev libfuse3-dev
242216
fi
243217

244218
if [ $DEFAULT_LIBS -eq 1 ]; then
245219
echo "Install default dependency libraries ......"
246-
# Qt6
247-
apt-get install -y -q qmake6 qt6-tools-dev qt6-tools-dev-tools \
248-
qt6-base-dev qt6-base-dev-tools qt6-qpa-plugins \
249-
libqt6svg6-dev qt6-l10n-tools qt6-translations-l10n \
250-
qt6-scxml-dev qt6-multimedia-dev libqt6serialport6-dev
220+
if [ "$PACKAGE_TOOL" = "apt" ]; then
221+
# Qt6
222+
apt-get install -y -q qmake6 qt6-tools-dev qt6-tools-dev-tools \
223+
qt6-base-dev qt6-base-dev-tools qt6-qpa-plugins \
224+
libqt6svg6-dev qt6-l10n-tools qt6-translations-l10n \
225+
qt6-scxml-dev qt6-multimedia-dev libqt6serialport6-dev
226+
fi
227+
if [ "$PACKAGE_TOOL" = "dnf" ]; then
228+
dnf install -y qt6-qttools-devel qt6-qtbase-devel qt6-qtmultimedia-devel \
229+
qt6-qt5compat-devel qt6-qtmultimedia-devel qt6-qtscxml-devel \
230+
qt6-qtserialport-devel qt6-qtsvg-devel
231+
fi
251232
fi
252233

253234
if [ $QT -eq 1 ]; then
@@ -272,6 +253,10 @@ if [ $RabbitCommon -eq 1 ]; then
272253
pushd "$SOURCE_DIR"
273254
if [ ! -d RabbitCommon ]; then
274255
git clone https://github.com/KangLin/RabbitCommon.git
256+
else
257+
cd RabbitCommon
258+
git pull
259+
cd ..
275260
fi
276261
popd
277262
fi

Script/build_rpm_package.sh

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,21 +120,15 @@ echo "INSTALL_DIR: $INSTALL_DIR"
120120

121121
pushd $REPO_ROOT
122122

123-
# Install depend
124-
dnf install -y make git rpm-build rpmdevtools
125-
dnf builddep Package/rpm/serialportassistant.spec
126-
127-
pushd "$SOURCE_DIR"
128-
if [ ! -d RabbitCommon ]; then
129-
git clone https://github.com/KangLin/RabbitCommon.git
130-
fi
131-
popd
132-
133123
if [ ! -f ~/rpmbuild/SOURCES/SerialPortAssistant.tar.gz ]; then
134124
mkdir -p ~/rpmbuild/SOURCES/
135-
git archive --format=tar.gz --prefix=SerialPortAssistant/ -o ~/rpmbuild/SOURCES/SerialPortAssistant.tar.gz HEAD
125+
if [ -d $REPO_ROOT/.git ]; then
126+
git archive --format=tar.gz --prefix=SerialPortAssistant/ -o ~/rpmbuild/SOURCES/SerialPortAssistant.tar.gz HEAD
127+
fi
136128
fi
129+
137130
export RabbitCommon_ROOT=${SOURCE_DIR}/RabbitCommon
131+
#dnf builddep -y ${REPO_ROOT}/Package/rpm/serialportassistant.spec
138132
rpmbuild --nodebuginfo -bb Package/rpm/serialportassistant.spec
139133

140134
popd

Script/test_linux.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ if [ ! -f /usr/share/applications/io.github.KangLin.SerialPortAssistant.desktop
2424
EXIT_CODE=$[EXIT_CODE+1]
2525
fi
2626

27-
if [ ! -f /usr/share/icons/hicolor/128x128/apps/io.github.KangLin.SerialPortAssistant.png ]; then
28-
echo "There are not /usr/share/icons/hicolor/128x128/apps/io.github.KangLin.SerialPortAssistant.png"
27+
if [ ! -f /usr/share/pixmaps/io.github.KangLin.SerialPortAssistant.png ]; then
28+
echo "There are not /usr/share/pixmaps/io.github.KangLin.SerialPortAssistant.png"
2929
EXIT_CODE=$[EXIT_CODE+1]
3030
fi
3131

debian/postinst

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,7 @@ INSTALL_ROOT=/opt/SerialPortAssistant
2121

2222
function_config()
2323
{
24-
mkdir -p $INSTALL_ROOT/log
25-
chmod 777 $INSTALL_ROOT/log
2624
chmod -R a+w $INSTALL_ROOT/etc
27-
if [ ! -d $INSTALL_ROOT/bin/log ]; then
28-
ln -s $INSTALL_ROOT/log $INSTALL_ROOT/bin/log
29-
fi
3025

3126
if [ ! -f /usr/share/applications/io.github.KangLin.SerialPortAssistant.desktop ]; then
3227
ln -s ${INSTALL_ROOT}/share/applications/io.github.KangLin.SerialPortAssistant.desktop /usr/share/applications/io.github.KangLin.SerialPortAssistant.desktop
@@ -58,9 +53,9 @@ case "$1" in
5853
;;
5954

6055
abort-upgrade|abort-remove|abort-deconfigure)
61-
rm -fr $INSTALL_ROOT/log $INSTALL_ROOT/bin/log
6256
rm -fr /usr/share/applications/io.github.KangLin.SerialPortAssistant.desktop
6357
rm -fr /usr/share/pixmaps/io.github.KangLin.SerialPortAssistant.png
58+
rm -f /usr/bin/serialportassistant
6459
#rm -fr /etc/ld.so.conf.d/SerialPortAssistant.conf
6560
;;
6661

share/applications/io.github.KangLin.SerialPortAssistant.desktop.in

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ Categories=Utility;Development;Debugger
1919
MimeType=application/octet-stream;text/plain;
2020

2121
Name=Serial Port Assistant
22-
GenericName=Serial Port Assistant
23-
Comment=Serial Port Assistant
22+
GenericName=A cross-platform serial communication tool
23+
Comment=A cross-platform serial communication tool
2424

2525
Name[zh_CN]=串口助手
26-
GenericName[zh_CN]=串口助手
27-
Comment[zh_CN]=串口助手
26+
GenericName[zh_CN]=跨平台串口通信工具
27+
Comment[zh_CN]=跨平台串口通信工具
2828

2929
Name[zh_TW]=串口助手
30-
GenericName[zh_TW]=串口助手
31-
Comment[zh_TW]=串口助手
30+
GenericName[zh_TW]=跨平台串口通訊工具
31+
Comment[zh_TW]=跨平台串口通訊工具

0 commit comments

Comments
 (0)