tilp_and_gfm icon indicating copy to clipboard operation
tilp_and_gfm copied to clipboard

new release for current macOS on website and releases page

Open Izder456 opened this issue 4 years ago • 17 comments

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

Izder456 avatar Mar 19 '20 20:03 Izder456

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.

debrouxl avatar Mar 19 '20 20:03 debrouxl

~~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 avatar Mar 19 '20 20:03 Izder456

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?

Izder456 avatar Mar 19 '20 20:03 Izder456

  • 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.

debrouxl avatar Mar 19 '20 21:03 debrouxl

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!

Izder456 avatar Mar 19 '20 21:03 Izder456

I have a one liner cmake like to build and install everything if you're interested though haha

Anyway, I'm getting used to packaging the ti community apps for macOS so I'll try to do something soon. It won't be fun with some deps but oh well.

adriweb avatar Mar 19 '20 21:03 adriweb

yeah, whats the one-liner?

Izder456 avatar Mar 19 '20 21:03 Izder456

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.

adriweb avatar Mar 19 '20 22:03 adriweb

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 avatar Mar 19 '20 22:03 Izder456

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

Izder456 avatar Mar 19 '20 22:03 Izder456

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.

adriweb avatar Mar 20 '20 16:03 adriweb

@adriweb thanks!

Izder456 avatar Mar 20 '20 16:03 Izder456

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)```

adriweb avatar Mar 20 '20 18:03 adriweb

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

Izder456 avatar Mar 20 '20 18:03 Izder456

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!

adriweb avatar Mar 21 '20 14:03 adriweb

sorry, but atm I cannot test your builds.. so sorry about that.

--

*-- *This email is from a student in the Sun Prairie Area School District and is intended for school use.  All email messages sent to and from this account are saved and archived. Email messages are subject to monitoring.

Izder456 avatar Mar 21 '20 18:03 Izder456

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

adriweb avatar Mar 22 '20 03:03 adriweb