Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new release for current macOS on website and releases page #35

Open
Izder456 opened this issue Mar 19, 2020 · 17 comments
Open

new release for current macOS on website and releases page #35

Izder456 opened this issue Mar 19, 2020 · 17 comments

Comments

@Izder456
Copy link

Currently, at the moment, at this precise point in time, macOS doesn't support PowerPC apps any more. Could you please release a newer version written for x86_64 Macs?

@debrouxl

@debrouxl
Copy link
Owner

The site's indeed outdated, but you can easily build libti*, GFM and TILP yourself using the install script from this repository :)
The direct link for the master branch is https://raw.githubusercontent.com/debrouxl/tilp_and_gfm/master/tilp/trunk/build/scripts/install_tilp.sh , the script lists the build dependencies.

Making packaged releases under DMG form is possible. The user install script, the maintainer install scripts (native Linux build, cross-build for Windows from Linux) and the existing Travis CI integration https://travis-ci.org/debrouxl/tilibs , https://travis-ci.org/debrouxl/tilp_and_gfm ) are a starting point for building releases, but I'm clearly not going to be the one doing the packaging and testing work: I don't have an expensive Mac to test the result myself, to begin with.

@Izder456
Copy link
Author

Izder456 commented Mar 19, 2020

would I do something like : brew install git curl && curl -sL https://raw.githubusercontent.com/debrouxl/tilp_and_gfm/master/tilp/trunk/build/scripts/install_tilp.sh | bash -?

actually I think this'll work after I install Xcode: brew install curl bash && curl https://raw.githubusercontent.com/debrouxl/tilp_and_gfm/master/tilp/trunk/build/scripts/install_tilp.sh | bash -

@Izder456
Copy link
Author

Izder456 commented Mar 19, 2020

the pipe is for running the script in bash, IDK what cli shell macOS Catalina uses.

EDIT: looks like the 10.15 release of macOS uses Z Shell, is your install script compatible with that login shell?

@debrouxl
Copy link
Owner

  • curl ... | bash -: never do that because 1) in general, it forces the shell without respecting the shebang which might be contained in the script, and most of all 2) it's highly insecure :)
  • zsh's compatibility with bash is supposed to be good, and the script doesn't use any kind of advanced construct anyway, so no issues are expected if you try it yourself, but I haven't tested the install script with zsh.

I don't use zsh myself, because its out of the box availability is scarce, unlike that of bash, and also because zsh has appeared in vulnerability lists multiple times in the recent years, long after the severe Shellshock vulnerabilities were fixed in bash.

@Izder456
Copy link
Author

to play it safe, I will still curl the file to the mac, but not pipe it into bash. I'm just more familiar with bash, to be honest. I feel if the script was meant to be run in bash we might as well run it in bash ;=)

Thanks for the help!
We need developers like you who actually care about the end-user and are willing to help out if the end-user has a problem.
That like never happens, lol.

Seriously, thanks!

@adriweb
Copy link
Contributor

adriweb commented Mar 19, 2020 via email

@Izder456
Copy link
Author

yeah, whats the one-liner?

@adriweb
Copy link
Contributor

adriweb commented Mar 19, 2020

Ok it's not exactly one-line because of setup things you'd have to do once before
Here's a short enough script though:

Deps etc (let me know if there's something missing, I don't remember fully):

brew install cmake ninja gettext gtk+ libglade libarchive libtool glib libusb bison flex texinfo libiconv intltool
brew link --force gettext libarchive
export PKG_CONFIG_PATH="/usr/local/opt/libarchive/lib/pkgconfig"

