This commit is contained in:
2023-11-22 11:33:20 +08:00
parent e77132f5a7
commit 47447c7787
4 changed files with 13 additions and 0 deletions

40
打包用例/postinst Normal file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
PACK_NAME="" #软件包名
BOTTLE_NAME="" #容器名
ACTIVEX_NAME=""
MAKE_AUTOSTART="" #若需要开机自启则填写1
make_autostart()
{
for username in $(ls /home)
do
echo /home/$username
if [ -d "/home/$username/.config/autostart" ]
then
cp /opt/apps/$PACK_NAME/entries/applications/$PACK_NAME.desktop /home/$username/.config/autostart/
sed -i "s#%u#\"autostart\"#" /home/$username/.config/autostart/$PACK_NAME.desktop
fi
done
}
if [ -n "$MAKE_AUTOSTART" ]; then
make_autostart
fi
if [ -n "$ACTIVEX_NAME" ]; then
if [ ! -d "/usr/lib/mozilla/plugins" ];then
mkdir -p /usr/lib/mozilla/plugins
fi
cp /usr/local/share/pipelight/libpipelight.so /usr/lib/mozilla/plugins/libpipelight-$ACTIVEX_NAME.so
fi
# Make sure the script returns 0
true

58
打包用例/postrm Normal file
View File

@@ -0,0 +1,58 @@
#!/bin/bash
if [ "$1" = "remove" ] || [ "$1" = "purge" ];then
echo "清理卸载残留"
BOTTLE_NAME="" #在引号中填写容器名
PACK_NAME="" #在引号中填写软件包名
ACTIVEX_NAME="" #activex相关若未使用可不设置
MAKE_AUTOSTART="" #如果先前设置了开机自启则在此处填写1
### 以下为功能段,若只用于打包则以下内容可不看,只填写上方即可
make_autostart()
{
for username in $(ls /home)
do
echo /home/$username
if [ -d "/home/$username/.config/autostart" ]
then
rm /home/$username/.config/autostart/$PACK_NAME.desktop
fi
done
}
if [ -n "$MAKE_AUTOSTART" ]; then
make_autostart
fi
if [ -n "$ACTIVEX_NAME" ]; then
rm /usr/lib/mozilla/plugins/libpipelight-$ACTIVEX_NAME.so
fi
if [ -z $BOTTLE_NAME ];then
echo "W: 没有指定容器,跳过清理容器。请手动前往 ~/.deepinwine/ 下删除"
exit
fi
if [ -e /opt/deepinwine/tools/spark_kill.sh ];then
/opt/deepinwine/tools/spark_kill.sh $BOTTLE_NAME
###这里注意如果没写BOTTLE_NAME,会把QQ杀了
fi
for username in $(ls /home)
do
echo /home/$username
if [ -d /home/$username/.deepinwine/$BOTTLE_NAME ]
then
rm -rf /home/$username/.deepinwine/$BOTTLE_NAME
fi
done
else
echo "非卸载,跳过清理"
fi

View File

@@ -0,0 +1,13 @@
function Remove_Bottle_Before_Update(){
chmod -R +w $HOME/.deepinwine/$BOTTLENAME
rm -rf $HOME/.deepinwine/$BOTTLENAME
}
function CallPreUpdate(){
echo "$HOME/.deepinwine/$BOTTLENAME is going to be deleted before Update"
Remove_Bottle_Before_Update
}

116
打包用例/run.sh Executable file
View File

