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

Suggestion: Homebrew formula for gtk3 (now GTK4) installation on macOS (or Linux) #33

Open
YoshitakaMo opened this issue Mar 12, 2021 · 741 comments

Comments

@YoshitakaMo
Copy link

YoshitakaMo commented Mar 12, 2021

Dear Paul,

I am a researcher in the field of bioinformatics, specifically structural biology.
I'm interested in the Coot software and want to use it. For my own interest and for the convenience of other macOS users, I have created a Homebrew formula to install Coot-gtk3 from the source code by referring to build-3-3 autobuild script in the gtk3 branch.

To start the installation of Coot-Gtk3 on a macOS with Homebrew, run the following command on the terminal app:

# install homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install the latest coot (since Jul 17, 2024)
brew install brewsci/bio/coot

July 17, 2024, Now Coot can be installed from brewsci/homebrew-bio!

(May 14, 2024, Update the installation command. I provide coot bottles for macOS sonoma and Linux users)

(May 9, 2023, Update: Coot gtk3 now requires gtk 3.24.34, not the latest version. To use and pin it, see #33 (comment))

pic1

pic2

I would like to thank @wgscott and @keitaroyam for their support in creating this Formula. I would like to complete this Homebrew Formula for Coot so that Coot users can easily get access to the latest functions.

@pemsley
Copy link
Owner

pemsley commented Apr 6, 2021

Hi YoshitakaMo, I just saw this. Usually the way to communicate with me is via email or the Coot mailing list. However, I see that Github is increasingly being use to communicate with me and I should read it more often.

Now, I think I have fixed the error draw_central_cube() bug. I think it is due to an Apple bug. I used a function that shouldn't produce but error does so.

It seems to me that your framebuffer is taking up one quarter of the GL widget (by width). I don't know why that should be. You could investigate by looking at the size of GL widget in on_glarea_resize() and changing framebuffer_scale.

Paul.

@YoshitakaMo
Copy link
Author

YoshitakaMo commented Feb 4, 2022

Hi Paul, I'm sorry to neglect the reply for a long time.

I made an updated formula on https://gist.github.com/YoshitakaMo/d07056febca81fc2ca73c6f379fce4b0, and installed the Gtk3-Coot on Intel Mac (NOT M1 Mac) with the formula on this Jan 5 https://twitter.com/Ag_smith/status/1478567242749325314 . But today the installation failed on its ./configure step.

Here is the installation step using my Homebrew formulae.

# install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)
# download coot.rb
wget https://raw.githubusercontent.com/YoshitakaMo/homebrew-bio/coot/Formula/coot.rb -O coot.rb
# install coot
brew install ./coot.rb --verbose --HEAD --debug --keep-tmp

I think the old version of boost@1.74 and boost-python3@1.74 formulae are required because the latest boost made breaking changes.

Here, to get the coot.rb formula to work perfectly, I'd like to know that which build procedure is the best way to install. I'm reading https://github.com/pemsley/coot/blob/refinement/build-it now, but is it the best one? Or, it would be helpful if you could write the command to build it directly here.

I also found another potential obstacles to install Gtk3-Coot on any platform. libccp4 6.5.1 couldn't be built on M1 mac (See also brewsci/homebrew-bio#1450 ). I have no idea how to solve it currently.

@YoshitakaMo
Copy link
Author

Ah, I accidentally tried to build from the 'refinement' branch, not 'gtk3'. Now I've fixed the coot.rb and I successfully installed Gtk3-Coot on my Intel Mac with Homebrew. It takes about 10 minutes to install.

After the installation, boot Coot using this command /usr/local/opt/coot/libexec/coot-bin. Currently, /usr/local/opt/coot/bin/coot or coot won't work properly probably because its setting of PATH is not correct.

Thanks to the Coot community, libccp4 was successfully built on M1 Mac ( brewsci/homebrew-bio#1450 ). I updated the Formula of libccp4. However, installation of Coot on M1 Mac has not been tested yet because boost-python@1.74 cannot be installed properly on it...

@pemsley
Copy link
Owner

pemsley commented Feb 5, 2022

I successfully installed Gtk3-Coot on my Intel Mac with Homebrew

Congratulations.

To test that the refinement works, click on the blue circle/sphere on the right and then click on 2 residues. You should be able to pull atoms around and see geometry "health bars" move.

because its setting of PATH is not correct

Where is the path not correct?

Most of the coot.in/coot script is to try to handle installation in an arbitrary directory - you don't need that so just use a "one-liner" to exec $libexec_prefix/coot-bin

@keitaroyam
Copy link
Contributor

@YoshitakaMo Many thanks for the update. Finally I managed to install COOT, but the window looked like yours in the first post.

Here is my installation note which may be my environment specific. I am using macOS Catalina 10.15.7.

I followed your instruction:

# download Formula of boost@1.74 and boost-python3@1.74 first
brew install wget
wget https://raw.githubusercontent.com/YoshitakaMo/homebrew-bio/coot/Formula/boost%401.74.rb
wget https://raw.githubusercontent.com/YoshitakaMo/homebrew-bio/coot/Formula/boost-python3%401.74.rb
# install them
brew install ./boost@1.74.rb --verbose
brew install ./boost-python3@1.74.rb --verbose

Then an error occurred:

==> Cleaning
==> Finishing up
ln -s ../../Cellar/boost-python3@1.74/1.74.0/share/doc/boost-python3@1.74 boost-python3@1.74
ln -s ../../Cellar/boost-python3@1.74/1.74.0/lib/cmake/boost_numpy-1.74.0 boost_numpy-1.74.0
ln -s ../../Cellar/boost-python3@1.74/1.74.0/lib/cmake/boost_python-1.74.0 boost_python-1.74.0
rm /usr/local/lib/cmake/boost_numpy-1.74.0
rm /usr/local/lib/cmake/boost_python-1.74.0
rm /usr/local/share/doc/boost-python3@1.74
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink lib/libboost_numpy39-mt.a
Target /usr/local/lib/libboost_numpy39-mt.a
is a symlink belonging to boost-python3. You can unlink it:
  brew unlink boost-python3

To force the link and overwrite all conflicting files:
  brew link --overwrite boost-python3@1.74

To list all files that would be deleted:
  brew link --overwrite --dry-run boost-python3@1.74

Possible conflicting files are:
/usr/local/lib/libboost_numpy39-mt.a -> /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_numpy39-mt.a
/usr/local/lib/libboost_numpy39-mt.dylib -> /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_numpy39-mt.dylib
/usr/local/lib/libboost_numpy39.a -> /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_numpy39.a
/usr/local/lib/libboost_numpy39.dylib -> /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_numpy39.dylib
/usr/local/lib/libboost_python39-mt.a -> /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_python39-mt.a
/usr/local/lib/libboost_python39-mt.dylib -> /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_python39-mt.dylib
/usr/local/lib/libboost_python39.a -> /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_python39.a
/usr/local/lib/libboost_python39.dylib -> /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_python39.dylib
==> Summary
🍺  /usr/local/Cellar/boost-python3@1.74/1.74.0: 472 files, 18.5MB, built in 7 minutes 29 seconds
==> Running `brew cleanup boost-python3@1.74`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
Error: Could not get runtime dependencies from /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gtkglext.rb!
Error: gtk+: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gtk+.rb:86: syntax error, unexpected <<, expecting ']'
<<<<<<< Updated upstream
^~
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gtk+.rb:87: syntax error, unexpected ',', expecting end
... "--with-gdktarget=#{backend}",
...                              ^
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gtk+.rb:88: syntax error, unexpected ']', expecting end
...        "--disable-visibility"]
...                              ^
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gtk+.rb:92: syntax error, unexpected ',', expecting end
	    "--with-gdktarget=x11",
	                          ^
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gtk+.rb:94: syntax error, unexpected ']', expecting end
           ]
           ^
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gtk+.rb:108: syntax error, unexpected do (for lambda), expecting end
  test do
       ^~
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gtk+.rb:162: syntax error, unexpected do (for lambda), expecting end
    on_macos do
             ^~
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gtk+.rb:167: syntax error, unexpected end, expecting end-of-input
  end
  ^~~

