push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
= Adding plugin, theme or language =
To extend the wordpressPackages set, add a new line to the corresponding json
file with the codename of the package:
- `wordpress-languages.json` for language packs
- `wordpress-themes.json` for themes
- `wordpress-plugins.json` for plugins
The codename is the last part in the url of the plugin or theme page, for
example `cookie-notice` in in the url
`https://wordpress.org/plugins/cookie-notice/` or `twentytwenty` in
`https://wordpress.org/themes/twentytwenty/`.
In case of language packages, the name consists of country and language codes.
For example `de_DE` for country code `de` (Germany) and language `DE` (German).
For available translations and language codes see [upstream translation repository](https://translate.wordpress.org).
To regenerate the nixpkgs wordpressPackages set, run:
```
./generate.sh
```
After that you can commit and submit the changes.
= Usage with the Wordpress module =
The plugins will be available in the namespace `wordpressPackages.plugins`.
Using it together with the Wordpress module could look like this:
```nix
{
services.wordpress = {
sites."blog.${config.networking.domain}" = {
plugins = with pkgs.wordpressPackages.plugins; [
anti-spam-bee
code-syntax-block
cookie-notice
lightbox-with-photoswipe
wp-gdpr-compliance
];
};
};
}
```
The same scheme applies to `themes` and `languages`.

View File

@@ -0,0 +1,207 @@
# Source: https://git.helsinki.tools/helsinki-systems/wp4nix/-/blob/master/default.nix
# Licensed under: MIT
# Slightly modified
{
lib,
newScope,
plugins,
themes,
languages,
callPackage,
}:
let
packages =
self:
let
generatedJson = {
inherit plugins themes languages;
};
sourceJson = {
plugins = builtins.fromJSON (builtins.readFile ./wordpress-plugins.json);
themes = builtins.fromJSON (builtins.readFile ./wordpress-themes.json);
languages = builtins.fromJSON (builtins.readFile ./wordpress-languages.json);
};
in
{
# Create a generic WordPress package. Most arguments are just passed
# to `mkDerivation`. The version is automatically filtered for weird characters.
mkWordpressDerivation = self.callPackage (
{
stdenvNoCC,
lib,
filterWPString,
gettext,
wp-cli,
}:
{
type,
pname,
version,
license,
...
}@args:
assert lib.any (x: x == type) [
"plugin"
"theme"
"language"
];
stdenvNoCC.mkDerivation (
{
pname = "wordpress-${type}-${pname}";
version = filterWPString version;
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
cp -R ./. $out
runHook postInstall
'';
passthru = {
wpName = pname;
};
meta = {
license = lib.licenses.${license};
}
// (args.passthru or { });
}
// lib.optionalAttrs (type == "language") {
nativeBuildInputs = [
gettext
wp-cli
];
dontBuild = false;
buildPhase = ''
runHook preBuild
find -name '*.po' -print0 | while IFS= read -d "" -r po; do
msgfmt -o $(basename "$po" .po).mo "$po"
done
wp i18n make-json .
rm *.po
runHook postBuild
'';
}
// removeAttrs args [
"type"
"pname"
"version"
"passthru"
]
)
) { };
# Create a derivation from the official wordpress.org packages.
# This takes the type, the pname and the data generated from the go tool.
mkOfficialWordpressDerivation = self.callPackage (
{ mkWordpressDerivation, fetchWordpress }:
{
type,
pname,
data,
license,
}:
mkWordpressDerivation {
inherit type pname license;
version = data.version;
src = fetchWordpress type data;
}
) { };
# Filter out all characters that might occur in a version string but that that are not allowed
# in store paths.
filterWPString =
builtins.replaceStrings
[
" "
","
"/"
"&"
";"
''"''
"'"
"$"
":"
"("
")"
"["
"]"
"{"
"}"
"|"
"*"
"\t"
]
[
"_"
"."
"."
""
""
""
""
""
""
""
""
""
""
""
""
"-"
""
""
];
# Fetch a package from the official wordpress.org SVN.
# The data supplied is the data straight from the go tool.
fetchWordpress = self.callPackage (
{ fetchsvn }:
type: data:
fetchsvn {
inherit (data) rev sha256;
url =
if type == "plugin" || type == "theme" then
"https://" + type + "s.svn.wordpress.org/" + data.path
else if type == "language" then
"https://i18n.svn.wordpress.org/core/" + data.version + "/" + data.path
else if type == "pluginLanguage" then
"https://i18n.svn.wordpress.org/plugins/" + data.path
else if type == "themeLanguage" then
"https://i18n.svn.wordpress.org/themes/" + data.path
else
throw "fetchWordpress: invalid package type ${type}";
}
) { };
}
// lib.mapAttrs (
type: pkgs:
lib.recurseIntoAttrs (
lib.makeExtensible (
_:
lib.mapAttrs (
pname: data:
self.mkOfficialWordpressDerivation {
type = lib.removeSuffix "s" type;
inherit pname data;
license = sourceJson.${type}.${pname};
}
) pkgs
)
)
) generatedJson;
in
# This creates an extensible scope.
lib.recursiveUpdate ((lib.makeExtensible (_: (lib.makeScope newScope packages))).extend (
selfWP: superWP: { }
)) (callPackage ./thirdparty.nix { })

