Skip to content

ECCE 9.0.0-alpha.7

Pre-release
Pre-release

Choose a tag to compare

@ohlincha ohlincha released this 07 Oct 08:07
· 455 commits to main since this release

A preview of ECCE 9.0, for testing. Use 8.18.8 for production work, including teaching labs. Please report problems as issues.

New since 9.0.0-alpha.6.

Builder no longer crashes when opening a structure file (#238). In 9.0.0-alpha.6 the Builder aborted when a PDB, CAR, MVM or cube file was opened (from the command line or with File > Open), and an XYZ file after its units prompt, while the panel layout was List + detail, the default for new installs. This is the main reason for this release. Workaround for alpha.6: View > Panel layout > Classic, Stacked or Accordion. Opening calculations and Add Structure from File were not affected.

The viewer no longer crashes on FastX and similar remote X servers with the Fedora and RHEL packages (#237). On those systems the Coin3D library opened its own hardware OpenGL connection to the X server; on an X server that offers DRI3 without a usable device, the graphics driver's fallback aborted (malloc(): unaligned fastbin chunk detected). The viewer now gives Coin3D the software connection it already uses for thumbnails. LIBGL_DRI3_DISABLE=1 is not needed, and Mesa 25.2 and later ignore it.

ORCA with explicitly written basis sets gave wrong energies (#239, also fixed in 8.18.8). When ECCE wrote a generally contracted basis set (cc-pV*Z, ANO) into the ORCA input as primitives, only the first contraction of each shell was written: water with cc-pVDZ had 23 functions instead of 24 and an energy 0.31 Eh too high. Rerun such ORCA calculations. Calculations where ECCE passed an ORCA basis keyword were not affected.

More basis sets by name (#118, #154). ORCA is given its own keyword for 82 basis sets (was 35) and Gaussian 16 for 67, each checked by running the program against ECCE's primitives (same number of functions, energy within 1e-5 Eh). Thirteen Gaussian sets that could not be chosen before are now in the library, among them SDD, def2-SV/TZV/QZV, LanL2MB, CEP-4G/31G/121G, CBSB7 and EPR-II/III, with their pseudopotentials where they have them.

Windows fit small screens (#189). Windows and dialogs taller than the screen (common on laptops and in FastX or other remote sessions) are limited to the screen and scroll, with their buttons always visible. Checked at 1024x600, 1024x768 and 1920x1080 for every application and the code dialogs.

Normal-mode arrows (#228). Each arrow starts on the surface of its atom as drawn (on the end of the rod in Stick style) and is redrawn from there when the display style or the atom radii change, so a small displacement no longer ends inside its atom. The longest arrow's tip is 1.0 Å from its atom, the others keep their relative lengths, and all arrows have the same thickness whatever their length.

Methane, a bending mode: arrows start on the atom spheres

Orbital surfaces at the requested cutoff (#226). Computing an MO surface no longer shows a surface at 0.05 for a moment before the one at the cutoff set with the slider; the surface is built once, at that cutoff. The cube-file panel now builds its surface at the slider's cutoff too; before, it always used 0.05.

The MOs table opens on the HOMO. Properties > Orbitals > MOs selects the (alpha) HOMO and scrolls it into the middle of the table; before, the table showed its top rows, the highest virtual orbitals. Checked against the occupations in ORCA, Gaussian and NWChem outputs.

Benzene (ORCA): the MOs table opens with MO 21, the HOMO, selected

Composition of an orbital (#161). Selecting an MO in the MOs table shows, below it, which atoms and shells it is made of, for example C2 p 24.6% C5 p 24.6% … (Mulliken population, summing to 100%); View Coeff shows each basis function's share, and ecce-mocomp prints the same tables from the command line. The numbers agree with Multiwfn to within 0.001 percentage points for the test molecules.

MO composition under the MOs table

Help menus open the built-in help (#219). The Help menu of every application opens the help window at that application's chapter, scrolled to its heading, as the Help button of Register Machines already did. The help pages are still being written; some contain notes marked [TO CHECK].

The Organizer's Help menu opens the help window at its chapter

Encrypted connections to a central server (#236, optional). With TLS on, the data server is reached over HTTPS and the broker over MQTT with TLS, so logins, passwords and calculation data no longer cross the network in clear text. The unencrypted ports then accept connections from the server machine itself only. It is off by default; a server set up as before keeps working as before. The administrator sets it up once on the server and once on each client installation; students start ECCE as before, with ecce -remote.

On the server, as the account that runs the data server and broker:

ecce-remote-setup --server all --tls     # makes a 10-year self-signed certificate
ecce-dataserver-stop; ecce-gateway-stop; ecce-dataserver-start && ecce-gateway-start

The data server then listens on port 8443 (HTTPS) and the broker on port 8883 (TLS); open these two in the firewall, not 8096 and 8088. Copy the certificate ~/.ECCE/tls/server.pem to each client machine and there, as root:

sudo ecce-remote-setup <server-host> --tls --pin server.pem

The client then accepts only that certificate, never falls back to an unencrypted connection, and reports a certificate that does not match. --fetch-pin instead of --pin server.pem takes the certificate from the running server and prints its fingerprint, to compare with the one ecce-remote-setup --server shows on the server. A certificate from a certificate authority can be used instead of the self-signed one (--cert and --key on the server, --tls --system-ca on the clients); see GETTING_STARTED, "TLS for the central server".

macOS: first packages (#133). ECCE-9.0.0-alpha.7-arm64.dmg for Apple silicon needs macOS 11 or later; ECCE-9.0.0-alpha.7-x86_64.dmg for Intel needs macOS 10.15 (Catalina) or later. Both contain ECCE.app with its libraries. The app is not signed by a registered Apple developer, so macOS refuses to open it at first. After copying it to Applications, either right-click the app and choose Open (macOS 14 and earlier), or open it once and choose System Settings > Privacy & Security > Open Anyway (macOS 15 and later), or run:

xattr -dr com.apple.quarantine /Applications/ECCE.app

What was tested: on GitHub's macOS runners (macOS 26 on Apple silicon, macOS 15 on Intel) the CI start test unpacks the .dmg and starts a session and the applications from it, and checks that no library in the app needs a newer macOS than the stated minimum. On a macOS 10.15 machine, every executable in the Intel app loads with all its libraries. No person has yet used either app's windows on a Mac, and none on older hardware.

The Builder on Apple silicon (CI start test)

Fixes

  • Numbers are always read and written with a decimal point. With a decimal-comma locale (for example sv_SE or de_DE), PDB coordinates were read wrongly and bonds were missed (glycine: 6 bonds instead of 9).
  • An HTTP request to the data server whose reply is cut short ends instead of hanging, and a data server that closes the connection no longer ends the client.
  • The Organizer's message pane no longer ends in an empty line.
  • Fedora 44: the data server did not start (Apache 2.4.69 no longer has mod_dav_lock). RHEL, Rocky and Fedora: the data server wrote no access log.
  • When the session cannot start (data server unreachable, certificate rejected, too many wrong passwords, not an ECCE server), a message window says why; before, the session ended without a window.
  • Output read from a job that was stopped mid-write (for example at the wall-time limit) no longer yields half-written properties: the readers for NWChem, Gaussian 16 and ORCA output skip an incomplete last block (#107).
  • Two crashes in geometry-trace playback (#217), and Ball and Stick drawing about 30% less work per frame for large systems (#224).

For developers and testers. The test suites (teaching set, applications, queues, import, launch and the others) each use their own state directory, ports and X display per run, so runs from different builds can run at the same time (#220). A container harness tests the central-server deployment from the Debian packages, with one server, two client accounts, TLS and ecce-broker.service under systemd (124 checks, #213). An install test installs the packages in fresh Debian 13, Ubuntu 24.04, Rocky 9 and Fedora 44 containers and starts ECCE in local, central-server, TLS and shared-broker mode (#193). New regression checks: the application suite opens PDB, CAR and XYZ files in the Builder in every panel layout; TLS client and server tests (pinned certificate right and wrong, unencrypted ports closed on the network address); the help test checks which chapter is visible; the structure readers run again under a decimal-comma locale.

Upgrading. Run ecce-gateway-stop and ecce-dataserver-stop before installing.

Known issues

  • Bonds can be hard to see on a white background (#227).
  • The top line of the Organizer's message pane can be partly cut off, on macOS more than on Linux.
  • TLS is not yet available for the shared system broker (deployment mode 3). A browser shows a certificate warning when it opens the server's help pages over HTTPS with a self-signed certificate.
  • POV-Ray export draws normal-mode arrows at the old scale.

Packages, each built on the system it is for. Install both for a standalone machine; a machine that only connects to a central server needs only ecce-client. The macOS app is a client that also runs a local session.

Files Built on Install with
ecce-client_9.0.0.alpha.7_amd64.deb, ecce-server_9.0.0.alpha.7_amd64.deb Debian 13.7 (trixie) sudo apt install ./ecce-client_9.0.0.alpha.7_amd64.deb ./ecce-server_9.0.0.alpha.7_amd64.deb
ecce-client_9.0.0.alpha.7_ubuntu24.04_amd64.deb, ecce-server_9.0.0.alpha.7_ubuntu24.04_amd64.deb Ubuntu 24.04 sudo apt install ./ecce-client_9.0.0.alpha.7_ubuntu24.04_amd64.deb ./ecce-server_9.0.0.alpha.7_ubuntu24.04_amd64.deb
ecce-client-9.0.0.alpha.7-1.el9.x86_64.rpm, ecce-server-9.0.0.alpha.7-1.el9.x86_64.rpm Rocky Linux 9 sudo dnf install epel-release && sudo dnf install ./ecce-client-9.0.0.alpha.7-1.el9.x86_64.rpm ./ecce-server-9.0.0.alpha.7-1.el9.x86_64.rpm
ecce-client-9.0.0.alpha.7-1.fedora.x86_64.rpm, ecce-server-9.0.0.alpha.7-1.fedora.x86_64.rpm Fedora 44 sudo dnf install ./ecce-client-9.0.0.alpha.7-1.fedora.x86_64.rpm ./ecce-server-9.0.0.alpha.7-1.fedora.x86_64.rpm
ECCE-9.0.0-alpha.7-arm64.dmg macOS 26 (Apple silicon), for macOS 11 and later open the .dmg, drag ECCE to Applications
ECCE-9.0.0-alpha.7-x86_64.dmg macOS 15 (Intel), for macOS 10.15 and later open the .dmg, drag ECCE to Applications

The Debian packages are the ones we test: the teaching calculation set and the application suite pass. The Ubuntu, Rocky and Fedora packages were built on their systems and installed and started in containers of those systems (local, central-server and TLS modes), but not used for calculations; the macOS packages were tested as described above.