/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gtk+.rb looked like

  def install
    args = ["--disable-dependency-tracking",
            "--disable-silent-rules",
            "--prefix=#{prefix}",
            "--enable-static",
            "--disable-glibtest",
            "--enable-introspection=yes",
<<<<<<< Updated upstream
            "--with-gdktarget=#{backend}",
            "--disable-visibility"]
=======
            #"--with-gdktarget=quartz",
            #"--disable-visibility"
            "--with-gdktarget=x11",
            "--enable-x11-backend"
           ]
>>>>>>> Stashed changes

So I ran following command

brew unlink boost-python3
brew link --overwrite boost-python3@1.74
brew update-reset

and finally

# install coot
wget https://gist.githubusercontent.com/YoshitakaMo/d07056febca81fc2ca73c6f379fce4b0/raw/6b6838c9aa5790b963327e8482101c8153687b41/coot.rb
brew install ./coot.rb --verbose --HEAD --debug --keep-tmp

with success.

As @YoshitakaMo mentioned, /usr/local/bin/coot failed. I changed

if [ $systype = Darwinx ] ; then
    COOT_PREFIX="$(cd "$(dirname "$current_exe_dir")" 2>/dev/null && pwd)"
else
    unlinked_exe=$(readlink -f $0)
    unlinked_exe_dir=$(dirname $unlinked_exe)
    COOT_PREFIX=$(dirname $unlinked_exe_dir)
fi

to

unlinked_exe=$(readlink -f $0)
unlinked_exe_dir=$(dirname $unlinked_exe)
COOT_PREFIX=$(dirname $unlinked_exe_dir)

but then following error occurred:

