nextcloud / maps

🌍🌏🌎 The whole world fits inside your cloud!
https://apps.nextcloud.com/apps/maps
GNU Affero General Public License v3.0
504 stars 89 forks source link

[Bug]: Maps is broken for Nextcloud container 26.0.2, App store offers ancient version 0.1.10 #1061

Closed t-lo closed 1 year ago

t-lo commented 1 year ago

⚠️ This issue respects the following points: ⚠️

Bug description

Maps is broken with Nextcloud container images version 26.0.2, and likely previous 26.0 releases too. The Nextcloud 26.x container images ship with PHP version 8.2.6, and recent versions of the Maps app require 8.1 or lower. I'm not sure if AIO is affected too, but if it ships the same PHP version as the regular image it will.

Oddly enough the integrated Nextcloud store offers an ancient version - 0.1.10 - to use with Nextcloud 26. Installing it works, but enabling it fails with "Could not boot maps: Class \"OCP\AppFramework\Db\\Mapper" not found".

Users who upgrade from 25.x to 26.x have no way of knowing that this will break their maps app as seemingly, a working app is available for 26.x. Only after upgrading users will notice Maps is not available to them anymore.

The current version is not offered at all after the upgrade. Manual installation of 1.0.2 cannot be enabled:

This app cannot be installed because the following dependencies are not fulfilled:

  • PHP with a version lower than 8.1 is required. Manually bumping <php max-version= to 8.2 in appinfo/info.xml lets me enable the app, but opening it leads to an internal server error and "Class "OCA\Maps\AppInfo\Application" not found" in the nextcloud log.

Effectively, Maps does not work for docker image users on 26.0.2.

Steps to reproduce

  1. Start Nextcloud docker image
  2. Check Apps -> Multimedia -> Maps
  3. Install version 0.1.10 offered
  4. Maps will immediately be disabled, Nextcloud error log will contain "Could not boot maps: Class \"OCP\\AppFramework\Db\\Mapper" not found"

Expected behavior

App can be installed via the integrated App store, activated, and used.

Installation method

Official Docker image

Operating system

Other

PHP engine version

Other

Web server

Apache (supported)

Database engine version

MySQL

Is this bug present after an update or on a fresh install of the server?

Updated to a major version (ex. 22.2.3 to 23.0.1)

Is this bug present after an update or on a fresh install of the app?

None

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

Configuration report

No response

List of activated Apps

Enabled:
  - activity: 2.18.0
  - announcementcenter: 6.6.1
  - audioplayer: 3.3.1
  - bruteforcesettings: 2.6.0
  - calendar: 4.3.4
  - circles: 26.0.0
  - cloud_federation_api: 1.9.0
  - comments: 1.16.0
  - contacts: 5.2.0
  - contactsinteraction: 1.7.0
  - dashboard: 7.6.0
  - dav: 1.25.0
  - deck: 1.9.2
  - federatedfilesharing: 1.16.0
  - federation: 1.16.0
  - files: 1.21.1
  - files_accesscontrol: 1.16.0
  - files_automatedtagging: 1.16.1
  - files_pdfviewer: 2.7.0
  - files_photospheres: 1.26.2
  - files_retention: 1.15.0
  - files_rightclick: 1.5.0
  - files_scripts: 2.2.1 
  - files_sharing: 1.18.0
  - files_trashbin: 1.16.0
  - groupfolders: 14.0.2 
  - impersonate: 1.13.1  
  - integration_google: 2.0.2
  - integration_mastodon: 2.0.2
  - jitsi: 0.17.0
  - logreader: 2.11.0
  - lookup_server_connector: 1.14.0
  - maps: 1.0.2
  - nextcloud_announcements: 1.15.0
  - notifications: 2.14.0
  - oauth2: 1.14.0
  - onlyoffice: 7.8.0
  - password_policy: 1.16.0
  - phonetrack: 0.7.6
  - photos: 2.2.0
  - previewgenerator: 5.3.0
  - privacy: 1.10.0
  - provisioning_api: 1.16.0
  - recommendations: 1.5.0
  - related_resources: 1.1.0-alpha1
  - serverinfo: 1.16.0   
  - settings: 1.8.0
  - sharebymail: 1.16.0  
  - side_menu: 3.8.0
  - snappymail: 2.28.0   
  - spreed: 16.0.4
  - support: 1.9.0
  - survey_client: 1.14.0
  - systemtags: 1.16.0   
  - tables: 0.5.0
  - tasks: 0.15.0
  - text: 3.7.2
  - theming: 2.1.1
  - twofactor_backupcodes: 1.15.0
  - updatenotification: 1.16.0
  - user_status: 1.6.0
  - viewer: 1.10.0
  - weather_status: 1.6.0
  - workflow_pdf_converter: 1.11.0
  - workflowengine: 2.8.0
Disabled:
  - admin_audit: 1.16.0 (installed 1.12.0)
  - cfg_share_links: 1.2.2 (installed 3.0.2)
  - encryption: 2.14.0
  - files_external: 1.18.0
  - files_versions: 1.19.1 (installed 1.18.0)
  - firstrunwizard: 2.15.0 (installed 2.8.0)
  - suspicious_login: 4.4.0
  - twofactor_totp: 8.0.0
  - user_ldap: 1.16.0 (installed 1.12.2)

Nextcloud Signing status

No response

Nextcloud Logs

No response

Browser Console

No response

Additional info

No response

szaimen commented 1 year ago

I'm not sure if AIO is affected too, but if it ships the same PHP version as the regular image it will.

AIO is not effected. It comes with PHP 8.1.

tacruc commented 1 year ago

Which PHP version are you using?

t-lo commented 1 year ago

Which PHP version are you using?

The one shipped with the latest nextcloud 26.0.2 docker image, as per the summary:

The Nextcloud 26.x container images ship with PHP version 8.2.6, and recent versions of the Maps app require 8.1 or lower.

adripo commented 1 year ago

1062 is related to the same issue.

From what I was able to test, if you upgrade to docker image v26 (which has PHP 8.2.7) and you already have the latest maps version installed (1.0.2), it will continue to work. If you, otherwise, start from a clean installation, the appstore will show the latest compatible version 0.1.10 (which I think didn't had any check on PHP version) that will not work. If you try to force the installation (which I did) by manually downloading the v1.0.2 inside the folders and enable it, you will have the following error:

./occ app:enable maps
App "Maps" cannot be installed because the following dependencies are not fulfilled: PHP with a version lower than 8.1 is required.

Is there any real limitations in using newer php versions, or it can simply be updated here? https://github.com/nextcloud/maps/blob/master/appinfo/info.xml#L37

Thanks @skjnldsv @tacruc

adripo commented 1 year ago

I proceeded to manually update the php max-version to 8.2 and tested the app on a newer installation and everyhing seems to work perfectly.

t-lo commented 1 year ago

I proceeded to manually update the php max-version to 8.2 and tested the app on a newer installation and everyhing seems to work perfectly.

I can confirm that manually downloading 1.0.2, patching appinfo/info.xml => <php min-version="7.4" max-version="8.2"/> and enabling maps via the command line does indeed work with the latest nextcloud 26.0.2 docker image. Installing, patching, and then trying to enable it via the web interface does not work.