8 Commits
Author SHA1 Message Date
Robert Schützandgador 11f15e36b6 Revert "nextcloudPackages: Revamp package generation script"
This reverts commit 4349a61a71.
2024-08-04 17:35:43 +02:00
Robert Schützandgador 4df4acd542 Revert "nextcloud{28,29}Packages: improve generation script"
This reverts commit 0fde477b80.
2024-08-04 17:35:43 +02:00
Robert Schütz 0fde477b80 nextcloud{28,29}Packages: improve generation script
The script can now be executed from an arbitrary location and doesn't
require Nix's experimental features to be enabled.
2024-07-18 05:34:26 -07:00
Pyrox 4349a61a71 nextcloudPackages: Revamp package generation script 2024-07-13 18:32:19 -04:00
Finn Landweber 4045c52a33 nextcloudPackages generate.sh: added jq dependency 2024-01-11 12:32:00 +01:00
Maximilian Bosch c317dcec0d nextcloud*Packages: expose proper license information
This change makes sure that each Nextcloud plugin installed provides a
`meta` section with proper license information.

Unfortunately, the metadata from the appstore is useless for this
purpose since it doesn't differentiate between e.g. AGPL 3.x and AGPL
3.x or any later version. In fact, this isn't consistent between their
software, e.g. `bookmarks` has `agpl3Plus` according to the files'
headers[1] whereas `twofactor_nextcloud_notification` is AGPL 3 only[2].

I don't think there's any trivial and reasonable way to retrieve this
information programatically, so I decided to change the format of
`nextcloud-apps.json`[3] to also contain the license in the form of the
license attribute we have in `lib/licenses.nix`, i.e. GNU AGPL 3 or
later is `agpl3Plus`.

I retrieved the information using the following approach:

* go to the source code of $app at the revision we currently have
  packaged
* check for a license identifier (does it specify the license only or
  the license "or any later version")?
  * first in `src/main.js` because most apps from Nextcloud itself used
    actual spdx identifiers in the frontend's source-code.
  * then in `lib/AppInfo/Application.php` which each Nextcloud app has.

License changes should be updated accordingly when updating the apps. As
with any other package in nixpkgs as well, this currently needs to be
done manually (or as part of the review process)[4].

Also, I decided to change the `name` of the `applyPatches` derivation
from `source-patched` to `nextcloud-app-${appName}-${appVersion}`. When
deploying a lot of apps (and probably displaying the diff using
`nix store diff-closures` on deploy), the current output isn't very
helpful. This is purely optional because I didn't want to break the
interface of `fetchNextcloudApp` again.

[1] https://github.com/nextcloud/bookmarks/blob/v13.1.0/lib/AppInfo/Application.php#L6
[2] https://github.com/nextcloud/twofactor_nextcloud_notification/blob/v3.7.0/lib/AppInfo/Application.php
[3] This isn't really well-defined since it's preprocessed with `jq(1)`
    before passing the apps to nc4nix.
[4] Though notable license changes (e.g. agpl -> gpl) would also pop up
    in the diff of <nextcloudversion>.json, so this is pretty easy to
    catch.
2023-08-20 13:39:44 +02:00
Robert Schütz 2e30678017 nextcloudPackages: update 2023-06-13 14:45:16 -07:00
Jonas HeinrichandYt aec2518c5b nextcloudPackages: init 2022-11-15 07:17:35 -05:00