Python path configuration:
  PYTHONHOME = '/usr/local/Cellar/coot/HEAD-18202fe'
  PYTHONPATH = (not set)
  program name = 'python3'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = '/usr/local/Cellar/coot/HEAD-18202fe/libexec/coot-bin'
  sys.base_prefix = '/usr/local/Cellar/coot/HEAD-18202fe'
  sys.base_exec_prefix = '/usr/local/Cellar/coot/HEAD-18202fe'
  sys.platlibdir = 'lib'
  sys.executable = '/usr/local/Cellar/coot/HEAD-18202fe/libexec/coot-bin'
  sys.prefix = '/usr/local/Cellar/coot/HEAD-18202fe'
  sys.exec_prefix = '/usr/local/Cellar/coot/HEAD-18202fe'
  sys.path = [
    '/usr/local/Cellar/coot/HEAD-18202fe/lib/python39.zip',
    '/usr/local/Cellar/coot/HEAD-18202fe/lib/python3.9',
    '/usr/local/Cellar/coot/HEAD-18202fe/lib/python3.9/lib-dynload',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00000001122d6dc0 (most recent call first):
<no Python frame>
. ------ Coot crashed - trying to diagnose -----

I was able to start COOT from /usr/local/opt/coot/libexec/coot-bin, but map and model were displayed at the bottom left and I could not select atoms properly.

@pemsley
Copy link
Owner

pemsley commented Feb 5, 2022

I was able to start COOT from /usr/local/opt/coot/libexec/coot-bin, but map and model were displayed at the bottom left and I could not select atoms properly.

Indeed! I was wondering how @YoshitakaMo made that work because I don't think that I have pushed the fix yet.

@keitaroyam
Copy link
Contributor

So you have fixed it but not yet pushed?

@pemsley
Copy link
Owner

pemsley commented Feb 5, 2022

So you have fixed it but not yet pushed?

It was not pushed because it was not coded up with on-Mac-only test. I intend to make an update shortly - but it might be more complicated than I hope.

@pemsley
Copy link
Owner

pemsley commented Feb 6, 2022

I have pushed a simple-minded fix for the widget size vs framebuffer size problem (by by-passing the AO framebuffer). But it is not the same one that @YoshitakaMo has used because you can see in the twitter video that his version still uses the AO framebuffer.

@keitaroyam
Copy link
Contributor

keitaroyam commented Feb 6, 2022

I upgraded COOT to 050e7dd (not knowing if this is the right way)

brew upgrade ./coot.rb --verbose --fetch-HEAD --debug --keep-tmp

and it worked so nicely!

..until I resized the window.
Screenshot 2022-02-06 at 12 39 53

@pemsley
Copy link
Owner

pemsley commented Feb 6, 2022

Hmm.. Please use the argument --gtkbuilder
In order to get the Python gui working I need to
setenv GI_TYPELIB_PATH /usr/lib/x86_64-linux-gnu/girepository-1.0
For you that will be somewhat different of course.

@keitaroyam
Copy link
Contributor

What is this option for?

@pemsley
Copy link
Owner

pemsley commented Feb 6, 2022

What is this option for?

With --gtkbuilder the gui is generated (on the fly) from the builder/glade file, not from the ancient gtk2-interface.c - it's a large code path difference and may (well) affect what you are seeing.

@keitaroyam
Copy link
Contributor

So is it an option of configure? Nothing seems to have changed..

@pemsley
Copy link
Owner

pemsley commented Feb 6, 2022

So is it an option of configure? Nothing seems to have changed..

It's an argument to coot - sorry that that was not clear.

@keitaroyam
Copy link
Contributor

OK thanks. The appearance has changed a bit, but the resizing problem remains the same.

@blake-riley
Copy link

blake-riley commented Apr 1, 2022

Yep, I can confirm that the resizing problem remains on macOS

Coot 1.0 (commit e55c6b9)
macOS Big Sur 11.5.2 (a bit out of date), Intel, 27" iMac

Screen.Recording.2022-04-01.at.18.19.47.squish.mp4

I hope this video helps you identify where the issue might be in the code?

@YoshitakaMo
Copy link
Author

I'm happy to hear that Coot 1 has been released. However, this Homebrew Formula was developed before the release and I haven't tested yet for the latest version. The window-resize issue on macOS is a known bug, but I've not found the solution yet.
I will rebuild the Homebrew Formula for Coot 1 when I have time.

@pemsley
Copy link
Owner

pemsley commented Apr 2, 2022

Hi Blake, can you try a couple of things for me? What happens when you are "Plain" render mode? (Edit → Shader Preferences) and try to resize? Try turning on the FPS meter (under Draw menu). Thanks.

@pemsley
Copy link
Owner

pemsley commented Apr 2, 2022

The window-resize issue on macOS is a known bug, but I've not found the solution yet.

The problem is in graphics_info_t::reset_frame_buffers(). From the looks of things (the video from blake-riley), this is being called before attach_buffers() has been called. It might be a "OpenGL in GTK on Mac OS" bug (but probably is a problem in my code).

In "Plain" render mode it seems that reset_frame_buffers() is using the wrong dimensions.

@blake-riley
Copy link

More pixels, more time to draw a frame.
Ultimately, the resizing still suffers from the same "misdimensioning" (though it initially starts at a 1/2w, 1/2h scale factor).
I'd hazard a guess that this is to do with the 2x DPI on Macs with Retina displays.

Here's another video (so you can check out the FPS meter):
https://user-images.githubusercontent.com/4962663/161405017-9a697637-02e8-477c-9dbf-be7455b9ef05.mp4

@biochem-fan
Copy link

biochem-fan commented Apr 3, 2022

Resize issue:

On my Mac Book Pro Retina, the scale factor is 1.

After the graphics is messed up, I can recover by clicking the top part of the window where you would have menus (even if the menu is invisible in the screwed up window).

@YoshitakaMo
Copy link
Author

Hi, I'm aware there may be a lot of people waiting for a one-liner installation using Homebrew.
https://www.jiscmail.ac.uk/cgi-bin/wa-jisc.exe?A2=ind2204&L=COOT&O=D&X=329C65F4D20514F6D5&P=3586
I'm trying the installation in M1 Mac. But, as reported in the mailing list, the installation of FFTW2 (required for clipper) failed.

$ ./configure --prefix=/opt/homebrew/Cellar/clipper4coot/2.1.20180802_1/fftw2 --enable-shared --enable-float --disable-static
checking for a BSD-compatible install... /opt/homebrew/bin/ginstall -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking type prefix for installed files... (none)
checking for vendor's cc to be used instead of gcc... checking for cc... cc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of cc... gcc3
checking whether we are using gcc 2.90 or later... yes
checking for a BSD-compatible install... /opt/homebrew/bin/ginstall -c
checking whether make sets $(MAKE)... (cached) yes
checking for ranlib... ranlib
checking whether ln -s works... yes
checking build system type... configure: error: /bin/sh ./config.sub -apple-darwin21.4.0 failed

I guess the ./configure failed to detect the machine environment. Could anyone tell me how to solve this issue?

@huwjenkins
Copy link

Is this and this fix any help? I don't have access to a M1 Mac to test.

@pemsley
Copy link
Owner

pemsley commented Apr 3, 2022

I'm trying the installation in M1 Mac. But, as reported in the mailing list, the installation of FFTW2 (required for clipper) failed.

$ ./configure --prefix=/opt/homebrew/Cellar/clipper4coot/2.1.20180802_1/fftw2 --enable-shared --enable-float --disable-static
checking for a BSD-compatible install... /opt/homebrew/bin/ginstall -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking type prefix for installed files... (none)
checking for vendor's cc to be used instead of gcc... checking for cc... cc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of cc... gcc3
checking whether we are using gcc 2.90 or later... yes
checking for a BSD-compatible install... /opt/homebrew/bin/ginstall -c
checking whether make sets $(MAKE)... (cached) yes
checking for ranlib... ranlib
checking whether ln -s works... yes
checking build system type... configure: error: /bin/sh ./config.sub -apple-darwin21.4.0 failed

I guess the ./configure failed to detect the machine environment. Could anyone tell me how to solve this issue?

Curious that blake-riley didn't have the same problem:

#38

@YoshitakaMo
Copy link
Author

YoshitakaMo commented Apr 3, 2022

@huwjenkins, Thanks! Patches of https://sources.debian.org/patches/fftw/2.1.5-6/ (especially "05_ac_define_syntax.diff") and autoreconf -vfi command enabled the installation on M1 Mac! I'll rebuild brewsci/bio/clipper4coot.rb after some additional tests.

@blake-riley
Copy link

blake-riley commented Apr 3, 2022

Sorry for not mentioning it. I threw in

args << "--build=arm-apple-#{OS.kernel_name.downcase}#{OS.kernel_version.major}" if Hardware::CPU.arm? && OS.mac?

to clipper4coot.rb (ahead of the ./configure step).
Clearly hacky.
autoreconf seems like the way to go, @YoshitakaMo .

@blake-riley
Copy link

blake-riley commented Apr 3, 2022

FWIW I was also able to drop the depends_on "xcode" from all the recipes.
I'm not sure why it's necessary for building, though I could be missing something.
(Edit: it appears that this is now known)

@Species10C
Copy link

Hi All

Im just documenting here what I wrote on Twitter: https://twitter.com/klausenhauser/status/1510655605115179010?s=20&t=KOufKUDc17tJGqIkQXZvzQ

I am on a Macbook Pro, Intel, running Big Sur 12.3.1.

I am for sure not an expert in any of this, but I could make out most of what I see on here.

I followed @YoshitakaMo original commands

Here is the installation step using my Homebrew formulae.

# download Formula of boost@1.74 and boost-python3@1.74 first
brew install wget
wget https://raw.githubusercontent.com/YoshitakaMo/homebrew-bio/coot/Formula/boost%401.74.rb
wget https://raw.githubusercontent.com/YoshitakaMo/homebrew-bio/coot/Formula/boost-python3%401.74.rb
# install them
brew install ./boost@1.74.rb --verbose
brew install ./boost-python3@1.74.rb --verbose
# install coot
wget https://gist.githubusercontent.com/YoshitakaMo/d07056febca81fc2ca73c6f379fce4b0/raw/6b6838c9aa5790b963327e8482101c8153687b41/coot.rb
brew install ./coot.rb --verbose --HEAD --debug --keep-tmp

Everything up to the final brew install for coot was completely A-OK for me.

During COOT installation I ran into an error in which I ignored.

Screenshot 2022-04-03 at 17 59 09

After the ignore, everything seemed to be successful but under /usr/local/opt/coot/libexec/, coot-bin does not exist.

I tried to brew reinstall coot but then I get the following:

Error: An exception occurred within a child process:
  FormulaUnavailableError: No available formula with the name "/usr/local/opt/coot/.brew/coot.rb".

@blake-riley
Copy link

blake-riley commented Apr 4, 2022

@Species10C: there is a race condition in make install, it needs to be run in an ENV.deparallelize in the recipe.
When you ignored this error, you hadn't finished moving compiled files into their install directories, and you skipped right ahead. This is why you can't find coot-bin.
To fix it, I think (could be wrong) you will have to first brew rm coot, and then you should be back to an unbroken state, from which you can reinstall.

@jianghaizhu
Copy link

@pemsley Yes, you are right that Coot is using a software renderer instead of the native GPU. This is very curious since Pymol installed by linuxbrew also uses llvmpipe.

 PyMOL(TM) Molecular Graphics System, Version 3.0.0.
 Copyright (c) Schrodinger, LLC.
 All Rights Reserved.

    Created by Warren L. DeLano, Ph.D.

    PyMOL is user-supported open-source software.  Although some versions
    are freely available, PyMOL is not in the public domain.

    If PyMOL is helpful in your work or study, then please volunteer
    support for our ongoing efforts to create open and affordable scientific
    software by purchasing a PyMOL Maintenance and/or Support subscription.

    More information can be found at "http://www.pymol.org".

    Enter "help" for a list of commands.
    Enter "help <command-name>" for information on a specific command.

 Hit ESC anytime to toggle between text and graphics.

 Detected OpenGL version 4.5. Shaders available.
 Detected GLSL version 4.50.
 OpenGL graphics engine:
  GL_VENDOR:   Mesa
  GL_RENDERER: llvmpipe (LLVM 18.1.7, 256 bits)
  GL_VERSION:  4.5 (Compatibility Profile) Mesa 24.1.2
 Detected 48 CPU cores.  Enabled multithreaded rendering.

However, ChimeraX installed form .deb file uses the native NVIDIA renderer.

UCSF ChimeraX version: 1.8 (2024-06-10)
© 2016-2024 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
graphics driver
OpenGL version: 3.3.0 NVIDIA 535.183.01
OpenGL renderer: NVIDIA GeForce RTX 3090/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

And glxinfo -B shows that the OS is using the native GPU as well.

name of display: :1
display: :1  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 24576 MB
    Total available memory: 24576 MB
    Currently available dedicated video memory: 23720 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 3090/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 535.183.01
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6.0 NVIDIA 535.183.01
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)

OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 535.183.01
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

I wonder if this has something to do with the linuxbrew installation process. I will try to compile Coot directly from the source code and see if it will make a difference.

@jianghaizhu
Copy link

@pemsley I am having trouble compiling coot 1.1.0.9 from source code on Ubuntu #126 (comment).

@YoshitakaMo
Copy link
Author

I've created coot@1.1.09.rb experimentally.

wget https://raw.githubusercontent.com/YoshitakaMo/homebrew-bio/coot/Formula/coot%401.1.09.rb
brew install ./coot@1.1.09.rb --verbose (--HEAD)

This formula executes the installation of Coot 1.1.09 and the latest commit version if --HEAD is added.

@pemsley About your comment #33 (comment), glfw was removed. requests, urllib3, and certifi is still necessary for 1.1.09, but not for the latest one (--HEAD). These will be removed after the release of ver. 1.1.10.

1: The "Coot" executable is now called MacCoot, so the replacement of src/Coot should now fail/be ignored.

I removed src/Coot replacement, but a new problem of a non-executable coot in the bin directory has not yet been fixed. I tried some Homebrew's tweaks to change the permission (such as chmod 0755 bin/"coot"), but no effect.
It is possible to create a symbolic link to libexec/Maccoot in the bin directory. However, because Homebrew's policy doesn't allow a non-executable file in the bin directory, we want to resolve it.

Finally, I'm happy to announce that the CI for brewsci/bio has been fully restored, so I am on track to register Coot there. Once the above issues are resolved, distribution and maintenance of Homebrew's Coot will be much easier.

@YoshitakaMo
Copy link
Author

In my Ubuntu 22.04 environment, I couldn't launch Coot 1.1.08 and 1.1.09 after installation using Homebrew:

$ coot
libEGL warning: DRI2: failed to authenticate
INFO:: built with GTK 4.14.4
pdd /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/share/coot
There are 143 data in /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/share/coot/lib/data/monomers/list/mon_lib_list.cif
There are 2 data in /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/share/coot/lib/data/monomers/a/ALA.cif
There are 2 data in /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/share/coot/lib/data/monomers/a/ASP.cif
...
...
There are 2 data in /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/share/coot/lib/data/monomers/d/DT.cif
There are 2 data in /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/share/coot/lib/data/monomers/h/HOH.cif
There are 2 data in /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/share/coot/lib/data/monomers/n/NA.cif


(Coot:597509): Gtk-WARNING **: 16:32:11.857: No IM module matching GTK_IM_MODULE=ibus found

