Skip to content

Commit 01058ee

Browse files
committed
bundle a generic app. install gpodder from gpodder/tools/mac-osx
1 parent 600f96f commit 01058ee

File tree

8 files changed

+60
-194
lines changed

8 files changed

+60
-194
lines changed

.circleci/config.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ jobs:
1111
- run: ./build.sh
1212
- run: ./bundle.sh
1313
- run: ./release.sh _build/gPodder.app $(git describe --tags)
14-
- run: ./release_deps.sh _build/gPodder.app $(git describe --tags)
1514
- run: rm -Rf _build/gPodder.app/
1615
- store_artifacts:
1716
path: /Users/distiller/project/_build

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ source env.sh
66

77
jhbuild bootstrap-gtk-osx
88
jhbuild build meta-gtk-osx-bootstrap
9-
jhbuild build gpodder
9+
jhbuild build meta-gpodder-native

bundle.sh

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,7 @@ mydir=`pwd`
2020
mv "$QL_OSXBUNDLE_BUNDLE_DEST/gpodder.app" "$QL_OSXBUNDLE_BUNDLE_DEST/app.app"
2121
mv "$QL_OSXBUNDLE_BUNDLE_DEST/app.app" "$APP"
2222

23-
# launcher scripts
24-
mv "$APP"/Contents/MacOS/{gPodder,gpodder}
25-
CMDS="gpo gpodder-migrate2tres run-python run-pip"
26-
for cmd in ${CMDS}; do
27-
cp -a "$APP"/Contents/MacOS/{gpodder,$cmd}
28-
if [ -e "$QL_OSXBUNDLE_BUNDLE_DEST/$cmd" ]; then
29-
unlink "$QL_OSXBUNDLE_BUNDLE_DEST/$cmd"
30-
fi
31-
ln -s gPodder.app/Contents/MacOS/$cmd "$QL_OSXBUNDLE_BUNDLE_DEST/"
32-
done
33-
34-
# Set the version and copyright automatically (before removing *.pyc)
35-
"$APP"/Contents/MacOS/run-python "$mydir/misc/fixup_info.py" "$APP"/Contents/Info.plist
23+
3624

3725
# kill some useless files
3826
rm -Rf "$APP_PREFIX"/lib/python3.8/test
@@ -42,10 +30,6 @@ rm -f "$APP_PREFIX"/lib/python3.8/config/libpython3.8.a
4230
find "$APP_PREFIX"/lib/python3.8 -name '*.pyc' -delete
4331
find "$APP_PREFIX"/lib/python3.8 -name '*.pyo' -delete
4432

45-
# Command-XX shortcuts in gPodder menus
46-
/usr/bin/xsltproc -o menus.ui.tmp "$mydir"/misc/adjust-modifiers.xsl "$APP_PREFIX"/share/gpodder/ui/gtk/menus.ui
47-
mv menus.ui.tmp "$APP_PREFIX"/share/gpodder/ui/gtk/menus.ui
48-
4933
echo checking for dynamic linking consistency : nothing should reference gtk/inst
5034
find "$APP_PREFIX" -name '*.so' -and -print -and -exec sh -c 'otool -L $1 | grep /gtk/inst' '{}' '{}' ';'
5135

misc/bundle/gpodder.bundle

Lines changed: 52 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,10 @@
9595
${prefix}/share/locale
9696
</translations>
9797

98+
<!-- don't bundle gpodder translations
9899
<translations name="gpodder">
99100
${prefix}/share/locale
100-
</translations>
101+
</translations> -->
101102

102103
<!-- Be careful, only to pick required python modules -->
103104

@@ -135,18 +136,20 @@
135136
<data>${prefix}/lib/python3.8/xml</data>
136137

