mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 09:01:55 +00:00
Compare commits
1018 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bbd9846e43 | |||
| 7e6c8e50a4 | |||
| 4a8ce403d0 | |||
| ec5448b96d | |||
| d91a705426 | |||
| 193b5f0705 | |||
| a3545be262 | |||
| 5e7cbd1bc0 | |||
| 0d495044d6 | |||
| 5b9f395889 | |||
| 0f683747c0 | |||
| adaef9aa28 | |||
| 91ad29ade1 | |||
| 517d1259ae | |||
| a8d27b3b85 | |||
| 4c682a1b68 | |||
| b50d5ae179 | |||
| b30d71317e | |||
| 9f2d74d6a9 | |||
| eecfb3d46d | |||
| d2e807b9e8 | |||
| c8ec913e16 | |||
| 404c598885 | |||
| aa5352c4ae | |||
| 2347204c3c | |||
| 6d8499b8f8 | |||
| 24b8a294df | |||
| 22edeaa138 | |||
| 22059805b4 | |||
| 50c6084c26 | |||
| 28f53f3124 | |||
| 487b2d3fb6 | |||
| 17e7d807fa | |||
| e0831f3401 | |||
| 4098ed07d7 | |||
| f9f49d5e25 | |||
| 76fb757094 | |||
| 4d34575972 | |||
| d5d1bed869 | |||
| 68e4c86d71 | |||
| 417da16955 | |||
| 8b5e75f4a3 | |||
| df79f497bb | |||
| 372f512c56 | |||
| 5c33a7deee | |||
| 0c37ae038e | |||
| fda915b0d3 | |||
| 049328657f | |||
| 4ca23d4317 | |||
| 2f5e5855b0 | |||
| 82834bbc83 | |||
| c41290f658 | |||
| 34f55bafba | |||
| 670981ab54 | |||
| 2abdca4329 | |||
| 40d99014a4 | |||
| 3decb051d7 | |||
| 41e358e842 | |||
| e3b854bccb | |||
| 203a2f7353 | |||
| 316811c860 | |||
| 3ff5c78ff1 | |||
| fe632fcbb1 | |||
| 69e7e8b868 | |||
| 79a67cfa39 | |||
| 4c81264cb7 | |||
| 9754cbeb87 | |||
| 1c86b6f969 | |||
| fb3ba6c002 | |||
| 2239dc48c2 | |||
| d0662be981 | |||
| 1aaacb5410 | |||
| eb9e0263c7 | |||
| de321682d8 | |||
| bd97867f5c | |||
| b73e78925d | |||
| d7820129a7 | |||
| 25f0bed3a3 | |||
| 2c3fd888b1 | |||
| 2a6c6b30d3 | |||
| c891d9b963 | |||
| a7df1de622 | |||
| 2823e967c0 | |||
| fd1bc4f96b | |||
| 7ad02ffc21 | |||
| c3b769ed7b | |||
| f6571a8be7 | |||
| 58ddf76290 | |||
| 59aeb2e57f | |||
| 8df98fe1ea | |||
| 74639dbc35 | |||
| 6088711bec | |||
| 1b6b9fb92b | |||
| 17f149c1a5 | |||
| 9c6eda5d9e | |||
| 31e5b2be7f | |||
| f29d408be0 | |||
| 859a3bf5ab | |||
| 3d5fd30c32 | |||
| cc89e2f243 | |||
| 766ab49ebe | |||
| 1879797994 | |||
| a91016b1a6 | |||
| eed353ab37 | |||
| 3115afa549 | |||
| 5db23ec3af | |||
| d6af42083c | |||
| 995bd8aed0 | |||
| 7991182fc9 | |||
| 127f736636 | |||
| b1f33cbf4a | |||
| 4da543d721 | |||
| acc804ebe3 | |||
| 5d384c83c5 | |||
| e1841bfc88 | |||
| 510834f4e6 | |||
| fbe232b4f1 | |||
| 1ea388e860 | |||
| 7cc3cbf4df | |||
| 8ac454d8e8 | |||
| d195906e60 | |||
| 494c843722 | |||
| 2b3912a9fd | |||
| 9d0afe095c | |||
| 6e2287f098 | |||
| c8679dada7 | |||
| cc46576a58 | |||
| 4404bab36c | |||
| c2676b7a1a | |||
| 169224b364 | |||
| 47c1779a02 | |||
| c327e150c1 | |||
| 745d2b4870 | |||
| 77c4002994 | |||
| 5f438fa6f2 | |||
| 7b667bbc5a | |||
| 10696e1b10 | |||
| b3dda3e0a0 | |||
| 3f8e328cb0 | |||
| 9a4907ddf2 | |||
| adf709ba4d | |||
| 9d93a71c72 | |||
| 9287b19838 | |||
| 8b311c3f15 | |||
| 4d575aa799 | |||
| 0c2cd5cf06 | |||
| 277c232f16 | |||
| d6eb08af38 | |||
| 810d59fa94 | |||
| f55a210a5a | |||
| 3a0d36ec64 | |||
| 4749f9a600 | |||
| ef3465cc61 | |||
| c5905eb1a8 | |||
| c7d6771c15 | |||
| 2664343107 | |||
| fe3a5a9df2 | |||
| f2dd0fe974 | |||
| 4ba7eacc9f | |||
| 39e5d775af | |||
| 46d416ca22 | |||
| 34b9c2e64e | |||
| 2052eecf3e | |||
| 62cd380049 | |||
| b639209716 | |||
| 9038d046d2 | |||
| 027ba927a0 | |||
| 883abe453c | |||
| d94ee8f49d | |||
| 571f85f67c | |||
| 342e475f9b | |||
| b21dc79288 | |||
| 7f56c8e5e1 | |||
| c5e4f66330 | |||
| cd271f101c | |||
| 0f2fa8d6a0 | |||
| 17134e953a | |||
| e8471fc295 | |||
| 545691653b | |||
| c138602a15 | |||
| 265197fd94 | |||
| ce2fdefa5a | |||
| 93d0cd8b21 | |||
| 027c8f1e7e | |||
| cb8cc35fa8 | |||
| 5872dcddc1 | |||
| 8d9845eea1 | |||
| 5b7a4d9cf8 | |||
| 755e25f4e0 | |||
| 7ee30ee35c | |||
| a53c1c5597 | |||
| 0546f3b6fe | |||
| 46e54ed7c2 | |||
| 7b3fdc34a7 | |||
| fa1ebc86b3 | |||
| 931019fd88 | |||
| f65798633f | |||
| 5f8c763be9 | |||
| 422aa426c7 | |||
| 656e819a11 | |||
| 7b3c163484 | |||
| 898cb2bf8e | |||
| 62c6782160 | |||
| af8cacd84b | |||
| 716a904c10 | |||
| 453e63d57e | |||
| 6ae00b23d5 | |||
| 1eab735984 | |||
| c2b157b409 | |||
| 8533c40711 | |||
| 1f2208bdfc | |||
| 17f93ef29e | |||
| 44e79adcd3 | |||
| 12997f3439 | |||
| dc8b024d58 | |||
| 2d25317135 | |||
| 863531d90c | |||
| dbcc4cc99f | |||
| 30a4cd0eac | |||
| f2cedfd06d | |||
| f82ade35cb | |||
| dc0eada95f | |||
| ca9a7e38e8 | |||
| 96624d8022 | |||
| 6ac624b821 | |||
| ecf1763002 | |||
| 5da3206cd9 | |||
| 8cd6525400 | |||
| d22a6dbb6f | |||
| 3ee95b77f2 | |||
| 5953aa70cd | |||
| 8a397e2d82 | |||
| 03b8f5cb8b | |||
| 9f27c31a2b | |||
| 53694a85c1 | |||
| 1bd3420363 | |||
| 7ee42222b1 | |||
| 4cb4811719 | |||
| cc3ce4360e | |||
| 88ce74d276 | |||
| 5f2c456f53 | |||
| 9ef6e1d757 | |||
| 57b287a71e | |||
| a015a508ee | |||
| 76d0b3260d | |||
| 827b4eee3b | |||
| c44ad50c4b | |||
| 96daca21b2 | |||
| 2e18b3eb05 | |||
| 2338b66a8f | |||
| 25a9b9bc25 | |||
| 4265a46c31 | |||
| 3a0d14ef0b | |||
| 54a0eea060 | |||
| 456623d0f7 | |||
| d628d6d1e6 | |||
| 469a6b58fa | |||
| a92413ba32 | |||
| a4c139525f | |||
| 08ce917a0e | |||
| cac0087cad | |||
| ef7f87a2ff | |||
| 975bb13f17 | |||
| 5c46aff430 | |||
| 7995ff5deb | |||
| 3d35f03f2f | |||
| efc17702ce | |||
| 2b1c3161d1 | |||
| 97d5277d11 | |||
| 438657fb15 | |||
| 7f219609bf | |||
| acfde15853 | |||
| 65db46fc66 | |||
| 31ebb2134c | |||
| fdd931c15a | |||
| 588a020f1e | |||
| cdaa591b30 | |||
| b26ce2cc70 | |||
| a987bb360f | |||
| 0c9231c559 | |||
| 2d13c26e79 | |||
| b312507b9e | |||
| f48cc657ae | |||
| 5ef70c41f9 | |||
| f45093bad9 | |||
| bd353ae726 | |||
| d714015d91 | |||
| e7a7379d61 | |||
| 834dd08e07 | |||
| c06ee72d5f | |||
| 710370275f | |||
| 719c28a5b0 | |||
| 41e56e1924 | |||
| 92ba5ebf90 | |||
| 07e4060dd7 | |||
| f2be7ffaf7 | |||
| a312c2e70b | |||
| 7783a4f9b9 | |||
| 64b0e40fb4 | |||
| aa61615286 | |||
| 630fc2e769 | |||
| 6fc3a56861 | |||
| ad74ef161b | |||
| 1532c4503a | |||
| 85dd65a808 | |||
| 83149d94c4 | |||
| 38634f4fbd | |||
| f4cd2b90b4 | |||
| 2a545f0e16 | |||
| 300e17155b | |||
| 6a688a7990 | |||
| 746b1da48f | |||
| 460a1170a1 | |||
| 206a45a820 | |||
| 7eaf23eccb | |||
| b6fe5d7aa7 | |||
| aaa8aefa7d | |||
| 2c97254165 | |||
| 4c4f424b8f | |||
| 4669245930 | |||
| 36be59bfae | |||
| cc38c303ea | |||
| 55d4c937fa | |||
| 1dc5df1197 | |||
| 7724f9d048 | |||
| 558345d11f | |||
| f7b6c732c1 | |||
| 7af1b1fea3 | |||
| c5ab756e2f | |||
| 04110277f3 | |||
| 9fa0c587f2 | |||
| 5c5cacb552 | |||
| 6e37100034 | |||
| 0e874d3348 | |||
| cf0a50d027 | |||
| a99c3088d5 | |||
| c05bd4372a | |||
| 0792ac212c | |||
| a36c357a73 | |||
| 1eb421d93e | |||
| b5e50afdee | |||
| ec2621eabc | |||
| dc69da317f | |||
| 0fd354272a | |||
| 500df9fcc0 | |||
| c079b14dac | |||
| bb48ae9e0d | |||
| 93b46493bf | |||
| c78e76dfc2 | |||
| c300dd6b3b | |||
| 00efd174bc | |||
| 7072f9f9d0 | |||
| aae0b3620e | |||
| c7a7801a29 | |||
| 75b70c2f16 | |||
| b39d287b80 | |||
| 24d3d1bc8c | |||
| 588c346d1f | |||
| c012c6f94e | |||
| 07c5fa1362 | |||
| f4d5b3b127 | |||
| ccd465429e | |||
| 7ad92b62ed | |||
| 53d00ac234 | |||
| 54e5703d7f | |||
| a61a75ce59 | |||
| a15cb83646 | |||
| 236c626547 | |||
| abac9ae51d | |||
| 20867b33ef | |||
| 8b9ae53c47 | |||
| 795734516b | |||
| d1f3c6647d | |||
| 490042a444 | |||
| f13c01d951 | |||
| 03c1e777d0 | |||
| 761f33ab2a | |||
| 6d45a73dcf | |||
| e57755caec | |||
| 29546a8ca3 | |||
| bf0cfa9d1e | |||
| 9237c0263f | |||
| d6fb3c49c9 | |||
| 94ee0f2a97 | |||
| cdef1f676f | |||
| 9397ca6ef0 | |||
| 10024266ec | |||
| 44d6607858 | |||
| 386a6a8acc | |||
| fba68f7126 | |||
| cbedafeb27 | |||
| a5a518a23e | |||
| 31df00069c | |||
| e6f43c6386 | |||
| 3ec4e2f9c3 | |||
| 81d8f6bb34 | |||
| e703cec067 | |||
| 7d9d5125ac | |||
| ed332f48c2 | |||
| 367594a9c3 | |||
| 1106612c58 | |||
| ed4cd414c3 | |||
| 69f56d43b9 | |||
| 954dfdcafd | |||
| 578512bc15 | |||
| 69c68fa4c5 | |||
| e824f972bc | |||
| 8240f7ed12 | |||
| f382ba263b | |||
| bea87e9a54 | |||
| 2e846d06cf | |||
| 2c2f1b3fc1 | |||
| 13b64edf9e | |||
| 4b1b38a086 | |||
| d889b17c23 | |||
| 6cba232fa4 | |||
| 0b4e790ec7 | |||
| 2858525c55 | |||
| f943572952 | |||
| 1f6bd8dd48 | |||
| 710ca20e22 | |||
| dc975c3f17 | |||
| 29210e2847 | |||
| fbccc7623f | |||
| df2b7ca50d | |||
| df583594cb | |||
| 941f10fd2d | |||
| 47d1cddc70 | |||
| ac1885a006 | |||
| acc2ea46b6 | |||
| 1b4b95df2f | |||
| 3d77c115b4 | |||
| 91982d3a3c | |||
| 9a06dd0646 | |||
| d368e59609 | |||
| 8b1495fc98 | |||
| 61d31f9b3d | |||
| 637834893d | |||
| 5754eae55f | |||
| 887b5baa6a | |||
| 45a559e6c5 | |||
| 83100ae448 | |||
| a049905459 | |||
| 1871d36c61 | |||
| ba65389167 | |||
| 010aef5096 | |||
| 980127b7ed | |||
| 2c3267df57 | |||
| 86e6954bcb | |||
| 20f95544e5 | |||
| 0a3a884a21 | |||
| 9cdc5fe7c6 | |||
| 61f44cf208 | |||
| 8e1ff8b170 | |||
| b26d13c4f3 | |||
| a49785d705 | |||
| d305feb173 | |||
| acff4983c5 | |||
| 9abb6cf584 | |||
| 329a736780 | |||
| 05ffaeff6c | |||
| 4fde2e3701 | |||
| ba1463369c | |||
| 3efd4c5eca | |||
| 43f158bb02 | |||
| 3836452e06 | |||
| b6b48e6172 | |||
| eb79f9652b | |||
| 45b2961324 | |||
| 7bc8c5fe17 | |||
| 7b034ffa8b | |||
| 68b258ed3d | |||
| 7e4bb084b8 | |||
| 4c0cc14339 | |||
| aa7dcf65e3 | |||
| b46f275124 | |||
| c7d513c7f0 | |||
| 2725487bff | |||
| 6ec4334f05 | |||
| 5153bb3d97 | |||
| bc45c8c396 | |||
| abdbd5d193 | |||
| 21443e086a | |||
| 30af746588 | |||
| db0f004f3f | |||
| 16fae52da2 | |||
| 2e31c5b88a | |||
| 5f84eee731 | |||
| cf3c21ddc8 | |||
| 3b1a441047 | |||
| 68585b2ccd | |||
| a0ef272a83 | |||
| c308583ef7 | |||
| 4dcbcd5023 | |||
| 34bdd673e7 | |||
| 1cf8f30c0e | |||
| 8fe9c05515 | |||
| cbf0625cfa | |||
| 52805bb6b9 | |||
| bb109cef4a | |||
| 8d08b93c2f | |||
| 0bad9f9a60 | |||
| a3d1694c44 | |||
| a7f53d3e3f | |||
| f65a90985b | |||
| c43c273016 | |||
| 92f8ad8756 | |||
| 63a7210b4b | |||
| f9dd7beb94 | |||
| f471139ec1 | |||
| 73052236e9 | |||
| 2c1f90c3bc | |||
| fd59692714 | |||
| ab3c97ae96 | |||
| 040242f705 | |||
| f99db348be | |||
| 5da6113622 | |||
| 4fafa8b4dd | |||
| d9219cfefd | |||
| e1431d172b | |||
| 9fd5583c55 | |||
| 24544e34df | |||
| b46963b804 | |||
| c072e1af8f | |||
| 173b93864b | |||
| 924efafd86 | |||
| 4032c9cd2f | |||
| 50440a806c | |||
| bda4cdf8f2 | |||
| d1bbafeb6e | |||
| 6d50cc7a45 | |||
| 61ee2b6de9 | |||
| 808438d1fa | |||
| a2e1dbe169 | |||
| e75fdbcb95 | |||
| f55e3ec73b | |||
| 392fedd41e | |||
| 02c77f6c33 | |||
| d61c6f01cc | |||
| 2025eafbf6 | |||
| 333d3bc8a6 | |||
| 7aa94d8391 | |||
| bbad4fd13b | |||
| 64474153f5 | |||
| 90a38d0aa9 | |||
| 87585ab26d | |||
| be52ce2f76 | |||
| b027b3e913 | |||
| 7483cc8aa1 | |||
| c7b12ea62f | |||
| 6446430c22 | |||
| 9dbb12b27d | |||
| d502a44f6e | |||
| 8ff5e9c8e3 | |||
| b3d05e61fa | |||
| 17064d80d1 | |||
| 1d6c077f43 | |||
| 477378c84f | |||
| c6fbd9f8b7 | |||
| e1179d0465 | |||
| dd8befcf72 | |||
| 1c3e00092f | |||
| aeb49d309d | |||
| 66adc280d7 | |||
| 9cad6b46e3 | |||
| 9eac9bf699 | |||
| 4ed3f6719f | |||
| f5bd396763 | |||
| b659c3e580 | |||
| cde3cf63d9 | |||
| ae5147dbe1 | |||
| 6a1b812195 | |||
| 631b3985d1 | |||
| 487c51819f | |||
| eee9ba600d | |||
| bd5248e3ac | |||
| 0ea3503991 | |||
| 0b6baa4cb4 | |||
| f8f0b68944 | |||
| ee6fc60a54 | |||
| 691ccc7025 | |||
| c0dc070c4a | |||
| 02293d36df | |||
| 7513bffb63 | |||
| b68c608e95 | |||
| af8199c5ed | |||
| 7d29601efa | |||
| 5d48436d85 | |||
| e6d6774339 | |||
| bdf5be477a | |||
| 72823108a9 | |||
| 1da46e8365 | |||
| 16d6069a37 | |||
| 6008928313 | |||
| eec33556ce | |||
| 11005ecc8f | |||
| c133d5c5ef | |||
| 299c16239b | |||
| 7c658be8b9 | |||
| cf79d2fcae | |||
| f2935078e2 | |||
| 53e769981b | |||
| ec10d3b397 | |||
| afda1534e0 | |||
| 6175ebdb1e | |||
| 48c0f283a5 | |||
| d659576806 | |||
| 35c9eac0fa | |||
| b899524a8e | |||
| 0b3a989791 | |||
| 1349e48035 | |||
| 7b0ab652cb | |||
| 6495466410 | |||
| c2a1919662 | |||
| 3615850069 | |||
| 53e390ed05 | |||
| c1f16f5e76 | |||
| c8aea961b2 | |||
| c394ebf6ce | |||
| aac7abcbb1 | |||
| b584ea0777 | |||
| 7a71d2ed6a | |||
| 4d469037a7 | |||
| 09d36a463c | |||
| 454d81fe1b | |||
| cb5445e842 | |||
| 41bc785fe7 | |||
| b50e43e0e4 | |||
| 131b818fa4 | |||
| 56dd2453d0 | |||
| 00333a6f46 | |||
| a85924e921 | |||
| 2bc6218e40 | |||
| 4c14600629 | |||
| 37416a0926 | |||
| 156bcfee26 | |||
| 4663814a08 | |||
| 32bcce6505 | |||
| 31381d1334 | |||
| bd88c6e422 | |||
| b89f19fe81 | |||
| e102e70496 | |||
| 937f7ea3ce | |||
| de391e3651 | |||
| 3b42ab7869 | |||
| 2f8f351374 | |||
| 055bb96361 | |||
| 8e82e6f82f | |||
| c3f89c0f35 | |||
| e45679b929 | |||
| 956920719a | |||
| c6541525e4 | |||
| 1b29ebb35b | |||
| d8c7d39fcc | |||
| edb46ded8d | |||
| 6342f088cb | |||
| c371c138b3 | |||
| f4663b2f9a | |||
| e4d82a0ce2 | |||
| 89461dff5d | |||
| e557b9679e | |||
| eba65d4d25 | |||
| b060d67633 | |||
| c59d7bddc8 | |||
| cc42a7fbae | |||
| 0daa89b025 | |||
| 940704d2e4 | |||
| 5ba5dd5fa4 | |||
| 47bea643f5 | |||
| 128412b019 | |||
| 09651d8b6a | |||
| e390d9b88f | |||
| abec618543 | |||
| 6c3c9f73d4 | |||
| 0bf2e96d9c | |||
| 637f1af74c | |||
| 3494859209 | |||
| 65859616ce | |||
| b0387aa1ea | |||
| 2227f0f362 | |||
| e28611c479 | |||
| 3f8c62aaed | |||
| 4ad7f57dda | |||
| 23a5e6f2da | |||
| f39e2f6ede | |||
| c966a165c9 | |||
| 353d67376b | |||
| 7bb0c722ac | |||
| 0f742eb969 | |||
| fbebd351cd | |||
| 1ffd81560d | |||
| 8fff8d3a7e | |||
| 545ae4bc4a | |||
| fbbe1903ac | |||
| 7e4f59149b | |||
| fbc03cddee | |||
| 2ccb5f569d | |||
| 48101bff82 | |||
| 455b0af16d | |||
| ea8b7990b9 | |||
| 4d2fc43d6d | |||
| af9fa4dba1 | |||
| db3d1bda5f | |||
| b53ec60f4f | |||
| 73e8c4a806 | |||
| c4b61f8314 | |||
| a29cb93a40 | |||
| 3fb4a8c4c5 | |||
| d980349f56 | |||
| 48e0b86eab | |||
| c1fbf904fe | |||
| cc91987ca5 | |||
| 2c30ff8729 | |||
| ea79cad919 | |||
| 414b7e6ae8 | |||
| 7af9817455 | |||
| decbbdd592 | |||
| 9a967b5305 | |||
| a5e478d2d1 | |||
| 2ab0110c02 | |||
| 176c357c54 | |||
| 1aecf6d7af | |||
| ef2c1d31a0 | |||
| 57208f2db1 | |||
| 5f0abc4ac0 | |||
| a7d3766be1 | |||
| 724cf3775b | |||
| ffc163cc46 | |||
| fb40d5d27e | |||
| 09acf99ae1 | |||
| 515a0283ab | |||
| e1023c6237 | |||
| 018b80139a | |||
| a30cbda269 | |||
| 781f8ad730 | |||
| 44d261f4a4 | |||
| 405f501ff3 | |||
| 6da20c0fcc | |||
| d722d326ee | |||
| 29fc61879c | |||
| 39c9511e3c | |||
| 103dab2e74 | |||
| e31f618353 | |||
| 1803e9232e | |||
| 5b4014f135 | |||
| 98feffc4af | |||
| 14f5eb3437 | |||
| 46cbb7c0e8 | |||
| f31987fdd1 | |||
| 3cf58ccb0d | |||
| 4ea555e308 | |||
| 6cd29151b7 | |||
| 1a5f650c74 | |||
| a672e169d4 | |||
| eb09ecdadc | |||
| 631180f7df | |||
| 98a2c02c0f | |||
| 8a3ac2646d | |||
| d8d50b6758 | |||
| e7cd5b6751 | |||
| 3c02f3f481 | |||
| daad0b7233 | |||
| d52c2edcf2 | |||
| 511ffda002 | |||
| 9fc434ab42 | |||
| 854bb7ac8a | |||
| 965a135b87 | |||
| f96391615c | |||
| 70d15c769c | |||
| 045b6b310e | |||
| 97ba35da4f | |||
| 20277328b8 | |||
| 2744c5c653 | |||
| aa09ac51c3 | |||
| 45310359c8 | |||
| c8ee01171a | |||
| c1d2f1fc5c | |||
| 045030e257 | |||
| be6b42e2d2 | |||
| 96bfec2357 | |||
| 2a20771945 | |||
| c84e57dc75 | |||
| 66c3a2410a | |||
| 4e0b729518 | |||
| 93d734c791 | |||
| 39017ee756 | |||
| bc69c79869 | |||
| 3853c1d60c | |||
| 8b99e99954 | |||
| d96d2e0f9e | |||
| 39dbbb5d32 | |||
| fcd51c61da | |||
| 1351a07b38 | |||
| 2252e68059 | |||
| 5c77fc452e | |||
| ae0a65ebeb | |||
| 3114f18748 | |||
| 0384b90519 | |||
| 1d6f8bc107 | |||
| da3f34d21e | |||
| ccf97ee15f | |||
| c060fec744 | |||
| 37074321b9 | |||
| 7a920bcd97 | |||
| d2d087746f | |||
| 711fb609b5 | |||
| 7f81b8fb1d | |||
| 34d1995b53 | |||
| 5670423f33 | |||
| effefa4e0f | |||
| 9989ca8c16 | |||
| 61496800ea | |||
| 8f72590561 | |||
| 4a0aa1047c | |||
| cdb72a83a9 | |||
| 91bb71e0a9 | |||
| befc156016 | |||
| e61ac7dcef | |||
| 709b849689 | |||
| 177a549630 | |||
| 167b1e4e21 | |||
| ff3c2e1103 | |||
| 89da2ceab0 | |||
| b1a9d35b6c | |||
| 29c4aabee8 | |||
| 47a658b7e5 | |||
| 64105f4bb7 | |||
| 9ce0b349bb | |||
| b2067e1fd6 | |||
| b91ecd873c | |||
| 084479f0d6 | |||
| cb806e401c | |||
| 844e1d1dd9 | |||
| fd8b8a1b1c | |||
| 21e7193586 | |||
| f938fe9484 | |||
| 7f8ca97a07 | |||
| 0819382f7c | |||
| 20d00c0a60 | |||
| a4cb1739cb | |||
| a327999db5 | |||
| ded039bb8e | |||
| e58f71f208 | |||
| 50a313a08e | |||
| 4e67c71e55 | |||
| add0ec236c | |||
| eb9019853f | |||
| 8ae2645124 | |||
| 228d2b9cc7 | |||
| 0f325f8acb | |||
| a4860d97af | |||
| dba6612527 | |||
| 149a371e0c | |||
| fc5b962736 | |||
| c27eeab547 | |||
| 4b76765057 | |||
| 649da64907 | |||
| 00ddcb40a6 | |||
| a7da8a2c1b | |||
| 5335c6cbf6 | |||
| f72ff899a9 | |||
| a35ac8b196 | |||
| 62cafe47ad | |||
| 0a0001585d | |||
| 01dea981d5 | |||
| c9fef49f9a | |||
| def139efd9 | |||
| 9a1b8ee1b4 | |||
| 184fbf8669 | |||
| 8f1ceecc57 | |||
| b50c9096c6 | |||
| 369e31e2eb | |||
| 51a09871ce | |||
| 69dbc2100f | |||
| db68d1ca14 | |||
| 3e19b88250 | |||
| b47fef993f | |||
| 83823ccef6 | |||
| 04a79331d0 | |||
| 5824081297 | |||
| 8554fca092 | |||
| 0e8403d1bd | |||
| f565dc35ac | |||
| 400344365f | |||
| 2eae3485a6 | |||
| 650c3a8706 | |||
| 76c72e1f93 | |||
| 43c5a41973 | |||
| 718bbf6d13 | |||
| 440a7b7628 | |||
| 8786640458 | |||
| a24df3cbb6 | |||
| efeaf8f258 | |||
| aa1a058ea2 | |||
| 5379a4c26e | |||
| 6ba6fd269d | |||
| 4890610d05 | |||
| 294aa83313 | |||
| 183b57e2f6 | |||
| 3038555436 | |||
| a46be416c3 | |||
| e1828548c5 | |||
| 3bd4bba601 | |||
| c57d35e94b | |||
| 1497a3c3bf | |||
| e9ba011bc5 | |||
| b13c95233f | |||
| dc630ac449 | |||
| 9810a8d938 | |||
| 60fb9ac2d8 | |||
| e074b073bb | |||
| 77ead326b5 | |||
| dd531b3abb | |||
| 71a2af8f98 | |||
| a316a9bf7d | |||
| e6467a8c57 | |||
| 8400fd3634 | |||
| edbfab3e11 | |||
| 11b6f5024e | |||
| 31100279d3 | |||
| 37f884d8e0 | |||
| 91f0ecc245 | |||
| 7864607f71 | |||
| d8aed76df9 | |||
| 26b370cde4 | |||
| 27a0d8f866 | |||
| 30aa6ce771 | |||
| 7ac9d8ed8e | |||
| 64b958bcb0 | |||
| ff16c486ac | |||
| 31eff3a7eb | |||
| 17ad4108d9 | |||
| 4bf5f8b561 | |||
| 799e0212d4 | |||
| f751e04907 | |||
| 746f473c14 | |||
| a02f0c1662 | |||
| 3eb39d7f5f | |||
| 10e787b271 | |||
| 4852539372 | |||
| 0b41a8407d | |||
| e346819511 | |||
| d11dc58801 | |||
| bdc9d06eb6 | |||
| 277488b6bc | |||
| a1089c290f | |||
| 6f91d793f7 | |||
| 368de84c8c | |||
| ac86e432ed | |||
| 69db123961 | |||
| 52cccdab08 | |||
| 9c29a20764 | |||
| 72322e81af | |||
| a0a63ba5ea | |||
| 3bfbf808a4 | |||
| c986df4c01 | |||
| 97c07ef7c5 | |||
| c8b9b978d7 | |||
| ad72d5e752 | |||
| 4fb24c698b | |||
| 630d0c5dd5 | |||
| 5b65707b6a | |||
| 4a0fbd177f | |||
| 55671ac1d3 | |||
| c53f920a4b | |||
| dd7ad98140 | |||
| 890df1f580 | |||
| 9ad2e22665 | |||
| db52ab9b36 | |||
| 82e56debb7 | |||
| 2606b0e856 | |||
| 3c69e8abb7 | |||
| 2f6868fee1 | |||
| d04c5be94b | |||
| efb002ea41 | |||
| f2a73aad58 | |||
| e2427a201a | |||
| 0bb1a55394 | |||
| 9cb9836178 | |||
| 8cb7543a6e | |||
| 3cfb37d786 | |||
| dfb051ba02 | |||
| beffb6434c | |||
| 2946c93ef9 | |||
| 914ed9530c | |||
| 1dafcdd6f8 | |||
| 9518c1f5ee | |||
| 976b98355e | |||
| b6aa8d77a0 | |||
| 091be0833f | |||
| b26d1a48cc | |||
| bcfaf838cb | |||
| 79e7db1856 | |||
| 45058905b5 | |||
| d05ec400fc | |||
| 31cd4e4ca6 | |||
| c10e79c766 | |||
| 326170beba | |||
| a6eeaeb533 | |||
| 754e51f94c | |||
| 57fea0c93e | |||
| 74c7e2502e | |||
| e67aaca5aa | |||
| f8efb59044 | |||
| fe514e0a18 | |||
| f118afd124 | |||
| 1095b2d62a | |||
| 6d8d3769d5 | |||
| 0a5667ce15 | |||
| b7999fc1e1 | |||
| e08f2ad417 | |||
| 11fc99c9ea | |||
| 8317d962e6 | |||
| a1b3ac538c | |||
| 6e2204f25d | |||
| c8f674ab03 | |||
| 285cb2d6a4 | |||
| 848e5624a6 |
+1
-1
@@ -2,7 +2,7 @@
|
||||
"repoOwner": "terrapkg",
|
||||
"repoName": "packages",
|
||||
"resetAuthor": true,
|
||||
"targetBranchChoices": ["f38", "f39", "f40", "frawhide"],
|
||||
"targetBranchChoices": ["f39", "f40", "frawhide"],
|
||||
"branchLabelMapping": {
|
||||
"^sync-(.+)$": "$1"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ARG VARIANT="38"
|
||||
ARG VARIANT="rawhide"
|
||||
FROM fedora:${VARIANT}
|
||||
|
||||
RUN useradd -m vscode
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "Fedora",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"args": { "VARIANT": "38" }
|
||||
"args": { "VARIANT": "rawhide" }
|
||||
},
|
||||
"remoteUser": "vscode",
|
||||
"runArgs": [
|
||||
|
||||
@@ -6,13 +6,13 @@ on:
|
||||
paths:
|
||||
- anda/**
|
||||
branches:
|
||||
- f39
|
||||
- frawhide
|
||||
pull_request:
|
||||
branches:
|
||||
- f39
|
||||
- frawhide
|
||||
merge_group:
|
||||
branches:
|
||||
- f39
|
||||
- frawhide
|
||||
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:f39
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
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: ["39"]
|
||||
version: ["rawhide"]
|
||||
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}}
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
- 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}}
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
|
||||
@@ -7,7 +7,7 @@ jobs:
|
||||
bootstrap:
|
||||
strategy:
|
||||
matrix:
|
||||
version: ["39"]
|
||||
version: ["rawhide"]
|
||||
arch: ["x86_64", "aarch64"]
|
||||
fail-fast: true
|
||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }}
|
||||
|
||||
+15
-17
@@ -14,8 +14,6 @@ on:
|
||||
required: false
|
||||
default: all
|
||||
type: string
|
||||
|
||||
|
||||
|
||||
jobs:
|
||||
parse:
|
||||
@@ -28,25 +26,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: ["39"]
|
||||
version: ["rawhide"]
|
||||
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' }}
|
||||
@@ -102,7 +100,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}}
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
- 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}}
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg}} ${{matrix.version}} ${{matrix.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
pkg: ${{ fromJson(inputs.packages) }}
|
||||
version: ["39"]
|
||||
version: ["rawhide"]
|
||||
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}}
|
||||
run: ./.github/workflows/mg.sh true ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
- 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}}
|
||||
run: ./.github/workflows/mg.sh false ${{matrix.pkg.pkg}} ${{matrix.version}} ${{matrix.pkg.arch}} ${{github.run_id}} ${{secrets.MADOGUCHI_JWT}} ${{github.sha}}
|
||||
|
||||
@@ -3,18 +3,18 @@ name: Lint
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- f39
|
||||
- frawhide
|
||||
pull_request:
|
||||
branches:
|
||||
- f39
|
||||
- frawhide
|
||||
merge_group:
|
||||
branches:
|
||||
- f39
|
||||
- frawhide
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:f39
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
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}"
|
||||
export p="{\"id\":\"$5\",\"ver\":\"%v\",\"rel\":\"%r\",\"arch\":\"$4\",\"dirs\":\"$dirs\",\"succ\":$1,\"commit\":\"%6\"}"
|
||||
|
||||
if [[ $1 == false ]]; then
|
||||
d=${p/\%v/?}
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
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:f39
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
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:f39
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -17,11 +17,12 @@ jobs:
|
||||
fetch-depth: 0
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
|
||||
- name: Install SSH signing key
|
||||
- name: Install SSH signing key & Set up git repository
|
||||
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
|
||||
@@ -30,7 +31,6 @@ 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,8 +46,7 @@ jobs:
|
||||
git add *
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
copy_over f38 || true
|
||||
copy_over f39 || 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:f39
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
options: --cap-add=SYS_ADMIN --privileged
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -17,11 +17,12 @@ jobs:
|
||||
fetch-depth: 0
|
||||
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
|
||||
|
||||
- name: Install SSH signing key
|
||||
- name: Install SSH signing key & Set up git repository
|
||||
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
|
||||
@@ -31,7 +32,6 @@ 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,8 +47,7 @@ jobs:
|
||||
git add *
|
||||
git commit -S -a -m "$msg"
|
||||
}
|
||||
copy_over f38 || true
|
||||
copy_over f39 || true
|
||||
copy_over f40 || true
|
||||
copy_over frawhide || true
|
||||
git push -u origin --all
|
||||
fi
|
||||
|
||||
+4
-2
@@ -1,7 +1,9 @@
|
||||
# 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). Since we use a GitHub Wiki for [documentation](https://developer.fyralabs.com/terra), our guidelines may be found there. See the links below:
|
||||
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
|
||||
|
||||
* [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,6 +1,5 @@
|
||||
# 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)
|
||||
@@ -12,7 +11,7 @@ This monorepo contains the package manifests for all packages in Terra.
|
||||
|
||||
## Installation
|
||||
```bash
|
||||
sudo dnf config-manager --add-repo https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo
|
||||
sudo dnf install --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' --setopt='terra.gpgkey=https://repos.fyralabs.com/terra$releasever/key.asc' terra-release
|
||||
```
|
||||
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,18 +1,26 @@
|
||||
%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)
|
||||
BuildRequires: python3-pip rpm_macro(fdupes) cargo
|
||||
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
|
||||
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
|
||||
%ifarch x86_64
|
||||
Source0: %xurl
|
||||
%elifarch aarch64
|
||||
Source0: %aurl
|
||||
%endif
|
||||
Source1: %qurl
|
||||
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 +1,15 @@
|
||||
rpm.version(gh("ankitects/anki"));
|
||||
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));
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ 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.452
|
||||
Version: 0.0.454
|
||||
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.452
|
||||
Version: 0.0.454
|
||||
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.59
|
||||
Version: 0.0.60
|
||||
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.94
|
||||
Version: 0.0.95
|
||||
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.94
|
||||
Version: 0.0.95
|
||||
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.59
|
||||
Version: 0.0.60
|
||||
Release: 1%?dist
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
URL: https://discord.com
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "komikku.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
%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
|
||||
@@ -0,0 +1,3 @@
|
||||
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 f470b63a04767ada809ae7d0c69c8f9ac4c80628
|
||||
%global commit e509ec0aaffce74e520702e16e3e21ea0f168940
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20240712
|
||||
%global commit_date 20240720
|
||||
%global ver v0.38.0
|
||||
|
||||
Name: mpv-nightly
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Generated by rust2rpm 25
|
||||
# Generated by rust2rpm 26
|
||||
%bcond_with check
|
||||
# aarch64 dist is not available
|
||||
%ifarch aarch64
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
Name: rust-sccache
|
||||
Version: 0.8.1
|
||||
Release: 1%?dist
|
||||
Release: %autorelease
|
||||
Summary: Ccache-like tool
|
||||
|
||||
License: Apache-2.0
|
||||
@@ -89,17 +89,6 @@ 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}
|
||||
|
||||
@@ -112,9 +101,6 @@ 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}
|
||||
|
||||
@@ -127,9 +113,6 @@ 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}
|
||||
|
||||
@@ -138,13 +121,10 @@ 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}
|
||||
|
||||
@@ -157,11 +137,6 @@ 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}
|
||||
|
||||
@@ -170,15 +145,10 @@ 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}
|
||||
|
||||
@@ -191,9 +161,6 @@ 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}
|
||||
|
||||
@@ -206,10 +173,6 @@ 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}
|
||||
|
||||
@@ -219,14 +182,21 @@ 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}
|
||||
|
||||
@@ -236,13 +206,21 @@ 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}
|
||||
|
||||
@@ -255,10 +233,6 @@ 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}
|
||||
|
||||
@@ -271,11 +245,6 @@ 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}
|
||||
|
||||
@@ -288,9 +257,6 @@ 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}
|
||||
|
||||
@@ -303,10 +269,6 @@ 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}
|
||||
|
||||
@@ -319,10 +281,6 @@ 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}
|
||||
|
||||
@@ -335,10 +293,6 @@ 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}
|
||||
|
||||
@@ -348,16 +302,21 @@ 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}
|
||||
|
||||
@@ -370,10 +329,6 @@ 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}
|
||||
|
||||
@@ -386,15 +341,6 @@ 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}
|
||||
|
||||
@@ -407,11 +353,6 @@ 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}
|
||||
|
||||
@@ -424,11 +365,6 @@ 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}
|
||||
|
||||
@@ -441,10 +377,6 @@ 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}
|
||||
|
||||
@@ -457,10 +389,6 @@ 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}
|
||||
|
||||
@@ -470,29 +398,9 @@ 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}
|
||||
|
||||
@@ -505,10 +413,6 @@ 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}
|
||||
|
||||
@@ -521,9 +425,6 @@ 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}
|
||||
|
||||
@@ -536,10 +437,6 @@ 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}
|
||||
|
||||
@@ -552,10 +449,6 @@ 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.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 @@
|
||||
--- 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 @@
|
||||
[target."cfg(unix)".dependencies.daemonize]
|
||||
version = "0.5"
|
||||
|
||||
@@ -11,4 +11,6 @@
|
||||
- "handleapi",
|
||||
- "stringapiset",
|
||||
- "winnls",
|
||||
- "processenv",
|
||||
- "std",
|
||||
-]
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
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,4 +1,5 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "voicevox.spec"
|
||||
}
|
||||
|
||||
@@ -1,5 +1 @@
|
||||
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));
|
||||
rpm.version(gh("VOICEVOX/voicevox"));
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
%global nodev 20.12.2
|
||||
%global npmv 10.5.0
|
||||
%global ver 0.19.2
|
||||
%define debug_package %nil
|
||||
%global _build_id_links none
|
||||
|
||||
@@ -9,20 +6,16 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: voicevox
|
||||
Version: %ver
|
||||
Version: 0.19.2
|
||||
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/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
|
||||
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
|
||||
|
||||
%description
|
||||
VOICEVOX is a free Japanese text-to-speech software with medium output quality.
|
||||
@@ -34,33 +27,28 @@ Summary: Documentation files for voicevox (Japanese)
|
||||
%summary.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
tar xf %SOURCE1
|
||||
PATH="$PATH:$PWD/node-v%nodev-linux-%a/bin/"
|
||||
npx npm@%npmv i
|
||||
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
|
||||
|
||||
%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
|
||||
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/
|
||||
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
|
||||
|
||||
%files
|
||||
%doc README.md
|
||||
%license LICENSE LGPL_LICENSE
|
||||
%_bindir/%name
|
||||
%_datadir/%name/
|
||||
|
||||
%files doc
|
||||
%doc %_docdir/%name/
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
%_bindir/voicevox
|
||||
%_datadir/applications/voicevox.desktop
|
||||
%_datadir/voicevox/VOICEVOX.AppImage
|
||||
%_iconsdir/hicolor/256x256/apps/voicevox.png
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Name: elementary-appcenter
|
||||
Summary: Software Center from elementary
|
||||
Version: 7.4.0
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
License: GPL-3.0
|
||||
|
||||
Provides: appcenter = %{version}-%{release}
|
||||
@@ -12,6 +12,8 @@ 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
|
||||
|
||||
@@ -0,0 +1,311 @@
|
||||
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/commit/dbd9b6f9701f5992c3b3257c025b9cd80d041cc8.patch
|
||||
Patch0: https://github.com/elementary/greeter/compare/7.0.0..42320c266395606b0c20782603e7407124c3f7a4.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-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-13)
|
||||
BuildRequires: pkgconfig(mutter-clutter-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-14)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
|
||||
Provides: pantheon-greeter = %{version}-%{release}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
Name: elementary-terminal
|
||||
Summary: The terminal of the 21st century
|
||||
Version: 6.1.2
|
||||
Release: 2%{?dist}
|
||||
Version: 6.2.0
|
||||
Release: 1%?dist
|
||||
License: LGPL-3.0
|
||||
|
||||
URL: https://github.com/elementary/%{srcname}
|
||||
@@ -90,16 +90,9 @@ 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,6 +12,7 @@ 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
|
||||
@@ -32,9 +33,11 @@ BuildRequires: pkgconfig(granite) >= 5.4.0
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
BuildRequires: pkgconfig(libbamf3)
|
||||
BuildRequires: pkgconfig(libcanberra)
|
||||
BuildRequires: pkgconfig(mutter-clutter-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-13)
|
||||
BuildRequires: pkgconfig(libhandy-1)
|
||||
BuildRequires: pkgconfig(sqlite3)
|
||||
BuildRequires: pkgconfig(mutter-clutter-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-14)
|
||||
|
||||
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||
|
||||
@@ -86,8 +89,8 @@ This package contains the development headers.
|
||||
|
||||
|
||||
%check
|
||||
desktop-file-validate \
|
||||
%{buildroot}/%{_sysconfdir}/xdg/autostart/gala-daemon.desktop
|
||||
%dnl desktop-file-validate \
|
||||
%dnl %{buildroot}/%{_sysconfdir}/xdg/autostart/gala-daemon.desktop
|
||||
|
||||
desktop-file-validate \
|
||||
%{buildroot}/%{_datadir}/applications/gala*.desktop
|
||||
@@ -99,7 +102,7 @@ desktop-file-validate \
|
||||
%files -f gala.lang
|
||||
%doc README.md
|
||||
%license COPYING
|
||||
%config(noreplace) %{_sysconfdir}/xdg/autostart/gala-daemon.desktop
|
||||
%dnl %config(noreplace) %{_sysconfdir}/xdg/autostart/gala-daemon.desktop
|
||||
|
||||
%{_bindir}/gala
|
||||
%{_bindir}/gala-daemon
|
||||
|
||||
@@ -9,12 +9,14 @@
|
||||
Name: switchboard-plug-about
|
||||
Summary: Switchboard System Information plug
|
||||
Version: 6.2.0
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?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/commit/d6009d9f0d5c7479172093447ccceccba86ff1f3.patch
|
||||
Patch0: https://github.com/elementary/wingpanel/compare/23a3eb7c2448b4f35398116df7d01b075361ef1f..5d22d436b45decfb2a50d9a7c27f2c961f1dd39f.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-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-13)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-13)
|
||||
BuildRequires: pkgconfig(mutter-clutter-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-14)
|
||||
BuildRequires: pkgconfig(mutter-cogl-pango-14)
|
||||
|
||||
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 9418d0a9af7c9b30b61ac3eeb5ca432a3ad3e651
|
||||
%global commit cfa0c55e84b7ce339e5ce83832f76fee17e99d51
|
||||
%global shortcommit %{lua:print(macros.commit:sub(1,7))}
|
||||
%global commit_date 20240401
|
||||
%global commit_date 20240404
|
||||
%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 b4b16f61f1d69c994701f149e54335c40b9b201d
|
||||
%global commit 4f1c08054b1f975176375f615cf9d2470f7ec7ed
|
||||
%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 6acdde9e890685bd5a5d6fbd4446d9e8b3e6c698
|
||||
%global commit 814c0b16b3753fef918bfe624710cb4809a690fa
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-schemas
|
||||
Version: 0.1.4
|
||||
Release: 1%{?dist}
|
||||
Version: 0.1.5
|
||||
Release: 1%?dist
|
||||
Summary: Configuration schemas for lomiri
|
||||
License: LGPL-2.0-or-later
|
||||
URL: https://gitlab.com/ubports/development/core/lomiri-schemas
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings
|
||||
%global commit aacd2e4704112468b44332e8c8b1f7445651b8da
|
||||
%global commit 1530c1fcfd8b8b7eec3a30e2db20cfc9946fa34a
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-system-settings
|
||||
Version: 1.1.0
|
||||
Version: 1.2.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 454d980c352f3cea725458ff8a3d04ae686d2a96
|
||||
%global commit 8f490672f9853278b0aec6435a68d56b9eaf8207
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri-ui-toolkit
|
||||
Version: 1.3.5012
|
||||
Release: 1%{?dist}
|
||||
Version: 1.3.5100
|
||||
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: 1%{?dist}
|
||||
Release: 2%{?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 426b9f3436938f149490cee340e1fab79ee7b650
|
||||
%global commit a083a14fe65105fc1996ceb1b92165ca3b0cb94e
|
||||
%forgemeta
|
||||
|
||||
Name: lomiri
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
This scripts dir contains only samples, but are generally not used directly.
|
||||
In practice, sddm runtime uses items under /etc/sddm by default
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "terra-sddm.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
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
|
||||
@@ -0,0 +1,53 @@
|
||||
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"));
|
||||
@@ -0,0 +1,67 @@
|
||||
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
@@ -0,0 +1,20 @@
|
||||
#%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
|
||||
@@ -0,0 +1,17 @@
|
||||
#%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
|
||||
@@ -0,0 +1,12 @@
|
||||
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
|
||||
@@ -0,0 +1,2 @@
|
||||
#Type Name ID GECOS Home directory Shell
|
||||
u sddm - "SDDM Greeter Account" /var/lib/sddm -
|
||||
@@ -0,0 +1,2 @@
|
||||
[General]
|
||||
DisplayServer=x11
|
||||
@@ -0,0 +1,122 @@
|
||||
[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
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
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
|
||||
@@ -0,0 +1,5 @@
|
||||
# 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"
|
||||
@@ -0,0 +1,293 @@
|
||||
# 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
|
||||
@@ -0,0 +1 @@
|
||||
rpm.version(gh("sddm/sddm"));
|
||||
@@ -0,0 +1,8 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "flow-control-nightly.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
%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
|
||||
@@ -0,0 +1,7 @@
|
||||
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.2
|
||||
Version: 3.22.3
|
||||
Release: 1%?dist
|
||||
Summary: SDK for crafting beautiful, fast user experiences from a single codebase
|
||||
License: BSD-3-Clause
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
project pkg {
|
||||
arches = ["x86_64", "aarch64"]
|
||||
rpm {
|
||||
spec = "kvrocks.spec"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
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
|
||||
@@ -0,0 +1 @@
|
||||
rpm.version(gh("apache/kvrocks"));
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: neovide
|
||||
Version: 0.13.1
|
||||
Version: 0.13.3
|
||||
Release: 1%?dist
|
||||
Summary: No Nonsense Neovim Client in Rust
|
||||
License: MIT
|
||||
|
||||
@@ -54,6 +54,8 @@ 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.144.2
|
||||
%global ver 0.145.1
|
||||
|
||||
%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
|
||||
BuildRequires: openssl-devel-engine
|
||||
BuildRequires: libzstd-devel
|
||||
BuildRequires: perl-FindBin
|
||||
BuildRequires: perl-IPC-Cmd
|
||||
@@ -48,6 +48,8 @@ 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.143.7
|
||||
Version: 0.144.4
|
||||
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
|
||||
BuildRequires: openssl-devel-engine
|
||||
BuildRequires: libzstd-devel
|
||||
BuildRequires: perl-FindBin
|
||||
BuildRequires: perl-IPC-Cmd
|
||||
@@ -50,6 +50,8 @@ 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.19
|
||||
Version: 1.7.20
|
||||
|
||||
%gometa
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: moby-buildx
|
||||
Version: 0.16.0
|
||||
Version: 0.16.1
|
||||
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.28.1
|
||||
Version: 2.29.0
|
||||
Release: 1%?dist
|
||||
Summary: Define and run multi-container applications with Docker
|
||||
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64"]
|
||||
rpm {
|
||||
spec = "iosevka-fusion-fonts.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,142 +0,0 @@
|
||||
%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
|
||||
@@ -1,190 +0,0 @@
|
||||
[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
|
||||
@@ -1 +0,0 @@
|
||||
rpm.version(gh("be5invis/Iosevka"));
|
||||
@@ -0,0 +1,8 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "gamescope-session-steam.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
%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
|
||||
@@ -0,0 +1,7 @@
|
||||
if filters.contains("nightly") {
|
||||
rpm.global("commit", gh_commit("ChimeraOS/gamescope-session-steam"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "gamescope-session.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
%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
|
||||
@@ -0,0 +1,7 @@
|
||||
if filters.contains("nightly") {
|
||||
rpm.global("commit", gh_commit("ChimeraOS/gamescope-session"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,239 @@
|
||||
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);
|
||||
@@ -0,0 +1,5 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "terra-gamescope.spec"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,136 @@
|
||||
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;
|
||||
@@ -0,0 +1,51 @@
|
||||
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 '?':
|
||||
@@ -0,0 +1,63 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
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 )
|
||||
{
|
||||
@@ -0,0 +1,7 @@
|
||||
prefix=/usr
|
||||
includedir=${prefix}/include/stb
|
||||
|
||||
Name: stb
|
||||
Description: Single-file public domain libraries for C/C++
|
||||
Version: 0.1.0
|
||||
Cflags: -I${includedir}
|
||||
@@ -0,0 +1,137 @@
|
||||
%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
|
||||
@@ -0,0 +1 @@
|
||||
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