你们要的“图形化打包工具”
Tofloor
poster avatar
wtz
deepin
2018-02-04 02:56
Author
本帖最后由 wtz 于 2018-10-13 21:03 编辑

抽空写了一个flatpak-builder和flatpak的外壳,看看你们需要不。如
欢迎在github上开issue~

Github: https://github.com/zwpwjwtz/FlatpakBuilder-qt
编译好的可执行文件(Deepin 15.4以上):FlatpakBuilder-qt.zip


注意事项

1、请先安装如下依赖:
  1. sudo apt install flatpak-builder
  2. sudo apt install  deepin-fprt-com.deepin.runtime-15.5 deepin-fprt-com.deepin.sdk-15.5
Copy the Code

2、不要在tmpfs上(比如 /tmp)执行程序!请把程序复制到其他地方(比如”~/“下面),然后再执行,不然会因为无法设置xattr而报错……被这个神坑坑了一晚上有木有……
3、build目录不要设为 /tmp!理由同上。
4、目前只支持使用git qmake管理的项目,而且只能编译一个模块。后期会加入更多选项。
5、请确保你的Qt项目文件(XXX.pro)里面有如下行:
  1. target.path = ${PREFIX}/bin/
  2. INSTALLS += target
Copy the Code
不然无法编译安装。

暂时就这样~

