diff --git a/pkgs/by-name/jo/joplin-desktop/buildPlugin.nix b/pkgs/by-name/jo/joplin-desktop/buildPlugin.nix new file mode 100644 index 0000000000000..4ef26f8e1fb1b --- /dev/null +++ b/pkgs/by-name/jo/joplin-desktop/buildPlugin.nix @@ -0,0 +1,38 @@ +{ + lib, + fetchzip, + npm-lockfile-fix, + buildNpmPackage, + + name, + url, + hash, + npmDepsHash, + patches ? [ ], +}: + +buildNpmPackage { + inherit name npmDepsHash patches; + + src = fetchzip { + inherit url hash; + postFetch = '' + # Add missing integrity and resolved fields + ${lib.getExe npm-lockfile-fix} $out/package-lock.json + ''; + }; + + postPatch = '' + sed -i '/preinstall/d' package.json + ''; + + npmBuildScript = "dist"; + + installPhase = '' + runHook preInstall + + install -Dm444 -t $out publish/*.jpl + + runHook postInstall + ''; +} diff --git a/pkgs/by-name/jo/joplin-desktop/missing-hashes.json b/pkgs/by-name/jo/joplin-desktop/missing-hashes.json new file mode 100644 index 0000000000000..7c3f79d470e01 --- /dev/null +++ b/pkgs/by-name/jo/joplin-desktop/missing-hashes.json @@ -0,0 +1,112 @@ +{ + "@esbuild/aix-ppc64@npm:0.25.4": "c3d5aaf00899940960a27f93a63d9169efc4ff317f10bc3608291678ce71255d657129061dbfa016a0d16fd7b6bfbeb9d37558e9113432f8ff5d04b8b8e54b2f", + "@esbuild/aix-ppc64@npm:0.25.8": "451dc5fd41cf67ccc24b8d1da6f95b1082552b6908f0cb0c78fba3da39a4b6c3669ce37dc3c2c383cc18266ea35c0fcec6696fb24f8a0aaf097b94def035c129", + "@esbuild/android-arm64@npm:0.25.4": "aa5285109d86607c973ee8d20b582cb444bae31457982dbd3b004feaa4776d145d48a6692537defd8477f2bd0bdf06ff8c7e688dd07fe30b5d031c6dd434c580", + "@esbuild/android-arm64@npm:0.25.8": "ef542eda68837bd16cdae4ed99c312405673da95ec3fba1d2f0f102cbd983fdd7357acd1504b5a5ef517b952c9978a0c4baa65211626db6cf862e2bf9ebebe49", + "@esbuild/android-arm@npm:0.25.4": "8c5c306e03044527fb2f4eaaeda255d7f40d6a3d02aa9abd1334d67a9ea1a5ab2ab654df77eb7e17e64947c5893e1ba53fc9d3bbefa15f0692e6b56823c47abc", + "@esbuild/android-arm@npm:0.25.8": "a0a5995ed8ff2c9775e8395d3da0b7d7b9246040db680aedeb8df9ca980891fe322a6b833cf0bc554852de351aa1351b37aff0213113d4d4afd28c638edc74f1", + "@esbuild/android-x64@npm:0.25.4": "aa8665b302b65ca62e15a34e72e43d1ce7a253a354d8684cbe5ea1a04a79d1323416b46c727d6ab73a76a4ec047fb2859b054f8f80fe9ac1d286a4d00ed754e6", + "@esbuild/android-x64@npm:0.25.8": "afb24505bf544e53c71707456a85dc21bcc26106c1863aad85733eb5d5bd2e334cb58a2fe31973b4311cc08802493c8d920f41c91f88884baf4c6700a04182ec", + "@esbuild/darwin-arm64@npm:0.25.4": "81b4d0482813ccff8c783035317d78220a4ec3eee3798e50b804a781a071f5790c7903c2f9216a25f5c167becd4c3d78fcf0a13e454b3973eb7d82b7ce1d4688", + "@esbuild/darwin-arm64@npm:0.25.8": "c5bcf68dce1ba9fa111c2da068c50ade5fd74f724bab93058542619a67554b598ef0c47593f4d5cc382f0ac53507e2bc0ac3111824df9d5776c7cd8fe2c28001", + "@esbuild/darwin-x64@npm:0.25.4": "633d97f18c299c8da3730ae04831895779b5f1271020cc924e06c6a5f0c5aac9f0653d60cca7d6ac23926797368301cd6ce2059b25f432aa2f1f378fcb34530d", + "@esbuild/darwin-x64@npm:0.25.8": "db948746f087aace173b52d08b7085514755cbc5bab7f1e64ff7e075489fb8596c7490038bea9e54337586ba02ca3c9f56365029660e711a380bb30f1dccb41a", + "@esbuild/freebsd-arm64@npm:0.25.4": "4d52cf4e18e1f4ab2fd80c4c4a9ab9c20658c77d832d33603b5d19b3ed4565ad7186b86e30a92b78aa11694d884201d0914dba649d6277737574896a897a2af7", + "@esbuild/freebsd-arm64@npm:0.25.8": "faa5a23e4f2e8d1fae84ea0ae424b3b89e8c425e15427e749d0ca9f5a8ca77c6b237886914ce61495ce1f01cb5430b0e55ea61d21a2dc4930be09dffec56059f", + "@esbuild/freebsd-x64@npm:0.25.4": "af75d6724969c4d831bb09209f4ddb46532516932db98a3e4c5c5dcc7f3cd0fe0930f2875fa901b8bb9c0ecfe0a65313da6127ea9387c63859e5d58cff975e68", + "@esbuild/freebsd-x64@npm:0.25.8": "e5a93cef5e2c6b191f178aa73137d2c44cee60a7a6be8806d630ec82ff1dfc72ccd30297c6b607d2ad715ef20b88068e93abb0fa8e187c8fe2547920eef9b4e7", + "@esbuild/linux-arm64@npm:0.25.4": "72b7e3b8fe3bd27206577f8eceea1e0c289dc01fa2f5b03fe22f4ea27931ca664a9b93b35f9ae424e78552caec76330383fe7dc5afeeaffa0e00645ec143a49b", + "@esbuild/linux-arm64@npm:0.25.8": "deb61aafe7a2cb32d9f43b5030fb070856f45210d2ac8ac9ce527fec4016bb4a58ffea93536834cd386786cd6ec40327e057853b0348b45d7a06e6eeec71a63c", + "@esbuild/linux-arm@npm:0.25.4": "407dcf9e8fc4ebc75689b6257be576047c03285067b5b22db74dd07ae067f8dd9126936dedfeb27934e09d0d700ecb3f8d70876fe61b90d92355f35c2a5d6540", + "@esbuild/linux-arm@npm:0.25.8": "3382c6f8e7b3bb479c5b4a01b0baa78054efdf002241eea1d606c8727b9d2168f0ee1798b5627de6b92285b85904e358c9531a1c0f07ef585845fd7d88696db4", + "@esbuild/linux-ia32@npm:0.25.4": "47b13c9952c893e749380551dfa3580eb562a0394911a9ced68b23c0cafe116614b30ffd6744dc71ec312fab8bc7115f856f078fe29f1253a1dd99d3215a1424", + "@esbuild/linux-ia32@npm:0.25.8": "e32f2fa63c74d6723c876cec9b42c04e6aa5e6d0cd9a7447d0b4b00d7615a484da55ef95b4fcf871492019a007c40defb497ef6075ad94da46b6121828fcf83a", + "@esbuild/linux-loong64@npm:0.25.4": "75222fb808060b3f2507aee40c6ee877a1ed768c593dd8f192e1ea640bddf3b414080407ddaccac6d0cde35750a7f92c434e04af2c142075dc810c5b7a7ce5eb", + "@esbuild/linux-loong64@npm:0.25.8": "a55894549cd7e64c2062863eaf697175a1d6f86def565555614ad335b462afbfebf403ec0f1d83bf8dff145d57c4046815b26c70e98f068a9f99317fc37d71e8", + "@esbuild/linux-mips64el@npm:0.25.4": "3f129931a6973a4fa470ddc46e3e3fa150aca64029951fe7a8d9616f41ddf8422d3744a30b0c5f36a35bff19b32b25c85bf1e5760537b329f18558e289213eea", + "@esbuild/linux-mips64el@npm:0.25.8": "5c1ef406e07fbb766417be11b859baa3e905587c8bf3465f0f6ffd6cfd54b658ceffc616bfbea0340473deaebd430db6aea33468876796bcad83f05bf1910d9d", + "@esbuild/linux-ppc64@npm:0.25.4": "6f84018eda99c3f06d519abbdbdf15700707236b8643ba24150d5168062ba310ee3c972645554b05d4b768438697a9a04014bc884a1beb15bf05bbe1b29e34ca", + "@esbuild/linux-ppc64@npm:0.25.8": "a5f386bd5b18eb3eb7f240b112595182f450382ca93a7d6cad4c57b82e13830aff22250ff02728dd5b8d65f3b9908ef291f223a6e83d78d64f497d3117a567a1", + "@esbuild/linux-riscv64@npm:0.25.4": "c5b674c2f48c5292f594141a4739f9f266ce8a1a2514eaefacc6fac761f1fa6c208981ca4c9e774c383ca33a46cad539b1fa46af6827cf89db721f33c36093c8", + "@esbuild/linux-riscv64@npm:0.25.8": "6b624062871ac3bb93af3b560a97fb489eef06cb12f4716c0c7d54fb31d4047fec570bbc9cc2bc9f98e8a4fbd07db6fa542115c02ec3bb66922e8b1988304cc1", + "@esbuild/linux-s390x@npm:0.25.4": "a54c0972230a2264714371f6545ff0d9b20d349b08e4837e7063378886f88c08ade0ed5b2c7ba744c4679deb2f60e8485ef475f92cdbadca9d34f462a2724cc1", + "@esbuild/linux-s390x@npm:0.25.8": "c13f82778a07b14fa50d52322f4b347bea6540a207e0468b060588922fae2278ae1b18a88bbd1cf3656b5d7eb8a84dcf8a237c91e7e0629fa6e56be41db46055", + "@esbuild/linux-x64@npm:0.25.4": "1ba32d40895c826e6990157a141e23d68fdf00b46d60ef3572a89781f177df75e023d38b130087b167a6e38410c3af0a6bec7b2d3b1af2a37a21c1ed70dcba45", + "@esbuild/linux-x64@npm:0.25.8": "e6483e5c367e7c35899c98bc378e8a37f5617a741297d9b91c59c1d29b9b00f26f9c315a736b41af33f21d9d74a8c648715ce13ac520b3fa7604978a05dedd99", + "@esbuild/netbsd-arm64@npm:0.25.4": "37bc10864f14c60f995e2ef13bb53102d0ce0eab1d32dfe5f48254aafe6d791d7129cbb00c6acf9e32b561db5420c5558b84800cf6958d40d3d55a7e3f456ebb", + "@esbuild/netbsd-arm64@npm:0.25.8": "02afba2e5fbf8e8cc4c375edfce673b38015213744f1df05a74ab9de99f5860e50dc26af97b4f0b4f804c461ab45cfa773603ce0e1b0528bd93e7a979eca7682", + "@esbuild/netbsd-x64@npm:0.25.4": "6875cc83961e613dd28f1c1d5c3b7404dc7cd4b54071596712c56574b1a24517424483c7c363c0aefa8259cf2d621e080b8270c0c242010ad04ce367aa87e897", + "@esbuild/netbsd-x64@npm:0.25.8": "76c43cc94f9b287a6a0d277d51f17e650d168e26008741e86035f2e054b8216d61855feddc2c0b48f989b46c58913168148a30b30fff5b87a1bc08fd78cbd0e7", + "@esbuild/openbsd-arm64@npm:0.25.4": "a7981586bbfea74746aa87113089020c73677209b71fadab43e6693c141b9415c342df01694e70aa607a1e80e9e37ccf4682dc2f095cae1ffb60c740e63e7d32", + "@esbuild/openbsd-arm64@npm:0.25.8": "9c0fbf35b6cefcc46c1c545520c50c65e89d620c65c97a55d47f1440e908cbbe6535073cb78ae69c1e2ba76621f09f3ab0f4bf9d5567660b8726c198a0ebdb0f", + "@esbuild/openbsd-x64@npm:0.25.4": "7b1bf4a5032e32ed3ce33bf9373964bdf29e49b0e16179e179d7c7dd0a36dbc6ee98ba67e0ef637ed7823b3ac094e21ccde848a066deb091bacc6ea4726a2ede", + "@esbuild/openbsd-x64@npm:0.25.8": "cd45098a84bcc86d4b1a809cf6e5f9548aa69cdff3a0f63a9bb039d05fdfd0daa2e166e1e30b8fbb71ede895dfc9c371e8368e3d51e7bf0484083f9bb112945a", + "@esbuild/openharmony-arm64@npm:0.25.8": "769c3e589d62648c67cd36306aaee683429e42e7d02608a52929f245c3a42d8036156fe90d59aff7695c2e75712be89ae4d4f06f4249f15a06bdc091ff42908d", + "@esbuild/sunos-x64@npm:0.25.4": "e1807f6dbd3bdf2f1ff9dc404fe0b667dea3bb03825344728de264c4f15323e99e3f1d8125b5c39e2aae94d2c1cad344e3b8a77b5e8c8e0004f09aa12daa82d9", + "@esbuild/sunos-x64@npm:0.25.8": "8b3c79794775dce54d8d2c2c87cf876e8708ba2d7ca0ccda41d96c9bf3193237909f148195a20b7fa876c8e07def6db22510948a795156beeace160e9830ab62", + "@esbuild/win32-arm64@npm:0.25.4": "0422de25c136f407bc223e1a9a65a6f528e64201a1b06b7ddcf3190045914c6d68f550a8190d18e58c4e22231acc4c7982d45bd5ceab6a739e2c539d135376fe", + "@esbuild/win32-arm64@npm:0.25.8": "80f13cf66b45a32892f9b433689897362b69042173bc1e47ff333d8dd9df746be27bee031197653ee4e034a1563f61ae34efc44c61160a104dfda6500f6b4936", + "@esbuild/win32-ia32@npm:0.25.4": "5a8738ba94c72bc07bd17952cb5ba7f7f13593687cfe57792d36fcd9809082ac95ceb54b7739da68044de01f6d5d6826a2587ea2bce48b0de1c70f8de9b5257e", + "@esbuild/win32-ia32@npm:0.25.8": "e4f0595306b2acbf19b62305c7acf97aa18954acf04f194c3cfd7a5782fab145ec6a551eaf657c3f0d2774cf19bc1fcb7ba76fb10cac32a4c2f48825c955690e", + "@esbuild/win32-x64@npm:0.25.4": "0bc72a7dc50b20d2cb7cd38a0d85ab3ff0c6467ba7d817a74da8c671703f97c7c7f7a7375d0069c3f0a76571dc04a1072852e711131cf4d1a62a70e7a38449db", + "@esbuild/win32-x64@npm:0.25.8": "4bf57733c5c4c1409cfceaf19bf5b8ce3c9b9a29705bc8a24fc72652846afd0bd478b14a17db326ae27896574ee346ffb96b2fa043f0716d1a7f30b89f8b3855", + "@img/sharp-darwin-arm64@npm:0.34.2": "891e401a14429d293c1cdd1a9dd47b81f3fafd1b14a57f884307727662af1541dcd802a31488c394113a4ab25ebcbab1246c5ab3c90beba42f7e8afaf56f073e", + "@img/sharp-darwin-x64@npm:0.34.2": "8d5e11f3430fa61966cb600cd23e2217f1666d481bbf754bdd731e60d4a6c34c78ff0169f7ec3463252d6542b0a3bafc0686473650b0e6b8a45fddbc49a8b52a", + "@img/sharp-libvips-darwin-arm64@npm:1.1.0": "f6bcbe44fa9bc0c4c87af8c655c7ecdc704b684da1169841921ff7c61692167ee3ab6a4a3a8131f206f0aa7245987be1c07a483111eadd3a684b1547ca2acf02", + "@img/sharp-libvips-darwin-x64@npm:1.1.0": "af6cd4ca1ccc96dcd5cb20ac45941180117baad387331a699a05e588fa843b85d327651356940d9e3e2c1fe17f0ce183043bebf882086d3cb0785bb4bc8bca05", + "@img/sharp-libvips-linux-arm64@npm:1.1.0": "1d62f454f599580d64ecf72da24a08cb9347f1319e31678594f432e71762053c60c7bca5d70be720285b0754d8ed842efb160bef02abe36f5f57d735db0c012b", + "@img/sharp-libvips-linux-arm@npm:1.1.0": "5028a1ad8e247dc1624baaa084e981f2f152c7ee5f567ee253720b4553d06a969bd6285f1795b374532f99e63b44b4d39494cc3d5dd8f438dab67d4c018f3520", + "@img/sharp-libvips-linux-ppc64@npm:1.1.0": "d7c39d636083be25c71966e992803d652f5260c8fa0ece49348705c739042851c83057ec1f2d1cad8419afd3132311a6a0fcade343e69c9fbe8cbd8a12a54056", + "@img/sharp-libvips-linux-s390x@npm:1.1.0": "612a7a967192a2bb31d757305a0abac4bdd17f4e41fed4fccee673961fd3743d1f435e9869efe324fa726d39286bcb4bfc9d5b7ceaebb2700483a3d6e2be0eb5", + "@img/sharp-libvips-linux-x64@npm:1.1.0": "73cea31f06110740998a44cb27387d59ab5878fdb4080213a46bf312fee1e8a3b69b8d97a78611fe951fc113d7aa732d0a7d8acadf6bc77322e73b6d5228f5f2", + "@img/sharp-libvips-linuxmusl-arm64@npm:1.1.0": "21d8124bccdc98817fc69022826a18a2630fbc1a3b16bfaf1d7f7c3df95d834cd75ef79e54c2edd0be44481d26e0f98ebcadc7b5e30bd73bf9afa66224cc4f8c", + "@img/sharp-libvips-linuxmusl-x64@npm:1.1.0": "6671bcdb165a7958b0478c64a5acd7eb279ebea446b91e938888a1d6e2e7c58699c55bf4a856047847e6cc56a6cdc60c9a13e2a002f081c923331585a0db2c73", + "@img/sharp-linux-arm64@npm:0.34.2": "4e314f4ea4182c6b67d03eaa8600afd78fa298f17e6f71e7d78fc3e2b91d65c3eca0474979cc9ab48eea7573d1150609326955a2b4ed168cbcfb881ca8632bb3", + "@img/sharp-linux-arm@npm:0.34.2": "3ec11f1c8312d4313623f20a09f60e53c07770c64dac50264f9da2e60688d992abb8a55ba4c665c88204db611cecf6e16d6397e57aac92390bddc2d7ee6a9ac2", + "@img/sharp-linux-s390x@npm:0.34.2": "1fc3ae6eeb2af800567d26582ae97465ce5bf3aee4b4125f3b11899c8aec9b6b9e538bfc1176c257788c20e67d6f57cb1e67e9fe6c96c900d2b43127ef6a3f45", + "@img/sharp-linux-x64@npm:0.34.2": "8bad1ee5e9a23520da830090e29e2c8fc62c6dcf9255e490cfb664483423126b6a5417b1beb0e5433f678bd91996ebbc925c6a5f2cf477966ca4a5ebeee3fdf5", + "@img/sharp-linuxmusl-arm64@npm:0.34.2": "f4189234d072002934a77ea9131514fa4922c3d6acdec9768e9ca88cb088d67f1001a07fe19a920abcdbd7888b0a408128ec5561849829f8c99c4814dc04315a", + "@img/sharp-linuxmusl-x64@npm:0.34.2": "884532e80b772891d9452a1e6ad070e4668cd4aceb91935b7352d96f0813f1a6a3fafa3550e63f6f93dbcfdaafe8e8dcee7d6df6e12ebe3b66ca69d947ef0572", + "@img/sharp-wasm32@npm:0.34.2": "ca383f6c9a8d7afc00c446b175cbc8b7827d5e02c602aeb6e889f641e3eac4b3969bbed62be8c5e595f4774b378f39d67b8f3558b1ce4ff361298e8fe3efd5ec", + "@img/sharp-win32-arm64@npm:0.34.2": "b7ce72e2861be11dd9ba8a0f00da57d97d4c93e88abf5f276dee516bde07527931908913cc576acc77c1f3cc61567e557cb927afcc88c5abee5d255f70f124a3", + "@img/sharp-win32-ia32@npm:0.34.2": "edf6719745e473a4cd13745cd3543c885dc076bee38b8f8b7ee42967670e6403d54d060c22288c3118c3872acdbfa27042df6b941e62d61e81294ed309828c77", + "@img/sharp-win32-x64@npm:0.34.2": "bb153458a2b1b4d794e1267b53626d7ec9080fddf38df2321b8e9d71da0eeea4669df7d88365e22c51f445595e5f281d7986dd5678cf8c331ad724f0dc29d06c", + "@parcel/watcher-android-arm64@npm:2.5.1": "e9c94ede3bd5c5d999d117d22ac8032a17f8ebc72db3eff04ccb2b4e6718db19f24bf29a66a610e03f4ee95e2cd7b2d30c15b1845eb897b971fec75dbdd76141", + "@parcel/watcher-darwin-arm64@npm:2.5.1": "0cab55a55c128ac5742388fc8dbfeb9877018509943801ce8a52b57bb6dca24189d025d38684b1e482cb7816368a52c6434dfe45d3997e2fd2509276f48774ea", + "@parcel/watcher-darwin-x64@npm:2.5.1": "bf07b8ca9a435fb885fb0ca6565204d2f2098d7f632faf26a6478bb39f538c73b50afca17c193dc189a80a864d85e40f924ec7f21a0e7ad7d0de6f97f7154134", + "@parcel/watcher-freebsd-x64@npm:2.5.1": "9f62b9da08e98bffb7cf91b557af209586e1d7dd654c56c5a58fc4b0bb61a9bb318116ed0048416d3341d3434b1fb3089bf6cfbfcd08e61333917bc59e691c1d", + "@parcel/watcher-linux-arm-glibc@npm:2.5.1": "07a55a0050e913c9781d009a05b3a0a49c77c2679ae9f98b2374a7e17c5401e2076a776c7bec88de58c71fef040c89aa97176dfa28a03abf8754e18e8d1109b4", + "@parcel/watcher-linux-arm-musl@npm:2.5.1": "f9cab0efa652276fb4bcb58845c9606f7aead1ec81f7c4ce2d237eec754bbd3101682c735b6a371dccf93f16fcfe0ea1beef5d43eb39e4505df7f29b73ea0004", + "@parcel/watcher-linux-arm64-glibc@npm:2.5.1": "ce22f303187aa03fa9d1f9609d2cd56cce6b62f0a60f14a65449adc25b7072d06118d956eb7ebb548210cf2d120cf5e987abe34e6515a5bfbd35b15643f40142", + "@parcel/watcher-linux-arm64-musl@npm:2.5.1": "7a0b32b7b784fe3e594452b6642adc3bb4ad78eae526f5e4c7cf061f428eef2e05e827334806cd230bc873903abb1f70886716a0353e653b3b784f09d2237956", + "@parcel/watcher-linux-x64-glibc@npm:2.5.1": "a6241bb57c409ab56ef944e8d64e057817f41a9335047d1e252aab4e4b10f64d8bc2620ae5c761b71551f3c4b494edd687a08c274a46ca2eb84ad34f6f4de9c0", + "@parcel/watcher-linux-x64-musl@npm:2.5.1": "a68cfcd10a50906ab228d7b906eced68faf6a42a29da5506d24d0dd91b9593a61605b91749d9b1e3ed9f257b845f48ba3df62572e40b4ff1f724d879865b225a", + "@parcel/watcher-win32-arm64@npm:2.5.1": "0f467a731cf9403b8bc7d35418d991596cf5e7898029796b4c769bcbb38cd07ae6ec05ef0f19298e5f11e73ec5198bc474d79b056bdfbaea513525725103d7dd", + "@parcel/watcher-win32-ia32@npm:2.5.1": "9ab5f3e9849a6077c8c2aba7bdf9030dea38f0ab9180792ecd30094520cddf16f3b68006f666845b86c5ef0e05c648364475c9ba151e0269561891ca3e276667", + "@parcel/watcher-win32-x64@npm:2.5.1": "e588d87d5b892484d252ac8e1ec3f4bf7a664d91f0d03dd93764be8db2c35f81879275908dcbec42b0e43bc99c7afdfd29fe687ec022bb2c8c4bc7edd29eaa15", + "@rollup/rollup-android-arm-eabi@npm:4.2.0": "3d7a9f1608daa7f3c092512b7b8ecf3b86788b66f5e60f5190c8e08b2cecd684f884dfda54dfaf94fd3d6e59bab548675ae3b1732fbd62ab5875aeb4c4ce9147", + "@rollup/rollup-android-arm64@npm:4.2.0": "d918632813eea005fc502c39dba795eb318544821e69a0fe4e0b37cb7a8ae71d55b1dcf3a6a342a0d8fedc309c2b3d2ca5868db0af211ae4bc7e15620aac89e2", + "@rollup/rollup-darwin-arm64@npm:4.2.0": "8e8c94c0b852f4fcbf7aaa673d3a5822619654080629137baedad02423b882b11b4b1aa96b22c1a3eb9cff45dc0db0c316378dcaf79104a2ed7273174617cd2e", + "@rollup/rollup-darwin-x64@npm:4.2.0": "dac71cc39b9629814466ce81c346a0ba2b9f05d0944be625acde9c22e23bc4634f80cdb95030641d39e8ebf2e9194d50070d077c4a7b3cd5b5726f1a7f5e78e5", + "@rollup/rollup-linux-arm-gnueabihf@npm:4.2.0": "05be8070bc2f45865e8471206d922150116aae10b0aa24d226d09af3cb571722194df83cb1380576d2583a0f5334edbe05bb0f8f5dbc6c07172982b7c83ad465", + "@rollup/rollup-linux-arm64-gnu@npm:4.2.0": "d16bc317c7adb1b9faebc700dafc6d5d11a1e969dcd149053529635946a9c39b88f910cf62bcbcfcaedce216b2938d23b6983257527d1b1595a7e9a78336e37c", + "@rollup/rollup-linux-arm64-musl@npm:4.2.0": "81f30ba83d9568e8f19c52121702f90423d5cabbfd4267a977a86c67fc38381bcb284f05ccc1d4e27769322b0575ce3263385b32d262cb918930087c35dcdb44", + "@rollup/rollup-linux-x64-gnu@npm:4.2.0": "e3be010ac1fa035591e49657681b265be5c4bd0ee588cbc6d894a4e0d283e1f9914d42817d7bf573b61bd8bd35030eed409cd8337f5e9e2be5d7573bf9d47396", + "@rollup/rollup-linux-x64-musl@npm:4.2.0": "d9b156b8beecb52fce7afb8185cfaabbac4d8ae3fe33acd123606dfe4d209cfc504a9885b49325609fcdcb844bf2427f6a934900b440c93e5b3e31636a1d99f4", + "@rollup/rollup-win32-arm64-msvc@npm:4.2.0": "ff71a301051b237a32e14cb2b18117c72c5ab4524120184500e098fea028385806567fa55e4879c19f80d747774e3b8d913e0b4560abc8fe4881b392fda6ed79", + "@rollup/rollup-win32-ia32-msvc@npm:4.2.0": "dd65d454384b6020b87f5f943121dd9d02e5bfbae2ec124a23f0a2034df02549c0ae4fb27558efda6668bab94b121c5463c4845431f2c1c9416a719176e1dd82", + "@rollup/rollup-win32-x64-msvc@npm:4.2.0": "13cba2a14f7864986f3331c327a137ad95cf366411c0b6d3f66593bb6ea04d0058e12bd0a09fde72bbfb8660a554f0b66d90754e21add3c99d899e2bd7dfe1d1", + "dmg-license@npm:1.0.11": "36c0a7b030801b91216affa9b2bb00caa345b2327f298accb2263a80a0320ca305f90b99da68007d187c830c543410d58a0a2bbc229e8d169b0e1d1652ff42aa", + "iconv-corefoundation@npm:1.1.7": "0189733ef51a9f481379202cb1919f2677efc44aa014ba662a6fd99e47993e350eab0ff724ed18cda8011c9b78c4702b2d374f732955f1def3fd2a14a29d25c0", + "lightningcss-darwin-arm64@npm:1.27.0": "c27ba2fc3014cf2a5133ff6dd822ec80545223fd8878fc61a8b20b523c5b608fb2efab7ee2c2af4503a0c597691a0f162355e3fc017417779f7d7a878161f679", + "lightningcss-darwin-x64@npm:1.27.0": "8bbf7233a9cb347dde7a68d4322dfebafaa9d410f749cd55d2306988a095b915d6e272cc5a0bc5bb97c9680d6b7e31e6c8fa188449e34fce85889e0a245a4bfa", + "lightningcss-freebsd-x64@npm:1.27.0": "eec3c171d92838720707ccd894af1f503f3be7fae679b735f4a54070f8c8b5bc4cea4c119b578994a9c9a70ce138445a807d0af8ad37e54959bb4998753dbd17", + "lightningcss-linux-arm-gnueabihf@npm:1.27.0": "ade725375521f2689f8b372c1d9cae71581eb66f35df6edcf39ed0869f6662c77fe2a91b5392c0a516f00fd60725ce03ad0f9d47574db8d74a841f0906b8090f", + "lightningcss-linux-arm64-gnu@npm:1.27.0": "96eadcb0863534f5951e37916b64364fda21592a32d93252503ac8839f0d00eeea7d7bdd8bd4b686b8108550c23e32a8a1bb3738e63c1a7b01406c349da0676c", + "lightningcss-linux-arm64-musl@npm:1.27.0": "f0426dffc5c1943781673177f3340e85a7de2a193244cb877d33e7ec262c019bb7b862b33ffeb14b10494306f7c48885ee93068e88b9260fff2668e98a97a4ab", + "lightningcss-linux-x64-gnu@npm:1.27.0": "bb1b5713ddc9d8d711b527bcce47ce3e7fd91f2058c317ad5df09cded4142a85362ee71c353dd3b332497fc32a431a22f7762ce01464ff008b2a7cf2607d3dd3", + "lightningcss-linux-x64-musl@npm:1.27.0": "ec9b11bb0d70b929335f735486f8dd8fa6fc22eb95b71545b735b480b9e2b5287a24976735c2c5f4c9c50af07fb5cfdc02b65eceb6ec10256e7c9c637dedee9a", + "lightningcss-win32-arm64-msvc@npm:1.27.0": "1814c0d0464c21e808a2909ebbee7e12c42fd81ecd480e7c4e31769c555f238c720087af4383fff14862764f52bf4250cd566c6c45c3d6633bee126ef3355bc3", + "lightningcss-win32-x64-msvc@npm:1.27.0": "be733309737e4c4ed3dff33ec9e80bbc2d269d07bfa3742dd30d9055adfdc2e22be4d484475a7ea7cb7940c17f001cdf64856e157ef9b7c1d2c9342041e9eae4", + "systeminformation@npm:5.21.15": "349877eb556ef2de51d4986f30ff3a2fad89eba356cf4d14ccad290599b2e565959952c95e64488932214572dd206c54792ceb8e24bd967409a8fee40b9882f3" +} diff --git a/pkgs/by-name/jo/joplin-desktop/package.nix b/pkgs/by-name/jo/joplin-desktop/package.nix index b7e4c427531b9..0c4946e08fc4c 100644 --- a/pkgs/by-name/jo/joplin-desktop/package.nix +++ b/pkgs/by-name/jo/joplin-desktop/package.nix @@ -1,26 +1,226 @@ { lib, stdenv, - appimageTools, - fetchurl, + nodejs, + makeDesktopItem, + copyDesktopItems, makeWrapper, - _7zz, + fetchFromGitHub, + yarn-berry_4, + python3, + pkg-config, + pango, + cairo, + pixman, + libsecret, + electron, + xcbuild, + buildPackages, + callPackage, + runCommand, + libGL, }: let + yarn-berry = yarn-berry_4; + + releaseData = lib.importJSON ./release-data.json; + + buildPlugin = import ./buildPlugin.nix; + + getPluginPatch = + src: id: + runCommand "${id}.diff" { } '' + patch="${src}/packages/default-plugins/plugin-patches/${id}.diff" + + if [ -f "$patch" ]; then + cp "$patch" "$out" + else + # create an empty patch file if it doesn't exist – can't check this from Nix code without IFD + touch "$out" + fi + ''; + + getDefaultPlugins = map (callPackage buildPlugin); +in + +stdenv.mkDerivation (finalAttrs: { pname = "joplin-desktop"; inherit (releaseData) version; - inherit (stdenv.hostPlatform) system; - throwSystem = throw "Unsupported system: ${system}"; + passthru.updateScript = ./update.py; - releaseData = lib.importJSON ./release-data.json; - src = fetchurl releaseData.${system} or throwSystem; + src = fetchFromGitHub { + owner = "laurent22"; + repo = "joplin"; + tag = "v${finalAttrs.version}"; + postFetch = '' + # there's a file with a weird name that causes a hash mismatch on darwin + rm $out/packages/app-cli/tests/support/photo* + ''; + inherit (releaseData) hash; + }; + + missingHashes = ./missing-hashes.json; + + offlineCache = yarn-berry.fetchYarnBerryDeps { + inherit (finalAttrs) src missingHashes postPatch; + hash = releaseData.deps_hash; + }; - appimageContents = appimageTools.extractType2 { - inherit pname version src; + # allows overriding to disable building the plugins + defaultPlugins = getDefaultPlugins ( + lib.mapAttrsToList ( + id: plugin: + plugin + // { + patches = [ (getPluginPatch finalAttrs.src id) ]; + } + ) releaseData.plugins + ); + + buildInputs = [ + libGL + ]; + + nativeBuildInputs = [ + nodejs + yarn-berry.yarn-berry-offline + yarn-berry.yarnBerryConfigHook + (python3.withPackages (ps: with ps; [ distutils ])) + pkg-config + pango + cairo + pixman + libsecret + makeWrapper + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + xcbuild + buildPackages.cctools + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + copyDesktopItems + ]; + + env = { + ELECTRON_SKIP_BINARY_DOWNLOAD = 1; + + # Disable scripts for now, so that yarnBerryConfigHook does not try to build anything + # before we can patchShebangs additional paths (see buildPhase). + # https://github.com/NixOS/nixpkgs/blob/3cd051861c41df675cee20153bfd7befee120a98/pkgs/by-name/ya/yarn-berry/fetcher/yarn-berry-config-hook.sh#L83 + YARN_ENABLE_SCRIPTS = 0; }; + postPatch = '' + # Don't automatically build everything + sed -i '/postinstall/d' package.json + # Don't install onenote-converter subpackage deps + sed -i '/onenote-converter/d' packages/{lib,app-desktop}/package.json + # Don't build the default plugins, would require networking. We build them separately. + sed -i "/'buildDefaultPlugins',/d" packages/app-desktop/gulpfile.ts + ''; + + buildPhase = '' + runHook preBuild + + unset YARN_ENABLE_SCRIPTS + + for node_modules in packages/*/node_modules; do + patchShebangs $node_modules + done + + yarn config set enableInlineBuilds true + + echo "installing yarn dependencies..." + yarn workspaces focus \ + root \ + @joplin/app-desktop + + echo "building workspaces..." + yarn workspaces foreach -vi \ + --topological-dev \ + --recursive \ + --from @joplin/app-desktop \ + run build + yarn workspaces foreach -vi \ + --parallel \ + --recursive \ + --from @joplin/app-desktop \ + run tsc + + # electronDist needs to be modifiable on Darwin + cp -r ${electron.dist} electronDist + chmod -R u+w electronDist + electronDist="$PWD/electronDist" + + echo "bundling desktop application..." + cd packages/app-desktop + + # copy over defaultPlugins + ${lib.concatMapStringsSep "\n" ( + plugin: "install -Dt ./build/defaultPlugins ${plugin}/*.jpl" + ) finalAttrs.defaultPlugins} + + # file is expected to be present for Linux build + mkdir dist && touch dist/AppImage + + yarn gulp before-dist + + yarn run electronRebuild + + yarn run electron-builder \ + --dir \ + -c.electronDist="$electronDist" \ + -c.electronVersion=${electron.version} \ + -c.mac.identity=null + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + ${lib.optionalString stdenv.hostPlatform.isLinux '' + outdir="$out/share/joplin-desktop" + mkdir -p "$outdir" + + cp -r dist/*unpacked/* "$outdir" + + for file in "$src/Assets/LinuxIcons"/*.png; do + resolution=$(basename "$file" .png) + install -Dm644 "$file" "$out/share/icons/hicolor/$resolution/apps/joplin.png" + done + + makeWrapper "$outdir"/joplin $out/bin/joplin-desktop \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \ + --add-flags "--no-sandbox" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-wayland-ime --ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" \ + --inherit-argv0 + ''} + + ${lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir -p $out/Applications + cp -r dist/mac*/Joplin.app $out/Applications + makeWrapper $out/Applications/Joplin.app/Contents/MacOS/Joplin $out/bin/joplin-desktop + ''} + + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "joplin"; + desktopName = "Joplin"; + exec = "joplin-desktop %U"; + icon = "joplin"; + comment = "Joplin for Desktop"; + categories = [ "Office" ]; + startupWMClass = "@joplin/app-desktop"; + mimeTypes = [ "x-scheme-handler/joplin" ]; + }) + ]; + meta = with lib; { description = "Open source note taking and to-do application with synchronisation capabilities"; mainProgram = "joplin-desktop"; @@ -34,73 +234,8 @@ let homepage = "https://joplinapp.org"; license = licenses.agpl3Plus; maintainers = with maintainers; [ - hugoreeves - qjoly - yajo - ]; - platforms = [ - "x86_64-linux" - "x86_64-darwin" - "aarch64-darwin" + fugi ]; + inherit (electron.meta) platforms; }; - - linux = appimageTools.wrapType2 { - inherit - pname - version - src - meta - ; - nativeBuildInputs = [ makeWrapper ]; - - profile = '' - export LC_ALL=C.UTF-8 - ''; - - extraInstallCommands = '' - wrapProgram $out/bin/joplin-desktop \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-wayland-ime --ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" - install -Dm644 ${appimageContents}/joplin.desktop $out/share/applications/joplin.desktop - install -Dm644 ${appimageContents}/joplin.png $out/share/pixmaps/joplin.png - substituteInPlace $out/share/applications/joplin.desktop \ - --replace-fail StartupWMClass=Joplin StartupWMClass=@joplin/app-desktop \ - --replace-fail 'Exec=AppRun' 'Exec=joplin-desktop' - ''; - - passthru.updateScript = ./update.py; - }; - - darwin = stdenv.mkDerivation { - inherit - pname - version - src - meta - ; - - nativeBuildInputs = [ _7zz ]; - - unpackPhase = '' - runHook preUnpack - 7zz x -x'!Joplin ${version}/Applications' -xr'!*:com.apple.cs.Code*' $src - runHook postUnpack - ''; - - sourceRoot = if stdenv.hostPlatform.isx86_64 then "Joplin ${version}" else "."; - - postPatch = '' - chmod a+x Joplin.app/Contents/Resources/build/7zip/7za - ''; - - installPhase = '' - runHook preInstall - mkdir -p $out/Applications - cp -R Joplin.app $out/Applications - runHook postInstall - ''; - - passthru.updateScript = ./update.py; - }; -in -if stdenv.hostPlatform.isDarwin then darwin else linux +}) diff --git a/pkgs/by-name/jo/joplin-desktop/release-data.json b/pkgs/by-name/jo/joplin-desktop/release-data.json index 3292573778975..abfc3163767d9 100644 --- a/pkgs/by-name/jo/joplin-desktop/release-data.json +++ b/pkgs/by-name/jo/joplin-desktop/release-data.json @@ -1,15 +1,19 @@ { "version": "3.4.6", - "x86_64-linux": { - "url": "https://github.com/laurent22/joplin/releases/download/v3.4.6/Joplin-3.4.6.AppImage", - "sha256": "0xf5lmjv49rq5bnczpydflzzhha8rzcn3iy7zpi5wqzmzsp0jg2p" + "hash": "sha256-++9FYxeRVPPesw8ZYH6a2UdYTkaU7sJa8lURqBsYy94=", + "plugins": { + "io.github.jackgruber.backup": { + "name": "joplin-plugin-backup", + "url": "https://github.com/JackGruber/joplin-plugin-backup/archive/abb58175e2d2bf34899f1b32cb74137e5c788bf9.tar.gz", + "hash": "sha256-3J7TP3UClLDH402UqppQMsc1WmFjYIpIQ4uwGlTsyBs=", + "npmDepsHash": "sha256-Grn4KQck6o+k8fj6qPxmx7S+4PTWvY5N4pE7Bj+47ps=" + }, + "io.github.personalizedrefrigerator.js-draw": { + "name": "joplin-plugin-freehand-drawing", + "url": "https://github.com/personalizedrefrigerator/joplin-plugin-freehand-drawing/archive/63b6d3f185b5b3664632e498df7c7ad7824038d0.tar.gz", + "hash": "sha256-4sl+ktdMQ8PSELAeWMv9Ezgwrx5YDcC/7ou2ZSF2OyQ=", + "npmDepsHash": "sha256-qwhVFSDafTnKihcwZtLK5fS/Nc15e+ezAso47T1LGec=" + } }, - "x86_64-darwin": { - "url": "https://github.com/laurent22/joplin/releases/download/v3.4.6/Joplin-3.4.6.dmg", - "sha256": "1yahng1rciyrviykksqhk2wfkmrff77frsb7fkaxbhll1p8p74hm" - }, - "aarch64-darwin": { - "url": "https://github.com/laurent22/joplin/releases/download/v3.4.6/Joplin-3.4.6-arm64.dmg", - "sha256": "1k5ipsbss3qkyi5b3bw9agk4jmbsakvskrff71v8hg5wk6vi3m7c" - } + "deps_hash": "sha256-j/Ge+OdWQw+Ja9S9D8tjERiO2uifeSa4Za/IyzrIRSw=" } diff --git a/pkgs/by-name/jo/joplin-desktop/update.py b/pkgs/by-name/jo/joplin-desktop/update.py index f96e26a591024..e1ee691c6a50f 100755 --- a/pkgs/by-name/jo/joplin-desktop/update.py +++ b/pkgs/by-name/jo/joplin-desktop/update.py @@ -1,18 +1,33 @@ #!/usr/bin/env nix-shell -#!nix-shell -i python3 -p 'python3.withPackages(ps: [ps.requests ps.plumbum])' nix-prefetch +#!nix-shell -i python3 -p 'python3.withPackages(ps: [ps.requests ps.plumbum])' nix-prefetch nix-prefetch-git yarn-berry_4 yarn-berry_4.yarn-berry-fetcher prefetch-npm-deps import json import requests +import tempfile +import shutil from pathlib import Path -from plumbum.cmd import nix_prefetch_url +from plumbum.cmd import nix_prefetch, nix_build, yarn, chmod, yarn_berry_fetcher, prefetch_npm_deps, diff HERE = Path(__file__).parent -SUFFIXES = ( - ("x86_64-linux", ".AppImage"), - ("x86_64-darwin", ".dmg"), - ("aarch64-darwin", "-arm64.dmg"), -) + +def write_release(release): + with HERE.joinpath("release-data.json").open("w") as fd: + json.dump(release, fd, indent=2) + fd.write("\n") + +def dict_to_argstr(d): + args = "{ " + for key, value in d.items(): + args += f'"{key}" = "{value}"; ' + args += "}" + return args + + +package = HERE.joinpath("package.nix") + + +print("fetching latest release...") latest = requests.get( "https://api.github.com/repos/laurent22/joplin/releases/latest" @@ -23,10 +38,97 @@ "version": version, } -for arch, suffix in SUFFIXES: - url = f"https://github.com/laurent22/joplin/releases/download/v{version}/Joplin-{version}{suffix}" - release[arch] = {"url": url, "sha256": nix_prefetch_url(url).strip()} +print(version) + + +print("prefetching source...") + +release["hash"] = nix_prefetch[ + "--option", + "extra-experimental-features", + "flakes", + "--tag", + f"v{version}", + "--rev", + "--expr", + "null", + package +]().strip() + +print(release["hash"]) + +# use new version and hash +write_release(release) + +src_dir = nix_build[ + "--no-out-link", + "-E", + f"((import {{}}).callPackage {package} {{}}).src" +]().strip() + +print(src_dir) + + +print("prefetching default plugins...") + +default_plugins_dir = Path(src_dir).joinpath("packages/default-plugins") + +with default_plugins_dir.joinpath("pluginRepositories.json").open() as fd: + plugin_repositories = json.load(fd) + +release["plugins"] = dict() + +for key, value in plugin_repositories.items(): + print(key) + + plugin = { + "name": "", + "url": "", + "hash": "", + "npmDepsHash": "", + } + + plugin["name"] = value["cloneUrl"].split("/")[-1].removesuffix(".git") + + plugin["url"] = f"{value["cloneUrl"].removesuffix('.git')}/archive/{value["commit"]}.tar.gz" + + plugin["hash"] = nix_prefetch.with_cwd(HERE)[ + "--option", + "extra-experimental-features", + "flakes", + f"((import {{}}).callPackage ./buildPlugin.nix {dict_to_argstr(plugin)}).src" + ]().strip() + + plugin_src = nix_build.with_cwd(HERE)[ + "--no-out-link", + "-E", + f"((import {{}}).callPackage ./buildPlugin.nix {dict_to_argstr(plugin)}).src" + ]().strip() + plugin["npmDepsHash"] = prefetch_npm_deps(Path(plugin_src).joinpath("package-lock.json")).strip() + + release["plugins"][key] = plugin + + +print("fetching missing-hashes...") + +yarn_lock = Path(src_dir).joinpath("yarn.lock") +missing_hashes = HERE.joinpath("missing-hashes.json") + +with missing_hashes.open("w") as fd: + new_missing_hashes = yarn_berry_fetcher[ + "missing-hashes", + yarn_lock + ]() + fd.write(new_missing_hashes) + + +print("prefetching offline cache...") + +release["deps_hash"] = yarn_berry_fetcher[ + "prefetch", + yarn_lock, + missing_hashes +]().strip() + -with HERE.joinpath("release-data.json").open("w") as fd: - json.dump(release, fd, indent=2) - fd.write("\n") +write_release(release)