(Coot:597509): GLib-GIO-ERROR **: 16:32:11.971: Settings schema 'org.gtk.gtk4.Settings.FileChooser' does not contain a key named 'view-type'
Stack trace (most recent call last):
#29   Object "", at 0xffffffffffffffff, in 
#28   Object "/home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/libexec/Coot", at 0x64474ef9a224, in _start
#27   Source "../csu/libc-start.c", line 392, in __libc_start_main_impl [0x7d467f029e3f]
#26   Source "../sysdeps/nptl/libc_start_call_main.h", line 58, in __libc_start_call_main [0x7d467f029d8f]
#25   Object "/home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/libexec/Coot", at 0x64474ef9991c, in main
#24   Object "/home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/libexec/Coot", at 0x64474efb8f3b, in new_startup(int, char**)

It should have worked fine before...
If anyone else has encountered the same issue, please report here.

@jianghaizhu
Copy link

@YoshitakaMo I had the same problem on Ubuntu 22.04.

Coot:597509): GLib-GIO-ERROR **: 16:32:11.971: Settings schema 'org.gtk.gtk4.Settings.FileChooser' does not contain a key named 'view-type'
Stack trace (most recent call last):

I solved this problem by adding export XDG_DATA_DIRS="/home/linuxbrew/.linuxbrew/share:$XDG_DATA_DIRS"in my .zshrc or .bashrc file.

@YoshitakaMo
Copy link
Author

YoshitakaMo commented Jul 16, 2024

@jianghaizhu Thanks for writing about the solution. This worked in my environment!

Also, I've found the cause of the non-executable coot issue!! The coot script must have a shebang. See https://github.com/YoshitakaMo/homebrew-bio/blob/fd5039e07699231cc45bb73bcc845fdaea7262eb/Formula/coot%401.1.09.rb#L145 .
A script without a shebang will probably not be recognized as executable, and its file permission cannot be modified by hand in Homebrew's formula.

@pemsley Could you incorporate these two lines into src/coot script? export XDG_DATA_DIRS is probably necessary only for Linux. If these are done in the next release, I will register the coot formula in brewsci/bio.

P.S. @pemsley, I've found two monomer library files in your server. Which one is preferred?

  resource "monomers" do
    url "https://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/dependencies/refmac-monomer-library.tar.gz"
    sha256 "03562eec612103a48bd114cfe0d171943e88f94b84610d16d542cda138e5f36b"
    # url "https://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/dependencies/refmac-monomer-library-20210105.tar.gz"
    # sha256 "22cdf3fdac36e11ca36398e61bd764a6894336715facd0174008310c436150ff"
  end

@jianghaizhu
Copy link

@YoshitakaMo I am glad this helped. How is your FPS in Coot on Ubuntu 22.04? Mine is very low since Coot won't use the native GPU.

@YoshitakaMo
Copy link
Author

YoshitakaMo commented Jul 16, 2024

@jianghaizhu In my environment, Coot uses llvmpipe as a renderer, though I have a GPU of RTX3090 in this Linux PC.

$ coot
libEGL warning: DRI2: failed to authenticate
INFO:: built with GTK 4.14.4
pdd /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/share/coot
There are 143 data in /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/share/coot/lib/data/monomers/list/mon_lib_list.cif
There are 2 data in /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.09/share/coot/lib/data/monomers/a/ALA.cif
...
...
INFO:: GL Version:                  4.5 (Core Profile) Mesa 24.1.3
INFO:: GL Shading Language Version: 4.50
INFO:: GL Renderer:                 llvmpipe (LLVM 18.1.8, 256 bits)
INFO:: GL Vendor:                   Mesa
Shader compile         meshes-with-shadows.shader success
Shader compile       meshes-for-shadow-map.shader success
Shader compile instanced-meshes-for-shadow-map.shader success

However, I think this is normal behavior. The software packages built with Homebrew do not use any third-party drivers such as Nvidia or CUDA. The reason why the PyMOL installed with Homebrew uses llvmpipe is probably the same.

Since I am only interested in establishing a way to install coot with Homebrew, I hope that someone else will solve the problem.

@pemsley
Copy link
Owner

pemsley commented Jul 16, 2024

Wow! What a lot to catch up on!

A script without a shebang will probably not be recognized as executable

Agh!
OK. Let me fix that now and push out 1.1.10 ASAP.

Edit: OK, the shebang fix has been pushed.

@pemsley
Copy link
Owner

pemsley commented Jul 16, 2024

This is what it says for me, for the record

INFO:: GL Version:                  4.1 INTEL-22.1.29
INFO:: GL Shading Language Version: 4.10
INFO:: GL Renderer:                 Intel(R) Iris(TM) Plus Graphics OpenGL Engine
INFO:: GL Vendor:                   Intel Inc.
WARNING:: validation failed: meshes-with-shadows.shader validation status 0
Shader compile         meshes-with-shadows.shader validation-failed

@pemsley
Copy link
Owner

pemsley commented Jul 16, 2024

requests, urllib3, and certifi is still necessary for 1.1.09, but not for the latest one (--HEAD). These will be removed after the release of ver. 1.1.10.

I see - sorry for the confusion. Let's make that happen soon.

@pemsley
Copy link
Owner

pemsley commented Jul 16, 2024

@jianghaizhu I am sorry that I cannot be helpful - I don't have the same hardware.
Are you using the Homebrew installation of Coot on a type of Linux?

@jianghaizhu
Copy link

@pemsley I first tried installing Coot using Homebrew on Ubuntu 22.04. Once installed, it was barely usable due to the software rendering. Now, I am trying to compile Coot directly from the source code using the Build-it-3-3 script and having trouble with RDkit. You can check the error at #126 (comment).

@YoshitakaMo
Copy link
Author

I'm excited to announce that Coot 1.1.09 has been merged into brewsci/bio ! You can now install the latest Coot with brew install brewsci/bio/coot. I would like to thank everyone who has supported the creation of Homebrew over the last three years!!

When a new version of Coot is released in the future, please submit a new formula by following the instructions at https://docs.brew.sh/How-To-Open-a-Homebrew-Pull-Request.

@pemsley
Copy link
Owner

pemsley commented Jul 17, 2024

I'm excited to announce that Coot 1.1.09 has been merged into brewsci/bio !

Crikey! Yay! Woot! 🎉🎉🎉

@olibclarke
Copy link

olibclarke commented Jul 18, 2024

