Don’t Panic
This is a collection of files required to build pythonbase.app: native dependencies to run gPodder as a native GTK+ Quartz application for Mac OS X 10.9+, with a working python interpreter and pip utility.
The scripts are executed on github.com, with xcode 13.2.1 on macos 11.6.8 (as of 27aug2022).
Note
|
In case you want just want to run gPodder from source you can ignore all
this and use the released bundle as a development environment. Download the
official bundle, git clone the gPodder repo and do
./gPodder.app/Contents/MacOS/run-python bin/gpodder .
|
Uses jhbuild and the stable module set provided by gtk-osx with a gPodder specific module set overlay to build all needed dependencies for gPodder. Everything will be downloaded/installed into this directory and your user directory will not be touched.
Builds upon the great scripts by Christoph Reiter to automate my previously tedious description.
Verify that Xcode and git is installed and in your $PATH
by invoking git
--version
and gcc --version
. The env.sh
script resets your $PATH
to the
default value ({,/usr}/{,s}bin
) to make sure non-native programs, installed
by other package managers like homebrew or macports, are not used (read more
here).
(Tested on macOS 10.15.1)
-
Edit
pins.sh
, updating commit hashes. -
Call
bootstrap.sh
to install jhbuild and set up dummy$HOME
as base. -
Call
build.sh
to download and build all the dependencies. -
Call
bundle.sh
to create the finished bundles for gPodder in_build
.
-
After
bootstrap.sh
has finished executingsource env.sh
will put you in the build environment. After that jhbuild can be used directly. -
fetch_modules.sh
downloads the git master of the gtk-osx module set and replaces the modules under "modulesets. Doing so so should ideally be followed by a review of the gPodder module to reduce duplication and a rebuild to verify that everything still works.
Releasing on OS X
-
edit
pins.sh
, updating commit hashes -
run
fetch_modules.sh
-
remove
modulesets/*~
,modulesets/gtk-osx.modules.orig
and_gtk-osx
-
commit and push changes
-
wait for github action to build the bundle
-
test latest pythonbase-xxx.zip on macOS
-
tags are now the year as 2 digits, month as 1 or 2 digits (no leading 0), day as 1 or 2 digits (no leading 0):
git tag -a -m "update deps" YY.MM.DD
-
git push
-
wait for github action to build the tagged bundle
-
remove
_build
-
GITHUB_TOKEN=xxxx python github_release.py --download --github-workflow LATEST_GA_WORKFLOW --previous-tag THE_PREVIOUS_RELEASE_TAG YY.MM.DD
where LATEST_GA_WORKFLOW is the number in URL of the latest github action for the tag, not master (eg. 1234567890) -
repeat the command without
--download
to upload to github -
edit and publish the release on github
-
now you can update the tag in
.github/workflows/release-from-macos.yml
of the gPodder project.
Releasing on macOS by using the working pip:
git clone https://github.com/gpodder/gpodder.git cd gpodder ./tools/mac-osx/release_on_mac.sh ~/Downloads/pythonbase-21.4.27.zips
See the official help guide http://gpodder.github.io/docs/