mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 17:11:56 +00:00
Compare commits
948 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a693583229 | |||
| 1ad52d270d | |||
| 6989262a0d | |||
| 39a69c75f0 | |||
| 0004b1a25f | |||
| 2c1105f4ed | |||
| eca485ac93 | |||
| 94afb8d04c | |||
| d60a69bc3d | |||
| 02f62cba6d | |||
| 61304e4b11 | |||
| df9fe56e53 | |||
| b5237103ad | |||
| 052a142eb4 | |||
| da1d229978 | |||
| 6144639533 | |||
| 4801a22807 | |||
| 80387fe09f | |||
| 104a85a1f3 | |||
| 62d46d6843 | |||
| 264eb1ce46 | |||
| 9272f1f39e | |||
| 8ba6421e02 | |||
| 29fb705c47 | |||
| d8a9cbc3bd | |||
| e46cb00cb0 | |||
| b524d2e88b | |||
| 43e67a9eb0 | |||
| 4a796aa160 | |||
| 23740d8478 | |||
| a3b1d27b8d | |||
| fba2a8efc1 | |||
| 13ec43be49 | |||
| 3244cc8d17 | |||
| e05df732c4 | |||
| e7176ee5cf | |||
| dcb7640cb7 | |||
| bc3a6be935 | |||
| 18564a0039 | |||
| 768a2242af | |||
| 57995c21c2 | |||
| 027031e461 | |||
| 962ec1fbf2 | |||
| 1f36bce3d8 | |||
| 4b16b5fb29 | |||
| 44331c5d7d | |||
| 751bcc538c | |||
| db0043394c | |||
| 7b53f7dfa0 | |||
| c98ec390bc | |||
| 5e49cb2af6 | |||
| ba37028ff6 | |||
| 697ab4200e | |||
| 46aa7dab6d | |||
| 1f9d8b4284 | |||
| 8c09fd474c | |||
| 3434110d69 | |||
| 804b0e8831 | |||
| 08372d8fdf | |||
| 15327103fc | |||
| 4ae0349015 | |||
| 47bf419e19 | |||
| e3708839da | |||
| 56193c3651 | |||
| 504039aaaa | |||
| 9619b6aa36 | |||
| 300cb00180 | |||
| b68594c53e | |||
| 6daf452910 | |||
| a0a0b73900 | |||
| b570b280a2 | |||
| 1aaa5a5ea1 | |||
| 4728e84b51 | |||
| ec0c72e8b0 | |||
| 0ece878b61 | |||
| 32aef70c15 | |||
| 6da2ba636d | |||
| 0999941d68 | |||
| e85e4b81d8 | |||
| f0ce4c2aca | |||
| 36840c41a9 | |||
| d2b9803c4e | |||
| 8d057dc352 | |||
| ffe17ec04b | |||
| 9869943744 | |||
| 9d4651a897 | |||
| d297a34757 | |||
| e1a4779cb0 | |||
| bbfdb9151a | |||
| ea868257a6 | |||
| c6c8214baa | |||
| f8e910e91d | |||
| 1f223402bd | |||
| 8a5255d269 | |||
| 24a20947b9 | |||
| 9ac6398151 | |||
| f75d51ebdd | |||
| 1c7247904d | |||
| 7074e100a9 | |||
| 4b0b1d4126 | |||
| cd392d9b20 | |||
| 571144d5d1 | |||
| 596d7013c9 | |||
| f8d1b5df15 | |||
| 6e44e1ed41 | |||
| bcd349670f | |||
| 2ed94c0e89 | |||
| d323d82008 | |||
| b88eeb0b20 | |||
| eae3c13bfd | |||
| 08f5c9aae2 | |||
| a896f0b6dc | |||
| ec3a13ff50 | |||
| eaf2618e5b | |||
| 31c2bb861e | |||
| 1016266822 | |||
| dab4995362 | |||
| 529ae43276 | |||
| 44c92e1c0b | |||
| 61b06f41d3 | |||
| 5f4b851fbb | |||
| bdb02003c2 | |||
| a002db46e8 | |||
| 17195b8d5f | |||
| 968e84f1a0 | |||
| c3f5a22ed9 | |||
| 16efc2a0be | |||
| 7c3e428ba4 | |||
| 960cf09e25 | |||
| 7bb056ce55 | |||
| 769daef3bd | |||
| 20adde3634 | |||
| c75227f82a | |||
| 928748c5ab | |||
| 5b70c6297e | |||
| a77e039f4f | |||
| c6f2e1a0af | |||
| 3b26884c86 | |||
| b9ca958928 | |||
| 06bed7992d | |||
| 995a4a65c0 | |||
| 513b34d7f1 | |||
| 3d9e05d375 | |||
| bec252566b | |||
| 6087226355 | |||
| e17fa264b5 | |||
| 8d800725ff | |||
| f6d751a4d0 | |||
| fca192e444 | |||
| c225fdbed2 | |||
| 4f4a419bee | |||
| f312c03e10 | |||
| b3742db279 | |||
| 771ebeedb2 | |||
| e75e340a7a | |||
| 063bb361bb | |||
| a12c7fd836 | |||
| afff12c0e6 | |||
| 9527aa084c | |||
| 7e6035f7e4 | |||
| ad0a220a07 | |||
| eb57d4d5bc | |||
| ae87d090d8 | |||
| cf54dafa51 | |||
| 52d637ffd3 | |||
| 6115458f6e | |||
| b0d0805e94 | |||
| 20d7e7d8cd | |||
| a02b3da853 | |||
| e9d6d650e4 | |||
| 9cb8018be5 | |||
| e58e321ef8 | |||
| c3ed680ffc | |||
| 00024724a2 | |||
| e3bb9e1c7f | |||
| a2742c0d61 | |||
| f202cd5b76 | |||
| eb19ff36f4 | |||
| 8beb1a4bc6 | |||
| 7e71305a86 | |||
| 3e2c522702 | |||
| 78a4a186ec | |||
| 0db9e18a7c | |||
| 0de9e8b5d5 | |||
| 1c52a437c0 | |||
| 4a5aa2955b | |||
| f0ef3511ab | |||
| 998a7ddb77 | |||
| 3c1ff30efa | |||
| e6809585e1 | |||
| 87446d15c2 | |||
| 94e8fc3850 | |||
| db3f5fc28c | |||
| fffeeaa3a9 | |||
| 6dd329d8c6 | |||
| a7c4632c18 | |||
| 6e996902ac | |||
| 06a98ec07c | |||
| c1532dadb1 | |||
| 07452324bd | |||
| 7a43fc685a | |||
| 2089299407 | |||
| c729e3d73a | |||
| a7c9360fd0 | |||
| 00715a84b0 | |||
| 3558e04e03 | |||
| 7a97fd7f9a | |||
| 582e028ae2 | |||
| 71df3beeee | |||
| b04433198d | |||
| 284cc46641 | |||
| 5599465176 | |||
| c696c0cb3a | |||
| 5748450808 | |||
| e56fa467b9 | |||
| 534e6e84da | |||
| 72a1de9bca | |||
| e663c24d68 | |||
| 54e9d00e23 | |||
| 6c61c083a7 | |||
| 22a29de460 | |||
| 74035fbf12 | |||
| 95bfdb021e | |||
| b9910d787f | |||
| 830bd93053 | |||
| 6ec059ae3d | |||
| f4d88b09c0 | |||
| 17224c6dd2 | |||
| 944f75d45a | |||
| 8dc36716cb | |||
| ead04aa6e9 | |||
| 945fb32728 | |||
| a1d79810e5 | |||
| 1e5f2fae39 | |||
| 6cc9d0187c | |||
| 3b4216b75f | |||
| 1d599e35e1 | |||
| 628a5bed03 | |||
| a5a380741b | |||
| 91de0a0610 | |||
| e5c1b4bf34 | |||
| 4caa909b02 | |||
| 39b70a2645 | |||
| ed1949c3e2 | |||
| b52d8467d7 | |||
| b923c98c53 | |||
| 275db89f87 | |||
| 3e6154b0de | |||
| aca0892093 | |||
| 1e1f7391c1 | |||
| 29fbc85fd1 | |||
| 00f36d1451 | |||
| c559a6672b | |||
| bdab30af44 | |||
| 18c5717a94 | |||
| dc8efaf237 | |||
| f45d2b6657 | |||
| 4176c4b379 | |||
| 6463841711 | |||
| d12d9dcf49 | |||
| b3d3da0a5b | |||
| 3bde071d08 | |||
| 0d8bc6774f | |||
| cc26eb9598 | |||
| 312a61a937 | |||
| 60addf00a2 | |||
| aa70c7cb1d | |||
| 87c629cd90 | |||
| 339ada6db3 | |||
| 8f7165ee88 | |||
| 9e99f6bea6 | |||
| bcffe3cf71 | |||
| cd233cced6 | |||
| 11af3b10a5 | |||
| f8a7ba7969 | |||
| bd4466ee25 | |||
| ba017311bc | |||
| c7ee7ba0c0 | |||
| eaf02b0cda | |||
| 67a7f6547e | |||
| 8481fe55e3 | |||
| 30d6651bdf | |||
| a60c96fc96 | |||
| 38f69be23a | |||
| a1ae094002 | |||
| 3a0ec4e76d | |||
| 2bdc0e0e81 | |||
| 4f6fce3ad4 | |||
| c079c16ca9 | |||
| 6ddd9be8d2 | |||
| 04e3bba557 | |||
| fd9bd6edaa | |||
| bf6a9acf39 | |||
| d5576a7906 | |||
| a2a7b660ff | |||
| eb1355482e | |||
| bf386aa291 | |||
| 24b5bd6bd1 | |||
| 16ec5fedbe | |||
| 417c96ab9e | |||
| bacc860401 | |||
| 98b7c61675 | |||
| c7f95c2453 | |||
| 50a0e916cb | |||
| 34450fd3f6 | |||
| a39bede557 | |||
| 7e50dbcb87 | |||
| da46145243 | |||
| c6bc413da9 | |||
| a8b0446806 | |||
| cca9862ffa | |||
| abf03dbcd3 | |||
| 6ed29fd0f2 | |||
| 000a8a1584 | |||
| caba0aa6d3 | |||
| 4598247ef4 | |||
| 387f071357 | |||
| 092857869c | |||
| dcb0b8cd98 | |||
| 4fa3af06f8 | |||
| 97e6254704 | |||
| 5adc1c1664 | |||
| d8f96cfeda | |||
| a3f592fc32 | |||
| 82600f3afb | |||
| d41dd347cd | |||
| 4a88aee452 | |||
| aca636d272 | |||
| 0278f0b280 | |||
| f399777901 | |||
| 0e5b695a25 | |||
| d22281de6f | |||
| f93f3a9800 | |||
| 16e27b07ba | |||
| 7b2cea999b | |||
| 35af07b030 | |||
| 6fc4b0b2b0 | |||
| 8259066214 | |||
| 6ec7bc2350 | |||
| b1a7a1bde6 | |||
| 972d42341a | |||
| 0c720ea0d5 | |||
| ce877b98fc | |||
| b7fbf0964e | |||
| 508562495f | |||
| 3929c14757 | |||
| 4dac609144 | |||
| e1d0610fed | |||
| 4b0b04d0f5 | |||
| 920cb5f901 | |||
| 555da2d059 | |||
| b09c304693 | |||
| 839e5d09a6 | |||
| ebc4dea995 | |||
| 0ec9796e9a | |||
| 50ed121994 | |||
| b27539d2bc | |||
| d5f1ff0204 | |||
| c10f0c049c | |||
| f40c0fa791 | |||
| c9a0f3caf7 | |||
| 1a9f031bb0 | |||
| a359eb552b | |||
| 994f4f6e62 | |||
| f5a56ab895 | |||
| b6cb3e909f | |||
| c840f16e4f | |||
| 5c685abf72 | |||
| f55ac1a882 | |||
| 56587cae82 | |||
| bd524f0730 | |||
| 466df3629b | |||
| 56b9c378ee | |||
| dc9bcb1f64 | |||
| 726a12fcb3 | |||
| d2087858e7 | |||
| 3688c68b0a | |||
| 92f8a1dc5e | |||
| 38f38fc57c | |||
| a0f9fda742 | |||
| a7ad62569b | |||
| cc4aead9b2 | |||
| 57fcb0aac7 | |||
| 2bf1c7e9fa | |||
| 7b04898ff2 | |||
| c8601b9c2c | |||
| 930d392b7b | |||
| 9b2c94baa4 | |||
| c40e23265e | |||
| 34a045d045 | |||
| d66fe1cede | |||
| aaaf246273 | |||
| 34fe5f4c4c | |||
| e10c4f6e85 | |||
| e324ac7553 | |||
| 316039ab62 | |||
| 9a8a18db88 | |||
| f18bf66c82 | |||
| a9e8338098 | |||
| 0d1a1dfcd2 | |||
| e5f369ac9d | |||
| 6e71c4c3b4 | |||
| 09202adefd | |||
| 044e2dd7f9 | |||
| ad1694fb28 | |||
| ad93c44782 | |||
| ea6acff1c5 | |||
| 035d0b7455 | |||
| 87214dd726 | |||
| fa8ba5995f | |||
| 5c4d25370b | |||
| 32ee800b7e | |||
| 552fec649d | |||
| 8f9187fc70 | |||
| ccc67b3ebf | |||
| 4644beeeb1 | |||
| f8c66da5ed | |||
| 9752ce5d9d | |||
| 09f8874561 | |||
| e098712f82 | |||
| ce3140dd79 | |||
| 2d8a9a9dd0 | |||
| 6f07b1e993 | |||
| 88a6e121dc | |||
| 219b0fa672 | |||
| 863f9cb24a | |||
| 8eef18f85a | |||
| 014febfb8e | |||
| b11142be50 | |||
| 4c4b45956e | |||
| efd62f26e8 | |||
| 34d6a0d4d2 | |||
| d4f8bf53ec | |||
| 474059a90d | |||
| fc172b01b0 | |||
| 955846281e | |||
| 6c6d85afb1 | |||
| 43a6abf5fb | |||
| 9bd8f7a40c | |||
| 56f7ed4ab9 | |||
| e7e669298b | |||
| 25ee641478 | |||
| ca80757214 | |||
| f2e27d125a | |||
| eedc749a95 | |||
| 32363b1fec | |||
| 1b222c5ade | |||
| cc917bf941 | |||
| 8fcc2175fd | |||
| 620de7c65d | |||
| 02f786cab9 | |||
| 7efb906258 | |||
| 59d5d43fb4 | |||
| 49bf01ef28 | |||
| 6d7315bf33 | |||
| 86fd608c4c | |||
| fd7ffb228e | |||
| 32fe287512 | |||
| 5166024658 | |||
| dc5330ed31 | |||
| d92136051f | |||
| 578d6244bd | |||
| 43efad6b37 | |||
| bd7d413389 | |||
| 9f2194695a | |||
| f4e059f8c2 | |||
| 04022bdc8a | |||
| 4a7d241412 | |||
| aa1ebd8c5b | |||
| bb89094f21 | |||
| 0bea68f0e3 | |||
| 214d7455b9 | |||
| f44341ce5b | |||
| b17f85e7db | |||
| f9e404a8d1 | |||
| 0abc829e3e | |||
| bbf2c5d423 | |||
| b890230192 | |||
| 03e2bdefb7 | |||
| d9b679aca5 | |||
| 2d4fe8a461 | |||
| 2242e6ef92 | |||
| 7eba9a162d | |||
| 18d7543306 | |||
| 54b16c7752 | |||
| 87a1d564d4 | |||
| f94d510752 | |||
| ae0a382eb7 | |||
| 6d801bdac0 | |||
| 39db7eae6c | |||
| 4321f232b6 | |||
| e0c9725ded | |||
| 7cf078808c | |||
| 1d2c73a471 | |||
| 0e757e5391 | |||
| 9fc0aef585 | |||
| d2229fdc9e | |||
| b501e87b47 | |||
| ca68e9238d | |||
| 74274eb929 | |||
| 9dfd7f137e | |||
| 3d5954f19d | |||
| 1f44be8f51 | |||
| 3dd43608c0 | |||
| a8bab27087 | |||
| 22165c0adf | |||
| c698871e62 | |||
| ca57b018d9 | |||
| 4372ba1716 | |||
| 56fb185910 | |||
| 84781aecaa | |||
| 48f5f8f613 | |||
| cbac8b61fc | |||
| f1e46e95a6 | |||
| 443c97f53a | |||
| 1667a8f472 | |||
| f1d61dd4c4 | |||
| bdb73cac18 | |||
| fe942ff32f | |||
| ce8510d2fd | |||
| 035092d5d2 | |||
| 41dbafa937 | |||
| 9ac9b8432b | |||
| d85115a3a8 | |||
| 270755baa9 | |||
| dc33ac2d85 | |||
| 7af1a904f3 | |||
| 3f822e166b | |||
| 3fe7dd9f8a | |||
| 931e4e57ba | |||
| fafa9ffc5c | |||
| 31c07dd101 | |||
| a1bd9debde | |||
| 9422a39a26 | |||
| 61422a7163 | |||
| 69a628dd45 | |||
| 79626af972 | |||
| 0814d641dc | |||
| cbc958f17b | |||
| 52b5fa3796 | |||
| 720f75293c | |||
| 6d01d415b7 | |||
| adae8ee1f2 | |||
| c7bff4530e | |||
| 0fadbd2b5d | |||
| 6940417d24 | |||
| e2226f7b48 | |||
| 9e6b8df98e | |||
| 424e9e8b71 | |||
| be8c286f4b | |||
| a440a6b8a0 | |||
| 5baf57d689 | |||
| cddaa0c0ec | |||
| f89b865f6d | |||
| 5837b9afa3 | |||
| 78800223eb | |||
| b4c5cc2ad1 | |||
| 9c8a59d2e8 | |||
| ccdb5a6a0a | |||
| bd8293b9da | |||
| 64988cf720 | |||
| ffa3542038 | |||
| 570dbc0c1e | |||
| 6fefa51f4c | |||
| d76922a195 | |||
| 9d281429fd | |||
| a0f6d6157c | |||
| 2cf0005d34 | |||
| 25ccf85ab1 | |||
| c5bfe8393b | |||
| 0f6e7faa79 | |||
| b55b5d70f6 | |||
| 09307d4035 | |||
| 744a908764 | |||
| 30be063c78 | |||
| fc37db11bf | |||
| 0173b41c31 | |||
| bfb2e24eca | |||
| 7fe4c03885 | |||
| bf9b8a52c5 | |||
| 609c7cd370 | |||
| c11d53ae72 | |||
| 615fc2518c | |||
| 5fabcd78a2 | |||
| 6c07d7aba6 | |||
| df2414dc93 | |||
| 921a31b437 | |||
| 106de09521 | |||
| f5cdebb3d0 | |||
| eff213324a | |||
| 81655e8c1c | |||
| 060de98058 | |||
| 39d4121fca | |||
| eb9aa8fce1 | |||
| eeb1b095ce | |||
| 438312a6f4 | |||
| 544bebb203 | |||
| 7eea312424 | |||
| 7c8b826b61 | |||
| 4ddab6f662 | |||
| e36659cf1a | |||
| 2913badea4 | |||
| 014fecee89 | |||
| d728231a7b | |||
| a3538ff5b9 | |||
| 877be2a600 | |||
| 1d06826d66 | |||
| 7a73df9531 | |||
| dbcbbbf140 | |||
| f0bf5ff9de | |||
| a69b58fd64 | |||
| f06074c5a1 | |||
| 10e411df9b | |||
| c4cfbf61a9 | |||
| d38adfecaf | |||
| 9fa9043f60 | |||
| a92eb4dd6d | |||
| 4324e0478c | |||
| bfd852a3fd | |||
| 3fd355f88e | |||
| f3c423c2b6 | |||
| f65ea5744c | |||
| b6d5e66d3d | |||
| 55d2049233 | |||
| 0776c8dcc8 | |||
| 8a509f89b2 | |||
| a162c1d2b8 | |||
| 1ec3f677fd | |||
| 4060600471 | |||
| ad17ab8d0f | |||
| d26c57dadb | |||
| 1311c0baa4 | |||
| c7db296f15 | |||
| b61a4b6a4c | |||
| d613cfbeb1 | |||
| f18b1c216b | |||
| ea06f6319c | |||
| b5783935e8 | |||
| d87faa1bd8 | |||
| c65223136d | |||
| ba154c550b | |||
| 4d50bec2d0 | |||
| 43906c7f53 | |||
| 378edc7887 | |||
| 0d57163471 | |||
| 600f4d32d1 | |||
| 8cdf385635 | |||
| 5651525ac7 | |||
| a01cb2b54b | |||
| bf1a200012 | |||
| 5d071f35f1 | |||
| 576fe0ccc8 | |||
| 2d47bbc4fc | |||
| 46f378fd89 | |||
| f92f9b3c19 | |||
| d892083493 | |||
| b16282e898 | |||
| 2624222b3b | |||
| 12421c5713 | |||
| c87cea8430 | |||
| c038398488 | |||
| 49ade8f074 | |||
| 9d4d11dcfc | |||
| 36e88d7c00 | |||
| f8b91358c3 | |||
| 9c572b13a8 | |||
| 03b3702dc7 | |||
| 9b6a326784 | |||
| 2a5a5b5179 | |||
| 402ef36121 | |||
| 44dae7ccf7 | |||
| 2a29b72c9e | |||
| c8e00cc37c | |||
| 3fcfddb8a7 | |||
| 1ab9787f2d | |||
| 8df58161af | |||
| 3719992fdb | |||
| 7f1ea79ca6 | |||
| 7b40d0a95a | |||
| a6c9ffebc6 | |||
| bc2e49ac6b | |||
| fc211836c5 | |||
| f438ffbbfd | |||
| 3221727b23 | |||
| a30c5be489 | |||
| ce54d89d2b | |||
| ab57f9a712 | |||
| d0eebfd570 | |||
| 8ce667f841 | |||
| 80c7b2f657 | |||
| 558af1e330 | |||
| c5eab1be0a | |||
| 939a87f8a3 | |||
| afa56a641c | |||
| 5dbded1d58 | |||
| 55c60a8167 | |||
| 601280d8d6 | |||
| 336079567a | |||
| e71039339f | |||
| 90a644b57a | |||
| 49f44f04c7 | |||
| 5b65ac303d | |||
| 43c98f1732 | |||
| 9b413030fa | |||
| 5ed629d5cd | |||
| 426b3ad685 | |||
| 650701e91f | |||
| 54fba4df32 | |||
| f9c40be2c3 | |||
| 6c7451ce44 | |||
| 8aec01f7c8 | |||
| be7d1a4202 | |||
| 326b008200 | |||
| c1faaa91c0 | |||
| 31bc8d9075 | |||
| b2c2c9f60c | |||
| c922075e19 | |||
| 7715f86e5b | |||
| dcbd9aa9b4 | |||
| 9f96bc3368 | |||
| 53be6911b1 | |||
| 8c77722346 | |||
| 00622be654 | |||
| 7c12f7e8bc | |||
| b1c1a3cd58 | |||
| fb8c0351b9 | |||
| 5fe3abb446 | |||
| 7808f55f70 | |||
| 3ef3b3bcc3 | |||
| ec16f00179 | |||
| 632dc39aa1 | |||
| 68887c5e69 | |||
| 00551efcb3 | |||
| f2cfa1facf | |||
| 7c60903644 | |||
| d7f518762a | |||
| ca4a951ee5 | |||
| 632d3729ce | |||
| b81159d74c | |||
| 3e7630120a | |||
| 05c6ceb518 | |||
| 1229238cbd | |||
| a8293cf0e6 | |||
| f318d01141 | |||
| 678fcec277 | |||
| c4a41b8c8b | |||
| efdda5b1ce | |||
| 4588d722a2 | |||
| 9ce2296b85 | |||
| 48b2d35915 | |||
| ce09e4ca42 | |||
| 749bd17a9d | |||
| 8cc6143977 | |||
| 14144d2dce | |||
| e922a82286 | |||
| e514b72612 | |||
| 12f3eb7031 | |||
| a71e2a97e6 | |||
| 94ab06a930 | |||
| d8b95c8b73 | |||
| b6cf28e998 | |||
| 559d793227 | |||
| ea3f6e4d7a | |||
| aee0099968 | |||
| 2f834e6166 | |||
| 62d061423c | |||
| 2050330ca7 | |||
| 97fe1fbf19 | |||
| 803f55438c | |||
| 102376feed | |||
| a6a6dfbc49 | |||
| 7d178dc117 | |||
| 38cd8dd60e | |||
| 264343636a | |||
| a253e8d457 | |||
| 3dba068927 | |||
| b75e0629c9 | |||
| 41a62aac67 | |||
| ae69b9dc50 | |||
| eb2a494110 | |||
| 1c8c3d5d1e | |||
| 64526db001 | |||
| b2057f21d4 | |||
| 7065c95aa6 | |||
| 0e19f3d489 | |||
| 65bc085b09 | |||
| 71d95e9294 | |||
| 423fff9925 | |||
| cf43eab133 | |||
| 29da8227ef | |||
| a96a030a89 | |||
| efb95b7c57 | |||
| d984370072 | |||
| 3846f9874b | |||
| b66bbc4291 | |||
| e58698c4d9 | |||
| 422ab9514e | |||
| ea36e1a358 | |||
| a9368babee | |||
| 2c760b3ceb | |||
| 2c44444caf | |||
| e9aa9d66e6 | |||
| 54af040ba7 | |||
| af2bf74318 | |||
| d840413f6e | |||
| eb0ae0720f | |||
| cdcdaf69bd | |||
| 61107bec55 | |||
| a8b4d978cf | |||
| 183bf2033c | |||
| 0f6cf45932 | |||
| e5a99bc2b9 | |||
| 9e3e227d3e | |||
| 2bc09f45d1 | |||
| 28a20935a9 | |||
| 056dad8dd6 | |||
| 3e457f763b | |||
| dd3ed8a7a9 | |||
| e6ff989382 | |||
| e2c592ac2f | |||
| 530a62ace6 | |||
| 8502a1ed58 | |||
| c3e24942b6 | |||
| 10832d9e1b | |||
| 18bdb11a88 | |||
| e3f3578260 | |||
| d4a7dc8523 | |||
| 49a59a08e6 | |||
| 380dc4b678 | |||
| a43286ef67 | |||
| c6025dc5a3 | |||
| bfd66c0808 | |||
| 8b67053be4 | |||
| a4cd214eb5 | |||
| 5cb73404de | |||
| 480c621d8d | |||
| e5ec54d2c5 | |||
| 5132e36da8 | |||
| aae1e3c43b | |||
| 836d20c41b | |||
| 1c97b78dab | |||
| f42a565398 | |||
| 48d7dd932d | |||
| 10b7f84269 | |||
| 8a4b553807 | |||
| 350d267363 | |||
| d71700367c | |||
| e4ef9bed83 | |||
| 828489bba5 | |||
| c5c3472c6c | |||
| 5c7283b2bd | |||
| 996ddc05a8 | |||
| f1284ab91c | |||
| 196421e363 | |||
| b8bc44fae1 | |||
| 89e5884931 | |||
| 3d875b65f4 | |||
| 4ddd6f3d02 | |||
| 80b14776bb | |||
| 047a4feff0 | |||
| 5f6e94e242 | |||
| 882c42f204 | |||
| 15d6cfd8ab | |||
| dab917b316 | |||
| 7b601705e9 | |||
| 6f9a111285 | |||
| 138cb7fee0 | |||
| e5a7ab8d1d | |||
| 5146738337 | |||
| 520d21437c | |||
| e9aa2584b5 | |||
| cc530b7cd7 | |||
| 1938ede867 | |||
| 8c6191a0a1 | |||
| ec84d19377 | |||
| 8477e2a5c2 | |||
| 4a776ba4b1 | |||
| 558f19ece3 | |||
| 1a706b7d6b | |||
| 1ac9432ada | |||
| 15066ddf59 | |||
| 09cec4185b | |||
| 0b71dce46b | |||
| e6819ccc08 | |||
| 8d331cc9e6 | |||
| 8804b81070 | |||
| 0e17d3e991 | |||
| ebb9d36756 | |||
| dd3142025b | |||
| 78e66d57da | |||
| 49e2dec9e4 | |||
| 36eb9d4f3f | |||
| 5ddeee3c5d | |||
| 091015322d | |||
| ad65b9bb22 | |||
| a5bf587c9c | |||
| d32501b193 | |||
| e42eac0ad5 | |||
| 34ca01b2f5 | |||
| 80aed38071 | |||
| 6a7f38b828 | |||
| 6f662431ca | |||
| feb40412c5 | |||
| f4fd5896ec | |||
| 27d2464029 | |||
| de8a42d54d | |||
| f59138968b | |||
| 2f2ffc2572 | |||
| 232db4988c | |||
| 08e203fbaa | |||
| 783ca7552f | |||
| a1181ae791 | |||
| ff8a9a3529 | |||
| fc1f39c8e1 | |||
| 8091ce3211 | |||
| ff3ec8bf39 | |||
| 14752341a8 | |||
| 59b00df647 | |||
| f2d49eae59 | |||
| f994f4232c | |||
| a72d68488c | |||
| 0d4b481ac6 | |||
| 76ff4eec52 | |||
| e337b7104e | |||
| d9ca1fc0de | |||
| 4a2431209c | |||
| 33e1e88dda | |||
| 385ef5dd28 | |||
| c53da81cce | |||
| 19d57b6828 | |||
| f5736ce4f4 | |||
| b3f0031efb | |||
| acaeb69ad6 | |||
| 2810b5c6dc | |||
| 4ec98f3e21 | |||
| 730d25fe35 | |||
| 0561fa8e11 | |||
| 2f437a9794 | |||
| d203658596 | |||
| 85babd8d1c | |||
| 3e20ea69c5 | |||
| 64d8eb5a76 | |||
| c7c4f27e1f | |||
| 7e046d459a | |||
| 9eab2d082e | |||
| c92c160d24 | |||
| afe577aadd | |||
| 04792c9d51 |
+1
-1
@@ -2,7 +2,7 @@
|
||||
"repoOwner": "terrapkg",
|
||||
"repoName": "packages",
|
||||
"resetAuthor": true,
|
||||
"targetBranchChoices": ["f39", "f40", "frawhide"],
|
||||
"targetBranchChoices": ["f38", "f39", "f40", "frawhide"],
|
||||
"branchLabelMapping": {
|
||||
"^sync-(.+)$": "$1"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ARG VARIANT="rawhide"
|
||||
ARG VARIANT="38"
|
||||
FROM fedora:${VARIANT}
|
||||
|
||||
RUN useradd -m vscode
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "Fedora",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"args": { "VARIANT": "rawhide" }
|
||||
"args": { "VARIANT": "38" }
|
||||
},
|
||||
"remoteUser": "vscode",
|
||||
"runArgs": [
|
||||
|
||||
@@ -6,13 +6,13 @@ on:
|
||||
paths:
|
||||
- anda/**
|
||||
branches:
|
||||
- frawhide
|
||||
- f39
|
||||
pull_request:
|
||||
branches:
|
||||
- frawhide
|
||||
- f39
|
||||
merge_group:
|
||||
branches:
|
||||
- frawhide
|
||||
- f39
|
||||
workflow_dispatch:
|
||||
workflow_call:
|
||||
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
outputs:
|
||||
build_matrix: ${{ steps.generate_build_matrix.outputs.build_matrix }}
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
image: ghcr.io/terrapkg/builder:f39
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Set workspace as safe
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
pkg: ${{ fromJson(needs.manifest.outputs.build_matrix) }}
|
||||
version: ["rawhide"]
|
||||
version: ["39"]
|
||||
fail-fast: false
|
||||
runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || matrix.pkg.labels['large'] && 'x86-64-lg' || 'ubuntu-latest' }}
|
||||
container:
|
||||
@@ -94,7 +94,7 @@ jobs:
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success() && github.event_name == 'push'
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
- name: Notify Madoguchi (Failure)
|
||||
if: ( cancelled() || failure() ) && github.event_name == 'push'
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
|
||||
@@ -7,7 +7,7 @@ jobs:
|
||||
bootstrap:
|
||||
strategy:
|
||||
matrix:
|
||||
version: ["rawhide"]
|
||||
version: ["39"]
|
||||
arch: ["x86_64", "aarch64"]
|
||||
fail-fast: true
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
|
||||
+17
-15
@@ -14,6 +14,8 @@ on:
|
||||
required: false
|
||||
default: all
|
||||
type: string
|
||||
|
||||
|
||||
|
||||
jobs:
|
||||
parse:
|
||||
@@ -26,25 +28,25 @@ jobs:
|
||||
- name: Parse Input
|
||||
id: parsing
|
||||
run: |
|
||||
echo "${{ inputs.packages }}" | sed 's/ /\n/g' | sed 's/$/\//g' | jq -R . | jq -s . | jq -c . | sed 's/^/pkgs=/' >> $GITHUB_OUTPUT
|
||||
echo "builder=${{ inputs.custom_builder }}" >> $GITHUB_OUTPUT
|
||||
arch="${{ inputs.architecture }}"
|
||||
# Convert to json array using jq
|
||||
# if arch is not all, convert to array
|
||||
if [ "$arch" != "all" ]; then
|
||||
# jq, array with single element as string
|
||||
arch=$(echo $arch | sed 's/,/\n/g')
|
||||
echo "arch=$(echo $arch | jq -Rs 'split("\n")' | jq 'map(select(length > 0))' | jq -c .)" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "arch=$(echo '["aarch64", "x86_64"]' | jq -c .)" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
echo "${{ inputs.packages }}" | sed 's/ /\n/g' | sed 's/$/\//g' | jq -R . | jq -s . | jq -c . | sed 's/^/pkgs=/' >> $GITHUB_OUTPUT
|
||||
echo "builder=${{ inputs.custom_builder }}" >> $GITHUB_OUTPUT
|
||||
arch="${{ inputs.architecture }}"
|
||||
# Convert to json array using jq
|
||||
# if arch is not all, convert to array
|
||||
if [ "$arch" != "all" ]; then
|
||||
# jq, array with single element as string
|
||||
arch=$(echo $arch | sed 's/,/\n/g')
|
||||
echo "arch=$(echo $arch | jq -Rs 'split("\n")' | jq 'map(select(length > 0))' | jq -c .)" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "arch=$(echo '["aarch64", "x86_64"]' | jq -c .)" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
build:
|
||||
needs: parse
|
||||
strategy:
|
||||
matrix:
|
||||
pkg: ${{ fromJson(needs.parse.outputs.pkgs) }}
|
||||
version: ["rawhide"]
|
||||
version: ["39"]
|
||||
arch: ${{ fromJson(needs.parse.outputs.arch) }}
|
||||
fail-fast: false
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || needs.parse.outputs.builder && needs.parse.outputs.builder || 'ubuntu-latest' }}
|
||||
@@ -100,7 +102,7 @@ jobs:
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success()
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
- name: Notify Madoguchi (Failure)
|
||||
if: cancelled() || failure()
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
pkg: ${{ fromJson(inputs.packages) }}
|
||||
version: ["rawhide"]
|
||||
version: ["39"]
|
||||
fail-fast: false
|
||||
runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
container:
|
||||
@@ -67,7 +67,7 @@ jobs:
|
||||
|
||||
- name: Notify Madoguchi (Success)
|
||||
if: success()
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
- name: Notify Madoguchi (Failure)
|
||||
if: cancelled() || failure()
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}}
|
||||
|
||||
@@ -3,18 +3,18 @@ name: Lint
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- frawhide
|
||||
- f39
|
||||
pull_request:
|
||||
branches:
|
||||
- frawhide
|
||||
- f39
|
||||
merge_group:
|
||||
branches:
|
||||
- frawhide
|
||||
- f39
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
image: ghcr.io/terrapkg/builder:f39
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
@@ -2,7 +2,7 @@ set -x
|
||||
|
||||
dirs=$2
|
||||
dirs=${dirs/\/pkg/}
|
||||
export p="{\"id\":\"$5\",\"ver\":\"%v\",\"rel\":\"%r\",\"arch\":\"$4\",\"dirs\":\"$dirs\",\"succ\":$1,\"commit\":\"%6\"}"
|
||||
export p="{\"id\":\"$5\",\"ver\":\"%v\",\"rel\":\"%r\",\"arch\":\"$4\",\"dirs\":\"$dirs\",\"succ\":$1}"
|
||||
|
||||
if [[ $1 == false ]]; then
|
||||
d=${p/\%v/?}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
name: Sync PR to other branches
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- closed
|
||||
branches:
|
||||
- f38
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["f37"]
|
||||
fail-fast: false
|
||||
if: github.event.pull_request.merged == true && !contains(github.event.pull_request.labels.*.name, 'nosync')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
ref: ${{ matrix.branch }}
|
||||
- name: Install SSH key and Setup Git
|
||||
run: |
|
||||
mkdir -p ${{ runner.temp }}
|
||||
echo "${{ secrets.SSH_SIGNING_KEY }}" > ${{ runner.temp }}/signing_key
|
||||
chmod 0700 ${{ runner.temp }}/signing_key
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
git config user.name "Raboneko"
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
git config gpg.format "ssh"
|
||||
git config user.signingkey "${{ runner.temp }}/signing_key"
|
||||
- name: Apply patches and Push
|
||||
run: |
|
||||
curl https://github.com/terrapkg/packages/pull/${{ github.event.pull_request.number }}.patch > pr.patch
|
||||
git am -S --keep-cr --signoff < pr.patch
|
||||
git push -u origin --all
|
||||
@@ -3,9 +3,9 @@ name: Push comps updates
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- frawhide
|
||||
- f40
|
||||
- f39
|
||||
- f38
|
||||
- f37
|
||||
paths:
|
||||
- comps.xml
|
||||
workflow_dispatch:
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
update-comps:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
image: ghcr.io/terrapkg/builder:f39
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Push to subatomic
|
||||
|
||||
@@ -8,7 +8,7 @@ jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
image: ghcr.io/terrapkg/builder:f39
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -17,12 +17,11 @@ jobs:
|
||||
fetch-depth: 0
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
|
||||
- name: Install SSH signing key & Set up git repository
|
||||
- name: Install SSH signing key
|
||||
run: |
|
||||
mkdir -p ${{ runner.temp }}
|
||||
echo "${{ secrets.SSH_SIGNING_KEY }}" > ${{ runner.temp }}/signing_key
|
||||
chmod 0700 ${{ runner.temp }}/signing_key
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Run Nightly Update
|
||||
run: anda update -vv --filters nightly=1
|
||||
@@ -31,6 +30,7 @@ jobs:
|
||||
|
||||
- name: Save
|
||||
run: |
|
||||
git config --global --add safe.directory "*"
|
||||
if [[ `git status --porcelain` ]]; then
|
||||
git config user.name "Raboneko"
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
@@ -46,7 +46,8 @@ jobs:
|
||||
git add *
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
copy_over f39 || true
|
||||
copy_over f38 || true
|
||||
copy_over f40 || true
|
||||
copy_over frawhide || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
@@ -8,7 +8,7 @@ jobs:
|
||||
autoupdate:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
image: ghcr.io/terrapkg/builder:f39
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -17,12 +17,11 @@ jobs:
|
||||
fetch-depth: 0
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
|
||||
- name: Install SSH signing key & Set up git repository
|
||||
- name: Install SSH signing key
|
||||
run: |
|
||||
mkdir -p ${{ runner.temp }}
|
||||
echo "${{ secrets.SSH_SIGNING_KEY }}" > ${{ runner.temp }}/signing_key
|
||||
chmod 0700 ${{ runner.temp }}/signing_key
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Run Update
|
||||
run: anda update -vv
|
||||
@@ -32,6 +31,7 @@ jobs:
|
||||
|
||||
- name: Save
|
||||
run: |
|
||||
git config --global --add safe.directory "*"
|
||||
if [[ `git status --porcelain` ]]; then
|
||||
git config user.name "Raboneko"
|
||||
git config user.email "raboneko@fyralabs.com"
|
||||
@@ -47,7 +47,8 @@ jobs:
|
||||
git add *
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
copy_over f39 || true
|
||||
copy_over f38 || true
|
||||
copy_over f40 || true
|
||||
copy_over frawhide || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
+2
-4
@@ -1,9 +1,7 @@
|
||||
# Contributing
|
||||
|
||||
First of all, thanks for being interested in contributing to Terra! If you have any questions about contributing, please contact us on [Discord](https://discord.gg/5fdPuxTg5Q).
|
||||
|
||||
## Documentations
|
||||
First of all, thanks for being interested in contributing to Terra! If you have any questions about contributing, please contact us on [Discord](https://discord.gg/5fdPuxTg5Q). Since we use a GitHub Wiki for [documentation](https://developer.fyralabs.com/terra), our guidelines may be found there. See the links below:
|
||||
|
||||
* [Contribution Guide](https://developer.fyralabs.com/terra/contributing)
|
||||
* [FAQ](https://developer.fyralabs.com/terra/faq)
|
||||
* [Policy](https://developer.fyralabs.com/terra/policy)
|
||||
* [Policy](https://developer.fyralabs.com/terra/policy)
|
||||
@@ -1,5 +1,6 @@
|
||||
# Terra Sources
|
||||
|
||||
[](https://repology.org/repository/terra_38)
|
||||
[](https://repology.org/repository/terra_39)
|
||||
[](https://repology.org/repository/terra_40)
|
||||
[](https://repology.org/repository/terra_rawhide)
|
||||
@@ -11,7 +12,7 @@ This monorepo contains the package manifests for all packages in Terra.
|
||||
|
||||
## Installation
|
||||
```bash
|
||||
sudo dnf install --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' --setopt='terra.gpgkey=https://repos.fyralabs.com/terra$releasever/key.asc' terra-release
|
||||
sudo dnf config-manager --add-repo https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo
|
||||
```
|
||||
You should also install the `terra-release` package so that when our infrastructure has any migrations, you can be assured that your Terra installation will still work as-is.
|
||||
|
||||
|
||||
@@ -1,26 +1,18 @@
|
||||
%global xurl https://files.pythonhosted.org/packages/51/5f/6f52b958fe38a36a0799c01fbd56a742ebdfcf41f89438dbee998b8ce692/anki-24.06.3-cp39-abi3-manylinux_2_28_x86_64.whl
|
||||
%global aurl https://files.pythonhosted.org/packages/df/bb/b0bfbc6a06a598b0b614d18dd8c4f40827828649f9742f1f44a4e44d6a2c/anki-24.06.3-cp39-abi3-manylinux_2_31_aarch64.whl
|
||||
%global qurl https://files.pythonhosted.org/packages/21/2a/d8e22a9521be04ef29a30d21a2c3008783ab03b6f07cc14696a040f747a4/aqt-24.06.3-py3-none-any.whl
|
||||
|
||||
Name: anki-bin
|
||||
Version: 24.06.3
|
||||
Release: 1%?dist
|
||||
Summary: Flashcard program for using space repetition learning (Installed with wheel)
|
||||
License: AGPL-3.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-3.0 AND Apache-2.0 AND CC-BY-2.5
|
||||
URL: https://apps.ankiweb.net/
|
||||
BuildRequires: python3-pip rpm_macro(fdupes) cargo
|
||||
BuildRequires: python3-pip rpm_macro(fdupes)
|
||||
Requires: python3-sqlalchemy python3-simplejson python3-matplotlib python3-decorator python3-markdown python3-orjson
|
||||
Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema
|
||||
Requires: python3-flask-cors python3-protobuf python3-requests python3-waitress python3-pyqt6-webengine python3-send2trash
|
||||
Requires: libxcrypt-compat hicolor-icon-theme sox mpv
|
||||
ExclusiveArch: x86_64
|
||||
Conflicts: anki
|
||||
%ifarch x86_64
|
||||
Source0: %xurl
|
||||
%elifarch aarch64
|
||||
Source0: %aurl
|
||||
%endif
|
||||
Source1: %qurl
|
||||
Source0: https://files.pythonhosted.org/packages/cp39/a/anki/anki-%{version}-cp39-abi3-manylinux_2_28_%{_arch}.whl
|
||||
Source1: https://files.pythonhosted.org/packages/py3/a/aqt/aqt-%{version}-py3-none-any.whl
|
||||
Source2: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/runanki.py
|
||||
Source3: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.desktop
|
||||
Source4: https://raw.githubusercontent.com/ankitects/anki/%{version}/qt/bundle/lin/anki.png
|
||||
|
||||
@@ -1,15 +1 @@
|
||||
let aarch64_regex = `<a href="https://files\.pythonhosted\.org/packages/(..)/(..)/(.{60})/anki-([\d.]+)-cp(\d+)-abi3-manylinux_.+?_aarch64.whl">`;
|
||||
let html = get("https://pypi.org/project/anki/");
|
||||
let relevant = find(aarch64_regex, html, 0);
|
||||
let ver = find(aarch64_regex, relevant, 4);
|
||||
rpm.version(ver);
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("aurl", find(`"(.+)"`, relevant, 1));
|
||||
let cp = find(aarch64_regex, relevant, 5);
|
||||
let x86_64_regex = `<a href="https://files\.pythonhosted\.org/packages/(..)/(..)/(.{60})/anki-${ver}-cp${cp}-abi3-manylinux_.+?_x86_64.whl">`;
|
||||
let relevant1 = find(x86_64_regex, html, 0);
|
||||
rpm.global("xurl", find(`"(.+)"`, relevant1, 1));
|
||||
let qhtml = get("https://pypi.org/project/aqt/");
|
||||
rpm.global("qurl", find(`<a href="(https://files\.pythonhosted\.org/packages/../../.{60}/aqt-${ver}-py3-none.any.whl)">`, qhtml, 1));
|
||||
}
|
||||
rpm.version(gh("ankitects/anki"));
|
||||
|
||||
@@ -20,7 +20,6 @@ phrases in a foreign language) as easily, quickly and efficiently as possible.
|
||||
Anki is based on a theory called spaced repetition.
|
||||
|
||||
%prep
|
||||
rm -rf ./*
|
||||
git clone https://github.com/ankitects/anki .
|
||||
git checkout %version
|
||||
%patch 1 -p1
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-canary-openasar
|
||||
Version: 0.0.454
|
||||
Version: 0.0.452
|
||||
Release: 1%?dist
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-canary
|
||||
Version: 0.0.454
|
||||
Version: 0.0.452
|
||||
Release: 1%?dist
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
URL: discord.com
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-openasar
|
||||
Version: 0.0.60
|
||||
Version: 0.0.59
|
||||
Release: 1%?dist
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-ptb-openasar
|
||||
Version: 0.0.95
|
||||
Version: 0.0.94
|
||||
Release: 1%?dist
|
||||
Summary: A snappier Discord rewrite with features like further customization and theming
|
||||
License: MIT AND https://discord.com/terms
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-ptb
|
||||
Version: 0.0.95
|
||||
Version: 0.0.94
|
||||
Release: 1%?dist
|
||||
Summary: Free Voice and Text Chat for Gamers.
|
||||
URL: https://discord.com
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord
|
||||
Version: 0.0.60
|
||||
Version: 0.0.59
|
||||
Release: 1%?dist
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
URL: https://discord.com
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "komikku.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,109 +0,0 @@
|
||||
%global appname Komikku
|
||||
%global uuid info.febvre.%{appname}
|
||||
%global gtk4_version 4.14.4
|
||||
%global libadwaita_version 1.5.1
|
||||
%global pure_protobuf_version 2.0.0
|
||||
|
||||
Name: komikku
|
||||
Version: 1.51.1
|
||||
%forgemeta
|
||||
Release: %autorelease
|
||||
Summary: A manga reader for GNOME
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
License: GPL-3.0-or-later
|
||||
URL: https://valos.gitlab.io/Komikku
|
||||
Source0: https://codeberg.org/valos/%{appname}/archive/v%{version}.tar.gz#/%{name}-v%{version}.tar.gz
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: intltool
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: meson >= 0.59.0
|
||||
BuildRequires: python3-devel >= 3.8
|
||||
BuildRequires: blueprint-compiler
|
||||
|
||||
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.35.9
|
||||
BuildRequires: pkgconfig(gtk4) >= %{gtk4_version}
|
||||
BuildRequires: pkgconfig(libadwaita-1) >= %{libadwaita_version}
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
Requires: gtk4 >= %{gtk4_version}
|
||||
Requires: libadwaita >= %{libadwaita_version}
|
||||
Requires: libnotify
|
||||
Requires: webkitgtk6.0
|
||||
Requires: python3-beautifulsoup4
|
||||
Requires: python3-brotli
|
||||
Requires: python3-colorthief
|
||||
Requires: python3-dateparser %dnl >= 1.1.4 | https://bugzilla.redhat.com/show_bug.cgi?id=2115204
|
||||
Requires: python3-emoji
|
||||
Requires: python3-gobject
|
||||
Requires: python3-keyring >= 21.6.0
|
||||
Requires: python3-lxml
|
||||
Requires: python3-natsort
|
||||
Requires: python3-file-magic
|
||||
Requires: python3-piexif
|
||||
Requires: python3-pillow
|
||||
Requires: python3-pillow-heif
|
||||
Requires: python3-pure-protobuf >= %{pure_protobuf_version}
|
||||
Requires: python3-rarfile
|
||||
Requires: python3-requests
|
||||
Requires: python3-unidecode
|
||||
|
||||
%description
|
||||
Komikku is a manga reader for GNOME. It focuses on providing a clean, intuitive
|
||||
and adaptive interface.
|
||||
|
||||
Keys features
|
||||
|
||||
* Online reading from dozens of servers
|
||||
* Offline reading of downloaded comics
|
||||
* Categories to organize your library
|
||||
* RTL, LTR, Vertical and Webtoon reading modes
|
||||
* Several types of navigation:
|
||||
* Keyboard arrow keys
|
||||
* Right and left navigation layout via mouse click or tapping
|
||||
(touchpad/touch screen)
|
||||
* Mouse wheel
|
||||
* 2-fingers swipe gesture (touchpad)
|
||||
* Swipe gesture (touch screen)
|
||||
* Automatic update of comics
|
||||
* Automatic download of new chapters
|
||||
* Reading history
|
||||
* Light and dark themes
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name} -p1
|
||||
|
||||
|
||||
%build
|
||||
%meson
|
||||
%meson_build
|
||||
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
%find_lang %{name}
|
||||
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
||||
|
||||
|
||||
%files -f %{name}.lang
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/%{name}/
|
||||
%{_datadir}/applications/*.desktop
|
||||
%{_datadir}/glib-2.0/schemas/*.gschema.xml
|
||||
%{_datadir}/icons/hicolor/scalable/*/*.svg
|
||||
%{_datadir}/icons/hicolor/symbolic/*/*.svg
|
||||
%{_metainfodir}/*.xml
|
||||
%{python3_sitelib}/%{name}/
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Jul 11 2024 Trung Lê <8@tle.id.au> - 1.51.1-0
|
||||
- Initial RPM package
|
||||
@@ -1,3 +0,0 @@
|
||||
let latest_tag = get("https://codeberg.org/api/v1/repos/valos/Komikku/tags").json_arr()[0].name;
|
||||
let new_version = find("([\\.\\d]+)", latest_tag, 1);
|
||||
rpm.version(new_version);
|
||||
@@ -1,6 +1,6 @@
|
||||
%global commit e509ec0aaffce74e520702e16e3e21ea0f168940
|
||||
%global commit f470b63a04767ada809ae7d0c69c8f9ac4c80628
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20240720
|
||||
%global commit_date 20240712
|
||||
%global ver v0.38.0
|
||||
|
||||
Name: mpv-nightly
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Generated by rust2rpm 26
|
||||
# Generated by rust2rpm 25
|
||||
%bcond_with check
|
||||
# aarch64 dist is not available
|
||||
%ifarch aarch64
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
Name: rust-sccache
|
||||
Version: 0.8.1
|
||||
Release: %autorelease
|
||||
Release: 1%?dist
|
||||
Summary: Ccache-like tool
|
||||
|
||||
License: Apache-2.0
|
||||
@@ -89,6 +89,17 @@ use the "default" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+all-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/all) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
Requires: crate(sccache/azure) = 0.7.4
|
||||
Requires: crate(sccache/dist-client) = 0.7.4
|
||||
Requires: crate(sccache/gcs) = 0.7.4
|
||||
Requires: crate(sccache/gha) = 0.7.4
|
||||
Requires: crate(sccache/memcached) = 0.7.4
|
||||
Requires: crate(sccache/redis) = 0.7.4
|
||||
Requires: crate(sccache/s3) = 0.7.4
|
||||
Requires: crate(sccache/webdav) = 0.7.4
|
||||
|
||||
%description -n %{name}+all-devel %{_description}
|
||||
|
||||
@@ -101,6 +112,9 @@ use the "all" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+azure-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/azure) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+azure-devel %{_description}
|
||||
|
||||
@@ -113,6 +127,9 @@ use the "azure" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+dist-client-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/dist-client) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+dist-client-devel %{_description}
|
||||
|
||||
@@ -121,10 +138,13 @@ use the "dist-client" feature of the "%{crate}" crate.
|
||||
|
||||
%files -n %{name}+dist-client-devel
|
||||
%ghost %{crate_instdir}/Cargo.toml
|
||||
|
||||
%if %{with dist_server}
|
||||
%package -n %{name}+dist-server-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/dist-server) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+dist-server-devel %{_description}
|
||||
|
||||
@@ -137,6 +157,11 @@ use the "dist-server" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+dist-tests-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/dist-tests) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
Requires: crate(sccache/dist-client) = 0.7.4
|
||||
Requires: crate(sccache/dist-server) = 0.7.4
|
||||
|
||||
%description -n %{name}+dist-tests-devel %{_description}
|
||||
|
||||
@@ -145,10 +170,15 @@ use the "dist-tests" feature of the "%{crate}" crate.
|
||||
|
||||
%files -n %{name}+dist-tests-devel
|
||||
%ghost %{crate_instdir}/Cargo.toml
|
||||
|
||||
%endif
|
||||
%package -n %{name}+flate2-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/flate2) = 0.7.4
|
||||
Requires: (crate(flate2) >= 1.0.0 with crate(flate2) < 2.0.0~)
|
||||
Requires: (crate(flate2/rust_backend) >= 1.0.0 with crate(flate2/rust_backend) < 2.0.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+flate2-devel %{_description}
|
||||
|
||||
@@ -161,6 +191,9 @@ use the "flate2" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+gcs-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/gcs) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+gcs-devel %{_description}
|
||||
|
||||
@@ -173,6 +206,10 @@ use the "gcs" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+gha-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/gha) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
Requires: crate(sccache/opendal) = 0.7.4
|
||||
|
||||
%description -n %{name}+gha-devel %{_description}
|
||||
|
||||
@@ -182,21 +219,14 @@ use the "gha" feature of the "%{crate}" crate.
|
||||
%files -n %{name}+gha-devel
|
||||
%ghost %{crate_instdir}/Cargo.toml
|
||||
|
||||
%package -n %{name}+http-body-util-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n %{name}+http-body-util-devel %{_description}
|
||||
|
||||
This package contains library source intended for building other packages which
|
||||
use the "http-body-util" feature of the "%{crate}" crate.
|
||||
|
||||
%files -n %{name}+http-body-util-devel
|
||||
%ghost %{crate_instdir}/Cargo.toml
|
||||
|
||||
%package -n %{name}+hyper-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/hyper) = 0.7.4
|
||||
Requires: (crate(hyper/default) >= 0.14.27 with crate(hyper/default) < 0.15.0~)
|
||||
Requires: (crate(hyper/server) >= 0.14.27 with crate(hyper/server) < 0.15.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+hyper-devel %{_description}
|
||||
|
||||
@@ -206,21 +236,13 @@ use the "hyper" feature of the "%{crate}" crate.
|
||||
%files -n %{name}+hyper-devel
|
||||
%ghost %{crate_instdir}/Cargo.toml
|
||||
|
||||
%package -n %{name}+hyper-util-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n %{name}+hyper-util-devel %{_description}
|
||||
|
||||
This package contains library source intended for building other packages which
|
||||
use the "hyper-util" feature of the "%{crate}" crate.
|
||||
|
||||
%files -n %{name}+hyper-util-devel
|
||||
%ghost %{crate_instdir}/Cargo.toml
|
||||
|
||||
%package -n %{name}+jwt-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/jwt) = 0.7.4
|
||||
Requires: (crate(jsonwebtoken/default) >= 8.0.0 with crate(jsonwebtoken/default) < 9.0.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+jwt-devel %{_description}
|
||||
|
||||
@@ -233,6 +255,10 @@ use the "jwt" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+libmount-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/libmount) = 0.7.4
|
||||
Requires: (crate(libmount/default) >= 0.1.10 with crate(libmount/default) < 0.2.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+libmount-devel %{_description}
|
||||
|
||||
@@ -245,6 +271,11 @@ use the "libmount" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+memcached-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/memcached) = 0.7.4
|
||||
Requires: (crate(opendal/default) >= 0.40.0 with crate(opendal/default) < 0.41.0~)
|
||||
Requires: (crate(opendal/services-memcached) >= 0.40.0 with crate(opendal/services-memcached) < 0.41.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+memcached-devel %{_description}
|
||||
|
||||
@@ -257,6 +288,9 @@ use the "memcached" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+native-zlib-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/native-zlib) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+native-zlib-devel %{_description}
|
||||
|
||||
@@ -269,6 +303,10 @@ use the "native-zlib" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+nix-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/nix) = 0.7.4
|
||||
Requires: (crate(nix/default) >= 0.26.2 with crate(nix/default) < 0.27.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+nix-devel %{_description}
|
||||
|
||||
@@ -281,6 +319,10 @@ use the "nix" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+opendal-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/opendal) = 0.7.4
|
||||
Requires: (crate(opendal/default) >= 0.40.0 with crate(opendal/default) < 0.41.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+opendal-devel %{_description}
|
||||
|
||||
@@ -293,6 +335,10 @@ use the "opendal" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+openssl-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/openssl) = 0.7.4
|
||||
Requires: (crate(openssl/default) >= 0.10.55 with crate(openssl/default) < 0.11.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+openssl-devel %{_description}
|
||||
|
||||
@@ -302,21 +348,16 @@ use the "openssl" feature of the "%{crate}" crate.
|
||||
%files -n %{name}+openssl-devel
|
||||
%ghost %{crate_instdir}/Cargo.toml
|
||||
|
||||
%package -n %{name}+oss-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n %{name}+oss-devel %{_description}
|
||||
|
||||
This package contains library source intended for building other packages which
|
||||
use the "oss" feature of the "%{crate}" crate.
|
||||
|
||||
%files -n %{name}+oss-devel
|
||||
%ghost %{crate_instdir}/Cargo.toml
|
||||
|
||||
%package -n %{name}+redis-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/redis) = 0.7.4
|
||||
Requires: (crate(opendal/default) >= 0.40.0 with crate(opendal/default) < 0.41.0~)
|
||||
Requires: (crate(opendal/services-redis) >= 0.40.0 with crate(opendal/services-redis) < 0.41.0~)
|
||||
Requires: (crate(opendal/services-redis-rustls) >= 0.40.0 with crate(opendal/services-redis-rustls) < 0.41.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
Requires: crate(sccache/url) = 0.7.4
|
||||
|
||||
%description -n %{name}+redis-devel %{_description}
|
||||
|
||||
@@ -329,6 +370,10 @@ use the "redis" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+reqsign-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/reqsign) = 0.7.4
|
||||
Requires: (crate(reqsign/default) >= 0.14.1 with crate(reqsign/default) < 0.15.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+reqsign-devel %{_description}
|
||||
|
||||
@@ -341,6 +386,15 @@ use the "reqsign" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+reqwest-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/reqwest) = 0.7.4
|
||||
Requires: (crate(reqwest/blocking) >= 0.11.0 with crate(reqwest/blocking) < 0.12.0~)
|
||||
Requires: (crate(reqwest/default) >= 0.11.0 with crate(reqwest/default) < 0.12.0~)
|
||||
Requires: (crate(reqwest/json) >= 0.11.0 with crate(reqwest/json) < 0.12.0~)
|
||||
Requires: (crate(reqwest/rustls-tls) >= 0.11.0 with crate(reqwest/rustls-tls) < 0.12.0~)
|
||||
Requires: (crate(reqwest/stream) >= 0.11.0 with crate(reqwest/stream) < 0.12.0~)
|
||||
Requires: (crate(reqwest/trust-dns) >= 0.11.0 with crate(reqwest/trust-dns) < 0.12.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+reqwest-devel %{_description}
|
||||
|
||||
@@ -353,6 +407,11 @@ use the "reqwest" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+rouille-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/rouille) = 0.7.4
|
||||
Requires: (crate(rouille) >= 3.6.0 with crate(rouille) < 4.0.0~)
|
||||
Requires: (crate(rouille/ssl) >= 3.6.0 with crate(rouille/ssl) < 4.0.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+rouille-devel %{_description}
|
||||
|
||||
@@ -365,6 +424,11 @@ use the "rouille" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+s3-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/s3) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
Requires: crate(sccache/opendal) = 0.7.4
|
||||
Requires: crate(sccache/reqsign) = 0.7.4
|
||||
|
||||
%description -n %{name}+s3-devel %{_description}
|
||||
|
||||
@@ -377,6 +441,10 @@ use the "s3" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+sha2-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/sha2) = 0.7.4
|
||||
Requires: (crate(sha2/default) >= 0.10.6 with crate(sha2/default) < 0.11.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+sha2-devel %{_description}
|
||||
|
||||
@@ -389,6 +457,10 @@ use the "sha2" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+syslog-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/syslog) = 0.7.4
|
||||
Requires: (crate(syslog/default) >= 6.0.0 with crate(syslog/default) < 7.0.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+syslog-devel %{_description}
|
||||
|
||||
@@ -398,9 +470,29 @@ use the "syslog" feature of the "%{crate}" crate.
|
||||
%files -n %{name}+syslog-devel
|
||||
%ghost %{crate_instdir}/Cargo.toml
|
||||
|
||||
%{dnl ## BEGIN: multiline comment
|
||||
%package -n %{name}+trust-dns-resolver-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/trust-dns-resolver) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+trust-dns-resolver-devel %{_description}
|
||||
|
||||
This package contains library source intended for building other packages which
|
||||
use the "trust-dns-resolver" feature of the "%{crate}" crate.
|
||||
|
||||
%files -n %{name}+trust-dns-resolver-devel
|
||||
%ghost %{crate_instdir}/Cargo.toml
|
||||
} ## END OF multiline comment
|
||||
|
||||
%package -n %{name}+unstable-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/unstable) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+unstable-devel %{_description}
|
||||
|
||||
@@ -413,6 +505,10 @@ use the "unstable" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+url-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/url) = 0.7.4
|
||||
Requires: (crate(url/default) >= 2.0.0 with crate(url/default) < 3.0.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+url-devel %{_description}
|
||||
|
||||
@@ -425,6 +521,9 @@ use the "url" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+vendored-openssl-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/vendored-openssl) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+vendored-openssl-devel %{_description}
|
||||
|
||||
@@ -437,6 +536,10 @@ use the "vendored-openssl" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+version-compare-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/version-compare) = 0.7.4
|
||||
Requires: (crate(version-compare/default) >= 0.1.1 with crate(version-compare/default) < 0.2.0~)
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
|
||||
%description -n %{name}+version-compare-devel %{_description}
|
||||
|
||||
@@ -449,6 +552,10 @@ use the "version-compare" feature of the "%{crate}" crate.
|
||||
%package -n %{name}+webdav-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
Provides: crate(sccache/webdav) = 0.7.4
|
||||
Requires: cargo
|
||||
Requires: crate(sccache) = 0.7.4
|
||||
Requires: crate(sccache/opendal) = 0.7.4
|
||||
|
||||
%description -n %{name}+webdav-devel %{_description}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- sccache-0.8.1/Cargo.toml 1970-01-01T00:00:01+00:00
|
||||
+++ sccache-0.8.1/Cargo.toml 2024-07-10T16:31:31.705674+00:00
|
||||
@@ -403,13 +403,3 @@
|
||||
--- sccache-0.7.6/Cargo.toml 1970-01-01T00:00:01+00:00
|
||||
+++ sccache-0.7.6/Cargo.toml 2024-02-02T06:05:53.548100+00:00
|
||||
@@ -378,11 +378,3 @@
|
||||
[target."cfg(unix)".dependencies.daemonize]
|
||||
version = "0.5"
|
||||
|
||||
@@ -11,6 +11,4 @@
|
||||
- "handleapi",
|
||||
- "stringapiset",
|
||||
- "winnls",
|
||||
- "processenv",
|
||||
- "std",
|
||||
-]
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
From 6b8c81d1d4ac0ac562b69e7f8164c8a92dafe13a Mon Sep 17 00:00:00 2001
|
||||
From: windowsboy111 <wboy111@outlook.com>
|
||||
Date: Mon, 19 Jun 2023 10:33:20 +0800
|
||||
Subject: [PATCH] feat: add repository entry in package.json
|
||||
|
||||
---
|
||||
package.json | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/package.json b/package.json
|
||||
index 622756a..b3d3dfa 100644
|
||||
--- a/package.json
|
||||
+++ b/package.json
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
+ "repository": "github:VOICEVOX/voicevox",
|
||||
"name": "voicevox",
|
||||
"version": "999.999.999",
|
||||
"author": "Hiroshiba Kazuyuki",
|
||||
--
|
||||
2.40.1
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "voicevox.spec"
|
||||
}
|
||||
|
||||
@@ -1 +1,5 @@
|
||||
rpm.version(gh("VOICEVOX/voicevox"));
|
||||
let v = gh("VOICEVOX/voicevox");
|
||||
rpm.global("ver", v);
|
||||
let engines = get(`https://raw.githubusercontent.com/VOICEVOX/voicevox/${v}/package.json`).json().engines;
|
||||
rpm.global("nodev", find(">=([\\d.]+)", engines.node, 1));
|
||||
rpm.global("npmv", find(">=([\\d.]+)", engines.npm, 1));
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
%global nodev 20.12.2
|
||||
%global npmv 10.5.0
|
||||
%global ver 0.19.2
|
||||
%define debug_package %nil
|
||||
%global _build_id_links none
|
||||
|
||||
@@ -6,16 +9,20 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: voicevox
|
||||
Version: 0.19.2
|
||||
Version: %ver
|
||||
Release: 4%?dist
|
||||
Summary: Free Japanese text-to-speech editor
|
||||
License: LGPL-3.0
|
||||
URL: https://voicevox.hiroshiba.jp
|
||||
Source0: https://github.com/VOICEVOX/voicevox/releases/download/%version/VOICEVOX.AppImage.7z.001
|
||||
Source1: https://github.com/VOICEVOX/voicevox/releases/download/%version/VOICEVOX.AppImage.7z.002
|
||||
Source2: https://github.com/VOICEVOX/voicevox/releases/download/%version/VOICEVOX.AppImage.7z.003
|
||||
BuildRequires: p7zip-plugins
|
||||
ExclusiveArch: x86_64
|
||||
Source0: https://github.com/VOICEVOX/voicevox/archive/refs/tags/%version.tar.gz
|
||||
# requires specific node and npm version
|
||||
%ifarch x86_64
|
||||
%global a x64
|
||||
%elifarch aarch64
|
||||
%global a arm64
|
||||
%endif
|
||||
Source1: https://nodejs.org/download/release/v%nodev/node-v%nodev-linux-%a.tar.xz
|
||||
Patch0: 0001-feat-add-repository-entry-in-package.json.patch
|
||||
|
||||
%description
|
||||
VOICEVOX is a free Japanese text-to-speech software with medium output quality.
|
||||
@@ -27,28 +34,33 @@ Summary: Documentation files for voicevox (Japanese)
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
cat<<EOF > voicevox.sh
|
||||
#!/bin/sh
|
||||
/usr/share/voicevox/VOICEVOX.AppImage
|
||||
EOF
|
||||
7z x %SOURCE0
|
||||
chmod a+x VOICEVOX.AppImage
|
||||
|
||||
./VOICEVOX.AppImage --appimage-extract '*.desktop'
|
||||
./VOICEVOX.AppImage --appimage-extract 'usr/share/icons/**'
|
||||
|
||||
sed -i "s|Exec=.*|Exec=/usr/share/voicevox/VOICEVOX.AppImage|" squashfs-root/voicevox.desktop
|
||||
%autosetup -p1
|
||||
tar xf %SOURCE1
|
||||
PATH="$PATH:$PWD/node-v%nodev-linux-%a/bin/"
|
||||
npx npm@%npmv i
|
||||
|
||||
%build
|
||||
PATH="$PATH:$PWD/node-v%nodev-linux-%a/bin/"
|
||||
npx browserslist@latest --update-db
|
||||
PATH="$PATH:$PWD/node-v%nodev-linux-%a/bin/"
|
||||
npm run electron:build
|
||||
|
||||
%install
|
||||
install -Dm755 VOICEVOX.AppImage %buildroot%_datadir/voicevox/VOICEVOX.AppImage
|
||||
install -Dm755 voicevox.sh %buildroot%_bindir/voicevox
|
||||
install -Dm644 squashfs-root%_iconsdir/hicolor/0x0/apps/voicevox.png %buildroot%_iconsdir/hicolor/256x256/apps/voicevox.png
|
||||
install -Dm644 squashfs-root/voicevox.desktop %buildroot%_datadir/applications/voicevox.desktop
|
||||
rm dist_electron/linux-unpacked/README.txt # dummy
|
||||
mkdir -p %buildroot%_datadir/%name %buildroot%_bindir %buildroot%_docdir/%name/res
|
||||
mv dist_electron/linux-unpacked/* %buildroot%_datadir/%name/
|
||||
ln -s %_datadir/%name/%name %buildroot%_bindir/%name
|
||||
install -Dm644 docs/*.md %buildroot%_docdir/%name/
|
||||
install -Dm644 docs/res/* %buildroot%_docdir/%name/res/
|
||||
|
||||
%files
|
||||
%_bindir/voicevox
|
||||
%_datadir/applications/voicevox.desktop
|
||||
%_datadir/voicevox/VOICEVOX.AppImage
|
||||
%_iconsdir/hicolor/256x256/apps/voicevox.png
|
||||
%doc README.md
|
||||
%license LICENSE LGPL_LICENSE
|
||||
%_bindir/%name
|
||||
%_datadir/%name/
|
||||
|
||||
%files doc
|
||||
%doc %_docdir/%name/
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Name: elementary-appcenter
|
||||
Summary: Software Center from elementary
|
||||
Version: 7.4.0
|
||||
Release: 2%{?dist}
|
||||
Release: 1%{?dist}
|
||||
License: GPL-3.0
|
||||
|
||||
Provides: appcenter = %{version}-%{release}
|
||||
@@ -12,8 +12,6 @@ Obsoletes: appcenter < 7.2.1-2
|
||||
URL: https://github.com/elementary/appcenter
|
||||
Source0: %url/archive/%{version}/appcenter-%{version}.tar.gz
|
||||
|
||||
Patch0: pr2099.patch
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: gettext
|
||||
BuildRequires: libappstream-glib
|
||||
|
||||
@@ -1,311 +0,0 @@
|
||||
commit fce55d9373bfb82953191b32e276a2129ffcb8c1
|
||||
Author: Marius Meisenzahl <meisenzahl@users.noreply.github.com>
|
||||
Date: Wed Feb 7 00:14:43 2024 +0100
|
||||
|
||||
Add support for AppStream 1.0 (#2099)
|
||||
|
||||
diff --git a/src/Core/FlatpakBackend.vala b/src/Core/FlatpakBackend.vala
|
||||
index 98931505..10f2baab 100644
|
||||
--- a/src/Core/FlatpakBackend.vala
|
||||
+++ b/src/Core/FlatpakBackend.vala
|
||||
@@ -400,8 +400,13 @@ public class AppCenterCore.FlatpakBackend : Backend, Object {
|
||||
|
||||
var category_array = new GLib.GenericArray<AppStream.Category> ();
|
||||
category_array.add (category);
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ AppStream.utils_sort_components_into_categories (user_appstream_pool.get_components ().as_array (), category_array, false);
|
||||
+ AppStream.utils_sort_components_into_categories (system_appstream_pool.get_components ().as_array (), category_array, false);
|
||||
+#else
|
||||
AppStream.utils_sort_components_into_categories (user_appstream_pool.get_components (), category_array, false);
|
||||
AppStream.utils_sort_components_into_categories (system_appstream_pool.get_components (), category_array, false);
|
||||
+#endif
|
||||
components = category.get_components ();
|
||||
|
||||
var apps = new Gee.TreeSet<AppCenterCore.Package> ();
|
||||
@@ -417,13 +422,21 @@ public class AppCenterCore.FlatpakBackend : Backend, Object {
|
||||
var apps = new Gee.TreeSet<AppCenterCore.Package> ();
|
||||
var comps = user_appstream_pool.search (query);
|
||||
if (category == null) {
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ comps.as_array ().foreach ((comp) => {
|
||||
+#else
|
||||
comps.foreach ((comp) => {
|
||||
+#endif
|
||||
var packages = get_packages_for_component_id (comp.get_id ());
|
||||
apps.add_all (packages);
|
||||
});
|
||||
} else {
|
||||
var cat_packages = get_applications_for_category (category);
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ comps.as_array ().foreach ((comp) => {
|
||||
+#else
|
||||
comps.foreach ((comp) => {
|
||||
+#endif
|
||||
var packages = get_packages_for_component_id (comp.get_id ());
|
||||
foreach (var package in packages) {
|
||||
if (package in cat_packages) {
|
||||
@@ -435,13 +448,21 @@ public class AppCenterCore.FlatpakBackend : Backend, Object {
|
||||
|
||||
comps = system_appstream_pool.search (query);
|
||||
if (category == null) {
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ comps.as_array ().foreach ((comp) => {
|
||||
+#else
|
||||
comps.foreach ((comp) => {
|
||||
+#endif
|
||||
var packages = get_packages_for_component_id (comp.get_id ());
|
||||
apps.add_all (packages);
|
||||
});
|
||||
} else {
|
||||
var cat_packages = get_applications_for_category (category);
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ comps.as_array ().foreach ((comp) => {
|
||||
+#else
|
||||
comps.foreach ((comp) => {
|
||||
+#endif
|
||||
var packages = get_packages_for_component_id (comp.get_id ());
|
||||
foreach (var package in packages) {
|
||||
if (package in cat_packages) {
|
||||
@@ -510,7 +531,11 @@ public class AppCenterCore.FlatpakBackend : Backend, Object {
|
||||
continue;
|
||||
}
|
||||
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ if (package.component.get_developer ().get_name () == author) {
|
||||
+#else
|
||||
if (package.component.developer_name == author) {
|
||||
+#endif
|
||||
package_ids.add (package.component.id);
|
||||
|
||||
AppCenterCore.Package? user_package = null;
|
||||
@@ -1095,7 +1120,11 @@ public class AppCenterCore.FlatpakBackend : Backend, Object {
|
||||
warning ("Errors found in flatpak appdata, some components may be incomplete/missing: %s", e.message);
|
||||
} finally {
|
||||
var comp_validator = ComponentValidator.get_default ();
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ user_appstream_pool.get_components ().as_array ().foreach ((comp) => {
|
||||
+#else
|
||||
user_appstream_pool.get_components ().foreach ((comp) => {
|
||||
+#endif
|
||||
if (!comp_validator.validate (comp)) {
|
||||
return;
|
||||
}
|
||||
@@ -1133,7 +1162,11 @@ public class AppCenterCore.FlatpakBackend : Backend, Object {
|
||||
warning ("Errors found in flatpak appdata, some components may be incomplete/missing: %s", e.message);
|
||||
} finally {
|
||||
var comp_validator = ComponentValidator.get_default ();
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ system_appstream_pool.get_components ().as_array ().foreach ((comp) => {
|
||||
+#else
|
||||
system_appstream_pool.get_components ().foreach ((comp) => {
|
||||
+#endif
|
||||
if (!comp_validator.validate (comp)) {
|
||||
return;
|
||||
}
|
||||
diff --git a/src/Core/Package.vala b/src/Core/Package.vala
|
||||
index 0f9a90c4..ed141292 100644
|
||||
--- a/src/Core/Package.vala
|
||||
+++ b/src/Core/Package.vala
|
||||
@@ -306,7 +306,11 @@ public class AppCenterCore.Package : Object {
|
||||
return _author;
|
||||
}
|
||||
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ _author = component.get_developer ().get_name ();
|
||||
+#else
|
||||
_author = component.developer_name;
|
||||
+#endif
|
||||
|
||||
if (_author == null) {
|
||||
var project_group = component.project_group;
|
||||
@@ -677,7 +681,11 @@ public class AppCenterCore.Package : Object {
|
||||
}
|
||||
|
||||
try {
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ description = AppStream.markup_convert (description, TEXT);
|
||||
+#else
|
||||
description = AppStream.markup_convert_simple (description);
|
||||
+#endif
|
||||
} catch (Error e) {
|
||||
warning ("Failed to convert description to markup: %s", e.message);
|
||||
}
|
||||
@@ -919,7 +927,11 @@ public class AppCenterCore.Package : Object {
|
||||
}
|
||||
|
||||
public AppStream.Release? get_newest_release () {
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ var releases = component.get_releases_plain ().get_entries ();
|
||||
+#else
|
||||
var releases = component.get_releases ();
|
||||
+#endif
|
||||
releases.sort_with_data ((a, b) => {
|
||||
if (a.get_version () == null || b.get_version () == null) {
|
||||
if (a.get_version () != null) {
|
||||
diff --git a/src/Core/PackageKitBackend.vala b/src/Core/PackageKitBackend.vala
|
||||
index 09da4074..a108831e 100644
|
||||
--- a/src/Core/PackageKitBackend.vala
|
||||
+++ b/src/Core/PackageKitBackend.vala
|
||||
@@ -275,7 +275,11 @@ public class AppCenterCore.PackageKitBackend : Backend, Object {
|
||||
} finally {
|
||||
var new_package_list = new Gee.HashMap<string, Package> ();
|
||||
var comp_validator = ComponentValidator.get_default ();
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ appstream_pool.get_components ().as_array ().foreach ((comp) => {
|
||||
+#else
|
||||
appstream_pool.get_components ().foreach ((comp) => {
|
||||
+#endif
|
||||
if (!comp_validator.validate (comp)) {
|
||||
return;
|
||||
}
|
||||
@@ -317,7 +321,12 @@ public class AppCenterCore.PackageKitBackend : Backend, Object {
|
||||
component.set_id (id);
|
||||
component.set_origin (Package.APPCENTER_PACKAGE_ORIGIN);
|
||||
|
||||
-#if HAS_APPSTREAM_0_15
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ var components = new AppStream.ComponentBox (AppStream.ComponentBoxFlags.NONE);
|
||||
+ components.add (component);
|
||||
+
|
||||
+ appstream_pool.add_components (components);
|
||||
+#elif HAS_APPSTREAM_0_15
|
||||
var components = new GenericArray<AppStream.Component> ();
|
||||
components.add (component);
|
||||
|
||||
@@ -430,7 +439,11 @@ public class AppCenterCore.PackageKitBackend : Backend, Object {
|
||||
break;
|
||||
}
|
||||
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ if (package.component.get_developer ().get_name () == author) {
|
||||
+#else
|
||||
if (package.component.developer_name == author) {
|
||||
+#endif
|
||||
packages.add (package);
|
||||
}
|
||||
}
|
||||
@@ -447,7 +460,11 @@ public class AppCenterCore.PackageKitBackend : Backend, Object {
|
||||
|
||||
var category_array = new GLib.GenericArray<AppStream.Category> ();
|
||||
category_array.add (category);
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ AppStream.utils_sort_components_into_categories (appstream_pool.get_components ().as_array (), category_array, true);
|
||||
+#else
|
||||
AppStream.utils_sort_components_into_categories (appstream_pool.get_components (), category_array, true);
|
||||
+#endif
|
||||
components = category.get_components ();
|
||||
|
||||
var apps = new Gee.TreeSet<AppCenterCore.Package> ();
|
||||
@@ -465,7 +482,11 @@ public class AppCenterCore.PackageKitBackend : Backend, Object {
|
||||
var apps = new Gee.TreeSet<AppCenterCore.Package> ();
|
||||
var comps = appstream_pool.search (query);
|
||||
if (category == null) {
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ comps.as_array ().foreach ((comp) => {
|
||||
+#else
|
||||
comps.foreach ((comp) => {
|
||||
+#endif
|
||||
var package = get_package_for_component_id (comp.get_id ());
|
||||
if (package != null) {
|
||||
apps.add (package);
|
||||
@@ -473,7 +494,11 @@ public class AppCenterCore.PackageKitBackend : Backend, Object {
|
||||
});
|
||||
} else {
|
||||
var cat_packages = get_applications_for_category (category);
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ comps.as_array ().foreach ((comp) => {
|
||||
+#else
|
||||
comps.foreach ((comp) => {
|
||||
+#endif
|
||||
var package = get_package_for_component_id (comp.get_id ());
|
||||
if (package != null && package in cat_packages) {
|
||||
apps.add (package);
|
||||
diff --git a/src/Views/AppInfoView.vala b/src/Views/AppInfoView.vala
|
||||
index 5a3a361a..bef37f0e 100644
|
||||
--- a/src/Views/AppInfoView.vala
|
||||
+++ b/src/Views/AppInfoView.vala
|
||||
@@ -310,8 +310,16 @@ public class AppCenter.Views.AppInfoView : AppCenter.AbstractAppContainer {
|
||||
oars_flowbox.add (uncurated);
|
||||
}
|
||||
#endif
|
||||
+
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ var active_locale = "en-US";
|
||||
+ if (package_component.get_context () != null) {
|
||||
+ active_locale = package_component.get_context ().get_locale () ?? "en-US";
|
||||
+ }
|
||||
+#else
|
||||
var active_locale = package_component.get_active_locale ();
|
||||
- if (active_locale != "en_US") {
|
||||
+#endif
|
||||
+ if (active_locale != "en_US" && active_locale != "en-US") {
|
||||
var percent_translated = package_component.get_language (
|
||||
// Expects language without locale
|
||||
active_locale.split ("_")[0]
|
||||
@@ -492,7 +500,11 @@ public class AppCenter.Views.AppInfoView : AppCenter.AbstractAppContainer {
|
||||
}
|
||||
}
|
||||
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ screenshots = package_component.get_screenshots_all ();
|
||||
+#else
|
||||
screenshots = package_component.get_screenshots ();
|
||||
+#endif
|
||||
|
||||
if (screenshots.length > 0) {
|
||||
screenshot_carousel = new Hdy.Carousel () {
|
||||
@@ -1030,7 +1042,11 @@ public class AppCenter.Views.AppInfoView : AppCenter.AbstractAppContainer {
|
||||
get_app_download_size.begin ();
|
||||
|
||||
Idle.add (() => {
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ var releases = package.component.get_releases_plain ().get_entries ();
|
||||
+#else
|
||||
var releases = package.component.get_releases ();
|
||||
+#endif
|
||||
|
||||
foreach (unowned var release in releases) {
|
||||
if (release.get_version () == null) {
|
||||
@@ -1049,7 +1065,11 @@ public class AppCenter.Views.AppInfoView : AppCenter.AbstractAppContainer {
|
||||
|
||||
release_carousel.add (release_row);
|
||||
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ if (package.installed && AppStream.vercmp_simple (release.get_version (), package.get_version ()) <= 0) {
|
||||
+#else
|
||||
if (package.installed && AppStream.utils_compare_versions (release.get_version (), package.get_version ()) <= 0) {
|
||||
+#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
diff --git a/src/Widgets/ReleaseRow.vala b/src/Widgets/ReleaseRow.vala
|
||||
index 3b487914..36fcbc76 100644
|
||||
--- a/src/Widgets/ReleaseRow.vala
|
||||
+++ b/src/Widgets/ReleaseRow.vala
|
||||
@@ -116,7 +116,11 @@ public class AppCenter.Widgets.ReleaseRow : Gtk.Box {
|
||||
private string format_release_description (string? description ) {
|
||||
if (description != null) {
|
||||
try {
|
||||
+#if HAS_APPSTREAM_1_0
|
||||
+ var markup = AppStream.markup_convert (description, TEXT);
|
||||
+#else
|
||||
var markup = AppStream.markup_convert_simple (description);
|
||||
+#endif
|
||||
|
||||
if (markup.strip () != "") {
|
||||
return markup;
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index d3d558ef..df69a0bf 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -78,6 +78,10 @@ if appstream.version().version_compare('>=0.16')
|
||||
args += '--define=HAS_APPSTREAM_0_16'
|
||||
endif
|
||||
|
||||
+if appstream.version().version_compare('>=1.0')
|
||||
+ args += '--define=HAS_APPSTREAM_1_0'
|
||||
+endif
|
||||
+
|
||||
if get_option('packagekit_backend')
|
||||
appcenter_files += files(
|
||||
'Core/PackageKitBackend.vala',
|
||||
@@ -11,7 +11,7 @@ URL: https://github.com/elementary/greeter
|
||||
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
||||
Source1: 40-%{appname}.conf
|
||||
|
||||
Patch0: https://github.com/elementary/greeter/compare/7.0.0..42320c266395606b0c20782603e7407124c3f7a4.patch
|
||||
Patch0: https://github.com/elementary/greeter/commit/dbd9b6f9701f5992c3b3257c025b9cd80d041cc8.patch
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: gettext
|
||||
@@ -36,9 +36,9 @@ BuildRequires: pkgconfig(granite) >= 5.0
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
BuildRequires: pkgconfig(libhandy-1)
|
||||
BuildRequires: pkgconfig(liblightdm-gobject-1)
|
||||
BuildRequires: pkgconfig(mutter-clutter-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-14)
|
||||
BuildRequires: pkgconfig(mutter-clutter-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-13)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
|
||||
Provides: pantheon-greeter = %{version}-%{release}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
Name: elementary-terminal
|
||||
Summary: The terminal of the 21st century
|
||||
Version: 6.2.0
|
||||
Release: 1%?dist
|
||||
Version: 6.1.2
|
||||
Release: 2%{?dist}
|
||||
License: LGPL-3.0
|
||||
|
||||
URL: https://github.com/elementary/%{srcname}
|
||||
@@ -90,9 +90,16 @@ appstream-util validate-relax --nonet \
|
||||
%{_datadir}/glib-2.0/schemas/%{appname}.gschema.xml
|
||||
%{_datadir}/%{appname}/
|
||||
%{_datadir}/metainfo/%{appname}.appdata.xml
|
||||
%{_mandir}/man1/%{appname}.1.gz
|
||||
|
||||
%files fish
|
||||
%doc README.md
|
||||
%license COPYING
|
||||
%{_datadir}/fish/vendor_conf.d/pantheon_terminal_process_completion_notifications.fish
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Nov 17 2022 windowsboy111 <wboy111@outlook.com> - 6.1.1-1
|
||||
- new version
|
||||
|
||||
* Sat Oct 15 2022 windowsboy111 <windowsboy111@fyralabs.com>
|
||||
- Repackaged for Terra
|
||||
|
||||
@@ -12,7 +12,6 @@ Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
|
||||
|
||||
# patch some default settings to better match Fedora
|
||||
Patch0: 0000-Modify-default-settings-for-Fedora.patch
|
||||
Patch: https://github.com/elementary/gala/compare/7.1.3..43d1e6a01b56a84a4e752e1970a35c19402941eb.patch
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: gettext
|
||||
@@ -33,11 +32,9 @@ BuildRequires: pkgconfig(granite) >= 5.4.0
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
BuildRequires: pkgconfig(libbamf3)
|
||||
BuildRequires: pkgconfig(libcanberra)
|
||||
BuildRequires: pkgconfig(libhandy-1)
|
||||
BuildRequires: pkgconfig(sqlite3)
|
||||
BuildRequires: pkgconfig(mutter-clutter-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-14)
|
||||
BuildRequires: pkgconfig(mutter-clutter-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-13)
|
||||
|
||||
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||
|
||||
@@ -89,8 +86,8 @@ This package contains the development headers.
|
||||
|
||||
|
||||
%check
|
||||
%dnl desktop-file-validate \
|
||||
%dnl %{buildroot}/%{_sysconfdir}/xdg/autostart/gala-daemon.desktop
|
||||
desktop-file-validate \
|
||||
%{buildroot}/%{_sysconfdir}/xdg/autostart/gala-daemon.desktop
|
||||
|
||||
desktop-file-validate \
|
||||
%{buildroot}/%{_datadir}/applications/gala*.desktop
|
||||
@@ -102,7 +99,7 @@ desktop-file-validate \
|
||||
%files -f gala.lang
|
||||
%doc README.md
|
||||
%license COPYING
|
||||
%dnl %config(noreplace) %{_sysconfdir}/xdg/autostart/gala-daemon.desktop
|
||||
%config(noreplace) %{_sysconfdir}/xdg/autostart/gala-daemon.desktop
|
||||
|
||||
%{_bindir}/gala
|
||||
%{_bindir}/gala-daemon
|
||||
|
||||
@@ -9,14 +9,12 @@
|
||||
Name: switchboard-plug-about
|
||||
Summary: Switchboard System Information plug
|
||||
Version: 6.2.0
|
||||
Release: 3%{?dist}
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0-or-later
|
||||
|
||||
URL: https://github.com/elementary/switchboard-plug-about
|
||||
Source0: %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
|
||||
|
||||
Patch0: https://github.com/elementary/switchboard-plug-about/compare/6.2.0..72d7da13da2824812908276751fd3024db2dd0f8.patch
|
||||
|
||||
BuildRequires: gettext
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: meson
|
||||
|
||||
@@ -13,7 +13,7 @@ Epoch: 1
|
||||
|
||||
URL: https://github.com/elementary/wingpanel
|
||||
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
|
||||
Patch0: https://github.com/elementary/wingpanel/compare/23a3eb7c2448b4f35398116df7d01b075361ef1f..5d22d436b45decfb2a50d9a7c27f2c961f1dd39f.patch
|
||||
Patch0: https://github.com/elementary/wingpanel/commit/d6009d9f0d5c7479172093447ccceccba86ff1f3.patch
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: gettext
|
||||
@@ -29,9 +29,9 @@ BuildRequires: pkgconfig(gee-0.8)
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.32
|
||||
BuildRequires: pkgconfig(granite) >= 5.4.0
|
||||
BuildRequires: pkgconfig(gtk+-3.0) >= 3.10
|
||||
BuildRequires: pkgconfig(mutter-clutter-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-14)
|
||||
BuildRequires: pkgconfig(mutter-clutter-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-13)
|
||||
|
||||
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
# from Fedora upstream
|
||||
%global extension pop-shell
|
||||
%global uuid %{extension}@system76.com
|
||||
%global commit cfa0c55e84b7ce339e5ce83832f76fee17e99d51
|
||||
%global commit 9418d0a9af7c9b30b61ac3eeb5ca432a3ad3e651
|
||||
%global shortcommit %{lua:print(macros.commit:sub(1,7))}
|
||||
%global commit_date 20240404
|
||||
%global commit_date 20240401
|
||||
%global ver 1.2.0
|
||||
|
||||
Name: terra-gnome-shell-extension-%{extension}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
%global forgeurl https://github.com/KDE/latte-dock/
|
||||
|
||||
%global commit 4f1c08054b1f975176375f615cf9d2470f7ec7ed
|
||||
%global commit b4b16f61f1d69c994701f149e54335c40b9b201d
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date %(date '+%Y%m%d')
|
||||
%global snapshot_info %{commit_date}.%{shortcommit}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
Name: lomiri-download-manager
|
||||
Version: 0.1.3
|
||||
Release: 1%?dist
|
||||
Release: 1%{?dist}
|
||||
Summary: Upload Download Manager for Lomiri
|
||||
License: LGPLv3
|
||||
URL: https://gitlab.com/ubports/development/core/lomiri-download-manager
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-schemas
|
||||
%global commit 814c0b16b3753fef918bfe624710cb4809a690fa
|
||||
%global commit 6acdde9e890685bd5a5d6fbd4446d9e8b3e6c698
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-schemas
|
||||
Version: 0.1.5
|
||||
Release: 1%?dist
|
||||
Version: 0.1.4
|
||||
Release: 1%{?dist}
|
||||
Summary: Configuration schemas for lomiri
|
||||
License: LGPL-2.0-or-later
|
||||
URL: https://gitlab.com/ubports/development/core/lomiri-schemas
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings
|
||||
%global commit 1530c1fcfd8b8b7eec3a30e2db20cfc9946fa34a
|
||||
%global commit aacd2e4704112468b44332e8c8b1f7445651b8da
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-system-settings
|
||||
Version: 1.2.0
|
||||
Version: 1.1.0
|
||||
Release: 1%?dist
|
||||
Summary: The system settings application for Lomiri
|
||||
License: GPLv3
|
||||
URL: https://gitlab.com/ubports/development/core/lomiri-system-settings
|
||||
Source0: %{url}/-/archive/%commit/lomiri-system-settings-%commit.tar.gz
|
||||
Patch0: https://sources.debian.org/data/main/l/lomiri-system-settings/1.0.1-2/debian/patches/1001_use-maliit-keyboard-for-language-plugin.patch
|
||||
Patch1: https://sources.debian.org/data/main/l/lomiri-system-settings/1.0.1-2/debian/patches/2001_disable-current-language-switching.patch
|
||||
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc-c++
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-ui-toolkit
|
||||
%global commit 8f490672f9853278b0aec6435a68d56b9eaf8207
|
||||
%global commit 454d980c352f3cea725458ff8a3d04ae686d2a96
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-ui-toolkit
|
||||
Version: 1.3.5100
|
||||
Release: 1%?dist
|
||||
Version: 1.3.5012
|
||||
Release: 1%{?dist}
|
||||
Summary: QML components to ease the creation of beautiful applications in QML for Lomiri
|
||||
|
||||
License: LGPL-3.0
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
Name: lomiri-url-dispatcher
|
||||
Version: 0.1.3
|
||||
Release: 2%{?dist}
|
||||
Release: 1%{?dist}
|
||||
Summary: A small library for handling URLs over dbus
|
||||
|
||||
License: LGPL-3.0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri
|
||||
%global commit a083a14fe65105fc1996ceb1b92165ca3b0cb94e
|
||||
%global commit 426b9f3436938f149490cee340e1fab79ee7b650
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri
|
||||
|
||||
@@ -1,142 +0,0 @@
|
||||
From 4d44531c8f624f5b479c3ff23e8fecc67eb848ab Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy Linton <jeremy.linton@arm.com>
|
||||
Date: Fri, 22 Oct 2021 14:51:54 -0500
|
||||
Subject: [PATCH] Delay for logind, and fallback to seat0
|
||||
|
||||
There is systemd/logind race with when restarting
|
||||
sddm that causes logind1 not to be available. Previously
|
||||
this meant the seat0 was immediately created regardless
|
||||
of the state of CanGraphical.
|
||||
|
||||
Fixing this, though we still want seat0 to be started
|
||||
if none of the seats appear to be graphical. Presumably
|
||||
there are some graphics on the machine, otherwise
|
||||
why run sddm? Wait a bit, and create seat0 anyway. If
|
||||
this fails the output from Xorg should tell us why. This
|
||||
is generally a better strategy than what happens a good
|
||||
amount of time now, where sddm is started and silent about
|
||||
why the screen is blank.
|
||||
|
||||
References:
|
||||
* https://bugzilla.redhat.com/2011991
|
||||
* https://bugzilla.redhat.com/2016310
|
||||
|
||||
Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
|
||||
---
|
||||
src/daemon/LogindDBusTypes.cpp | 31 +++++++++++++++++++++----------
|
||||
src/daemon/SeatManager.cpp | 22 ++++++++++++++++++++++
|
||||
src/daemon/SeatManager.h | 1 +
|
||||
3 files changed, 44 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/daemon/LogindDBusTypes.cpp b/src/daemon/LogindDBusTypes.cpp
|
||||
index 011bb7f..6255c69 100644
|
||||
--- a/src/daemon/LogindDBusTypes.cpp
|
||||
+++ b/src/daemon/LogindDBusTypes.cpp
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
+#include <unistd.h>
|
||||
+
|
||||
class LogindPathInternal {
|
||||
public:
|
||||
LogindPathInternal();
|
||||
@@ -46,17 +48,26 @@ LogindPathInternal::LogindPathInternal()
|
||||
qRegisterMetaType<UserInfoList>("UserInfoList");
|
||||
qDBusRegisterMetaType<UserInfoList>();
|
||||
|
||||
- if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.login1"))) {
|
||||
- qDebug() << "Logind interface found";
|
||||
- available = true;
|
||||
- serviceName = QStringLiteral("org.freedesktop.login1");
|
||||
- managerPath = QStringLiteral("/org/freedesktop/login1");
|
||||
- managerIfaceName = QStringLiteral("org.freedesktop.login1.Manager");
|
||||
- seatIfaceName = QStringLiteral("org.freedesktop.login1.Seat");
|
||||
- sessionIfaceName = QStringLiteral("org.freedesktop.login1.Session");
|
||||
- userIfaceName = QStringLiteral("org.freedesktop.login1.User");
|
||||
- return;
|
||||
+#ifdef HAVE_SYSTEMD
|
||||
+ // systemd-logind should be running, although because it takes a few moments to restart after
|
||||
+ // systemctl isolate calls, it may not yet be running. Wait a few seconds for it, while blocking everything else.
|
||||
+ int logind_wait_seconds = 50;
|
||||
+ while (logind_wait_seconds--) {
|
||||
+ if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.login1"))) {
|
||||
+ qDebug() << "Logind interface found";
|
||||
+ available = true;
|
||||
+ serviceName = QStringLiteral("org.freedesktop.login1");
|
||||
+ managerPath = QStringLiteral("/org/freedesktop/login1");
|
||||
+ managerIfaceName = QStringLiteral("org.freedesktop.login1.Manager");
|
||||
+ seatIfaceName = QStringLiteral("org.freedesktop.login1.Seat");
|
||||
+ sessionIfaceName = QStringLiteral("org.freedesktop.login1.Session");
|
||||
+ userIfaceName = QStringLiteral("org.freedesktop.login1.User");
|
||||
+ return;
|
||||
+ }
|
||||
+ qDebug() << "Sleeping for systemd-logind";
|
||||
+ usleep(100000);
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.ConsoleKit"))) {
|
||||
qDebug() << "Console kit interface found";
|
||||
diff --git a/src/daemon/SeatManager.cpp b/src/daemon/SeatManager.cpp
|
||||
index bd207e6..39d8b85 100644
|
||||
--- a/src/daemon/SeatManager.cpp
|
||||
+++ b/src/daemon/SeatManager.cpp
|
||||
@@ -26,6 +26,9 @@
|
||||
#include <QDBusMessage>
|
||||
#include <QDBusPendingReply>
|
||||
#include <QDBusContext>
|
||||
+#include <QDebug>
|
||||
+#include <QFileInfo>
|
||||
+#include <QTimer>
|
||||
|
||||
#include "LogindDBusTypes.h"
|
||||
|
||||
@@ -115,6 +118,8 @@ namespace SDDM {
|
||||
|
||||
QDBusConnection::systemBus().connect(Logind::serviceName(), Logind::managerPath(), Logind::managerIfaceName(), QStringLiteral("SeatNew"), this, SLOT(logindSeatAdded(QString,QDBusObjectPath)));
|
||||
QDBusConnection::systemBus().connect(Logind::serviceName(), Logind::managerPath(), Logind::managerIfaceName(), QStringLiteral("SeatRemoved"), this, SLOT(logindSeatRemoved(QString,QDBusObjectPath)));
|
||||
+
|
||||
+ QTimer::singleShot(5000, this, &SeatManager::checkSeat);
|
||||
}
|
||||
|
||||
void SeatManager::createSeat(const QString &name) {
|
||||
@@ -152,6 +157,23 @@ namespace SDDM {
|
||||
m_seats.value(name)->createDisplay(Display::defaultDisplayServerType());
|
||||
}
|
||||
|
||||
+ // this is a bit hacky, but linux DRM drivers
|
||||
+ // won't initially be available so there is a race
|
||||
+ // between determing if a efifb/etc graphical object
|
||||
+ // is the only graphics on the machine, or a DRM driver
|
||||
+ // will take over the display. So we will hang out for a few
|
||||
+ // seconds and if none of the seats are declared cangraphical
|
||||
+ // its possible the only graphics on the machine don't have
|
||||
+ // a drm driver.
|
||||
+ void SeatManager::checkSeat(void) {
|
||||
+ if (m_seats.isEmpty()) {
|
||||
+ //if (QFileInfo::exists(QStringLiteral("/dev/fb0"))) {
|
||||
+ qWarning() << "No graphical seats found, attempt to start one on the main console anyway...";
|
||||
+ createSeat(QStringLiteral("seat0"));
|
||||
+ //}
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
void SDDM::SeatManager::logindSeatAdded(const QString& name, const QDBusObjectPath& objectPath)
|
||||
{
|
||||
auto logindSeat = new LogindSeat(name, objectPath);
|
||||
diff --git a/src/daemon/SeatManager.h b/src/daemon/SeatManager.h
|
||||
index b2f9796..aa43047 100644
|
||||
--- a/src/daemon/SeatManager.h
|
||||
+++ b/src/daemon/SeatManager.h
|
||||
@@ -49,6 +49,7 @@ namespace SDDM {
|
||||
private:
|
||||
QHash<QString, Seat *> m_seats; //these will exist only for graphical seats
|
||||
QHash<QString, LogindSeat*> m_systemSeats; //these will exist for all seats
|
||||
+ void checkSeat(void);
|
||||
};
|
||||
}
|
||||
|
||||
--
|
||||
2.39.2
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
This scripts dir contains only samples, but are generally not used directly.
|
||||
In practice, sddm runtime uses items under /etc/sddm by default
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "terra-sddm.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
diff -up sddm-0.18.0/services/sddm.service.in.env sddm-0.18.0/services/sddm.service.in
|
||||
--- sddm-0.18.0/services/sddm.service.in.env 2018-07-18 05:31:40.000000000 -0500
|
||||
+++ sddm-0.18.0/services/sddm.service.in 2019-03-14 08:23:22.095498405 -0500
|
||||
@@ -7,6 +7,7 @@ After=systemd-user-sessions.service gett
|
||||
[Service]
|
||||
ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/sddm
|
||||
Restart=always
|
||||
+EnvironmentFile=-/etc/sysconfig/sddm
|
||||
|
||||
[Install]
|
||||
Alias=display-manager.service
|
||||
@@ -1,53 +0,0 @@
|
||||
diff --git a/src/common/Configuration.h b/src/common/Configuration.h
|
||||
index 54bcace..9b8fa22 100644
|
||||
--- a/src/common/Configuration.h
|
||||
+++ b/src/common/Configuration.h
|
||||
@@ -37,9 +37,8 @@ namespace SDDM {
|
||||
enum NumState { NUM_NONE, NUM_SET_ON, NUM_SET_OFF };
|
||||
|
||||
// Name Type Default value Description
|
||||
- // TODO: Change default to x11-user in a future release
|
||||
- Entry(DisplayServer, QString, _S("x11"), _S("Which display server should be used.\n"
|
||||
- "Valid values are: x11, x11-user, wayland. Wayland support is experimental"));
|
||||
+ Entry(DisplayServer, QString, _S("wayland"), _S("Which display server should be used.\n"
|
||||
+ "Valid values are: x11, x11-user, wayland."));
|
||||
Entry(HaltCommand, QString, _S(HALT_COMMAND), _S("Halt command"));
|
||||
Entry(RebootCommand, QString, _S(REBOOT_COMMAND), _S("Reboot command"));
|
||||
Entry(Numlock, NumState, NUM_NONE, _S("Initial NumLock state. Can be on, off or none.\n"
|
||||
@@ -51,7 +50,7 @@ namespace SDDM {
|
||||
// Name Entries (but it's a regular class again)
|
||||
Section(Theme,
|
||||
Entry(ThemeDir, QString, _S(DATA_INSTALL_DIR "/themes"), _S("Theme directory path"));
|
||||
- Entry(Current, QString, _S(""), _S("Current theme name"));
|
||||
+ Entry(Current, QString, _S("01-breeze-fedora"), _S("Current theme name"));
|
||||
Entry(FacesDir, QString, _S(DATA_INSTALL_DIR "/faces"), _S("Global directory for user avatars\n"
|
||||
"The files should be named <username>.face.icon"));
|
||||
Entry(CursorTheme, QString, QString(), _S("Cursor theme used in the greeter"));
|
||||
@@ -71,9 +70,9 @@ namespace SDDM {
|
||||
Entry(SessionDir, QStringList, {_S("/usr/local/share/xsessions"),
|
||||
_S("/usr/share/xsessions")}, _S("Comma-separated list of directories containing available X sessions"));
|
||||
Entry(SessionCommand, QString, _S(SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session"));
|
||||
- Entry(SessionLogFile, QString, _S(".local/share/sddm/xorg-session.log"), _S("Path to the user session log file"));
|
||||
- Entry(DisplayCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xsetup"), _S("Path to a script to execute when starting the display server"));
|
||||
- Entry(DisplayStopCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xstop"), _S("Path to a script to execute when stopping the display server"));
|
||||
+ Entry(SessionLogFile, QString, _S(".cache/xsession-errors"), _S("Path to the user session log file"));
|
||||
+ Entry(DisplayCommand, QString, _S(SYS_CONFIG_DIR "/sddm/Xsetup"), _S("Path to a script to execute when starting the display server"));
|
||||
+ Entry(DisplayStopCommand, QString, _S(SYS_CONFIG_DIR "/sddm/Xstop"), _S("Path to a script to execute when stopping the display server"));
|
||||
Entry(EnableHiDPI, bool, true, _S("Enable Qt's automatic high-DPI scaling"));
|
||||
);
|
||||
|
||||
@@ -82,12 +81,12 @@ namespace SDDM {
|
||||
Entry(SessionDir, QStringList, {_S("/usr/local/share/wayland-sessions"),
|
||||
_S("/usr/share/wayland-sessions")}, _S("Comma-separated list of directories containing available Wayland sessions"));
|
||||
Entry(SessionCommand, QString, _S(WAYLAND_SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session"));
|
||||
- Entry(SessionLogFile, QString, _S(".local/share/sddm/wayland-session.log"),_S("Path to the user session log file"));
|
||||
+ Entry(SessionLogFile, QString, _S(".cache/wayland-errors"), _S("Path to the user session log file"));
|
||||
Entry(EnableHiDPI, bool, true, _S("Enable Qt's automatic high-DPI scaling"));
|
||||
);
|
||||
|
||||
Section(Users,
|
||||
- Entry(DefaultPath, QString, _S("/usr/local/bin:/usr/bin:/bin"), _S("Default $PATH for logged in users"));
|
||||
+ Entry(DefaultPath, QString, _S("/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"), _S("Default $PATH for logged in users"));
|
||||
Entry(MinimumUid, int, UID_MIN, _S("Minimum user id for displayed users"));
|
||||
Entry(MaximumUid, int, UID_MAX, _S("Maximum user id for displayed users"));
|
||||
Entry(HideUsers, QStringList, QStringList(), _S("Comma-separated list of users that should not be listed"));
|
||||
@@ -1,67 +0,0 @@
|
||||
From 52175648f4e1b415f93b24a3ef970983024659f2 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <neal@gompa.dev>
|
||||
Date: Wed, 28 Feb 2024 16:47:16 -0500
|
||||
Subject: [PATCH] Default to Qt6 and always use versioned greeters
|
||||
|
||||
Distributors can handle creating an unversioned name if necessary.
|
||||
---
|
||||
src/common/ThemeMetadata.cpp | 4 ++--
|
||||
src/daemon/Greeter.cpp | 3 +--
|
||||
src/greeter/CMakeLists.txt | 9 +--------
|
||||
3 files changed, 4 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/src/common/ThemeMetadata.cpp b/src/common/ThemeMetadata.cpp
|
||||
index 2cb3762..003056a 100644
|
||||
--- a/src/common/ThemeMetadata.cpp
|
||||
+++ b/src/common/ThemeMetadata.cpp
|
||||
@@ -28,7 +28,7 @@ namespace SDDM {
|
||||
QString mainScript { QStringLiteral("Main.qml") };
|
||||
QString configFile;
|
||||
QString translationsDirectory { QStringLiteral(".") };
|
||||
- int qtVersion = 5;
|
||||
+ int qtVersion = 6;
|
||||
};
|
||||
|
||||
ThemeMetadata::ThemeMetadata(const QString &path, QObject *parent) : QObject(parent), d(new ThemeMetadataPrivate()) {
|
||||
@@ -61,6 +61,6 @@ namespace SDDM {
|
||||
d->mainScript = settings.value(QStringLiteral("SddmGreeterTheme/MainScript"), QStringLiteral("Main.qml")).toString();
|
||||
d->configFile = settings.value(QStringLiteral("SddmGreeterTheme/ConfigFile"), QStringLiteral("theme.conf")).toString();
|
||||
d->translationsDirectory = settings.value(QStringLiteral("SddmGreeterTheme/TranslationsDirectory"), QStringLiteral(".")).toString();
|
||||
- d->qtVersion = settings.value(QStringLiteral("SddmGreeterTheme/QtVersion"), 5).toInt();
|
||||
+ d->qtVersion = settings.value(QStringLiteral("SddmGreeterTheme/QtVersion"), 6).toInt();
|
||||
}
|
||||
}
|
||||
diff --git a/src/daemon/Greeter.cpp b/src/daemon/Greeter.cpp
|
||||
index 07fccde..5a956b6 100644
|
||||
--- a/src/daemon/Greeter.cpp
|
||||
+++ b/src/daemon/Greeter.cpp
|
||||
@@ -82,8 +82,7 @@ namespace SDDM {
|
||||
|
||||
QString Greeter::greeterPathForQt(int qtVersion)
|
||||
{
|
||||
- const QString suffix = qtVersion == 5 ? QString() : QStringLiteral("-qt%1").arg(qtVersion);
|
||||
- return QStringLiteral(BIN_INSTALL_DIR "/sddm-greeter%1").arg(suffix);
|
||||
+ return QStringLiteral(BIN_INSTALL_DIR "/sddm-greeter-qt%1").arg(qtVersion);
|
||||
}
|
||||
|
||||
bool Greeter::start() {
|
||||
diff --git a/src/greeter/CMakeLists.txt b/src/greeter/CMakeLists.txt
|
||||
index 72769e4..524368d 100644
|
||||
--- a/src/greeter/CMakeLists.txt
|
||||
+++ b/src/greeter/CMakeLists.txt
|
||||
@@ -1,11 +1,4 @@
|
||||
-if(QT_MAJOR_VERSION EQUAL "5")
|
||||
- # Keep the unversioned name for Qt5. When upgrading SDDM, the old daemon
|
||||
- # might still be running and only know about "sddm-greeter". Keeping the
|
||||
- # previous name around also helps users calling it directly.
|
||||
- set(GREETER_TARGET sddm-greeter)
|
||||
-else()
|
||||
- set(GREETER_TARGET sddm-greeter-qt${QT_MAJOR_VERSION})
|
||||
-endif()
|
||||
+set(GREETER_TARGET sddm-greeter-qt${QT_MAJOR_VERSION})
|
||||
|
||||
message(STATUS "Building greeter for Qt ${QT_MAJOR_VERSION} as ${GREETER_TARGET}")
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,20 +0,0 @@
|
||||
#%PAM-1.0
|
||||
auth required pam_env.so
|
||||
auth required pam_permit.so
|
||||
auth include postlogin
|
||||
|
||||
account required pam_nologin.so
|
||||
account include system-auth
|
||||
|
||||
password include system-auth
|
||||
|
||||
session required pam_selinux.so close
|
||||
session required pam_loginuid.so
|
||||
session required pam_selinux.so open
|
||||
session optional pam_keyinit.so force revoke
|
||||
session required pam_namespace.so
|
||||
session include system-auth
|
||||
-session optional pam_gnome_keyring.so auto_start
|
||||
-session optional pam_kwallet5.so auto_start
|
||||
-session optional pam_kwallet.so auto_start
|
||||
session include postlogin
|
||||
@@ -1,17 +0,0 @@
|
||||
#%PAM-1.0
|
||||
|
||||
# Load environment from /etc/environment and ~/.pam_environment
|
||||
auth required pam_env.so
|
||||
|
||||
# Always let the greeter start without authentication
|
||||
auth required pam_permit.so
|
||||
|
||||
# No action required for account management
|
||||
account required pam_permit.so
|
||||
|
||||
# Can't change password
|
||||
password required pam_deny.so
|
||||
|
||||
# Setup session
|
||||
session required pam_unix.so
|
||||
session optional pam_systemd.so
|
||||
@@ -1,12 +0,0 @@
|
||||
diff --git a/services/sddm-tmpfiles.conf.in b/services/sddm-tmpfiles.conf.in
|
||||
index fb45553..6acfb6c 100644
|
||||
--- a/services/sddm-tmpfiles.conf.in
|
||||
+++ b/services/sddm-tmpfiles.conf.in
|
||||
@@ -1,5 +1,7 @@
|
||||
# Home dir of the sddm user, also contains state.conf
|
||||
d ${STATE_DIR} 0750 sddm sddm
|
||||
+# Workaround for https://pagure.io/fedora-kde/SIG/issue/87
|
||||
+Z ${STATE_DIR} - sddm sddm
|
||||
# This contains X11 auth files passed to Xorg and the greeter
|
||||
d ${RUNTIME_DIR} 0711 root root
|
||||
# Sockets for IPC
|
||||
@@ -1,2 +0,0 @@
|
||||
#Type Name ID GECOS Home directory Shell
|
||||
u sddm - "SDDM Greeter Account" /var/lib/sddm -
|
||||
@@ -1,2 +0,0 @@
|
||||
[General]
|
||||
DisplayServer=x11
|
||||
@@ -1,122 +0,0 @@
|
||||
[Autologin]
|
||||
# Whether sddm should automatically log back into sessions when they exit
|
||||
#Relogin=false
|
||||
|
||||
# Name of session file for autologin session
|
||||
#Session=
|
||||
|
||||
# Username for autologin session
|
||||
#User=
|
||||
|
||||
|
||||
[General]
|
||||
# Enable Qt's automatic high-DPI scaling
|
||||
#EnableHiDPI=false
|
||||
|
||||
# Halt command
|
||||
#HaltCommand=/usr/bin/systemctl poweroff
|
||||
|
||||
# Initial NumLock state. Can be on, off or none.
|
||||
# If property is set to none, numlock won't be changed
|
||||
# NOTE: Currently ignored if autologin is enabled.
|
||||
#Numlock=none
|
||||
|
||||
# Reboot command
|
||||
#RebootCommand=/usr/bin/systemctl reboot
|
||||
|
||||
# Control x11/wayland startup
|
||||
# DisplayServer=wayland
|
||||
|
||||
[Theme]
|
||||
# Current theme name
|
||||
#Current=01-breeze-fedora
|
||||
|
||||
# Cursor theme used in the greeter
|
||||
#CursorTheme=
|
||||
|
||||
# Number of users to use as threshold
|
||||
# above which avatars are disabled
|
||||
# unless explicitly enabled with EnableAvatars
|
||||
#DisableAvatarsThreshold=7
|
||||
|
||||
# Enable display of custom user avatars
|
||||
#EnableAvatars=true
|
||||
|
||||
# Global directory for user avatars
|
||||
# The files should be named <username>.face.icon
|
||||
#FacesDir=/usr/share/sddm/faces
|
||||
|
||||
# Theme directory path
|
||||
#ThemeDir=/usr/share/sddm/themes
|
||||
|
||||
|
||||
[Users]
|
||||
# Default $PATH for logged in users
|
||||
#DefaultPath=/usr/local/bin:/usr/bin:/bin
|
||||
|
||||
# Comma-separated list of shells.
|
||||
# Users with these shells as their default won't be listed
|
||||
#HideShells=
|
||||
|
||||
# Comma-separated list of users that should not be listed
|
||||
#HideUsers=
|
||||
|
||||
# Maximum user id for displayed users
|
||||
#MaximumUid=60000
|
||||
|
||||
# Minimum user id for displayed users
|
||||
#MinimumUid=1000
|
||||
|
||||
# Remember the session of the last successfully logged in user
|
||||
#RememberLastSession=true
|
||||
|
||||
# Remember the last successfully logged in user
|
||||
#RememberLastUser=true
|
||||
|
||||
|
||||
[Wayland]
|
||||
# Path to a script to execute when starting the desktop session
|
||||
#SessionCommand=/etc/sddm/wayland-session
|
||||
|
||||
# Directory containing available Wayland sessions
|
||||
#SessionDir=/usr/share/wayland-sessions
|
||||
|
||||
# Path to the user session log file
|
||||
#SessionLogFile=.cache/wayland-errors
|
||||
|
||||
|
||||
[X11]
|
||||
# Path to a script to execute when starting the display server
|
||||
#DisplayCommand=/etc/sddm/Xsetup
|
||||
|
||||
# Path to a script to execute when stopping the display server
|
||||
#DisplayStopCommand=/etc/sddm/Xstop
|
||||
|
||||
# The lowest virtual terminal number that will be used.
|
||||
#MinimumVT=1
|
||||
|
||||
# Arguments passed to the X server invocation
|
||||
#ServerArguments=-nolisten tcp
|
||||
|
||||
# Path to X server binary
|
||||
#ServerPath=/usr/bin/X
|
||||
|
||||
# Path to a script to execute when starting the desktop session
|
||||
#SessionCommand=/etc/X11/xinit/Xsession
|
||||
|
||||
# Directory containing available X sessions
|
||||
#SessionDir=/usr/share/xsessions
|
||||
|
||||
# Path to the user session log file
|
||||
#SessionLogFile=.cache/xsession-errors
|
||||
|
||||
# Path to the Xauthority file
|
||||
#UserAuthFile=.Xauthority
|
||||
|
||||
# Path to xauth binary
|
||||
#XauthPath=/usr/bin/xauth
|
||||
|
||||
# Path to Xephyr binary
|
||||
#XephyrPath=/usr/bin/Xephyr
|
||||
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
auth [success=done ignore=ignore default=bad] pam_selinux_permit.so
|
||||
auth substack password-auth
|
||||
-auth optional pam_gnome_keyring.so
|
||||
-auth optional pam_kwallet5.so
|
||||
-auth optional pam_kwallet.so
|
||||
auth include postlogin
|
||||
|
||||
account required pam_nologin.so
|
||||
account include password-auth
|
||||
|
||||
password include password-auth
|
||||
|
||||
session required pam_selinux.so close
|
||||
session required pam_loginuid.so
|
||||
-session optional pam_ck_connector.so
|
||||
session required pam_selinux.so open
|
||||
session optional pam_keyinit.so force revoke
|
||||
session required pam_namespace.so
|
||||
session include password-auth
|
||||
-session optional pam_gnome_keyring.so auto_start
|
||||
-session optional pam_kwallet5.so auto_start
|
||||
-session optional pam_kwallet.so auto_start
|
||||
session include postlogin
|
||||
@@ -1,5 +0,0 @@
|
||||
# workaround https://bugzilla.redhat.com/1686675
|
||||
# see also https://bugreports.qt.io/browse/QTBUG-58508
|
||||
QML_DISABLE_DISK_CACHE=1
|
||||
# enable qDebug messages for debug build
|
||||
# QT_LOGGING_RULES="*.debug=true"
|
||||
@@ -1,293 +0,0 @@
|
||||
# Disable X11 for RHEL 10+
|
||||
%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10]
|
||||
|
||||
Name: terra-sddm
|
||||
Version: 0.21.0
|
||||
Release: 5%{?dist}
|
||||
License: GPL-2.0-or-later
|
||||
Summary: QML based desktop and login manager
|
||||
Provides: sddm = %version-%release
|
||||
|
||||
URL: https://github.com/sddm/sddm
|
||||
Source0: %{url}/archive/v%{version}/sddm-%{version}.tar.gz
|
||||
|
||||
## upstream patches
|
||||
# Port all themes to Qt 6
|
||||
# Submitted: https://github.com/sddm/sddm/pull/1876
|
||||
Patch1: sddm-PR1876.patch
|
||||
|
||||
## upstreamable patches
|
||||
# Fix race with logind restart, and start seat0 if !CanGraphical on timer
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2011991
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2016310
|
||||
# Submmited: https://github.com/sddm/sddm/pull/1494
|
||||
Patch11: 0001-Delay-for-logind-and-fallback-to-seat0.patch
|
||||
|
||||
## downstream patches
|
||||
Patch101: sddm-0.20.0-fedora_config.patch
|
||||
|
||||
# sddm.service: +EnvironmentFile=-/etc/sysconfig/sddm
|
||||
Patch103: sddm-0.18.0-environment_file.patch
|
||||
|
||||
# Workaround for https://pagure.io/fedora-kde/SIG/issue/87
|
||||
Patch104: sddm-rpmostree-tmpfiles-hack.patch
|
||||
|
||||
# Workaround lack of Qt 5 greeter build
|
||||
Patch105: sddm-0.21.0-qt6greeter.patch
|
||||
|
||||
# https://github.com/sddm/sddm/pull/1779
|
||||
Patch106: https://github.com/sddm/sddm/pull/1779.patch
|
||||
|
||||
# Shamelessly stolen from gdm
|
||||
Source10: sddm.pam
|
||||
# Shamelessly stolen from gdm
|
||||
Source11: sddm-autologin.pam
|
||||
# Previously included in sddm sources
|
||||
Source12: sddm-greeter.pam
|
||||
# sample sddm.conf generated with sddm --example-config, and entries commented-out
|
||||
Source13: sddm.conf
|
||||
# README.scripts
|
||||
Source14: README.scripts
|
||||
# sysconfig snippet
|
||||
Source15: sddm.sysconfig
|
||||
# sddm x11 override config
|
||||
Source16: sddm-x11.conf
|
||||
# sysusers config file. note these are shipped in the upstream tarball
|
||||
# but we cannot use the files from the tarball for %pre scriptlet
|
||||
# generation, so we duplicate them as source files for that purpose;
|
||||
# this is an ugly hack that should be removed if it becomes possible.
|
||||
# see https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/TFDMAU7KLMSQTKPJELHSM6PFVXIZ56GK/
|
||||
Source17: sddm-systemd-sysusers.conf
|
||||
|
||||
|
||||
Provides: service(graphical-login) = sddm
|
||||
|
||||
BuildRequires: cmake >= 2.8.8
|
||||
BuildRequires: extra-cmake-modules
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
BuildRequires: pkgconfig(xcb)
|
||||
BuildRequires: pkgconfig(xcb-xkb)
|
||||
# sometimes python-docutils, sometimes python2-docutils, sometimes python3-docutils.
|
||||
# use path then for sanity
|
||||
BuildRequires: /usr/bin/rst2man
|
||||
BuildRequires: cmake(Qt6Core)
|
||||
BuildRequires: cmake(Qt6DBus)
|
||||
BuildRequires: cmake(Qt6Gui)
|
||||
BuildRequires: cmake(Qt6Qml)
|
||||
BuildRequires: cmake(Qt6Quick)
|
||||
BuildRequires: cmake(Qt6LinguistTools)
|
||||
BuildRequires: cmake(Qt6Test)
|
||||
BuildRequires: cmake(Qt6QuickTest)
|
||||
# verify presence to pull defaults from /etc/login.defs
|
||||
BuildRequires: shadow-utils
|
||||
BuildRequires: systemd
|
||||
BuildRequires: systemd-rpm-macros
|
||||
|
||||
Obsoletes: kde-settings-sddm < 20-5
|
||||
|
||||
%if 0%{?fedora}
|
||||
# for /usr/share/backgrounds/default.png
|
||||
BuildRequires: desktop-backgrounds-compat
|
||||
BuildRequires: GraphicsMagick
|
||||
Requires: desktop-backgrounds-compat
|
||||
# for /usr/share/pixmaps/system-logo-white.png
|
||||
Requires: system-logos
|
||||
%endif
|
||||
Requires: systemd
|
||||
%if %{with x11}
|
||||
Requires: xorg-x11-xinit
|
||||
%endif
|
||||
%{?systemd_requires}
|
||||
|
||||
Requires(pre): shadow-utils
|
||||
|
||||
# Virtual dependency for sddm greeter setup
|
||||
Requires: sddm-greeter-displayserver
|
||||
Suggests: sddm-wayland-generic
|
||||
|
||||
%description
|
||||
SDDM is a modern graphical display manager aiming to be fast, simple and
|
||||
beautiful. It uses modern technologies like QtQuick, which in turn gives the
|
||||
designer the ability to create smooth, animated user interfaces.
|
||||
|
||||
%package wayland-generic
|
||||
Summary: Generic Wayland SDDM greeter configuration
|
||||
Provides: sddm-greeter-displayserver
|
||||
Conflicts: sddm-greeter-displayserver
|
||||
Requires: weston
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
|
||||
%description wayland-generic
|
||||
This package contains configuration and dependencies for SDDM
|
||||
to use Weston for the greeter display server.
|
||||
|
||||
This is the generic default Wayland configuration provided
|
||||
by SDDM.
|
||||
|
||||
%if %{with x11}
|
||||
%package x11
|
||||
Summary: X11 SDDM greeter configuration
|
||||
Provides: sddm-greeter-displayserver
|
||||
Conflicts: sddm-greeter-displayserver
|
||||
# This will eventually go away...
|
||||
Provides: deprecated()
|
||||
Requires: xorg-x11-server-Xorg
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Recommends: qt6-qtvirtualkeyboard
|
||||
BuildArch: noarch
|
||||
|
||||
%description x11
|
||||
This package contains configuration and dependencies for SDDM
|
||||
to use X11 for the greeter display server.
|
||||
%endif
|
||||
|
||||
%package themes
|
||||
Summary: SDDM Themes
|
||||
# for upgrade path
|
||||
Obsoletes: sddm < 0.2.0-0.12
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
%description themes
|
||||
A collection of sddm themes, including: elarun, maldives, maya
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1 %{?commitdate:-n sddm-%{commit}} -n sddm-%version
|
||||
|
||||
%if 0%{?fedora}
|
||||
#FIXME/TODO: use version on filesystem instead of using a bundled copy
|
||||
cp -v /usr/share/backgrounds/default.png \
|
||||
src/greeter/theme/background.png
|
||||
ls -sh src/greeter/theme/background.png
|
||||
gm mogrify -resize 1920x1200 src/greeter/theme/background.png
|
||||
ls -sh src/greeter/theme/background.png
|
||||
%endif
|
||||
|
||||
|
||||
%build
|
||||
%cmake \
|
||||
-DBUILD_WITH_QT6:BOOL=ON \
|
||||
-DBUILD_MAN_PAGES:BOOL=ON \
|
||||
-DCMAKE_BUILD_TYPE:STRING="Release" \
|
||||
-DENABLE_JOURNALD:BOOL=ON \
|
||||
-DSESSION_COMMAND:PATH=/etc/X11/xinit/Xsession \
|
||||
-DWAYLAND_SESSION_COMMAND:PATH=/etc/sddm/wayland-session
|
||||
|
||||
%cmake_build
|
||||
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/sddm.conf.d
|
||||
mkdir -p %{buildroot}%{_prefix}/lib/sddm/sddm.conf.d
|
||||
install -Dpm 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/sddm
|
||||
install -Dpm 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/pam.d/sddm-autologin
|
||||
install -Dpm 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/sddm-greeter
|
||||
install -Dpm 644 %{SOURCE13} %{buildroot}%{_sysconfdir}/sddm.conf
|
||||
install -Dpm 644 %{SOURCE14} %{buildroot}%{_datadir}/sddm/scripts/README.scripts
|
||||
install -Dpm 644 %{SOURCE15} %{buildroot}%{_sysconfdir}/sysconfig/sddm
|
||||
%if %{with x11}
|
||||
install -Dpm 644 %{SOURCE16} %{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/x11.conf
|
||||
%endif
|
||||
mkdir -p %{buildroot}/run/sddm
|
||||
mkdir -p %{buildroot}%{_localstatedir}/lib/sddm
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/sddm/
|
||||
cp -a %{buildroot}%{_datadir}/sddm/scripts/* \
|
||||
%{buildroot}%{_sysconfdir}/sddm/
|
||||
# we're using /etc/X11/xinit/Xsession (by default) instead
|
||||
rm -fv %{buildroot}%{_sysconfdir}/sddm/Xsession
|
||||
|
||||
# De-conflict the dbus file
|
||||
mv %{buildroot}%{_datadir}/dbus-1/system.d/org.freedesktop.DisplayManager.conf \
|
||||
%{buildroot}%{_datadir}/dbus-1/system.d/org.freedesktop.DisplayManager-sddm.conf
|
||||
|
||||
%if 0%{?fedora} && 0%{?fedora} < 43
|
||||
# Provide unversioned greeter until F40 is EOL
|
||||
ln -sr %{buildroot}%{_bindir}/sddm-greeter-qt6 %{buildroot}%{_bindir}/sddm-greeter
|
||||
%endif
|
||||
|
||||
|
||||
%pre
|
||||
%sysusers_create_compat %{SOURCE17}
|
||||
|
||||
%post
|
||||
%systemd_post sddm.service
|
||||
# handle incompatible configuration changes
|
||||
(grep \
|
||||
-e '^Current=fedora$' \
|
||||
-e '^\[XDisplay\]$' \
|
||||
-e '^\[WaylandDisplay\]$' \
|
||||
%{_sysconfdir}/sddm.conf > /dev/null && \
|
||||
sed -i.rpmsave \
|
||||
-e 's|^Current=fedora$|#Current=01-breeze-fedora|' \
|
||||
-e 's|^\[XDisplay\]$|\[X11\]|' \
|
||||
-e 's|^\[WaylandDisplay\]$|\[Wayland\]|' \
|
||||
%{_sysconfdir}/sddm.conf
|
||||
) ||:
|
||||
|
||||
|
||||
%preun
|
||||
%systemd_preun sddm.service
|
||||
|
||||
|
||||
%postun
|
||||
%systemd_postun sddm.service
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md CONTRIBUTORS
|
||||
%dir %{_sysconfdir}/sddm/
|
||||
%dir %{_sysconfdir}/sddm.conf.d
|
||||
%dir %{_prefix}/lib/sddm/sddm.conf.d
|
||||
%config(noreplace) %{_sysconfdir}/sddm/*
|
||||
%config(noreplace) %{_sysconfdir}/sddm.conf
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/sddm
|
||||
%config(noreplace) %{_sysconfdir}/pam.d/sddm*
|
||||
%{_datadir}/dbus-1/system.d/org.freedesktop.DisplayManager-sddm.conf
|
||||
%{_bindir}/sddm
|
||||
%{_bindir}/sddm-greeter*
|
||||
%{_libexecdir}/sddm-helper
|
||||
%{_libexecdir}/sddm-helper-start-wayland
|
||||
%{_libexecdir}/sddm-helper-start-x11user
|
||||
%{_tmpfilesdir}/sddm.conf
|
||||
%{_sysusersdir}/sddm.conf
|
||||
%attr(0711, root, sddm) %dir /run/sddm
|
||||
%attr(1770, sddm, sddm) %dir %{_localstatedir}/lib/sddm
|
||||
%{_unitdir}/sddm.service
|
||||
%{_qt6_archdatadir}/qml/SddmComponents/
|
||||
%dir %{_datadir}/sddm
|
||||
%{_datadir}/sddm/faces/
|
||||
%{_datadir}/sddm/flags/
|
||||
%{_datadir}/sddm/scripts/
|
||||
%dir %{_datadir}/sddm/themes/
|
||||
# %%lang'ify? they're small, probably not worth it -- rex
|
||||
%{_datadir}/sddm/translations*/
|
||||
%{_mandir}/man1/sddm.1*
|
||||
%{_mandir}/man1/sddm-greeter.1*
|
||||
%{_mandir}/man5/sddm.conf.5*
|
||||
%{_mandir}/man5/sddm-state.conf.5*
|
||||
|
||||
|
||||
%files wayland-generic
|
||||
# No files since default configuration
|
||||
|
||||
|
||||
%if %{with x11}
|
||||
%files x11
|
||||
%{_prefix}/lib/sddm/sddm.conf.d/x11.conf
|
||||
%endif
|
||||
|
||||
|
||||
%files themes
|
||||
%{_datadir}/sddm/themes/elarun/
|
||||
%{_datadir}/sddm/themes/maldives/
|
||||
%{_datadir}/sddm/themes/maya/
|
||||
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("sddm/sddm"));
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "flow-control-nightly.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
%global commit 787bf3c6585701ec718c740ccb424794c39a2b43
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20240714
|
||||
|
||||
Name: flow-control-nightly
|
||||
Version: %commit_date.%shortcommit
|
||||
Release: 1%?dist
|
||||
Summary: A programmer's text editor
|
||||
License: MIT
|
||||
URL: https://github.com/neurocyte/flow
|
||||
Source0: %url/archive/%commit.tar.gz
|
||||
BuildRequires: zig
|
||||
Provides: flow = %version-%release
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -n flow-%commit
|
||||
|
||||
%build
|
||||
zig build -Doptimize=ReleaseFast --release=fast
|
||||
|
||||
%install
|
||||
install -Dpm755 zig-out/bin/flow %buildroot%_bindir/flow
|
||||
|
||||
%files
|
||||
%doc README.md help.md
|
||||
%license LICENSE
|
||||
%_bindir/flow
|
||||
@@ -1,7 +0,0 @@
|
||||
if filters.contains("nightly") {
|
||||
rpm.global("commit", gh_commit("neurocyte/flow"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
Name: flutter
|
||||
Version: 3.22.3
|
||||
Version: 3.22.2
|
||||
Release: 1%?dist
|
||||
Summary: SDK for crafting beautiful, fast user experiences from a single codebase
|
||||
License: BSD-3-Clause
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64", "aarch64"]
|
||||
rpm {
|
||||
spec = "kvrocks.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
Name: kvrocks
|
||||
Version: 2.9.0
|
||||
Release: 1%?dist
|
||||
Summary: Distributed key value NoSQL database that uses RocksDB
|
||||
License: Apache-2.0
|
||||
URL: https://kvrocks.apache.org/
|
||||
Source0: https://github.com/apache/kvrocks/archive/refs/tags/v%version.tar.gz
|
||||
Requires: openssl
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: git
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: python3
|
||||
BuildRequires: systemd-rpm-macros
|
||||
|
||||
%description
|
||||
Apache Kvrocks is a distributed key value NoSQL database that uses RocksDB as storage
|
||||
engine and is compatible with Redis protocol.
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
|
||||
%build
|
||||
unset LDFLAGS
|
||||
./x.py build -DPORTABLE=1 -DENABLE_STATIC_LIBSTDCXX=OFF -DENABLE_OPENSSL=ON -DCMAKE_BUILD_TYPE=Release --ghproxy -j $(nproc)
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
mkdir -p %{buildroot}%{_datadir}
|
||||
|
||||
install -pm755 build/%{name} %{buildroot}%{_bindir}/%{name}
|
||||
install -pm755 build/kvrocks2redis %{buildroot}%{_bindir}/kvrocks2redis
|
||||
|
||||
install -pDm640 %{name}.conf %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf
|
||||
install -pDm644 utils/systemd/%{name}.service %{buildroot}%{_unitdir}/%{name}.service
|
||||
|
||||
%files
|
||||
%{_bindir}/%{name}
|
||||
%{_bindir}/kvrocks2redis
|
||||
%attr(0750, root, root) %dir %{_sysconfdir}/%{name}
|
||||
%attr(0640, root, root) %config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
|
||||
%{_unitdir}/%{name}.service
|
||||
%license LICENSE
|
||||
%license NOTICE
|
||||
%license licenses/LICENSE-*
|
||||
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("apache/kvrocks"));
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: neovide
|
||||
Version: 0.13.3
|
||||
Version: 0.13.1
|
||||
Release: 1%?dist
|
||||
Summary: No Nonsense Neovim Client in Rust
|
||||
License: MIT
|
||||
|
||||
@@ -54,8 +54,6 @@ export APP_ID="%app_id"
|
||||
export APP_ICON="%app_id"
|
||||
export APP_NAME="Zed Nightly"
|
||||
export APP_CLI="zed"
|
||||
export APP="%{_libexecdir}/zed-editor"
|
||||
export APP_ARGS="%U"
|
||||
export ZED_UPDATE_EXPLANATION="Run dnf up to update Zed Nightly from Terra."
|
||||
export ZED_RELEASE_CHANNEL=nightly
|
||||
export BRANDING_LIGHT="#e9aa6a"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
%bcond_without check
|
||||
%global debug_package %{nil}
|
||||
%global ver 0.145.1
|
||||
%global ver 0.144.2
|
||||
|
||||
%global crate zed
|
||||
%global app_id dev.zed.Zed-Preview
|
||||
@@ -27,7 +27,7 @@ BuildRequires: alsa-lib-devel
|
||||
BuildRequires: fontconfig-devel
|
||||
BuildRequires: wayland-devel
|
||||
BuildRequires: libxkbcommon-x11-devel
|
||||
BuildRequires: openssl-devel-engine
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: libzstd-devel
|
||||
BuildRequires: perl-FindBin
|
||||
BuildRequires: perl-IPC-Cmd
|
||||
@@ -48,8 +48,6 @@ export APP_ID="%app_id"
|
||||
export APP_ICON="%app_id"
|
||||
export APP_NAME="Zed Preview"
|
||||
export APP_CLI="zed"
|
||||
export APP="%{_libexecdir}/zed-editor"
|
||||
export APP_ARGS="%U"
|
||||
export ZED_UPDATE_EXPLANATION="Run dnf up to update Zed Preview from Terra."
|
||||
export ZED_RELEASE_CHANNEL=preview
|
||||
export BRANDING_LIGHT="#99c1f1"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
%global app_id dev.zed.Zed
|
||||
|
||||
Name: zed
|
||||
Version: 0.144.4
|
||||
Version: 0.143.7
|
||||
Release: 1%?dist
|
||||
Summary: Zed is a high-performance, multiplayer code editor
|
||||
|
||||
@@ -28,7 +28,7 @@ BuildRequires: alsa-lib-devel
|
||||
BuildRequires: fontconfig-devel
|
||||
BuildRequires: wayland-devel
|
||||
BuildRequires: libxkbcommon-x11-devel
|
||||
BuildRequires: openssl-devel-engine
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: libzstd-devel
|
||||
BuildRequires: perl-FindBin
|
||||
BuildRequires: perl-IPC-Cmd
|
||||
@@ -50,8 +50,6 @@ export APP_ID="%app_id"
|
||||
export APP_ICON="%app_id"
|
||||
export APP_NAME="Zed Editor"
|
||||
export APP_CLI="zed"
|
||||
export APP="%{_libexecdir}/zed-editor"
|
||||
export APP_ARGS="%U"
|
||||
export ZED_UPDATE_EXPLANATION="Run dnf up to update Zed from Terra."
|
||||
export ZED_RELEASE_CHANNEL=stable
|
||||
export BRANDING_LIGHT="#e9aa6a"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
# https://github.com/containerd/containerd
|
||||
%global goipath github.com/containerd/containerd
|
||||
Version: 1.7.20
|
||||
Version: 1.7.19
|
||||
|
||||
%gometa
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: moby-buildx
|
||||
Version: 0.16.1
|
||||
Version: 0.16.0
|
||||
Release: 1%?dist
|
||||
Summary: Docker CLI plugin for extended build capabilities with BuildKit
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Name: moby-compose
|
||||
Version: 2.29.0
|
||||
Version: 2.28.1
|
||||
Release: 1%?dist
|
||||
Summary: Define and run multi-container applications with Docker
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "iosevka-fusion-fonts.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
%global source_name Iosevka
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: iosevka-fusion-fonts
|
||||
Version: 29.2.0
|
||||
Release: 1%?dist
|
||||
Summary: A custom font based on iosevka
|
||||
|
||||
License: OFL-1.1
|
||||
URL: https://github.com/be5invis/Iosevka
|
||||
Source0: %{url}/archive/v%{version}.tar.gz
|
||||
Source1: iosevka-fusion.toml
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
BuildRequires: clang
|
||||
BuildRequires: nodejs-npm
|
||||
BuildRequires: ttfautohint
|
||||
|
||||
%description
|
||||
Based on Iosevka font, https://github.com/be5invis/Iosevka,
|
||||
this font mixes elements from various fonts tailored to my personal taste.
|
||||
|
||||
%prep
|
||||
%autosetup -n %{source_name}-%{version}
|
||||
%__cp %SOURCE1 %{_builddir}/%{source_name}-%{version}/private-build-plans.toml
|
||||
|
||||
%build
|
||||
npm install
|
||||
npm run build -- ttf::iosevka-fusion
|
||||
|
||||
%install
|
||||
%__mkdir -p %{buildroot}%{_datadir}/fonts/%{name}
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-bold.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-Bold.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-bolditalic.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-BoldItalic.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-book.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-Book.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-bookitalic.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-BookItalic.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-extrabold.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-ExtraBold.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-extrabolditalic.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-ExtraBoldItalic.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-extralight.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-ExtraLight.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-extralightitalic.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-ExtraLightItalic.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-heavy.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-Heavy.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-heavyitalic.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-HeavyItalic.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-italic.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-Italic.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-light.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-Light.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-lightitalic.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-LightItalic.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-medium.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-Medium.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-mediumitalic.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-MediumItalic.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-regular.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-Regular.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-semibold.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-SemiBold.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-semibolditalic.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-SemiBoldItalic.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-thin.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-Thin.ttf
|
||||
|
||||
%__install -m 0644 \
|
||||
dist/iosevka-fusion/ttf/iosevka-fusion-thinitalic.ttf \
|
||||
-T \
|
||||
%{buildroot}%{_datadir}/fonts/%{name}/IosevkaFusion-ThinItalic.ttf
|
||||
|
||||
%files
|
||||
%license LICENSE.md
|
||||
%doc README.md
|
||||
%{_datadir}/fonts/*
|
||||
|
||||
%changelog
|
||||
* Wed Dec 28 2022 windowsboy111 <windowsboy111@fyralabs.com> - 16.8.4
|
||||
- Initial package
|
||||
@@ -0,0 +1,190 @@
|
||||
[buildPlans.iosevka-fusion]
|
||||
family = "Iosevka Fusion"
|
||||
spacing = "fixed"
|
||||
serifs = "sans"
|
||||
|
||||
[buildPlans.iosevka-fusion.variants.design]
|
||||
cv01 = 1 # A cap straight
|
||||
cv02 = 1 # B cap straight
|
||||
cv03 = 1 # C cap serifless
|
||||
cv04 = 1 # D cap serifless
|
||||
cv05 = 1 # E cap serifless
|
||||
cv06 = 1 # F cap serifless
|
||||
cv07 = 6 # G cap toothless rounded serifless hooked
|
||||
cv08 = 1 # H cap serifless
|
||||
cv09 = 1 # I cap long serifs
|
||||
cv10 = 2 # J cap serified
|
||||
cv11 = 2 # K cap curly
|
||||
cv12 = 1 # L cap serifless
|
||||
cv13 = 1 # M cap short middle leg
|
||||
cv14 = 1 # N cap symmetric
|
||||
cv15 = 1 # P cap straight
|
||||
cv16 = 4 # Q cap crossing tail
|
||||
cv17 = 1 # R cap straight
|
||||
cv18 = 1 # S cap serifless
|
||||
cv19 = 1 # T cap serifless
|
||||
cv20 = 3 # U cap serifless
|
||||
cv21 = 1 # V cap straight
|
||||
cv22 = 1 # W straight
|
||||
cv23 = 1 # X cap straight
|
||||
cv24 = 1 # Y cap straight
|
||||
cv25 = 1 # Z cap straight
|
||||
cv28 = 1 # c serifless
|
||||
cv33 = 1 # h straight
|
||||
cv34 = 10 # i serified flat tailed
|
||||
cv35 = 6 # j flat hook serified
|
||||
cv37 = 10 # l serified flat tailed
|
||||
cv42 = 9 # r compact
|
||||
cv43 = 1 # s serifless
|
||||
cv44 = 2 # t flat hook
|
||||
cv49 = 6 # y cursive flat terminal hook
|
||||
cv53 = 1 # Λ, Δ lambda and delta cap straight
|
||||
cv54 = 2 # α alpha straight tailed
|
||||
cv55 = 1 # δ delta rounded top
|
||||
cv56 = 1 # Γ gamma cap straight
|
||||
cv57 = 6 # ι iota serified flat tailed
|
||||
cv58 = 2 # λ lambda top tailed
|
||||
cv59 = 1 # μ me tailless
|
||||
cv60 = 2 # ξ xe flat top
|
||||
cv77 = 13 # 0 oval dashed forward slash
|
||||
cv80 = 2 # 3 arched
|
||||
cv82 = 2 # 5 open contour
|
||||
cv84 = 1 # 7 straight
|
||||
cv85 = 3 # 8 two asymmetric circles
|
||||
cv89 = 2 # ~ tilde low
|
||||
cv90 = 3 # * asterisk five-pointed low
|
||||
cv91 = 1 # _ underscore right below baseline
|
||||
cv92 = 1 # ^ uptick high
|
||||
cv93 = 1 # ( parentheses normal slope
|
||||
cv94 = 2 # { braces curly
|
||||
cv95 = 1 # # column straight
|
||||
cv97 = 4 # @ three-fold, tall height
|
||||
cv98 = 2 # $ dollar strike through
|
||||
VXSF = 2 # ¢ cent strike through
|
||||
cv99 = 1 # % percent dots
|
||||
VXSA = 1 # | bar natural slope
|
||||
VXSB = 1 # ' single quote straight
|
||||
VXSC = 1 # ` grave/backtick straight
|
||||
VXSD = 1 # ? smooth
|
||||
cv88 = 2 # .:; square punctuation marks
|
||||
cv87 = 2 # ijäöü square diacretics
|
||||
|
||||
[buildPlans.iosevka-fusion.variants.upright]
|
||||
cv26 = 3 # a double storey rounded
|
||||
cv27 = 2 # b rounded
|
||||
cv29 = 2 # d rounded
|
||||
cv30 = 1 # e straight
|
||||
cv31 = 16 # f serifless bottom flat top crossbar at x height
|
||||
cv32 = 9 # g single storey flat hook earless cornered top
|
||||
cv36 = 1 # k straight
|
||||
cv38 = 5 # m earless normal middle leg
|
||||
cv39 = 3 # n earless straight
|
||||
cv40 = 2 # p earless
|
||||
cv41 = 2 # q earless
|
||||
cv45 = 2 # u rounded
|
||||
cv46 = 1 # v straight
|
||||
cv47 = 1 # w straight
|
||||
cv48 = 1 # x straight
|
||||
cv50 = 1 # z straight
|
||||
cv78 = 3 # 1 serified with base
|
||||
cv79 = 1 # 2 straight
|
||||
cv81 = 3 # 4 semi-open contour
|
||||
cv83 = 3 # 6 straight
|
||||
cv86 = 3 # 9 straight
|
||||
cv96 = 2 # & et open top (ampersand)
|
||||
|
||||
[buildPlans.iosevka-fusion.variants.italic]
|
||||
cv26 = 1 # a double storey straight
|
||||
cv27 = 1 # b straight
|
||||
cv29 = 1 # d straight
|
||||
cv30 = 2 # e curly
|
||||
cv31 = 18 # f flat hook tailed crossbar at x height
|
||||
cv32 = 7 # g single storey flat hook
|
||||
cv36 = 2 # k curly
|
||||
cv38 = 1 # m straight normal middle leg
|
||||
cv39 = 1 # n straight
|
||||
cv40 = 1 # p straight
|
||||
cv41 = 1 # q straight
|
||||
cv45 = 1 # u straight
|
||||
cv46 = 2 # v curly
|
||||
cv47 = 2 # w curly short middle top
|
||||
cv48 = 2 # x curly
|
||||
cv50 = 4 # z curly
|
||||
cv78 = 2 # 1 serified no base
|
||||
cv79 = 2 # 2 curly
|
||||
cv81 = 1 # 4 closed contour crossing
|
||||
cv83 = 1 # 6 closed contour
|
||||
cv86 = 1 # 9 closed contour
|
||||
cv96 = 4 # & et open top toothed (ampersand)
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.thin]
|
||||
shape = 100
|
||||
menu = 100
|
||||
css = 100
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.extralight]
|
||||
shape = 200
|
||||
menu = 200
|
||||
css = 200
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.light]
|
||||
shape = 300
|
||||
menu = 300
|
||||
css = 300
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.regular]
|
||||
shape = 400
|
||||
menu = 400
|
||||
css = 400
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.book]
|
||||
shape = 450
|
||||
menu = 450
|
||||
css = 450
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.medium]
|
||||
shape = 500
|
||||
menu = 500
|
||||
css = 500
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.semibold]
|
||||
shape = 600
|
||||
menu = 600
|
||||
css = 600
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.bold]
|
||||
shape = 700
|
||||
menu = 700
|
||||
css = 700
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.extrabold]
|
||||
shape = 800
|
||||
menu = 800
|
||||
css = 800
|
||||
|
||||
[buildPlans.iosevka-fusion.weights.heavy]
|
||||
shape = 900
|
||||
menu = 900
|
||||
css = 900
|
||||
|
||||
[buildPlans.iosevka-fusion.slopes.upright]
|
||||
angle = 0
|
||||
shape = "upright"
|
||||
menu = "upright"
|
||||
css = "normal"
|
||||
|
||||
[buildPlans.iosevka-fusion.slopes.italic]
|
||||
angle = 9.4
|
||||
shape = "italic"
|
||||
menu = "italic"
|
||||
css = "italic"
|
||||
|
||||
[buildPlans.iosevka-fusion.widths.normal]
|
||||
shape = 600
|
||||
menu = 5
|
||||
css = "normal"
|
||||
|
||||
[buildPlans.iosevka-fusion.metric-override]
|
||||
leading = 1350
|
||||
sb = 60
|
||||
xHeight = 530
|
||||
@@ -0,0 +1 @@
|
||||
rpm.version(gh("be5invis/Iosevka"));
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "gamescope-session-steam.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
%define debug_package %nil
|
||||
|
||||
%global commit 015e09825d4f9a2dfdbc20fc2711e2dcee2af68a
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20240719
|
||||
|
||||
Name: gamescope-session-steam
|
||||
Version: %commit_date.%shortcommit
|
||||
Release: 1%?dist
|
||||
Summary: gamescope-session-steam
|
||||
License: MIT
|
||||
URL: https://github.com/ChimeraOS/gamescope-session-steam
|
||||
Source0: %url/archive/%commit.tar.gz
|
||||
|
||||
%description
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -n %name-%commit
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot
|
||||
cp -r usr %buildroot/
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%_bindir/steamos-polkit-helpers/
|
||||
%_bindir/jupiter-biosupdate
|
||||
%_bindir/steam-http-loader
|
||||
%_bindir/steamos-select-branch
|
||||
%_bindir/steamos-session-select
|
||||
%_bindir/steamos-update
|
||||
%_datadir/applications/gamescope-mimeapps.list
|
||||
%_datadir/applications/steam_http_loader.desktop
|
||||
%_datadir/gamescope-session-plus/sessions.d/steam
|
||||
%_datadir/polkit-1/actions/org.chimeraos.update.policy
|
||||
%_datadir/wayland-sessions/gamescope-session-steam.desktop
|
||||
%_datadir/wayland-sessions/gamescope-session.desktop
|
||||
@@ -1,7 +0,0 @@
|
||||
if filters.contains("nightly") {
|
||||
rpm.global("commit", gh_commit("ChimeraOS/gamescope-session-steam"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "gamescope-session.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
%define debug_package %nil
|
||||
|
||||
%global commit 4aa204e6ef332457d277488ffa61959f2dcde470
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20240719
|
||||
|
||||
Name: gamescope-session
|
||||
Version: %commit_date.%shortcommit
|
||||
Release: 1%?dist
|
||||
Summary: ChimeraOS session on Gamescope
|
||||
License: MIT
|
||||
URL: https://github.com/ChimeraOS/gamescope-session
|
||||
Source0: %url/archive/%commit.tar.gz
|
||||
BuildRequires: systemd-rpm-macros
|
||||
|
||||
%description
|
||||
Gamescope session plus based on Valve's gamescope.
|
||||
|
||||
%prep
|
||||
%autosetup -n gamescope-session-%commit
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
mkdir -p %buildroot
|
||||
cp -r usr %buildroot/
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%_bindir/export-gpu
|
||||
%_bindir/gamescope-session-plus
|
||||
%_userunitdir/gamescope-session-plus@.service
|
||||
%_datadir/gamescope-session-plus/device-quirks
|
||||
%_datadir/gamescope-session-plus/gamescope-session-plus
|
||||
@@ -1,7 +0,0 @@
|
||||
if filters.contains("nightly") {
|
||||
rpm.global("commit", gh_commit("ChimeraOS/gamescope-session"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
}
|
||||
@@ -1,239 +0,0 @@
|
||||
From ab115896be1a448bde0eb7673c26300ea4ca5040 Mon Sep 17 00:00:00 2001
|
||||
From: sharkautarch <128002472+sharkautarch@users.noreply.github.com>
|
||||
Date: Sun, 19 May 2024 20:15:36 -0400
|
||||
Subject: [PATCH 1/2] QueuePresent: canBypassXWayland(): fetch multiple xcb
|
||||
cookies initially before waiting on any of them
|
||||
|
||||
---
|
||||
layer/VkLayer_FROG_gamescope_wsi.cpp | 1 +
|
||||
layer/xcb_helpers.hpp | 105 +++++++++++++++++++++++----
|
||||
2 files changed, 93 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/layer/VkLayer_FROG_gamescope_wsi.cpp b/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
index 5844c2a63..ca44849f2 100644
|
||||
--- a/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
+++ b/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
@@ -975,6 +975,7 @@ namespace GamescopeWSILayer {
|
||||
continue;
|
||||
}
|
||||
|
||||
+ xcb::Prefetcher prefetcher(gamescopeSurface->connection, gamescopeSurface->window);
|
||||
const bool canBypass = gamescopeSurface->canBypassXWayland();
|
||||
if (canBypass != gamescopeSwapchain->isBypassingXWayland)
|
||||
UpdateSwapchainResult(canBypass ? VK_SUBOPTIMAL_KHR : VK_ERROR_OUT_OF_DATE_KHR);
|
||||
diff --git a/layer/xcb_helpers.hpp b/layer/xcb_helpers.hpp
|
||||
index 8fac5635b..72d0ec092 100644
|
||||
--- a/layer/xcb_helpers.hpp
|
||||
+++ b/layer/xcb_helpers.hpp
|
||||
@@ -4,22 +4,106 @@
|
||||
#include <xcb/composite.h>
|
||||
#include <cstdio>
|
||||
#include <optional>
|
||||
+#include <pthread.h>
|
||||
|
||||
namespace xcb {
|
||||
+ inline static constinit pthread_t g_cache_tid; //incase g_cache could otherwise be accessed by one thread, while it is being deleted by another thread
|
||||
+ inline static constinit struct cookie_cache_t {
|
||||
+ xcb_window_t window;
|
||||
+ std::tuple<xcb_get_geometry_cookie_t, xcb_query_tree_cookie_t> cached_cookies;
|
||||
+ std::tuple<xcb_get_geometry_reply_t*, xcb_query_tree_reply_t*> cached_replies;
|
||||
+ } g_cache = {};
|
||||
+
|
||||
+ //Note: this class is currently only meant to be used within GamescopeWSILayer::VkDeviceOverrides::QueuePresentKHR:
|
||||
+ struct Prefetcher {
|
||||
+ explicit Prefetcher(xcb_connection_t* connection, const xcb_window_t window) {
|
||||
+ g_cache = {
|
||||
+ .window = window,
|
||||
+ .cached_cookies = {
|
||||
+ xcb_get_geometry(connection, window),
|
||||
+ xcb_query_tree(connection, window)
|
||||
+ }
|
||||
+ };
|
||||
+ g_cache_tid = pthread_self();
|
||||
+ }
|
||||
|
||||
+ ~Prefetcher() {
|
||||
+ g_cache_tid = {};
|
||||
+ free(std::get<0>(g_cache.cached_replies));
|
||||
+ free(std::get<1>(g_cache.cached_replies));
|
||||
+ g_cache.cached_replies = {nullptr,nullptr};
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
struct ReplyDeleter {
|
||||
+ const bool m_bOwning = true;
|
||||
+ consteval ReplyDeleter(bool bOwning = true) : m_bOwning{bOwning} {}
|
||||
template <typename T>
|
||||
void operator()(T* ptr) const {
|
||||
- free(const_cast<std::remove_const_t<T>*>(ptr));
|
||||
+ if (m_bOwning)
|
||||
+ free(const_cast<std::remove_const_t<T>*>(ptr));
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
using Reply = std::unique_ptr<T, ReplyDeleter>;
|
||||
+
|
||||
+ template <typename Cookie_RetType, typename Reply_RetType, typename XcbConn=xcb_connection_t*, typename... Args>
|
||||
+ class XcbFetch {
|
||||
+ using cookie_f_ptr_t = Cookie_RetType (*)(XcbConn, Args...);
|
||||
+ using reply_f_ptr_t = Reply_RetType* (*)(XcbConn, Cookie_RetType, xcb_generic_error_t**);
|
||||
+
|
||||
+ const cookie_f_ptr_t m_cookieFunc;
|
||||
+ const reply_f_ptr_t m_replyFunc;
|
||||
+
|
||||
+ public:
|
||||
+ consteval XcbFetch(cookie_f_ptr_t cookieFunc, reply_f_ptr_t replyFunc) : m_cookieFunc{cookieFunc}, m_replyFunc{replyFunc} {}
|
||||
+
|
||||
+ inline Reply<Reply_RetType> operator()(XcbConn conn, auto... args) { //have to use auto for argsTwo, since otherwise there'd be a type deduction conflict
|
||||
+ return Reply<Reply_RetType> { m_replyFunc(conn, m_cookieFunc(conn, args...), nullptr) };
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
+ template <typename CookieType>
|
||||
+ concept CacheableCookie = std::is_same<CookieType, xcb_get_geometry_cookie_t>::value
|
||||
+ || std::is_same<CookieType, xcb_query_tree_cookie_t>::value;
|
||||
+
|
||||
+ template <CacheableCookie Cookie_RetType, typename Reply_RetType>
|
||||
+ class XcbFetch<Cookie_RetType, Reply_RetType, xcb_connection_t*, xcb_window_t> {
|
||||
+ using cookie_f_ptr_t = Cookie_RetType (*)(xcb_connection_t*, xcb_window_t);
|
||||
+ using reply_f_ptr_t = Reply_RetType* (*)(xcb_connection_t*, Cookie_RetType, xcb_generic_error_t**);
|
||||
+
|
||||
+ const cookie_f_ptr_t m_cookieFunc;
|
||||
+ const reply_f_ptr_t m_replyFunc;
|
||||
+
|
||||
+ inline Reply<Reply_RetType> getCachedReply(xcb_connection_t* connection) {
|
||||
+ if (std::get<Reply_RetType*>(g_cache.cached_replies) == nullptr) {
|
||||
+ std::get<Reply_RetType*>(g_cache.cached_replies) = m_replyFunc(connection, std::get<Cookie_RetType>(g_cache.cached_cookies), nullptr);
|
||||
+ }
|
||||
|
||||
+ return Reply<Reply_RetType>{std::get<Reply_RetType*>(g_cache.cached_replies), ReplyDeleter{false}}; // return 'non-owning' unique_ptr
|
||||
+ }
|
||||
+
|
||||
+ public:
|
||||
+ consteval XcbFetch(cookie_f_ptr_t cookieFunc, reply_f_ptr_t replyFunc) : m_cookieFunc{cookieFunc}, m_replyFunc{replyFunc} {}
|
||||
+
|
||||
+ inline Reply<Reply_RetType> operator()(xcb_connection_t* conn, xcb_window_t window) {
|
||||
+ const bool tryCached = pthread_equal(g_cache_tid, pthread_self())
|
||||
+ && g_cache.window == window;
|
||||
+ if (!tryCached) [[unlikely]]
|
||||
+ return Reply<Reply_RetType> { m_replyFunc(conn, m_cookieFunc(conn, window), nullptr) };
|
||||
+
|
||||
+ auto ret = getCachedReply(conn);
|
||||
+ #if !defined(NDEBUG) || NDEBUG == 0
|
||||
+ if (!ret)
|
||||
+ fprintf(stderr, "[Gamescope WSI] getCachedReply() failed.\n");
|
||||
+ #endif
|
||||
+ return ret;
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
static std::optional<xcb_atom_t> getAtom(xcb_connection_t* connection, std::string_view name) {
|
||||
- xcb_intern_atom_cookie_t cookie = xcb_intern_atom(connection, false, name.length(), name.data());
|
||||
- auto reply = Reply<xcb_intern_atom_reply_t>{ xcb_intern_atom_reply(connection, cookie, nullptr) };
|
||||
+ auto reply = XcbFetch{xcb_intern_atom, xcb_intern_atom_reply}(connection, false, name.length(), name.data());
|
||||
if (!reply) {
|
||||
fprintf(stderr, "[Gamescope WSI] Failed to get xcb atom.\n");
|
||||
return std::nullopt;
|
||||
@@ -34,8 +118,7 @@ namespace xcb {
|
||||
|
||||
xcb_screen_t* screen = xcb_setup_roots_iterator(xcb_get_setup(connection)).data;
|
||||
|
||||
- xcb_get_property_cookie_t cookie = xcb_get_property(connection, false, screen->root, atom, XCB_ATOM_CARDINAL, 0, sizeof(T) / sizeof(uint32_t));
|
||||
- auto reply = Reply<xcb_get_property_reply_t>{ xcb_get_property_reply(connection, cookie, nullptr) };
|
||||
+ auto reply = XcbFetch{xcb_get_property, xcb_get_property_reply}(connection, false, screen->root, atom, XCB_ATOM_CARDINAL, 0, sizeof(T) / sizeof(uint32_t));
|
||||
if (!reply) {
|
||||
fprintf(stderr, "[Gamescope WSI] Failed to read T root window property.\n");
|
||||
return std::nullopt;
|
||||
@@ -61,8 +144,7 @@ namespace xcb {
|
||||
|
||||
static std::optional<xcb_window_t> getToplevelWindow(xcb_connection_t* connection, xcb_window_t window) {
|
||||
for (;;) {
|
||||
- xcb_query_tree_cookie_t cookie = xcb_query_tree(connection, window);
|
||||
- auto reply = Reply<xcb_query_tree_reply_t>{ xcb_query_tree_reply(connection, cookie, nullptr) };
|
||||
+ auto reply = XcbFetch{xcb_query_tree, xcb_query_tree_reply}(connection, window);
|
||||
|
||||
if (!reply) {
|
||||
fprintf(stderr, "[Gamescope WSI] getToplevelWindow: xcb_query_tree failed for window 0x%x.\n", window);
|
||||
@@ -77,8 +159,7 @@ namespace xcb {
|
||||
}
|
||||
|
||||
static std::optional<VkRect2D> getWindowRect(xcb_connection_t* connection, xcb_window_t window) {
|
||||
- xcb_get_geometry_cookie_t cookie = xcb_get_geometry(connection, window);
|
||||
- auto reply = Reply<xcb_get_geometry_reply_t>{ xcb_get_geometry_reply(connection, cookie, nullptr) };
|
||||
+ auto reply = XcbFetch{xcb_get_geometry, xcb_get_geometry_reply}(connection, window);
|
||||
if (!reply) {
|
||||
fprintf(stderr, "[Gamescope WSI] getWindowRect: xcb_get_geometry failed for window 0x%x.\n", window);
|
||||
return std::nullopt;
|
||||
@@ -112,8 +193,7 @@ namespace xcb {
|
||||
static std::optional<VkExtent2D> getLargestObscuringChildWindowSize(xcb_connection_t* connection, xcb_window_t window) {
|
||||
VkExtent2D largestExtent = {};
|
||||
|
||||
- xcb_query_tree_cookie_t cookie = xcb_query_tree(connection, window);
|
||||
- auto reply = Reply<xcb_query_tree_reply_t>{ xcb_query_tree_reply(connection, cookie, nullptr) };
|
||||
+ auto reply = XcbFetch{xcb_query_tree, xcb_query_tree_reply}(connection, window);
|
||||
|
||||
if (!reply) {
|
||||
fprintf(stderr, "[Gamescope WSI] getLargestObscuringWindowSize: xcb_query_tree failed for window 0x%x.\n", window);
|
||||
@@ -130,8 +210,7 @@ namespace xcb {
|
||||
for (uint32_t i = 0; i < reply->children_len; i++) {
|
||||
xcb_window_t child = children[i];
|
||||
|
||||
- xcb_get_window_attributes_cookie_t attributeCookie = xcb_get_window_attributes(connection, child);
|
||||
- auto attributeReply = Reply<xcb_get_window_attributes_reply_t>{ xcb_get_window_attributes_reply(connection, attributeCookie, nullptr) };
|
||||
+ auto attributeReply = XcbFetch{xcb_get_window_attributes, xcb_get_window_attributes_reply}(connection, child);
|
||||
|
||||
const bool obscuring =
|
||||
attributeReply &&
|
||||
|
||||
From 1b59621f4de5c05096d1f279cba2e04264124154 Mon Sep 17 00:00:00 2001
|
||||
From: sharkautarch <128002472+sharkautarch@users.noreply.github.com>
|
||||
Date: Tue, 18 Jun 2024 22:21:23 -0400
|
||||
Subject: [PATCH 2/2] WSI: prefetcher: fix issue w/ attempting to prefetch xcb
|
||||
stuff for pure wayland surfaces
|
||||
|
||||
---
|
||||
layer/VkLayer_FROG_gamescope_wsi.cpp | 2 +-
|
||||
layer/xcb_helpers.hpp | 9 ++++++++-
|
||||
2 files changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/layer/VkLayer_FROG_gamescope_wsi.cpp b/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
index f26819a60..ce011dcd7 100644
|
||||
--- a/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
+++ b/layer/VkLayer_FROG_gamescope_wsi.cpp
|
||||
@@ -1234,7 +1234,7 @@ namespace GamescopeWSILayer {
|
||||
continue;
|
||||
}
|
||||
|
||||
- xcb::Prefetcher prefetcher(gamescopeSurface->connection, gamescopeSurface->window);
|
||||
+ auto prefetcher = xcb::Prefetcher::GetPrefetcherIf(!gamescopeSurface->isWayland(), gamescopeSurface->connection, gamescopeSurface->window);
|
||||
const bool canBypass = gamescopeSurface->canBypassXWayland();
|
||||
if (canBypass != gamescopeSwapchain->isBypassingXWayland)
|
||||
UpdateSwapchainResult(canBypass ? VK_SUBOPTIMAL_KHR : VK_ERROR_OUT_OF_DATE_KHR);
|
||||
diff --git a/layer/xcb_helpers.hpp b/layer/xcb_helpers.hpp
|
||||
index 72d0ec092..f26aef38b 100644
|
||||
--- a/layer/xcb_helpers.hpp
|
||||
+++ b/layer/xcb_helpers.hpp
|
||||
@@ -16,6 +16,13 @@ namespace xcb {
|
||||
|
||||
//Note: this class is currently only meant to be used within GamescopeWSILayer::VkDeviceOverrides::QueuePresentKHR:
|
||||
struct Prefetcher {
|
||||
+ static std::optional<Prefetcher> GetPrefetcherIf(bool bCond, xcb_connection_t* connection, const xcb_window_t window) {
|
||||
+ if (bCond)
|
||||
+ return std::optional<Prefetcher>(std::in_place_t{}, connection, window);
|
||||
+
|
||||
+ return std::nullopt;
|
||||
+ }
|
||||
+
|
||||
explicit Prefetcher(xcb_connection_t* connection, const xcb_window_t window) {
|
||||
g_cache = {
|
||||
.window = window,
|
||||
@@ -90,7 +97,7 @@ namespace xcb {
|
||||
inline Reply<Reply_RetType> operator()(xcb_connection_t* conn, xcb_window_t window) {
|
||||
const bool tryCached = pthread_equal(g_cache_tid, pthread_self())
|
||||
&& g_cache.window == window;
|
||||
- if (!tryCached) [[unlikely]]
|
||||
+ if (!tryCached)
|
||||
return Reply<Reply_RetType> { m_replyFunc(conn, m_cookieFunc(conn, window), nullptr) };
|
||||
|
||||
auto ret = getCachedReply(conn);
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "terra-gamescope.spec"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,136 +0,0 @@
|
||||
diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp
|
||||
index 85e5126..be418b4 100644
|
||||
--- a/src/Backends/DRMBackend.cpp
|
||||
+++ b/src/Backends/DRMBackend.cpp
|
||||
@@ -2149,6 +2149,7 @@ namespace gamescope
|
||||
( m_Mutable.szMakePNP == "WLC"sv && m_Mutable.szModel == "ANX7530 U"sv ) ||
|
||||
( m_Mutable.szMakePNP == "ANX"sv && m_Mutable.szModel == "ANX7530 U"sv ) ||
|
||||
( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "ANX7530 U"sv ) ||
|
||||
+ ( m_Mutable.szMakePNP == "DHD"sv && m_Mutable.szModel == "DeckHD-1200p"sv ) ||
|
||||
( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Jupiter"sv ) ||
|
||||
( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Galileo"sv );
|
||||
|
||||
@@ -2160,6 +2161,7 @@ namespace gamescope
|
||||
{
|
||||
static constexpr uint32_t kPIDGalileoSDC = 0x3003;
|
||||
static constexpr uint32_t kPIDGalileoBOE = 0x3004;
|
||||
+ static constexpr uint32_t kPIDJupiterDHD = 0x4001;
|
||||
|
||||
if ( pProduct->product == kPIDGalileoSDC )
|
||||
{
|
||||
@@ -2171,6 +2173,10 @@ namespace gamescope
|
||||
m_Mutable.eKnownDisplay = GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_BOE;
|
||||
m_Mutable.ValidDynamicRefreshRates = std::span( s_kSteamDeckOLEDRates );
|
||||
}
|
||||
+ else if (pProduct-> product == kPIDJupiterDHD ) {
|
||||
+ m_Mutable.eKnownDisplay = GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD;
|
||||
+ m_Mutable.ValidDynamicRefreshRates = std::span( s_kSteamDeckLCDRates );
|
||||
+ }
|
||||
else
|
||||
{
|
||||
m_Mutable.eKnownDisplay = GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD;
|
||||
@@ -2200,7 +2206,8 @@ namespace gamescope
|
||||
drm_log.infof( "[colorimetry]: Steam Deck LCD detected. Using known colorimetry" );
|
||||
m_Mutable.DisplayColorimetry = displaycolorimetry_steamdeck_measured;
|
||||
}
|
||||
- else
|
||||
+ else if (m_Mutable.eKnownDisplay == GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_BOE ||
|
||||
+ m_Mutable.eKnownDisplay == GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_SDC )
|
||||
{
|
||||
// Steam Deck OLED has calibrated chromaticity coordinates in the EDID
|
||||
// for each unit.
|
||||
@@ -2330,7 +2337,7 @@ namespace gamescope
|
||||
.uMinContentLightLevel = nits_to_u16_dark( 0 ),
|
||||
};
|
||||
}
|
||||
- else if ( eKnownDisplay == GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD )
|
||||
+ else if ( eKnownDisplay == GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD || eKnownDisplay == GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD )
|
||||
{
|
||||
// Set up some HDR fallbacks for undocking
|
||||
return BackendConnectorHDRInfo
|
||||
diff --git a/src/gamescope_shared.h b/src/gamescope_shared.h
|
||||
index ed30d8c..3b60774 100644
|
||||
--- a/src/gamescope_shared.h
|
||||
+++ b/src/gamescope_shared.h
|
||||
@@ -8,6 +8,7 @@ namespace gamescope
|
||||
{
|
||||
GAMESCOPE_KNOWN_DISPLAY_UNKNOWN,
|
||||
GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD, // Jupiter
|
||||
+ GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD, // Jupiter Deck HD
|
||||
GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_SDC, // Galileo SDC
|
||||
GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_BOE, // Galileo BOE
|
||||
};
|
||||
diff --git a/src/modegen.cpp b/src/modegen.cpp
|
||||
index d174c2d..5dd1136 100644
|
||||
--- a/src/modegen.cpp
|
||||
+++ b/src/modegen.cpp
|
||||
@@ -293,13 +293,32 @@ unsigned int galileo_boe_vfp[] =
|
||||
172,152,136,120,100,84,68,52,36,20,8
|
||||
};
|
||||
|
||||
-#define GALILEO_MIN_REFRESH 45
|
||||
+//SD LCD Stock Timings
|
||||
+#define JUPITER_BOE_PID 0x3001
|
||||
+#define JUPITER_B_PID 0x3002
|
||||
+#define JUPITER_HFP 40
|
||||
+#define JUPITER_HSYNC 4
|
||||
+#define JUPITER_HBP 40
|
||||
+#define JUPITER_VFP 30
|
||||
+#define JUPITER_VSYNC 4
|
||||
+#define JUPITER_VBP 8
|
||||
+//SD LCD DeckHD Timings
|
||||
+#define JUPITER_DHD_PID 0x4001
|
||||
+#define JUPITER_DHD_HFP 40
|
||||
+#define JUPITER_DHD_HSYNC 20
|
||||
+#define JUPITER_DHD_HBP 40
|
||||
+#define JUPITER_DHD_VFP 18
|
||||
+#define JUPITER_DHD_VSYNC 2
|
||||
+#define JUPITER_DHD_VBP 20
|
||||
+//SD OLED SDC Timings
|
||||
#define GALILEO_SDC_PID 0x3003
|
||||
#define GALILEO_SDC_VSYNC 1
|
||||
#define GALILEO_SDC_VBP 22
|
||||
+//SD OLED BOE Timings
|
||||
#define GALILEO_BOE_PID 0x3004
|
||||
#define GALILEO_BOE_VSYNC 2
|
||||
#define GALILEO_BOE_VBP 30
|
||||
+#define GALILEO_MIN_REFRESH 45
|
||||
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
||||
|
||||
unsigned int get_galileo_vfp( int vrefresh, unsigned int * vfp_array, unsigned int num_rates )
|
||||
@@ -344,17 +363,28 @@ void generate_fixed_mode(drmModeModeInfo *mode, const drmModeModeInfo *base, int
|
||||
mode->vsync_end = mode->vsync_start + vsync;
|
||||
mode->vtotal = mode->vsync_end + vbp;
|
||||
} else {
|
||||
- if ( eKnownDisplay == gamescope::GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD )
|
||||
+ if ( eKnownDisplay == gamescope::GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD ) {
|
||||
+ mode->hdisplay = 1200;
|
||||
+ mode->hsync_start = mode->hdisplay + JUPITER_DHD_HFP;
|
||||
+ mode->hsync_end = mode->hsync_start + JUPITER_DHD_HSYNC;
|
||||
+ mode->htotal = mode->hsync_end + JUPITER_DHD_HBP;
|
||||
+
|
||||
+ mode->vdisplay = 1920;
|
||||
+ mode->vsync_start = mode->vdisplay + JUPITER_DHD_VFP;
|
||||
+ mode->vsync_end = mode->vsync_start + JUPITER_DHD_VSYNC;
|
||||
+ mode->vtotal = mode->vsync_end + JUPITER_DHD_VBP;
|
||||
+ }
|
||||
+ else if ( eKnownDisplay == gamescope::GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD )
|
||||
{
|
||||
mode->hdisplay = 800;
|
||||
- mode->hsync_start = 840;
|
||||
- mode->hsync_end = 844;
|
||||
- mode->htotal = 884;
|
||||
+ mode->hsync_start = mode->hdisplay + JUPITER_HFP;
|
||||
+ mode->hsync_end = mode->hsync_start + JUPITER_HSYNC;
|
||||
+ mode->htotal = mode->hsync_end + JUPITER_HBP;
|
||||
|
||||
mode->vdisplay = 1280;
|
||||
- mode->vsync_start = 1310;
|
||||
- mode->vsync_end = 1314;
|
||||
- mode->vtotal = 1322;
|
||||
+ mode->vsync_start = mode->vdisplay + JUPITER_VFP;
|
||||
+ mode->vsync_end = mode->vsync_start + JUPITER_VSYNC;
|
||||
+ mode->vtotal = mode->vsync_end + JUPITER_VBP;
|
||||
}
|
||||
|
||||
mode->clock = ( ( mode->htotal * mode->vtotal * vrefresh ) + 999 ) / 1000;
|
||||
@@ -1,51 +0,0 @@
|
||||
diff --git a/src/main.cpp b/src/main.cpp
|
||||
index 119e043..6c46d97 100644
|
||||
--- a/src/main.cpp
|
||||
+++ b/src/main.cpp
|
||||
@@ -148,6 +148,8 @@ const struct option *gamescope_options = (struct option[]){
|
||||
{ "reshade-effect", required_argument, nullptr, 0 },
|
||||
{ "reshade-technique-idx", required_argument, nullptr, 0 },
|
||||
|
||||
+ { "disable-touch-click", no_argument, nullptr, 0 },
|
||||
+
|
||||
// Steam Deck options
|
||||
{ "mura-map", required_argument, nullptr, 0 },
|
||||
|
||||
@@ -193,6 +195,7 @@ const char usage[] =
|
||||
" -e, --steam enable Steam integration\n"
|
||||
" --bypass-steam-resolution bypass Steam's default 720p/800p default resolution\n"
|
||||
" --touch-gestures enable touch gestures for Steam menus\n"
|
||||
+ " --disable-touch-click disable touchscreen tap acting as a click\n"
|
||||
" --xwayland-count create N xwayland servers\n"
|
||||
" --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n"
|
||||
" --force-orientation rotate the internal display (left, right, normal, upsidedown)\n"
|
||||
diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp
|
||||
index 92bf617..d7498e5 100644
|
||||
--- a/src/steamcompmgr.cpp
|
||||
+++ b/src/steamcompmgr.cpp
|
||||
@@ -347,6 +347,7 @@ bool g_bHDRItmEnable = false;
|
||||
int g_nCurrentRefreshRate_CachedValue = 0;
|
||||
gamescope::ConVar<bool> cv_bypass_steam_resolution{ "bypass_steam_resolution", false, "Workaround the 720p/800p limits Steam uses for games" };
|
||||
|
||||
+gamescope::ConVar<bool> cv_disable_touch_click{ "disable_touch_click", false, "Prevents touchscreen taps acting as clicks" };
|
||||
|
||||
static void
|
||||
update_color_mgmt()
|
||||
@@ -5128,7 +5129,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev)
|
||||
MakeFocusDirty();
|
||||
}
|
||||
}
|
||||
- if (ev->atom == ctx->atoms.steamTouchClickModeAtom )
|
||||
+ if (ev->atom == ctx->atoms.steamTouchClickModeAtom && !cv_disable_touch_click)
|
||||
{
|
||||
gamescope::cv_touch_click_mode = (gamescope::TouchClickMode) get_prop(ctx, ctx->root, ctx->atoms.steamTouchClickModeAtom, 0u );
|
||||
}
|
||||
@@ -7301,6 +7302,8 @@ steamcompmgr_main(int argc, char **argv)
|
||||
g_reshade_technique_idx = atoi(optarg);
|
||||
} else if (strcmp(opt_name, "mura-map") == 0) {
|
||||
set_mura_overlay(optarg);
|
||||
+ } else if (strcmp(opt_name, "disable-touch-click") == 0) {
|
||||
+ cv_disable_touch_click = true;
|
||||
}
|
||||
break;
|
||||
case '?':
|
||||
@@ -1,63 +0,0 @@
|
||||
From 2e4d7ad1bf2cb98eb67ff8f9385cf6657cf2e912 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Schwartz <njtransit215@gmail.com>
|
||||
Date: Wed, 3 Jul 2024 15:20:08 -0700
|
||||
Subject: [PATCH] drm: Separate BOE and SDC OLED Deck panel valid refresh rates
|
||||
|
||||
OLED Decks with BOE panels seem to struggle with a few different
|
||||
specific modesets (51hz/55hz/65hz) that SDC panels have no issues with.
|
||||
To work around this, let's make use of Gamescope recognizing each
|
||||
display manufacturer to correct the bad modesets while leaving
|
||||
SDC panel units alone. This can be reverted if an underlying cause can
|
||||
be found in the kernel in the future.
|
||||
---
|
||||
src/Backends/DRMBackend.cpp | 16 +++++++++++++---
|
||||
1 file changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp
|
||||
index 97ef446..9f93c7f 100644
|
||||
--- a/src/Backends/DRMBackend.cpp
|
||||
+++ b/src/Backends/DRMBackend.cpp
|
||||
@@ -554,7 +554,7 @@ static constexpr uint32_t s_kSteamDeckLCDRates[] =
|
||||
60,
|
||||
};
|
||||
|
||||
-static constexpr uint32_t s_kSteamDeckOLEDRates[] =
|
||||
+static constexpr uint32_t s_kSteamDeckOLEDSDCRates[] =
|
||||
{
|
||||
45, 47, 48, 49,
|
||||
50, 51, 53, 55, 56, 59,
|
||||
@@ -564,6 +564,16 @@ static constexpr uint32_t s_kSteamDeckOLEDRates[] =
|
||||
90,
|
||||
};
|
||||
|
||||
+static constexpr uint32_t s_kSteamDeckOLEDBOERates[] =
|
||||
+{
|
||||
+ 45, 47, 48, 49,
|
||||
+ 50, 53, 56, 59,
|
||||
+ 60, 62, 64, 66, 68,
|
||||
+ 72, 73, 76, 77, 78,
|
||||
+ 80, 81, 82, 84, 85, 86, 87, 88,
|
||||
+ 90,
|
||||
+};
|
||||
+
|
||||
static void update_connector_display_info_wl(struct drm_t *drm)
|
||||
{
|
||||
wlserver_lock();
|
||||
@@ -2128,12 +2138,12 @@ namespace gamescope
|
||||
if ( pProduct->product == kPIDGalileoSDC )
|
||||
{
|
||||
m_Mutable.eKnownDisplay = GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_SDC;
|
||||
- m_Mutable.ValidDynamicRefreshRates = std::span( s_kSteamDeckOLEDRates );
|
||||
+ m_Mutable.ValidDynamicRefreshRates = std::span( s_kSteamDeckOLEDSDCRates );
|
||||
}
|
||||
else if ( pProduct->product == kPIDGalileoBOE )
|
||||
{
|
||||
m_Mutable.eKnownDisplay = GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_BOE;
|
||||
- m_Mutable.ValidDynamicRefreshRates = std::span( s_kSteamDeckOLEDRates );
|
||||
+ m_Mutable.ValidDynamicRefreshRates = std::span( s_kSteamDeckOLEDBOERates );
|
||||
}
|
||||
else
|
||||
{
|
||||
--
|
||||
2.45.2
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp
|
||||
index d7498e5..d1800a8 100644
|
||||
--- a/src/steamcompmgr.cpp
|
||||
+++ b/src/steamcompmgr.cpp
|
||||
@@ -3271,7 +3271,7 @@ found:;
|
||||
if ( window_has_commits( focus ) )
|
||||
out->focusWindow = focus;
|
||||
else
|
||||
- focus->outdatedInteractiveFocus = true;
|
||||
+ out->outdatedInteractiveFocus = true;
|
||||
|
||||
// Always update X's idea of focus, but still dirty
|
||||
// the it being outdated so we can resolve that globally later.
|
||||
@@ -5995,28 +5995,37 @@ bool handle_done_commit( steamcompmgr_win_t *w, xwayland_ctx_t *ctx, uint64_t co
|
||||
// Window just got a new available commit, determine if that's worth a repaint
|
||||
|
||||
// If this is an overlay that we're presenting, repaint
|
||||
- if ( w == global_focus.overlayWindow && w->opacity != TRANSLUCENT )
|
||||
+ if ( gameFocused )
|
||||
{
|
||||
- hasRepaintNonBasePlane = true;
|
||||
- }
|
||||
+ if ( w == global_focus.overlayWindow && w->opacity != TRANSLUCENT )
|
||||
+ {
|
||||
+ hasRepaintNonBasePlane = true;
|
||||
+ }
|
||||
|
||||
- if ( w == global_focus.notificationWindow && w->opacity != TRANSLUCENT )
|
||||
- {
|
||||
- hasRepaintNonBasePlane = true;
|
||||
+ if ( w == global_focus.notificationWindow && w->opacity != TRANSLUCENT )
|
||||
+ {
|
||||
+ hasRepaintNonBasePlane = true;
|
||||
+ }
|
||||
}
|
||||
-
|
||||
- // If this is an external overlay, repaint
|
||||
- if ( w == global_focus.externalOverlayWindow && w->opacity != TRANSLUCENT )
|
||||
+ if ( ctx )
|
||||
{
|
||||
- hasRepaintNonBasePlane = true;
|
||||
+ if ( ctx->focus.outdatedInteractiveFocus )
|
||||
+ {
|
||||
+ MakeFocusDirty();
|
||||
+ ctx->focus.outdatedInteractiveFocus = false;
|
||||
+ }
|
||||
}
|
||||
-
|
||||
- if ( w->outdatedInteractiveFocus )
|
||||
+ if ( global_focus.outdatedInteractiveFocus )
|
||||
{
|
||||
MakeFocusDirty();
|
||||
- w->outdatedInteractiveFocus = false;
|
||||
- }
|
||||
+ global_focus.outdatedInteractiveFocus = false;
|
||||
|
||||
+ // If this is an external overlay, repaint
|
||||
+ if ( w == global_focus.externalOverlayWindow && w->opacity != TRANSLUCENT )
|
||||
+ {
|
||||
+ hasRepaintNonBasePlane = true;
|
||||
+ }
|
||||
+ }
|
||||
// If this is the main plane, repaint
|
||||
if ( w == global_focus.focusWindow && !w->isSteamStreamingClient )
|
||||
{
|
||||
@@ -1,7 +0,0 @@
|
||||
prefix=/usr
|
||||
includedir=${prefix}/include/stb
|
||||
|
||||
Name: stb
|
||||
Description: Single-file public domain libraries for C/C++
|
||||
Version: 0.1.0
|
||||
Cflags: -I${includedir}
|
||||
@@ -1,137 +0,0 @@
|
||||
%global libliftoff_minver 0.4.1
|
||||
|
||||
%global _default_patch_fuzz 2
|
||||
%global gamescope_tag 3.14.24
|
||||
|
||||
Name: terra-gamescope
|
||||
Version: 100.%{gamescope_tag}
|
||||
Release: 1%?dist
|
||||
Summary: Micro-compositor for video games on Wayland
|
||||
|
||||
License: BSD
|
||||
URL: https://github.com/ValveSoftware/gamescope
|
||||
|
||||
# Create stb.pc to satisfy dependency('stb')
|
||||
Source0: stb.pc
|
||||
|
||||
# https://github.com/ChimeraOS/gamescope
|
||||
Patch0: chimeraos.patch
|
||||
# https://hhd.dev/
|
||||
Patch1: disable-steam-touch-click-atom.patch
|
||||
# https://github.com/ValveSoftware/gamescope/pull/1281
|
||||
Patch2: deckhd.patch
|
||||
# https://github.com/ValveSoftware/gamescope/issues/1398
|
||||
Patch3: drm-Separate-BOE-and-SDC-OLED-Deck-panel-rates.patch
|
||||
# https://github.com/ValveSoftware/gamescope/issues/1369
|
||||
Patch4: revert-299bc34.patch
|
||||
# https://github.com/ValveSoftware/gamescope/pull/1231
|
||||
Patch5: 1231.patch
|
||||
|
||||
BuildRequires: meson >= 0.54.0
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: glm-devel
|
||||
BuildRequires: google-benchmark-devel
|
||||
BuildRequires: libXmu-devel
|
||||
BuildRequires: libXcursor-devel
|
||||
BuildRequires: libeis-devel
|
||||
BuildRequires: pixman-devel
|
||||
BuildRequires: pkgconfig(libdisplay-info)
|
||||
BuildRequires: pkgconfig(pixman-1)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xdamage)
|
||||
BuildRequires: pkgconfig(xcomposite)
|
||||
BuildRequires: pkgconfig(xrender)
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(xfixes)
|
||||
BuildRequires: pkgconfig(xxf86vm)
|
||||
BuildRequires: pkgconfig(xtst)
|
||||
BuildRequires: pkgconfig(xres)
|
||||
BuildRequires: pkgconfig(libdrm)
|
||||
BuildRequires: pkgconfig(vulkan)
|
||||
BuildRequires: pkgconfig(wayland-scanner)
|
||||
BuildRequires: pkgconfig(wayland-server)
|
||||
BuildRequires: pkgconfig(wayland-protocols) >= 1.17
|
||||
BuildRequires: pkgconfig(xkbcommon)
|
||||
BuildRequires: pkgconfig(sdl2)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||
BuildRequires: pkgconfig(libavif)
|
||||
#BuildRequires: (pkgconfig(wlroots) >= 0.18.0 with pkgconfig(wlroots) < 0.19.0)
|
||||
#BuildRequires: (pkgconfig(libliftoff) >= 0.4.1 with pkgconfig(libliftoff) < 0.5)
|
||||
BuildRequires: pkgconfig(libliftoff)
|
||||
BuildRequires: pkgconfig(libcap)
|
||||
BuildRequires: pkgconfig(hwdata)
|
||||
BuildRequires: pkgconfig(libudev)
|
||||
BuildRequires: pkgconfig(libseat)
|
||||
BuildRequires: pkgconfig(libinput)
|
||||
BuildRequires: xcb-util-wm-devel
|
||||
BuildRequires: pkgconfig(xcb-errors)
|
||||
BuildRequires: spirv-headers-devel
|
||||
# Enforce the the minimum EVR to contain fixes for all of:
|
||||
# CVE-2021-28021 CVE-2021-42715 CVE-2021-42716 CVE-2022-28041 CVE-2023-43898
|
||||
# CVE-2023-45661 CVE-2023-45662 CVE-2023-45663 CVE-2023-45664 CVE-2023-45666
|
||||
# CVE-2023-45667
|
||||
BuildRequires: stb_image-devel >= 2.28^20231011gitbeebb24-12
|
||||
# Header-only library: -static is for tracking per guidelines
|
||||
BuildRequires: stb_image-static
|
||||
BuildRequires: stb_image_resize-devel
|
||||
BuildRequires: stb_image_resize-static
|
||||
BuildRequires: stb_image_write-devel
|
||||
BuildRequires: stb_image_write-static
|
||||
BuildRequires: /usr/bin/glslangValidator
|
||||
BuildRequires: libdecor-devel
|
||||
BuildRequires: libXdamage-devel
|
||||
BuildRequires: xorg-x11-server-Xwayland-devel
|
||||
BuildRequires: git
|
||||
|
||||
# libliftoff hasn't bumped soname, but API/ABI has changed for 0.2.0 release
|
||||
Requires: libliftoff%{?_isa} >= %{libliftoff_minver}
|
||||
Requires: xorg-x11-server-Xwayland
|
||||
Requires: gamescope-libs = %{version}-%{release}
|
||||
Requires: gamescope-libs(x86-32) = %{version}-%{release}
|
||||
Recommends: mesa-dri-drivers
|
||||
Recommends: mesa-vulkan-drivers
|
||||
|
||||
%description
|
||||
Gamescope is the micro-compositor optimized for running video games on Wayland.
|
||||
|
||||
%package libs
|
||||
Summary: libs for Gamescope
|
||||
%description libs
|
||||
%summary
|
||||
|
||||
%prep
|
||||
git clone --depth 1 --branch %{gamescope_tag} %{url}.git
|
||||
cd gamescope
|
||||
git submodule update --init --recursive
|
||||
mkdir -p pkgconfig
|
||||
cp %{SOURCE0} pkgconfig/stb.pc
|
||||
|
||||
# Replace spirv-headers include with the system directory
|
||||
sed -i 's^../thirdparty/SPIRV-Headers/include/spirv/^/usr/include/spirv/^' src/meson.build
|
||||
|
||||
%autopatch -p1
|
||||
|
||||
%build
|
||||
cd gamescope
|
||||
export PKG_CONFIG_PATH=pkgconfig
|
||||
%meson -Dpipewire=enabled -Dinput_emulation=enabled -Ddrm_backend=enabled -Drt_cap=enabled -Davif_screenshots=enabled -Dsdl2_backend=enabled
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
cd gamescope
|
||||
%meson_install --skip-subprojects
|
||||
|
||||
%files
|
||||
%license gamescope/LICENSE
|
||||
%doc gamescope/README.md
|
||||
%caps(cap_sys_nice=eip) %{_bindir}/gamescope
|
||||
%{_bindir}/gamescopectl
|
||||
%{_bindir}/gamescopestream
|
||||
%{_bindir}/gamescopereaper
|
||||
|
||||
%files libs
|
||||
%{_libdir}/libVkLayer_FROG_gamescope_wsi_*.so
|
||||
%{_datadir}/vulkan/implicit_layer.d/VkLayer_FROG_gamescope_wsi.*.json
|
||||
@@ -1 +0,0 @@
|
||||
rpm.global("gamescope_tag", gh_tag("ValveSoftware/gamescope"));
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user