View File

@@ -0,0 +1,23 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p wp4nix jq
set -e
set -u
set -o pipefail
set -x
cd $(dirname "$0")
nixFlags="--option experimental-features nix-command eval --raw --impure --expr"
export NIX_PATH=nixpkgs=../../../../..
export WP_VERSION=$(nix $nixFlags '(import <nixpkgs> {}).wordpress.version')
PLUGINS=`cat wordpress-plugins.json | jq -r 'keys|.[]' | sed -z 's/\n/,/g;s/,$/\n/'`
THEMES=`cat wordpress-themes.json | jq -r 'keys|.[]' | sed -z 's/\n/,/g;s/,$/\n/'`
LANGUAGES=`cat wordpress-languages.json | jq -r 'keys|.[]' | sed -z 's/\n/,/g;s/,$/\n/'`
wp4nix -p $PLUGINS -pl en
wp4nix -t $THEMES -tl en
wp4nix -l $LANGUAGES
rm *.log themeLanguages.json pluginLanguages.json

View File

@@ -0,0 +1,26 @@
{
"de_DE": {
"path": "de_DE",
"rev": "1551261",
"sha256": "0d4kxfzvpyp9p4kl7mfhvm2pilh27rbvsd3hv3p0y8hl33r96avb",
"version": "6.6"
},
"fr_FR": {
"path": "fr_FR",
"rev": "1566738",
"sha256": "1x4sxs40fal6qlbj9x8f0wwbji20729l25axcxx62rd98y47llg5",
"version": "6.6"
},
"ro_RO": {
"path": "ro_RO",
"rev": "1551215",
"sha256": "00i2grjcr7n2bqknff39ar7maz7gk7d17dqrl2p9smlhkj6m1bbp",
"version": "6.6"
},
"ru_RU": {
"path": "ru_RU",
"rev": "1551262",
"sha256": "0d5bdq99h9g6pcs3fw7czb4w4p60cjiizxqlbzan4p1g9056mmbl",
"version": "6.6"
}
}

View File

