7b640edf6e6d72da1ef7ef8085c466b183e8e8fe
Since rc.153 every component package has installed LICENSE, THIRD_PARTY_NOTICES.md and licenses/*.txt into share/doc/jfjoch, because the install rule loops over CPACK_COMPONENTS_ALL with one fixed destination. So jfjoch, jfjoch-writer, and (when built) jfjoch-viewer and jfjoch-driver-dkms all claim the same paths. rpm and dpkg only tolerate two installed packages owning one path while the content matches. That is fine when the packages are installed or upgraded in a single transaction, and it breaks the moment they are upgraded one after the other: as soon as a release changes the notices, updating jfjoch alone conflicts with the still-installed older jfjoch-writer. PSI deployment updates them sequentially, so in practice jfjoch could never be updated without jfjoch-writer. Each component now installs into a directory of its own, named after the package's principal binary: share/doc/jfjoch_broker, jfjoch_writer, jfjoch_viewer and jfjoch_driver_dkms. The main package moves too, rather than keeping share/doc/jfjoch, so that no rc.163 package claims the path the old ones shared. That is what makes the first sequential update work from any earlier release: upgrading jfjoch to rc.163 can no longer collide with an rc.153-rc.158 jfjoch-writer that still owns share/doc/jfjoch with different content. Keeping the main package there would have left that hop broken - rc.153 and rc.158 ship a different THIRD_PARTY_NOTICES.md and licenses/traccc.txt from rc.163 - and would have required a one-off combined update on every such host. When the old sibling is finally upgraded its claim is dropped, nothing else owns those files, and the stale share/doc/jfjoch is removed. These notice files were the only paths any two components had in common. Checked by extracting every file(INSTALL) rule from the generated cmake_install.cmake tree per component and intersecting the four packaged components pairwise: 6 of 6 pairs share nothing, where before the fix each pair shared LICENSE, THIRD_PARTY_NOTICES.md and all of licenses/. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014QPzDRu2tbgFM1cCe3qYjc
Jungfraujoch
Application to receive data from the PSI JUNGFRAU and EIGER detectors.
All documentation is now placed in docs/ subdirectory and for the current version hosted on Jungfraujoch Read The Docs page.
Languages
C++
75%
HTML
7.8%
C
6.2%
TypeScript
4.3%
Cuda
2.3%
Other
4.3%