@@ -0,0 +1,116 @@
#!/bin/sh
# Copyright (C) 2016 Deepin, Inc.
#
# Author: Li LongYu <lilongyu@linuxdeepin.com>
# Peng Hao <penghao@linuxdeepin.com>
#
#
# Copyright (C) 2022 The Spark Project
#
#
# Modifier shenmo <shenmo@spark-app.store>
#
#
#
#######################函数段。下文调用的额外功能会在此处声明
Get_Dist_Name()
{
if grep -Eqii "Deepin" /etc/issue || grep -Eq "Deepin" /etc/*-release; then
DISTRO='Deepin'
elif grep -Eqi "UnionTech" /etc/issue || grep -Eq "UnionTech" /etc/*-release; then
DISTRO='UniontechOS'
elif grep -Eqi "UOS" /etc/issue || grep -Eq "UOS" /etc/*-release; then
DISTRO='UniontechOS'
else
DISTRO='OtherOS'
fi
}
####获得发行版名称
#########################预设值段
version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }
####用于比较版本?未实装
BOTTLENAME="容器名"
APPVER="版本号"
EXEC_PATH="启动路径"
##### 软件在wine中的启动路径
START_SHELL_PATH="/opt/deepinwine/tools/spark_run_v4.sh"
ENABLE_DOT_NET=""
####若使用spark-wine时需要用到.net则请把ENABLE_DOT_NET设为true同时在依赖中写spark-wine7-mono
export MIME_TYPE=""
export DEB_PACKAGE_NAME="包名"
####这里写包名才能在启动的时候正确找到files.7z,似乎也和杀残留进程有关
export APPRUN_CMD="deepin-wine6-stable"
#####wine启动指令建议
#EXPORT_ENVS="wine的动态链接库路径"
##例如我的wine应用是使用的dwine6的32位容器那么我要填LD_LIBRARY_PATH=$LD_LIBRARY;/opt/deepin-wine6-stable/lib
## 如果用不到就不填,不要删除前面的注释用的#
export SPECIFY_SHELL_DIR=`dirname $START_SHELL_PATH`
ARCHIVE_FILE_DIR="/opt/apps/$DEB_PACKAGE_NAME/files"
export WINEDLLPATH=/opt/$APPRUN_CMD/lib:/opt/$APPRUN_CMD/lib64
export WINEPREDLL="$ARCHIVE_FILE_DIR/dlls"
DISABLE_ATTACH_FILE_DIALOG=""
##默认为空。若为1则不使用系统自带的文件选择而是使用wine的
##对于deepin/UOS大部分的应用都不需要使用wine的如果有需求比如wine应用选择的限定种类文件系统的文管不支持
##请填1。
##注意因为非DDE的环境不确定所以默认会在非Deepin/UOS发行版上禁用这个功能。如果你确认在适配的发行版上可以正常启动请注释或者删除下面这段
##############<<<<<<<<<禁用文件选择工具开始
Get_Dist_Name
#此功能实现参见开头函数段
if [ "$DISTRO" != "Deepin" ] && [ "$DISTRO" != "UniontechOS" ];then
DISABLE_ATTACH_FILE_DIALOG="1"
echo "非deepin/UOS默认关闭系统自带的文件选择工具使用Wine的"
echo "如果你想改变这个行为,请到/opt/apps/$DEB_PACKAGE_NAME/files/$0处修改"
echo "To打包者如果你要打开自带请注意在适配的发行版上进行测试"
echo "To用户打包者没有打开这个功能这证明启用这个功能可能造成运行问题。如果你要修改这个行为请确保你有一定的动手能力"
fi
##############>>>>>>>>>禁用文件选择工具结束
##############<<<<<<<<<屏蔽mono和gecko安装器开始
##默认屏蔽mono和gecko安装器
if [ "$APPRUN_CMD" = "spark-wine7-devel" ] || [ "$APPRUN_CMD" = "spark-wine" ]|| [ "$APPRUN_CMD" = "spark-wine8" ] && [ -z "$ENABLE_DOT_NET" ];then
export WINEDLLOVERRIDES="mscoree=d,mshtml=d"
export WINEDLLOVERRIDES="control.exe=d"
#### "为了降低打包体积默认关闭gecko和momo如有需要注释此行仅对spark-wine7-devel有效"
fi
##############>>>>>>>>>屏蔽mono和gecko安装器结束
#########################执行段
if [ -z "$DISABLE_ATTACH_FILE_DIALOG" ];then
export ATTACH_FILE_DIALOG=1
fi
if [ -n "$EXPORT_ENVS" ];then
export $EXPORT_ENVS
fi
if [ -n "$EXEC_PATH" ];then
if [ -z "${EXEC_PATH##*.lnk*}" ];then
$START_SHELL_PATH $BOTTLENAME $APPVER "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
else
$START_SHELL_PATH $BOTTLENAME $APPVER "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
fi
else
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
fi