@@ -0,0 +1,260 @@
{
"add-widget-after-content": {
"path": "add-widget-after-content/tags/2.5.2",
"rev": "3172493",
"sha256": "0mw51q59wlr0y43la9fchimsp41gzgcapn7f9fdzvr42d3kwm3la",
"version": "2.5.2"
},
"akismet": {
"path": "akismet/tags/5.3.7",
"rev": "3272824",
"sha256": "0vpvzp0hf9b5ga4snlbh3k6z4vqwzxgzhgz61n62g0qgxkgk0qv1",
"version": "5.3.7"
},
"antispam-bee": {
"path": "antispam-bee/tags/2.11.7",
"rev": "3186018",
"sha256": "1scq6mqbalqvjb82cl55w9i8mzqr60rw4r7yfrln9plxi9bpmzgb",
"version": "2.11.7"
},
"async-javascript": {
"path": "async-javascript/tags/2.21.08.31",
"rev": "2929532",
"sha256": "0v9lrbxcgk6diz927q36nx45nbl6hm8bdig9lc0gj42i183y3g61",
"version": "2.21.08.31"
},
"breeze": {
"path": "breeze/tags/2.2.9",
"rev": "3270307",
"sha256": "19n5zrdswj4mi23355a13k4j194119nw70g95c0irxy78lv74zhm",
"version": "2.2.9"
},
"co-authors-plus": {
"path": "co-authors-plus/tags/3.6.5",
"rev": "3273514",
"sha256": "1jmcimc58psxlkk3pl57l5270f7w26vsx23j3mdlxh455vj5iavf",
"version": "3.6.5"
},
"code-syntax-block": {
"path": "code-syntax-block/tags/3.2.1",
"rev": "3083143",
"sha256": "0hcvix71g2nh2yws0j3rll2dk3ybf39i04m7qz9yrnva6s17g6l6",
"version": "3.2.1"
},
"cookie-notice": {
"path": "cookie-notice/tags/2.5.6",
"rev": "3262965",
"sha256": "1h7avy7mni4cfvh672vnk6n4npz57mpgm8xssp089hn8vqj2d1zx",
"version": "2.5.6"
},
"disable-xml-rpc": {
"path": "disable-xml-rpc/tags/1.0.1",
"rev": "2954460",
"sha256": "03vay6j7ac44pg55hlm02lglm3ggmjxdq95dhh0cmavbiafimhqq",
"version": "1.0.1"
},
"embed-extended": {
"path": "embed-extended/tags/1.4.0",
"rev": "2982701",
"sha256": "1qfxy9rp6ipp6r6m70vr30clbm2akssra4jbk8fss3qiz85rmfxa",
"version": "1.4.0"
},
"gutenberg": {
"path": "gutenberg/tags/20.6.0",
"rev": "3266305",
"sha256": "09sjm22lg5n07pi53xbaf47719zlp1nb7cmhkxd6pwdz3sik7xcx",
"version": "20.6.0"
},
"hcaptcha-for-forms-and-more": {
"path": "hcaptcha-for-forms-and-more/tags/4.12.0",
"rev": "3265103",
"sha256": "0b8blf03g8vaw1i22rl3swknyqwq28bv8fmk2fd6a64phrsbdpvj",
"version": "4.12.0"
},
"hello-dolly": {
"path": "hello-dolly/tags/1.7.2",
"rev": "2807593",
"sha256": "0zzbzdkzpgc65djn3694li82zc2q25q3zzv0kqjr7zwqmnrli0jp",
"version": "1.7.2"
},
"hkdev-maintenance-mode": {
"path": "hkdev-maintenance-mode/tags/3.1.3",
"rev": "3252095",
"sha256": "1znf09ld180qkfzyxigm5xhzqvfrlvx4g4j0f66a9fny4kpfk9jq",
"version": "3.1.3"
},
"jetpack": {
"path": "jetpack/tags/14.5",
"rev": "3265712",
"sha256": "0bibdqlv88hhk6xdlaq62264slqf0nild9mqzkbglzl2zybpfyjx",
"version": "14.5"
},
"jetpack-lite": {
"path": "jetpack-lite/tags/3.0.3",
"rev": "1895157",
"sha256": "04wq8cnhzgzrhm5pjwicsnavc46n6wdmb6xf8gz4wwl1di2hl471",
"version": "3.0.3"
},
"lightbox-photoswipe": {
"path": "lightbox-photoswipe/tags/5.6.1",
"rev": "3213779",
"sha256": "1p6w9bcb8irq38zsr2m14lnaq4hdjqvrcw7dr0603p00wnr9hc3k",
"version": "5.6.1"
},
"login-lockdown": {
"path": "login-lockdown/tags/2.11",
"rev": "3274659",
"sha256": "0hs8mv7w0fxad05fj5v5867azy4zd5x05918jq362f6qj18ci8xm",
"version": "2.11"
},
"mailpoet": {
"path": "mailpoet/tags/5.10.1",
"rev": "3273602",
"sha256": "0kzvc7841v5zl10vvsqmywm1i4smic4vvb3kl03a905j2flsjwm3",
"version": "5.10.1"
},
"merge-minify-refresh": {
"path": "merge-minify-refresh/trunk",
"rev": "3126978",
"sha256": "1xrr7ddriagd8hh6f0n9bkfqsc32rvzb9prbrh1r1k6qr84z0pi6",
"version": "2.12"
},
"opengraph": {
"path": "opengraph/tags/2.0.2",
"rev": "3246616",
"sha256": "1jphg0w6mm021kxypgz7hh04hyw7v7g95gdm35mq34z39h29hkbp",
"version": "2.0.2"
},
"simple-login-captcha": {
"path": "simple-login-captcha/tags/1.3.6",
"rev": "3272733",
"sha256": "1p0lhhqn9bca900bdbp5lnzq8mj16s3bic039ndrqzhj1wd87fy1",
"version": "1.3.6"
},
"simple-mastodon-verification": {
"path": "simple-mastodon-verification/tags/2.0.3",
"rev": "3169544",
"sha256": "12gh5ih4rkbdcrzdjml9rrlipbp2ymwhwxvr8y7lawmrflsas3r5",
"version": "2.0.3"
},
"so-clean-up-wp-seo": {
"path": "so-clean-up-wp-seo/tags/4.0.2",
"rev": "3114751",
"sha256": "1kqgmmaw99b164v554siygrxa3z7lxqhn0bwg7s01cm5fdg6i3dl",
"version": "4.0.2"
},
"sqlite-database-integration": {
"path": "sqlite-database-integration/tags/2.2.3",
"rev": "3322285",
"sha256": "1fggp3qpcdjk6a92wlv41kqmvnhs7dg1pb1ahan9n9wyja48acn8",
"version": "2.2.3"
},
"static-mail-sender-configurator": {
"path": "static-mail-sender-configurator/tags/0.10.0",
"rev": "2941521",
"sha256": "1mrwgqp1ril54xqr8k2gwgjcsbf4xv3671v15xawapwz730h2c4r",
"version": "0.10.0"
},
"surge": {
"path": "surge/tags/1.1.0",
"rev": "3146952",
"sha256": "16p75r1qcr4m1gajgw3bmpk3pvkpmrz3sh6pvi775hgs594f4vhc",
"version": "1.1.0"
},
"tc-custom-javascript": {
"path": "tc-custom-javascript/tags/1.2.3",
"rev": "2870386",
"sha256": "0lcprrnf25p6a12mf5hkfnl6r470n35pgfdl9nizjh4q43qzdcam",
"version": "1.2.3"
},
"webp-converter-for-media": {
"path": "webp-converter-for-media/tags/6.2.1",
"rev": "3265172",
"sha256": "13affcpq23s3gjsd7mja86j3a7vgv4kyaca77gxjsp1nbiba9nk5",
"version": "6.2.1"
},
"webp-express": {
"path": "webp-express/tags/0.25.9",
"rev": "3066149",
"sha256": "1rcd6qxpq569w8hk01h2k807n9qwvz2qv4g33n7spzsxpgqiicgh",
"version": "0.25.9"
},
"wordpress-seo": {
"path": "wordpress-seo/tags/24.9",
"rev": "3273107",
"sha256": "04b541yryi1xjkrj9ydr2yy7dasc1557f32asq6mppbyn2ia54xq",
"version": "24.9"
},
"worker": {
"path": "worker/tags/4.9.20",
"rev": "3087053",
"sha256": "0krm85iyk25s2fy7z16z0k9cjvhw31y5w6wfjbsl7cfz0q3ld6j5",
"version": "4.9.20"
},
"wp-change-email-sender": {
"path": "wp-change-email-sender/tags/3.0",
"rev": "3163024",
"sha256": "12r17xxwrnci5v18x71y44289z5dvvrj8xr3sfl1ipvlrvzggbfh",
"version": "3.0"
},
"wp-fail2ban": {
"path": "wp-fail2ban/tags/5.4.0.1",
"rev": "3230788",
"sha256": "1lzm42lx810h1fpn9qfi9az4ssmxsysx6lpcpfs6y815a4ik0dc4",
"version": "5.4.0.1"
},
"wp-fail2ban-addon-contact-form-7": {
"path": "wp-fail2ban-addon-contact-form-7/tags/2.0.0",
"rev": "3150733",
"sha256": "0xixgpkibyp9diwnfdr5pyyf3z1ll9wkps5cdhpqcikaapdpj45f",
"version": "2.0.0"
},
"wp-fastest-cache": {
"path": "wp-fastest-cache/tags/1.3.6",
"rev": "3271461",
"sha256": "1m06zrpq8iya8pkra99ajkv74lqqfgwdv74ywjnf23h57cli609a",
"version": "1.3.6"
},
"wp-gdpr-compliance": {
"path": "wp-gdpr-compliance/tags/2.0.22",
"rev": "2865556",
"sha256": "0zgn3pg2zhqqv89rl6pqwd3p3hvspsnn47iab7xw0d79nby0nh7c",
"version": "2.0.22"
},
"wp-import-export-lite": {
"path": "wp-import-export-lite/trunk",
"rev": "3274100",
"sha256": "1s7hqsh5xvwd84349a2rkxv3bqi7y86m5q6x0y7qgm889m3d2hli",
"version": "3.9.28"
},
"wp-mail-smtp": {
"path": "wp-mail-smtp/tags/4.4.0",
"rev": "3251178",
"sha256": "0rg9rdd675zrc9x1vxb552v10gk0jk2lq6pkbd4kbcmh851r55zb",
"version": "4.4.0"
},
"wp-statistics": {
"path": "wp-statistics/tags/14.13.1",
"rev": "3268590",
"sha256": "0xr04pa8f24lril2svd0g7hd4hgw6nvcv3ys5wvn32byjd8pxx2c",
"version": "14.13.1"
},
"wp-swiper": {
"path": "wp-swiper/trunk",
"rev": "3220490",
"sha256": "091rl79z5y9qvvdlcfx9czfrrji0ifipkg7l02n91331fi02ij07",
"version": "1.2.17"
},
"wp-user-avatars": {
"path": "wp-user-avatars/trunk",
"rev": "2540784",
"sha256": "1g21nl6xs9zyq0ainjwa06wl90975l8f9rj0fa20zkmw17w2mdgl",
"version": "1.4.1"
},
"wpforms-lite": {
"path": "wpforms-lite/tags/1.9.4.2",
"rev": "3254748",
"sha256": "087iw17maiv84cmyv0lmpr8fafijr3m7xw36jdwbd3kfi57rwmsz",
"version": "1.9.4.2"
}
}