137138
<!-- only required extra modules (no dbus, for instance) -->
138-
<data>${prefix}/lib/python3.8/site-packages/podcastparser.py</data>
139139
<data recurse="True">
140140
${prefix}/lib/python3.8/site-packages/gi/*.py
141141
</data>
142142
<data>${prefix}/lib/python3.8/site-packages/cairo/*.py</data>
143+
144+
<!-- gpodder pure python deps
143145
<data>${prefix}/lib/python3.8/site-packages/certifi</data>
144146
<data>${prefix}/lib/python3.8/site-packages/chardet</data>
145147
<data>${prefix}/lib/python3.8/site-packages/gpodder</data>
146148
<data>${prefix}/lib/python3.8/site-packages/idna</data>
147149
<data>${prefix}/lib/python3.8/site-packages/mutagen</data>
148150
<data>${prefix}/lib/python3.8/site-packages/mygpoclient</data>
149151
<data>${prefix}/lib/python3.8/site-packages/html5lib</data>
152+
<data>${prefix}/lib/python3.8/site-packages/podcastparser.py</data>
150153
<data>${prefix}/lib/python3.8/site-packages/socks.py</data>
151154
<data>${prefix}/lib/python3.8/site-packages/sockshandler.py</data>
152155
<data>${prefix}/lib/python3.8/site-packages/requests</data>
@@ -156,16 +159,17 @@
156159
<data>${prefix}/lib/python3.8/site-packages/urllib3</data>
157160
<data>${prefix}/lib/python3.8/site-packages/webencodings</data>
158161
<data>${prefix}/lib/python3.8/site-packages/youtube_dl</data>
162+
-->
159163

160164

161165
<!-- Fake dbus module.
162166
d-bus can be built and bundled, but it doesn't add any service
163167
so it's not bundled to reduce the App size.
164168
If somebody requires it, it will be added.
165-
-->
166169
<data dest="${bundle}/Contents/Resources/lib/python3.8/site-packages/dbus">
167170
${env:JHBUILD_SOURCE}/gpodder/tools/fake-dbus-module/dbus
168171
</data>
172+
-->
169173

170174
<binary>
171175
${prefix}/lib/python3.8/lib-dynload/*.so
@@ -190,42 +194,6 @@
190194
${prefix}/share/gir-1.0/*.gir
191195
</gir>
192196

193-
<data>
194-
${prefix}/bin/gpodder
195-
</data>
196-
<data>
197-
${prefix}/bin/gpo
198-
</data>
199-
<data>
200-
${prefix}/bin/gpodder-migrate2tres
201-
</data>
202-
203-
204-
<data>
205-
${prefix}/share/gpodder
206-
</data>
207-
208-
<data>
209-
${prefix}/share/icons/hicolor/scalable/apps
210-
</data>
211-
212-
<data>
213-
${prefix}/share/man/man1/gpo.1
214-
</data>
215-
<data>
216-
${prefix}/share/man/man1/gpodder.1
217-
</data>
218-
<data>
219-
${prefix}/share/man/man1/gpodder-migrate2tres.1
220-
</data>
221-
222-
<data dest="${bundle}/Contents/Resources/gPodder.icns">
223-
${env:JHBUILD_SOURCE}/gpodder/tools/mac-osx/icon.icns
224-
</data>
225-
226-
<!-- Copy in the themes data. You may want to trim this to save space
227-
in your bundle. -->
228-
229197
<!-- This is where theme commands go. You can copy them in from your
230198
theme of choice if they provide and example, or you can just
231199
change the source path. -->
@@ -254,11 +222,6 @@
254222
hicolor
255223
</icon-theme>
256224

257-
<!-- gPodder icon in the about dialog (gpodder.icon_file initialised in gpodder script) -->
258-
<data dest="${bundle}/Contents/Resources/share/icons/hicolor/scalable/apps">
259-
${prefix}/share/icons/hicolor/scalable/apps/gpodder.svg
260-
</data>
261-
262225
<!-- get file-dependent icons (e.g. music note if it's an audio file) -->
263226
<data dest="${bundle}/Contents/Resources/share/mime">
264227
${prefix}/share/mime
@@ -274,6 +237,11 @@
274237
${prefix}/bin/openssl
275238
</binary>
276239

240+
<!-- needed to compile translations -->
241+
<binary dest="${bundle}/Contents/MacOS">
242+
${prefix}/bin/msgfmt
243+
</binary>
244+
277245
<!-- fix crash on file dialogs (#413) -->
278246
<data>${prefix}/share/glib-2.0/schemas</data>
279247

@@ -287,4 +255,44 @@
287255
<data>${prefix}/lib/python3.8/site-packages/pip</data>
288256
<data>${prefix}/lib/python3.8/xmlrpc</data>
289257
<!--<data>${prefix}/lib/python3.8/ensurepip</data>-->
258+
<!-- setuptools -->
259+
<!-- <data>${prefix}/lib/python3.8/site-packages/pkg_resources</data>
260+
<data>${prefix}/lib/python3.8/site-packages/setuptools</data> -->
261+
262+
263+
<!-- gpodder contents
264+
<data>
265+
${prefix}/bin/gpodder
266+
</data>
267+
<data>
268+
${prefix}/bin/gpo
269+
</data>
270+
<data>
271+
${prefix}/bin/gpodder-migrate2tres
272+
</data>
273+
274+
275+
<data>
276+
${prefix}/share/gpodder
277+
</data>
278+
279+
<data>
280+
${prefix}/share/man/man1/gpo.1
281+
</data>
282+
<data>
283+
${prefix}/share/man/man1/gpodder.1
284+
</data>
285+
<data>
286+
${prefix}/share/man/man1/gpodder-migrate2tres.1
287+
</data>
288+
289+
<data dest="${bundle}/Contents/Resources/gPodder.icns">
290+
${env:JHBUILD_SOURCE}/gpodder/tools/mac-osx/icon.icns
291+
</data>
292+
<!- - gPodder icon in the about dialog (gpodder.icon_file initialised in gpodder script) - ->
293+
<data dest="${bundle}/Contents/Resources/share/icons/hicolor/scalable/apps">
294+
${prefix}/share/icons/hicolor/scalable/apps/gpodder.svg
295+
</data>
296+
-->
297+
290298
</app-bundle>

misc/bundle/launcher.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,20 +163,20 @@ def gpodder_home():
163163
os.environ['SSL_CERT_FILE'] = cert_pem
164164

165165
if app == 'run-python':
166-
python_exe = os.path.join(bundle_contents, 'MacOS', 'python3')
166+
python_exe = join(bundle_contents, 'MacOS', 'python3')
167167
# executable is repeated as argv[0].
168168
# Old sys.argv[0] points to Contents/MacOS so must be removed
169169
args = [python_exe] + sys.argv[1:]
170170
# print("running", args)
171171
os.execv(python_exe, args)
172-
if app == 'run-pip':
173-
python_exe = os.path.join(bundle_contents, 'MacOS', 'python3')
174-
pip = os.path.join(bundle_contents, 'Resources', 'bin', 'pip3')
172+
elif app == 'run-pip':
173+
python_exe = join(bundle_contents, 'MacOS', 'python3')
174+
pip = join(bundle_contents, 'Resources', 'bin', 'pip3')
175175
# executable is repeated as argv[0].
176176
# Old sys.argv[0] points to Contents/MacOS so must be removed
177177
args = [python_exe, pip] + sys.argv[1:]
178178
# print("running", args)
179179
os.execv(python_exe, args)
180180
else:
181181
import runpy
182-
runpy.run_path(os.path.join(bundle_bin, app), run_name='__main__')
182+
runpy.run_path(join(bundle_bin, app), run_name='__main__')

modulesets/gpodder.modules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
</branch>
3232
<dependencies>
3333
<!-- when adding new python deps, don't forget to add them to gpodder.bundle -->
34+
<dep package="meta-gpodder-native"/>
3435
<dep package="podcastparser"/>
3536
<dep package="mygpoclient"/>
36-
<dep package="meta-gpodder-native"/>
3737
<dep package="mutagen"/>
3838
<dep package="youtube_dl"/>
3939
<dep package="html5lib"/>

release_deps.sh

Lines changed: 0 additions & 46 deletions
This file was deleted.

release_on_linux.sh

Lines changed: 0 additions & 79 deletions
This file was deleted.

0 commit comments

Comments
 (0)