nextcloud / nextcloud/server

Prevent app update if requirements are not met

Open
#27,797 10 comments 27 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage 25-feedback bug feature: apps management feature: install and update
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.
Steps to reproduce
  1. Install Nextcloud on a 32-bit host system
  2. Install app news version up to 15.x (NOT 16.x or higher)
  3. Upgrade app through web ui or commandline
Expected behaviour

The news app requires a 64-bit host system. This requirement should be checked before updating the app. Update should be prevented if requirement is not met.

Actual behaviour

Update is tried, however "news" presents a message, requirements are not met and suggests to run "occ upgrade", which has no effect, because the same broken news app is installed. You can not recover from web ui, there's no rollback, you can not deactivate the app. See https://github.com/nextcloud/news/issues/1423 for details.

Server configuration

Operating system: Debian GNU/Linux 10 (buster), i686 arch (32bit)

Web server: lighttpd/1.4.59

Database: MariaDB 10.3.29

PHP version: 7.3.27

Nextcloud version: 21.0.3

Updated from an older Nextcloud/ownCloud or fresh install: updated

Where did you install Nextcloud from: tarball

Signing status:

Signing status
No errors have been found.

List of activated apps:

App list
Enabled:
  - accessibility: 1.7.0
  - activity: 2.14.3
  - admin_audit: 1.11.0
  - audioplayer: 3.1.0
  - bookmarks: 4.2.2
  - bruteforcesettings: 2.2.0
  - calendar: 2.3.0
  - cloud_federation_api: 1.4.0
  - comments: 1.11.0
  - contacts: 3.5.1
  - contactsinteraction: 1.2.0
  - cookbook: 0.8.4
  - dashboard: 7.1.0
  - dav: 1.17.1
  - deck: 1.4.2
  - federatedfilesharing: 1.11.0
  - federation: 1.11.0
  - files: 1.16.0
  - files_antivirus: 3.2.1
  - files_external: 1.12.0
  - files_markdown: 2.3.3
  - files_pdfviewer: 2.1.0
  - files_rightclick: 1.0.0
  - files_sharing: 1.13.1
  - files_trashbin: 1.11.0
  - files_versions: 1.14.0
  - files_videoplayer: 1.10.0
  - firstrunwizard: 2.10.0
  - keeweb: 0.6.5
  - logreader: 2.6.0
  - lookup_server_connector: 1.9.0
  - maps: 0.1.8
  - nextcloud_announcements: 1.10.0
  - notes: 4.1.0
  - notifications: 2.9.0
  - oauth2: 1.9.0
  - password_policy: 1.11.0
  - photos: 1.3.0
  - privacy: 1.5.0
  - provisioning_api: 1.11.0
  - qownnotesapi: 20.9.0
  - recommendations: 1.0.0
  - serverinfo: 1.11.0
  - settings: 1.3.0
  - sharebymail: 1.11.0
  - social: 0.4.2
  - spreed: 11.2.2
  - support: 1.4.0
  - survey_client: 1.9.0
  - suspicious_login: 4.0.0
  - systemtags: 1.11.0
  - tasks: 0.13.6
  - text: 3.2.0
  - theming: 1.12.0
  - twofactor_backupcodes: 1.10.0
  - twofactor_totp: 6.1.0
  - updatenotification: 1.11.0
  - user_status: 1.1.1
  - viewer: 1.5.0
  - weather_status: 1.1.0
  - workflowengine: 2.3.0
Disabled:
  - analytics
  - checksum
  - encryption
  - gpxpod
  - news
  - ojsxc
  - ransomware_detection
  - ransomware_protection
  - user_ldap

Nextcloud configuration:

Config report
If you have access to your command line run e.g.:
sudo -u www-data php occ config:list system
from within your Nextcloud installation folder

or 

Insert your config.php content here. 
Make sure to remove all sensitive content such as passwords. (e.g. database password, passwordsalt, secret, smtp password, …)

Are you using external storage, if yes which one: smb

Are you using encryption: no

Are you using an external user-backend, if yes which one: no

Client configuration

Browser: Firefox

Operating system: Debian GNU/Linux

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the app update paths used by the web UI and command line, including occ upgrade, and locate where app requirements are evaluated. Reproduce the 32-bit host scenario with the news app. Done means an update is refused before installation when requirements are unmet, without leaving the existing app unusable.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend, cloud
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.