This is great @YoshitakaMo & @pemsley!! Is there an easy way to run the homebrew Coot 1.x version alongside an existing 0.9x install? I want to have Coot 1 available to test and learn, but will still need 0.9x for a while, so it would be good to have both running side by side

@YoshitakaMo
Copy link
Author

@olibclarke If your Coot 0.9x is not installed using Homebrew, the two can coexist. Homebrew's Coot 1 will be installed in /opt/homebrew/opt/coot/bin/coot (or /usr/local/opt/coot/bin/coot). If you want to launch Coot 1, type the full path in your terminal.

@olibclarke
Copy link

Thanks - I have coot installed with CCP4, & the homebrew version was overriding it - to fix it I just added an alias at the end of my ~/.bash_profile:

alias oldcoot="/Applications/CCP4/ccp4-9/bin/coot"

@jianghaizhu
Copy link

My Homebrew installation is non-standard. Due to institutional policy, I can only install Homebrew under my home directory. However, I could still install Coot 1.1.0.9 on my M2 MacBook Pro with Ventura 13.6.7 using brew install brewsci/bio/coot. @YoshitakaMo and @pemsley, Thanks for all the great work! Since I can't use bottled binary, everything was compiled from scratch. I encountered a few issues after launching Coot. Some of them are probably known.

  1. After launching Coot, I can't click on the menu to open a file. I had to click on the desktop background first, then click on Coot to focus, and finally click on the menu to make them clickable.
  2. I can't click on any items in a pull-down menu. For example, in the "Display Manager" next to Molecule 0, I can click on "Bonds (Colour by Atom)" and a pull-down menu would display a list of options. When I move my cursor, I can see the highlighted item moves with my cursor. However, when I click on an item, I can't select it. The only way for me to choose an option from this pull-down menu is to use my "up" or "down" arrow keys to highlight an item and use "return" to select it.
  3. The rotation center is at the upper-right corner of the Coot window. I have to change the "Shader/Lighting Mode" from "Plain" to "Fancy" to bring the center back.
  4. I got a bunch of "WARNING:: validation failed" when Coot launches. See below.
  5. When I clicked on "Validate" -> "Ramachandran Plot", Coot just froze and never came back.

Here is the console output from Coot.