View File

@@ -0,0 +1,44 @@
{
"twentynineteen": {
"path": "twentynineteen/3.1",
"rev": "267655",
"sha256": "0w6vq93s54j8c02613h9hmjjzs15aasazbi96c6k0ns8395dzl2i",
"version": "3.1"
},
"twentytwenty": {
"path": "twentytwenty/2.9",
"rev": "267656",
"sha256": "1hkbsy5w5qzbvlsaj16zwnmq0hzhnlqb6ikjyg0fliyddlxnjyi0",
"version": "2.9"
},
"twentytwentyfive": {
"path": "twentytwentyfive/1.2",
"rev": "267661",
"sha256": "1sm5ifdgnxgmg0pkaik98hnqmcfmjk552994a0gd4mpp137d3f1n",
"version": "1.2"
},
"twentytwentyfour": {
"path": "twentytwentyfour/1.3",
"rev": "248600",
"sha256": "12zfb83s1zgbs3r8an17hdwzn7s01hfwhxd5ak5x6106cy61nshq",
"version": "1.3"
},
"twentytwentyone": {
"path": "twentytwentyone/2.5",
"rev": "267659",
"sha256": "06jb3wx0mwfkv0yb1vi2prx9i13xw2lr3xb7qkv5vlc7dc08rb5r",
"version": "2.5"
},
"twentytwentythree": {
"path": "twentytwentythree/1.6",
"rev": "248602",
"sha256": "0q8qz75a2yaf4lqj84w4hfcizjj7fvgbq0rinag4abk7ivdys537",
"version": "1.6"
},
"twentytwentytwo": {
"path": "twentytwentytwo/2.0",
"rev": "267660",
"sha256": "0b34rz0jpxzc0bc9plml0n4c54rlgzq9r7f9wx092yf0jiz9fr12",
"version": "2.0"
}
}