(In fact, the brew link is ugly. There's a better pkg_config_path line to fix this properly, fyi this is what I have in my .zshrc:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/opt/gobject-introspection/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/openssl/lib/pkgconfig:/usr/local/opt/zlib/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/libarchive/live/lib/pkgconfig:/opt/X11/lib/pkgconfig)

Downloading the things:

cd /tmp
git clone --depth 1 https://github.com/debrouxl/tilp_and_gfm.git
cd tilp_and_gfm
git clone --depth 1 https://github.com/debrouxl/tilibs.git
cd tilibs

Actual building of libs and tilp (and gfm):

mkdir -p build && cd build && cmake -GNinja .. && cmake --build . --target install
cd ../..
cd  gfm/trunk/po; intltool-update --pot; intltool-update fr; cd ../../..
cd tilp/trunk/po; intltool-update --pot; intltool-update fr; intltool-update de; cd ../../..
mkdir -p build && cd build && cmake -GNinja .. && cmake --build . --target install

You can check with tilp2 --version if it went well.

@Izder456
Copy link
Author

Izder456 commented Mar 19, 2020

to make it even more absurd, you could make all those commands in one [after the deps] by doing :
cd /tmp && git clone --depth 1 https://github.com/debrouxl/tilp_and_gfm.gi && cd tilp_and_gfm && git clone --depth 1 https://github.com/debrouxl/tilibs.git && cd tilibs && mkdir -p build && cd build && cmake -GNinja .. && cmake --build . --target install && cd ../.. && cd gfm/trunk/po; intltool-update --pot; intltool-update fr; cd ../../.. && cd tilp/trunk/po; intltool-update --pot; intltool-update fr; intltool-update de; cd ../../.. && mkdir -p build && cd build && cmake -GNinja .. && cmake --build . --target install

haha then once you've gone through all the work of typing and double-checking the command,
you could do the 'ol cd / && sudo su - && mv * /dev/null as a power move

@Izder456
Copy link
Author

^^ please don't actually do the last step, it is a joke ^^

@adriweb
Copy link
Contributor

adriweb commented Mar 20, 2020

I've been trying some things and I'm actually cleaning things up build-wise, with @debrouxl's suggestions. I should have some builds for you to test soon :)
In the meantime, feel free to build the things yourself, that should work anyway.

@Izder456
Copy link
Author

@adriweb thanks!

@adriweb
Copy link
Contributor

adriweb commented Mar 20, 2020

Just to try if you can launch it (make sure to have install all the deps from brew first):
Extract it somewhere and launch ./tilp2_signed from a terminal, you might have to chmod +x it first.
There seems to have a bug with nspire stuff but that's probably related to the experimental2 branch of tilibs, but since it's just for testing the building process itself... I'm not worrying about that just yet (probably more for @debrouxl anyway :D)

tilp2_signed.zip

FYI:

otool -L ./tilp2_signed
./tilp2_signed:
	/usr/local/opt/gtk+3/lib/libgtk-3.0.dylib (compatibility version 2408.0.0, current version 2408.7.0)
	/usr/local/opt/gtk+3/lib/libgdk-3.0.dylib (compatibility version 2408.0.0, current version 2408.7.0)
	/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0)
	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 162.0.0)
	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1348.12.4)
	/usr/local/opt/pango/lib/libpangocairo-1.0.0.dylib (compatibility version 4401.0.0, current version 4401.7.0)
	/usr/local/opt/pango/lib/libpango-1.0.0.dylib (compatibility version 4401.0.0, current version 4401.7.0)
	/usr/local/opt/harfbuzz/lib/libharfbuzz.0.dylib (compatibility version 20601.0.0, current version 20601.4.0)
	/usr/local/opt/atk/lib/libatk-1.0.0.dylib (compatibility version 23411.0.0, current version 23411.1.0)
	/usr/local/opt/cairo/lib/libcairo-gobject.2.dylib (compatibility version 11603.0.0, current version 11603.0.0)
	/usr/local/opt/cairo/lib/libcairo.2.dylib (compatibility version 11603.0.0, current version 11603.0.0)
	/usr/local/opt/gdk-pixbuf/lib/libgdk_pixbuf-2.0.0.dylib (compatibility version 4001.0.0, current version 4001.0.0)
	/usr/local/opt/glib/lib/libgio-2.0.0.dylib (compatibility version 6401.0.0, current version 6401.1.0)
	/usr/local/opt/glib/lib/libgobject-2.0.0.dylib (compatibility version 6401.0.0, current version 6401.1.0)
	/usr/local/opt/glib/lib/libglib-2.0.0.dylib (compatibility version 6401.0.0, current version 6401.1.0)
	/usr/local/opt/gettext/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.6.0)
	/usr/local/opt/zlib/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
	/usr/local/opt/libusb/lib/libusb-1.0.0.dylib (compatibility version 3.0.0, current version 3.0.0)
	/usr/local/opt/libarchive/lib/libarchive.13.dylib (compatibility version 18.0.0, current version 18.2.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.0.0)```

@Izder456
Copy link
Author

I'll try it when I get the chance, @adriweb

@adriweb
Copy link
Contributor

adriweb commented Mar 21, 2020

Here's a better test build :) tilp2_signed.zip
It's actually as statically built as possible, for the fun of it.

image

Seems to work fine here!

Here are the only needed deps (from what I see): glib, gdk-pixbuf, atk, graphite2, libepoxy, gtk+3. Some of those may already be deps of each other.

    /usr/local/opt/glib/lib/libglib-2.0.0.dylib (compatibility version 6401.0.0, current version 6401.1.0)
	/usr/local/opt/glib/lib/libgobject-2.0.0.dylib (compatibility version 6401.0.0, current version 6401.1.0)
	/usr/local/opt/glib/lib/libgmodule-2.0.0.dylib (compatibility version 6401.0.0, current version 6401.1.0)
	/usr/local/opt/glib/lib/libgio-2.0.0.dylib (compatibility version 6401.0.0, current version 6401.1.0)
	/usr/local/opt/gdk-pixbuf/lib/libgdk_pixbuf-2.0.0.dylib (compatibility version 4001.0.0, current version 4001.0.0)
	/usr/local/opt/atk/lib/libatk-1.0.0.dylib (compatibility version 23411.0.0, current version 23411.1.0)
	/usr/local/opt/graphite2/lib/libgraphite2.3.dylib (compatibility version 3.0.0, current version 3.2.1)
	/usr/local/opt/libepoxy/lib/libepoxy.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/local/opt/gtk+3/lib/libgdk-3.0.dylib (compatibility version 2408.0.0, current version 2408.7.0)
	/usr/local/opt/gtk+3/lib/libgtk-3.0.dylib (compatibility version 2408.0.0, current version 2408.7.0)

My next step is to be able to package those (and their deps) into the app bundle so that a fully standalone redistributable .app can be done!

@Izder456
Copy link
Author

Izder456 commented Mar 21, 2020 via email

@adriweb
Copy link
Contributor

adriweb commented Mar 22, 2020

No worries, I keep making cleanups and changes for @debrouxl to review anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants