Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fips for openSUSE:Factory checked in at 2026-06-10 15:49:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fips (Old) and /work/SRC/openSUSE:Factory/.fips.new.2375 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fips" Wed Jun 10 15:49:50 2026 rev:4 rq:1358187 version:3.5.0 Changes: -------- --- /work/SRC/openSUSE:Factory/fips/fips.changes 2020-05-05 19:07:14.134916394 +0200 +++ /work/SRC/openSUSE:Factory/.fips.new.2375/fips.changes 2026-06-10 15:50:03.405019263 +0200 @@ -1,0 +2,10 @@ +Fri Jun 05 11:14:17 UTC 2026 - [email protected] + +- Update to version 3.5.0: + * Version 3.5.0 + * Bump microsoft/setup-msbuild from 1.1 to 1.3 + * Bump softprops/action-gh-release from 2 to 3 + * Bump actions/checkout from 4 to 6 + * Bump actions/upload-artifact from 4 to 7 + +------------------------------------------------------------------- Old: ---- fips-3.4.0.tar.xz New: ---- fips-3.5.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fips.spec ++++++ --- /var/tmp/diff_new_pack.uKEWKD/_old 2026-06-10 15:50:06.441145078 +0200 +++ /var/tmp/diff_new_pack.uKEWKD/_new 2026-06-10 15:50:06.453145576 +0200 @@ -1,7 +1,7 @@ # # spec file for package fips # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,20 +17,20 @@ Name: fips -Version: 3.4.0 +Version: 3.5.0 Release: 0 Summary: OpenGL-based FITS image viewer License: LGPL-3.0-only Group: Productivity/Scientific/Astronomy URL: https://github.com/matwey/fips3 Source: %{name}-%{version}.tar.xz -BuildRequires: cmake >= 3.0 -BuildRequires: gcc-c++ -BuildRequires: libQt5Gui-devel -BuildRequires: libQt5Test-devel -BuildRequires: libQt5Widgets-devel +BuildRequires: cmake +BuildRequires: gcc-c++ >= 8 BuildRequires: make -BuildRequires: update-desktop-files +BuildRequires: cmake(Qt6Core) +BuildRequires: cmake(Qt6Gui) +BuildRequires: cmake(Qt6OpenGLWidgets) +BuildRequires: cmake(Qt6Test) BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -46,12 +46,11 @@ %setup -q %build -%cmake +%cmake -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON -DQT_INTERNAL_SKIP_DEPLOYMENT:BOOL=ON %make_jobs %install %cmake_install -%suse_update_desktop_file -i space.fips.Fips %check %ctest ++++++ _service ++++++ --- /var/tmp/diff_new_pack.uKEWKD/_old 2026-06-10 15:50:06.785159334 +0200 +++ /var/tmp/diff_new_pack.uKEWKD/_new 2026-06-10 15:50:06.809160328 +0200 @@ -1,17 +1,17 @@ <services> - <service name="tar_scm" mode="disabled"> - <param name="url">git://github.com/matwey/fips3.git</param> + <service name="tar_scm" mode="manual"> + <param name="url">https://github.com/matwey/fips3.git</param> <param name="scm">git</param> - <param name="revision">3.4.0</param> + <param name="revision">3.5.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="filename">fips</param> <param name="changesgenerate">enable</param> </service> - <service name="recompress" mode="disabled"> + <service name="recompress" mode="manual"> <param name="file">fips-*.tar</param> <param name="compression">xz</param> </service> - <service name="set_version" mode="disabled"> + <service name="set_version" mode="manual"> <param name="basename">fips</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.uKEWKD/_old 2026-06-10 15:50:07.073171269 +0200 +++ /var/tmp/diff_new_pack.uKEWKD/_new 2026-06-10 15:50:07.113172926 +0200 @@ -1,6 +1,8 @@ <servicedata> <service name="tar_scm"> <param name="url">git://github.com/matwey/fips3.git</param> - <param name="changesrevision">f68ca188b55d0f339f4849f10c38c2d65f3d11c1</param></service></servicedata> + <param name="changesrevision">f68ca188b55d0f339f4849f10c38c2d65f3d11c1</param></service><service name="tar_scm"> + <param name="url">https://github.com/matwey/fips3.git</param> + <param name="changesrevision">638c8d3e9c364f5ec4dc98637580de335b710473</param></service></servicedata> (No newline at EOF) ++++++ fips-3.4.0.tar.xz -> fips-3.5.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/.appveyor.yml new/fips-3.5.0/.appveyor.yml --- old/fips-3.4.0/.appveyor.yml 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/.appveyor.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,60 +0,0 @@ -image: - - Visual Studio 2019 - -configuration: - - Debug - - Release - -environment: - matrix: - - PLATFORM: x86 - QTDIR: C:\Qt\5.14\msvc2017 - GENERATOR: Visual Studio 16 2019 - ARCHITECTURE: Win32 - - PLATFORM: x64 - QTDIR: C:\Qt\5.14\msvc2017_64 - GENERATOR: Visual Studio 16 2019 - ARCHITECTURE: x64 - -install: - - set PATH=%QTDIR%\bin;%PATH% - -before_build: - - cmake -G"%GENERATOR%" -A %ARCHITECTURE% -DCMAKE_PREFIX_PATH=%QTDIR% -DCMAKE_INSTALL_PREFIX=./install . - -build_script: - - cmake --build . --config %CONFIGURATION% - -after_build: - - cmake --build . --config %CONFIGURATION% --target PACKAGE - -on_failure: - - pwsh: | - Write-Output '# Environment variables:' - Get-ChildItem env: - - Write-Output '# WiX log file:' - $packagePlatformDesignator = if ($env:PLATFORM -eq 'x86') { 'win32' } else { 'win64' } - $wixLogFilePath = "./_CPack_Packages/$packagePlatformDesignator/WIX/wix.log" - Write-Output "($wixLogFilePath)" - if (Test-Path $wixLogFilePath) { - Get-Content $wixLogFilePath - } else { - Write-Output "not found" - } - -test_script: - - ctest --output-on-failure - -artifacts: - - path: '*.msi' - name: Installer - -deploy: - provider: GitHub - auth_token: - secure: 0dqD0nJznh5C1ljdK5XdGXiivGzx5BWbfVMAdYVRsKC1QhbBIBzFl9tvRfzcuDSp - artifact: Installer - on: - appveyor_repo_tag: true - configuration: Release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/.github/ISSUE_TEMPLATE/bug-issue-template.md new/fips-3.5.0/.github/ISSUE_TEMPLATE/bug-issue-template.md --- old/fips-3.4.0/.github/ISSUE_TEMPLATE/bug-issue-template.md 1970-01-01 01:00:00.000000000 +0100 +++ new/fips-3.5.0/.github/ISSUE_TEMPLATE/bug-issue-template.md 2026-06-05 12:57:52.000000000 +0200 @@ -0,0 +1,18 @@ +--- +name: Bug report +about: Create a report to help us improve +title: +labels: bug +assignees: + +--- + +**Describe the bug** + +**How to reproduce** + +**Screenshots** +[Drag-and-drop screenshots here] + +**Environment** +[Copy-paste Fips version, Qt version and current plan from *About Fips* window. If possible, give a link to FITS file you use.] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/.github/ISSUE_TEMPLATE/release-issue-template.md new/fips-3.5.0/.github/ISSUE_TEMPLATE/release-issue-template.md --- old/fips-3.4.0/.github/ISSUE_TEMPLATE/release-issue-template.md 1970-01-01 01:00:00.000000000 +0100 +++ new/fips-3.5.0/.github/ISSUE_TEMPLATE/release-issue-template.md 2026-06-05 12:57:52.000000000 +0200 @@ -0,0 +1,49 @@ +--- +name: Release issue template +about: Create this issue to start release process +title: Release 3.x.x +labels: release +assignees: matwey, hombit + +--- + +- [ ] Fix title of the issue +- [ ] CMake +- [ ] Git tag +- [ ] Wait for CI +- [ ] Homebrew Caskroom +- [ ] Flatpack +- [ ] openSUSE +- [ ] Fedora + +### CMake +1. Go to `CMakeLists.txt` and update version + +### Git tag +1. Commit the chage with `git commit -a -v -S` +2. Make signed tag `git tag -s 3.x.x` +3. `git push origin —tags` + +### Wait for CI +1. Wait for [GitHub Actions](https://github.com/matwey/fips3/actions) + +### Homebrew Caskroom +1. Check no PR is open in [Homebrew Casroom repo](https://github.com/Homebrew/homebrew-cask/pulls?utf8=✓&q=is%3Apr+fips) +2. `cask-repair -v 3.x.x fips` + +### Flatpack +1. fork <https://github.com/flathub/space.fips.Fips> +2. update `space.fips.Fips.appdata.xml` and `space.fips.Fips.json` +3. try local build `flatpak install flathub org.kde.Sdk//5.12`, `flatpak-builder ./t space.fips.Fips.json`, `test run flatpak-builder --run ./t/ space.fips.Fips.json fips` +4. Create pull request to `https://github.com/flathub/space.fips.Fips` + +### openSUSE +1. Go to opensuse: +2. `osc branch science fips` +3. `osc co home:matwey:branches:science/fips` +4. Edit `_service` +5. `osc service dr` +6. drop old sources +7. `osc build --clean --local` +8. `osc commit` +9. `osc sr —cleanup` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/.github/PULL_REQUEST_TEMPLATE.md new/fips-3.5.0/.github/PULL_REQUEST_TEMPLATE.md --- old/fips-3.4.0/.github/PULL_REQUEST_TEMPLATE.md 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/.github/PULL_REQUEST_TEMPLATE.md 2026-06-05 12:57:52.000000000 +0200 @@ -1,7 +1,7 @@ -Check this GUI features before merge: +Check these GUI features before merge: - [ ] Positive and negative `BITPIX` images - [ ] Zoom, rotate and flip - [ ] Level control - [ ] Color maps -- [ ] Open new image in the same window and in new window +- [ ] Open new image in the same window and in a new window diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/.github/dependabot.yml new/fips-3.5.0/.github/dependabot.yml --- old/fips-3.4.0/.github/dependabot.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/fips-3.5.0/.github/dependabot.yml 2026-06-05 12:57:52.000000000 +0200 @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/.github/workflows/tests.yml new/fips-3.5.0/.github/workflows/tests.yml --- old/fips-3.4.0/.github/workflows/tests.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/fips-3.5.0/.github/workflows/tests.yml 2026-06-05 12:57:52.000000000 +0200 @@ -0,0 +1,179 @@ +name: Tests + +on: + push: + branches: [ "master" ] + tags: [ "*" ] + pull_request: + branches: [ "master" ] + +jobs: + linux: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + container: + - image: gcc:14 + - image: gcc:15 + - image: silkeh/clang:20 + qt_version: ["6.8", "6.11"] + + container: ${{ matrix.container }} + + steps: + - uses: actions/checkout@v6 + + - name: Install system dependencies + run: | + apt-get update + apt-get install -y libfreetype-dev libfontconfig1-dev libgl1-mesa-dev libpulse-dev libxkbcommon-dev libxcb-xkb-dev pkg-config python3-pip + + - name: Configure pip + run: | + python3 -m pip config set global.break-system-packages true + + - name: Install Qt + uses: jurplel/install-qt-action@v4 + with: + version: ${{ matrix.qt_version }} + cache: true + install-deps: false + # actions/setup-python is incompatible with silkeh/clang image + setup-python: false + tools: 'tools_cmake' + env: + PKG_CONFIG_PATH: "/usr/lib/pkgconfig:/usr/share/pkgconfig" + + - name: Configure CMake + run: | + cmake -B build \ + -DCMAKE_BUILD_TYPE=Release + + - name: Build + run: | + cmake --build build \ + --config Release \ + --parallel $(nproc) \ + --verbose + + - name: Run tests + run: | + ctest --test-dir build --output-on-failure + + macos: + runs-on: macos-latest + strategy: + matrix: + qt_version: ["6.8", "6.11"] + + steps: + - uses: actions/checkout@v6 + + - name: Install Qt + uses: jurplel/install-qt-action@v4 + with: + version: ${{ matrix.qt_version }} + cache: true + tools: 'tools_cmake' + + - name: Configure CMake + run: | + cmake -B build \ + -DCMAKE_BUILD_TYPE=Release + + - name: Build + run: | + cmake --build build \ + --config Release \ + --parallel $(sysctl -n hw.ncpu) \ + --verbose + + - name: Run tests + run: | + ctest --test-dir build --output-on-failure + + - name: Package + run: | + cmake --build build --target package + + - name: Upload DMG + uses: actions/upload-artifact@v7 + with: + name: macos-qt-${{ matrix.qt_version }} + path: build/Fips-*-Darwin.dmg + + windows: + runs-on: windows-latest + strategy: + matrix: + qt_version: ["6.8"] + + steps: + - uses: actions/checkout@v6 + + - name: Install Qt + uses: jurplel/install-qt-action@v4 + with: + version: ${{ matrix.qt_version }} + cache: true + tools: 'tools_cmake' + + - name: Configure CMake + run: | + cmake -B build -DCMAKE_BUILD_TYPE=Release + + - name: Build + run: | + cmake --build build --config Release --parallel --verbose + + - name: Run tests + run: | + ctest --test-dir build --output-on-failure + + - name: Add msbuild to PATH + uses: microsoft/[email protected] + + - name: Install WiX + run: | + dotnet tool install --global wix + wix.exe eula accept wix7 + wix.exe extension add --global WixToolset.UI.wixext + + - name: Set up MSVC Developer Command Prompt + uses: ilammy/msvc-dev-cmd@v1 + + - name: Package + run: | + cmake --build build --config Release --target package + + - name: Debug WiX log + if: failure() + run: | + type ./build/_CPack_Packages/win64/WIX/wix.log + + - name: Upload MSI + uses: actions/upload-artifact@v7 + with: + name: windows-qt-${{ matrix.qt_version }} + path: build/Fips-*-win64.msi + + publish: + needs: [macos, windows] + runs-on: ubuntu-latest + steps: + - uses: actions/download-artifact@v8 + with: + name: macos-qt-6.11 + + - uses: actions/download-artifact@v8 + with: + name: windows-qt-6.8 + + - name: Upload artifacts to Release + if: startsWith(github.ref, 'refs/tags/') + uses: softprops/action-gh-release@v3 + with: + files: | + Fips-*-Darwin.dmg + Fips-*-win64.msi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/.gitignore new/fips-3.5.0/.gitignore --- old/fips-3.4.0/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/fips-3.5.0/.gitignore 2026-06-05 12:57:52.000000000 +0200 @@ -0,0 +1,6 @@ +.DS_Store +.idea/ +[._]*.s[a-w][a-z] +[._]s[a-w][a-z] +build/ +cmake-build-*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/.travis.yml new/fips-3.5.0/.travis.yml --- old/fips-3.4.0/.travis.yml 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/.travis.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,73 +0,0 @@ -sudo: required -dist: xenial -language: minimal -services: -- docker -os: -- linux -- osx -matrix: - exclude: - os: osx - include: - os: osx - language: cpp - osx_image: xcode9.4 - services: {} - cache: - directories: - - /usr/local/Homebrew - - $HOME/Library/Caches/Homebrew - before_install: - - brew update - - brew install qt - - brew link --force qt - install: - - mkdir build && cd build - - cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$(brew --prefix qt) - - make package VERBOSE=1 DESTDIR=$(pwd)/install - script: - - make test - before_deploy: - - export RELEASE_DMG_FILE=$(ls Fips-*.dmg) - - echo "deploying $RELEASE_DMG_FILE" - deploy: - - provider: releases - api_key: - secure: I4SgyRVqHPF8f+QhyfiAXlsd98/NesRliYBap5cq1pt3/XyTREwfoYnA0rwNZ6r5oovEkQuy11tIL5k5WZuCOxqEKNqQYhLpi3Io42NX+49vS2jMTDyarE00c6YA4bLesPJQuXWWX7zdNlR6n/6MQLTL4BX5OtYfWP2xGnbzNZfkkaKUphU1rzuzPjK+y6EsglYCwSJuZMQduc+TzESQUyZ32S4mv97w3m8UTRSocIYCcNdxyuBCXMiebyprLcd2UwwrADthJTMIzRJ8298xEMfQRIoACxJou2QDhfjnLtqD1ojd+9PjPzER1zkVrwYESLiEiZLEvRCqUcbuz0iCo6LAOOrQhEOGv1yr6wXDcFeQtWjprBelTbkWyDCPktdkLRszhvrO+Q/abs+bTm+TnOt52Ax/SVC1hSF7pWfbBdzaHYeo80BaphkiF3K5bysogb1nSQjfppEY+zLfYdHl69S6RMxiF6j9RRLi8biCzUNROl/xDHvM+y5HmGoJLk04ciTIiMr7zSM4rd4m7ia3VB2i21fFA2unMgpBy5vrfTsoeonn1HSzT/TMOKFfnVClOibekAoGm66jWLqVHGVBv0D0s2MLVVJBzq855iIeFk86VTwDXJY+BZKMHqbiQ8aqoZL/97D/h4pOSFeQo975PSFoEMrMHqCpLNtc81Wci/k= - file: "${RELEASE_DMG_FILE}" - skip_cleanup: true - on: - tags: true - branch: master - - provider: script - script: curl --upload-file ${RELEASE_DMG_FILE} https://transfer.sh/${RELEASE_DMG_FILE} || true - skip_cleanup: true - on: - all_branches: true - -env: -- BASE_IMAGE_TAG=gcc9-qt513 -- BASE_IMAGE_TAG=gcc9-qt512 -- BASE_IMAGE_TAG=gcc9-qt59 -- BASE_IMAGE_TAG=gcc8-qt513 -- BASE_IMAGE_TAG=gcc8-qt512 -- BASE_IMAGE_TAG=gcc8-qt59 -- BASE_IMAGE_TAG=gcc7-qt513 -- BASE_IMAGE_TAG=gcc7-qt512 -- BASE_IMAGE_TAG=gcc7-qt59 -- BASE_IMAGE_TAG=gcc4.8-qt56 -- BASE_IMAGE_TAG=clang9-qt513 -- BASE_IMAGE_TAG=clang9-qt512 -- BASE_IMAGE_TAG=clang9-qt59 -- BASE_IMAGE_TAG=clang8-qt513 -- BASE_IMAGE_TAG=clang8-qt512 -- BASE_IMAGE_TAG=clang8-qt59 -- BASE_IMAGE_TAG=clang7-qt513 -- BASE_IMAGE_TAG=clang7-qt512 -- BASE_IMAGE_TAG=clang7-qt59 -install: -- cat Dockerfile.in | m4 -DBASE_IMAGE_TAG=${BASE_IMAGE_TAG} > Dockerfile -- docker build . -t test -script: -- docker run --security-opt seccomp=unconfined test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/CMakeLists.txt new/fips-3.5.0/CMakeLists.txt --- old/fips-3.4.0/CMakeLists.txt 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/CMakeLists.txt 2026-06-05 12:57:52.000000000 +0200 @@ -1,178 +1,144 @@ -cmake_minimum_required(VERSION 3.0.0) -cmake_policy(SET CMP0048 NEW) -project(fips LANGUAGES C CXX VERSION 3.4.0) +cmake_minimum_required(VERSION 3.16) + +project(fips LANGUAGES C CXX VERSION 3.5.0) set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +include_directories("${PROJECT_SOURCE_DIR}/include" "${CMAKE_CURRENT_BINARY_DIR}") -find_package(Qt5Core REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5Test REQUIRED) - -if(Qt5Widgets_VERSION VERSION_LESS 5.5) - message(FATAL_ERROR "Qt5 5.5 or later is required") -else(Qt5Widgets_VERSION VERSION_LESS 5.5) - message(STATUS "Found Qt ${Qt5Widgets_VERSION}") -endif(Qt5Widgets_VERSION VERSION_LESS 5.5) +find_package(Qt6 REQUIRED COMPONENTS + Core + Gui + OpenGL + OpenGLWidgets + Test + Widgets) -include_directories ("${PROJECT_SOURCE_DIR}/include" "${CMAKE_CURRENT_BINARY_DIR}") +qt_standard_project_setup() file(GLOB_RECURSE SOURCES src/*.cpp include/*.h) +qt_add_executable(fips ${SOURCES}) +target_link_libraries(fips PRIVATE Qt6::Widgets Qt6::OpenGLWidgets Qt6::OpenGL) +target_compile_definitions(fips PUBLIC PROJECT_VERSION="${PROJECT_VERSION}") +set_target_properties(fips PROPERTIES + WIN32_EXECUTABLE ON + MACOSX_BUNDLE ON) set(ICON_NAME fips) -set(DOC_ICON_NAME fips_fits) -if(APPLE) - set(TARGET Fips) +install(TARGETS fips + BUNDLE DESTINATION . + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + +qt_generate_deploy_app_script( + TARGET fips + OUTPUT_SCRIPT deploy_script + NO_UNSUPPORTED_PLATFORM_ERROR) - set(RESOURCES_DIR ${PROJECT_SOURCE_DIR}/dist/macos) - set(ICON_FILE ${RESOURCES_DIR}/${ICON_NAME}.icns) - set_source_files_properties(${ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") - set(DOC_ICON_FILE ${RESOURCES_DIR}/${DOC_ICON_NAME}.icns) - set_source_files_properties(${DOC_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") - - list(APPEND SOURCES ${ICON_FILE} ${DOC_ICON_FILE}) - add_executable(${TARGET} MACOSX_BUNDLE ${SOURCES}) -elseif(WIN32) - set(TARGET fips) +install(SCRIPT ${deploy_script}) +if (UNIX AND NOT APPLE) + set(XDG_PREFIX "${CMAKE_INSTALL_PREFIX}/share") + set(XDG_DESKTOP_DIR "${XDG_PREFIX}/applications") + set(XDG_METAINFO_DIR "${XDG_PREFIX}/metainfo") + set(XDG_ICONS_DIR "${XDG_PREFIX}/icons") + + configure_file("dist/freedesktop/space.fips.Fips.desktop.in" "space.fips.Fips.desktop" @ONLY) + + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/space.fips.Fips.desktop" DESTINATION ${XDG_DESKTOP_DIR}) + install(FILES "${PROJECT_SOURCE_DIR}/dist/freedesktop/space.fips.Fips.metainfo.xml" DESTINATION ${XDG_METAINFO_DIR}) + install(FILES "${PROJECT_SOURCE_DIR}/dist/freedesktop/scalable/space.fips.Fips.svg" DESTINATION "${XDG_ICONS_DIR}/hicolor/scalable/apps") + install(FILES "${PROJECT_SOURCE_DIR}/dist/freedesktop/128x128/space.fips.Fips.png" DESTINATION "${XDG_ICONS_DIR}/hicolor/128x128/apps") + install(FILES "${PROJECT_SOURCE_DIR}/dist/freedesktop/256x256/space.fips.Fips.png" DESTINATION "${XDG_ICONS_DIR}/hicolor/256x256/apps") +endif() + +if(APPLE) + set(MACOS_RESOURCES_DIR "${PROJECT_SOURCE_DIR}/dist/macos") + set_target_properties(fips PROPERTIES + MACOSX_BUNDLE_INFO_PLIST "${MACOS_RESOURCES_DIR}/Info.plist.in" + MACOSX_BUNDLE_ICON_FILE fips.icns + MACOSX_BUNDLE_GUI_IDENTIFIER space.fips.Fips + MACOSX_BUNDLE_BUNDLE_NAME Fips + MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}" + MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}" + MACOSX_BUNDLE_COPYRIGHT "") + set(MACOSX_BUNDLE_DOC_ICON_FILE fips_fits.icns) + target_sources(fips PRIVATE + "${MACOS_RESOURCES_DIR}/fips.icns" + "${MACOS_RESOURCES_DIR}/fips_fits.icns") + set_source_files_properties( + "${MACOS_RESOURCES_DIR}/fips.icns" + "${MACOS_RESOURCES_DIR}/fips_fits.icns" + PROPERTIES MACOSX_PACKAGE_LOCATION Resources) +endif() + +if(WIN32) set(RESOURCES_DIR "${PROJECT_SOURCE_DIR}/dist/windows") set(ICON_FILE "${RESOURCES_DIR}/${ICON_NAME}.ico") if (NOT PROJECT_VERSION_TWEAK) set(PROJECT_VERSION_TWEAK 0) endif() + configure_file(${RESOURCES_DIR}/metafile.rc.in metafile.rc) - list(APPEND SOURCES metafile.rc) - add_executable(${TARGET} WIN32 ${SOURCES}) -else() - set(TARGET fips) - add_executable(${TARGET} ${SOURCES}) -endif(APPLE) + set_property(TARGET fips APPEND PROPERTY SOURCES metafile.rc) + set_property(INSTALL "${CMAKE_INSTALL_BINDIR}/$<TARGET_FILE_NAME:fips>" PROPERTY CPACK_START_MENU_SHORTCUTS "Fips") + set_property(INSTALL "${CMAKE_INSTALL_BINDIR}/$<TARGET_FILE_NAME:fips>" PROPERTY CPACK_DESKTOP_SHORTCUTS "Fips") +endif() -target_link_libraries(${TARGET} Qt5::Widgets) -target_compile_definitions(${TARGET} PUBLIC PROJECT_VERSION="${PROJECT_VERSION}") +set(CPACK_PACKAGE_NAME Fips) +set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) -if(APPLE OR WIN32) - set(CPACK_PACKAGE_NAME Fips) +if (WIN32) set(CPACK_BUNDLE_NAME Fips) set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}) - set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_CURRENT_SOURCE_DIR}/README.md) -endif() - -if(APPLE) - set(DEVELOPMENT_PROJECT_NAME Fips) - set(DEVELOPMENT_TEAM_ID matwey) - set(PRODUCT_NAME Fips) - set(EXECUTABLE_NAME Fips) - set(MACOSX_BUNDLE_EXECUTABLE_NAME Fips) - set(MACOSX_BUNDLE_INFO_STRING com.matwey.fips) - set(MACOSX_BUNDLE_GUI_IDENTIFIER ${MACOSX_BUNDLE_INFO_STRING}) - set(MACOSX_BUNDLE_BUNDLE_NAME Fips) - set(MACOSX_BUNDLE_ICON_FILE ${ICON_NAME}) - set(MACOSX_BUNDLE_DOC_ICON_FILE ${DOC_ICON_NAME}.icns) - set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}) - set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}) - set(MACOSX_BUNDLE_COPYRIGHT Copyright 2017, Matwey Kornilov, Konstantin Malanchev) - set(MACOSX_BUNDLE_LONG_VERSION_STRING ${PROJECT_VERSION}) - - set_target_properties(${TARGET} PROPERTIES MACOSX_BUNDLE TRUE) - set_target_properties(${TARGET} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${RESOURCES_DIR}/Info.plist.in") - if (${CMAKE_VERSION} VERSION_LESS 3.9.0) - # This is true for Makefile generators only - set(BUNDLE_DIR ${CMAKE_CURRENT_BINARY_DIR}/Fips.app) - else() - set(BUNDLE_DIR $<TARGET_BUNDLE_DIR:${TARGET}>) - endif(${CMAKE_VERSION} VERSION_LESS 3.9.0) - add_custom_command(TARGET ${TARGET} - POST_BUILD - COMMAND macdeployqt ARGS ${BUNDLE_DIR} -always-overwrite - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - - install(TARGETS ${TARGET} BUNDLE DESTINATION .) - install(FILES LICENSE.txt DESTINATION .) - - set(CPACK_PACKAGE_INSTALL_DIRECTORY /Applications) - set(CPACK_PACKAGE_ICON ${ICON_FILE}) - set(CPACK_PACKAGE_CHECKSUM SHA256) - set(CPACK_GENERATOR DragNDrop) - include(CPack) -elseif(WIN32) - include(InstallRequiredSystemLibraries) - add_custom_command(TARGET ${TARGET} - POST_BUILD - COMMAND windeployqt $<TARGET_FILE:${TARGET}> --force) - - install(TARGETS ${TARGET} RUNTIME DESTINATION bin) - install(DIRECTORY $<TARGET_FILE_DIR:${TARGET}>/ DESTINATION bin - FILES_MATCHING PATTERN *.dll) - install(DIRECTORY $<TARGET_FILE_DIR:${TARGET}>/ DESTINATION bin - FILES_MATCHING PATTERN *.qm) - - set_property(INSTALL "bin/fips.exe" - PROPERTY CPACK_START_MENU_SHORTCUTS "Fips" - ) set(CPACK_GENERATOR WIX) + set(CPACK_WIX_VERSION 4) set(CPACK_RESOURCE_FILE_LICENSE ${PROJECT_SOURCE_DIR}/LICENSE.txt) set(CPACK_PACKAGE_INSTALL_DIRECTORY "Fips-3") - set(CPACK_WIX_PATCH_FILE ${RESOURCES_DIR}/SupportedOS.wixpatch) set(CPACK_WIX_UPGRADE_GUID C61E8C2B-9E0C-45D4-AFAF-388E4F128FCF) set(CPACK_WIX_PRODUCT_ICON ${RESOURCES_DIR}/fips.ico) - set(CPACK_WIX_PROGRAM_MENU_FOLDER ".") include(CPack) -elseif(UNIX) - set(XDG_PREFIX "${CMAKE_INSTALL_PREFIX}/share") - set(XDG_DESKTOP_DIR "${XDG_PREFIX}/applications") - set(XDG_METAINFO_DIR "${XDG_PREFIX}/metainfo") - set(XDG_ICONS_DIR "${XDG_PREFIX}/icons") - - configure_file("dist/freedesktop/space.fips.Fips.desktop.in" "space.fips.Fips.desktop" @ONLY) +endif() - install(TARGETS "${TARGET}" DESTINATION bin) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/space.fips.Fips.desktop" DESTINATION ${XDG_DESKTOP_DIR}) - install(FILES "${PROJECT_SOURCE_DIR}/dist/freedesktop/space.fips.Fips.metainfo.xml" DESTINATION ${XDG_METAINFO_DIR}) - install(FILES "${PROJECT_SOURCE_DIR}/dist/freedesktop/scalable/space.fips.Fips.svg" DESTINATION "${XDG_ICONS_DIR}/hicolor/scalable/apps") - install(FILES "${PROJECT_SOURCE_DIR}/dist/freedesktop/128x128/space.fips.Fips.png" DESTINATION "${XDG_ICONS_DIR}/hicolor/128x128/apps") - install(FILES "${PROJECT_SOURCE_DIR}/dist/freedesktop/256x256/space.fips.Fips.png" DESTINATION "${XDG_ICONS_DIR}/hicolor/256x256/apps") -endif(APPLE) +if(APPLE) + set(CPACK_GENERATOR "DragNDrop") + set(CPACK_DMG_VOLUME_NAME "Fips") + include(CPack) +endif() enable_testing() + add_executable(test_fits test/fits.cpp src/fits.cpp src/utils/exception.cpp src/abstractfitsstorage.cpp src/mmapfitsstorage.cpp) target_compile_definitions(test_fits PUBLIC PROJECT_ROOT="${PROJECT_SOURCE_DIR}") -# Linked libraries affect ability to run without X11 display. -# -# http://doc.qt.io/qt-5/qtest.html#QTEST_MAIN -# -# If QT_WIDGETS_LIB is defined, the application object will be a QApplication, -# if QT_GUI_LIB is defined, the application object will be a QGuiApplication, -# otherwise it will be a QCoreApplication. -target_link_libraries(test_fits Qt5::Test) +target_link_libraries(test_fits Qt6::Test) add_test(test_fits test_fits) add_executable(test_openglshaderuniforms test/openglshaderuniforms.cpp src/openglshaderunifroms.cpp) -target_link_libraries(test_openglshaderuniforms Qt5::Test) +target_link_libraries(test_openglshaderuniforms Qt6::Test) add_test(test_openglshaderuniforms test_openglshaderuniforms) add_executable(test_opengltransform test/opengltransform.cpp src/abstractopengltransform.cpp include/abstractopengltransform.h src/opengltransform.cpp include/opengltransform.h src/openglplane.cpp include/openglplane.h) -target_link_libraries(test_opengltransform Qt5::Test Qt5::Gui) +target_link_libraries(test_opengltransform Qt6::Test Qt6::Gui Qt6::OpenGL) add_test(test_opengltransform test_opengltransform) add_executable(test_utils_minmax test/utils/minmax.cpp) -target_link_libraries(test_utils_minmax Qt5::Test) +target_link_libraries(test_utils_minmax Qt6::Test) add_test(test_utils_minmax test_utils_minmax) add_executable(test_utils_openglrowalign test/utils/openglrowalign.cpp src/utils/openglrowalign.cpp) -target_link_libraries(test_utils_openglrowalign Qt5::Test) +target_link_libraries(test_utils_openglrowalign Qt6::Test) add_test(test_utils_openglrowalign test_utils_openglrowalign) add_executable(test_utils_swapbytes test/utils/swapbytes.cpp) -target_link_libraries(test_utils_swapbytes Qt5::Test) +target_link_libraries(test_utils_swapbytes Qt6::Test) add_test(test_utils_swapbytes test_utils_swapbytes) add_executable(test_utils_optional test/utils/optional.cpp src/utils/exception.cpp) -target_link_libraries(test_utils_optional Qt5::Test) +target_link_libraries(test_utils_optional Qt6::Test) add_test(test_utils_optional test_utils_optional) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/README.md new/fips-3.5.0/README.md --- old/fips-3.4.0/README.md 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/README.md 2026-06-05 12:57:52.000000000 +0200 @@ -1,7 +1,7 @@  -[](https://travis-ci.org/matwey/fips3) -[](https://ci.appveyor.com/project/matwey/fips3) +[](https://github.com/matwey/fips3/actions/workflows/tests.yml) + [](https://ascl.net/1808.006) FIPS — OpenGL based FITS image viewer @@ -23,7 +23,7 @@ - [Cmake](https://cmake.org) -- [Qt](https://www.qt.io) 5.6+ +- [Qt](https://www.qt.io) 6.0+ - C++11 compatible C++ compiler, e.g. `gcc` 4.8+ or `clang` 3.4+ @@ -53,6 +53,16 @@ dnf install fips ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#### [EPEL](https://fedoraproject.org/wiki/EPEL): RHEL, CentOS, and others (8.2 and later) + +Before installing the package, enable +[EPEL](https://fedoraproject.org/wiki/EPEL) repository as recommended +[here](https://fedoraproject.org/wiki/EPEL#Quickstart). + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +dnf install fips +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + #### FlatPak [FlatPak](https://flatpak.org) is cross-distribution Linux desktop package manager with isolation. @@ -65,12 +75,7 @@ #### macOS -Download [release package](https://github.com/matwey/fips3/releases/latest) or -install using [Homebrew](https://brew.sh) [Caskroom](http://caskroom.github.io): - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -brew cask install fips -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Download [release package](https://github.com/matwey/fips3/releases/latest). #### Windows diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/dist/freedesktop/space.fips.Fips.metainfo.xml new/fips-3.5.0/dist/freedesktop/space.fips.Fips.metainfo.xml --- old/fips-3.4.0/dist/freedesktop/space.fips.Fips.metainfo.xml 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/dist/freedesktop/space.fips.Fips.metainfo.xml 2026-06-05 12:57:52.000000000 +0200 @@ -20,15 +20,21 @@ </p> </description> <screenshots> - <screenshot type="default">https://fips.space/.screenshot/1.png</screenshot> + <screenshot type="default"> + <caption>Sombrero Galaxy (M104) in Fips window</caption> + <image>https://fips.space/.screenshot/1.png</image> + </screenshot> </screenshots> +<developer id="space.fips"> + <name>Fips team</name> +</developer> <update_contact>matwey.kornilov_AT_gmail.com</update_contact> <launchable type="desktop-id">space.fips.Fips.desktop</launchable> <url type="homepage">https://fips.space</url> <url type="bugtracker">https://github.com/matwey/fips3/issues</url> <releases> - <release version="3.4.0" timestamp="2020-05-02" /> - <release version="3.3.1" timestamp="2019-03-05" /> - <release version="3.3.0" timestamp="2018-08-10" /> + <release version="3.4.0" date="2020-05-02" /> + <release version="3.3.1" date="2019-03-05" /> + <release version="3.3.0" date="2018-08-10" /> </releases> </component> Binary files old/fips-3.4.0/dist/macos/fips.icns and new/fips-3.5.0/dist/macos/fips.icns differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/dist/windows/SupportedOS.wixpatch new/fips-3.5.0/dist/windows/SupportedOS.wixpatch --- old/fips-3.4.0/dist/windows/SupportedOS.wixpatch 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/dist/windows/SupportedOS.wixpatch 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ -<CPackWiXPatch> - <CPackWiXFragment Id="#PRODUCT"> - <Condition Message="This application is only supported on Windows 7 SP1 or later."> - <!-- Check the condition only when installing the package (as opposed to repairing/uninstalling). - For Windows 7 (ver. 601) require ServicePackLevel = 1: this means Windows 7 SP1. - For later OS versions, don't impose any service pack requirement. --> - <![CDATA[ - Installed OR ((VersionNT = 601) AND (ServicePackLevel = 1)) OR (VersionNT > 601) - ]]> - </Condition> - </CPackWiXFragment> -</CPackWiXPatch> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/include/fits.h new/fips-3.5.0/include/fits.h --- old/fips-3.4.0/include/fits.h 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/include/fits.h 2026-06-05 12:57:52.000000000 +0200 @@ -22,6 +22,9 @@ #include <QFileDevice> #include <QSize> #include <QVariant> +#include <QMetaType> +#include <QString> +#include <QException> #include <abstractfitsstorage.h> #include <utils/exception.h> @@ -96,7 +99,7 @@ const auto& str_v = headers_.at(key); QVariant v(str_v); - if (!v.convert(qMetaTypeId<T>())) + if (!v.convert(QMetaType::fromType<T>())) throw WrongHeaderValue(key, str_v); return v.value<T>(); @@ -107,7 +110,7 @@ return def; QVariant v(it->second); - if (!v.convert(qMetaTypeId<T>())) + if (!v.convert(QMetaType::fromType<T>())) throw WrongHeaderValue(key, it->second); return v.value<T>(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/src/mainwindow.cpp new/fips-3.5.0/src/mainwindow.cpp --- old/fips-3.4.0/src/mainwindow.cpp 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/src/mainwindow.cpp 2026-06-05 12:57:52.000000000 +0200 @@ -19,8 +19,9 @@ #include <memory> #include <QApplication> +#include <QGuiApplication> #include <QDesktopServices> -#include <QDesktopWidget> +#include <QScreen> #include <QFile> #include <QFileDialog> #include <QListWidget> @@ -112,7 +113,7 @@ setAcceptDrops(true); // Resize window to fit FITS image - const auto desktop_size = QApplication::desktop()->screenGeometry(); + const auto desktop_size = QGuiApplication::primaryScreen()->geometry(); const QSize maximum_initial_window_size(desktop_size.width() * 2 / 3, desktop_size.height() * 2 / 3); resize(state_->fits().first_hdu().data().imageDataUnit()->size().boundedTo(maximum_initial_window_size)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/src/openglwidget.cpp new/fips-3.5.0/src/openglwidget.cpp --- old/fips-3.4.0/src/openglwidget.cpp 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/src/openglwidget.cpp 2026-06-05 12:57:52.000000000 +0200 @@ -176,9 +176,9 @@ void OpenGLWidget::wheelEvent(QWheelEvent* event) { /* One wheel tick is 120 eighths of degree */ const double log_factor_per_eighth = 0.05 / 120; - const auto zoom_factor = std::exp(log_factor_per_eighth * event->delta()); + const auto zoom_factor = std::exp(log_factor_per_eighth * event->angleDelta().y()); - zoom(zoom_factor, event->pos()); + zoom(zoom_factor, event->position().toPoint()); } void OpenGLWidget::paintGL() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fips-3.4.0/src/scrollarea.cpp new/fips-3.5.0/src/scrollarea.cpp --- old/fips-3.4.0/src/scrollarea.cpp 2020-05-02 13:29:28.000000000 +0200 +++ new/fips-3.5.0/src/scrollarea.cpp 2026-06-05 12:57:52.000000000 +0200 @@ -152,13 +152,13 @@ case QEvent::MouseButtonPress: { if (mouse_event->buttons() != Qt::LeftButton) break; - last_ = mouse_event->screenPos(); + last_ = mouse_event->globalPosition(); return true; } case QEvent::MouseMove: { if (mouse_event->buttons() != Qt::LeftButton) break; - const auto current = mouse_event->screenPos(); + const auto current = mouse_event->globalPosition(); const int hpos = scroll_area_->horizontalScrollBar()->value() + last_.x() - current.x(); const int vpos = scroll_area_->verticalScrollBar()->value() + last_.y() - current.y();