View File

@@ -0,0 +1,53 @@
{
fetchzip,
stdenv,
lib,
}:
{
plugins.civicrm = stdenv.mkDerivation rec {
pname = "civicrm";
version = "6.2.0";
src = fetchzip {
inherit version;
name = pname;
url = "https://download.civicrm.org/${pname}-${version}-wordpress.zip";
hash = "sha256-Bx1rixRbqJsiMrIIkzTGeqLIc5raiNoUVTsoxZ6q9uU=";
};
installPhase = ''
runHook preInstall
cp -r ./ -T $out
runHook postInstall
'';
meta.license = lib.licenses.agpl3Only;
};
themes = {
geist = stdenv.mkDerivation rec {
pname = "geist";
version = "2.0.3";
src = fetchzip {
inherit version;
name = pname;
url = "https://github.com/christophery/geist/archive/refs/tags/${version}.zip";
hash = "sha256-c85oRhqu5E5IJlpgqKJRQITur1W7x40obOvHZbPevzU=";
};
meta.license = lib.licenses.gpl2Only;
};
proton = stdenv.mkDerivation rec {
pname = "proton";
version = "1.0.1";
src = fetchzip {
inherit version;
name = pname;
url = "https://github.com/christophery/proton/archive/refs/tags/${version}.zip";
hash = "sha256-JgKyLJ3dRqh1uwlsNuffCOM7LPBigGkLVFqftjFAiP4=";
};
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r ./* $out/
runHook postInstall
'';
meta.license = lib.licenses.mit;
};
};
}

View File

@@ -0,0 +1,6 @@
{
"de_DE": "gpl2Plus",
"fr_FR": "gpl2Plus",
"ro_RO": "gpl2Plus",
"ru_RU": "gpl2Plus"
}

View File

@@ -0,0 +1,45 @@
{
"add-widget-after-content": "gpl3Plus"
, "akismet": "gpl2Plus"
, "antispam-bee": "gpl2Plus"
, "async-javascript": "gpl2Plus"
, "breeze": "gpl2Plus"
, "code-syntax-block": "gpl2Plus"
, "cookie-notice": "mit"
, "co-authors-plus": "gpl2Plus"
, "disable-xml-rpc": "gpl2Plus"
, "embed-extended": "gpl2Plus"
, "gutenberg": "gpl2Plus"
, "hcaptcha-for-forms-and-more": "gpl2Only"
, "hello-dolly": "gpl2Plus"
, "hkdev-maintenance-mode": "gpl2Plus"
, "jetpack": "gpl2Plus"
, "jetpack-lite": "gpl2Only"
, "lightbox-photoswipe": "gpl2Only"
, "login-lockdown": "gpl2Plus"
, "mailpoet": "gpl3Only"
, "merge-minify-refresh": "gpl2Plus"
, "opengraph": "asl20"
, "simple-login-captcha": "gpl2Plus"
, "simple-mastodon-verification": "gpl2Plus"
, "so-clean-up-wp-seo": "gpl3Plus"
, "sqlite-database-integration": "gpl2Plus"
, "static-mail-sender-configurator": "mit"
, "surge": "gpl3Only"
, "tc-custom-javascript": "gpl2Plus"
, "webp-converter-for-media": "gpl2Plus"
, "webp-express": "gpl3Only"
, "wordpress-seo": "gpl3Only"
, "worker": "gpl3Plus"
, "wp-change-email-sender": "gpl2Plus"
, "wp-fail2ban": "gpl3Plus"
, "wp-fail2ban-addon-contact-form-7": "gpl3Plus"
, "wp-fastest-cache": "gpl2Plus"
, "wp-gdpr-compliance": "gpl2Plus"
, "wp-import-export-lite": "gpl3Plus"
, "wp-mail-smtp": "gpl3Plus"
, "wp-statistics": "gpl3Only"
, "wp-swiper": "gpl2Plus"
, "wp-user-avatars": "gpl2Plus"
, "wpforms-lite": "gpl2Plus"
}

View File

@@ -0,0 +1,9 @@
{
"twentynineteen": "gpl2Plus",
"twentytwenty": "gpl2Plus",
"twentytwentyone": "gpl2Plus",
"twentytwentytwo": "gpl2Plus",
"twentytwentythree": "gpl2Plus",
"twentytwentyfour": "gpl2Plus",
"twentytwentyfive": "gpl2Plus"
}