coot
INFO:: built with GTK 4.14.4
pdd /Users/zhuj6/homebrew/Cellar/coot/1.1.09/share/coot
UNSUPPORTED (log once): POSSIBLE ISSUE: unit 1 GLD_TEXTURE_INDEX_2D is unloadable and bound to sampler type (Float) - using zero texture because texture unloadable
INFO:: Using Standard CCP4 Refmac dictionary from CLIBD_MON: /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/
There are 243 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/list/mon_lib_list.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/a/ALA.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/a/ASP.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/a/ASN.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/c/CYS.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/g/GLN.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/g/GLY.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/g/GLU.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/p/PHE.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/h/HIS.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/i/ILE.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/l/LYS.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/l/LEU.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/m/MET.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/m/MSE.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/p/PRO.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/a/ARG.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/s/SER.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/t/THR.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/v/VAL.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/t/TRP.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/t/TYR.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/p/PO4.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/s/SO4.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/g/GOL.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/c/CIT.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/e/EDO.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/a/A.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/c/C.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/g/G.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/u/U.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/d/DA.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/d/DC.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/d/DG.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/d/DT.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/h/HOH.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/n/NA.cif
debug:: in setup_python()    pydirectory is /Users/zhuj6/homebrew/Cellar/coot/1.1.09/share/coot/../../lib/python3.12/site-packages
debug:: in setup_python() pkgpydirectory is /Users/zhuj6/homebrew/Cellar/coot/1.1.09/share/coot/../../lib/python3.12/site-packages/coot
INFO:: Using Standard CCP4 Refmac dictionary from CLIBD_MON: /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/
There are 243 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/list/mon_lib_list.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/a/ALA.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/a/ASP.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/a/ASN.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/c/CYS.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/g/GLN.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/g/GLY.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/g/GLU.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/p/PHE.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/h/HIS.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/i/ILE.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/l/LYS.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/l/LEU.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/m/MET.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/m/MSE.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/p/PRO.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/a/ARG.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/s/SER.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/t/THR.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/v/VAL.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/t/TRP.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/t/TYR.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/p/PO4.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/s/SO4.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/g/GOL.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/c/CIT.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/e/EDO.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/a/A.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/c/C.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/g/G.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/u/U.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/d/DA.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/d/DC.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/d/DG.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/d/DT.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/h/HOH.cif
There are 2 data in /Users/zhuj6/Applications/ccp4-8.0/lib/data/monomers/n/NA.cif
INFO:: GL Version:                  4.1 Metal - 83.1
INFO:: GL Shading Language Version: 4.10
INFO:: GL Renderer:                 Apple M2 Pro
INFO:: GL Vendor:                   Apple
WARNING:: validation failed: meshes-with-shadows.shader validation status 0
Shader compile         meshes-with-shadows.shader validation-failed
WARNING:: validation failed: meshes-for-shadow-map.shader validation status 0
Shader compile       meshes-for-shadow-map.shader validation-failed
WARNING:: validation failed: instanced-meshes-for-shadow-map.shader validation status 0
Shader compile instanced-meshes-for-shadow-map.shader validation-failed
WARNING:: validation failed: meshes-for-ssao.shader validation status 0
Shader compile             meshes-for-ssao.shader validation-failed
WARNING:: validation failed: instanced-meshes-for-ssao.shader validation status 0
Shader compile   instanced-meshes-for-ssao.shader validation-failed
WARNING:: validation failed: texture-meshes-for-ssao.shader validation status 0
Shader compile     texture-meshes-for-ssao.shader validation-failed
WARNING:: validation failed: texture-meshes-with-shadows.shader validation status 0
Shader compile texture-meshes-with-shadows.shader validation-failed
WARNING:: validation failed: texture-meshes-shadow-map.shader validation status 0
Shader compile   texture-meshes-shadow-map.shader validation-failed
WARNING:: validation failed: texture-meshes.shader validation status 0
Shader compile              texture-meshes.shader validation-failed
WARNING:: validation failed: shadow-map-image-texture.shader validation status 0
Shader compile    shadow-map-image-texture.shader validation-failed
WARNING:: validation failed: 9.ssao_geometry.shader validation status 0
Shader compile             9.ssao_geometry.shader validation-failed
WARNING:: validation failed: 9.ssao.shader validation status 0
Shader compile                      9.ssao.shader validation-failed
WARNING:: validation failed: 9.ssao_blur.shader validation status 0
Shader compile                 9.ssao_blur.shader validation-failed
WARNING:: validation failed: instanced-meshes-with-shadows.shader validation status 0
Shader compile instanced-meshes-with-shadows.shader validation-failed
WARNING:: validation failed: outline-of-active-residue.shader validation status 0
Shader compile   outline-of-active-residue.shader validation-failed
WARNING:: validation failed: map.shader validation status 0
Shader compile                         map.shader validation-failed
WARNING:: validation failed: draw-map-cap.shader validation status 0
Shader compile                draw-map-cap.shader validation-failed
WARNING:: validation failed: model.shader validation status 0
Shader compile                       model.shader validation-failed
WARNING:: validation failed: central-cube.shader validation status 0
Shader compile                central-cube.shader validation-failed
WARNING:: validation failed: central-cube.shader validation status 0
Shader compile                central-cube.shader validation-failed
WARNING:: validation failed: hud-text.shader validation status 0
Shader compile                    hud-text.shader validation-failed
WARNING:: validation failed: hud-bars.shader validation status 0
Shader compile                    hud-bars.shader validation-failed
WARNING:: validation failed: hud-labels.shader validation status 0
Shader compile                  hud-labels.shader validation-failed
WARNING:: validation failed: hud-image-texture.shader validation status 0
Shader compile           hud-image-texture.shader validation-failed
WARNING:: validation failed: atom-label.shader validation status 0
Shader compile                  atom-label.shader validation-failed
WARNING:: validation failed: moleculestotriangles.shader validation status 0
Shader compile        moleculestotriangles.shader validation-failed
WARNING:: validation failed: lines.shader validation status 0
Shader compile                       lines.shader validation-failed
WARNING:: validation failed: lines-pulse.shader validation status 0
Shader compile                 lines-pulse.shader validation-failed
WARNING:: validation failed: rama-balls.shader validation status 0
Shader compile                  rama-balls.shader validation-failed
WARNING:: validation failed: particles.shader validation status 0
Shader compile                   particles.shader validation-failed
WARNING:: validation failed: instanced-objects.shader validation status 0
Shader compile           instanced-objects.shader validation-failed
WARNING:: validation failed: extra-distance-restraints.shader validation status 0
Shader compile   extra-distance-restraints.shader validation-failed
WARNING:: validation failed: hud-geometry-tooltip-text.shader validation status 0
Shader compile   hud-geometry-tooltip-text.shader validation-failed
WARNING:: validation failed: residue-markers.shader validation status 0
Shader compile             residue-markers.shader validation-failed
WARNING:: validation failed: residue-markers-for-ssao.shader validation status 0
Shader compile    residue-markers-for-ssao.shader validation-failed
WARNING:: validation failed: ligand-view.shader validation status 0
Shader compile                 ligand-view.shader validation-failed
WARNING:: validation failed: model-as-mesh.shader validation status 0
Shader compile               model-as-mesh.shader validation-failed
WARNING:: validation failed: symmetry-atoms-lines.shader validation status 0
Shader compile        symmetry-atoms-lines.shader validation-failed
WARNING:: validation failed: hud-bars.shader validation status 0
Shader compile                    hud-bars.shader validation-failed
WARNING:: validation failed: rama-plot-axes-and-ticks.shader validation status 0
Shader compile    rama-plot-axes-and-ticks.shader validation-failed
WARNING:: validation failed: rama-plot-phi-psi-markers.shader validation status 0
Shader compile   rama-plot-phi-psi-markers.shader validation-failed
WARNING:: validation failed: hud-lines.shader validation status 0
Shader compile                   hud-lines.shader validation-failed
WARNING:: validation failed: background-image.shader validation status 0
Shader compile            background-image.shader validation-failed
WARNING:: validation failed: meshes.shader validation status 0
Shader compile                      meshes.shader validation-failed
WARNING:: validation failed: texture-meshes.shader validation status 0
Shader compile              texture-meshes.shader validation-failed
WARNING:: validation failed: effects.shader validation status 0
Shader compile                     effects.shader validation-failed
WARNING:: validation failed: blur-x.shader validation status 0
Shader compile                      blur-x.shader validation-failed
WARNING:: validation failed: blur-y.shader validation status 0
Shader compile                      blur-y.shader validation-failed
WARNING:: validation failed: depth-of-field.shader validation status 0
Shader compile              depth-of-field.shader validation-failed
WARNING:: validation failed: rotation-centre-cross-hairs-for-ssao.shader validation status 0
Shader compile rotation-centre-cross-hairs-for-ssao.shader validation-failed
GL ERROR:: Mesh::setup_buffers() --- start ---

** (MacCoot:18773): WARNING **: 13:14:15.105: set_vertical_toolbar_internal_alignment: Toolbar item 0x13bc67d20 of type GtkToggleButton: The parent widget that wraps GtkToggleButton::child is not a GtkBox but a GtkToggleButton. GtkToggleButton::child however is a GtkBox. Attempt will be made to align it. It might not work.

** (MacCoot:18773): WARNING **: 13:14:15.105: set_vertical_toolbar_internal_alignment: Toolbar item 0x13bc68390 of type GtkMenuButton: The parent widget that wraps GtkMenuButton::child is not a GtkBox but a GtkGizmo. GtkMenuButton::child however is a GtkBox. Attempt will be made to align it. It might not work.

** (MacCoot:18773): WARNING **: 13:14:15.105: set_vertical_toolbar_internal_alignment: Toolbar item 0x13bc69210 of type GtkMenuButton: The parent widget that wraps GtkMenuButton::child is not a GtkBox but a GtkGizmo. GtkMenuButton::child however is a GtkBox. Attempt will be made to align it. It might not work.

** (MacCoot:18773): WARNING **: 13:14:15.105: set_vertical_toolbar_internal_alignment: Toolbar item 0x13bc69f20 of type GtkMenuButton: The parent widget that wraps GtkMenuButton::child is not a GtkBox but a GtkGizmo. GtkMenuButton::child however is a GtkBox. Attempt will be made to align it. It might not work.

** (MacCoot:18773): WARNING **: 13:14:15.105: set_vertical_toolbar_internal_alignment: Toolbar item 0x13bc6ac30 of type GtkMenuButton: The parent widget that wraps GtkMenuButton::child is not a GtkBox but a GtkGizmo. GtkMenuButton::child however is a GtkBox. Attempt will be made to align it. It might not work.

