From 0d47952611198ef6b1163f366dc03922d20b1475 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 09:42:04 +0200 Subject: Adding upstream version 7.94+git20230807.3be01efb1+dfsg. Signed-off-by: Daniel Baumann --- macosx/BUNDLING.md | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 macosx/BUNDLING.md (limited to 'macosx/BUNDLING.md') diff --git a/macosx/BUNDLING.md b/macosx/BUNDLING.md new file mode 100644 index 0000000..904144e --- /dev/null +++ b/macosx/BUNDLING.md @@ -0,0 +1,130 @@ +# Table of Contents +--- + + * [Jhbuild](#jhbuild) + * Possible error + * [gtk-mac-bundler](#bundler) + * [How to use](#howto) + * Prerequisite + * Usage + +## Jhbuild + +In order to set up Jhbuild properly before building Nmap suite, follow the tutorial at [https://wiki.gnome.org/Projects/GTK%2B/OSX/Building](https://wiki.gnome.org/Projects/GTK%2B/OSX/Building), but keep reading this file if you encounter any error... + +If you had any error, just type the following command to delete jhbuild, + + $ rm -rf ~/.local ~/.new_local ~/.cache ~/.config ~/Source/jhbuild ~/Source/pyenv ~/Library/Caches/pip* ~/gtk + +And we'll start over together: + +1. First, simply download the following script in your _$HOME_ directory ([https://git.gnome.org/browse/gtk-osx/plain/gtk-osx-build-setup.sh](https://git.gnome.org/browse/gtk-osx/plain/gtk-osx-build-setup.sh)). Edit it to make sure that `MACOSX_DEPLOYMENT_TARGET` exists and is set to the lowest supported version of OS X, e.g. "10.11". Then run it: + + ~~~~ + $ sh gtk-osx-build-setup.sh + ~~~~ + + And add it to your _$PATH_, so you can run jhbuild without the absolute path: + + ~~~~ + $ export PATH=$HOME/.local/bin:$PATH + ~~~~ + +2. In `~/.jhbuildrc-custom`, make sure that this line is setup properly and matches `MACOSX_DEPLOYMENT_TARGET` from step 1: + + ~~~~ + setup_sdk(target="10.11") + ~~~~ + +3. Now do, + + ~~~~ + $ jhbuild bootstrap-gtk-osx + ~~~~ + + To install missing dependencies (with **--force** option to force rebuilding).
+ +4. And, + + ~~~~ + $ jhbuild build meta-gtk-osx-bootstrap + $ jhbuild build meta-gtk-osx-core + +5. Now we need Python2 and the GTK2 bindings for it, but gtk-osx has built +Python3, and the bindings will prefer that even though the dev headers aren't +present. Specifically, we need pycairo prior to 1.19 (when they dropped Python2 +support) and gtk-integration-python. There's got to be a better way, but what I +did was first install python2: + + $ jhbuild build python + +Then install pycairo. This is necessary because if it's missing for Python 2, +the other bindings won't build for Python 2 either. Make sure version is less +than 1.19 in ~/.cache/jhbuild/gtk-osx-python.modules. This may "succeed" but it +will have built the Python3 bindings. Clear out the build tree and make sure +the source will prefer python2: + + $ jhbuild build pycairo + $ rm -rf ~/.cache/jhbuild/build/pycairo-* + $ sed -i 's/python3/python2/' ~/gtk/source/pycairo-*/meson_options.txt + $ jhbuild build pycairo + +Now build the rest of the python bindings. Some of these will fail (and maybe +they failed as prereqs for pycairo earlier), so hang on and I'll tell you how +to fix those: + + $ jhbuild build meta-gtk-osx-python + +Ok, when you get a failure, that's your chance to reconfigure with python2. +Jhbuild will give you some options; choose "4. start a shell" and then check +for the proper configuration command (may be visible in scrollback, otherwise +check config.log) and copy it. Clear out the build directory (probably the +current directory, ~/.cache/jhbuild/build/package-name-version/*) then from +there run the configuration command with PYTHON variable overridden, e.g.: + + $ PYTHON=$(which python2) ~/gtk/source/package-name-version/configure --some-options + +Now exit that shell and go to the build step. This might mean "ignore error and +continue with build" or it might mean "rerun step build" depending on when the +error happened. + +### Possible error + +For those of you who have this error while trying to make, + +~~~~ +svn: E155021: This client is too old to work with the working copy at... +~~~~ + +You need to **update SVN**.
+Go to [http://www.wandisco.com/subversion/download#osx](http://www.wandisco.com/subversion/download#osx) and download and install the approriate version for your OS. + +Now, add the path for the new SVN version to your _$PATH_: + +~~~~ +$ export PATH=/opt/subversion/bin:$PATH +~~~~ + +## gtk-mac-bundler + +Now that Jhbuild is properly configured, we need to install **gtk-mac-bundler** in order to render the bundle file: + +~~~~ +$ git clone git://git.gnome.org/gtk-mac-bundler +$ cd gtk-mac-bundler +$ make install +~~~~ + +## How to use +#### Prerequisite: +—`openssl.modules`: + +This is a jhbuild moduleset that can be used to build/update openssl. + +#### Usage: + +Now use it like this: + +~~~~ +$ jhbuild -m openssl.modules build nmap-deps +~~~~ -- cgit v1.2.3