============
2018-03-11更新:
1、支持多模块编译;
2、支持Git、压缩文件、patch文件等多种类型的源代码;
3、支持编译Dtk应用(在“Application”选项卡中的“Own name in sandbox”那一行填入“com.deepin.SingleInstance.XXX”就行了,“XXX”是任意名称。

如何安装并运行编译好的Flatpak包:
  默认情况下,Flatpak包位于Build path文件夹下,文件名与.pro文件的名称一致。如果要将Flatpak包安装到系统仓库,可以使用命令:
  1. flatpak install --bundle XXX
Copy the Code
其中“XXX”是Flatpak包的文件名。安装时需要提供密码(因为需要修改系统的flatpak仓库)。
  然后就可以运行程序了:
  1. flatpak run YYY
Copy the Code
其中“YYY”是打包时输入的程序名(Application ID),例如“com.example.firefox”。

============
2018-09-29更新:
1、支持生成可执行文件!传说中的(伪)一键安装不再是梦想!目前安装部分的代码是用C写的,所以GUI很粗糙,以后会逐渐完善。
2、支持编译单独的目录!告别git噩梦,从此笑傲江湖_(:з」∠)_
3、可以在/tmp上编译了……
4、注意:从deepin 15.7开始,系统默认安装的Flatpak平台是 deepin-fprt-org.deepin.flatdeb.base.platform ,而非 deepin-fprt-com.deepin.runtime。如果只安装了前者,则无法使用本程序打包(因SDK中缺少qmake),也无法运行打好的flatpak包。故请按照注意事项第1条进行操作。

  国庆节快乐~

============
2018-10-13更新:
1、 修正安装依赖的命令;
2、编译时显示进度条。

Reply Favorite View the author
All Replies
1 / 2
To page
avatar
180******66
deepin
2018-02-04 03:10
#1
被你操作秀到了,点赞
Reply View the author
avatar
153******45
deepin
2018-02-04 03:52
#2
加上国际化呗,翻译一下
Reply View the author
avatar
jingle
deepin
2018-02-04 04:39
#3
点赞
Reply View the author
avatar
Ligocut光剪视频剪辑软件
deepin
Backbone of ecological co-construction group
2018-02-04 08:36
#4
为什么你这个不打包flatpak。。。。。还要安装依赖
Reply View the author
avatar
wtz
deepin
2018-02-04 10:18
#5
https://bbs.deepin.org/post/152879
为什么你这个不打包flatpak。。。。。还要安装依赖

flatpak太大了,打不了。
依赖有两种,一种是打包时需要的依赖,比如flatpak-builder和deepin-fprt-com.deepin.sdk。另外一种是运行时依赖,比如deepin-fprt-com.deepin.runtime。最终用户只需要安装后者就行了(Deepin15.5已经自带)。

打个比方,就像.NET Framework一样,总不能让.NET把shell32、user32、gdiplus这些东西也包含在里面吧……
Reply View the author
avatar
pikachuhy
deepin
2018-02-04 16:18
#6
哇 很腻害的样子
Reply View the author
avatar
Ligocut光剪视频剪辑软件
deepin
Backbone of ecological co-construction group
2018-02-04 22:48
#7
wtz 发表于 2018-2-4 02:18
flatpak太大了,打不了。
依赖有两种,一种是打包时需要的依赖,比如flatpak-builder和deepin-fprt-com.d ...

deepin运行时包括所有东西吗?例如我需要py3的依赖或者我需要MySQL,那样子它也是可以概全吗?
Reply View the author
avatar
wtz
deepin
2018-02-05 00:22
#8
https://bbs.deepin.org/post/152879
deepin运行时包括所有东西吗?例如我需要py3的依赖或者我需要MySQL,那样子它也是可以概全吗? ...

包括常用的库,比如Python3和SQLite。
Reply View the author
avatar
Ligocut光剪视频剪辑软件
deepin
Backbone of ecological co-construction group
2018-02-25 06:33
#9
今天想拿网上的开源项目试一下,怎么知道打包完之后只有这个文件build_log.txt
Downloading sources
fatal: '/home/zpt/Downloads/log4qt/tests' does not appear to be a git repository
fatal: 无法读取远程仓库。

请确认您有正确的访问权限并且仓库存在。
Failed to download sources: module log4qttest: 子进程退出,代码 128
error: '/home/zpt/Downloads/log4qt/repo' is not a valid repository


还有就是不是很懂后面的那个路径是指哪个路径?
Reply View the author
avatar
wtz
deepin
2018-02-25 08:43
#10
https://bbs.deepin.org/post/152879
今天想拿网上的开源项目试一下,怎么知道打包完之后只有这个文件build_log.txt

你测试的是哪个项目?是这个吗:https://github.com/MEONMedical/Log4Qt

第一个路径是项目源代码的路径,注意下载时请使用clone来下载,不要Download ZIP,否则无法获取完整的git信息(这个后面会做改进)。
第二个路径是编译时的工作路径,如果不存在程序会自动创建的。
Reply View the author
avatar
pikachuhy
deepin
2018-04-21 22:56
#11
用了一下这个东西,感觉很不错。
在我的机器上,放缩有些问题
Reply View the author
avatar
wtz
deepin
2018-04-21 23:08
#12
https://bbs.deepin.org/post/152879
用了一下这个东西,感觉很不错。
在我的机器上,放缩有些问题

谢谢。
请问放缩是指打包程序自身的界面,还是目标程序的界面?
Reply View the author
avatar
pikachuhy
deepin
2018-04-22 02:25
#13
https://bbs.deepin.org/post/152879
谢谢。
请问放缩是指打包程序自身的界面,还是目标程序的界面?

就是你写的那个
Reply View the author
avatar
pikachuhy
deepin
2018-04-22 03:04
#14
https://bbs.deepin.org/post/152879
谢谢。
请问放缩是指打包程序自身的界面,还是目标程序的界面?

奇怪的是,这个问题在我的大电脑上没有。
在我的小米笔记本上有
Reply View the author
avatar
wtz
deepin
2018-04-22 09:27
#15
https://bbs.deepin.org/post/152879
奇怪的是,这个问题在我的大电脑上没有。
在我的小米笔记本上有

那应该是Qt对高分屏缩放的支持问题。本人技术能力有限,目前还没有找到比较好的同时兼容高分屏和低分屏的方案,所以在高分屏上可能出现窗口放大而字体未放大的情况,请谅解。
Reply View the author
avatar
icelee
deepin
2018-04-22 23:07
#16
  1. error: Error searching remote tutorial-repo: Can't find ref
Copy the Code

我遇到这个错误,真奇怪
Reply View the author
avatar
wtz
deepin
2018-04-22 23:35
#17
https://bbs.deepin.org/post/152879
我遇到这个错误,真奇怪

能否给个仓库的链接?
Reply View the author
avatar
icelee
deepin
2018-04-23 00:20
#18
https://bbs.deepin.org/post/152879
能否给个仓库的链接?

仓库链接?什么东西?
我是按照这个帖子做的
https://qtdream.com/topic/1095/flatpak-hello-world
然后它有提到你的这个工具
Reply View the author
avatar
wtz
deepin
2018-04-23 01:57
#19
https://bbs.deepin.org/post/152879
仓库链接?什么东西?
我是按照这个帖子做的
https://qtdream.com/topic/1095/flatpak-hello-world

目前只支持编译用Git管理的代码。
你需要先建立一个Git仓库,把代码放进去,然后才能用这个工具编译。
注意,仅限于编译Qt项目,所以你还需要“.pro”文件。
Reply View the author
avatar
wtz
deepin
2018-04-23 02:04
#20
https://bbs.deepin.org/post/152879
仓库链接?什么东西?
我是按照这个帖子做的
https://qtdream.com/topic/1095/flatpak-hello-world

推荐使用这个仓库来熟悉 flatpak :https://github.com/zwpwjwtz/kugou-music/
感谢 https://bbs.deepin.org/user/25870 的辛勤劳动。
Reply View the author
1 / 2
To page