** (MacCoot:18773): WARNING **: 13:14:15.105: set_vertical_toolbar_internal_alignment: Toolbar item 0x13bc6da10 of type GtkMenuButton: The parent widget that wraps GtkMenuButton::child is not a GtkBox but a GtkGizmo. GtkMenuButton::child however is a GtkBox. Attempt will be made to align it. It might not work.

** (MacCoot:18773): WARNING **: 13:14:15.105: set_vertical_toolbar_internal_alignment: Toolbar item 0x13bc6fad0 of type GtkMenuButton: The parent widget that wraps GtkMenuButton::child is not a GtkBox but a GtkGizmo. GtkMenuButton::child however is a GtkBox. Attempt will be made to align it. It might not work.
DEBUG:: --- new_startup_on_glarea_resize() 1100 1364
Gtk-Message: 13:14:24.168: GtkDialog mapped without a transient parent. This is discouraged.
INFO:: Reading coordinate file: /Users/zhuj6/Projects/FumC/Apo/FumC_Apo_real_space_refined_022.pdb
INFO:: file /Users/zhuj6/Projects/FumC/Apo/FumC_Apo_real_space_refined_022.pdb has been read.
INFO:: Found 1 models
   Model 1 had 0 links
WARNING:: No symmetry available for this molecule
DEBUG:: start display_control_molecule_combo_box()
DEBUG:: text: "Bonds (Colour by Atom)" user data (imol) 0
----- refresh_validation_graph_model_list adding label 0 .../Apo/FumC_Apo_real_space_refined_022.pdb
----------------------- refresh_ramachandran_plot_model_list ---------
----- refresh_ramachandran_plot_model_list adding label 0 .../Apo/FumC_Apo_real_space_refined_022.pdb
----------------------- done refresh_ramachandran_plot_model_list ---------
WARNING:: No Symmetry for this model
  INFO:: fill_ghost_info Constructed 3 ghosts
      Ghost 0 name: "NCS found from matching Chain B onto Chain A"
      Ghost 1 name: "NCS found from matching Chain C onto Chain A"
      Ghost 2 name: "NCS found from matching Chain D onto Chain A"
Molecule 0 read successfully

(MacCoot:18773): Gdk-CRITICAL **: 13:15:42.593: _gdk_macos_surface_update_fullscreen_state: assertion 'GDK_IS_MACOS_SURFACE (self)' failed

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x287ca0fd0(GtkCellView)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x287c9f4a0(GtkBox)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x287c9f320(GtkToggleButton)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x287c9f170(GtkBox)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x287c9eff0(GtkComboBoxText)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x287c9ddb0(GtkBox)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x13bb9fcf0(GtkBox)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x13bb9fb40(GtkViewport)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x13bb9ec70(GtkScrolledWindow)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x13bb9deb0(GtkBox)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x13bb9bf10(GtkPaned)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x13bb987d0(GtkBox)

(MacCoot:18773): Gtk-WARNING **: 13:15:42.602: Broken accounting of active state for widget 0x13bb9bda0(GtkWindow)
fill_and_show_shader_preferences()    fancy_mode_togglebutton 0x13be76520
fill_and_show_shader_preferences() standard_mode_togglebutton 0x13be76180
in on_shader_settings_standard_mode_radiobutton_toggled() is-toggle 1 is-check 0
fill_and_show_shader_preferences() fancy_vbox1 0x13be77480
resize gl rama to 800 800
--- g_application_run() returns with status 0

@pemsley
Copy link
Owner

pemsley commented Jul 20, 2024

@YoshitakaMo (and interested others)

I have released Coot 1.1.10

https://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/source/releases/coot-1.1.10.tar.gz

@pemsley
Copy link
Owner

pemsley commented Jul 20, 2024

After launching Coot, I can't click on the menu to open a file. I had to click on the desktop background first, then click on Coot to focus, and finally click on the menu to make them clickable.

There was a macOS 14 update (either .1 or .2) that made this go away for me.

Shader validation failures

This is common/expected/routine on macOS (I don't understand why).

HUD Rama crash

I don't understand what is going on here - frustrating.

@rpiwowarczyk
Copy link

Is it expected that left click doesn't do anything on MacOS? I can only zoom in with pinching on track pad or keyboard shortcut.

@pemsley
Copy link
Owner

pemsley commented Jul 22, 2024

@rpiwowarczyk
Left-mouse is for atom picking, right-mouse is for view rotation.

If you don't have a mouse

import coot
coot.set_use_trackpad(1)

@YoshitakaMo
Copy link
Author

Coot 1.1.10 is available in Homebrew. I'd like to thank @huwjenkins for helping to improve the Homebrew Formula.

@jianghaizhu
Copy link

There was a macOS 14 update (either .1 or .2) that made this go away for me.

@pemsley I upgraded to macOS 14.6.1, and all these are fixed.

HUD Rama crash

I don't understand what is going on here - frustrating.

Rama plot still froze Coot for me. Is there a way to let Coot print out more information for debugging?

@jianghaizhu
Copy link

Left-mouse is for atom picking, right-mouse is for view rotation.

@pemsley Can we redefine the mouse functions? Say, make it work the same way as Coot 0.9.

@olibclarke
Copy link

100% please please bring back coot 0.9 controls for picking, slabbing & rotation

@pemsley
Copy link
Owner

pemsley commented Aug 10, 2024

Can we redefine the mouse functions? Say, make it work the same way as Coot 0.9.

Yes... sort of, anyway.
coot.set_use_trackpad(1)
will turn on left-mouse view rotation.

@pemsley
Copy link
Owner

pemsley commented Aug 10, 2024

100% please please bring back coot 0.9 controls for picking, slabbing & rotation

@LucreziaCatapano recently returned from a meeting where there were requests for the old key-bindings.

The new key-binding mechanism is flexible enough to allow this.

@jianghaizhu
Copy link

Can we redefine the mouse functions? Say, make it work the same way as Coot 0.9.

Yes... sort of, anyway. coot.set_use_trackpad(1) will turn on left-mouse view rotation.

@pemsley Thanks! This made both left- and right-mouse click for view rotating. Muscle memory is hard to overcome :)

The new key-binding mechanism is flexible enough to allow this.

Could we define the functions for left-, middle-, right-mouse click and click-and-hold, and wheel scroll in coot_preferences.py?

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

No branches or pull requests