Compare commits

..

805 commits

Author SHA1 Message Date
32c180a132
upgpkg: discord-electron-openasar 0.0.69+830-1
upstream release
2024-09-23 20:07:40 +02:00
c662c882ab
upgpkg: discord-electron 0.0.69-1
upstream release
2024-09-23 20:07:34 +02:00
c7f26183a6
upgpkg: ect 0.9.5-2: fix checksum 2024-09-23 20:06:44 +02:00
9c77c062b5
upgpkg: firefox-syncstorage 0.17.7-1
upstream release
2024-09-23 20:06:23 +02:00
83e626a153
upgpkg: qvr 4.1.0-1
upstream release
2024-09-23 20:05:42 +02:00
8507de66f2
Update makepkg.conf
* Include latest upstream changes
2024-09-19 19:58:27 +02:00
425dfbcd6a
upgpkg: clonezilla-unstable 5.6.19-1
upstream release
2024-09-19 19:56:01 +02:00
e420ae3f81
upgpkg: gvisor-git 20240916.0-1
upstream release
2024-09-19 19:55:52 +02:00
822122f202
upgpkg: gvisor-bin 20240916.0-1
upstream release
2024-09-19 19:55:45 +02:00
f15c35c036
upgpkg: firefox-syncstorage 0.17.6-1
upstream release
2024-09-19 19:55:11 +02:00
d3032b1376
upgpkg: discord-electron-openasar 0.0.68+830-1
upstream release
2024-09-10 19:36:14 +02:00
039681842b
upgpkg: discord-electron 0.0.68-1
upstream release
2024-09-10 19:36:07 +02:00
853edb74cc
upgpkg: clonezilla-unstable 5.6.18-1
upstream release
2024-09-10 19:35:31 +02:00
9231f9bcac
upgpkg: firefox-syncstorage 0.17.4-1
upstream release
2024-09-06 21:50:25 +02:00
358b9da5f0
upgpkg: discord-electron-openasar 0.0.67+830-1
Update to latest OpenAsar commit
2024-09-06 21:12:15 +02:00
eff45b2279
upgpkg: clonezilla-unstable 5.6.17-1
upstream release
2024-09-06 21:10:44 +02:00
4b1a2bbcff
upgpkg: discord-electron-openasar 0.0.67+828-1
upstream release
2024-09-04 19:27:57 +02:00
d20c0c00fb
upgpkg: discord-electron 0.0.67-1
upstream release
2024-09-04 19:27:49 +02:00
02f2d95de6
upgpkg: firefox-syncstorage 0.17.3-1
upstream release
2024-09-04 19:27:38 +02:00
3fde330922
upgpkg: clonezilla-unstable 5.6.16-1
upstream release
2024-09-04 19:27:01 +02:00
04ddc68038
upgpkg: discord-electron-openasar 0.0.66+828-1
upstream release
2024-08-27 21:58:24 +02:00
86fd9b13ad
upgpkg: discord-electron 0.0.66-1
upstream release
2024-08-27 21:58:04 +02:00
73bcc07e74
upgpkg: clonezilla-unstable 5.6.15-1
upstream release
2024-08-23 15:13:30 +02:00
adb5f484cd
upgpkg: discord-electron-openasar 0.0.65+828-1
upstream release
Update Electron version to 32
2024-08-23 15:10:32 +02:00
997cd5ea21
upgpkg: discord-electron 0.0.65-1
upstream release
Update Electron version to 32
2024-08-23 15:09:58 +02:00
a3abc3ef04
upgpkg: discord-electron-openasar 0.0.64+828-1
upstream release
2024-08-13 21:49:18 +02:00
505d518f67
upgpkg: discord-electron 0.0.64-1
upstream release
2024-08-13 21:49:01 +02:00
280ebaf463
upgpkg: gvisor-git 20240807.0-1
upstream release
2024-08-09 16:56:36 +02:00
c576481eae
upgpkg: gvisor-bin 20240807.0-1
upstream release
2024-08-09 16:56:06 +02:00
c81a56a492
upgpkg: tuned 2.24.0-1
upstream release
2024-08-07 23:10:00 +02:00
c651013a52
upgpkg: clonezilla-unstable 5.6.14-1
upstream release
2024-08-06 20:57:01 +02:00
d80ab5f18b
upgpkg: discord-electron-openasar 0.0.63+828-1
upstream release
2024-08-06 20:53:49 +02:00
8e7b80d0fd
upgpkg: discord-electron 0.0.63-1
upstream release
2024-08-06 20:53:35 +02:00
2caee9ad2c
upgpkg: sublime-text-dev 4.4180-1
upstream release
2024-08-06 20:48:47 +02:00
f768052bc6
upgpkg: sublime-text-4 4.4180-1
upstream release
2024-08-06 20:48:22 +02:00
995a265f8b
upgpkg: sublime-text-dev 4.4178-1
upstream release
2024-08-03 18:48:00 +02:00
43bc183c3c
upgpkg: discord-electron-openasar 0.0.62+828-1
upstream release
2024-07-30 19:29:07 +02:00
dc0cdb562f
upgpkg: discord-electron 0.0.62-1
upstream release
2024-07-30 19:28:48 +02:00
6b21e2107e
upgpkg: discord-electron-openasar 0.0.61+828-1
upstream release
2024-07-23 06:57:25 +02:00
acef876efa
upgpkg: discord-electron 0.0.61-1
upstream release
2024-07-23 06:56:56 +02:00
3c159d6ba4
upgpkg: obs-vkcapture 1.5.1-1
upstream release
2024-07-21 07:40:38 +02:00
08d8095668
upgpkg: gvisor-git 20240715.0-1
upstream release
2024-07-21 07:39:22 +02:00
2452d70ad9
upgpkg: gvisor-bin 20240715.0-1
upstream release
2024-07-21 07:39:09 +02:00
cc9e320509
Adopt SPDX identifiers for license fields 2024-07-21 07:32:40 +02:00
22120a640c
upgpkg: sublime-text-dev 4.4177-1
upstream release
2024-07-16 23:16:32 +02:00
561ccc04b0
upgpkg: firefox-syncstorage 0.17.1-1
upstream release
2024-07-16 23:15:58 +02:00
68882fa30c
upgpkg: discord-electron-openasar 0.0.60+828-1
upstream release
2024-07-15 22:00:11 +02:00
bb31220c56
upgpkg: discord-electron 0.0.60-1
upstream release
2024-07-15 22:00:03 +02:00
3fab976568
upgpkg: clonezilla-unstable 5.6.13-1
upstream release
2024-07-15 21:59:42 +02:00
a18f9f79d4
upgpkg: discord-electron-openasar 0.0.59+828-2: update krisp patcher
* Fix segfault after patching Krisp binary
2024-07-14 23:57:30 +02:00
10a0cea6bf
upgpkg: discord-electron 0.0.59-2: update krisp patcher
* Fix segfault after patching Krisp binary
2024-07-14 23:57:09 +02:00
a19f7a248f
upgpkg: clonezilla-unstable 5.6.12-1
upstream release
2024-07-14 23:50:51 +02:00
40d44afdcc
upgpkg: clonezilla-unstable 5.6.11-1
upstream release
2024-07-09 19:27:33 +02:00
3f7bbee433
upgpkg: discord-electron-openasar 0.0.59+828-1
upstream release
2024-07-08 22:56:35 +02:00
1a323e7e3e
upgpkg: discord-electron 0.0.59-1
upstream release
2024-07-08 22:56:13 +02:00
571ca93a81
upgpkg: discord-electron-openasar 0.0.58+828-1: update electron & openasar, remove makedep
* Update Electron version to 31 again as electron issue #42560 is fixed with 31.1.0
* Remove unnecessary make dependency and keep license files in html format
* Update to latest OpenAsar commit
2024-06-30 20:53:38 +02:00
fb248ffc24
upgpkg: discord-electron 0.0.58-2: update electron, remove makedep
* Update Electron version to 31 again as electron issue #42560 is fixed with 31.1.0
* Remove unnecessary make dependency and keep license files in html format
2024-06-30 20:50:37 +02:00
b0221e873a
upgpkg: clonezilla-unstable 5.6.10-1
upstream release
2024-06-30 20:42:28 +02:00
7a3603777d
upgpkg: discord-electron-openasar 0.0.58+827-1
upstream release
2024-06-25 19:31:20 +02:00
276c7641f9
upgpkg: discord-electron 0.0.58-1
upstream release
2024-06-25 19:31:00 +02:00
6de66a5c41
upgpkg: discord-electron-openasar 0.0.57+827-2
* Temporarily downgrade Electron version to 30 again due to issues with window maximizing (#42560)
2024-06-24 22:55:43 +02:00
2d416d122f
upgpkg: discord-electron 0.0.57-2
* Temporarily downgrade Electron version to 30 again due to issues with window maximizing (#42560)
2024-06-24 22:53:13 +02:00
c0b207e877
upgpkg: linpack 2024.2.0-1
upstream release
2024-06-24 22:45:40 +02:00
fd174f156a
upgpkg: discord-electron-openasar 0.0.57+827-1
upstream release
2024-06-17 21:24:31 +02:00
17503e9730
upgpkg: discord-electron 0.0.57-1
upstream release
2024-06-17 21:24:20 +02:00
f7362d494f
upgpkg: tuned 2.23.0-2: preserve empty config dirs
* Fix tuned-gui crash by preserving empty directories in `/etc/tuned`
2024-06-17 21:19:12 +02:00
f3f564b4aa
upgpkg: discord-electron-openasar 0.0.56+827-2: update electron
* Update Electron version to 31
2024-06-15 18:58:13 +02:00
1411cdc42a
upgpkg: discord-electron 0.0.56-2: update electron
* Update Electron version to 31
2024-06-15 18:57:25 +02:00
10ec259366
upgpkg: firefox-syncstorage 0.17.0-1
upstream release
2024-06-15 18:56:33 +02:00
184ac94641
upgpkg: firefox-syncstorage 0.16.0-1
upstream release
2024-06-13 21:59:48 +02:00
d4d37f8119
upgpkg: gvisor-git 20240603.0-1
upstream release
2024-06-11 21:54:21 +02:00
5c19fadc89
upgpkg: gvisor-bin 20240603.0-1
upstream release
2024-06-11 21:54:11 +02:00
1ad7c96975
upgpkg: discord-electron-openasar 0.0.56+827-1
upstream release
2024-06-11 21:53:43 +02:00
8e93021a86
upgpkg: discord-electron 0.0.56-1
upstream release
2024-06-11 21:53:23 +02:00
20605b3001
upgpkg: discord-electron-openasar 0.0.55+827-3: remove python dep
* Check for Python availability in launcher script as it's only necessary for Krisp patcher
2024-06-10 20:33:44 +02:00
0191e29653
upgpkg: discord-electron 0.0.55-3: remove python dep
* Check for Python availability in launcher script as it's only necessary for Krisp patcher
2024-06-10 20:33:14 +02:00
4dbda26af7
upgpkg: discord-electron-openasar 0.0.55+827-2: fix unset variable
* Fix unbound variable in launcher script if discord.conf is not used
2024-06-09 23:43:33 +02:00
dd92dab702
upgpkg: discord-electron 0.0.55-2: fix unset variable
* Fix unbound variable in launcher script if discord.conf is not used
2024-06-09 23:41:51 +02:00
3dcb012e05
upgpkg: discord-electron-openasar 0.0.55+827-1: refactor, replace krisp patcher
* upstream release
* Slight refactor of package function and launcher script
* Replace Krisp patcher with more robust Python script
* Add support for DISCORD_USER_DATA_DIR env var
2024-06-09 21:51:20 +02:00
44f59b0502
upgpkg: discord-electron 0.0.55-1: refactor, replace krisp patcher
* upstream release
* Slight refactor of package function and launcher script
* Replace Krisp patcher with more robust Python script
* Add support for DISCORD_USER_DATA_DIR env var
2024-06-09 21:50:07 +02:00
dca59af8cb
upgpkg: tuned 2.23.0-1
upstream release
2024-06-09 17:54:31 +02:00
7d104b4240
upgpkg: firefox-syncstorage 0.15.9-1
upstream release
2024-06-09 17:47:31 +02:00
6ca428c950
upgpkg: bino 2.2-1
upstream release
2024-06-09 17:47:01 +02:00
db2f1a14b9
upgpkg: qvr 4.0.2-1
upstream release
2024-06-09 17:46:52 +02:00
dfb6d97ad5
upgpkg: clonezilla-unstable 5.6.9-1
upstream release
2024-06-09 17:45:40 +02:00
1fd3ff62f2
upgpkg: discord-electron-openasar 0.0.54+827-1
upstream release
2024-05-14 07:58:32 +02:00
09e109da22
upgpkg: discord-electron 0.0.54-1
upstream release
2024-05-14 07:58:13 +02:00
d637a76481
upgpkg: systemtap 5.1-1
upstream release
2024-05-13 06:56:52 +02:00
5468d9f527
upgpkg: clonezilla-unstable 5.6.4-1
upstream release
2024-05-13 06:56:37 +02:00
ed4692db90
upgpkg: firefox-syncstorage 0.15.8-1
upstream release
2024-05-13 06:56:15 +02:00
9352ffefd1
Update makepkg.conf
* Include latest ALHP changes
* Enable compression for archives again
2024-05-07 20:48:28 +02:00
2691361ed7
upgpkg: discord-electron-openasar 0.0.53+827-1
upstream release
Remove obsolete package origin notice
2024-05-07 19:46:31 +02:00
a71208ca9b
upgpkg: discord-electron 0.0.53-1
upstream release
2024-05-07 19:45:59 +02:00
a103a051b7
discord-electron: Remove maintainer notice
* Package removed from AUR but kept here for preservation
2024-05-07 19:44:46 +02:00
a90086660f
upgpkg: firefox-syncstorage 0.15.7-1
upstream release
2024-05-07 19:42:26 +02:00
104661d3a4
upgpkg: gvisor-git 20240501.0-1
upstream release
2024-05-07 19:41:09 +02:00
ce7a5ee839
upgpkg: gvisor-bin 20240501.0-1
upstream release
2024-05-07 19:41:02 +02:00
d859014f06
upgpkg: sublime-text-dev 4.4175-1
upstream release
2024-05-07 18:59:31 +02:00
13ee2ac405
upgpkg: spot-client 0.4.1-1
upstream release
2024-05-07 18:58:27 +02:00
3ec66e826f
upgpkg: linpack 2024.1.0-1
upstream release
2024-05-07 18:58:08 +02:00
c9a218c01f Add 'linpack/' from commit 'bc2cf3f39e5efa0b35f8fd20354e35172081f9be'
git-subtree-dir: linpack
git-subtree-mainline: 2ef7e351d4
git-subtree-split: bc2cf3f39e
2024-05-07 18:55:15 +02:00
2ef7e351d4
upgpkg: firefox-syncstorage 0.15.5-1
upstream release
2024-04-30 21:48:48 +02:00
b71f207c0a
upgpkg: discord-electron-openasar 0.0.52+827-1
upstream release
2024-04-30 18:45:18 +02:00
6913e9da39
upgpkg: discord-electron 0.0.52-1
upstream release
2024-04-30 18:45:00 +02:00
d7a06808ff
upgpkg: tuned 2.22.1-2: rebuild
* Trigger rebuild for Python 3.12
2024-04-27 20:57:00 +02:00
6edeb95575
upgpkg: systemtap 5.0-2: fix conflict, add check
* Fix filesystem conflict by excluding include files already provided by glibc
* Add make check target
2024-04-24 07:19:24 +02:00
6405619721
upgpkg: clonezilla-unstable 5.6.2-1
upstream release
2024-04-24 07:19:02 +02:00
d46497867c
upgpkg: discord-electron-openasar 0.0.51+827-1
upstream release
2024-04-23 06:56:01 +02:00
d8f14fe7db
upgpkg: discord-electron 0.0.51-1
upstream release
2024-04-23 06:55:37 +02:00
497b43a814
upgpkg: discord-electron-openasar 0.0.50+827-2: update electron
* Update Electron version to 30
2024-04-21 09:40:36 +02:00
8c698f9c96
upgpkg: discord-electron 0.0.50-2: update electron
* Update Electron version to 30
2024-04-21 09:39:59 +02:00
75ea660891
upgpkg: discord-electron-openasar 0.0.50+827-1
upstream release
2024-04-16 22:57:08 +02:00
8e4b63460c
upgpkg: discord-electron 0.0.50-1
upstream release
2024-04-16 22:56:54 +02:00
a09253c381
upgpkg: firefox-syncstorage 0.15.2-1
upstream release
2024-04-16 22:49:16 +02:00
9473e1da58
upgpkg: wxedid 0.0.31-1
upstream release
2024-04-11 19:45:27 +02:00
76f0ba5644
upgpkg: rcedit-bin 2.0.0-4: refactor
* Refactor PKGBUILD
* Remove redundant .gitignore
2024-04-11 19:42:55 +02:00
f44ebb794d
upgpkg: polkit-explorer-git 15.fac8d70-4: fix paths
* Use correct (non-git) paths
2024-04-11 19:39:30 +02:00
a5c0a2e468
upgpkg: ntfs2btrfs-git 20240115.r0.g1d55788-1
upstream release
2024-04-11 19:31:33 +02:00
ced121c843
upgpkg: ntfs2btrfs 20240115-1
upstream release: Version was not marked as 'latest', other distros updated to this version though
2024-04-11 19:30:16 +02:00
5575561f3a
upgpkg: lib32-amdvlk-2023q3.3 2023.Q3.3-2: fix paths
* Use correct directory for license files
2024-04-11 19:29:49 +02:00
4a2e60ace8
upgpkg: amdvlk-2023q3.3 2023.Q3.3-2: fix paths
* Use correct directory for license files
2024-04-11 19:29:05 +02:00
77e00bb24c Add 'rcedit-bin/' from commit 'da5e91ba5e6a939f5d508d368aad5632b6add82a'
git-subtree-dir: rcedit-bin
git-subtree-mainline: 78ea923664
git-subtree-split: da5e91ba5e
2024-04-11 18:49:15 +02:00
78ea923664 Add 'wxedid/' from commit '2038cc4260aabae558438707a548126c6d9f2989'
git-subtree-dir: wxedid
git-subtree-mainline: 093355368b
git-subtree-split: 2038cc4260
2024-04-11 18:48:57 +02:00
093355368b
upgpkg: discord-electron 0.0.49-2: fix error on launch
* Fix mistake when I moved asar into resources subfolder
2024-04-10 19:50:11 +02:00
cf8acd973c
Deleted package: plasma5-wallpapers-wallpaper-engine 2024-04-10 19:49:02 +02:00
3f2c2f1494
upgpkg: discord-electron-openasar 0.0.49+827-1
upstream release
2024-04-09 20:16:29 +02:00
7080b90ae1
upgpkg: discord-electron 0.0.49-1
upstream release
2024-04-09 20:16:20 +02:00
e58dddf281
upgpkg: discord-electron-openasar 0.0.48+827-2: update electron, mod compat
* Update Electron version to 29
* Move asar to resources subfolder for Discord client mod compatibility
2024-04-09 12:08:16 +02:00
6e3a7a3ca5
upgpkg: discord-electron 0.0.48-2: update electron, mod compat
* Update Electron version to 29
* Move asar to resources subfolder for Discord client mod compatibility
2024-04-09 12:07:40 +02:00
4814f84b92
Replace checksums with sha512 2024-04-08 23:10:35 +02:00
f38a0ff4a3
ect: Add sha512 checksums 2024-04-08 22:58:27 +02:00
f3206040a9
systemtap: Remove redundant .gitignore 2024-04-08 22:53:57 +02:00
e4020df88d
upgpkg: sublime-text-dev 4.4173-2
Fix title bar icon by using a launcher script instead of symlink
2024-04-08 22:43:02 +02:00
227dddd05f
upgpkg: sublime-text-4 4.4169-2
Fix title bar icon by using a launcher script instead of symlink
2024-04-08 22:42:42 +02:00
0e512c060b
upgpkg: sublime-text-3 3.3211-5
Fix title bar icon by using a launcher script instead of symlink
2024-04-08 22:42:14 +02:00
5d5194dd5f
upgpkg: systemtap 5.0-1
upstream release
2024-04-08 21:54:49 +02:00
7afc2c3cea Add 'systemtap/' from commit '3995c198a8f8d57a162ee02e7910e4c0229e1c17'
git-subtree-dir: systemtap
git-subtree-mainline: b43228e4bd
git-subtree-split: 3995c198a8
2024-04-08 21:05:48 +02:00
b43228e4bd
upgpkg: discord-electron-openasar 0.0.48+827-1
upstream release
2024-04-08 20:50:43 +02:00
f0ba3f4d43
upgpkg: discord-electron 0.0.48-1
upstream release
2024-04-08 20:50:38 +02:00
8a5209b50c
upgpkg: clonezilla-unstable 5.6.1-1
upstream release
2024-04-08 20:50:23 +02:00
ee35ff2f47
upgpkg: gvisor-git 20240401.0-1
upstream release
2024-04-05 21:25:08 +02:00
39422c29ff
upgpkg: gvisor-bin 20240401.0-1
upstream release
2024-04-05 21:24:47 +02:00
5b05d8a34e
upgpkg: obs-vkcapture 1.5.0-1
upstream release
2024-04-01 19:48:21 +02:00
3505453af4
upgpkg: discord-electron-openasar 0.0.47+827-1
upstream release
2024-03-25 20:29:56 +01:00
a0a553d122
upgpkg: discord-electron 0.0.47-1
upstream release
2024-03-25 20:29:29 +01:00
f3f922dbbc
upgpkg: discord-electron-openasar 0.0.46+827-1
upstream release
2024-03-18 19:47:43 +01:00
16c6e8f08d
upgpkg: discord-electron 0.0.46-1
upstream release
2024-03-18 19:47:28 +01:00
235e77f706
Add .gitattributes 2024-03-17 14:57:36 +01:00
07dab3a33f
upgpkg: clonezilla-unstable 5.5.31-1
upstream release
2024-03-17 14:55:21 +01:00
78ce8c3ffc
upgpkg: clonezilla-unstable 5.5.27-1
upstream release
2024-03-12 19:24:23 +01:00
604753f819
upgpkg: discord-electron-openasar 0.0.45+827-1
upstream release
2024-03-12 19:23:10 +01:00
cec85ec3fd
upgpkg: discord-electron 0.0.45-1
upstream release
2024-03-12 19:22:50 +01:00
25c882d365
upgpkg: gvisor-git 20240305.0-1
upstream release
2024-03-07 06:53:26 +01:00
cef2df01d7
upgpkg: gvisor-bin 20240305.0-1
upstream release
2024-03-07 06:53:08 +01:00
33b25206a1
upgpkg: discord-electron-openasar 0.0.44+827-1
upstream release
2024-03-07 06:51:56 +01:00
ceda92e0cd
upgpkg: discord-electron 0.0.44-1
upstream release
2024-03-07 06:50:54 +01:00
7f7d59436b
upgpkg: firefox-syncstorage 0.15.1-1
upstream release
2024-03-05 20:32:38 +01:00
3573dd835d
upgpkg: clonezilla-unstable 5.5.24-1
upstream release
2024-03-01 20:45:30 +01:00
68b0ac6aca
upgpkg: firefox-syncstorage 0.15.0-1
upstream release
2024-03-01 20:45:00 +01:00
43cf71aa74
upgpkg: sublime-text-dev 4.4173-1
upstream release
2024-02-27 19:44:00 +01:00
b9740407f3
upgpkg: tuned 2.22.1-1
upstream release
2024-02-22 14:26:00 +01:00
81e521c013
upgpkg: tuned 2.22.0-3: split package
* Split package to make ppd service optional since it conflicts with power-profiles-daemon package
* Added missing backup files for tuned so that config files may not be overwritten on update
2024-02-22 07:36:00 +01:00
78cca39e50
upgpkg: sublime-text-dev 4.4172-1
upstream release
2024-02-22 07:02:00 +01:00
a2bcb46ecf
upgpkg: tuned 2.22.0-2: add ppd service
* Install optional PPD-to-TuneD daemon that translates DBus API calls to power-profiles-daemon into TuneD API calls.
2024-02-21 19:25:35 +01:00
4744e0f1a4
upgpkg: sublime-text-dev 4.4171-1
upstream release
2024-02-21 09:46:00 +01:00
4edc35f5a3
upgpkg: tuned 2.22.0-1
upstream release
2024-02-17 09:45:14 +01:00
6c4b27529e
upgpkg: discord-electron-openasar 0.0.43+827-1
upstream release
2024-02-12 23:30:54 +01:00
d6fda86458
upgpkg: discord-electron 0.0.43-1
upstream release
2024-02-12 23:30:37 +01:00
168682ce88
upgpkg: obs-vkcapture 1.4.9-1
upstream release
2024-02-11 17:57:25 +01:00
389c8ac42d
upgpkg: gvisor-git 20240206.0-1
upstream release
2024-02-11 12:11:47 +01:00
46d0dbc55e
upgpkg: gvisor-bin 20240206.0-1
upstream release
2024-02-11 12:11:20 +01:00
69fc0d1d93
upgpkg: discord-electron-openasar 0.0.42+827-3: disable autoupdate
* Set autoupdate to false by default
2024-02-11 06:57:44 +01:00
f4f0b06930
upgpkg: discord-electron-openasar 0.0.42+827-2: fix resource path
* Patch app.asar to use correct resource path after latest Electron update
2024-02-11 06:25:22 +01:00
9250f543bc
upgpkg: discord-electron 0.0.42-2: update electron
* Patch app.asar to support Electron version 28
2024-02-11 06:22:39 +01:00
d992d9b5ee
Deleted package: prometheus-postgresql-exporter: moved to extra 2024-02-07 20:37:58 +01:00
96da01cf90
upgpkg: discord-electron-openasar 0.0.42+827-1
upstream release
Update to latest OpenAsar commit
2024-01-29 21:34:31 +01:00
7c1ee2f334
upgpkg: discord-electron 0.0.42-1
upstream release
2024-01-29 21:34:18 +01:00
2f3cd45a85
upgpkg: discord-electron-openasar 0.0.41+826-1
upstream release
2024-01-23 21:04:15 +01:00
e213d0c028
upgpkg: discord-electron 0.0.41-1
upstream release
2024-01-23 21:03:56 +01:00
f9f560d04a
upgpkg: gvisor-git 20240109.0-1
upstream release
2024-01-12 13:56:12 +01:00
c83ebec04d
upgpkg: gvisor-bin 20240109.0-1
upstream release
2024-01-12 13:55:59 +01:00
ce8f60a0ab
upgpkg: discord-electron-openasar 0.0.40+826-1
Update to latest OpenAsar commit
2024-01-10 21:52:13 +01:00
3119c4169c
upgpkg: discord-electron-openasar 0.0.40+824-1
upstream release
2024-01-09 20:38:14 +01:00
7f90a526a5
upgpkg: discord-electron 0.0.40-1
upstream release
2024-01-09 20:38:00 +01:00
073095acdc
ect: Fix submodule path 2024-01-08 20:54:10 +01:00
ecd597da60
upgpkg: ect 0.9.5-1
upstream release
2024-01-08 19:57:58 +01:00
5a575bd9b7 Add 'ect/' from commit '01d0e8bc6065d7b6de0e2e65cb75bc7201400f83'
git-subtree-dir: ect
git-subtree-mainline: f51b16e9a6
git-subtree-split: 01d0e8bc60
2024-01-08 19:10:26 +01:00
f51b16e9a6
upgpkg: discord-electron-openasar 0.0.39+824-3: fix launcher
* Fix launcher error if config variable not set but rizin is installed
2024-01-04 22:47:50 +01:00
92981e8b1f
upgpkg: discord-electron 0.0.39-3: fix launcher
* Fix launcher error if config variable not set but rizin is installed
* Fix typo
2024-01-04 22:47:25 +01:00
9ce663bcc3
upgpkg: clonezilla-unstable 5.5.23-1
upstream release
2024-01-04 15:47:48 +01:00
8f38894da0
upgpkg: discord-electron-openasar 0.0.39+824-2: update electron
* Update Electron version to 28
* Update launch script to require config variable set in order to patch Krisp binary
2024-01-04 15:07:27 +01:00
27a74ff543
upgpkg: discord-electron 0.0.39-2: update electron
* Update Electron version to 27
* Update launch script to require config variable set in order to patch Krisp binary
2024-01-04 15:07:13 +01:00
1f7fac9ee7
upgpkg: obs-vkcapture 1.4.8-1
upstream release
2023-12-30 09:56:09 +01:00
Joseph DiGiovanni
da5e91ba5e Update launch script
Hide all wine windows
2023-12-21 15:09:50 -05:00
1161de6464
upgpkg: discord-electron-openasar 0.0.39+824-1
upstream release
2023-12-19 21:47:42 +01:00
61e7eacd64
upgpkg: discord-electron 0.0.39-1
upstream release
2023-12-19 21:47:13 +01:00
Joseph DiGiovanni
be400f3ecd Update launch script
Hide wine-mono install message
2023-12-19 02:02:59 -05:00
2938164241
upgpkg: clonezilla-unstable 5.5.20-1
upstream release
2023-12-18 12:27:44 +01:00
714ad61a20
upgpkg: discord-electron-openasar 0.0.38+824-1
upstream release
2023-12-12 23:46:43 +01:00
7d151dddad
upgpkg: discord-electron 0.0.38-1
upstream release
2023-12-12 23:46:26 +01:00
af44a9bf6b
upgpkg: firefox-syncstorage 0.14.4-1
upstream release
2023-12-11 22:57:37 +01:00
79e98d992c
upgpkg: gvisor-git 20231204.0-1
upstream release
2023-12-06 22:36:53 +01:00
fcde69e24c
upgpkg: gvisor-bin 20231204.0-1
upstream release
2023-12-06 22:36:28 +01:00
3c85dd9e42
upgpkg: discord-electron-openasar 0.0.37+824-1
upstream release
Update to latest OpenAsar commit (no asar changes)
2023-12-05 21:28:39 +01:00
0a1b550524
upgpkg: discord-electron 0.0.37-1
upstream release
2023-12-05 21:28:13 +01:00
efa8e9c228
upgpkg: clonezilla-unstable 5.5.18-1
upstream release
2023-12-05 20:29:57 +01:00
Joseph DiGiovanni
f2a8d65c24 update srcinfo 2023-12-05 01:01:10 -05:00
Joseph DiGiovanni
524ae9ecb3 minor pkgbuild consistency changes 2023-12-05 00:57:34 -05:00
5d93595481
Initial upload: lib32-amdvlk-2023q3.3 2023.Q3.3-1 2023-12-03 22:57:37 +01:00
1255e64873
Replace checksums with sha512 2023-12-03 20:31:07 +01:00
c73c86f9fe
polkit-explorer-git: Refactor 2023-12-03 20:30:13 +01:00
be0a240ffb
waifu2x-ncnn-vulkan: Remove maintainer comment
Package currently only kept for preservation
2023-12-03 20:27:52 +01:00
3bd443b8d8
Initial upload: amdvlk-2023q3.3 2023.Q3.3-1 2023-12-03 20:20:10 +01:00
df0ba439fc
upgpkg: obs-vkcapture 1.4.7-1
upstream release
2023-12-03 19:15:11 +01:00
6ff795b993
upgpkg: obs-vkcapture 1.4.6-1
upstream release
2023-12-01 20:09:34 +01:00
66d2a4511d
Update makepkg.conf 2023-11-30 19:37:02 +01:00
4e12c64e30
upgpkg: firefox-syncstorage 0.14.3-1
upstream release
2023-11-30 19:36:15 +01:00
55545213bc
upgpkg: discord-electron-openasar 0.0.36+821-1
upstream release
2023-11-29 01:18:04 +01:00
aaebd5388a
upgpkg: discord-electron 0.0.36-1
upstream release
2023-11-29 01:17:45 +01:00
51ebf060d2
upgpkg: clonezilla-unstable 5.5.17-1
upstream release
2023-11-25 21:29:32 +01:00
8803ba4b56
upgpkg: sublime-text-4 4.4169-1
upstream release
2023-11-23 23:31:27 +01:00
a36fa33c47
upgpkg: sublime-text-dev 4.4169-1
upstream release
2023-11-23 23:31:16 +01:00
82fbd3c743
upgpkg: discord-electron-openasar 0.0.35+821-1
Update to latest OpenAsar commit
2023-11-23 22:18:18 +01:00
b3be47dc28
upgpkg: sublime-text-dev 4.4168-1
upstream release
2023-11-23 22:16:42 +01:00
Joseph DiGiovanni
73c58452b0 Update to release v2.0.0 2023-11-22 01:18:15 -05:00
bac9365dd6
upgpkg: sublime-text-4 4.4166-1
upstream release
2023-11-20 18:58:06 +01:00
4f3f00a940
upgpkg: sublime-text-dev 4.4166-1
upstream release
2023-11-20 18:57:55 +01:00
e92ee34c5d
upgpkg: sublime-text-dev 4.4165-1
upstream release
2023-11-16 18:56:20 +01:00
bb7fc99d5f
upgpkg: discord-electron-openasar 0.0.35+816-1
upstream release
2023-11-13 19:50:49 +01:00
804d2bd477
upgpkg: discord-electron 0.0.35-1
upstream release
2023-11-13 19:50:30 +01:00
e0ada1cb4e
upgpkg: obs-vkcapture 1.4.5-1
upstream release
2023-11-09 17:06:03 +01:00
c2fffeaf87
upgpkg: discord-electron-openasar 0.0.34+816-2: fix autostart
* Fix autostart desktop file
* Improve use of sed commands
* Directly execute electron binary
* Update to latest OpenAsar commit (no asar changes)
2023-11-09 16:57:54 +01:00
5f26ecb9ed
upgpkg: discord-electron 0.0.34-2: fix autostart
* Fix autostart as suggested by @LRitzdorf
* Improve use of sed commands
* Directly execute electron binary
2023-11-09 16:57:04 +01:00
c483c7acdc
upgpkg: gvisor-git 20231106.0-1
upstream release
2023-11-09 14:48:33 +01:00
ea9cbc9a6b
upgpkg: gvisor-bin 20231106.0-1
upstream release
2023-11-09 14:48:15 +01:00
a6cd5da461
upgpkg: sublime-text-dev 4.4164-1
upstream release
2023-11-08 17:08:22 +01:00
4e6bd1aff1
upgpkg: prometheus-postgresql-exporter 0.15.0-1
upstream release
2023-11-07 18:36:18 +01:00
0f8adabe09
upgpkg: clonezilla-unstable 5.5.16-1
upstream release
2023-11-07 18:15:10 +01:00
3ee86baca8
upgpkg: discord-electron-openasar 0.0.34+813-1
upstream release
2023-11-07 00:09:21 +01:00
0c81657cba
upgpkg: discord-electron 0.0.34-1
upstream release
2023-11-07 00:09:09 +01:00
6821e6bbcf
upgpkg: clonezilla-unstable 5.5.15-1
upstream release
2023-11-02 15:40:06 +01:00
6d5edd7baf
upgpkg: discord-electron-openasar 0.0.33+813-1
upstream release
2023-10-31 18:52:01 +01:00
69456792b5
upgpkg: discord-electron 0.0.33-1
upstream release
2023-10-31 18:51:45 +01:00
6c5619e5c9
upgpkg: discord-electron-openasar 0.0.32+813-2
Add unzip as dependency
2023-10-31 12:52:31 +01:00
218aa2d708
upgpkg: clonezilla-unstable 5.5.14-1
upstream release
2023-10-30 18:50:14 +01:00
f51803c4f2
upgpkg: firefox-syncstorage 0.14.1-1
upstream release
2023-10-29 12:58:25 +01:00
fac7f702e8
upgpkg: discord-electron-openasar 0.0.32+813-1
Update to latest OpenAsar commit
2023-10-25 07:11:20 +02:00
35d9cb45ba
upgpkg: sublime-text-dev 4.4160-1
upstream release
2023-10-24 09:09:06 +02:00
5c9842adb0
upgpkg: sublime-text-dev 4.4159-1
upstream release
2023-10-20 11:01:59 +02:00
5f723c4136
upgpkg: plasma5-wallpapers-wallpaper-engine 0.5.4-5
Update dependencies and use sha512 checksums
2023-10-20 10:22:36 +02:00
Joseph DiGiovanni
a9d8072b0f Include licence
and general clean up
2023-10-19 23:59:53 -04:00
4f84bf4314
upgpkg: discord-electron-openasar 0.0.32+812-1
upstream release
2023-10-17 02:53:47 +02:00
b5712056b0
upgpkg: discord-electron 0.0.32-1
upstream release
2023-10-17 02:53:35 +02:00
88e08b1d6d
upgpkg: gvisor-git 20231009.0-1
upstream release
2023-10-12 21:53:21 +02:00
12c586fe62
upgpkg: gvisor-bin 20231009.0-1
upstream release
2023-10-12 21:50:21 +02:00
b8f306d2a8
upgpkg: clonezilla-unstable 5.5.12-1
upstream release
2023-10-07 20:25:10 +02:00
c9d0b67834
upgpkg: discord-electron-openasar 0.0.31+812-1
upstream release
2023-10-05 22:30:06 +02:00
ce943e5084
upgpkg: discord-electron 0.0.31-1
upstream release
2023-10-05 22:29:25 +02:00
adf6c51a1f
upgpkg: firefox-syncstorage 0.14.0-1
upstream release
2023-10-04 23:45:15 +02:00
f1574df6e9
upgpkg: obs-vkcapture 1.4.4-1
upstream release
2023-10-03 20:42:00 +02:00
c13999d451
upgpkg: clonezilla-unstable 5.5.11-1
upstream release
2023-10-03 20:40:18 +02:00
Joseph DiGiovanni
1a10f963ab Update launch script checksum 2023-09-24 11:30:34 -04:00
Joseph DiGiovanni
9bc21e291e Disable wine debug messages 2023-09-24 11:21:52 -04:00
Joseph DiGiovanni
3425beb572 Fixed launch script 2023-09-24 11:07:22 -04:00
Joseph DiGiovanni
69c83dfdf5 Initial commit 2023-09-24 10:51:52 -04:00
806856866f
upgpkg: prometheus-postgresql-exporter 0.14.0-1
upstream release
2023-09-21 20:00:03 +02:00
ac264e52cf
upgpkg: sublime-text-dev 4.4156-1
upstream release
2023-09-18 23:51:04 +02:00
92d541265d
upgpkg: obs-vkcapture 1.4.3-1
upstream release
2023-09-18 23:50:47 +02:00
7c6c39ebd9
upgpkg: discord-electron-openasar 0.0.30+812-1
upstream release
2023-09-18 23:29:46 +02:00
779ff26dda
upgpkg: discord-electron 0.0.30-1
upstream release
2023-09-18 23:29:20 +02:00
Jonathan Liu
2038cc4260 Update to 0.0.29-1 2023-09-16 20:43:49 +10:00
e39593a985
upgpkg: gvisor-git 20230904.0-1
upstream release
2023-09-08 23:57:58 +02:00
db049e5685
upgpkg: gvisor-bin 20230904.0-1
upstream release
2023-09-08 23:55:25 +02:00
e99aa26030
upgpkg: obs-vkcapture 1.4.2-1
upstream release
2023-09-07 19:59:45 +02:00
a88690c3d8
upgpkg: discord-electron-openasar 0.0.29+812-2
Update Electron version to 24
Update Krisp patch
2023-08-30 23:57:55 +02:00
91e85d8a11
upgpkg: discord-electron 0.0.29-2
Update Electron version to 24
Update Krisp patch
2023-08-30 23:55:45 +02:00
4b238b0477
upgpkg: discord-electron-openasar 0.0.29+812-1
upstream release
2023-08-30 19:23:33 +02:00
32bc0bf1d4
upgpkg: discord-electron 0.0.29-1
upstream release
2023-08-30 19:22:50 +02:00
8abf193e81
upgpkg: tuned 2.21.0-1
upstream release
2023-08-29 17:44:00 +02:00
390b9c53fc
upgpkg: sublime-text-dev 4.4155-1
upstream release
2023-08-26 18:56:00 +02:00
18c875d7bd
upgpkg: clonezilla-unstable 5.5.9-1
upstream release
2023-08-18 16:47:42 +02:00
892291f73c
upgpkg: clonezilla-unstable 5.5.8-1
upstream release
2023-08-12 17:02:03 +02:00
cb6fe38dba
upgpkg: discord-electron-openasar 0.0.28+812-1
Update to latest OpenAsar commit
2023-08-12 17:00:38 +02:00
b0a8905ef4
upgpkg: sublime-text-dev 4.4154-1
upstream release
2023-08-08 18:41:16 +02:00
d1877600d1
upgpkg: clonezilla-unstable 5.5.7-1
upstream release
2023-08-07 22:35:28 +02:00
ea0ea4dcb7
sublime-text-4: Rename source files 2023-08-07 17:44:27 +02:00
f685b8ea8f
sublime-text-dev: Rename source files, Use sha512 2023-08-07 17:43:41 +02:00
57e8c87d9b
upgpkg: gvisor-git 20230801.0-1
upstream release
Better support debug packages
Remove unnecessary GO111MODULE=on
Fix version not being written correctly
2023-08-05 15:21:52 +02:00
73a994cff1
upgpkg: gvisor-bin 20230801.0-1
upstream release
2023-08-05 15:15:05 +02:00
5232b91096
upgpkg: sublime-text-4 4.4152-2
Fix silently changed checksums
2023-08-04 20:38:08 +02:00
7a63ba662d
upgpkg: sublime-text-4 4.4152-1
upstream release
2023-08-02 21:30:51 +02:00
29bdcba26f
upgpkg: sublime-text-4 4.4151-1
upstream release
2023-08-02 21:05:00 +02:00
1503b1d0b8
upgpkg: clonezilla-unstable 5.5.5-1
upstream release
2023-08-02 21:04:17 +02:00
41b612faca
upgpkg: clonezilla-unstable 5.5.4-1
upstream release
2023-07-29 15:09:01 +02:00
69284968ac
upgpkg: clonezilla-unstable 5.5.3-1
upstream release
2023-07-28 20:48:28 +02:00
0cd1e6cf16
upgpkg: clonezilla-unstable 5.5.2-1
upstream release
2023-07-27 16:20:40 +02:00
ca31d75eb8
upgpkg: prometheus-postgresql-exporter 0.13.2-1
upstream release
2023-07-24 22:28:09 +02:00
d909dffc99
upgpkg: clonezilla-unstable 5.5.1-1
upstream release
2023-07-21 20:45:52 +02:00
218e460b90
upgpkg: clonezilla-unstable 5.4.12-1
upstream release
2023-07-13 17:15:00 +02:00
454ccfafa4
upgpkg: discord-electron-openasar 0.0.28+811-1
upstream release
Refactor PKGBUILD slightly
Update Krisp checksum
Check for empty lines when parsing flags
2023-07-13 06:40:55 +02:00
746bf996c0
upgpkg: discord-electron 0.0.28-1
upstream release
Refactor PKGBUILD slightly
Update Krisp checksum
Check for empty lines when parsing flags
2023-07-13 06:40:03 +02:00
0359d05d68
upgpkg: gvisor-git 20230710.0-1 2023-07-13 06:38:29 +02:00
2650a49fac
upgpkg: gvisor-bin 20230710.0-1
upstream release
2023-07-13 06:38:02 +02:00
e665d9a64f
upgpkg: obs-vkcapture 1.4.1-1
upstream release
2023-07-13 06:37:14 +02:00
ad257ee67a
upgpkg: discord-electron-openasar 0.0.27+811-1
Update to latest OpenAsar commit
Update optdepends
2023-07-07 22:59:23 +02:00
044f004f3a
upgpkg: discord-electron 0.0.27-7
Update optdepends
2023-07-07 22:58:39 +02:00
25fff397b1
Fix chroot setup script 2023-07-06 08:22:20 +02:00
310039dbd8
upgpkg: clonezilla-unstable 5.4.11-1
upstream release
2023-07-06 08:19:33 +02:00
374d183eea
upgpkg: discord-electron 0.0.27-6
Fix use of wrong pkgver variable (Thanks to @rsa)
Unset not needed variables in launch script
Rewording install file text
2023-07-03 22:56:16 +02:00
299ee92288
upgpkg: clonezilla-unstable 5.4.10-1
upstream release
2023-06-28 21:50:14 +02:00
d08c3f1875
upgpkg: prometheus-postgresql-exporter 0.13.1-1
upstream release
2023-06-27 21:42:04 +02:00
cb6b22fdc2
upgpkg: prometheus-postgresql-exporter 0.13.0-1
upstream release
2023-06-22 23:58:52 +02:00
0d291b7ed6
upgpkg: obs-vkcapture 1.4.0-1
upstream release
2023-06-17 00:56:06 +02:00
428082d9ac
upgpkg: prometheus-postgresql-exporter 0.12.1-1
upstream release
2023-06-17 00:55:38 +02:00
7ad0778608
upgpkg: discord-electron-openasar 0.0.27+810-1
Update to latest OpenAsar commit
Unset not needed variables in launch script
Rewording install file text
2023-06-08 21:57:27 +02:00
8689b4a782
upgpkg: gvisor-git 20230605.0-1 2023-06-08 21:42:39 +02:00
3924a50336
upgpkg: gvisor-bin 20230605.0-1
upstream release
2023-06-08 21:41:09 +02:00
a7a20b9fd0
upgpkg: clonezilla-unstable 5.4.9-1
upstream release
2023-06-08 21:40:39 +02:00
32e5c20306
upgpkg: discord-electron-openasar 0.0.27+809-5
Include rudimentary patch to allow Krisp noise suppression support
2023-06-02 21:52:38 +02:00
dee0c4a1bb
upgpkg: discord-electron 0.0.27-5
Include rudimentary patch to allow Krisp noise suppression support
2023-06-02 21:52:11 +02:00
ae61795aab
upgpkg: plasma5-wallpapers-wallpaper-engine 0.5.4-4
Include patch to fix build process
2023-05-28 23:58:32 +02:00
d9855ab9b1
upgpkg: discord-electron-openasar 0.0.27+809-4
Update launch script to not touch the flags file with sed on no match
2023-05-28 23:55:52 +02:00
bcc3abeedf
upgpkg: discord-electron 0.0.27-4
Update launch script to not touch the flags file with sed on no match
2023-05-28 23:55:25 +02:00
d5513a1e94
upgpkg: discord-electron-openasar 0.0.27+809-3
Fix whitespace indentation in install file
Replace ignore-gpu-blacklist with ignore-gpu-blocklist as the former does not work anymore
2023-05-27 21:55:29 +02:00
834d95a5ed
upgpkg: discord-electron 0.0.27-3
Fix whitespace indentation in install file
Replace ignore-gpu-blacklist with ignore-gpu-blocklist as the former does not work anymore
2023-05-27 21:55:10 +02:00
ca79b29c22
upgpkg: discord-electron-openasar 0.0.27+809-2
Update to latest OpenAsar commit
Update Discord launcher script (Original by Zoddo)
Add libxss as dependency to fix Discord corruption warning
Add install script to notify user about discord-flags.conf
Remove duplicate Path variable in .desktop file
Update contributor list
2023-05-27 20:10:31 +02:00
b09bd231d5
upgpkg: discord-electron 0.0.27-2
Update Discord launcher script (Original by Zoddo)
Add libxss as dependency to fix Discord corruption warning
Add install script to notify user about discord-flags.conf
Remove duplicate Path variable in .desktop file
Update contributor list
2023-05-27 20:10:10 +02:00
c21344130c
Update chroot setup script and add makepkg.conf 2023-05-27 19:58:24 +02:00
e7fc2abcdd
upgpkg: obs-vkcapture 1.3.3-1
upstream release
2023-05-27 15:15:15 +02:00
226d458800
upgpkg: clonezilla-unstable 5.4.8-1
upstream release
2023-05-18 17:58:32 +02:00
d24fe99295
upgpkg: sublime-text-dev 4.4150-1
upstream release
2023-05-13 23:06:23 +02:00
3617e4debb
upgpkg: clonezilla-unstable 5.4.7-1
upstream release
2023-05-13 23:05:52 +02:00
48932538f5
upgpkg: tuned 2.20.0-2
Trigger rebuild for Python 3.11
2023-05-05 17:24:45 +02:00
e6d67b0e52
upgpkg: sublime-text-dev 4.4149-1
upstream release
2023-05-04 20:58:19 +02:00
bdd26e0f51
upgpkg: gvisor-git 20230501.0-1 2023-05-03 18:57:50 +02:00
d914671e59
upgpkg: gvisor-bin 20230501.0-1
upstream release
2023-05-03 18:57:19 +02:00
d85101e522
upgpkg: ntfs2btrfs-git 20230501.r0.ga8fd1a2-1
upstream release
2023-05-01 23:23:46 +02:00
4024da54f4
upgpkg: ntfs2btrfs 20230501-1
upstream release
2023-05-01 23:23:32 +02:00
536699a8b2
upgpkg: discord-electron-openasar 0.0.27+808-1
upstream release
Update to latest OpenAsar commit
2023-04-29 14:53:17 +02:00
a0d23ad7ef
upgpkg: discord-electron 0.0.27-1
upstream release
2023-04-29 14:53:06 +02:00
b903e81124
upgpkg: clonezilla-unstable 5.4.6-2
Fix silently changed checksum
2023-04-29 14:52:00 +02:00
17b3fe7b1f
upgpkg: ntfs2btrfs-git 20220812.r10.gb8ae0f8-1
* PKGBUILD refactor to be same as non-git package
* new versioning scheme
2023-04-19 22:50:00 +02:00
d97a8b2abd Add 'ntfs2btrfs-git/' from commit 'e787c7fc8bcccedf76ffed15d468620e72b397eb'
git-subtree-dir: ntfs2btrfs-git
git-subtree-mainline: 0df4b7ff3a
git-subtree-split: e787c7fc8b
2023-04-19 22:45:28 +02:00
0df4b7ff3a
upgpkg: gvisor-git 20230417.0-1 2023-04-19 21:00:09 +02:00
99bf69621c
upgpkg: gvisor-bin 20230417.0-1
upstream release
2023-04-19 20:59:19 +02:00
84b48e8713
upgpkg: discord-electron-openasar 0.0.26+803-2
Update Electron version to v22
2023-04-17 22:30:37 +02:00
f4edcadef0
upgpkg: discord-electron-openasar 0.0.26+803-1
Update to latest OpenAsar commit
2023-04-16 22:30:44 +02:00
1acdf50880
upgpkg: clonezilla-unstable 5.4.6-1
upstream release
2023-04-16 22:22:04 +02:00
fe947b21ed
upgpkg: discord-electron-openasar 0.0.26+800-1
Update to latest OpenAsar commit
2023-04-06 06:55:37 +02:00
872eb64faa
upgpkg: obs-vkcapture 1.3.2-1
upstream release
2023-04-04 00:58:31 +02:00
c8eb826379
Initial upload: discord-electron-openasar 0.0.26+795-1 2023-04-03 08:35:46 +02:00
f277aa9dbd
Rename package to discord-electron, PKGBUILD refactor 2023-04-03 08:32:00 +02:00
0cd9d00e90 Add 'discord-electron/' from commit '4b9adbf92176f51c02ddbf2a5c295b64e5df03b0'
git-subtree-dir: discord-electron
git-subtree-mainline: 4fd007bb9f
git-subtree-split: 4b9adbf921
2023-04-03 08:30:02 +02:00
4fd007bb9f
cage-vi: Update to latest master that includes vi patch 2023-04-02 21:12:32 +02:00
05dacc1321
upgpkg: clonezilla-unstable 5.4.5-1
upstream release
2023-04-02 01:36:18 +02:00
aed273fe05
upgpkg: discord-electron-bin 0.0.26-1
upstream release
Discord now works correctly with the latest Electron version
2023-04-02 01:28:03 +02:00
57c47c4d64
upgpkg: obs-vkcapture 1.3.1-1
upstream release
2023-03-28 00:58:31 +02:00
f366caae8a
upgpkg: prometheus-postgresql-exporter 0.12.0-1
upstream release
2023-03-22 19:56:38 +01:00
6fd0e3aa05
upgpkg: clonezilla-unstable 5.4.4-1
upstream release
2023-03-22 19:56:10 +01:00
c29e4a938d
upgpkg: clonezilla-unstable 5.4.3-1
upstream release
2023-03-18 22:12:14 +01:00
b6af281e9b
upgpkg: clonezilla-unstable 5.4.2-1
upstream release
2023-03-16 21:45:47 +01:00
dcab26fcf3
upgpkg: sublime-text-dev 4.4148-1
upstream release
2023-03-15 19:04:40 +01:00
32463dab64
upgpkg: gvisor-git 20230306.0-1 2023-03-09 20:39:07 +01:00
6080c9b2a6
upgpkg: gvisor-bin 20230306.0-1
upstream release
2023-03-09 20:38:08 +01:00
395a67d8f0
upgpkg: firefox-syncstorage 0.13.6-1
upstream release
remove obsolete openssl compatibility parameter
2023-03-07 21:57:07 +01:00
5884d3904f
upgpkg: firefox-syncstorage 0.13.5-1
upstream release
2023-03-04 23:00:00 +01:00
c0ba92f105
upgpkg: spot-client 0.4.0-1
upstream release
2023-02-24 23:24:08 +01:00
4e0f9a096e
upgpkg: firefox-syncstorage 0.13.4-1
upstream release
2023-02-24 23:23:47 +01:00
31a2a13f07
upgpkg: clonezilla-unstable 5.4.0-1
upstream release
2023-02-21 22:30:05 +01:00
5d6aa86160
upgpkg: tuned 2.20.0-1
upstream release
2023-02-18 23:38:32 +01:00
1373ba279d
upgpkg: firefox-syncstorage 0.13.2-1
upstream release
2023-02-18 23:37:46 +01:00
d1ea287c2f
upgpkg: gvisor-git 20230214.0-1 2023-02-18 22:55:33 +01:00
31fc4a9a8b
upgpkg: gvisor-bin 20230214.0-1
upstream release
2023-02-18 22:55:17 +01:00
8dfb31458f
upgpkg: bino 2.1-1
upstream release
2023-02-18 22:53:48 +01:00
1abef8ab74
upgpkg: discord-electron-bin 0.0.25-1
upstream release
2023-02-14 20:59:04 +01:00
Christian Pellegrin
3995c198a8 upgpkg: systemtap 4.8-1
updated repository location
2023-01-29 15:08:17 +01:00
haawda
01d0e8bc60 update 2023-01-23 19:57:28 +01:00
72874d274e
upgpkg: obs-vkcapture 1.3.0-1
upstream release
2023-01-17 17:10:21 +01:00
7ba91c18cb
upgpkg: discord-electron-bin 0.0.24-1
upstream release
2023-01-15 20:44:49 +01:00
da4062644b
upgpkg: clonezilla-unstable 5.3.6-1
upstream release
2023-01-10 16:40:49 +01:00
ad9d01d057
upgpkg: clonezilla-unstable 5.3.5-1
upstream release
2023-01-08 17:08:46 +01:00
f6926a9d8f
upgpkg: clonezilla-unstable 5.3.4-1
upstream release
2023-01-08 15:20:16 +01:00
42e209e49a
upgpkg: gvisor-git 20230102.0-1 2023-01-04 23:07:26 +01:00
bdc1308751
upgpkg: gvisor-bin 20230102.0-1
upstream release
2023-01-04 23:07:02 +01:00
39d038f3ba
upgpkg: clonezilla-unstable 5.3.3-1
upstream release
2022-12-30 14:05:48 +01:00
7d45c4876a
upgpkg: sublime-text-dev 4.4147-1
upstream release
2022-12-22 17:53:06 +01:00
483589bb94
upgpkg: firefox-syncstorage 0.13.1-1
upstream release
2022-12-16 21:25:50 +01:00
88eb6634f2
upgpkg: sublime-text-dev 4.4146-1
upstream release
2022-12-15 13:00:07 +01:00
9b7ffc00cf
upgpkg: sublime-text-dev 4.4145-1
upstream release
2022-12-14 10:08:07 +01:00
ee817d5563
upgpkg: sublime-text-dev 4.4144-4 2022-12-14 08:08:55 +01:00
4d63fd9c74
Initial upload: waifu2x-ncnn-vulkan 20220728-1 2022-12-12 22:12:31 +01:00
1b7c8a975d
sublime-text-3: Refactor package function
pkgrel bump not needed as same package is produced
2022-12-12 12:59:41 +01:00
8cfc99d12e
upgpkg: sublime-text-dev 4.4141-4
Use correct name for WMClass in desktop file
2022-12-12 12:02:48 +01:00
ab8a1a063b
upgpkg: sublime-text-4 4.4143-4
Use correct name for WMClass in desktop file
2022-12-12 12:02:35 +01:00
922102daef
upgpkg: sublime-text-3 3.3211-4
Use correct name for WMClass in desktop file
2022-12-12 12:02:06 +01:00
a22687183f
upgpkg: sublime-text-dev 4.4141-3
Added GNOME specific StartupWMClass option back to desktop file
Removed desktop file from /opt/sublime_text directory
2022-12-10 09:58:54 +01:00
868928210d
upgpkg: sublime-text-4 4.4143-3
Added GNOME specific StartupWMClass option back to desktop file
Removed desktop file from /opt/sublime_text directory
2022-12-10 09:58:00 +01:00
a452cf9a45
upgpkg: sublime-text-3 3.3211-3
Improved formatting
Updated description to point out that is a legacy version now
Added GNOME specific StartupWMClass option back to desktop file
Removed desktop file from /opt/sublime_text_3 directory
2022-12-10 09:56:28 +01:00
8a99ae5f79
upgpkg: discord-electron-bin 0.0.22-1
upstream release
2022-12-10 05:00:10 +01:00
741d316bde
spot-client: Use correct comment this time 2022-12-08 22:10:45 +01:00
9a44a0d632
spot-client: Revert removal of comment 2022-12-08 22:06:38 +01:00
2c26b0761c
upgpkg: spot-client 0.3.3-1
upstream release
2022-12-08 21:56:17 +01:00
a3bde23a8c
upgpkg: gvisor-git 20221205.0-1 2022-12-08 21:18:26 +01:00
420b390205
upgpkg: gvisor-bin 20221205.0-1
upstream release
2022-12-08 21:18:06 +01:00
08bf7c405d
Generically use cmake for build instead of make directly 2022-12-06 22:10:20 +01:00
eb7199cf13
upgpkg: nginx-mod-traffic-accounting 2.0+18+g46aae3e-1
Added patch that adds option for collecting only successful requests
2022-12-06 22:00:00 +01:00
939faa9efa
Initial upload: ntfs2btrfs 20220812-1 2022-12-04 08:00:07 +01:00
3845fa28ff
upgpkg: obs-vkcapture 1.2.2-1
upstream release
2022-11-29 19:08:19 +01:00
920e68a30a
upgpkg: clonezilla-unstable 5.3.1-1
upstream release
2022-11-27 21:15:00 +01:00
920dad2fc1
upgpkg: clonezilla-unstable 5.3.0-1
upstream release
2022-11-27 19:41:02 +01:00
64533bf083
upgpkg: plasma5-wallpapers-wallpaper-engine 0.5.4-3
Bump glslang version
2022-11-23 18:02:43 +01:00
0789e79be9
Use unique file names for sources 2022-11-23 18:00:52 +01:00
92bc518a4b
Revert setting jobs option for make
This option should be set in makepkg.conf instead of being passed by the package
2022-11-23 17:53:52 +01:00
ac9b2e9d75
upgpkg: discord-electron-bin 0.0.21-2
Don't strip package to not break Krisp noise supression. FS#76334
2022-11-17 22:25:47 +01:00
242661b737
Update indentation and formatting 2022-11-15 17:34:12 +01:00
95be8e0fc1
upgpkg: firefox-syncstorage 0.13.0-1
upstream release
2022-11-15 17:25:15 +01:00
6c6a3546ab
upgpkg: sublime-text-dev 4.4141-2
Update formatting
Use included desktop file
Remove obsolete optdepends
2022-11-15 17:24:05 +01:00
651f681329
upgpkg: sublime-text-4 4.4143-2
Update formatting
Use included desktop file
Remove obsolete optdepends
2022-11-15 17:23:18 +01:00
16cbab618f
upgpkg: sublime-text-3 3.3211-2
Allow installation next to sublime-text
2022-11-15 17:16:35 +01:00
74901c28cb Add 'sublime-text-3/' from commit '43b10975f352ea4425d2d3b5e83066e635806259'
git-subtree-dir: sublime-text-3
git-subtree-mainline: ec7b51fcdd
git-subtree-split: 43b10975f3
2022-11-15 17:10:26 +01:00
Christian Pellegrin
b60360437f upgpkg: systemtap 4.8-1
upstream release
2022-11-12 21:32:48 +01:00
ec7b51fcdd
upgpkg: sublime-text-4 4.4143-1
upstream release
2022-11-11 16:15:27 +01:00
27b50850b2
Remove redundant editorconfigs 2022-11-10 17:53:37 +01:00
a8a34013a5
Add script to check gVisor version 2022-11-10 17:48:08 +01:00
84a02eb30a
gvisor-bin: Add .gitignore 2022-11-10 17:46:52 +01:00
72805e9a1f
upgpkg: sublime-text-4 4.4142-1
upstream release
2022-11-10 17:42:00 +01:00
70eee4c223
upgpkg: sublime-text-dev 4.4141-1
upstream release
2022-11-10 17:41:24 +01:00
54ff81139e
upgpkg: florence 0.6.3-3
Don't generate docs and remove gnome-doc-utils dependency to not require python2 for build process
2022-11-09 18:56:35 +01:00
1b0c4aa2c9
bino: Update description 2022-11-09 18:09:58 +01:00
696a4a2f4a
Deleted package: glewmx 2022-11-09 18:00:51 +01:00
c9385d3189
upgpkg: qvr 4.0.1-3
Fix wrong license
2022-11-09 17:56:28 +01:00
ace330850d
upgpkg: qvr 4.0.1-2
Fix wrong description and URL
2022-11-09 17:53:10 +01:00
39efcecb36
upgpkg: bino 2.0-1
upstream release
2022-11-09 17:38:40 +01:00
f792c81786
Initial upload: qvr 4.0.1-1 2022-11-09 17:38:00 +01:00
1bd4107088
upgpkg: gvisor-git 20221102.1-1 2022-11-05 12:46:20 +01:00
2257772252
upgpkg: gvisor-bin 20221102.1-1
upstream release
2022-11-05 12:45:51 +01:00
3c6e6ebb05
upgpkg: firefox-syncstorage 0.12.5-1
upstream release
2022-11-03 17:14:18 +01:00
a76923b67b
upgpkg: sublime-text-dev 4.4140-1
upstream release
2022-10-31 22:44:10 +01:00
fd8524cebd
upgpkg: obs-vkcapture 1.2.1-1
upstream release
2022-10-30 14:15:53 +01:00
a395017635
upgpkg: clonezilla-unstable 5.2.7-1
upstream release
2022-10-28 12:41:58 +02:00
fa94f32802
upgpkg: sublime-text-dev 4.4139-1
upstream release
2022-10-28 12:39:51 +02:00
5e6744983f
Update README 2022-10-23 12:44:10 +02:00
37a94ece2c
Add .editorconfig 2022-10-23 12:43:46 +02:00
48f278ad44
Remove obsolete install and gitignore files 2022-10-23 11:18:17 +02:00
e940e46903
discord-electron-bin: Set correct module path
This change allows the use of vastly newer Electron versions
but this makes Discord still crash when viewing a video feed
2022-10-23 10:31:02 +02:00
595ae192c1
upgpkg: discord-electron-bin 0.0.21-1
upstream release
2022-10-23 07:30:02 +02:00
49383ed236
Add License 2022-10-18 00:03:56 +02:00
a74e1ee87c
Move scripts 2022-10-18 00:03:21 +02:00
bae457770e Add 'tuned/' from commit '6258865f96919472de308431351e45cc1068bcbc'
git-subtree-dir: tuned
git-subtree-mainline: 522e203444
git-subtree-split: 6258865f96
2022-10-18 00:00:01 +02:00
522e203444 Add 'sublime-text-dev/' from commit 'b690ed48580bdba6fc41e86c2681b04e2dd43a75'
git-subtree-dir: sublime-text-dev
git-subtree-mainline: 44812fd196
git-subtree-split: b690ed4858
2022-10-18 00:00:01 +02:00
44812fd196 Add 'sublime-text-4/' from commit '499edeb25f1833676b03f5de037e40181c3932ef'
git-subtree-dir: sublime-text-4
git-subtree-mainline: b1ad5a3f48
git-subtree-split: 499edeb25f
2022-10-18 00:00:02 +02:00
b1ad5a3f48 Add 'spot-client/' from commit '4ae0a00e99fd63640acbcb3084feb8db9a950d40'
git-subtree-dir: spot-client
git-subtree-mainline: 0ac56c082a
git-subtree-split: 4ae0a00e99
2022-10-18 00:00:01 +02:00
0ac56c082a Add 'rc-local/' from commit 'f0441047ba45e4e81ab398f055db9f68480fd492'
git-subtree-dir: rc-local
git-subtree-mainline: c91488a4fe
git-subtree-split: f0441047ba
2022-10-18 00:00:01 +02:00
c91488a4fe Add 'prometheus-postgresql-exporter/' from commit '69aa9255bbec35da7cca87fc940eef91f64dfdf4'
git-subtree-dir: prometheus-postgresql-exporter
git-subtree-mainline: 72e058bcd0
git-subtree-split: 69aa9255bb
2022-10-18 00:00:02 +02:00
72e058bcd0 Add 'polkit-explorer-git/' from commit 'c39956b6dc507b84a32c6a259ce50b43074b9832'
git-subtree-dir: polkit-explorer-git
git-subtree-mainline: 3ee96b7f8e
git-subtree-split: c39956b6dc
2022-10-18 00:00:01 +02:00
3ee96b7f8e Add 'plymouth-theme-arch-logo/' from commit '00ae1a38444555267c1c01ff26dd46e1bec46894'
git-subtree-dir: plymouth-theme-arch-logo
git-subtree-mainline: 32e592d220
git-subtree-split: 00ae1a3844
2022-10-18 00:00:01 +02:00
32e592d220 Add 'plasma5-wallpapers-wallpaper-engine/' from commit '3112b7987d7cdcd1fc6eeb6b9dd1f2fd36d99899'
git-subtree-dir: plasma5-wallpapers-wallpaper-engine
git-subtree-mainline: 35ea7cbe48
git-subtree-split: 3112b7987d
2022-10-18 00:00:01 +02:00
35ea7cbe48 Add 'nginx-mod-traffic-accounting/' from commit 'db5f4adedffd7a365aa69fc94dc97beabc0ffbd7'
git-subtree-dir: nginx-mod-traffic-accounting
git-subtree-mainline: 04da623d08
git-subtree-split: db5f4adedf
2022-10-18 00:00:02 +02:00
04da623d08 Add 'nginx-mod-form-input/' from commit 'e8f101c6f1d8f84a63a4540dafa34e4bca7486fd'
git-subtree-dir: nginx-mod-form-input
git-subtree-mainline: 15e8c0cdab
git-subtree-split: e8f101c6f1
2022-10-18 00:00:01 +02:00
15e8c0cdab Add 'libqxt/' from commit 'e537460e56314f9af687dc730f5c3bfd6c118196'
git-subtree-dir: libqxt
git-subtree-mainline: 004eaa228c
git-subtree-split: e537460e56
2022-10-18 00:00:01 +02:00
004eaa228c Add 'obs-vkcapture/' from commit '2918b6b3318b735d0ef76bedbeeb5c3d4954b5da'
git-subtree-dir: obs-vkcapture
git-subtree-mainline: ac50cd8280
git-subtree-split: 2918b6b331
2022-10-18 00:00:02 +02:00
ac50cd8280 Add 'gvisor-git/' from commit 'a6279bbc52726eb5e2fc07e23e2cc62f03b88b31'
git-subtree-dir: gvisor-git
git-subtree-mainline: 198d3e0495
git-subtree-split: a6279bbc52
2022-10-18 00:00:01 +02:00
198d3e0495 Add 'gvisor-bin/' from commit '277c8a0b3446e1c33655e115978934d0e57633e4'
git-subtree-dir: gvisor-bin
git-subtree-mainline: c1ebcd1deb
git-subtree-split: 277c8a0b34
2022-10-18 00:00:01 +02:00
c1ebcd1deb Add 'glewmx/' from commit '667034a50e0cca6da9252f7026c9ccdd4bbfde5d'
git-subtree-dir: glewmx
git-subtree-mainline: ae5638f530
git-subtree-split: 667034a50e
2022-10-18 00:00:02 +02:00
ae5638f530 Add 'florence/' from commit '890c618a180078ac1dece535215bc4b99e8d753f'
git-subtree-dir: florence
git-subtree-mainline: 4ea6300b8a
git-subtree-split: 890c618a18
2022-10-18 00:00:01 +02:00
4ea6300b8a Add 'firefox-syncstorage/' from commit '738c7f7c726b198097ec03bb940bd87f45894afe'
git-subtree-dir: firefox-syncstorage
git-subtree-mainline: fe8d766c45
git-subtree-split: 738c7f7c72
2022-10-18 00:00:01 +02:00
fe8d766c45 Add 'discord-electron-bin/' from commit '6262bc5fa7f79806857f737012b9887ddd1c24cf'
git-subtree-dir: discord-electron-bin
git-subtree-mainline: 95ad33ffed
git-subtree-split: 6262bc5fa7
2022-10-18 00:00:01 +02:00
95ad33ffed Add 'clonezilla-unstable/' from commit '9933b6954e15663ed271c384a57e465c1c31e97e'
git-subtree-dir: clonezilla-unstable
git-subtree-mainline: af8a24ac62
git-subtree-split: 9933b6954e
2022-10-18 00:00:02 +02:00
af8a24ac62 Add 'bino/' from commit 'cb7fe24648232137bdb358cf58c9e154fca47a26'
git-subtree-dir: bino
git-subtree-mainline: 9f7af08ef5
git-subtree-split: cb7fe24648
2022-10-18 00:00:01 +02:00
9f7af08ef5
Delete discord-electron-bin 2022-10-17 23:59:00 +02:00
4f49445efa
Move packages 2022-10-17 23:58:40 +02:00
7b27a45468
Update .gitignore 2022-10-17 23:57:26 +02:00
bed59f9734
Update README 2022-10-17 23:52:50 +02:00
b690ed4858
Update to build 4138 2022-10-17 11:17:09 +02:00
9933b6954e
Update to version 5.2.6 2022-10-16 21:10:33 +02:00
738c7f7c72
Version 0.12.4 2022-10-12 20:44:16 +02:00
a5c019afc5
cage-vi: Update required dependencies 2022-10-02 20:35:34 +02:00
1964c5cea8
Version 0.12.3 2022-09-24 21:38:02 +02:00
f81abdb920
Update to build 4137 2022-09-23 23:43:40 +02:00
65f387ee85
Initial commit with version 0.12.2 2022-09-23 22:36:18 +02:00
5f454d6520
cage-vi: Minimize necessary dependencies 2022-09-23 18:47:36 +02:00
dd3071719e
Add cage-vi 2022-09-23 17:22:56 +02:00
69aa9255bb
Update to 0.11.1 2022-09-20 23:34:26 +02:00
6262bc5fa7
Initial commit 2022-09-15 20:44:17 +02:00
5d4cfb5769
Downgrade Electron version to support screen sharing 2022-09-15 20:33:01 +02:00
13032bd20c
Update discord-electron-bin to 0.0.20 2022-09-15 20:17:33 +02:00
24e6c20ec0
Update to build 4136 2022-09-15 15:53:19 +02:00
a7df5c65ba
Update to version 5.2.4 2022-09-12 19:36:13 +02:00
graysky
bc2cf3f39e Update to 2022.0.2.84-1 2022-09-11 13:53:58 -04:00
277c8a0b34
Release 20220905.0 2022-09-07 18:28:23 +02:00
a6279bbc52
Bump to 20220905 2022-09-07 18:28:02 +02:00
2918b6b331
Initial commit with version 1.2.0 2022-08-27 22:50:06 +02:00
eefdbaa7f5
Update to version 5.2.3 2022-08-24 21:11:27 +02:00
haawda
676e3742ba new version 2022-08-23 18:15:49 +02:00
ea88447430
Add discord-electron-bin 2022-08-22 20:14:07 +02:00
6258865f96
Version 2.19.0 2022-08-19 23:13:11 +02:00
haawda
38bcdca8c3 update 2022-08-15 12:28:45 +02:00
db5f4adedf
Initial commit 2022-08-14 13:39:34 +02:00
144fe12d28
Bump to 20220808 2022-08-14 13:01:19 +02:00
24712bc0b0
Release 20220808.0 2022-08-14 13:01:02 +02:00
3112b7987d
Update checksum 2022-08-07 13:28:52 +02:00
c36e9eace7
Initial commit 2022-08-01 11:21:23 +02:00
5de5c93142
Update to version 0.5.4 2022-07-31 14:32:36 +02:00
bd25c2efde
Update to 0.11.0 2022-07-28 16:23:44 +02:00
1cbfd7fdd3
Bump to 20220713 2022-07-15 23:57:49 +02:00
e34cdb587b
Release 20220713.0 2022-07-15 23:57:25 +02:00
Jonathan Liu
e50958b5c0 Update to 0.0.27-2 2022-07-15 14:02:20 +10:00
Christian Pellegrin
6e6e2b0358 upgpkg: systemtap 4.7-1
upstream release
2022-07-11 20:25:36 +01:00
32d3cf26e0
Update to version 5.2.2 2022-07-10 23:56:53 +02:00
fae32856ad
Release 20220704.0 2022-07-10 23:54:09 +02:00
dbc0828d1c
Bump to 20220704 2022-07-10 23:53:35 +02:00
41c97b53b3
Update to version 5.2.1 2022-07-06 23:35:05 +02:00
2fdf17d6e1
Add missing python3 pycs 2022-07-04 17:14:54 +02:00
841d6fa4bb
Bump to 20220627 2022-07-02 22:31:12 +02:00
44d7884908
Release 20220627.0 2022-07-02 22:30:54 +02:00
c02a18702e
Release 20220621.0 2022-06-23 19:06:17 +02:00
1eeab7daf3
Bump to 20220621 2022-06-23 19:05:55 +02:00
cb7fe24648
Update ffmpeg4.4.patch checksum 2022-06-15 00:37:21 +02:00
9f35446458
Update patch for POSIX compliancy
Replace ffmpeg with ffmpeg4.4 dependency that I forgot in the last commit
Thanks goes to AUR user @patlefort
2022-06-14 17:08:00 +02:00
9c51a1fff2
Release 20220606.0 2022-06-14 00:44:03 +02:00
f522e94d5c
Bump to 20220606 2022-06-14 00:44:03 +02:00
77f2b6a0c3
Patch ffmpeg 5.0 compatibility
Contributed by AUR user @gruenfron
2022-06-14 00:35:20 +02:00
667034a50e
Refactor PKGBUILD 2022-06-14 00:28:51 +02:00
fb97c0c906
Update to version 5.1.12 2022-06-12 19:05:37 +02:00
42153a938b
Update to version 0.5.3 2022-06-11 22:43:38 +02:00
2f20008718
Update to version 5.1.10 2022-06-07 00:03:19 +02:00
haawda
a9f0863f78 pull again from git, upstream's tarballs are broken 2022-06-06 14:17:51 +02:00
7d7e0d5c9f
Update build & install process 2022-06-04 23:53:37 +02:00
haawda
930a6fa66c update 2022-06-01 19:39:40 +02:00
haawda
e201121a04 update 2022-05-28 12:54:12 +02:00
44a5055f3b
Update to build 4134 2022-05-27 19:53:33 +02:00
cce2aa689c
Update to version 5.1.7 2022-05-26 17:19:48 +02:00
c63b4bb45a
Update to version 5.1.5 2022-05-22 21:59:41 +02:00
444975b5c2
Release 20220510.0 2022-05-22 21:43:09 +02:00
1a0d4dcef6
Bump to 20220516 2022-05-22 21:42:32 +02:00
64ad93d140
Update to version 5.1.3 2022-05-13 17:12:16 +02:00
66025ede26
Update to version 5.1.2 2022-05-11 00:03:26 +02:00
2efb26ea9a
Update to version 0.5.2 2022-05-06 22:44:04 +02:00
d471cfea58
Update to version 5.1.1 2022-05-02 22:22:14 +02:00
e53187dfcc
Release 20220425.0 2022-04-30 19:42:14 +02:00
4d175f54b3
Bump to 20220425 2022-04-30 19:41:19 +02:00
f498eee50e
Update to version 5.1.0 2022-04-28 18:14:35 +02:00
99756c9412
Update dependencies 2022-04-23 19:42:01 +02:00
698e1a973d
Update to version 0.5.1 2022-04-23 17:52:49 +02:00
c71bf81496
Initial commit with version 0.5.0 2022-04-20 22:01:03 +02:00
8c5bb849e1
Update to version 5.0.12 2022-04-20 17:22:49 +02:00
38270842ad
Update to version 5.0.11 2022-04-19 12:09:16 +02:00
ad9651dd55
Update to version 5.0.10 2022-04-18 15:25:54 +02:00
25bf65fe66
Update to version 5.0.9 2022-04-13 23:56:11 +02:00
894f39d938
Update to version 5.0.7 2022-04-09 21:20:48 +02:00
dae4eff819
Update to version 5.0.6 2022-03-30 00:17:11 +02:00
411e0e4bef
Bump to 20220328, change build output directory 2022-03-28 21:12:11 +02:00
dbeb32aaab
Include containerd shim binary 2022-03-28 06:46:50 +02:00
2a0929d868
Build using go and switch versioning scheme 2022-03-28 06:43:12 +02:00
cf89b2a664
Add support for ARMv8 2022-03-27 07:58:18 +02:00
d916f2b869
Release 20220228.0 2022-03-27 07:20:07 +02:00
67b50f2204
Update to version 5.0.5 2022-03-27 07:15:11 +02:00
3bb4130341
Update to build 4131 2022-03-25 23:58:25 +01:00
c39956b6dc
Fix unsupported git protocol still being used
Thanks goes to @a821 for the hint
2022-03-24 19:43:26 +01:00
9d8f19b1a6
Update to build 4130 2022-03-23 22:28:00 +01:00
5f62ffc115
Update to version 5.0.4 2022-03-13 20:20:16 +01:00
dd48b090ef
Fix broken package due to renaming 2022-03-02 15:38:23 +01:00
Jonathan Liu
0fcc104861 Update to 0.0.27-1 2022-02-28 17:15:09 +11:00
1721a123a8
Update to build 4129 2022-02-24 16:20:05 +01:00
6b773ff1c2
Update to build 4128 2022-02-22 15:31:31 +01:00
ed26520533
Update to version 5.0.3 2022-02-20 15:51:47 +01:00
27a3a0912b
Update to version 5.0.2 2022-02-19 17:52:31 +01:00
00ae1a3844
Update email 2022-02-13 15:16:15 +01:00
f0441047ba
Update email 2022-02-13 15:15:45 +01:00
e537460e56
Update email 2022-02-13 15:15:29 +01:00
890c618a18
Update email 2022-02-13 15:15:11 +01:00
85931efab9
Initial commit with version 5.0.1 2022-02-11 12:41:05 +01:00
e43b4b3bc9
Update to build 4127 2022-02-11 11:01:46 +01:00
42f0040946
Version 2.18.0 2022-02-11 10:57:01 +01:00
Brad Erhart
eece5a8324
Updating gVisor to v20220208.0
Signed-off-by: Brad Erhart <>
2022-02-08 18:04:34 -08:00
4c91370cb1
Update to 0.10.1 2022-01-19 21:38:57 +01:00
558f58d6fa
Version 2.17.0 2022-01-19 21:38:19 +01:00
Brad Erhart
f8555d7c29
Updating gVisor to v20220103.0
Signed-off-by: Brad Erhart <>
2022-01-11 06:29:44 -08:00
Brad Erhart
cf68a0972a
Updating gVisor to v20211129.0
Signed-off-by: Brad Erhart <>
2022-01-05 02:50:37 -08:00
c942c5b8a8
Version 1.6.8 2021-12-24 11:48:20 +01:00
499edeb25f
Update to build 4126 2021-12-23 12:51:44 +01:00
60f92875ed
Update to build 4125 2021-12-17 12:07:02 +01:00
7b3aa4604c
Update to build 4124 2021-12-13 12:56:07 +01:00
bf2e2cd789
Trigger rebuild for Python 3.10 and fix PKGBUILD
Thanks to @yochananmarqos for suggesting PKGBUILD changes
2021-12-13 12:47:40 +01:00
graysky
e54aeb92a6 Update to 2021.2.0_109-1 2021-12-12 06:30:14 -05:00
Christian Pellegrin
c044ef5973 upgpkg: systemtap 4.6-1
upstream release
2021-11-21 21:14:49 +00:00
Brad Erhart
1942cf761f
Updating gVisor to v20211115.0
Signed-off-by: Brad Erhart <>
2021-11-19 00:12:46 -08:00
Brad Erhart
a0f85a97f6
Updating gVisor to v20211101.0
Signed-off-by: Brad Erhart <>
2021-11-06 19:54:00 -07:00
Jonathan Liu
2bd43ec631 Update to 0.0.26-1 2021-11-04 16:00:03 +11:00
6780330b88
Update to build 4122 2021-11-03 16:22:08 +01:00
Brad Erhart
a3ef3a7b7b
Updating gVisor to v20211019.0
Signed-off-by: Brad Erhart <>
2021-10-28 23:19:25 -07:00
d5c1c76f9a
Update to build 4121 2021-10-26 21:59:47 +02:00
43edaeb809
Update to build 4121 2021-10-26 21:59:41 +02:00
e345a9fc95
Update to build 4120 2021-10-25 13:06:55 +02:00
Brad Erhart
632e1c526e
Updating gVisor to v20211011.0
Signed-off-by: Brad Erhart <>
2021-10-20 04:05:38 -07:00
fc9cc86c96
Rename package since it is a vcs package 2021-10-17 10:22:42 +02:00
f1de0ad440
Fix compilation errors and remove glew envs 2021-10-17 09:51:42 +02:00
Brad Erhart
af69064d0f
Updating gVisor to v20211005.0
Signed-off-by: Brad Erhart <>
2021-10-16 21:30:06 -07:00
d294fbed7a
Update to build 4118 2021-10-15 08:53:12 +02:00
Νικόλαος Κυριάκος Φυτίλης
e787c7fc8b pkgver remove tabs 2021-10-03 14:46:21 +03:00
Eduardo Bart
7cb9aea1de Update to build 4116 2021-10-03 07:46:34 -03:00
95596b6f65
Update to build 4115 2021-09-27 16:08:04 +02:00
Νικόλαος Κυριάκος Φυτίλης
ba5449332d fix sbin exists in fs 2021-09-25 11:08:44 +03:00
Brad Erhart
04807a8e61 Updating gVisor to v20210906.0 2021-09-17 17:35:15 -07:00
Dušan Simić
4b9adbf921 Add all files 2021-09-16 17:08:31 +02:00
Brad Erhart
d657c4f716 Updating gVisor to v20210830.0 2021-09-09 03:55:15 -07:00
9d23dc8600
Update to 0.10.0 2021-09-05 23:05:21 +02:00
7f4864cbe2
Update to build 4114 2021-09-05 23:04:54 +02:00
Brad Erhart
945dcf80de Updating gVisor to v20210823.0 2021-09-02 02:00:56 -07:00
Brad Erhart
0047b038db Updating gVisor to v20210806.0 2021-08-19 13:00:09 -07:00
080c776289
Version 2.16.0 2021-07-31 17:58:02 +02:00
Brad Erhart
b6d3f99158 Updating gVisor to v20210726.0 2021-07-31 06:23:05 -07:00
Brad Erhart
18bed50f76 Updating gVisor to v20210720.0 2021-07-27 23:28:15 -07:00
Brad Erhart
65b30ad2cd Updating gVisor to v20210712.0 2021-07-22 08:16:54 -07:00
João M. Bezerra
43b10975f3 Removing "sublime" from "provides" 2021-07-18 21:47:46 -03:00
Jonathan Liu
b0c8352d54 Update to 0.0.25-1 2021-07-17 18:25:41 +10:00
0ec00ccdb6
Update to build 4113 2021-07-14 13:39:32 +02:00
694366e0eb
Update to build 4113 2021-07-14 13:39:29 +02:00
cf358db55b
Update to build 4112 2021-07-13 16:10:56 +02:00
a427cce1f4
Update to build 4111 2021-07-12 13:41:22 +02:00
083b83bf24
Update to build 4110 2021-07-06 18:54:00 +02:00
Christian Pellegrin
9108e8dc18 upgpkg: systemtap 4.5-1
upstream release
2021-07-06 08:15:18 +01:00
1c8c8625c4
Change back to base repo 2021-07-04 17:03:36 +02:00
Brad Erhart
b9f49bc3f0 Updating to gVisor v20210628.0 2021-06-30 10:04:05 -07:00
3ba730d142
Update to build 4109 2021-06-22 18:12:04 +02:00
Brad Erhart
99c95c4f62 Updating gVisor to v20210518.0 2021-05-27 23:56:44 -07:00
76e247104b
Update to build 4107 2021-05-21 13:43:42 +02:00
f27a985c01
Initial commit with build 4107 2021-05-21 13:43:08 +02:00
Brad Erhart
52d5178e6a Updating gVisor to v20210510.0 2021-05-20 17:28:19 -07:00
Brad Erhart
3b23a7e634 Updating gVisor to v20210503.0 2021-05-11 02:08:17 -07:00
Brad Erhart
e22456e6bc Updating gVisor to v20210419.0 2021-04-21 18:51:14 -07:00
f0a6f43985
Update to 0.9.0 2021-04-02 15:07:13 +02:00
9a19ab8611
Python 3 compatibility 2021-04-02 15:04:40 +02:00
Brad Erhart
bb90364db9 Updating gVisor to v20210322.0 2021-04-02 00:31:52 -07:00
Jonathan Liu
4718a1475f Update to 0.0.23-1 2021-03-14 16:56:31 +11:00
graysky
077715093e Update to 2021.1.1.001-1 2021-02-01 20:32:00 -05:00
1bc2f91069
Update checksum that I forgot about 2021-01-24 21:56:58 +01:00
dac049e54c
Fix accidentally broken service file 2021-01-24 21:51:38 +01:00
4b7cc065d2
Update systemd service and add EnvironmentFile 2021-01-24 20:55:39 +01:00
Jonathan Liu
13bfde97db Update to 0.0.22-1 2021-01-14 00:15:48 +11:00
64b4d90ef7
Version 2.15.0 2020-12-25 07:43:19 +01:00
Νικόλαος Κυριάκος Φυτίλης
a69158fd00 asdasdad 2020-12-21 14:40:55 +02:00
Νικόλαος Κυριάκος Φυτίλης
a0cbd68b11 oops 2020-12-21 14:35:42 +02:00
Νικόλαος Κυριάκος Φυτίλης
52456070b7 fix ignore 2020-12-21 14:27:39 +02:00
Νικόλαος Κυριάκος Φυτίλης
c729c1a8e1 init 2020-12-21 14:16:05 +02:00
Brad Erhart
3533637c73 Updating gVisor to v20201208.0 2020-12-20 18:43:43 -08:00
Brad Erhart
5f4458708d Updating gVisor to v20201130.0 2020-12-03 07:14:16 -08:00
022dcd5756
Trigger rebuild for Python 3.9 2020-12-02 07:16:45 +01:00
Brad Erhart
50a5c869b9 Updating gVisor to v20201030.0 2020-11-13 18:01:57 -08:00
Brad Erhart
2b9aeea869 Updating gVisor to v20201019.0 2020-10-25 11:01:57 -07:00
Brad Erhart
38f2fff504 Updating gVisor to v20200921.0 2020-09-29 00:02:40 -07:00
Brad Erhart
74a04841e0 Updating gVisor to v20200914.0 2020-09-21 18:15:40 -07:00
João M. Bezerra
490414b64a Renamed package to sublime-text-3 2020-09-13 10:49:21 -03:00
Brad Erhart
1a723fdbb4 Updating gVisor to 20200907.0 2020-09-13 01:42:55 -07:00
Brad Erhart
d2934f748f Updating gVisor to v20200818.0 2020-09-03 13:07:34 -07:00
graysky
f0d04f8c2b Update to 2020.2.001-1 2020-09-01 06:35:51 -04:00
Brad Erhart
4afcab3b19 Updating gVisor to v20200810.0 2020-08-12 17:30:37 -07:00
Jonathan Liu
5db94aac2a Update to 0.0.21-1 2020-07-13 18:48:34 +10:00
Jonathan Liu
ff361e9da5 Update to 0.0.20-1 2020-07-08 09:41:59 +10:00
3e87249e98 Version 2.14.0 2020-06-26 16:14:51 +02:00
e8f101c6f1 Initial commit 2020-06-06 03:10:14 +02:00
Brad Erhart
efe9257634 Updating gvisor to v20200522.0 2020-06-02 19:38:45 -07:00
Nils Czernia
46489b2f85 Updated to 0.8.0 2020-05-20 08:35:52 +02:00
Brad Erhart
35349502fc Fixing hash in gvisor update v20200323.0 2020-04-03 09:40:08 -07:00
Brad Erhart
89e7ca18b0 Updating gvisor to v20200323.0 2020-04-03 09:28:21 -07:00
haawda
19e4faf770 added cmake to makedepends 2020-04-02 10:33:19 +02:00
haawda
b95a4c8bf3 adopted and updated 2020-03-30 17:22:25 +02:00
Brad Erhart
f27c038233 Updating to gvisor v20200219.0 2020-02-25 08:06:34 -08:00
graysky
b7095acb9c Update to 2019.6.005-1 2020-02-22 07:09:27 -05:00
Brad Erhart
23c441f795 Updating gvisor to v20200211.0 2020-02-15 09:49:40 -08:00
Brad Erhart
00ce581d4f Adding gvisor v20200127.0 2020-02-02 11:46:58 -08:00
Manuel Hüsers
fe2518d626 New release
Cleaned up PKGBUILD
Changed upstream URL
Uploaded source directly to AUR due to lack of mirrors
2020-01-14 07:18:32 +01:00
Manuel Hüsers
259aaaf08b Version 2.13.0
Moved to Python 3 and added several dependencies
2020-01-14 07:17:57 +01:00
Manuel Hüsers
4d78a035ed Update to 12.065314e
Bump of pkgrel because package moved to Qt5
2020-01-14 07:12:19 +01:00
Jonathan Liu
58aad5fa21 Update to 0.0.19-1 2020-01-08 11:21:49 +11:00
annguyenfoss
6b093b9789 Added a valid PGP key 5D38116FA4D3A7CC77E378D37E83610126DCC2E8 2019-12-03 16:24:41 +07:00
annguyenfoss
235267cff6 released 4.2 2019-12-03 15:28:08 +07:00
João Marcos
65321dcaa8 Changed package description size 2019-11-13 12:13:38 -03:00
João Marcos
46c432f447 Fixing last commit 2019-11-13 11:46:31 -03:00
João Marcos
5afd86ac7f Updating version to 3211 and changing maintainer 2019-11-13 11:32:43 -03:00
annguyenfoss
98c14eecc2 Updated to 4.1. Updated GPG keys and SHA512SUM. 2019-10-28 20:09:31 +07:00
Sander Boom
15c5dd4114 Updated to build 3211 2019-10-01 11:31:04 +02:00
Jonathan Liu
90f981a615 Update to 0.0.18-1 2019-09-13 13:44:41 +10:00
Nils Czernia
a102a54122 Updated to version 0.5.0 2019-07-08 13:55:56 +02:00
William J. Bowman
4e6ad6914c
Updated to 0.8.2-2
Added git to make-depends
2019-06-29 21:18:02 -07:00
graysky
8c0be1461c Update to 2019.4.003-1 2019-06-15 19:08:10 -04:00
Sander Boom
e9bf6bcb59 Updated to build 3207 2019-04-10 22:04:39 +02:00
perqin
ccbdc5859e Update to 3.3207 2019-04-09 22:56:00 +08:00
Sander Boom
64c6d5f800 Changed dependency gtk2 -> gtk3. See: https://www.sublimetext.com/blog/articles/sublime-text-3-point-2 2019-03-23 21:34:22 +01:00
Sander Boom
bfb4afe051 Updated to build 3200 2019-03-17 22:57:26 +01:00
perqin
e1914b9809 Remove unnecessary imfix 2019-03-18 00:31:11 +08:00
perqin
ac6aae16c6 Update to 3.3200 (Fix .SRCINFO) 2019-03-17 12:09:15 +08:00
perqin
de7ff47d18 Update to 3.3200 2019-03-17 12:07:01 +08:00
Jonathan Liu
60f19ba8ca Update to 0.0.17-1 2019-03-04 21:48:41 +11:00
Nils Czernia
9b406897fd Update tp 0.4.7 2018-12-12 08:54:18 +01:00
Jonathan Liu
332931541d Initial import 2018-12-11 11:33:17 +11:00
Manuel Hüsers
00700a35b4 Version 1.6.7
Removed gui_common.h as changes have been merged upstream
Fixed PKGBUILD (Thanks goes to jose1711)
2018-12-09 22:04:08 +01:00
George Angelopoulos
dce23c79e4 add cpio dependency 2018-11-16 19:28:43 +01:00
graysky
8c9e5f95c2 Update to 2018.3.011-1 2018-11-10 06:12:42 -05:00
George Angelopoulos
59033bcbc4 version 4.0 2018-11-05 16:08:53 +01:00
perqin
653c964a39 Update to 3.3176 2018-10-16 00:36:44 +08:00
George Angelopoulos
576926108e update maintainer 2018-09-03 12:27:33 +02:00
George Angelopoulos
69c45dce7d version 3.3 2018-08-20 11:45:16 +02:00
William J. Bowman
a79be0ea10
Updated to 0.8.2-1 2018-06-30 00:29:21 -04:00
George Angelopoulos
422e628c9f Revert "update makedepends"
This reverts commit 487ece75eb.
2018-06-16 11:12:35 +02:00
George Angelopoulos
559c72395d Revert "update depends"
This reverts commit c3d5d8188c.
2018-06-16 10:52:25 +02:00
George Angelopoulos
c3d5d8188c update depends 2018-06-16 09:59:08 +02:00
George Angelopoulos
487ece75eb update makedepends 2018-06-16 09:46:51 +02:00
George Angelopoulos
8266ddd4f8 remove unused patches
These were not used in the PKGBUILD when I adopted the package.
I'm removing them.
2018-06-03 22:09:40 +02:00
George Angelopoulos
cbf19e9238 add gitignore 2018-06-03 22:06:23 +02:00
George Angelopoulos
0512430e39 backport timer fix for >=4.15 kernels 2018-06-03 19:06:43 +02:00
George Angelopoulos
a2db70026d backport gcc8 fix to 3.2 2018-06-03 16:35:39 +02:00
Sander Boom
f81aa8d9cb Updated to build 3176 2018-05-14 08:39:32 +02:00
Vincent Kobel
db68a80477 add git to makedepends 2018-05-12 09:44:15 +02:00
Vincent Kobel
448b6b00a7 updated base 2018-05-11 08:15:59 +02:00
Vincent Kobel
bd49a27c96 updated base 2018-05-09 08:51:15 +02:00
Vincent Kobel
32008b8ea9 updated base 2018-05-08 09:21:30 +02:00
Vincent Kobel
4d1429eac5 updated base 2018-05-08 09:17:36 +02:00
Sander Boom
d3ab685152 Updated to build 3170 2018-05-08 09:09:52 +02:00
Vincent Kobel
8165a076e4 auto pkgver 2018-05-05 11:32:57 +02:00
Vincent Kobel
712dc84b0a change base repo now that google fixed compile flags 2018-05-05 11:13:02 +02:00
Vincent Kobel
b8e7114be9 disable stack protection + update according to base repo 2018-05-04 09:39:17 +02:00
Vincent Kobel
daf5b73001 updated source 2018-05-03 17:07:25 +02:00
Vincent Kobel
3f42b71f8f init 2018-05-03 17:02:03 +02:00
graysky
3f12ba2976 Update to 2018.2.010-1 2018-04-21 20:51:17 -04:00
Christian Rebischke
dda4d2e898
new hashes 2018-02-28 14:13:07 +01:00
Christian Rebischke
fd091df491
added the correct patch 2018-02-27 18:28:45 +01:00
Christian Rebischke
c012fdf64e
removed the install hooks
See also: https://bugs.archlinux.org/task/56853
2018-02-24 20:28:27 +01:00
Christian Rebischke
68ebb46082
moved to AUR 2018-02-14 12:31:23 +01:00
Manuel Hüsers
d047ef5734 Version 1.6.6 2018-01-29 13:06:58 +01:00
graysky
64b48e63a9 Update to 2018.0.006-1 2017-12-14 15:36:47 -05:00
Manuel Hüsers
fd284a10b4 Added missing dependency
python2-linux-procfs was missing as a required dependency
Added descriptions for optional dependencies
Added desktop-file-utils as make dependency
2017-12-11 17:03:07 +01:00
Manuel Hüsers
e816bdd337 Version 2.9.0 2017-12-11 16:35:58 +01:00
Sander Boom
42d56cc9d0 Downgraded to build 3143, as 3153 can not be used without license. 2017-11-09 15:22:21 +01:00
Sander Boom
2b9eb8f099 Updated to build 3153 2017-11-08 11:55:36 +01:00
Nils Czernia
400a41d420 Inital commit 2017-10-18 12:34:20 +02:00
Manuel Hüsers
30c4b2fb4a Update to 10.84983b1
Bump of pkgrel not needed since produced package stays the same
2017-10-03 15:02:11 +02:00
Sander Boom
ca93021b62 Downgraded to build 3143, as 3144 can not be used without license. 2017-09-19 11:01:45 +02:00
Sander Boom
f69173360f Updated to build 3144 2017-09-18 16:24:39 +02:00
Manuel Hüsers
cf926b1b4d Key revoked on 2017-08-18, signature removed 2017-08-25 20:10:20 +02:00
Manuel Hüsers
9e35fd834b Version 1.6.5 2017-08-13 02:12:01 +02:00
graysky
41e8e1bf39 Update to 2017.3.018-1 2017-07-12 17:02:44 -04:00
graysky
6787df452d Update to 2017.3.017-1 2017-05-19 15:00:14 -04:00
Manuel Hüsers
8303fbfa84 v4: Removed option SysVStartPriority
Support for option SysVStartPriority= has been removed and it is ignored

According to https://lists.freedesktop.org/archives/systemd-devel/2014-November/025726.html this option never had any effect
2017-05-07 23:27:08 +02:00
Manuel Hüsers
527ec4c432 Version 2.8.0 2017-04-27 19:41:50 +02:00
Christian Rebischke
5a3ef0f5d1
changed PKGBUILD 2017-04-07 01:56:20 +02:00
Christian Rebischke
12037b90a4
moved from AUR to community 2017-03-27 21:15:49 +02:00
Manuel Hüsers
51eb3c5f34 New package source
Updated the source URL because of the fedorahosted.org retirement
2017-03-12 00:10:41 +01:00
Ivan Lyapunov
cf13ef22d0 swicth to upstream python handling 2017-03-05 12:28:44 +03:00
graysky
04287f6c8e Update to 2017.2.015-1 2017-03-04 08:19:00 -05:00
horsemanoffaith
ea7f5b3c5e add glewmx 2017-02-27 04:59:55 +00:00
Ivan Lyapunov
504a01b4e8 version 3.1 2017-02-18 15:51:28 +03:00
Iwan Timmer
cab411550f Update to version 2.7.1 2017-01-24 11:30:00 +01:00
Ivan Lyapunov
50d15a59a5 deps updated 2017-01-16 09:23:11 +03:00
graysky
f6f071f95e Update to 2017.1.013-2 2016-11-04 15:19:32 -04:00
graysky
6d85585582 Update to 2017.0.013-1 2016-11-03 15:23:04 -04:00
graysky
a384398abb Update to 2017.0.010-1 2016-10-25 07:30:19 -04:00
Sander Boom
50b84ec67f Updated to build 3126 2016-09-24 14:23:19 +02:00
Sander Boom
4da7240297 Updated to build 3124 2016-09-22 11:49:34 +02:00
Manuel Hüsers
d225018d70 New release
Changed versioning scheme
Added mirrors
2016-09-15 20:31:27 +02:00
Manuel Hüsers
04ff4a7d5f New release
Bumped release number because of new URL
2016-09-15 12:40:22 +02:00
Manuel Hüsers
05fee6e433 Small change in install file 2016-08-25 22:41:45 +02:00
Manuel Hüsers
32e9da8a00 Do not automatically enable the service 2016-08-25 22:34:59 +02:00
Manuel Hüsers
4195cd16cb Version bump
New versioning scheme that is more suitable for this package
2016-08-12 16:05:02 +02:00
Iwan Timmer
5a9b3b7e3b Add dbus-glib dependency 2016-07-13 21:39:18 +02:00
Manuel Hüsers
cf973255be Package clean-up 2016-06-22 19:41:42 +02:00
Sander Boom
a99e9668fe Updated to build 3114 2016-05-13 11:34:23 +02:00
Manuel Hüsers
9acaff7ead Fix build error and refactor PKGBUILD 2016-05-11 16:12:22 +02:00
graysky
51da0249ce Update to 11.3.3.011-1 2016-05-05 15:17:46 -04:00
graysky
2499db6385 Update to 2017.0.004-1 2016-05-01 11:28:10 -04:00
Ivan Lyapunov
4849189ad8 depends update 2016-04-02 12:47:47 +03:00
Ivan Lyapunov
61aa95a135 updated to 3.0 2016-03-30 19:04:53 +03:00
Sander Boom
88a073568f Updated to build 3103 2016-02-09 10:08:09 +01:00
graysky
e9eec24179 Update to 11.3.1.002-1 2016-02-07 08:23:53 -05:00
jose1711
09504bb5ad updated to 1.6.2 2016-02-07 00:13:33 +01:00
Manuel
ebe4e19613 New release
Refactored PKGBUILD
Changed versioning scheme
2016-02-06 20:10:08 +01:00
Manuel Hüsers
2b862057bf Fix makepkg error
Update fixes url being set as an array
2016-02-06 17:00:15 +01:00
Manuel Hüsers
0d6b273790 Add jobs option to make
Added '-j1' option since several users reported build errors with parallel make jobs
2016-02-01 00:53:08 +01:00
Manuel Hüsers
93e68b8b58 Small aesthetical changes 2016-02-01 00:30:26 +01:00
Manuel
98c50b0bb4 New release
Refactored PKGBUILD
Added .install file
Added doc support
Removed static libraries
2016-02-01 00:20:26 +01:00
Iwan Timmer
eef28bd77e Update to version 2.6.0 2016-01-26 13:06:42 +01:00
jose1711
b6c950d0ad adopted from aur3 2016-01-01 22:21:59 +01:00
Ivan Lyapunov
a655ab75d2 fix srcinfo 2015-10-24 12:28:45 +03:00
Ivan Lyapunov
d7a259767b fix srcinfo 2015-10-24 12:28:00 +03:00
Ivan Lyapunov
1130736383 2.9 2015-10-10 11:09:18 +03:00
Ivan Lyapunov
b20665c2a9 2.9 2015-10-10 11:05:12 +03:00
Sander Boom
eb1906dad6 Added StartupWMClass=subl3 to .desktop file; changed to sha256sum 2015-09-25 17:49:24 +02:00
Manuel Hüsers
553f2a2081 New release
Fixed minor issue when removing package
2015-09-21 15:15:48 +02:00
Manuel Hüsers
82c4480c47 Version 1.1 2015-09-21 15:00:04 +02:00
graysky
4bd7ba2021 Update to 11.3.0.006-1 2015-09-19 08:03:01 -04:00
Ivan Lyapunov
7401ef4d0e systemtap v2.8 p2 2015-08-13 14:19:51 +03:00
Ivan Lyapunov
590933edee systemtap v2.8 2015-08-13 14:19:07 +03:00
megadrivers
ecf3a885a8 Initial import 2015-08-08 20:08:31 +02:00
Alad Wenter
b3d6b7d72c Upd 2015-08-07 15:42:44 +02:00
Manuel
78b9daa6d6 Initial import 2015-07-25 02:45:56 +02:00
Alad Wenter
b41e09121f upd 2015-07-25 01:07:05 +02:00
Timothée Ravier
aaee2927cd 2.5.0.r6.ge32bd6b-1 update 2015-07-18 17:59:50 +02:00
Sebastian Krzyszkowiak
afe00038be Initial import 2015-07-13 00:08:58 +02:00
Sander Boom
94a18ee81b Upped pkgrel according to AUR3 pkgrel 2015-07-07 23:14:02 +02:00
Sander Boom
e2776838bf Initial import 2015-07-07 23:11:19 +02:00
Alad Wenter
98f286ee78 init 2015-06-16 12:29:46 +02:00
XavierCLL
d4fd25eff3 Initial import 2015-06-13 00:28:47 -05:00
Ivan Lyapunov
b35ca95fd4 Initial import 2015-06-10 12:05:28 +03:00
Timothée Ravier
bfc0ec69ac Imported and fixed from the AURv3 2015-06-09 12:18:12 +02:00
graysky
3ab1c96ccc Initial import 2015-06-08 18:00:40 -04:00
109 changed files with 6818 additions and 0 deletions

8
.editorconfig Normal file
View file

@ -0,0 +1,8 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = tab
tab_width = 4

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
* text=auto eol=lf
*.install linguist-language=Shell

25
.gitignore vendored Normal file
View file

@ -0,0 +1,25 @@
# package src/pkg archives, downloaded sources
*.tar*
*.tgz
*.zip
# signed sources
*.asc
*.sig
# log files from makepkg --log (or extra-x86_64-build)
*.log
# subfolders, e.g. source or built package trees, vcs
*/**/
# backup files
*~
*.bak
# mkpkg status files, from soyuz.archlinux.org
.mkpkg_check
# staged packages and build chroot
/staged
/chroot

5
README.md Normal file
View file

@ -0,0 +1,5 @@
# Arch Linux packages
These are PKGBUILDs for packages I maintain, used to maintain or do plan on uploading or just keep here for preservation.
I may also use these for an automated build system soon™ that pushes these packages automatically to a pacman repo I maintain.

24
UNLICENSE Normal file
View file

@ -0,0 +1,24 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <http://unlicense.org/>

29
amdvlk-2023q3.3/.SRCINFO Normal file
View file

@ -0,0 +1,29 @@
pkgbase = amdvlk-2023q3.3
pkgdesc = AMD's standalone Vulkan driver for Pre-GFX10 GPUs (Vega, Polaris)
pkgver = 2023.Q3.3
pkgrel = 2
url = https://github.com/GPUOpen-Drivers
arch = x86_64
license = MIT
makedepends = perl-xml-xpath
makedepends = python
makedepends = wayland
makedepends = libxrandr
makedepends = xorg-server-devel
makedepends = directx-shader-compiler
makedepends = glslang
makedepends = cmake
makedepends = ninja
makedepends = git
provides = amdvlk
provides = vulkan-driver
conflicts = amdvlk
options = !lto
source = https://github.com/GPUOpen-Drivers/AMDVLK/archive/v-2023.Q3.3.tar.gz
sha512sums = 19e799030daee33d516f1276e08cd598a8ea7f8341b3955bda31b8576459486dbd3401d33670bfabb1872341025716e9610a8e9c4072a07a206eac90bd0f6ace
pkgname = amdvlk-2023q3.3
depends = glibc
depends = gcc-libs
depends = zlib
depends = zstd

64
amdvlk-2023q3.3/PKGBUILD Normal file
View file

@ -0,0 +1,64 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Laurent Carlier <lordheavym@gmail.com>
# Contributor: lod <aur@cyber-anlage.de>
pkgname=amdvlk-2023q3.3
_pkgname=amdvlk
pkgver=2023.Q3.3
pkgrel=2
pkgdesc="AMD's standalone Vulkan driver for Pre-GFX10 GPUs (Vega, Polaris)"
arch=('x86_64')
url="https://github.com/GPUOpen-Drivers"
license=('MIT')
provides=("${_pkgname}" 'vulkan-driver')
conflicts=("${_pkgname}")
makedepends=('perl-xml-xpath' 'python' 'wayland' 'libxrandr' 'xorg-server-devel' 'directx-shader-compiler' 'glslang' 'cmake' 'ninja' 'git')
options=('!lto')
source=("https://github.com/GPUOpen-Drivers/AMDVLK/archive/v-${pkgver}.tar.gz")
sha512sums=('19e799030daee33d516f1276e08cd598a8ea7f8341b3955bda31b8576459486dbd3401d33670bfabb1872341025716e9610a8e9c4072a07a206eac90bd0f6ace')
prepare() {
local nrepos path name revision
nrepos=$(xpath -q -e //project AMDVLK-v-${pkgver}/default.xml | wc -l)
while (($nrepos>0))
do
path=$(xpath -q -e //project[$nrepos]/@path AMDVLK-v-${pkgver}/default.xml | sed 's/ path="drivers\/\(.*\)"/\1/g')
name=$(xpath -q -e //project[$nrepos]/@name AMDVLK-v-${pkgver}/default.xml | sed 's/ name="\(.*\)"/\1/g')
revision=$(xpath -q -e //project[$nrepos]/@revision AMDVLK-v-${pkgver}/default.xml | sed 's/ revision="\(.*\)"/\1/g')
git clone --recurse-submodules https://github.com/GPUOpen-Drivers/$name $path
pushd $path
git checkout $revision
git submodule update
popd
(( nrepos-- ))
done
}
build() {
cd ${srcdir}/xgl
cmake -H. -Bbuilds/Release64 \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_WAYLAND_SUPPORT=On \
-G Ninja
ninja -C builds/Release64
}
package() {
depends=('glibc' 'gcc-libs' 'zlib' 'zstd')
install -m755 -d "${pkgdir}"/usr/lib
install -m755 -d "${pkgdir}"/usr/share/vulkan/icd.d
install -m755 -d "${pkgdir}"/usr/share/vulkan/implicit_layer.d
install -m755 -d "${pkgdir}"/usr/share/licenses/${_pkgname}
install xgl/builds/Release64/icd/amdvlk64.so "${pkgdir}"/usr/lib/
install xgl/builds/Release64/icd/amd_icd64.json "${pkgdir}"/usr/share/vulkan/icd.d/
install xgl/builds/Release64/icd/amd_icd64.json "${pkgdir}"/usr/share/vulkan/implicit_layer.d/
install AMDVLK-v-${pkgver}/LICENSE.txt "${pkgdir}"/usr/share/licenses/${_pkgname}/
sed -i "s#/lib64#/lib#g" "${pkgdir}"/usr/share/vulkan/icd.d/amd_icd64.json
sed -i "s#/lib64#/lib#g" "${pkgdir}"/usr/share/vulkan/implicit_layer.d/amd_icd64.json
}

19
bino/.SRCINFO Normal file
View file

@ -0,0 +1,19 @@
pkgbase = bino
pkgdesc = A video player with focus on 3D and Virtual Reality
pkgver = 2.2
pkgrel = 1
url = https://bino3d.org/
arch = x86_64
license = GPL-3.0-or-later
makedepends = cmake
makedepends = qt6-tools
depends = qt6-multimedia
depends = qt6-svg
depends = qvr
source = https://bino3d.org/releases/bino-2.2.tar.gz
source = https://bino3d.org/releases/bino-2.2.tar.gz.sig
validpgpkeys = 2F61B4828BBA779AECB3F32703A2A4AB1E32FD34
sha512sums = 73e6207db4a71673f88ebbd8999054acfc8f70a069fc74089976786082373d0eb7ae675786b1d3cf8907987267d9b1b50ddb05366b8b70f880c6898da765cd7b
sha512sums = SKIP
pkgname = bino

31
bino/PKGBUILD Normal file
View file

@ -0,0 +1,31 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: gruenfron <https://aur.archlinux.org/account/gruenfron>
# Contributor: Jose Riha <jose1711 gmail com>
# Contributor: archtux <antonio dot arias99999 at gmail dot com>
pkgname=bino
pkgver=2.2
pkgrel=1
pkgdesc='A video player with focus on 3D and Virtual Reality'
arch=('x86_64')
url='https://bino3d.org/'
license=('GPL-3.0-or-later')
depends=('qt6-multimedia' 'qt6-svg' 'qvr')
makedepends=('cmake' 'qt6-tools')
source=(https://bino3d.org/releases/$pkgname-$pkgver.tar.gz{,.sig})
sha512sums=('73e6207db4a71673f88ebbd8999054acfc8f70a069fc74089976786082373d0eb7ae675786b1d3cf8907987267d9b1b50ddb05366b8b70f880c6898da765cd7b'
'SKIP')
validpgpkeys=('2F61B4828BBA779AECB3F32703A2A4AB1E32FD34')
build() {
cmake -B build -S "$pkgname-$pkgver" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
}

25
cage-vi/.SRCINFO Normal file
View file

@ -0,0 +1,25 @@
pkgbase = cage-vi
pkgdesc = A Wayland kiosk, with virtual input patch applied
pkgver = 0.1.4+54+gbd5b20e
pkgrel = 1
url = https://www.hjdskes.nl/projects/cage/
arch = x86_64
license = MIT
makedepends = meson
makedepends = pixman
makedepends = scdoc
makedepends = wayland-protocols
makedepends = xorg-xwayland
depends = glibc
depends = wayland
depends = wlroots
optdepends = polkit: System privilege control. Required if not using seatd service
optdepends = xorg-xwayland: X11 support
provides = cage
conflicts = cage
source = https://github.com/Hjdskes/cage/releases/download/v0.1.4/cage-0.1.4.tar.gz
source = bd5b20e.patch
sha512sums = 55773fac44bf9e98086e53cbc20d17e3aad7046bedfe638ef8f896543388481be3989fede6f950d4f8cb0583f701cbf79617dfa011c7777a7c8b22c9bcddd64f
sha512sums = e30d9596bf12a793e744a170dc859224f62d807bfc1f980ad26044ffe6170bedd1a1e8a9e9321b3bffb93aa3d42a152e67f60dd6735c6e13a4a2b987131a3394
pkgname = cage-vi

45
cage-vi/PKGBUILD Normal file
View file

@ -0,0 +1,45 @@
pkgname=cage-vi
_pkgname=${pkgname%%-*}
pkgver=0.1.4+54+gbd5b20e
_pkgver=${pkgver%%+*}
pkgrel=1
pkgdesc='A Wayland kiosk, with virtual input patch applied'
arch=('x86_64')
url="https://www.hjdskes.nl/projects/${_pkgname}/"
license=('MIT')
depends=('glibc' 'wayland' 'wlroots')
makedepends=('meson' 'pixman' 'scdoc' 'wayland-protocols' 'xorg-xwayland')
optdepends=(
'polkit: System privilege control. Required if not using seatd service'
'xorg-xwayland: X11 support'
)
provides=("${_pkgname}")
conflicts=("${_pkgname}")
source=(
"https://github.com/Hjdskes/${_pkgname}/releases/download/v${_pkgver}/${_pkgname}-${_pkgver}.tar.gz"
'bd5b20e.patch'
)
sha512sums=('55773fac44bf9e98086e53cbc20d17e3aad7046bedfe638ef8f896543388481be3989fede6f950d4f8cb0583f701cbf79617dfa011c7777a7c8b22c9bcddd64f'
'e30d9596bf12a793e744a170dc859224f62d807bfc1f980ad26044ffe6170bedd1a1e8a9e9321b3bffb93aa3d42a152e67f60dd6735c6e13a4a2b987131a3394')
#pkgver() {
# cd "${srcdir}/${_pkgname}-${_pkgver}"
# git describe --long --tags | sed 's/^v//;s/-/+/g'
#}
prepare() {
cd "${srcdir}/${_pkgname}-${_pkgver}"
patch -Np1 -i '../bd5b20e.patch'
meson --buildtype=release -Dxwayland=true --prefix /usr "$srcdir/build"
}
build() {
cd "${srcdir}/${_pkgname}-${_pkgver}"
ninja -C "$srcdir/build"
}
package() {
cd "${srcdir}/${_pkgname}-${_pkgver}"
DESTDIR="$pkgdir/" ninja -C "$srcdir/build" install
}

2914
cage-vi/bd5b20e.patch Normal file
View file

@ -0,0 +1,2914 @@
diff --git a/.builds/alpine.yml b/.builds/alpine.yml
deleted file mode 100644
index ef32a95..0000000
--- a/.builds/alpine.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-image: alpine/edge
-packages:
- - eudev-dev
- - mesa-dev
- - meson
- - libinput-dev
- - libxkbcommon-dev
- - pixman-dev
- - scdoc
- - wayland-dev
- - wayland-protocols
- - xcb-util-wm-dev
- - xwayland
-sources:
- - https://github.com/swaywm/wlroots
- - https://github.com/Hjdskes/cage
-tasks:
- # Install wlroots, which is required by Cage. Note that we compile a tagged
- # version, instead of master, to avoid any breaking changes in wlroots.
- - wlroots: |
- cd wlroots
- git checkout 0.14.0
- meson --prefix=/usr build -Dexamples=false
- ninja -C build
- sudo ninja -C build install
- - build: |
- cd cage
- meson build --werror -Dxwayland=true
- ninja -C build
- rm -rf build
- - build-no-xwayland: |
- cd cage
- meson build --werror -Dxwayland=false
- ninja -C build
- rm -rf build
diff --git a/.builds/archlinux.yml b/.builds/archlinux.yml
deleted file mode 100644
index 99cdd24..0000000
--- a/.builds/archlinux.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-image: archlinux
-packages:
- - clang
- - meson
- - libinput
- - libxkbcommon
- - mesa
- - scdoc
- - wayland
- - wayland-protocols
- - xcb-util-wm
- - xorg-xwayland
-sources:
- - https://github.com/swaywm/wlroots
- - https://github.com/Hjdskes/cage
-tasks:
- # Install wlroots, which is required by Cage. Note that we compile a tagged
- # version, instead of master, to avoid any breaking changes in wlroots.
- - wlroots: |
- cd wlroots
- git checkout 0.14.0
- meson --prefix=/usr build -Dexamples=false
- ninja -C build
- sudo ninja -C build install
- - build: |
- cd cage
- meson build --werror -Dxwayland=true
- ninja -C build
- rm -rf build
- - build-no-xwayland: |
- cd cage
- meson build --werror -Dxwayland=false
- ninja -C build
- rm -rf build
- - scan-build: |
- cd cage
- CC=clang meson build --werror -Dxwayland=true
- CC=clang ninja -C build scan-build
- rm -rf build
- - clang-format: |
- cd cage
- meson build --werror -Dxwayland=true
- ninja -C build clang-format
- rm -rf build
- git diff --exit-code
diff --git a/.builds/freebsd.yml b/.builds/freebsd.yml
deleted file mode 100644
index 92a2119..0000000
--- a/.builds/freebsd.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-image: freebsd/latest
-packages:
- - devel/evdev-proto
- - devel/meson
- - devel/libepoll-shim
- - devel/pkgconf
- - graphics/mesa-libs
- - graphics/wayland
- - graphics/wayland-protocols
- - textproc/scdoc
- - x11/libinput
- - x11/libxkbcommon
- - x11/pixman
- - x11/xcb-util-wm
- - x11-servers/xwayland
-sources:
- - https://github.com/swaywm/wlroots
- - https://github.com/Hjdskes/cage
-tasks:
- # Install wlroots, which is required by Cage. Note that we compile a tagged
- # version, instead of master, to avoid any breaking changes in wlroots.
- - wlroots: |
- cd wlroots
- git checkout 0.14.0
- meson --prefix=/usr/local build -Dexamples=false
- ninja -C build
- sudo ninja -C build install
- - build: |
- cd cage
- PKG_CONFIG_PATH=/usr/local/lib/pkgconfig meson build --werror -Dxwayland=true
- PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ninja -C build
- rm -rf build
- - build-no-xwayland: |
- cd cage
- PKG_CONFIG_PATH=/usr/local/lib/pkgconfig meson build --werror -Dxwayland=false
- PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ninja -C build
- rm -rf build
diff --git a/.clang-format-ignore b/.clang-format-ignore
new file mode 100644
index 0000000..60dd059
--- /dev/null
+++ b/.clang-format-ignore
@@ -0,0 +1 @@
+subprojects/**/*
\ No newline at end of file
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 0000000..a98291a
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,76 @@
+name: Continuous integration build
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ compile:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ CC: [ gcc, clang ]
+ OS: [ "alpine:edge", "archlinux:base-devel" ]
+ xwayland: [ true, false ]
+ container: ${{ matrix.OS }}
+ env:
+ CC: ${{ matrix.CC }}
+ steps:
+ - name: Checkout Cage
+ uses: actions/checkout@v2
+
+ - name: Install dependencies (Alpine)
+ if: "matrix.OS == 'alpine:edge'"
+ run: apk add build-base xcb-util-wm-dev libseat-dev clang git eudev-dev mesa-dev libdrm-dev libinput-dev libxkbcommon-dev pixman-dev wayland-dev meson wayland-protocols xwayland scdoc-doc hwdata
+
+ - name: Install dependencies (Arch)
+ if: "matrix.OS == 'archlinux:base-devel'"
+ run: |
+ pacman-key --init
+ pacman -Syu --noconfirm xcb-util-wm seatd git clang meson libinput libdrm mesa libxkbcommon wayland wayland-protocols xorg-server-xwayland scdoc
+
+ - name: Fetch wlroots as a subproject
+ run: git clone https://gitlab.freedesktop.org/wlroots/wlroots.git subprojects/wlroots -b 0.16.0
+
+ # TODO: use --fatal-meson-warnings when on wlroots 0.15.0
+ - name: Compile Cage (XWayland=${{ matrix.xwayland }})
+ run: |
+ meson build-${{ matrix.CC }}-${{matrix.xwayland }} -Dxwayland=${{ matrix.xwayland }}
+ ninja -C build-${{ matrix.CC }}-${{matrix.xwayland }}
+
+ format:
+ runs-on: ubuntu-latest
+ container: "archlinux:base-devel"
+ steps:
+ - name: Checkout Cage
+ uses: actions/checkout@v2
+ - name: Install dependencies
+ run: |
+ pacman-key --init
+ pacman -Syu --noconfirm xcb-util-wm seatd git clang meson libinput libdrm mesa libxkbcommon wayland wayland-protocols xorg-server-xwayland scdoc hwdata
+ - name: Fetch wlroots as a subproject
+ run: git clone https://gitlab.freedesktop.org/wlroots/wlroots.git subprojects/wlroots -b 0.16.0
+ - name: Check for formatting changes
+ run: |
+ meson build-clang-format -Dxwayland=true
+ ninja -C build-clang-format clang-format-check
+
+ scan-build:
+ runs-on: ubuntu-latest
+ container: "archlinux:base-devel"
+ env:
+ CC: clang
+ steps:
+ - name: Checkout Cage
+ uses: actions/checkout@v2
+ - name: Install dependencies
+ run: |
+ pacman-key --init
+ pacman -Syu --noconfirm xcb-util-wm seatd git clang meson libinput libdrm mesa libxkbcommon wayland wayland-protocols xorg-server-xwayland scdoc hwdata
+ - name: Fetch wlroots as a subproject
+ run: git clone https://gitlab.freedesktop.org/wlroots/wlroots.git subprojects/wlroots -b 0.16.0
+ - name: Run scan-build
+ run: |
+ meson build-scan-build -Dxwayland=true
+ ninja -C build-scan-build scan-build
diff --git a/README.md b/README.md
index e1b6f56..752387e 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Cage: a Wayland kiosk [![builds.sr.ht status](https://builds.sr.ht/~hjdskes.svg)](https://builds.sr.ht/~hjdskes?)
+# Cage: a Wayland kiosk
<img src="https://www.hjdskes.nl/img/projects/cage/cage.svg" alt="Cage's logo" width="150px" align="right">
diff --git a/cage.c b/cage.c
index 5392535..c5eda4d 100644
--- a/cage.c
+++ b/cage.c
@@ -19,6 +19,7 @@
#include <unistd.h>
#include <wayland-server-core.h>
#include <wlr/backend.h>
+#include <wlr/render/allocator.h>
#include <wlr/render/wlr_renderer.h>
#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_data_device.h>
@@ -27,8 +28,15 @@
#include <wlr/types/wlr_idle.h>
#include <wlr/types/wlr_idle_inhibit_v1.h>
#include <wlr/types/wlr_output_layout.h>
+#include <wlr/types/wlr_presentation_time.h>
+#include <wlr/types/wlr_scene.h>
#include <wlr/types/wlr_screencopy_v1.h>
#include <wlr/types/wlr_server_decoration.h>
+#include <wlr/types/wlr_single_pixel_buffer_v1.h>
+#include <wlr/types/wlr_subcompositor.h>
+#include <wlr/types/wlr_viewporter.h>
+#include <wlr/types/wlr_virtual_keyboard_v1.h>
+#include <wlr/types/wlr_virtual_pointer_v1.h>
#if CAGE_HAS_XWAYLAND
#include <wlr/types/wlr_xcursor_manager.h>
#endif
@@ -145,7 +153,12 @@ cleanup_primary_client(pid_t pid)
static bool
drop_permissions(void)
{
+ if (getuid() == 0 || getgid() == 0) {
+ wlr_log(WLR_INFO, "Running as root user, this is dangerous");
+ return true;
+ }
if (getuid() != geteuid() || getgid() != getegid()) {
+ wlr_log(WLR_INFO, "setuid/setgid bit detected, dropping permissions");
// Set the gid and uid in the correct order.
if (setgid(getgid()) != 0 || setuid(getuid()) != 0) {
wlr_log(WLR_ERROR, "Unable to drop root, refusing to start");
@@ -185,9 +198,6 @@ usage(FILE *file, const char *cage)
"Usage: %s [OPTIONS] [--] APPLICATION\n"
"\n"
" -d\t Don't draw client side decorations, when possible\n"
-#ifdef DEBUG
- " -D\t Turn on damage tracking debugging\n"
-#endif
" -h\t Display this help message\n"
" -m extend Extend the display across all connected outputs (default)\n"
" -m last Use only the last connected output\n"
@@ -203,20 +213,11 @@ static bool
parse_args(struct cg_server *server, int argc, char *argv[])
{
int c;
-#ifdef DEBUG
- while ((c = getopt(argc, argv, "dDhm:rsv")) != -1) {
-#else
while ((c = getopt(argc, argv, "dhm:rsv")) != -1) {
-#endif
switch (c) {
case 'd':
server->xdg_decoration = true;
break;
-#ifdef DEBUG
- case 'D':
- server->debug_damage_tracking = true;
- break;
-#endif
case 'h':
usage(stdout, argv[0]);
return false;
@@ -261,15 +262,20 @@ main(int argc, char *argv[])
struct wl_event_source *sigint_source = NULL;
struct wl_event_source *sigterm_source = NULL;
struct wl_event_source *sigchld_source = NULL;
- struct wlr_renderer *renderer = NULL;
struct wlr_compositor *compositor = NULL;
+ struct wlr_subcompositor *subcompositor = NULL;
struct wlr_data_device_manager *data_device_manager = NULL;
struct wlr_server_decoration_manager *server_decoration_manager = NULL;
struct wlr_xdg_decoration_manager_v1 *xdg_decoration_manager = NULL;
struct wlr_export_dmabuf_manager_v1 *export_dmabuf_manager = NULL;
struct wlr_screencopy_manager_v1 *screencopy_manager = NULL;
+ struct wlr_single_pixel_buffer_manager_v1 *single_pixel_buffer = NULL;
struct wlr_xdg_output_manager_v1 *output_manager = NULL;
struct wlr_gamma_control_manager_v1 *gamma_control_manager = NULL;
+ struct wlr_virtual_keyboard_manager_v1 *virtual_keyboard = NULL;
+ struct wlr_virtual_pointer_manager_v1 *virtual_pointer = NULL;
+ struct wlr_viewporter *viewporter = NULL;
+ struct wlr_presentation *presentation = NULL;
struct wlr_xdg_shell *xdg_shell = NULL;
#if CAGE_HAS_XWAYLAND
struct wlr_xwayland *xwayland = NULL;
@@ -316,8 +322,21 @@ main(int argc, char *argv[])
goto end;
}
- renderer = wlr_backend_get_renderer(server.backend);
- wlr_renderer_init_wl_display(renderer, server.wl_display);
+ server.renderer = wlr_renderer_autocreate(server.backend);
+ if (!server.renderer) {
+ wlr_log(WLR_ERROR, "Unable to create the wlroots renderer");
+ ret = 1;
+ goto end;
+ }
+
+ server.allocator = wlr_allocator_autocreate(server.backend, server.renderer);
+ if (!server.allocator) {
+ wlr_log(WLR_ERROR, "Unable to create the wlroots allocator");
+ ret = 1;
+ goto end;
+ }
+
+ wlr_renderer_init_wl_display(server.renderer, server.wl_display);
wl_list_init(&server.views);
wl_list_init(&server.outputs);
@@ -329,13 +348,29 @@ main(int argc, char *argv[])
goto end;
}
- compositor = wlr_compositor_create(server.wl_display, renderer);
+ server.scene = wlr_scene_create();
+ if (!server.scene) {
+ wlr_log(WLR_ERROR, "Unable to create scene");
+ ret = 1;
+ goto end;
+ }
+
+ wlr_scene_attach_output_layout(server.scene, server.output_layout);
+
+ compositor = wlr_compositor_create(server.wl_display, server.renderer);
if (!compositor) {
wlr_log(WLR_ERROR, "Unable to create the wlroots compositor");
ret = 1;
goto end;
}
+ subcompositor = wlr_subcompositor_create(server.wl_display);
+ if (!subcompositor) {
+ wlr_log(WLR_ERROR, "Unable to create the wlroots subcompositor");
+ ret = 1;
+ goto end;
+ }
+
data_device_manager = wlr_data_device_manager_create(server.wl_display);
if (!data_device_manager) {
wlr_log(WLR_ERROR, "Unable to create the data device manager");
@@ -373,7 +408,7 @@ main(int argc, char *argv[])
wl_signal_add(&server.idle_inhibit_v1->events.new_inhibitor, &server.new_idle_inhibitor_v1);
wl_list_init(&server.inhibitors);
- xdg_shell = wlr_xdg_shell_create(server.wl_display);
+ xdg_shell = wlr_xdg_shell_create(server.wl_display, 4);
if (!xdg_shell) {
wlr_log(WLR_ERROR, "Unable to create the XDG shell interface");
ret = 1;
@@ -401,6 +436,21 @@ main(int argc, char *argv[])
server_decoration_manager, server.xdg_decoration ? WLR_SERVER_DECORATION_MANAGER_MODE_SERVER
: WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT);
+ viewporter = wlr_viewporter_create(server.wl_display);
+ if (!viewporter) {
+ wlr_log(WLR_ERROR, "Unable to create the viewporter interface");
+ ret = 1;
+ goto end;
+ }
+
+ presentation = wlr_presentation_create(server.wl_display, server.backend);
+ if (!presentation) {
+ wlr_log(WLR_ERROR, "Unable to create the presentation interface");
+ ret = 1;
+ goto end;
+ }
+ wlr_scene_set_presentation(server.scene, presentation);
+
export_dmabuf_manager = wlr_export_dmabuf_manager_v1_create(server.wl_display);
if (!export_dmabuf_manager) {
wlr_log(WLR_ERROR, "Unable to create the export DMABUF manager");
@@ -415,6 +465,13 @@ main(int argc, char *argv[])
goto end;
}
+ single_pixel_buffer = wlr_single_pixel_buffer_manager_v1_create(server.wl_display);
+ if (!single_pixel_buffer) {
+ wlr_log(WLR_ERROR, "Unable to create the single pixel buffer manager");
+ ret = 1;
+ goto end;
+ }
+
output_manager = wlr_xdg_output_manager_v1_create(server.wl_display, server.output_layout);
if (!output_manager) {
wlr_log(WLR_ERROR, "Unable to create the output manager");
@@ -429,6 +486,22 @@ main(int argc, char *argv[])
goto end;
}
+ virtual_keyboard = wlr_virtual_keyboard_manager_v1_create(server.wl_display);
+ if (!virtual_keyboard) {
+ wlr_log(WLR_ERROR, "Unable to create the virtual keyboard manager");
+ ret = 1;
+ goto end;
+ }
+ wl_signal_add(&virtual_keyboard->events.new_virtual_keyboard, &server.new_virtual_keyboard);
+
+ virtual_pointer = wlr_virtual_pointer_manager_v1_create(server.wl_display);
+ if (!virtual_pointer) {
+ wlr_log(WLR_ERROR, "Unable to create the virtual pointer manager");
+ ret = 1;
+ goto end;
+ }
+ wl_signal_add(&virtual_pointer->events.new_virtual_pointer, &server.new_virtual_pointer);
+
#if CAGE_HAS_XWAYLAND
xwayland = wlr_xwayland_create(server.wl_display, compositor, true);
if (!xwayland) {
@@ -492,8 +565,9 @@ main(int argc, char *argv[])
}
/* Place the cursor in the center of the output layout. */
- struct wlr_box *layout_box = wlr_output_layout_get_box(server.output_layout, NULL);
- wlr_cursor_warp(server.seat->cursor, NULL, layout_box->width / 2, layout_box->height / 2);
+ struct wlr_box layout_box;
+ wlr_output_layout_get_box(server.output_layout, NULL, &layout_box);
+ wlr_cursor_warp(server.seat->cursor, NULL, layout_box.width / 2, layout_box.height / 2);
wl_display_run(server.wl_display);
diff --git a/meson.build b/meson.build
index 3a84794..fbd7e16 100644
--- a/meson.build
+++ b/meson.build
@@ -1,16 +1,17 @@
project('cage', 'c',
version: '0.1.4',
license: 'MIT',
+ meson_version: '>=0.58.1',
default_options: [
'c_std=c11',
- 'warning_level=3',
+ 'warning_level=2',
+ 'werror=true',
],
)
add_project_arguments(
[
'-DWLR_USE_UNSTABLE',
- '-Wall',
'-Wundef',
'-Wno-unused-parameter',
],
@@ -34,14 +35,13 @@ if is_freebsd
)
endif
-wlroots = dependency('wlroots', version: '>= 0.14.0')
+wlroots = dependency('wlroots', version: '>= 0.16.0', fallback: ['wlroots', 'wlroots'])
wayland_protos = dependency('wayland-protocols', version: '>=1.14')
wayland_server = dependency('wayland-server')
-pixman = dependency('pixman-1')
xkbcommon = dependency('xkbcommon')
math = cc.find_library('m')
-wl_protocol_dir = wayland_protos.get_pkgconfig_variable('pkgdatadir')
+wl_protocol_dir = wayland_protos.get_variable('pkgdatadir')
wayland_scanner = find_program('wayland-scanner')
wayland_scanner_server = generator(
wayland_scanner,
@@ -65,12 +65,11 @@ server_protos = declare_dependency(
)
if get_option('xwayland')
- wlroots_has_xwayland = cc.get_define('WLR_HAS_XWAYLAND', prefix: '#include <wlr/config.h>', dependencies: wlroots) == '1'
+ wlroots_has_xwayland = wlroots.get_variable(pkgconfig: 'have_xwayland', internal: 'have_xwayland') == 'true'
if not wlroots_has_xwayland
error('Cannot build Cage with XWayland support: wlroots has been built without it')
- else
- have_xwayland = true
endif
+ have_xwayland = true
else
have_xwayland = false
endif
@@ -78,8 +77,8 @@ endif
version = '@0@'.format(meson.project_version())
git = find_program('git', native: true, required: false)
if git.found()
- git_commit = run_command([git, 'rev-parse', '--short', 'HEAD'])
- git_branch = run_command([git, 'rev-parse', '--abbrev-ref', 'HEAD'])
+ git_commit = run_command([git, 'rev-parse', '--short', 'HEAD'], check: false)
+ git_branch = run_command([git, 'rev-parse', '--abbrev-ref', 'HEAD'], check: false)
if git_commit.returncode() == 0 and git_branch.returncode() == 0
version = '@0@-@1@ (branch \'@2@\')'.format(
meson.project_version(),
@@ -95,7 +94,7 @@ conf_data.set_quoted('CAGE_VERSION', version)
scdoc = dependency('scdoc', version: '>=1.9.2', native: true, required: get_option('man-pages'))
if scdoc.found()
- scdoc_prog = find_program(scdoc.get_pkgconfig_variable('scdoc'), native: true)
+ scdoc_prog = find_program(scdoc.get_variable('scdoc'), native: true)
sh = find_program('sh', native: true)
mandir = get_option('mandir')
man_files = [
@@ -111,7 +110,7 @@ if scdoc.found()
input: filename,
output: output,
command: [
- sh, '-c', '@0@ < @INPUT@ > @1@'.format(scdoc_prog.path(), output)
+ sh, '-c', '@0@ < @INPUT@ > @1@'.format(scdoc_prog.full_path(), output)
],
install: true,
install_dir: '@0@/man@1@'.format(mandir, section)
@@ -123,9 +122,7 @@ cage_sources = [
'cage.c',
'idle_inhibit_v1.c',
'output.c',
- 'render.c',
'seat.c',
- 'util.c',
'view.c',
'xdg_shell.c',
]
@@ -136,10 +133,8 @@ cage_headers = [
configuration: conf_data),
'idle_inhibit_v1.h',
'output.h',
- 'render.h',
'seat.h',
'server.h',
- 'util.h',
'view.h',
'xdg_shell.h',
]
@@ -157,7 +152,6 @@ executable(
wayland_server,
wlroots,
xkbcommon,
- pixman,
math,
],
install: true,
diff --git a/output.c b/output.c
index d8da3b9..6eca0db 100644
--- a/output.c
+++ b/output.c
@@ -1,7 +1,7 @@
/*
* Cage: A Wayland kiosk.
*
- * Copyright (C) 2018-2020 Jente Hidskes
+ * Copyright (C) 2018-2021 Jente Hidskes
* Copyright (C) 2019 The Sway authors
*
* See the LICENSE file accompanying this file.
@@ -11,6 +11,7 @@
#include "config.h"
+#include <assert.h>
#include <stdlib.h>
#include <unistd.h>
#include <wayland-server-core.h>
@@ -21,221 +22,25 @@
#include <wlr/backend/x11.h>
#endif
#include <wlr/render/wlr_renderer.h>
+#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_data_device.h>
#include <wlr/types/wlr_matrix.h>
#include <wlr/types/wlr_output.h>
#include <wlr/types/wlr_output_damage.h>
#include <wlr/types/wlr_output_layout.h>
-#include <wlr/types/wlr_surface.h>
+#include <wlr/types/wlr_scene.h>
#include <wlr/types/wlr_xdg_shell.h>
#include <wlr/util/log.h>
#include <wlr/util/region.h>
#include "output.h"
-#include "render.h"
#include "seat.h"
#include "server.h"
-#include "util.h"
#include "view.h"
#if CAGE_HAS_XWAYLAND
#include "xwayland.h"
#endif
-static void output_for_each_surface(struct cg_output *output, cg_surface_iterator_func_t iterator, void *user_data);
-
-struct surface_iterator_data {
- cg_surface_iterator_func_t user_iterator;
- void *user_data;
-
- struct cg_output *output;
-
- /* Output-local coordinates. */
- double ox, oy;
-};
-
-static bool
-intersects_with_output(struct cg_output *output, struct wlr_output_layout *output_layout, struct wlr_box *surface_box)
-{
- /* Since the surface_box's x- and y-coordinates are already output local,
- * the x- and y-coordinates of this box need to be 0 for this function to
- * work correctly. */
- struct wlr_box output_box = {0};
- wlr_output_effective_resolution(output->wlr_output, &output_box.width, &output_box.height);
-
- struct wlr_box intersection;
- return wlr_box_intersection(&intersection, &output_box, surface_box);
-}
-
-static void
-output_for_each_surface_iterator(struct wlr_surface *surface, int sx, int sy, void *user_data)
-{
- struct surface_iterator_data *data = user_data;
- struct cg_output *output = data->output;
-
- if (!wlr_surface_has_buffer(surface)) {
- return;
- }
-
- struct wlr_box surface_box = {
- .x = data->ox + sx + surface->sx,
- .y = data->oy + sy + surface->sy,
- .width = surface->current.width,
- .height = surface->current.height,
- };
-
- if (!intersects_with_output(output, output->server->output_layout, &surface_box)) {
- return;
- }
-
- data->user_iterator(data->output, surface, &surface_box, data->user_data);
-}
-
-void
-output_surface_for_each_surface(struct cg_output *output, struct wlr_surface *surface, double ox, double oy,
- cg_surface_iterator_func_t iterator, void *user_data)
-{
- struct surface_iterator_data data = {
- .user_iterator = iterator,
- .user_data = user_data,
- .output = output,
- .ox = ox,
- .oy = oy,
- };
-
- wlr_surface_for_each_surface(surface, output_for_each_surface_iterator, &data);
-}
-
-static void
-output_view_for_each_surface(struct cg_output *output, struct cg_view *view, cg_surface_iterator_func_t iterator,
- void *user_data)
-{
- struct surface_iterator_data data = {
- .user_iterator = iterator,
- .user_data = user_data,
- .output = output,
- .ox = view->lx,
- .oy = view->ly,
- };
-
- wlr_output_layout_output_coords(output->server->output_layout, output->wlr_output, &data.ox, &data.oy);
- view_for_each_surface(view, output_for_each_surface_iterator, &data);
-}
-
-void
-output_view_for_each_popup_surface(struct cg_output *output, struct cg_view *view, cg_surface_iterator_func_t iterator,
- void *user_data)
-{
- struct surface_iterator_data data = {
- .user_iterator = iterator,
- .user_data = user_data,
- .output = output,
- .ox = view->lx,
- .oy = view->ly,
- };
-
- wlr_output_layout_output_coords(output->server->output_layout, output->wlr_output, &data.ox, &data.oy);
- view_for_each_popup_surface(view, output_for_each_surface_iterator, &data);
-}
-
-void
-output_drag_icons_for_each_surface(struct cg_output *output, struct wl_list *drag_icons,
- cg_surface_iterator_func_t iterator, void *user_data)
-{
- struct cg_drag_icon *drag_icon;
- wl_list_for_each (drag_icon, drag_icons, link) {
- if (drag_icon->wlr_drag_icon->mapped) {
- double ox = drag_icon->lx;
- double oy = drag_icon->ly;
- wlr_output_layout_output_coords(output->server->output_layout, output->wlr_output, &ox, &oy);
- output_surface_for_each_surface(output, drag_icon->wlr_drag_icon->surface, ox, oy, iterator,
- user_data);
- }
- }
-}
-
-static void
-output_for_each_surface(struct cg_output *output, cg_surface_iterator_func_t iterator, void *user_data)
-{
- struct cg_view *view;
- wl_list_for_each_reverse (view, &output->server->views, link) {
- output_view_for_each_surface(output, view, iterator, user_data);
- }
-
- output_drag_icons_for_each_surface(output, &output->server->seat->drag_icons, iterator, user_data);
-}
-
-struct send_frame_done_data {
- struct timespec when;
-};
-
-static void
-send_frame_done_iterator(struct cg_output *output, struct wlr_surface *surface, struct wlr_box *box, void *user_data)
-{
- struct send_frame_done_data *data = user_data;
- wlr_surface_send_frame_done(surface, &data->when);
-}
-
-static void
-send_frame_done(struct cg_output *output, struct send_frame_done_data *data)
-{
- output_for_each_surface(output, send_frame_done_iterator, data);
-}
-
-static void
-count_surface_iterator(struct cg_output *output, struct wlr_surface *surface, struct wlr_box *_box, void *data)
-{
- size_t *n = data;
- n++;
-}
-
-static bool
-scan_out_primary_view(struct cg_output *output)
-{
- struct cg_server *server = output->server;
- struct wlr_output *wlr_output = output->wlr_output;
-
- struct cg_drag_icon *drag_icon;
- wl_list_for_each (drag_icon, &server->seat->drag_icons, link) {
- if (drag_icon->wlr_drag_icon->mapped) {
- return false;
- }
- }
-
- struct cg_view *view = seat_get_focus(server->seat);
- if (!view || !view->wlr_surface) {
- return false;
- }
-
- size_t n_surfaces = 0;
- output_view_for_each_surface(output, view, count_surface_iterator, &n_surfaces);
- if (n_surfaces > 1) {
- return false;
- }
-
-#if CAGE_HAS_XWAYLAND
- if (view->type == CAGE_XWAYLAND_VIEW) {
- struct cg_xwayland_view *xwayland_view = xwayland_view_from_view(view);
- if (!wl_list_empty(&xwayland_view->xwayland_surface->children)) {
- return false;
- }
- }
-#endif
-
- struct wlr_surface *surface = view->wlr_surface;
-
- if (!surface->buffer) {
- return false;
- }
-
- if ((float) surface->current.scale != wlr_output->scale ||
- surface->current.transform != wlr_output->transform) {
- return false;
- }
-
- wlr_output_attach_buffer(wlr_output, &surface->buffer->base);
- return wlr_output_commit(wlr_output);
-}
-
static void
output_enable(struct cg_output *output)
{
@@ -249,6 +54,9 @@ output_enable(struct cg_output *output)
wlr_output_layout_add_auto(output->server->output_layout, wlr_output);
wlr_output_enable(wlr_output, true);
wlr_output_commit(wlr_output);
+
+ output->scene_output = wlr_scene_get_scene_output(output->server->scene, wlr_output);
+ assert(output->scene_output != NULL);
}
static void
@@ -261,6 +69,8 @@ output_disable(struct cg_output *output)
return;
}
+ output->scene_output = NULL;
+
wlr_log(WLR_DEBUG, "Disabling output %s", wlr_output->name);
wlr_output_enable(wlr_output, false);
wlr_output_layout_remove(output->server->output_layout, wlr_output);
@@ -268,93 +78,19 @@ output_disable(struct cg_output *output)
}
static void
-damage_surface_iterator(struct cg_output *output, struct wlr_surface *surface, struct wlr_box *box, void *user_data)
+handle_output_frame(struct wl_listener *listener, void *data)
{
- struct wlr_output *wlr_output = output->wlr_output;
- bool whole = *(bool *) user_data;
-
- scale_box(box, output->wlr_output->scale);
-
- if (whole) {
- wlr_output_damage_add_box(output->damage, box);
- } else if (pixman_region32_not_empty(&surface->buffer_damage)) {
- pixman_region32_t damage;
- pixman_region32_init(&damage);
- wlr_surface_get_effective_damage(surface, &damage);
-
- wlr_region_scale(&damage, &damage, wlr_output->scale);
- if (ceil(wlr_output->scale) > surface->current.scale) {
- /* When scaling up a surface it'll become
- blurry, so we need to expand the damage
- region. */
- wlr_region_expand(&damage, &damage, ceil(wlr_output->scale) - surface->current.scale);
- }
- pixman_region32_translate(&damage, box->x, box->y);
- wlr_output_damage_add(output->damage, &damage);
- pixman_region32_fini(&damage);
- }
-}
+ struct cg_output *output = wl_container_of(listener, output, frame);
-void
-output_damage_surface(struct cg_output *output, struct wlr_surface *surface, double lx, double ly, bool whole)
-{
if (!output->wlr_output->enabled) {
- wlr_log(WLR_DEBUG, "Not adding damage for disabled output %s", output->wlr_output->name);
return;
}
- double ox = lx, oy = ly;
- wlr_output_layout_output_coords(output->server->output_layout, output->wlr_output, &ox, &oy);
- output_surface_for_each_surface(output, surface, ox, oy, damage_surface_iterator, &whole);
-}
+ wlr_scene_output_commit(output->scene_output);
-static void
-handle_output_damage_frame(struct wl_listener *listener, void *data)
-{
- struct cg_output *output = wl_container_of(listener, output, damage_frame);
- struct send_frame_done_data frame_data = {0};
-
- if (!output->wlr_output->enabled) {
- return;
- }
-
- /* Check if we can scan-out the primary view. */
- static bool last_scanned_out = false;
- bool scanned_out = scan_out_primary_view(output);
-
- if (scanned_out && !last_scanned_out) {
- wlr_log(WLR_DEBUG, "Scanning out primary view");
- }
- if (last_scanned_out && !scanned_out) {
- wlr_log(WLR_DEBUG, "Stopping primary view scan out");
- }
- last_scanned_out = scanned_out;
-
- if (scanned_out) {
- goto frame_done;
- }
-
- bool needs_frame;
- pixman_region32_t damage;
- pixman_region32_init(&damage);
- if (!wlr_output_damage_attach_render(output->damage, &needs_frame, &damage)) {
- wlr_log(WLR_ERROR, "Cannot make damage output current");
- goto damage_finish;
- }
-
- if (!needs_frame) {
- wlr_output_rollback(output->wlr_output);
- goto damage_finish;
- }
-
- output_render(output, &damage);
-
-damage_finish:
- pixman_region32_fini(&damage);
-
-frame_done:
- clock_gettime(CLOCK_MONOTONIC, &frame_data.when);
- send_frame_done(output, &frame_data);
+ struct timespec now = {0};
+ clock_gettime(CLOCK_MONOTONIC, &now);
+ wlr_scene_output_send_frame_done(output->scene_output, &now);
}
static void
@@ -395,11 +131,12 @@ output_destroy(struct cg_output *output)
{
struct cg_server *server = output->server;
+ output->wlr_output->data = NULL;
+
wl_list_remove(&output->destroy.link);
wl_list_remove(&output->commit.link);
wl_list_remove(&output->mode.link);
- wl_list_remove(&output->damage_frame.link);
- wl_list_remove(&output->damage_destroy.link);
+ wl_list_remove(&output->frame.link);
wl_list_remove(&output->link);
wlr_output_layout_remove(server->output_layout, output->wlr_output);
@@ -421,18 +158,10 @@ output_destroy(struct cg_output *output)
}
}
-static void
-handle_output_damage_destroy(struct wl_listener *listener, void *data)
-{
- struct cg_output *output = wl_container_of(listener, output, damage_destroy);
- output_destroy(output);
-}
-
static void
handle_output_destroy(struct wl_listener *listener, void *data)
{
struct cg_output *output = wl_container_of(listener, output, destroy);
- wlr_output_damage_destroy(output->damage);
output_destroy(output);
}
@@ -442,6 +171,11 @@ handle_new_output(struct wl_listener *listener, void *data)
struct cg_server *server = wl_container_of(listener, server, new_output);
struct wlr_output *wlr_output = data;
+ if (!wlr_output_init_render(wlr_output, server->allocator, server->renderer)) {
+ wlr_log(WLR_ERROR, "Failed to initialize output rendering");
+ return;
+ }
+
struct cg_output *output = calloc(1, sizeof(struct cg_output));
if (!output) {
wlr_log(WLR_ERROR, "Failed to allocate output");
@@ -449,8 +183,9 @@ handle_new_output(struct wl_listener *listener, void *data)
}
output->wlr_output = wlr_output;
+ wlr_output->data = output;
output->server = server;
- output->damage = wlr_output_damage_create(wlr_output);
+
wl_list_insert(&server->outputs, &output->link);
output->commit.notify = handle_output_commit;
@@ -459,15 +194,29 @@ handle_new_output(struct wl_listener *listener, void *data)
wl_signal_add(&wlr_output->events.mode, &output->mode);
output->destroy.notify = handle_output_destroy;
wl_signal_add(&wlr_output->events.destroy, &output->destroy);
- output->damage_frame.notify = handle_output_damage_frame;
- wl_signal_add(&output->damage->events.frame, &output->damage_frame);
- output->damage_destroy.notify = handle_output_damage_destroy;
- wl_signal_add(&output->damage->events.destroy, &output->damage_destroy);
-
- struct wlr_output_mode *preferred_mode = wlr_output_preferred_mode(wlr_output);
- if (preferred_mode) {
- wlr_output_set_mode(wlr_output, preferred_mode);
+ output->frame.notify = handle_output_frame;
+ wl_signal_add(&wlr_output->events.frame, &output->frame);
+
+ if (!wl_list_empty(&wlr_output->modes)) {
+ struct wlr_output_mode *preferred_mode = wlr_output_preferred_mode(wlr_output);
+ if (preferred_mode) {
+ wlr_output_set_mode(wlr_output, preferred_mode);
+ }
+ if (!wlr_output_test(wlr_output)) {
+ struct wlr_output_mode *mode;
+ wl_list_for_each (mode, &wlr_output->modes, link) {
+ if (mode == preferred_mode) {
+ continue;
+ }
+
+ wlr_output_set_mode(wlr_output, mode);
+ if (wlr_output_test(wlr_output)) {
+ break;
+ }
+ }
+ }
}
+
wlr_output_set_transform(wlr_output, output->server->output_transform);
if (server->output_mode == CAGE_MULTI_OUTPUT_MODE_LAST) {
diff --git a/output.h b/output.h
index b3fd3b4..ced06f6 100644
--- a/output.h
+++ b/output.h
@@ -11,28 +11,17 @@
struct cg_output {
struct cg_server *server;
struct wlr_output *wlr_output;
- struct wlr_output_damage *damage;
+ struct wlr_scene_output *scene_output;
struct wl_listener commit;
struct wl_listener mode;
struct wl_listener destroy;
- struct wl_listener damage_frame;
- struct wl_listener damage_destroy;
+ struct wl_listener frame;
struct wl_list link; // cg_server::outputs
};
-typedef void (*cg_surface_iterator_func_t)(struct cg_output *output, struct wlr_surface *surface, struct wlr_box *box,
- void *user_data);
-
void handle_new_output(struct wl_listener *listener, void *data);
-void output_surface_for_each_surface(struct cg_output *output, struct wlr_surface *surface, double ox, double oy,
- cg_surface_iterator_func_t iterator, void *user_data);
-void output_view_for_each_popup_surface(struct cg_output *output, struct cg_view *view,
- cg_surface_iterator_func_t iterator, void *user_data);
-void output_drag_icons_for_each_surface(struct cg_output *output, struct wl_list *drag_icons,
- cg_surface_iterator_func_t iterator, void *user_data);
-void output_damage_surface(struct cg_output *output, struct wlr_surface *surface, double lx, double ly, bool whole);
void output_set_window_title(struct cg_output *output, const char *title);
#endif
diff --git a/render.c b/render.c
deleted file mode 100644
index 166a088..0000000
--- a/render.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Cage: A Wayland kiosk.
- *
- * Copyright (C) 2018-2020 Jente Hidskes
- * Copyright (C) 2019 The Sway authors
- *
- * See the LICENSE file accompanying this file.
- */
-
-#include <wayland-server-core.h>
-#include <wlr/backend.h>
-#include <wlr/render/wlr_renderer.h>
-#include <wlr/types/wlr_box.h>
-#include <wlr/types/wlr_matrix.h>
-#include <wlr/types/wlr_output.h>
-#include <wlr/types/wlr_output_layout.h>
-#include <wlr/types/wlr_surface.h>
-#include <wlr/util/log.h>
-#include <wlr/util/region.h>
-
-#include "output.h"
-#include "seat.h"
-#include "server.h"
-#include "util.h"
-#include "view.h"
-
-static void
-scissor_output(struct wlr_output *output, pixman_box32_t *rect)
-{
- struct wlr_renderer *renderer = wlr_backend_get_renderer(output->backend);
-
- struct wlr_box box = {
- .x = rect->x1,
- .y = rect->y1,
- .width = rect->x2 - rect->x1,
- .height = rect->y2 - rect->y1,
- };
-
- int output_width, output_height;
- wlr_output_transformed_resolution(output, &output_width, &output_height);
- enum wl_output_transform transform = wlr_output_transform_invert(output->transform);
- wlr_box_transform(&box, &box, transform, output_width, output_height);
-
- wlr_renderer_scissor(renderer, &box);
-}
-
-struct render_data {
- pixman_region32_t *damage;
-};
-
-static void
-render_texture(struct wlr_output *wlr_output, pixman_region32_t *output_damage, struct wlr_texture *texture,
- const struct wlr_box *box, const float matrix[static 9])
-{
- struct wlr_renderer *renderer = wlr_backend_get_renderer(wlr_output->backend);
-
- pixman_region32_t damage;
- pixman_region32_init(&damage);
- pixman_region32_union_rect(&damage, &damage, box->x, box->y, box->width, box->height);
- pixman_region32_intersect(&damage, &damage, output_damage);
- if (!pixman_region32_not_empty(&damage)) {
- goto damage_finish;
- }
-
- int nrects;
- pixman_box32_t *rects = pixman_region32_rectangles(&damage, &nrects);
- for (int i = 0; i < nrects; i++) {
- scissor_output(wlr_output, &rects[i]);
- wlr_render_texture_with_matrix(renderer, texture, matrix, 1.0f);
- }
-
-damage_finish:
- pixman_region32_fini(&damage);
-}
-
-static void
-render_surface_iterator(struct cg_output *output, struct wlr_surface *surface, struct wlr_box *box, void *user_data)
-{
- struct render_data *data = user_data;
- struct wlr_output *wlr_output = output->wlr_output;
- pixman_region32_t *output_damage = data->damage;
-
- struct wlr_texture *texture = wlr_surface_get_texture(surface);
- if (!texture) {
- wlr_log(WLR_DEBUG, "Cannot obtain surface texture");
- return;
- }
-
- scale_box(box, wlr_output->scale);
-
- float matrix[9];
- enum wl_output_transform transform = wlr_output_transform_invert(surface->current.transform);
- wlr_matrix_project_box(matrix, box, transform, 0.0f, wlr_output->transform_matrix);
-
- render_texture(wlr_output, output_damage, texture, box, matrix);
-}
-
-static void
-render_drag_icons(struct cg_output *output, pixman_region32_t *damage, struct wl_list *drag_icons)
-{
- struct render_data data = {
- .damage = damage,
- };
- output_drag_icons_for_each_surface(output, drag_icons, render_surface_iterator, &data);
-}
-
-/**
- * Render all toplevels without descending into popups.
- */
-static void
-render_view_toplevels(struct cg_view *view, struct cg_output *output, pixman_region32_t *damage)
-{
- struct render_data data = {
- .damage = damage,
- };
- double ox = view->lx;
- double oy = view->ly;
- wlr_output_layout_output_coords(output->server->output_layout, output->wlr_output, &ox, &oy);
- output_surface_for_each_surface(output, view->wlr_surface, ox, oy, render_surface_iterator, &data);
-}
-
-static void
-render_view_popups(struct cg_view *view, struct cg_output *output, pixman_region32_t *damage)
-{
- struct render_data data = {
- .damage = damage,
- };
- output_view_for_each_popup_surface(output, view, render_surface_iterator, &data);
-}
-
-void
-output_render(struct cg_output *output, pixman_region32_t *damage)
-{
- struct cg_server *server = output->server;
- struct wlr_output *wlr_output = output->wlr_output;
-
- struct wlr_renderer *renderer = wlr_backend_get_renderer(wlr_output->backend);
- if (!renderer) {
- wlr_log(WLR_DEBUG, "Expected the output backend to have a renderer");
- return;
- }
-
- wlr_renderer_begin(renderer, wlr_output->width, wlr_output->height);
-
- if (!pixman_region32_not_empty(damage)) {
- wlr_log(WLR_DEBUG, "Output isn't damaged but needs a buffer swap");
- goto renderer_end;
- }
-
-#ifdef DEBUG
- if (server->debug_damage_tracking) {
- wlr_renderer_clear(renderer, (float[]){1.0f, 0.0f, 0.0f, 1.0f});
- }
-#endif
-
- float color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
- int nrects;
- pixman_box32_t *rects = pixman_region32_rectangles(damage, &nrects);
- for (int i = 0; i < nrects; i++) {
- scissor_output(wlr_output, &rects[i]);
- wlr_renderer_clear(renderer, color);
- }
-
- // TODO: render only top view, possibly use focused view for this, see #35.
- struct cg_view *view;
- wl_list_for_each_reverse (view, &server->views, link) {
- render_view_toplevels(view, output, damage);
- }
-
- struct cg_view *focused_view = seat_get_focus(server->seat);
- if (focused_view) {
- render_view_popups(focused_view, output, damage);
- }
-
- render_drag_icons(output, damage, &server->seat->drag_icons);
-
-renderer_end:
- /* Draw software cursor in case hardware cursors aren't
- available. This is a no-op when they are. */
- wlr_output_render_software_cursors(wlr_output, damage);
- wlr_renderer_scissor(renderer, NULL);
- wlr_renderer_end(renderer);
-
- int output_width, output_height;
- wlr_output_transformed_resolution(wlr_output, &output_width, &output_height);
-
- pixman_region32_t frame_damage;
- pixman_region32_init(&frame_damage);
-
- enum wl_output_transform transform = wlr_output_transform_invert(wlr_output->transform);
- wlr_region_transform(&frame_damage, &output->damage->current, transform, output_width, output_height);
-
-#ifdef DEBUG
- if (server->debug_damage_tracking) {
- pixman_region32_union_rect(&frame_damage, &frame_damage, 0, 0, output_width, output_height);
- }
-#endif
-
- wlr_output_set_damage(wlr_output, &frame_damage);
- pixman_region32_fini(&frame_damage);
-
- if (!wlr_output_commit(wlr_output)) {
- wlr_log(WLR_ERROR, "Could not commit output");
- }
-}
diff --git a/render.h b/render.h
deleted file mode 100644
index 085b00b..0000000
--- a/render.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CG_RENDER_H
-#define CG_RENDER_H
-
-#include "output.h"
-
-void output_render(struct cg_output *output, pixman_region32_t *damage);
-
-#endif
diff --git a/seat.c b/seat.c
index 08f25a3..5d80e33 100644
--- a/seat.c
+++ b/seat.c
@@ -6,10 +6,14 @@
* See the LICENSE file accompanying this file.
*/
+#define _POSIX_C_SOURCE 200809L
+
#include "config.h"
+#include <assert.h>
#include <linux/input-event-codes.h>
#include <stdlib.h>
+#include <string.h>
#include <wayland-server-core.h>
#include <wlr/backend.h>
#include <wlr/backend/multi.h>
@@ -18,9 +22,11 @@
#include <wlr/types/wlr_idle.h>
#include <wlr/types/wlr_keyboard_group.h>
#include <wlr/types/wlr_primary_selection.h>
+#include <wlr/types/wlr_scene.h>
#include <wlr/types/wlr_seat.h>
-#include <wlr/types/wlr_surface.h>
#include <wlr/types/wlr_touch.h>
+#include <wlr/types/wlr_virtual_keyboard_v1.h>
+#include <wlr/types/wlr_virtual_pointer_v1.h>
#include <wlr/types/wlr_xcursor_manager.h>
#include <wlr/util/log.h>
#if CAGE_HAS_XWAYLAND
@@ -41,42 +47,42 @@ static void drag_icon_update_position(struct cg_drag_icon *drag_icon);
* menus or tooltips. This function tests if any of those are underneath the
* coordinates lx and ly (in output Layout Coordinates). If so, it sets the
* surface pointer to that wlr_surface and the sx and sy coordinates to the
- * coordinates relative to that surface's top-left corner. */
-static bool
-view_at(struct cg_view *view, double lx, double ly, struct wlr_surface **surface, double *sx, double *sy)
+ * coordinates relative to that surface's top-left corner.
+ *
+ * This function iterates over all of our surfaces and attempts to find one
+ * under the cursor. If desktop_view_at returns a view, there is also a
+ * surface. There cannot be a surface without a view, either. It's both or
+ * nothing.
+ */
+static struct cg_view *
+desktop_view_at(struct cg_server *server, double lx, double ly, struct wlr_surface **surface, double *sx, double *sy)
{
- double view_sx = lx - view->lx;
- double view_sy = ly - view->ly;
+ struct wlr_scene_node *node = wlr_scene_node_at(&server->scene->tree.node, lx, ly, sx, sy);
+ if (node == NULL || node->type != WLR_SCENE_NODE_BUFFER) {
+ return NULL;
+ }
- double _sx, _sy;
- struct wlr_surface *_surface = view_wlr_surface_at(view, view_sx, view_sy, &_sx, &_sy);
- if (_surface != NULL) {
- *sx = _sx;
- *sy = _sy;
- *surface = _surface;
- return true;
+ struct wlr_scene_buffer *scene_buffer = wlr_scene_buffer_from_node(node);
+ struct wlr_scene_surface *scene_surface = wlr_scene_surface_from_buffer(scene_buffer);
+ if (!scene_surface) {
+ return NULL;
}
- return false;
-}
+ *surface = scene_surface->surface;
-/* This iterates over all of our surfaces and attempts to find one
- * under the cursor. This relies on server->views being ordered from
- * top-to-bottom. If desktop_view_at returns a view, there is also a
- * surface. There cannot be a surface without a view, either. It's
- * both or nothing. */
-static struct cg_view *
-desktop_view_at(struct cg_server *server, double lx, double ly, struct wlr_surface **surface, double *sx, double *sy)
-{
- struct cg_view *view;
-
- wl_list_for_each (view, &server->views, link) {
- if (view_at(view, lx, ly, surface, sx, sy)) {
- return view;
+ /* Walk up the tree until we find a node with a data pointer. When done,
+ * we've found the node representing the view. */
+ while (!node->data) {
+ if (!node->parent) {
+ node = NULL;
+ break;
}
+
+ node = &node->parent->node;
}
- return NULL;
+ assert(node != NULL);
+ return node->data;
}
static void
@@ -127,16 +133,16 @@ update_capabilities(struct cg_seat *seat)
}
static void
-map_input_device_to_output(struct cg_seat *seat, struct wlr_input_device *device)
+map_input_device_to_output(struct cg_seat *seat, struct wlr_input_device *device, const char *output_name)
{
- if (!device->output_name) {
+ if (!output_name) {
wlr_log(WLR_INFO, "Input device %s cannot be mapped to an output device\n", device->name);
return;
}
struct cg_output *output;
wl_list_for_each (output, &seat->server->outputs, link) {
- if (strcmp(device->output_name, output->wlr_output->name) == 0) {
+ if (strcmp(output_name, output->wlr_output->name) == 0) {
wlr_log(WLR_INFO, "Mapping input device %s to output device %s\n", device->name,
output->wlr_output->name);
wlr_cursor_map_input_to_output(seat->cursor, device, output->wlr_output);
@@ -154,7 +160,7 @@ handle_touch_destroy(struct wl_listener *listener, void *data)
struct cg_seat *seat = touch->seat;
wl_list_remove(&touch->link);
- wlr_cursor_detach_input_device(seat->cursor, touch->device);
+ wlr_cursor_detach_input_device(seat->cursor, &touch->touch->base);
wl_list_remove(&touch->destroy.link);
free(touch);
@@ -162,7 +168,7 @@ handle_touch_destroy(struct wl_listener *listener, void *data)
}
static void
-handle_new_touch(struct cg_seat *seat, struct wlr_input_device *device)
+handle_new_touch(struct cg_seat *seat, struct wlr_touch *wlr_touch)
{
struct cg_touch *touch = calloc(1, sizeof(struct cg_touch));
if (!touch) {
@@ -171,14 +177,14 @@ handle_new_touch(struct cg_seat *seat, struct wlr_input_device *device)
}
touch->seat = seat;
- touch->device = device;
- wlr_cursor_attach_input_device(seat->cursor, device);
+ touch->touch = wlr_touch;
+ wlr_cursor_attach_input_device(seat->cursor, &wlr_touch->base);
wl_list_insert(&seat->touch, &touch->link);
touch->destroy.notify = handle_touch_destroy;
- wl_signal_add(&touch->device->events.destroy, &touch->destroy);
+ wl_signal_add(&wlr_touch->base.events.destroy, &touch->destroy);
- map_input_device_to_output(seat, device);
+ map_input_device_to_output(seat, &wlr_touch->base, wlr_touch->output_name);
}
static void
@@ -188,7 +194,7 @@ handle_pointer_destroy(struct wl_listener *listener, void *data)
struct cg_seat *seat = pointer->seat;
wl_list_remove(&pointer->link);
- wlr_cursor_detach_input_device(seat->cursor, pointer->device);
+ wlr_cursor_detach_input_device(seat->cursor, &pointer->pointer->base);
wl_list_remove(&pointer->destroy.link);
free(pointer);
@@ -196,7 +202,7 @@ handle_pointer_destroy(struct wl_listener *listener, void *data)
}
static void
-handle_new_pointer(struct cg_seat *seat, struct wlr_input_device *device)
+handle_new_pointer(struct cg_seat *seat, struct wlr_pointer *wlr_pointer)
{
struct cg_pointer *pointer = calloc(1, sizeof(struct cg_pointer));
if (!pointer) {
@@ -205,21 +211,42 @@ handle_new_pointer(struct cg_seat *seat, struct wlr_input_device *device)
}
pointer->seat = seat;
- pointer->device = device;
- wlr_cursor_attach_input_device(seat->cursor, device);
+ pointer->pointer = wlr_pointer;
+ wlr_cursor_attach_input_device(seat->cursor, &wlr_pointer->base);
wl_list_insert(&seat->pointers, &pointer->link);
pointer->destroy.notify = handle_pointer_destroy;
- wl_signal_add(&device->events.destroy, &pointer->destroy);
+ wl_signal_add(&wlr_pointer->base.events.destroy, &pointer->destroy);
+
+ map_input_device_to_output(seat, &wlr_pointer->base, wlr_pointer->output_name);
+}
- map_input_device_to_output(seat, device);
+static void
+handle_virtual_pointer(struct wl_listener *listener, void *data)
+{
+ struct cg_server *server = wl_container_of(listener, server, new_virtual_pointer);
+ struct cg_seat *seat = server->seat;
+ struct wlr_virtual_pointer_v1_new_pointer_event *event = data;
+ struct wlr_virtual_pointer_v1 *pointer = event->new_pointer;
+ struct wlr_pointer *wlr_pointer = &pointer->pointer;
+
+ /* We'll want to map the device back to an output later, this is a bit
+ * sub-optimal (we could just keep the suggested_output), but just copy
+ * its name so we do like other devices
+ */
+ if (event->suggested_output != NULL) {
+ wlr_pointer->output_name = strdup(event->suggested_output->name);
+ }
+ /* TODO: event->suggested_seat should be checked if we handle multiple seats */
+ handle_new_pointer(seat, wlr_pointer);
+ update_capabilities(seat);
}
static void
-handle_modifier_event(struct wlr_input_device *device, struct cg_seat *seat)
+handle_modifier_event(struct wlr_keyboard *keyboard, struct cg_seat *seat)
{
- wlr_seat_set_keyboard(seat->seat, device);
- wlr_seat_keyboard_notify_modifiers(seat->seat, &device->keyboard->modifiers);
+ wlr_seat_set_keyboard(seat->seat, keyboard);
+ wlr_seat_keyboard_notify_modifiers(seat->seat, &keyboard->modifiers);
wlr_idle_notify_activity(seat->server->idle, seat->seat);
}
@@ -249,18 +276,18 @@ handle_keybinding(struct cg_server *server, xkb_keysym_t sym)
}
static void
-handle_key_event(struct wlr_input_device *device, struct cg_seat *seat, void *data)
+handle_key_event(struct wlr_keyboard *keyboard, struct cg_seat *seat, void *data)
{
- struct wlr_event_keyboard_key *event = data;
+ struct wlr_keyboard_key_event *event = data;
/* Translate from libinput keycode to an xkbcommon keycode. */
xkb_keycode_t keycode = event->keycode + 8;
const xkb_keysym_t *syms;
- int nsyms = xkb_state_key_get_syms(device->keyboard->xkb_state, keycode, &syms);
+ int nsyms = xkb_state_key_get_syms(keyboard->xkb_state, keycode, &syms);
bool handled = false;
- uint32_t modifiers = wlr_keyboard_get_modifiers(device->keyboard);
+ uint32_t modifiers = wlr_keyboard_get_modifiers(keyboard);
if ((modifiers & WLR_MODIFIER_ALT) && event->state == WL_KEYBOARD_KEY_STATE_PRESSED) {
/* If Alt is held down and this button was pressed, we
* attempt to process it as a compositor
@@ -272,7 +299,7 @@ handle_key_event(struct wlr_input_device *device, struct cg_seat *seat, void *da
if (!handled) {
/* Otherwise, we pass it along to the client. */
- wlr_seat_set_keyboard(seat->seat, device);
+ wlr_seat_set_keyboard(seat->seat, keyboard);
wlr_seat_keyboard_notify_key(seat->seat, event->time_msec, event->keycode, event->state);
}
@@ -283,27 +310,32 @@ static void
handle_keyboard_group_key(struct wl_listener *listener, void *data)
{
struct cg_keyboard_group *cg_group = wl_container_of(listener, cg_group, key);
- handle_key_event(cg_group->wlr_group->input_device, cg_group->seat, data);
+ handle_key_event(&cg_group->wlr_group->keyboard, cg_group->seat, data);
}
static void
handle_keyboard_group_modifiers(struct wl_listener *listener, void *data)
{
struct cg_keyboard_group *group = wl_container_of(listener, group, modifiers);
- handle_modifier_event(group->wlr_group->input_device, group->seat);
+ handle_modifier_event(&group->wlr_group->keyboard, group->seat);
}
static void
-cg_keyboard_group_add(struct wlr_input_device *device, struct cg_seat *seat)
+cg_keyboard_group_add(struct wlr_keyboard *keyboard, struct cg_seat *seat, bool virtual)
{
- struct wlr_keyboard *wlr_keyboard = device->keyboard;
-
- struct cg_keyboard_group *group;
- wl_list_for_each (group, &seat->keyboard_groups, link) {
- struct wlr_keyboard_group *wlr_group = group->wlr_group;
- if (wlr_keyboard_group_add_keyboard(wlr_group, wlr_keyboard)) {
- wlr_log(WLR_DEBUG, "Added new keyboard to existing group");
- return;
+ /* We apparently should not group virtual keyboards,
+ * so create a new group with it
+ */
+ if (!virtual) {
+ struct cg_keyboard_group *group;
+ wl_list_for_each (group, &seat->keyboard_groups, link) {
+ if (group->is_virtual)
+ continue;
+ struct wlr_keyboard_group *wlr_group = group->wlr_group;
+ if (wlr_keyboard_group_add_keyboard(wlr_group, keyboard)) {
+ wlr_log(WLR_DEBUG, "Added new keyboard to existing group");
+ return;
+ }
}
}
@@ -315,6 +347,7 @@ cg_keyboard_group_add(struct wlr_input_device *device, struct cg_seat *seat)
return;
}
cg_group->seat = seat;
+ cg_group->is_virtual = virtual;
cg_group->wlr_group = wlr_keyboard_group_create();
if (cg_group->wlr_group == NULL) {
wlr_log(WLR_ERROR, "Failed to create wlr keyboard group.");
@@ -322,14 +355,14 @@ cg_keyboard_group_add(struct wlr_input_device *device, struct cg_seat *seat)
}
cg_group->wlr_group->data = cg_group;
- wlr_keyboard_set_keymap(&cg_group->wlr_group->keyboard, device->keyboard->keymap);
+ wlr_keyboard_set_keymap(&cg_group->wlr_group->keyboard, keyboard->keymap);
- wlr_keyboard_set_repeat_info(&cg_group->wlr_group->keyboard, wlr_keyboard->repeat_info.rate,
- wlr_keyboard->repeat_info.delay);
+ wlr_keyboard_set_repeat_info(&cg_group->wlr_group->keyboard, keyboard->repeat_info.rate,
+ keyboard->repeat_info.delay);
wlr_log(WLR_DEBUG, "Created keyboard group");
- wlr_keyboard_group_add_keyboard(cg_group->wlr_group, wlr_keyboard);
+ wlr_keyboard_group_add_keyboard(cg_group->wlr_group, keyboard);
wl_list_insert(&seat->keyboard_groups, &cg_group->link);
wl_signal_add(&cg_group->wlr_group->keyboard.events.key, &cg_group->key);
@@ -347,36 +380,45 @@ cleanup:
}
static void
-handle_new_keyboard(struct cg_seat *seat, struct wlr_input_device *device)
+handle_new_keyboard(struct cg_seat *seat, struct wlr_keyboard *keyboard, bool virtual)
{
struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
if (!context) {
- wlr_log(WLR_ERROR, "Unable to create XBK context");
+ wlr_log(WLR_ERROR, "Unable to create XKB context");
return;
}
- struct xkb_rule_names rules = {0};
- rules.rules = getenv("XKB_DEFAULT_RULES");
- rules.model = getenv("XKB_DEFAULT_MODEL");
- rules.layout = getenv("XKB_DEFAULT_LAYOUT");
- rules.variant = getenv("XKB_DEFAULT_VARIANT");
- rules.options = getenv("XKB_DEFAULT_OPTIONS");
- struct xkb_keymap *keymap = xkb_map_new_from_names(context, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS);
+ struct xkb_keymap *keymap = xkb_keymap_new_from_names(context, NULL, XKB_KEYMAP_COMPILE_NO_FLAGS);
if (!keymap) {
wlr_log(WLR_ERROR, "Unable to configure keyboard: keymap does not exist");
xkb_context_unref(context);
return;
}
- wlr_keyboard_set_keymap(device->keyboard, keymap);
+ wlr_keyboard_set_keymap(keyboard, keymap);
xkb_keymap_unref(keymap);
xkb_context_unref(context);
- wlr_keyboard_set_repeat_info(device->keyboard, 25, 600);
+ wlr_keyboard_set_repeat_info(keyboard, 25, 600);
+
+ cg_keyboard_group_add(keyboard, seat, virtual);
+
+ wlr_seat_set_keyboard(seat->seat, keyboard);
+}
- cg_keyboard_group_add(device, seat);
+static void
+handle_virtual_keyboard(struct wl_listener *listener, void *data)
+{
+ struct cg_server *server = wl_container_of(listener, server, new_virtual_keyboard);
+ struct cg_seat *seat = server->seat;
+ struct wlr_virtual_keyboard_v1 *keyboard = data;
+ struct wlr_keyboard *wlr_keyboard = &keyboard->keyboard;
+
+ /* TODO: If multiple seats are supported, check keyboard->seat
+ * to select the appropriate one */
- wlr_seat_set_keyboard(seat->seat, device);
+ handle_new_keyboard(seat, wlr_keyboard, true);
+ update_capabilities(seat);
}
static void
@@ -387,13 +429,13 @@ handle_new_input(struct wl_listener *listener, void *data)
switch (device->type) {
case WLR_INPUT_DEVICE_KEYBOARD:
- handle_new_keyboard(seat, device);
+ handle_new_keyboard(seat, wlr_keyboard_from_input_device(device), false);
break;
case WLR_INPUT_DEVICE_POINTER:
- handle_new_pointer(seat, device);
+ handle_new_pointer(seat, wlr_pointer_from_input_device(device));
break;
case WLR_INPUT_DEVICE_TOUCH:
- handle_new_touch(seat, device);
+ handle_new_touch(seat, wlr_touch_from_input_device(device));
break;
case WLR_INPUT_DEVICE_SWITCH:
wlr_log(WLR_DEBUG, "Switch input is not implemented");
@@ -448,10 +490,10 @@ static void
handle_touch_down(struct wl_listener *listener, void *data)
{
struct cg_seat *seat = wl_container_of(listener, seat, touch_down);
- struct wlr_event_touch_down *event = data;
+ struct wlr_touch_down_event *event = data;
double lx, ly;
- wlr_cursor_absolute_to_layout_coords(seat->cursor, event->device, event->x, event->y, &lx, &ly);
+ wlr_cursor_absolute_to_layout_coords(seat->cursor, &event->touch->base, event->x, event->y, &lx, &ly);
double sx, sy;
struct wlr_surface *surface;
@@ -466,7 +508,7 @@ handle_touch_down(struct wl_listener *listener, void *data)
seat->touch_id = event->touch_id;
seat->touch_lx = lx;
seat->touch_ly = ly;
- press_cursor_button(seat, event->device, event->time_msec, BTN_LEFT, WLR_BUTTON_PRESSED, lx, ly);
+ press_cursor_button(seat, &event->touch->base, event->time_msec, BTN_LEFT, WLR_BUTTON_PRESSED, lx, ly);
}
wlr_idle_notify_activity(seat->server->idle, seat->seat);
@@ -476,14 +518,14 @@ static void
handle_touch_up(struct wl_listener *listener, void *data)
{
struct cg_seat *seat = wl_container_of(listener, seat, touch_up);
- struct wlr_event_touch_up *event = data;
+ struct wlr_touch_up_event *event = data;
if (!wlr_seat_touch_get_point(seat->seat, event->touch_id)) {
return;
}
if (wlr_seat_touch_num_points(seat->seat) == 1) {
- press_cursor_button(seat, event->device, event->time_msec, BTN_LEFT, WLR_BUTTON_RELEASED,
+ press_cursor_button(seat, &event->touch->base, event->time_msec, BTN_LEFT, WLR_BUTTON_RELEASED,
seat->touch_lx, seat->touch_ly);
}
@@ -495,14 +537,14 @@ static void
handle_touch_motion(struct wl_listener *listener, void *data)
{
struct cg_seat *seat = wl_container_of(listener, seat, touch_motion);
- struct wlr_event_touch_motion *event = data;
+ struct wlr_touch_motion_event *event = data;
if (!wlr_seat_touch_get_point(seat->seat, event->touch_id)) {
return;
}
double lx, ly;
- wlr_cursor_absolute_to_layout_coords(seat->cursor, event->device, event->x, event->y, &lx, &ly);
+ wlr_cursor_absolute_to_layout_coords(seat->cursor, &event->touch->base, event->x, event->y, &lx, &ly);
double sx, sy;
struct wlr_surface *surface;
@@ -536,7 +578,7 @@ static void
handle_cursor_axis(struct wl_listener *listener, void *data)
{
struct cg_seat *seat = wl_container_of(listener, seat, cursor_axis);
- struct wlr_event_pointer_axis *event = data;
+ struct wlr_pointer_axis_event *event = data;
wlr_seat_pointer_notify_axis(seat->seat, event->time_msec, event->orientation, event->delta,
event->delta_discrete, event->source);
@@ -547,10 +589,10 @@ static void
handle_cursor_button(struct wl_listener *listener, void *data)
{
struct cg_seat *seat = wl_container_of(listener, seat, cursor_button);
- struct wlr_event_pointer_button *event = data;
+ struct wlr_pointer_button_event *event = data;
wlr_seat_pointer_notify_button(seat->seat, event->time_msec, event->button, event->state);
- press_cursor_button(seat, event->device, event->time_msec, event->button, event->state, seat->cursor->x,
+ press_cursor_button(seat, &event->pointer->base, event->time_msec, event->button, event->state, seat->cursor->x,
seat->cursor->y);
wlr_idle_notify_activity(seat->server->idle, seat->seat);
}
@@ -569,10 +611,7 @@ process_cursor_motion(struct cg_seat *seat, uint32_t time)
} else {
wlr_seat_pointer_notify_enter(wlr_seat, surface, sx, sy);
- bool focus_changed = wlr_seat->pointer_state.focused_surface != surface;
- if (!focus_changed && time > 0) {
- wlr_seat_pointer_notify_motion(wlr_seat, time, sx, sy);
- }
+ wlr_seat_pointer_notify_motion(wlr_seat, time, sx, sy);
}
struct cg_drag_icon *drag_icon;
@@ -587,9 +626,9 @@ static void
handle_cursor_motion_absolute(struct wl_listener *listener, void *data)
{
struct cg_seat *seat = wl_container_of(listener, seat, cursor_motion_absolute);
- struct wlr_event_pointer_motion_absolute *event = data;
+ struct wlr_pointer_motion_absolute_event *event = data;
- wlr_cursor_warp_absolute(seat->cursor, event->device, event->x, event->y);
+ wlr_cursor_warp_absolute(seat->cursor, &event->pointer->base, event->x, event->y);
process_cursor_motion(seat, event->time_msec);
wlr_idle_notify_activity(seat->server->idle, seat->seat);
}
@@ -598,22 +637,13 @@ static void
handle_cursor_motion(struct wl_listener *listener, void *data)
{
struct cg_seat *seat = wl_container_of(listener, seat, cursor_motion);
- struct wlr_event_pointer_motion *event = data;
+ struct wlr_pointer_motion_event *event = data;
- wlr_cursor_move(seat->cursor, event->device, event->delta_x, event->delta_y);
+ wlr_cursor_move(seat->cursor, &event->pointer->base, event->delta_x, event->delta_y);
process_cursor_motion(seat, event->time_msec);
wlr_idle_notify_activity(seat->server->idle, seat->seat);
}
-static void
-drag_icon_damage(struct cg_drag_icon *drag_icon)
-{
- struct cg_output *output;
- wl_list_for_each (output, &drag_icon->seat->server->outputs, link) {
- output_damage_surface(output, drag_icon->wlr_drag_icon->surface, drag_icon->lx, drag_icon->ly, true);
- }
-}
-
static void
drag_icon_update_position(struct cg_drag_icon *drag_icon)
{
@@ -621,8 +651,6 @@ drag_icon_update_position(struct cg_drag_icon *drag_icon)
struct cg_seat *seat = drag_icon->seat;
struct wlr_touch_point *point;
- drag_icon_damage(drag_icon);
-
switch (wlr_icon->drag->grab_type) {
case WLR_DRAG_GRAB_KEYBOARD:
return;
@@ -640,7 +668,7 @@ drag_icon_update_position(struct cg_drag_icon *drag_icon)
break;
}
- drag_icon_damage(drag_icon);
+ wlr_scene_node_set_position(&drag_icon->scene_tree->node, drag_icon->lx, drag_icon->ly);
}
static void
@@ -650,6 +678,7 @@ handle_drag_icon_destroy(struct wl_listener *listener, void *data)
wl_list_remove(&drag_icon->link);
wl_list_remove(&drag_icon->destroy.link);
+ wlr_scene_node_destroy(&drag_icon->scene_tree->node);
free(drag_icon);
}
@@ -692,6 +721,11 @@ handle_start_drag(struct wl_listener *listener, void *data)
}
drag_icon->seat = seat;
drag_icon->wlr_drag_icon = wlr_drag_icon;
+ drag_icon->scene_tree = wlr_scene_subsurface_tree_create(&seat->server->scene->tree, wlr_drag_icon->surface);
+ if (!drag_icon->scene_tree) {
+ free(drag_icon);
+ return;
+ }
drag_icon->destroy.notify = handle_drag_icon_destroy;
wl_signal_add(&wlr_drag_icon->events.destroy, &drag_icon->destroy);
@@ -812,6 +846,9 @@ seat_create(struct cg_server *server, struct wlr_backend *backend)
seat->new_input.notify = handle_new_input;
wl_signal_add(&backend->events.new_input, &seat->new_input);
+ server->new_virtual_keyboard.notify = handle_virtual_keyboard;
+ server->new_virtual_pointer.notify = handle_virtual_pointer;
+
wl_list_init(&seat->drag_icons);
seat->request_start_drag.notify = handle_request_start_drag;
wl_signal_add(&seat->seat->events.request_start_drag, &seat->request_start_drag);
@@ -840,7 +877,10 @@ struct cg_view *
seat_get_focus(struct cg_seat *seat)
{
struct wlr_surface *prev_surface = seat->seat->keyboard_state.focused_surface;
- return view_from_wlr_surface(seat->server, prev_surface);
+ if (!prev_surface) {
+ return NULL;
+ }
+ return view_from_wlr_surface(prev_surface);
}
void
diff --git a/seat.h b/seat.h
index 188543d..52cbee4 100644
--- a/seat.h
+++ b/seat.h
@@ -55,12 +55,13 @@ struct cg_keyboard_group {
struct wl_listener key;
struct wl_listener modifiers;
struct wl_list link; // cg_seat::keyboard_groups
+ bool is_virtual;
};
struct cg_pointer {
struct wl_list link; // seat::pointers
struct cg_seat *seat;
- struct wlr_input_device *device;
+ struct wlr_pointer *pointer;
struct wl_listener destroy;
};
@@ -68,7 +69,7 @@ struct cg_pointer {
struct cg_touch {
struct wl_list link; // seat::touch
struct cg_seat *seat;
- struct wlr_input_device *device;
+ struct wlr_touch *touch;
struct wl_listener destroy;
};
@@ -77,6 +78,7 @@ struct cg_drag_icon {
struct wl_list link; // seat::drag_icons
struct cg_seat *seat;
struct wlr_drag_icon *wlr_drag_icon;
+ struct wlr_scene_tree *scene_tree;
/* The drag icon has a position in layout coordinates. */
double lx, ly;
diff --git a/server.h b/server.h
index 817637b..082a435 100644
--- a/server.h
+++ b/server.h
@@ -12,10 +12,6 @@
#include <wlr/xwayland.h>
#endif
-#include "output.h"
-#include "seat.h"
-#include "view.h"
-
enum cg_multi_output_mode {
CAGE_MULTI_OUTPUT_MODE_EXTEND,
CAGE_MULTI_OUTPUT_MODE_LAST,
@@ -25,6 +21,8 @@ struct cg_server {
struct wl_display *wl_display;
struct wl_list views;
struct wlr_backend *backend;
+ struct wlr_renderer *renderer;
+ struct wlr_allocator *allocator;
struct cg_seat *seat;
struct wlr_idle *idle;
@@ -34,6 +32,7 @@ struct cg_server {
enum cg_multi_output_mode output_mode;
struct wlr_output_layout *output_layout;
+ struct wlr_scene *scene;
/* Includes disabled outputs; depending on the output_mode
* some outputs may be disabled. */
struct wl_list outputs; // cg_output::link
@@ -41,6 +40,9 @@ struct cg_server {
struct wl_listener xdg_toplevel_decoration;
struct wl_listener new_xdg_shell_surface;
+
+ struct wl_listener new_virtual_keyboard;
+ struct wl_listener new_virtual_pointer;
#if CAGE_HAS_XWAYLAND
struct wl_listener new_xwayland_surface;
#endif
@@ -48,9 +50,6 @@ struct cg_server {
bool xdg_decoration;
bool allow_vt_switch;
enum wl_output_transform output_transform;
-#ifdef DEBUG
- bool debug_damage_tracking;
-#endif
};
#endif
diff --git a/util.c b/util.c
deleted file mode 100644
index 95de499..0000000
--- a/util.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Cage: A Wayland kiosk.
- *
- * Copyright (C) 2019 The Sway authors
- *
- * See the LICENSE file accompanying this file.
- */
-
-#include <wlr/types/wlr_box.h>
-
-#include "util.h"
-
-int
-scale_length(int length, int offset, float scale)
-{
- /**
- * One does not simply multiply the width by the scale. We allow fractional
- * scaling, which means the resulting scaled width might be a decimal.
- * So we round it.
- *
- * But even this can produce undesirable results depending on the X or Y
- * offset of the box. For example, with a scale of 1.5, a box with
- * width=1 should not scale to 2px if its X coordinate is 1, because the
- * X coordinate would have scaled to 2px.
- */
- return round((offset + length) * scale) - round(offset * scale);
-}
-
-void
-scale_box(struct wlr_box *box, float scale)
-{
- box->width = scale_length(box->width, box->x, scale);
- box->height = scale_length(box->height, box->y, scale);
- box->x = round(box->x * scale);
- box->y = round(box->y * scale);
-}
diff --git a/util.h b/util.h
deleted file mode 100644
index db6bc7d..0000000
--- a/util.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef CG_UTIL_H
-#define CG_UTIL_H
-
-#include <wlr/types/wlr_box.h>
-
-/** Apply scale to a width or height. */
-int scale_length(int length, int offset, float scale);
-
-void scale_box(struct wlr_box *box, float scale);
-
-#endif
diff --git a/view.c b/view.c
index 3f3b0ed..b4a3eca 100644
--- a/view.c
+++ b/view.c
@@ -1,20 +1,20 @@
/*
* Cage: A Wayland kiosk.
*
- * Copyright (C) 2018-2020 Jente Hidskes
+ * Copyright (C) 2018-2021 Jente Hidskes
*
* See the LICENSE file accompanying this file.
*/
#define _POSIX_C_SOURCE 200809L
+#include <assert.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <wayland-server-core.h>
-#include <wlr/types/wlr_box.h>
#include <wlr/types/wlr_output.h>
-#include <wlr/types/wlr_surface.h>
+#include <wlr/types/wlr_scene.h>
#include "output.h"
#include "seat.h"
@@ -24,96 +24,6 @@
#include "xwayland.h"
#endif
-static void
-view_child_handle_commit(struct wl_listener *listener, void *data)
-{
- struct cg_view_child *child = wl_container_of(listener, child, commit);
- view_damage_part(child->view);
-}
-
-static void subsurface_create(struct cg_view *view, struct wlr_subsurface *wlr_subsurface);
-
-static void
-view_child_handle_new_subsurface(struct wl_listener *listener, void *data)
-{
- struct cg_view_child *child = wl_container_of(listener, child, new_subsurface);
- struct wlr_subsurface *wlr_subsurface = data;
- subsurface_create(child->view, wlr_subsurface);
-}
-
-void
-view_child_finish(struct cg_view_child *child)
-{
- if (!child) {
- return;
- }
-
- view_damage_whole(child->view);
-
- wl_list_remove(&child->link);
- wl_list_remove(&child->commit.link);
- wl_list_remove(&child->new_subsurface.link);
-}
-
-void
-view_child_init(struct cg_view_child *child, struct cg_view *view, struct wlr_surface *wlr_surface)
-{
- child->view = view;
- child->wlr_surface = wlr_surface;
-
- child->commit.notify = view_child_handle_commit;
- wl_signal_add(&wlr_surface->events.commit, &child->commit);
- child->new_subsurface.notify = view_child_handle_new_subsurface;
- wl_signal_add(&wlr_surface->events.new_subsurface, &child->new_subsurface);
-
- wl_list_insert(&view->children, &child->link);
-}
-
-static void
-subsurface_destroy(struct cg_view_child *child)
-{
- if (!child) {
- return;
- }
-
- struct cg_subsurface *subsurface = (struct cg_subsurface *) child;
- wl_list_remove(&subsurface->destroy.link);
- view_child_finish(&subsurface->view_child);
- free(subsurface);
-}
-
-static void
-subsurface_handle_destroy(struct wl_listener *listener, void *data)
-{
- struct cg_subsurface *subsurface = wl_container_of(listener, subsurface, destroy);
- struct cg_view_child *view_child = (struct cg_view_child *) subsurface;
- subsurface_destroy(view_child);
-}
-
-static void
-subsurface_create(struct cg_view *view, struct wlr_subsurface *wlr_subsurface)
-{
- struct cg_subsurface *subsurface = calloc(1, sizeof(struct cg_subsurface));
- if (!subsurface) {
- return;
- }
-
- view_child_init(&subsurface->view_child, view, wlr_subsurface->surface);
- subsurface->view_child.destroy = subsurface_destroy;
- subsurface->wlr_subsurface = wlr_subsurface;
-
- subsurface->destroy.notify = subsurface_handle_destroy;
- wl_signal_add(&wlr_subsurface->events.destroy, &subsurface->destroy);
-}
-
-static void
-handle_new_subsurface(struct wl_listener *listener, void *data)
-{
- struct cg_view *view = wl_container_of(listener, view, new_subsurface);
- struct wlr_subsurface *wlr_subsurface = data;
- subsurface_create(view, wlr_subsurface);
-}
-
char *
view_get_title(struct cg_view *view)
{
@@ -136,24 +46,6 @@ view_is_transient_for(struct cg_view *child, struct cg_view *parent)
return child->impl->is_transient_for(child, parent);
}
-void
-view_damage_part(struct cg_view *view)
-{
- struct cg_output *output;
- wl_list_for_each (output, &view->server->outputs, link) {
- output_damage_surface(output, view->wlr_surface, view->lx, view->ly, false);
- }
-}
-
-void
-view_damage_whole(struct cg_view *view)
-{
- struct cg_output *output;
- wl_list_for_each (output, &view->server->outputs, link) {
- output_damage_surface(output, view->wlr_surface, view->lx, view->ly, true);
- }
-}
-
void
view_activate(struct cg_view *view, bool activate)
{
@@ -174,6 +66,9 @@ view_maximize(struct cg_view *view, struct wlr_box *layout_box)
{
view->lx = layout_box->x;
view->ly = layout_box->y;
+
+ wlr_scene_node_set_position(&view->scene_tree->node, view->lx, view->ly);
+
view->impl->maximize(view, layout_box->width, layout_box->height);
}
@@ -185,33 +80,21 @@ view_center(struct cg_view *view, struct wlr_box *layout_box)
view->lx = (layout_box->width - width) / 2;
view->ly = (layout_box->height - height) / 2;
+
+ wlr_scene_node_set_position(&view->scene_tree->node, view->lx, view->ly);
}
void
view_position(struct cg_view *view)
{
- struct wlr_box *layout_box = wlr_output_layout_get_box(view->server->output_layout, NULL);
+ struct wlr_box layout_box;
+ wlr_output_layout_get_box(view->server->output_layout, NULL, &layout_box);
- if (view_is_primary(view) || view_extends_output_layout(view, layout_box)) {
- view_maximize(view, layout_box);
+ if (view_is_primary(view) || view_extends_output_layout(view, &layout_box)) {
+ view_maximize(view, &layout_box);
} else {
- view_center(view, layout_box);
- }
-}
-
-void
-view_for_each_surface(struct cg_view *view, wlr_surface_iterator_func_t iterator, void *data)
-{
- view->impl->for_each_surface(view, iterator, data);
-}
-
-void
-view_for_each_popup_surface(struct cg_view *view, wlr_surface_iterator_func_t iterator, void *data)
-{
- if (!view->impl->for_each_popup_surface) {
- return;
+ view_center(view, &layout_box);
}
- view->impl->for_each_popup_surface(view, iterator, data);
}
void
@@ -219,31 +102,24 @@ view_unmap(struct cg_view *view)
{
wl_list_remove(&view->link);
- wl_list_remove(&view->new_subsurface.link);
-
- struct cg_view_child *child, *tmp;
- wl_list_for_each_safe (child, tmp, &view->children, link) {
- child->destroy(child);
- }
+ wlr_scene_node_destroy(&view->scene_tree->node);
+ view->wlr_surface->data = NULL;
view->wlr_surface = NULL;
}
void
view_map(struct cg_view *view, struct wlr_surface *surface)
{
- view->wlr_surface = surface;
-
- struct wlr_subsurface *subsurface;
- wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces_below, parent_link) {
- subsurface_create(view, subsurface);
- }
- wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces_above, parent_link) {
- subsurface_create(view, subsurface);
+ view->scene_tree = wlr_scene_subsurface_tree_create(&view->server->scene->tree, surface);
+ if (!view->scene_tree) {
+ wl_resource_post_no_memory(surface->resource);
+ return;
}
+ view->scene_tree->node.data = view;
- view->new_subsurface.notify = handle_new_subsurface;
- wl_signal_add(&view->wlr_surface->events.new_subsurface, &view->new_subsurface);
+ view->wlr_surface = surface;
+ surface->data = view;
#if CAGE_HAS_XWAYLAND
/* We shouldn't position override-redirect windows. They set
@@ -283,24 +159,11 @@ view_init(struct cg_view *view, struct cg_server *server, enum cg_view_type type
view->server = server;
view->type = type;
view->impl = impl;
-
- wl_list_init(&view->children);
}
struct cg_view *
-view_from_wlr_surface(struct cg_server *server, struct wlr_surface *surface)
-{
- struct cg_view *view;
- wl_list_for_each (view, &server->views, link) {
- if (view->wlr_surface == surface) {
- return view;
- }
- }
- return NULL;
-}
-
-struct wlr_surface *
-view_wlr_surface_at(struct cg_view *view, double sx, double sy, double *sub_x, double *sub_y)
+view_from_wlr_surface(struct wlr_surface *surface)
{
- return view->impl->wlr_surface_at(view, sx, sy, sub_x, sub_y);
+ assert(surface);
+ return surface->data;
}
diff --git a/view.h b/view.h
index cd16e42..5ae13dd 100644
--- a/view.h
+++ b/view.h
@@ -5,9 +5,9 @@
#include <stdbool.h>
#include <wayland-server-core.h>
-#include <wlr/types/wlr_box.h>
-#include <wlr/types/wlr_surface.h>
+#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_xdg_shell.h>
+#include <wlr/util/box.h>
#if CAGE_HAS_XWAYLAND
#include <wlr/xwayland.h>
#endif
@@ -24,16 +24,14 @@ enum cg_view_type {
struct cg_view {
struct cg_server *server;
struct wl_list link; // server::views
- struct wl_list children; // cg_view_child::link
struct wlr_surface *wlr_surface;
+ struct wlr_scene_tree *scene_tree;
/* The view has a position in layout coordinates. */
int lx, ly;
enum cg_view_type type;
const struct cg_view_impl *impl;
-
- struct wl_listener new_subsurface;
};
struct cg_view_impl {
@@ -44,47 +42,18 @@ struct cg_view_impl {
void (*activate)(struct cg_view *view, bool activate);
void (*maximize)(struct cg_view *view, int output_width, int output_height);
void (*destroy)(struct cg_view *view);
- void (*for_each_surface)(struct cg_view *view, wlr_surface_iterator_func_t iterator, void *data);
- void (*for_each_popup_surface)(struct cg_view *view, wlr_surface_iterator_func_t iterator, void *data);
- struct wlr_surface *(*wlr_surface_at)(struct cg_view *view, double sx, double sy, double *sub_x, double *sub_y);
-};
-
-struct cg_view_child {
- struct cg_view *view;
- struct wlr_surface *wlr_surface;
- struct wl_list link;
-
- struct wl_listener commit;
- struct wl_listener new_subsurface;
-
- void (*destroy)(struct cg_view_child *child);
-};
-
-struct cg_subsurface {
- struct cg_view_child view_child;
- struct wlr_subsurface *wlr_subsurface;
-
- struct wl_listener destroy;
};
char *view_get_title(struct cg_view *view);
bool view_is_primary(struct cg_view *view);
bool view_is_transient_for(struct cg_view *child, struct cg_view *parent);
-void view_damage_part(struct cg_view *view);
-void view_damage_whole(struct cg_view *view);
void view_activate(struct cg_view *view, bool activate);
void view_position(struct cg_view *view);
-void view_for_each_surface(struct cg_view *view, wlr_surface_iterator_func_t iterator, void *data);
-void view_for_each_popup_surface(struct cg_view *view, wlr_surface_iterator_func_t iterator, void *data);
void view_unmap(struct cg_view *view);
void view_map(struct cg_view *view, struct wlr_surface *surface);
void view_destroy(struct cg_view *view);
void view_init(struct cg_view *view, struct cg_server *server, enum cg_view_type type, const struct cg_view_impl *impl);
-struct cg_view *view_from_wlr_surface(struct cg_server *server, struct wlr_surface *surface);
-struct wlr_surface *view_wlr_surface_at(struct cg_view *view, double sx, double sy, double *sub_x, double *sub_y);
-
-void view_child_finish(struct cg_view_child *child);
-void view_child_init(struct cg_view_child *child, struct cg_view *view, struct wlr_surface *wlr_surface);
+struct cg_view *view_from_wlr_surface(struct wlr_surface *surface);
#endif
diff --git a/xdg_shell.c b/xdg_shell.c
index 2e42347..c577dc5 100644
--- a/xdg_shell.c
+++ b/xdg_shell.c
@@ -6,10 +6,11 @@
* See the LICENSE file accompanying this file.
*/
+#include <assert.h>
#include <stdbool.h>
#include <stdlib.h>
#include <wayland-server-core.h>
-#include <wlr/types/wlr_box.h>
+#include <wlr/types/wlr_scene.h>
#include <wlr/types/wlr_xdg_shell.h>
#include <wlr/util/log.h>
@@ -41,105 +42,47 @@ xdg_decoration_handle_request_mode(struct wl_listener *listener, void *data)
wlr_xdg_toplevel_decoration_v1_set_mode(xdg_decoration->wlr_decoration, mode);
}
-static void
-xdg_popup_destroy(struct cg_view_child *child)
-{
- if (!child) {
- return;
- }
-
- struct cg_xdg_popup *popup = (struct cg_xdg_popup *) child;
- wl_list_remove(&popup->destroy.link);
- wl_list_remove(&popup->map.link);
- wl_list_remove(&popup->unmap.link);
- wl_list_remove(&popup->new_popup.link);
- view_child_finish(&popup->view_child);
- free(popup);
-}
-
-static void
-handle_xdg_popup_map(struct wl_listener *listener, void *data)
-{
- struct cg_xdg_popup *popup = wl_container_of(listener, popup, map);
- view_damage_whole(popup->view_child.view);
-}
-
-static void
-handle_xdg_popup_unmap(struct wl_listener *listener, void *data)
+static struct cg_view *
+popup_get_view(struct wlr_xdg_popup *popup)
{
- struct cg_xdg_popup *popup = wl_container_of(listener, popup, unmap);
- view_damage_whole(popup->view_child.view);
-}
-
-static void
-handle_xdg_popup_destroy(struct wl_listener *listener, void *data)
-{
- struct cg_xdg_popup *popup = wl_container_of(listener, popup, destroy);
- struct cg_view_child *view_child = (struct cg_view_child *) popup;
- xdg_popup_destroy(view_child);
-}
-
-static void xdg_popup_create(struct cg_view *view, struct wlr_xdg_popup *wlr_popup);
+ while (true) {
+ if (popup->parent == NULL || !wlr_surface_is_xdg_surface(popup->parent)) {
+ return NULL;
+ }
-static void
-popup_handle_new_xdg_popup(struct wl_listener *listener, void *data)
-{
- struct cg_xdg_popup *popup = wl_container_of(listener, popup, new_popup);
- struct wlr_xdg_popup *wlr_popup = data;
- xdg_popup_create(popup->view_child.view, wlr_popup);
+ struct wlr_xdg_surface *xdg_surface = wlr_xdg_surface_from_wlr_surface(popup->parent);
+ switch (xdg_surface->role) {
+ case WLR_XDG_SURFACE_ROLE_TOPLEVEL:
+ return xdg_surface->data;
+ case WLR_XDG_SURFACE_ROLE_POPUP:
+ popup = xdg_surface->popup;
+ break;
+ case WLR_XDG_SURFACE_ROLE_NONE:
+ return NULL;
+ }
+ }
}
static void
-popup_unconstrain(struct cg_xdg_popup *popup)
+popup_unconstrain(struct cg_view *view, struct wlr_xdg_popup *popup)
{
- struct cg_view *view = popup->view_child.view;
struct cg_server *server = view->server;
- struct wlr_box *popup_box = &popup->wlr_popup->geometry;
+ struct wlr_box *popup_box = &popup->current.geometry;
struct wlr_output_layout *output_layout = server->output_layout;
struct wlr_output *wlr_output =
wlr_output_layout_output_at(output_layout, view->lx + popup_box->x, view->ly + popup_box->y);
- struct wlr_box *output_box = wlr_output_layout_get_box(output_layout, wlr_output);
+ struct wlr_box output_box;
+ wlr_output_layout_get_box(output_layout, wlr_output, &output_box);
struct wlr_box output_toplevel_box = {
- .x = output_box->x - view->lx,
- .y = output_box->y - view->ly,
- .width = output_box->width,
- .height = output_box->height,
+ .x = output_box.x - view->lx,
+ .y = output_box.y - view->ly,
+ .width = output_box.width,
+ .height = output_box.height,
};
- wlr_xdg_popup_unconstrain_from_box(popup->wlr_popup, &output_toplevel_box);
-}
-
-static void
-xdg_popup_create(struct cg_view *view, struct wlr_xdg_popup *wlr_popup)
-{
- struct cg_xdg_popup *popup = calloc(1, sizeof(struct cg_xdg_popup));
- if (!popup) {
- return;
- }
-
- popup->wlr_popup = wlr_popup;
- view_child_init(&popup->view_child, view, wlr_popup->base->surface);
- popup->view_child.destroy = xdg_popup_destroy;
- popup->destroy.notify = handle_xdg_popup_destroy;
- wl_signal_add(&wlr_popup->base->events.destroy, &popup->destroy);
- popup->map.notify = handle_xdg_popup_map;
- wl_signal_add(&wlr_popup->base->events.map, &popup->map);
- popup->unmap.notify = handle_xdg_popup_unmap;
- wl_signal_add(&wlr_popup->base->events.unmap, &popup->unmap);
- popup->new_popup.notify = popup_handle_new_xdg_popup;
- wl_signal_add(&wlr_popup->base->events.new_popup, &popup->new_popup);
-
- popup_unconstrain(popup);
-}
-
-static void
-handle_new_xdg_popup(struct wl_listener *listener, void *data)
-{
- struct cg_xdg_shell_view *xdg_shell_view = wl_container_of(listener, xdg_shell_view, new_popup);
- struct wlr_xdg_popup *wlr_popup = data;
- xdg_popup_create(&xdg_shell_view->view, wlr_popup);
+ wlr_xdg_popup_unconstrain_from_box(popup, &output_toplevel_box);
}
static struct cg_xdg_shell_view *
@@ -152,7 +95,7 @@ static char *
get_title(struct cg_view *view)
{
struct cg_xdg_shell_view *xdg_shell_view = xdg_shell_view_from_view(view);
- return xdg_shell_view->xdg_surface->toplevel->title;
+ return xdg_shell_view->xdg_toplevel->title;
}
static void
@@ -161,7 +104,7 @@ get_geometry(struct cg_view *view, int *width_out, int *height_out)
struct cg_xdg_shell_view *xdg_shell_view = xdg_shell_view_from_view(view);
struct wlr_box geom;
- wlr_xdg_surface_get_geometry(xdg_shell_view->xdg_surface, &geom);
+ wlr_xdg_surface_get_geometry(xdg_shell_view->xdg_toplevel->base, &geom);
*width_out = geom.width;
*height_out = geom.height;
}
@@ -170,9 +113,9 @@ static bool
is_primary(struct cg_view *view)
{
struct cg_xdg_shell_view *xdg_shell_view = xdg_shell_view_from_view(view);
- struct wlr_xdg_surface *parent = xdg_shell_view->xdg_surface->toplevel->parent;
- /* FIXME: role is 0? */
- return parent == NULL; /*&& role == WLR_XDG_SURFACE_ROLE_TOPLEVEL */
+ struct wlr_xdg_toplevel *parent = xdg_shell_view->xdg_toplevel->parent;
+
+ return parent == NULL;
}
static bool
@@ -182,14 +125,13 @@ is_transient_for(struct cg_view *child, struct cg_view *parent)
return false;
}
struct cg_xdg_shell_view *_child = xdg_shell_view_from_view(child);
- struct wlr_xdg_surface *xdg_surface = _child->xdg_surface;
+ struct wlr_xdg_toplevel *xdg_toplevel = _child->xdg_toplevel;
struct cg_xdg_shell_view *_parent = xdg_shell_view_from_view(parent);
- struct wlr_xdg_surface *parent_xdg_surface = _parent->xdg_surface;
- while (xdg_surface) {
- if (xdg_surface->toplevel->parent == parent_xdg_surface) {
+ while (xdg_toplevel) {
+ if (xdg_toplevel->parent == _parent->xdg_toplevel) {
return true;
}
- xdg_surface = xdg_surface->toplevel->parent;
+ xdg_toplevel = xdg_toplevel->parent;
}
return false;
}
@@ -198,15 +140,15 @@ static void
activate(struct cg_view *view, bool activate)
{
struct cg_xdg_shell_view *xdg_shell_view = xdg_shell_view_from_view(view);
- wlr_xdg_toplevel_set_activated(xdg_shell_view->xdg_surface, activate);
+ wlr_xdg_toplevel_set_activated(xdg_shell_view->xdg_toplevel, activate);
}
static void
maximize(struct cg_view *view, int output_width, int output_height)
{
struct cg_xdg_shell_view *xdg_shell_view = xdg_shell_view_from_view(view);
- wlr_xdg_toplevel_set_size(xdg_shell_view->xdg_surface, output_width, output_height);
- wlr_xdg_toplevel_set_maximized(xdg_shell_view->xdg_surface, true);
+ wlr_xdg_toplevel_set_size(xdg_shell_view->xdg_toplevel, output_width, output_height);
+ wlr_xdg_toplevel_set_maximized(xdg_shell_view->xdg_toplevel, true);
}
static void
@@ -216,41 +158,21 @@ destroy(struct cg_view *view)
free(xdg_shell_view);
}
-static void
-for_each_surface(struct cg_view *view, wlr_surface_iterator_func_t iterator, void *data)
-{
- struct cg_xdg_shell_view *xdg_shell_view = xdg_shell_view_from_view(view);
- wlr_xdg_surface_for_each_surface(xdg_shell_view->xdg_surface, iterator, data);
-}
-
-static void
-for_each_popup_surface(struct cg_view *view, wlr_surface_iterator_func_t iterator, void *data)
-{
- struct cg_xdg_shell_view *xdg_shell_view = xdg_shell_view_from_view(view);
- wlr_xdg_surface_for_each_popup_surface(xdg_shell_view->xdg_surface, iterator, data);
-}
-
-static struct wlr_surface *
-wlr_surface_at(struct cg_view *view, double sx, double sy, double *sub_x, double *sub_y)
-{
- struct cg_xdg_shell_view *xdg_shell_view = xdg_shell_view_from_view(view);
- return wlr_xdg_surface_surface_at(xdg_shell_view->xdg_surface, sx, sy, sub_x, sub_y);
-}
-
static void
handle_xdg_shell_surface_request_fullscreen(struct wl_listener *listener, void *data)
{
struct cg_xdg_shell_view *xdg_shell_view = wl_container_of(listener, xdg_shell_view, request_fullscreen);
- struct wlr_xdg_toplevel_set_fullscreen_event *event = data;
- wlr_xdg_toplevel_set_fullscreen(xdg_shell_view->xdg_surface, event->fullscreen);
-}
-static void
-handle_xdg_shell_surface_commit(struct wl_listener *listener, void *data)
-{
- struct cg_xdg_shell_view *xdg_shell_view = wl_container_of(listener, xdg_shell_view, commit);
- struct cg_view *view = &xdg_shell_view->view;
- view_damage_part(view);
+ /**
+ * Certain clients do not like figuring out their own window geometry if they
+ * display in fullscreen mode, so we set it here.
+ */
+ struct wlr_box layout_box;
+ wlr_output_layout_get_box(xdg_shell_view->view.server->output_layout, NULL, &layout_box);
+ wlr_xdg_toplevel_set_size(xdg_shell_view->xdg_toplevel, layout_box.width, layout_box.height);
+
+ wlr_xdg_toplevel_set_fullscreen(xdg_shell_view->xdg_toplevel,
+ xdg_shell_view->xdg_toplevel->requested.fullscreen);
}
static void
@@ -259,10 +181,6 @@ handle_xdg_shell_surface_unmap(struct wl_listener *listener, void *data)
struct cg_xdg_shell_view *xdg_shell_view = wl_container_of(listener, xdg_shell_view, unmap);
struct cg_view *view = &xdg_shell_view->view;
- view_damage_whole(view);
-
- wl_list_remove(&xdg_shell_view->commit.link);
-
view_unmap(view);
}
@@ -272,12 +190,7 @@ handle_xdg_shell_surface_map(struct wl_listener *listener, void *data)
struct cg_xdg_shell_view *xdg_shell_view = wl_container_of(listener, xdg_shell_view, map);
struct cg_view *view = &xdg_shell_view->view;
- xdg_shell_view->commit.notify = handle_xdg_shell_surface_commit;
- wl_signal_add(&xdg_shell_view->xdg_surface->surface->events.commit, &xdg_shell_view->commit);
-
- view_map(view, xdg_shell_view->xdg_surface->surface);
-
- view_damage_whole(view);
+ view_map(view, xdg_shell_view->xdg_toplevel->base->surface);
}
static void
@@ -290,8 +203,7 @@ handle_xdg_shell_surface_destroy(struct wl_listener *listener, void *data)
wl_list_remove(&xdg_shell_view->unmap.link);
wl_list_remove(&xdg_shell_view->destroy.link);
wl_list_remove(&xdg_shell_view->request_fullscreen.link);
- wl_list_remove(&xdg_shell_view->new_popup.link);
- xdg_shell_view->xdg_surface = NULL;
+ xdg_shell_view->xdg_toplevel = NULL;
view_destroy(view);
}
@@ -304,9 +216,6 @@ static const struct cg_view_impl xdg_shell_view_impl = {
.activate = activate,
.maximize = maximize,
.destroy = destroy,
- .for_each_surface = for_each_surface,
- .for_each_popup_surface = for_each_popup_surface,
- .wlr_surface_at = wlr_surface_at,
};
void
@@ -315,29 +224,64 @@ handle_xdg_shell_surface_new(struct wl_listener *listener, void *data)
struct cg_server *server = wl_container_of(listener, server, new_xdg_shell_surface);
struct wlr_xdg_surface *xdg_surface = data;
- if (xdg_surface->role != WLR_XDG_SURFACE_ROLE_TOPLEVEL) {
- return;
- }
+ switch (xdg_surface->role) {
+ case WLR_XDG_SURFACE_ROLE_TOPLEVEL:;
+ struct cg_xdg_shell_view *xdg_shell_view = calloc(1, sizeof(struct cg_xdg_shell_view));
+ if (!xdg_shell_view) {
+ wlr_log(WLR_ERROR, "Failed to allocate XDG Shell view");
+ return;
+ }
- struct cg_xdg_shell_view *xdg_shell_view = calloc(1, sizeof(struct cg_xdg_shell_view));
- if (!xdg_shell_view) {
- wlr_log(WLR_ERROR, "Failed to allocate XDG Shell view");
- return;
- }
+ view_init(&xdg_shell_view->view, server, CAGE_XDG_SHELL_VIEW, &xdg_shell_view_impl);
+ xdg_shell_view->xdg_toplevel = xdg_surface->toplevel;
+
+ xdg_shell_view->map.notify = handle_xdg_shell_surface_map;
+ wl_signal_add(&xdg_surface->events.map, &xdg_shell_view->map);
+ xdg_shell_view->unmap.notify = handle_xdg_shell_surface_unmap;
+ wl_signal_add(&xdg_surface->events.unmap, &xdg_shell_view->unmap);
+ xdg_shell_view->destroy.notify = handle_xdg_shell_surface_destroy;
+ wl_signal_add(&xdg_surface->events.destroy, &xdg_shell_view->destroy);
+ xdg_shell_view->request_fullscreen.notify = handle_xdg_shell_surface_request_fullscreen;
+ wl_signal_add(&xdg_surface->toplevel->events.request_fullscreen, &xdg_shell_view->request_fullscreen);
+
+ xdg_surface->data = xdg_shell_view;
+ break;
+ case WLR_XDG_SURFACE_ROLE_POPUP:;
+ struct wlr_xdg_popup *popup = xdg_surface->popup;
+ struct cg_view *view = popup_get_view(popup);
+ if (view == NULL) {
+ return;
+ }
+
+ struct wlr_scene_tree *parent_scene_tree = NULL;
+ struct wlr_xdg_surface *parent = wlr_xdg_surface_from_wlr_surface(popup->parent);
+ switch (parent->role) {
+ case WLR_XDG_SURFACE_ROLE_TOPLEVEL:;
+ parent_scene_tree = view->scene_tree;
+ break;
+ case WLR_XDG_SURFACE_ROLE_POPUP:
+ parent_scene_tree = parent->data;
+ break;
+ case WLR_XDG_SURFACE_ROLE_NONE:
+ break;
+ }
+ if (parent_scene_tree == NULL) {
+ return;
+ }
- view_init(&xdg_shell_view->view, server, CAGE_XDG_SHELL_VIEW, &xdg_shell_view_impl);
- xdg_shell_view->xdg_surface = xdg_surface;
-
- xdg_shell_view->map.notify = handle_xdg_shell_surface_map;
- wl_signal_add(&xdg_surface->events.map, &xdg_shell_view->map);
- xdg_shell_view->unmap.notify = handle_xdg_shell_surface_unmap;
- wl_signal_add(&xdg_surface->events.unmap, &xdg_shell_view->unmap);
- xdg_shell_view->destroy.notify = handle_xdg_shell_surface_destroy;
- wl_signal_add(&xdg_surface->events.destroy, &xdg_shell_view->destroy);
- xdg_shell_view->request_fullscreen.notify = handle_xdg_shell_surface_request_fullscreen;
- wl_signal_add(&xdg_surface->toplevel->events.request_fullscreen, &xdg_shell_view->request_fullscreen);
- xdg_shell_view->new_popup.notify = handle_new_xdg_popup;
- wl_signal_add(&xdg_surface->events.new_popup, &xdg_shell_view->new_popup);
+ struct wlr_scene_tree *popup_scene_tree = wlr_scene_xdg_surface_create(parent_scene_tree, xdg_surface);
+ if (popup_scene_tree == NULL) {
+ wlr_log(WLR_ERROR, "Failed to allocate scene-graph node for XDG popup");
+ return;
+ }
+
+ popup_unconstrain(view, popup);
+
+ xdg_surface->data = popup_scene_tree;
+ break;
+ case WLR_XDG_SURFACE_ROLE_NONE:
+ assert(false); // unreachable
+ }
}
void
diff --git a/xdg_shell.h b/xdg_shell.h
index 45d87db..2fd506a 100644
--- a/xdg_shell.h
+++ b/xdg_shell.h
@@ -9,24 +9,12 @@
struct cg_xdg_shell_view {
struct cg_view view;
- struct wlr_xdg_surface *xdg_surface;
+ struct wlr_xdg_toplevel *xdg_toplevel;
struct wl_listener destroy;
struct wl_listener unmap;
struct wl_listener map;
- struct wl_listener commit;
struct wl_listener request_fullscreen;
- struct wl_listener new_popup;
-};
-
-struct cg_xdg_popup {
- struct cg_view_child view_child;
- struct wlr_xdg_popup *wlr_popup;
-
- struct wl_listener destroy;
- struct wl_listener map;
- struct wl_listener unmap;
- struct wl_listener new_popup;
};
struct cg_xdg_decoration {
diff --git a/xwayland.c b/xwayland.c
index 2aae0f9..ef37a49 100644
--- a/xwayland.c
+++ b/xwayland.c
@@ -9,7 +9,6 @@
#include <stdbool.h>
#include <stdlib.h>
#include <wayland-server-core.h>
-#include <wlr/types/wlr_box.h>
#include <wlr/util/log.h>
#include <wlr/xwayland.h>
@@ -96,18 +95,6 @@ destroy(struct cg_view *view)
free(xwayland_view);
}
-static void
-for_each_surface(struct cg_view *view, wlr_surface_iterator_func_t iterator, void *data)
-{
- wlr_surface_for_each_surface(view->wlr_surface, iterator, data);
-}
-
-static struct wlr_surface *
-wlr_surface_at(struct cg_view *view, double sx, double sy, double *sub_x, double *sub_y)
-{
- return wlr_surface_surface_at(view->wlr_surface, sx, sy, sub_x, sub_y);
-}
-
static void
handle_xwayland_surface_request_fullscreen(struct wl_listener *listener, void *data)
{
@@ -116,24 +103,12 @@ handle_xwayland_surface_request_fullscreen(struct wl_listener *listener, void *d
wlr_xwayland_surface_set_fullscreen(xwayland_view->xwayland_surface, xwayland_surface->fullscreen);
}
-static void
-handle_xwayland_surface_commit(struct wl_listener *listener, void *data)
-{
- struct cg_xwayland_view *xwayland_view = wl_container_of(listener, xwayland_view, commit);
- struct cg_view *view = &xwayland_view->view;
- view_damage_part(view);
-}
-
static void
handle_xwayland_surface_unmap(struct wl_listener *listener, void *data)
{
struct cg_xwayland_view *xwayland_view = wl_container_of(listener, xwayland_view, unmap);
struct cg_view *view = &xwayland_view->view;
- view_damage_whole(view);
-
- wl_list_remove(&xwayland_view->commit.link);
-
view_unmap(view);
}
@@ -148,12 +123,7 @@ handle_xwayland_surface_map(struct wl_listener *listener, void *data)
view->ly = xwayland_view->xwayland_surface->y;
}
- xwayland_view->commit.notify = handle_xwayland_surface_commit;
- wl_signal_add(&xwayland_view->xwayland_surface->surface->events.commit, &xwayland_view->commit);
-
view_map(view, xwayland_view->xwayland_surface->surface);
-
- view_damage_whole(view);
}
static void
@@ -179,10 +149,6 @@ static const struct cg_view_impl xwayland_view_impl = {
.activate = activate,
.maximize = maximize,
.destroy = destroy,
- .for_each_surface = for_each_surface,
- /* XWayland doesn't have a separate popup iterator. */
- .for_each_popup_surface = NULL,
- .wlr_surface_at = wlr_surface_at,
};
void
diff --git a/xwayland.h b/xwayland.h
index d257f57..31edb8f 100644
--- a/xwayland.h
+++ b/xwayland.h
@@ -12,7 +12,6 @@ struct cg_xwayland_view {
struct wl_listener destroy;
struct wl_listener unmap;
struct wl_listener map;
- struct wl_listener commit;
struct wl_listener request_fullscreen;
};

36
check-gvisor.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/sh
VERSION="$(echo $1 | jq -Rr @html)"
BINARY='runsc'
SHIM='containerd-shim-runsc-v1'
URL_BASE="https://storage.googleapis.com/gvisor/releases/release/"
URL="${URL_BASE}${VERSION}/$(uname -m)/"
URL_X64="${URL_BASE}${VERSION}/x86_64/"
URL_ARM="${URL_BASE}${VERSION}/aarch64/"
STATUS=$(curl -s -o /dev/null -I -w "%{http_code}" "${URL}${BINARY}")
EXIT=0
case $STATUS in
200)
echo "Release: ${VERSION}"
echo ""
echo "x86_64 sha512:"
echo "$(curl -s ${URL_X64}${BINARY}.sha512)"
echo "$(curl -s ${URL_X64}${SHIM}.sha512)"
echo ""
echo "aarch64 sha512:"
echo "$(curl -s ${URL_ARM}${BINARY}.sha512)"
echo "$(curl -s ${URL_ARM}${SHIM}.sha512)"
;;
404)
echo "Release ${VERSION} not found"
EXIT=1
;;
*)
echo "Error occured with status ${STATUS}"
EXIT=2
;;
esac
exit $EXIT

View file

@ -0,0 +1,37 @@
pkgbase = clonezilla-unstable
pkgdesc = ncurses partition and disk imaging/cloning program
pkgver = 5.6.19
pkgrel = 1
url = https://clonezilla.org
arch = any
license = GPL-2.0-or-later
depends = drbl
depends = partclone
depends = ntfs-3g
depends = partimage
depends = pigz
depends = sshfs
depends = parted
depends = gptfdisk
depends = dosfstools
depends = gzip
depends = bzip2
depends = pbzip2
depends = lbzip2
depends = lrzip
depends = xz
depends = pixz
depends = lzop
depends = ecryptfs-utils
depends = screen
depends = perl
depends = cifs-utils
provides = clonezilla
conflicts = clonezilla
backup = etc/drbl/drbl-ocs.conf
source = https://free.nchc.org.tw/drbl-core/src/unstable/clonezilla-5.6.19.tar.xz
source = usrbin.patch
sha512sums = 98b60f6d8ba9894e57b9e3e827c1d219a4a214b6105d2592a6f6767ce061627e0b0b6af75eaab022b1c98c7fb77df56d33bf952fd804fabee43ab570efd6d628
sha512sums = 39e63eaa18ffaed7fe9a2dde449c8b57d4a3dc313024213881bd620d0011671bb7f8a0346df7c247c2da94f8d82afb669057cb05dd9cefffafb680826544d6ac
pkgname = clonezilla-unstable

View file

@ -0,0 +1,32 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=clonezilla-unstable
_pkgname=clonezilla
pkgver=5.6.19
pkgrel=1
pkgdesc="ncurses partition and disk imaging/cloning program"
arch=('any')
url="https://clonezilla.org"
license=('GPL-2.0-or-later')
depends=('drbl' 'partclone' 'ntfs-3g' 'partimage' 'pigz' 'sshfs' 'parted'
'gptfdisk' 'dosfstools' 'gzip' 'bzip2' 'pbzip2' 'lbzip2' 'lrzip'
'xz' 'pixz' 'lzop' 'ecryptfs-utils' 'screen' 'perl' 'cifs-utils')
backup=('etc/drbl/drbl-ocs.conf')
conflicts=("${_pkgname}")
provides=("${_pkgname}")
source=("https://free.nchc.org.tw/drbl-core/src/unstable/${_pkgname}-${pkgver}.tar.xz"
'usrbin.patch')
sha512sums=('98b60f6d8ba9894e57b9e3e827c1d219a4a214b6105d2592a6f6767ce061627e0b0b6af75eaab022b1c98c7fb77df56d33bf952fd804fabee43ab570efd6d628'
'39e63eaa18ffaed7fe9a2dde449c8b57d4a3dc313024213881bd620d0011671bb7f8a0346df7c247c2da94f8d82afb669057cb05dd9cefffafb680826544d6ac')
prepare() {
cd "${_pkgname}-${pkgver}"
patch -Np0 -i "${srcdir}/usrbin.patch"
}
package() {
cd "${_pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
}

View file

@ -0,0 +1,13 @@
--- Makefile.orig 2013-05-30 17:42:49.851418658 +0100
+++ Makefile 2013-05-30 17:44:41.157482402 +0100
@@ -18,8 +18,8 @@
install:
# install exec files
- install -d ${DESTDIR}/usr/
- cp -a sbin bin ${DESTDIR}/usr/
+ install -d ${DESTDIR}/usr/bin
+ cp -a sbin/* bin/* ${DESTDIR}/usr/bin/
# install setup dir
install -d $(DESTDIR)/$(SHAREDIR)/

View file

@ -0,0 +1,33 @@
pkgbase = discord-electron-openasar
pkgdesc = Discord packaged with OpenAsar using system provided electron (v32) for increased security and performance
pkgver = 0.0.69+830
pkgrel = 1
url = https://discord.com
install = discord-electron-openasar.install
arch = x86_64
license = custom
makedepends = git
makedepends = asar
makedepends = nodejs
makedepends = curl
depends = electron32
depends = libxss
depends = unzip
optdepends = libpulse: Pulseaudio support
optdepends = libappindicator-gtk3: Systray indicator support
optdepends = xdg-utils: Open files
optdepends = python-pyelftools: Required for Krisp patcher
optdepends = python-capstone: Required for Krisp patcher
provides = discord
conflicts = discord
options = !strip
source = https://dl.discordapp.net/apps/linux/0.0.69/discord-0.0.69.tar.gz
source = discord-launcher.sh
source = krisp-patcher.py
source = git+https://github.com/goosemod/openasar.git#commit=f92ee8c3dc6b6ff9829f69a1339e0f82a877929c
sha512sums = b91cf295f7571ed0378f3759932e0144823ab0996ace1716169bb77fff0f8bdcb473b51c9eef7a1b93fc94d135cb7108441ec6a2fa7e718d0cd104670fac7d31
sha512sums = 4497ff3df7e2c1e72eea09d6f36a80cabeabfd43bb03b0966795d45e10a02ea6b4c10407661092d057435e0d69d75e958a3dbb1dc5971a215ce09547ec56f666
sha512sums = e5b4d549b29b41a71b2d871d69ef6c622bd1daefb52104165ca2f33e82a3ef02cd697bf48ff12d29895bec2da15b6fe603b0b3c93bf503b3169edf2e812038ff
sha512sums = 4befe9f30b7d11da966692242353becca3f86f7d5b3eb73c48b6f42073b88f7c8a21141d3f84ee2ff10f74a4596d1391f0b200134599a36c9589074bec298573
pkgname = discord-electron-openasar

View file

@ -0,0 +1,93 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=discord-electron-openasar
_pkgname=discord
pkgver=0.0.69+830
_pkgver=${pkgver%%+*}
pkgrel=1
_electronver=32
_electronname="electron${_electronver}"
pkgdesc="Discord packaged with OpenAsar using system provided electron (v${_electronver}) for increased security and performance"
arch=('x86_64')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
url='https://discord.com'
license=('custom')
options=('!strip')
install="$pkgname.install"
depends=("${_electronname}" 'libxss' 'unzip')
makedepends=('git' 'asar' 'nodejs' 'curl')
optdepends=(
'libpulse: Pulseaudio support'
'libappindicator-gtk3: Systray indicator support'
'xdg-utils: Open files'
'python-pyelftools: Required for Krisp patcher'
'python-capstone: Required for Krisp patcher'
)
source=("https://dl.discordapp.net/apps/linux/${_pkgver}/${_pkgname}-${_pkgver}.tar.gz"
'discord-launcher.sh'
'krisp-patcher.py' # original: https://github.com/sersorrel/sys/blob/main/hm/discord/krisp-patcher.py
"git+https://github.com/goosemod/openasar.git#commit=f92ee8c3dc6b6ff9829f69a1339e0f82a877929c")
sha512sums=('b91cf295f7571ed0378f3759932e0144823ab0996ace1716169bb77fff0f8bdcb473b51c9eef7a1b93fc94d135cb7108441ec6a2fa7e718d0cd104670fac7d31'
'4497ff3df7e2c1e72eea09d6f36a80cabeabfd43bb03b0966795d45e10a02ea6b4c10407661092d057435e0d69d75e958a3dbb1dc5971a215ce09547ec56f666'
'e5b4d549b29b41a71b2d871d69ef6c622bd1daefb52104165ca2f33e82a3ef02cd697bf48ff12d29895bec2da15b6fe603b0b3c93bf503b3169edf2e812038ff'
'4befe9f30b7d11da966692242353becca3f86f7d5b3eb73c48b6f42073b88f7c8a21141d3f84ee2ff10f74a4596d1391f0b200134599a36c9589074bec298573')
# just in case I get the version wrong
pkgver() {
cd "${srcdir}/openasar"
printf "%s+%s" "$_pkgver" "$(git rev-list --count HEAD)"
}
prepare() {
# prepare launcher script
sed -i -e "s|@PKGNAME@|${_pkgname}|g" \
-e "s|@PKGVER@|${_pkgver}|g" \
-e "s|@ELECTRON@|${_electronname}|g" \
discord-launcher.sh
# fix the .desktop file
sed -i -e "s|Exec=.*|Exec=/usr/bin/${_pkgname}|" ${_pkgname^}/$_pkgname.desktop
# create the license files
curl -o LICENSE.html https://discord.com/terms
curl -o OSS-LICENSES.html https://discord.com/licenses
}
build() {
cd "${srcdir}"/openasar
# pack openasar
sed -i -e "s|nightly|nightly-$(git rev-parse HEAD | cut -c 1-7)|" src/index.js
sed -i -e "/config.setup = true/a\ config.autoupdate = false;" src/config/index.js
sed -i -e "s|process.resourcesPath|'/usr/lib/${_pkgname}/resources'|" src/utils/buildInfo.js
sed -i -e "s|^Exec=\${exec}$|Exec=/usr/bin/${_pkgname}|" \
-e "s|^Name=\${basename(exec)}$|Name=${_pkgname^}|" src/autoStart.js
node scripts/strip.js
asar p src app.asar
}
package() {
# create necessary directories
install -d "${pkgdir}"/usr/lib/$_pkgname
# copy relevant data
cp -r ${_pkgname^}/resources "${pkgdir}"/usr/lib/$_pkgname/
# intall icon and desktop file
install -Dm 644 ${_pkgname^}/$_pkgname.png "${pkgdir}"/usr/share/pixmaps/$_pkgname.png
install -Dm 644 ${_pkgname^}/$_pkgname.desktop "${pkgdir}"/usr/share/applications/$_pkgname.desktop
# overwrite Discord asar
install -Dm 644 openasar/app.asar "${pkgdir}"/usr/lib/$_pkgname/resources/
# install the launch script
install -Dm 755 discord-launcher.sh "${pkgdir}"/usr/bin/$_pkgname
# install krisp patcher
install -Dm 644 krisp-patcher.py "${pkgdir}"/usr/lib/$_pkgname/
# install licenses
install -Dm 644 LICENSE.html "${pkgdir}"/usr/share/licenses/$_pkgname/LICENSE.html
install -Dm 644 OSS-LICENSES.html "${pkgdir}"/usr/share/licenses/$_pkgname/OSS-LICENSES.html
}

View file

@ -0,0 +1,43 @@
post_upgrade() {
# return if old package version is greater than or equal to 0.0.55+827-1...
(( $(vercmp $2 '0.0.55+827-1') >= 0 )) && return
cat <<EOF
==> Instead of using 'rizin' to patch Krisp support a patcher written in Python
is now used. Consider installing the necessary optional dependencies to use
this feature.
EOF
# return if old package version is greater than or equal to 0.0.39+824-2...
(( $(vercmp $2 '0.0.39+824-2') >= 0 )) && return
cat <<EOF
==> In order to patch Krisp noise suppression support set 'PATCH_KRISP=true'
in '~/.config/discord.conf' in addition to having 'rizin' installed.
EOF
# return if old package version is greater than or equal to 0.0.27+809-5...
(( $(vercmp $2 '0.0.27+809-5') >= 0 )) && return
cat <<EOF
==> The launch script will now patch Krisp noise suppression support
if 'rizin' is installed. Restart your Discord client after update
to apply the patch.
EOF
# return if old package version is greater than or equal to 0.0.27+809-2...
(( $(vercmp $2 '0.0.27+809-2') >= 0 )) && return
cat <<EOF
==> You can now set additional Electron flags in '~/.config/discord-flags.conf'.
EOF
}
post_install() {
cat <<EOF
==> For Krisp noise suppression support consider installing the necessary optional
dependencies and setting 'PATCH_KRISP=true' in '~/.config/discord.conf'.
Restart your Discord client afterwards to apply the patch.
==> Additional Electron flags can be set in '~/.config/discord-flags.conf'.
EOF
}

View file

@ -0,0 +1,41 @@
#!/usr/bin/env bash
set -euo pipefail
declare -a flags
declare -l PATCH_KRISP
[[ -r "${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@.conf" ]] && source "${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@.conf"
flags_file="${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@-flags.conf"
krisp_bin="${DISCORD_USER_DATA_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@}/@PKGVER@/modules/@PKGNAME@_krisp/@PKGNAME@_krisp.node"
if [[ "${PATCH_KRISP:-}" == true ]] && [[ -w "${krisp_bin}" ]]; then
if hash python &> /dev/null && python -c 'import capstone; import elftools' &> /dev/null; then
# Patch Krisp binary to ignore signature check
echo -n 'Running Krisp patcher... '
python /usr/lib/@PKGNAME@/krisp-patcher.py "${krisp_bin}"
fi
fi
if [[ -r "${flags_file}" ]]; then
# Replacing because old flag does not work
if [[ -w "${flags_file}" ]] && grep -q '\--ignore-gpu-blacklist' "${flags_file}"; then
sed -i 's|--ignore-gpu-blacklist|--ignore-gpu-blocklist|' "${flags_file}"
fi
mapfile -t < "${flags_file}"
fi
for line in "${MAPFILE[@]}"; do
if [[ ! "${line}" =~ ^[[:space:]]*#.* ]] && [[ -n "${line}" ]]; then
flags+=("${line}")
fi
done
unset flags_file krisp_bin
exec /usr/lib/@ELECTRON@/electron \
/usr/lib/@PKGNAME@/resources/app.asar \
--ozone-platform-hint=auto \
"${flags[@]}" "$@"

View file

@ -0,0 +1,85 @@
import sys
import shutil
from elftools.elf.elffile import ELFFile
from capstone import *
from capstone.x86 import *
if len(sys.argv) < 2:
print(f"Usage: {sys.argv[0]} [path to discord_krisp.node]")
# "Unix programs generally use 2 for command line syntax errors and 1 for all other kind of errors."
sys.exit(2)
executable = sys.argv[1]
elf = ELFFile(open(executable, "rb"))
symtab = elf.get_section_by_name('.symtab')
krisp_initialize_address = symtab.get_symbol_by_name("_ZN7discordL17DoKrispInitializeEv")[0].entry.st_value
isSignedByDiscord_address = symtab.get_symbol_by_name("_ZN7discord4util17IsSignedByDiscordERKNSt4__Cr12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE")[0].entry.st_value
text = elf.get_section_by_name('.text')
text_start = text['sh_addr']
text_start_file = text['sh_offset']
# This seems to always be zero (.text starts at the right offset in the file). Do it just in case?
address_to_file = text_start_file - text_start
# Done with the ELF now.
# elf.close()
krisp_initialize_offset = krisp_initialize_address - address_to_file
isSignedByDiscord_offset = krisp_initialize_address - address_to_file
f = open(executable, "rb")
f.seek(krisp_initialize_offset)
krisp_initialize = f.read(64)
f.close()
# States
found_issigned_by_discord_call = False
found_issigned_by_discord_test = False
found_issigned_by_discord_je = False
found_already_patched = False
je_location = None
je_size = 0
# We are looking for a call to IsSignedByDiscord, followed by a test, followed by a je.
# Then we replace the je with nops.
md = Cs(CS_ARCH_X86, CS_MODE_64)
md.detail = True
for i in md.disasm(krisp_initialize, krisp_initialize_address):
if i.id == X86_INS_CALL:
if i.operands[0].type == X86_OP_IMM:
if i.operands[0].imm == isSignedByDiscord_address:
found_issigned_by_discord_call = True
if i.id == X86_INS_TEST:
if found_issigned_by_discord_call:
found_issigned_by_discord_test = True
if i.id == X86_INS_JE:
if found_issigned_by_discord_test:
found_issigned_by_discord_je = True
je_location = i.address
je_size = len(i.bytes)
break
if i.id == X86_INS_NOP:
if found_issigned_by_discord_test:
found_already_patched = True
break
if je_location:
print(f"Found patch location: 0x{je_location:x}")
shutil.copyfile(executable, executable + ".orig")
f = open(executable, 'rb+')
f.seek(je_location - address_to_file)
f.write(b'\x90' * je_size) # je can be larger than 2 bytes given a large enough displacement :(
f.close()
else:
if found_already_patched:
print("Couldn't find patch location - already patched.")
else:
print("Couldn't find patch location - review manually. Sorry.")

View file

@ -0,0 +1,57 @@
#!/usr/bin/env bash
set -euo pipefail
readonly all_off="$(tput sgr0)"
readonly bold="${all_off}$(tput bold)"
readonly white="${bold}$(tput setaf 7)"
readonly blue="${bold}$(tput setaf 4)"
readonly red="${bold}$(tput setaf 1)"
msg() {
printf "${blue}::${white} $1${all_off}\n"
}
error() {
printf "${red}::${white} $1${all_off}\n"
}
msgbegin() {
printf "${blue}::${white} $1"
}
msgend() {
printf "$1${all_off}\n"
}
readonly krisp_zip='discord_krisp-1.zip'
readonly krisp_bin='discord_krisp.node'
# head to directory of this script
cd $(dirname "$0")
# update package to version used in PKGBUILD
source PKGBUILD
msg "Running updpkgsums (Updating checksums)"
updpkgsums
msg "Running mksrcinfo (Updating SRCINFO file)"
makepkg --printsrcinfo > .SRCINFO
msg "Getting Krisp module"
curl -O "https://dl.discordapp.net/apps/linux/${_pkgver:-${pkgver}}/modules/${krisp_zip}"
unzip "${krisp_zip}" "${krisp_bin}"
msg "Checking if Krisp module is patchable (watch output)"
python krisp-patcher.py "${krisp_bin}"
#msg "Updating Krisp module checksum"
#readonly chcksm=$(b2sum "${krisp_bin}.orig" | head -c 128)
#sed -i "s/^_krisp_b2sum='.*'$/_krisp_b2sum='${chcksm}'/" PKGBUILD
msgbegin "Cleaning up... "
rm -f "${krisp_zip}" "${krisp_bin}" "${krisp_bin}.orig"
msgend "Done"

28
discord-electron/.SRCINFO Normal file
View file

@ -0,0 +1,28 @@
pkgbase = discord-electron
pkgdesc = Discord using system provided electron (v32) for increased security and performance
pkgver = 0.0.69
pkgrel = 1
url = https://discord.com
install = discord-electron.install
arch = x86_64
license = custom
makedepends = asar
makedepends = curl
depends = electron32
depends = libxss
optdepends = libpulse: Pulseaudio support
optdepends = libappindicator-gtk3: Systray indicator support
optdepends = xdg-utils: Open files
optdepends = python-pyelftools: Required for Krisp patcher
optdepends = python-capstone: Required for Krisp patcher
provides = discord
conflicts = discord
options = !strip
source = https://dl.discordapp.net/apps/linux/0.0.69/discord-0.0.69.tar.gz
source = discord-launcher.sh
source = krisp-patcher.py
sha512sums = b91cf295f7571ed0378f3759932e0144823ab0996ace1716169bb77fff0f8bdcb473b51c9eef7a1b93fc94d135cb7108441ec6a2fa7e718d0cd104670fac7d31
sha512sums = 4497ff3df7e2c1e72eea09d6f36a80cabeabfd43bb03b0966795d45e10a02ea6b4c10407661092d057435e0d69d75e958a3dbb1dc5971a215ce09547ec56f666
sha512sums = e5b4d549b29b41a71b2d871d69ef6c622bd1daefb52104165ca2f33e82a3ef02cd697bf48ff12d29895bec2da15b6fe603b0b3c93bf503b3169edf2e812038ff
pkgname = discord-electron

83
discord-electron/PKGBUILD Normal file
View file

@ -0,0 +1,83 @@
pkgname=discord-electron
_pkgname=discord
pkgver=0.0.69
pkgrel=1
_electronver=32
_electronname="electron${_electronver}"
pkgdesc="Discord using system provided electron (v${_electronver}) for increased security and performance"
arch=('x86_64')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
url='https://discord.com'
license=('custom')
options=('!strip')
install="$pkgname.install"
depends=("${_electronname}" 'libxss')
makedepends=('asar' 'curl')
optdepends=(
'libpulse: Pulseaudio support'
'libappindicator-gtk3: Systray indicator support'
'xdg-utils: Open files'
'python-pyelftools: Required for Krisp patcher'
'python-capstone: Required for Krisp patcher'
)
source=("https://dl.discordapp.net/apps/linux/${pkgver}/${_pkgname}-${pkgver}.tar.gz"
'discord-launcher.sh'
'krisp-patcher.py') # original: https://github.com/sersorrel/sys/blob/main/hm/discord/krisp-patcher.py
sha512sums=('b91cf295f7571ed0378f3759932e0144823ab0996ace1716169bb77fff0f8bdcb473b51c9eef7a1b93fc94d135cb7108441ec6a2fa7e718d0cd104670fac7d31'
'4497ff3df7e2c1e72eea09d6f36a80cabeabfd43bb03b0966795d45e10a02ea6b4c10407661092d057435e0d69d75e958a3dbb1dc5971a215ce09547ec56f666'
'e5b4d549b29b41a71b2d871d69ef6c622bd1daefb52104165ca2f33e82a3ef02cd697bf48ff12d29895bec2da15b6fe603b0b3c93bf503b3169edf2e812038ff')
prepare() {
# prepare launcher script
sed -i -e "s|@PKGNAME@|${_pkgname}|g" \
-e "s|@PKGVER@|${pkgver}|g" \
-e "s|@ELECTRON@|${_electronname}|g" \
discord-launcher.sh
# fix the .desktop file
sed -i -e "s|Exec=.*|Exec=/usr/bin/${_pkgname}|" ${_pkgname^}/$_pkgname.desktop
# create the license files
curl -o LICENSE.html https://discord.com/terms
curl -o OSS-LICENSES.html https://discord.com/licenses
}
build() {
cd "${srcdir}"/${_pkgname^}
# use system electron
asar e resources/app.asar resources/app
rm resources/app.asar
sed -i -e "/resourcesPath = .*;$/d" -e "s|return resourcesPath|return '/usr/lib/${_pkgname}/resources'|" resources/app/common/paths.js
sed -i -e "s|process.resourcesPath|'/usr/lib/${_pkgname}/resources'|" resources/app/app_bootstrap/buildInfo.js
sed -i -e "/^const appName/d" -e "/^const exePath/d" -e "/^const exeDir/d" -e "/^const iconPath/d" \
-e "s|^Exec=\${exePath}$|Exec=/usr/bin/${_pkgname}|" \
-e "s|^Name=\${appName}$|Name=${_pkgname^}|" \
-e "s|^Icon=\${iconPath}$|Icon=/usr/share/pixmaps/${_pkgname}.png|" \
resources/app/app_bootstrap/autoStart/linux.js
asar p resources/app resources/app.asar
rm -rf resources/app
}
package() {
# create necessary directories
install -d "${pkgdir}"/usr/lib/$_pkgname
# copy relevant data
cp -r ${_pkgname^}/resources "${pkgdir}"/usr/lib/$_pkgname/
# intall icon and desktop file
install -Dm 644 ${_pkgname^}/$_pkgname.png "${pkgdir}"/usr/share/pixmaps/$_pkgname.png
install -Dm 644 ${_pkgname^}/$_pkgname.desktop "${pkgdir}"/usr/share/applications/$_pkgname.desktop
# install the launch script
install -Dm 755 discord-launcher.sh "${pkgdir}"/usr/bin/$_pkgname
# install krisp patcher
install -Dm 644 krisp-patcher.py "${pkgdir}"/usr/lib/$_pkgname/
# install licenses
install -Dm 644 LICENSE.html "${pkgdir}"/usr/share/licenses/$_pkgname/LICENSE.html
install -Dm 644 OSS-LICENSES.html "${pkgdir}"/usr/share/licenses/$_pkgname/OSS-LICENSES.html
}

View file

@ -0,0 +1,44 @@
post_upgrade() {
# return if old package version is greater than or equal to 0.0.55-1...
(( $(vercmp $2 '0.0.55-1') >= 0 )) && return
cat <<EOF
==> Instead of using 'rizin' to patch Krisp support a patcher written in Python
is now used. Consider installing the necessary optional dependencies to use
this feature.
EOF
# return if old package version is greater than or equal to 0.0.39-2...
(( $(vercmp $2 '0.0.39-2') >= 0 )) && return
cat <<EOF
==> In order to patch Krisp noise suppression support set 'PATCH_KRISP=true'
in '~/.config/discord.conf' in addition to having 'rizin' installed.
EOF
# return if old package version is greater than or equal to 0.0.27-5...
(( $(vercmp $2 '0.0.27-5') >= 0 )) && return
cat <<EOF
==> The launch script will now patch Krisp noise suppression support
if 'rizin' is installed. Restart your Discord client after update
to apply the patch.
EOF
# return if old package version is greater than or equal to 0.0.27-2...
(( $(vercmp $2 '0.0.27-2') >= 0 )) && return
cat <<EOF
==> You can now set additional Electron flags in '~/.config/discord-flags.conf'.
EOF
}
post_install() {
cat <<EOF
==> For Krisp noise suppression support consider installing the necessary optional
dependencies and setting 'PATCH_KRISP=true' in '~/.config/discord.conf'.
Restart your Discord client afterwards to apply the patch.
==> In case of performance problems consider setting additional flags
in '~/.config/discord-flags.conf'.
EOF
}

View file

@ -0,0 +1,41 @@
#!/usr/bin/env bash
set -euo pipefail
declare -a flags
declare -l PATCH_KRISP
[[ -r "${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@.conf" ]] && source "${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@.conf"
flags_file="${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@-flags.conf"
krisp_bin="${DISCORD_USER_DATA_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@}/@PKGVER@/modules/@PKGNAME@_krisp/@PKGNAME@_krisp.node"
if [[ "${PATCH_KRISP:-}" == true ]] && [[ -w "${krisp_bin}" ]]; then
if hash python &> /dev/null && python -c 'import capstone; import elftools' &> /dev/null; then
# Patch Krisp binary to ignore signature check
echo -n 'Running Krisp patcher... '
python /usr/lib/@PKGNAME@/krisp-patcher.py "${krisp_bin}"
fi
fi
if [[ -r "${flags_file}" ]]; then
# Replacing because old flag does not work
if [[ -w "${flags_file}" ]] && grep -q '\--ignore-gpu-blacklist' "${flags_file}"; then
sed -i 's|--ignore-gpu-blacklist|--ignore-gpu-blocklist|' "${flags_file}"
fi
mapfile -t < "${flags_file}"
fi
for line in "${MAPFILE[@]}"; do
if [[ ! "${line}" =~ ^[[:space:]]*#.* ]] && [[ -n "${line}" ]]; then
flags+=("${line}")
fi
done
unset flags_file krisp_bin
exec /usr/lib/@ELECTRON@/electron \
/usr/lib/@PKGNAME@/resources/app.asar \
--ozone-platform-hint=auto \
"${flags[@]}" "$@"

View file

@ -0,0 +1,85 @@
import sys
import shutil
from elftools.elf.elffile import ELFFile
from capstone import *
from capstone.x86 import *
if len(sys.argv) < 2:
print(f"Usage: {sys.argv[0]} [path to discord_krisp.node]")
# "Unix programs generally use 2 for command line syntax errors and 1 for all other kind of errors."
sys.exit(2)
executable = sys.argv[1]
elf = ELFFile(open(executable, "rb"))
symtab = elf.get_section_by_name('.symtab')
krisp_initialize_address = symtab.get_symbol_by_name("_ZN7discordL17DoKrispInitializeEv")[0].entry.st_value
isSignedByDiscord_address = symtab.get_symbol_by_name("_ZN7discord4util17IsSignedByDiscordERKNSt4__Cr12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE")[0].entry.st_value
text = elf.get_section_by_name('.text')
text_start = text['sh_addr']
text_start_file = text['sh_offset']
# This seems to always be zero (.text starts at the right offset in the file). Do it just in case?
address_to_file = text_start_file - text_start
# Done with the ELF now.
# elf.close()
krisp_initialize_offset = krisp_initialize_address - address_to_file
isSignedByDiscord_offset = krisp_initialize_address - address_to_file
f = open(executable, "rb")
f.seek(krisp_initialize_offset)
krisp_initialize = f.read(64)
f.close()
# States
found_issigned_by_discord_call = False
found_issigned_by_discord_test = False
found_issigned_by_discord_je = False
found_already_patched = False
je_location = None
je_size = 0
# We are looking for a call to IsSignedByDiscord, followed by a test, followed by a je.
# Then we replace the je with nops.
md = Cs(CS_ARCH_X86, CS_MODE_64)
md.detail = True
for i in md.disasm(krisp_initialize, krisp_initialize_address):
if i.id == X86_INS_CALL:
if i.operands[0].type == X86_OP_IMM:
if i.operands[0].imm == isSignedByDiscord_address:
found_issigned_by_discord_call = True
if i.id == X86_INS_TEST:
if found_issigned_by_discord_call:
found_issigned_by_discord_test = True
if i.id == X86_INS_JE:
if found_issigned_by_discord_test:
found_issigned_by_discord_je = True
je_location = i.address
je_size = len(i.bytes)
break
if i.id == X86_INS_NOP:
if found_issigned_by_discord_test:
found_already_patched = True
break
if je_location:
print(f"Found patch location: 0x{je_location:x}")
shutil.copyfile(executable, executable + ".orig")
f = open(executable, 'rb+')
f.seek(je_location - address_to_file)
f.write(b'\x90' * je_size) # je can be larger than 2 bytes given a large enough displacement :(
f.close()
else:
if found_already_patched:
print("Couldn't find patch location - already patched.")
else:
print("Couldn't find patch location - review manually. Sorry.")

View file

@ -0,0 +1,57 @@
#!/usr/bin/env bash
set -euo pipefail
readonly all_off="$(tput sgr0)"
readonly bold="${all_off}$(tput bold)"
readonly white="${bold}$(tput setaf 7)"
readonly blue="${bold}$(tput setaf 4)"
readonly red="${bold}$(tput setaf 1)"
msg() {
printf "${blue}::${white} $1${all_off}\n"
}
error() {
printf "${red}::${white} $1${all_off}\n"
}
msgbegin() {
printf "${blue}::${white} $1"
}
msgend() {
printf "$1${all_off}\n"
}
readonly krisp_zip='discord_krisp-1.zip'
readonly krisp_bin='discord_krisp.node'
# head to directory of this script
cd $(dirname "$0")
# update package to version used in PKGBUILD
source PKGBUILD
msg "Running updpkgsums (Updating checksums)"
updpkgsums
msg "Running mksrcinfo (Updating SRCINFO file)"
makepkg --printsrcinfo > .SRCINFO
msg "Getting Krisp module"
curl -O "https://dl.discordapp.net/apps/linux/${_pkgver:-${pkgver}}/modules/${krisp_zip}"
unzip "${krisp_zip}" "${krisp_bin}"
msg "Checking if Krisp module is patchable (watch output)"
python krisp-patcher.py "${krisp_bin}"
#msg "Updating Krisp module checksum"
#readonly chcksm=$(b2sum "${krisp_bin}.orig" | head -c 128)
#sed -i "s/^_krisp_b2sum='.*'$/_krisp_b2sum='${chcksm}'/" PKGBUILD
msgbegin "Cleaning up... "
rm -f "${krisp_zip}" "${krisp_bin}" "${krisp_bin}.orig"
msgend "Done"

19
ect/.SRCINFO Normal file
View file

@ -0,0 +1,19 @@
pkgbase = ect
pkgdesc = File compressor, supports postcompression of PNG, JPEG, GZIP and ZIP files
pkgver = 0.9.5
pkgrel = 2
url = https://github.com/fhanau/efficient-compression-tool
arch = x86_64
license = Apache-2.0
makedepends = nasm
makedepends = git
makedepends = cmake
depends = gcc-libs
source = git+https://github.com/fhanau/efficient-compression-tool.git#tag=v0.9.5
source = git+https://github.com/glennrp/libpng.git#commit=f135775ad4e5d4408d2e12ffcc71bb36e6b48551
source = git+https://github.com/fhanau/mozjpeg.git#commit=182457e3e26e1e078d5dbd09137cf04865be2e49
sha512sums = a1d0ad86aa8e6d720575daf7e833c3b787ac51595774b99b6fd4a8ece616150c2e2c174aa97a2bc0b89e16d6cd93ec0c0d657430c1a41bf08b121368af0a4abc
sha512sums = 13e286cf091b284d15888a959a8be5a90977bed92d861fd72d465199bd6112641b47d74a525d4100868d528a25921958e9ab579643b705befe48e5756ffa301f
sha512sums = 1bdd9efa8d9c49a16cf5f2135ed29dc120bc1b31eec7130802d22b3d09bf10fe337f734b39b38e422bbe6e1719aca6744d49e2b435c2cb94cbf401d89086947a
pkgname = ect

41
ect/PKGBUILD Normal file
View file

@ -0,0 +1,41 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
# Contributor: William J. Bowman <aur@williamjbowman.com>
pkgname=ect
_pkgname=efficient-compression-tool
pkgver=0.9.5
pkgrel=2
pkgdesc='File compressor, supports postcompression of PNG, JPEG, GZIP and ZIP files'
url="https://github.com/fhanau/$_pkgname"
arch=('x86_64')
license=('Apache-2.0')
depends=('gcc-libs')
makedepends=('nasm' 'git' 'cmake')
source=("git+$url.git#tag=v$pkgver"
'git+https://github.com/glennrp/libpng.git#commit=f135775ad4e5d4408d2e12ffcc71bb36e6b48551'
'git+https://github.com/fhanau/mozjpeg.git#commit=182457e3e26e1e078d5dbd09137cf04865be2e49')
sha512sums=('a1d0ad86aa8e6d720575daf7e833c3b787ac51595774b99b6fd4a8ece616150c2e2c174aa97a2bc0b89e16d6cd93ec0c0d657430c1a41bf08b121368af0a4abc'
'13e286cf091b284d15888a959a8be5a90977bed92d861fd72d465199bd6112641b47d74a525d4100868d528a25921958e9ab579643b705befe48e5756ffa301f'
'1bdd9efa8d9c49a16cf5f2135ed29dc120bc1b31eec7130802d22b3d09bf10fe337f734b39b38e422bbe6e1719aca6744d49e2b435c2cb94cbf401d89086947a')
prepare() {
cd "$_pkgname"
git submodule init
git config submodule.src/libpng.url "$srcdir"/libpng
git config submodule.src/mozjpeg.url "$srcdir"/mozjpeg
git -c protocol.file.allow=always submodule update
}
build() {
cmake -B build -S "$_pkgname"/src \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
# Some things expect this to be an all-caps name
ln -s ect "$pkgdir"/usr/bin/ECT
}

View file

@ -0,0 +1,29 @@
pkgbase = firefox-syncstorage
pkgdesc = Sync storage server with built-in token server for running a self-hosted firefox sync server
pkgver = 0.17.7
pkgrel = 1
url = https://github.com/mozilla-services/syncstorage-rs
install = firefox-syncstorage.install
arch = i686
arch = x86_64
arch = arm
arch = armv6h
arch = armv7h
arch = aarch64
license = MPL-2.0
makedepends = rust
makedepends = cmake
makedepends = pkgconf
makedepends = mariadb-libs
depends = openssl
depends = python-fxa
depends = python-tokenlib
optdepends = mysql: for use with a local database server
options = !lto
backup = etc/firefox-syncstorage.toml
source = https://github.com/mozilla-services/syncstorage-rs/archive/0.17.7/syncstorage-rs-0.17.7.tar.gz
source = firefox-syncstorage.service
sha512sums = ac70bf6dc0b298b709e1d9b920deee711cdeaf3ecddb234199eb93b8eb24c6f71ddafe4458fb69d5f03b3c0532ddca91a9105e76f02b3227f08d58e157726f7a
sha512sums = 4c5fbb99160613ba3fb0fedce97f04f63b92699fe79c6edd899d4ec5f297c5a98c0c211df3eb9a6579c12c57f4c63513747ed8944a60fc76e32f1e0c0f5e3a95
pkgname = firefox-syncstorage

View file

@ -0,0 +1,37 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: jewelux <jewelux.aur@prejo.de>
# Based off the firefox-syncstorage-git PKGBUILD from jewelux
pkgname=firefox-syncstorage
_pkgname=syncstorage-rs
pkgver=0.17.7
pkgrel=1
pkgdesc='Sync storage server with built-in token server for running a self-hosted firefox sync server'
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')
url="https://github.com/mozilla-services/${_pkgname}"
license=('MPL-2.0')
depends=('openssl' 'python-fxa' 'python-tokenlib')
makedepends=('rust' 'cmake' 'pkgconf' 'mariadb-libs')
optdepends=('mysql: for use with a local database server')
options=('!lto')
install="${pkgname}.install"
source=("https://github.com/mozilla-services/${_pkgname}/archive/${pkgver}/${_pkgname}-${pkgver}.tar.gz"
"${pkgname}.service")
sha512sums=('ac70bf6dc0b298b709e1d9b920deee711cdeaf3ecddb234199eb93b8eb24c6f71ddafe4458fb69d5f03b3c0532ddca91a9105e76f02b3227f08d58e157726f7a'
'4c5fbb99160613ba3fb0fedce97f04f63b92699fe79c6edd899d4ec5f297c5a98c0c211df3eb9a6579c12c57f4c63513747ed8944a60fc76e32f1e0c0f5e3a95')
backup=("etc/${pkgname}.toml")
build() {
cd "${_pkgname}-${pkgver}"
cargo build --release
}
package() {
cd "${_pkgname}-${pkgver}"
# Installing manually
install -Dm 755 target/release/syncserver "${pkgdir}"/usr/bin/"${pkgname}"
install -Dm 644 config/local.example.toml "${pkgdir}"/etc/"${pkgname}".toml
install -Dm 644 "${srcdir}/${pkgname}".service "${pkgdir}"/usr/lib/systemd/system/"${pkgname}".service
}

View file

@ -0,0 +1,11 @@
post_install() {
getent group syncstorage &>/dev/null || groupadd -r syncstorage >/dev/null
getent passwd syncstorage &>/dev/null || useradd -r -s /usr/bin/false \
-g syncstorage -G syncstorage syncstorage >/dev/null
}
pre_remove() {
getent passwd syncstorage &>/dev/null && userdel syncstorage >/dev/null
getent group syncstorage &>/dev/null && groupdel syncstorage >/dev/null
true
}

View file

@ -0,0 +1,24 @@
[Unit]
Description=Actix web server running Mozilla Firefox Sync Storage
Wants=mysql.service
After=network.target mysql.service
[Service]
ExecStart=/usr/bin/firefox-syncstorage --config=/etc/firefox-syncstorage.toml
Restart=on-abort
User=syncstorage
Group=syncstorage
UMask=007
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
PrivateDevices=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
[Install]
WantedBy=multi-user.target

19
florence/.SRCINFO Normal file
View file

@ -0,0 +1,19 @@
pkgbase = florence
pkgdesc = A configurable on-screen virtual keyboard
pkgver = 0.6.3
pkgrel = 3
url = http://sourceforge.net/projects/florence/
arch = i686
arch = x86_64
license = GPL-2.0-or-later
makedepends = intltool>=0.23
depends = gtk3
depends = libxml2
depends = librsvg
depends = libxtst
depends = gettext
depends = gstreamer>=1.0
source = http://sourceforge.net/projects/florence/files/florence/0.6.3/florence-0.6.3.tar.bz2
sha512sums = c527e8c40c9a594106420a6187945d79dfa7ddb4f628805cd188c8a37f79f42cbc1f74b80e21186f104a79c4d5e90c7a9d93cbe35bf1c6ebfe874db047fbef3c
pkgname = florence

36
florence/PKGBUILD Normal file
View file

@ -0,0 +1,36 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: UshakovVasilii <UshakovVasilii@yahoo.com>
# Contributor: Charon77 <evans.jahja@yahoo.com>
# Contributor: debdj <debd92@gmail.com>
pkgname=florence
pkgver=0.6.3
pkgrel=3
pkgdesc='A configurable on-screen virtual keyboard'
arch=('i686' 'x86_64')
url="http://sourceforge.net/projects/${pkgname}/"
license=('GPL-2.0-or-later')
depends=('gtk3' 'libxml2' 'librsvg' 'libxtst' 'gettext' 'gstreamer>=1.0') # http://florence.sourceforge.net/english/install.html
makedepends=('intltool>=0.23')
source=("http://sourceforge.net/projects/${pkgname}/files/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2")
sha512sums=('c527e8c40c9a594106420a6187945d79dfa7ddb4f628805cd188c8a37f79f42cbc1f74b80e21186f104a79c4d5e90c7a9d93cbe35bf1c6ebfe874db047fbef3c')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr \
--without-notification \
--without-at-spi \
--with-panelapplet \
--with-xtst \
--with-docs \
--disable-static \
--without-docs
make -j1
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make -j1 DESTDIR="${pkgdir}" install
}

21
gvisor-bin/.SRCINFO Normal file
View file

@ -0,0 +1,21 @@
pkgbase = gvisor-bin
pkgdesc = OCI container sandbox runtime focused on security, efficiency, and ease of use
pkgver = 20240916.0
pkgrel = 1
url = https://gvisor.dev
arch = x86_64
arch = aarch64
license = Apache-2.0
optdepends = docker: for Docker runtime support
provides = gvisor
conflicts = gvisor
source_x86_64 = runsc-x86_64-20240916.0::https://storage.googleapis.com/gvisor/releases/release/20240916.0/x86_64/runsc
source_x86_64 = containerd-shim-runsc-v1-x86_64-20240916.0::https://storage.googleapis.com/gvisor/releases/release/20240916.0/x86_64/containerd-shim-runsc-v1
sha512sums_x86_64 = d229a0df493c358182b827b2751ee0cdd46d9b486fa410639e5c18dc4de38f18e6fae823c2a868354929ffc494014406fe42543b6180b2859d07d7706a2ced6d
sha512sums_x86_64 = 59db8a4648abae2b55cab3e3653eb7a3bca187b72d241903b639209e8f21e96f3a9132b4d7ae5d048b2fa488fb331bdb6cb185c385eeedbebc674e0946e44330
source_aarch64 = runsc-aarch64-20240916.0::https://storage.googleapis.com/gvisor/releases/release/20240916.0/aarch64/runsc
source_aarch64 = containerd-shim-runsc-v1-aarch64-20240916.0::https://storage.googleapis.com/gvisor/releases/release/20240916.0/aarch64/containerd-shim-runsc-v1
sha512sums_aarch64 = 6931f8e09804c8042fc755c88b8957af3cf5c3ebf5cec3d3d9c11229bcaf4123ac10acb84e75dfaa22b25132e7a8c0c3fd25af4b1e255662907249ba1e42a284
sha512sums_aarch64 = a0c22cdb8dda985c82022503be3b69164bdc4d8a706f6819e969895bc9162e96ad88cb8e9531e88552843a0271964d03fc141ddcd4f3c765b344afdfe77330fb
pkgname = gvisor-bin

2
gvisor-bin/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/runsc-*
/containerd-shim-runsc-v1-*

36
gvisor-bin/PKGBUILD Normal file
View file

@ -0,0 +1,36 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Brad Erhart <tocusso underscore malty at aleeas dot com>
pkgname='gvisor-bin'
_pkgbin='runsc'
_pkgshim='containerd-shim-runsc-v1'
pkgver=20240916.0
pkgrel=1
pkgdesc='OCI container sandbox runtime focused on security, efficiency, and ease of use'
arch=('x86_64' 'aarch64')
url='https://gvisor.dev'
license=('Apache-2.0')
optdepends=('docker: for Docker runtime support')
provides=(
"${pkgname%-bin}"
)
conflicts=(
"${pkgname%-bin}"
)
source_x86_64=(
"$_pkgbin-x86_64-$pkgver::https://storage.googleapis.com/${pkgname%-bin}/releases/release/$pkgver/x86_64/$_pkgbin"
"$_pkgshim-x86_64-$pkgver::https://storage.googleapis.com/${pkgname%-bin}/releases/release/$pkgver/x86_64/$_pkgshim"
)
source_aarch64=(
"$_pkgbin-aarch64-$pkgver::https://storage.googleapis.com/${pkgname%-bin}/releases/release/$pkgver/aarch64/$_pkgbin"
"$_pkgshim-aarch64-$pkgver::https://storage.googleapis.com/${pkgname%-bin}/releases/release/$pkgver/aarch64/$_pkgshim"
)
sha512sums_x86_64=('d229a0df493c358182b827b2751ee0cdd46d9b486fa410639e5c18dc4de38f18e6fae823c2a868354929ffc494014406fe42543b6180b2859d07d7706a2ced6d'
'59db8a4648abae2b55cab3e3653eb7a3bca187b72d241903b639209e8f21e96f3a9132b4d7ae5d048b2fa488fb331bdb6cb185c385eeedbebc674e0946e44330')
sha512sums_aarch64=('6931f8e09804c8042fc755c88b8957af3cf5c3ebf5cec3d3d9c11229bcaf4123ac10acb84e75dfaa22b25132e7a8c0c3fd25af4b1e255662907249ba1e42a284'
'a0c22cdb8dda985c82022503be3b69164bdc4d8a706f6819e969895bc9162e96ad88cb8e9531e88552843a0271964d03fc141ddcd4f3c765b344afdfe77330fb')
package() {
install -Dm 755 "$_pkgbin-$CARCH-$pkgver" "$pkgdir/usr/bin/$_pkgbin"
install -Dm 755 "$_pkgshim-$CARCH-$pkgver" "$pkgdir/usr/bin/$_pkgshim"
}

17
gvisor-git/.SRCINFO Normal file
View file

@ -0,0 +1,17 @@
pkgbase = gvisor-git
pkgdesc = OCI container sandbox runtime focused on security, efficiency, and ease of use
pkgver = 20240916.0
pkgrel = 1
url = https://gvisor.dev
arch = x86_64
arch = aarch64
license = Apache-2.0
makedepends = git
makedepends = go
optdepends = docker: for Docker runtime support
provides = gvisor
conflicts = gvisor
source = git+https://github.com/google/gvisor#branch=go
sha512sums = SKIP
pkgname = gvisor-git

45
gvisor-git/PKGBUILD Normal file
View file

@ -0,0 +1,45 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Vincent Kobel (v@kobl.one)
pkgname='gvisor-git'
_pkgbin='runsc'
_pkgshim='containerd-shim-runsc-v1'
pkgver=20240916.0
pkgrel=1
pkgdesc='OCI container sandbox runtime focused on security, efficiency, and ease of use'
arch=('x86_64' 'aarch64')
url='https://gvisor.dev'
license=('Apache-2.0')
makedepends=('git' 'go')
optdepends=('docker: for Docker runtime support')
provides=(
"${pkgname%-git}"
)
conflicts=(
"${pkgname%-git}"
)
source=("git+https://github.com/google/${pkgname%-git}#branch=go")
sha512sums=('SKIP')
pkgver() {
cd "${pkgname%-git}"
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/release-//g;s/-/./g'
}
build() {
cd "${pkgname%-git}"
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOPATH="${srcdir}"
export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
go build -v -o "bin/$_pkgbin" -ldflags "-linkmode=external -compressdwarf=false -X gvisor.dev/gvisor/runsc/version.version=${pkgver}" gvisor.dev/gvisor/runsc
go build -v -o "bin/$_pkgshim" -ldflags "-linkmode=external -compressdwarf=false" gvisor.dev/gvisor/shim
}
package() {
cd "${pkgname%-git}"
install -Dm 755 "bin/$_pkgbin" "$pkgdir/usr/bin/$_pkgbin"
install -Dm 755 "bin/$_pkgshim" "$pkgdir/usr/bin/$_pkgshim"
}

View file

@ -0,0 +1,28 @@
pkgbase = lib32-amdvlk-2023q3.3
pkgdesc = AMD's standalone Vulkan driver for Pre-GFX10 GPUs (Vega, Polaris)
pkgver = 2023.Q3.3
pkgrel = 2
url = https://github.com/GPUOpen-Drivers
arch = x86_64
license = MIT
makedepends = perl-xml-xpath
makedepends = python
makedepends = lib32-wayland
makedepends = lib32-libxrandr
makedepends = xorg-server-devel
makedepends = cmake
makedepends = ninja
makedepends = git
depends = lib32-zstd
provides = lib32-amdvlk
provides = lib32-vulkan-driver
conflicts = lib32-amdvlk
options = !lto
source = https://github.com/GPUOpen-Drivers/AMDVLK/archive/v-2023.Q3.3.tar.gz
sha512sums = 19e799030daee33d516f1276e08cd598a8ea7f8341b3955bda31b8576459486dbd3401d33670bfabb1872341025716e9610a8e9c4072a07a206eac90bd0f6ace
pkgname = lib32-amdvlk-2023q3.3
depends = lib32-glibc
depends = lib32-gcc-libs
depends = lib32-zlib
depends = lib32-zstd

View file

@ -0,0 +1,72 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Laurent Carlier <lordheavym@gmail.com>
# Contributor: lod <aur@cyber-anlage.de>
pkgname=lib32-amdvlk-2023q3.3
_pkgname=lib32-amdvlk
pkgver=2023.Q3.3
pkgrel=2
pkgdesc="AMD's standalone Vulkan driver for Pre-GFX10 GPUs (Vega, Polaris)"
arch=('x86_64')
url="https://github.com/GPUOpen-Drivers"
license=('MIT')
provides=("${_pkgname}" 'lib32-vulkan-driver')
conflicts=("${_pkgname}")
depends=('lib32-zstd')
makedepends=('perl-xml-xpath' 'python' 'lib32-wayland' 'lib32-libxrandr' 'xorg-server-devel' 'cmake' 'ninja' 'git')
options=('!lto')
source=("https://github.com/GPUOpen-Drivers/AMDVLK/archive/v-${pkgver}.tar.gz")
sha512sums=('19e799030daee33d516f1276e08cd598a8ea7f8341b3955bda31b8576459486dbd3401d33670bfabb1872341025716e9610a8e9c4072a07a206eac90bd0f6ace')
prepare() {
local nrepos path name revision
nrepos=$(xpath -q -e //project AMDVLK-v-${pkgver}/default.xml | wc -l)
while (($nrepos>0))
do
path=$(xpath -q -e //project[$nrepos]/@path AMDVLK-v-${pkgver}/default.xml | sed 's/ path="drivers\/\(.*\)"/\1/g')
name=$(xpath -q -e //project[$nrepos]/@name AMDVLK-v-${pkgver}/default.xml | sed 's/ name="\(.*\)"/\1/g')
revision=$(xpath -q -e //project[$nrepos]/@revision AMDVLK-v-${pkgver}/default.xml | sed 's/ revision="\(.*\)"/\1/g')
git clone --recurse-submodules https://github.com/GPUOpen-Drivers/$name $path
pushd $path
git checkout $revision
git submodule update
popd
(( nrepos-- ))
done
}
build() {
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
cd ${srcdir}/xgl
cmake -H. -Bbuilds/Release \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS=-m32 \
-DCMAKE_CXX_FLAGS=-m32 \
-DLLVM_TARGET_ARCH:STRING=i686 \
-DLLVM_DEFAULT_TARGET_TRIPLE="i686-pc-linux-gnu" \
-DBUILD_WAYLAND_SUPPORT=On \
-DVKI_RAY_TRACING=Off \
-G Ninja
ninja -C builds/Release
}
package() {
depends=('lib32-glibc' 'lib32-gcc-libs' 'lib32-zlib' 'lib32-zstd')
install -m755 -d "${pkgdir}"/usr/lib32
install -m755 -d "${pkgdir}"/usr/share/vulkan/icd.d
install -m755 -d "${pkgdir}"/usr/share/vulkan/implicit_layer.d
install -m755 -d "${pkgdir}"/usr/share/licenses/${_pkgname}
install xgl/builds/Release/icd/amdvlk32.so "${pkgdir}"/usr/lib32/
install xgl/builds/Release/icd/amd_icd32.json "${pkgdir}"/usr/share/vulkan/icd.d/
install xgl/builds/Release/icd/amd_icd32.json "${pkgdir}"/usr/share/vulkan/implicit_layer.d/
install AMDVLK-v-${pkgver}/LICENSE.txt "${pkgdir}"/usr/share/licenses/${_pkgname}/
sed -i "s/\/lib/\/lib32/g" "${pkgdir}"/usr/share/vulkan/icd.d/amd_icd32.json
sed -i "s/\/lib/\/lib32/g" "${pkgdir}"/usr/share/vulkan/implicit_layer.d/amd_icd32.json
}

27
libqxt/.SRCINFO Normal file
View file

@ -0,0 +1,27 @@
pkgbase = libqxt
pkgdesc = Provides a suite of cross-platform utility classes to add functionality not readily available in the Qt toolkit
pkgver = 0.6.2
pkgrel = 5
url = http://www.libqxt.org
arch = i686
arch = x86_64
license = CPL-1.0 OR LGPL-2.1-only
makedepends = avahi
makedepends = libxrandr
depends = qt4
depends = openssl
depends = db
optdepends = avahi: Zeroconf support
options = !emptydirs
source = http://bitbucket.org/libqxt/libqxt/get/v0.6.2.tar.bz2
source = libqxt-linking.patch
source = libqxt-media-keys.patch
source = libqxt-header-fix.patch
source = libqxt-gcc6.patch
sha512sums = 13bc6d33694b43b07a1f40c27641389e21c5b172d75ee2f5cca1b818dc6c89e5f7d458cc6085b00079ae0b6dc63bca20fb2522125d293845e24612124e8d2592
sha512sums = 6694fdea69fb0a84f4e8fc48c004f75599689624ca3a2b4cb60dd30115c8a2e3cd4e54a5a4e105050888d390610671f2e6087603135ccee9b899d1df24e982b9
sha512sums = 35c5374d86f5a16a2e1bf002a4e02e2f33aa819db0ec568a73822daf5174a23b6496d96977ca319b0c3d2f312f2e31d75cd6b9983a87c8cd1b20520d20d504a3
sha512sums = 01497cccc20ae7c39209cdb37260267e756d8e7bb276685019001f4288bff900b2aed0dcfefd5e2afdf411258bec078c4c0803a99eb218ceb230eed5f54ce958
sha512sums = 0f508074218c50aa004896038b6834b98a7a9a5f790b21db673d5c71536f7598be86fae0c0b674dc428fb102d987bedd752c6f5689b8062b9581cb92615f48c0
pkgname = libqxt

50
libqxt/PKGBUILD Normal file
View file

@ -0,0 +1,50 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: (epsilom) Xavier Corredor <xavier.corredor.llano (a) gmail.com>
# Contributor: Roberto Alsina <ralsina@kde.org>
# Contributor: Tim Besard <tim.besard@gmail.com>
pkgname=libqxt
pkgver=0.6.2
pkgrel=5
_pkgsuffix=dadc327c2a6a
pkgdesc='Provides a suite of cross-platform utility classes to add functionality not readily available in the Qt toolkit'
arch=('i686' 'x86_64')
url='http://www.libqxt.org'
license=('CPL-1.0 OR LGPL-2.1-only')
depends=('qt4' 'openssl' 'db')
makedepends=('avahi' 'libxrandr')
optdepends=('avahi: Zeroconf support')
options=('!emptydirs')
source=("http://bitbucket.org/${pkgname}/${pkgname}/get/v${pkgver}.tar.bz2"
'libqxt-linking.patch'
'libqxt-media-keys.patch'
'libqxt-header-fix.patch'
'libqxt-gcc6.patch')
sha512sums=('13bc6d33694b43b07a1f40c27641389e21c5b172d75ee2f5cca1b818dc6c89e5f7d458cc6085b00079ae0b6dc63bca20fb2522125d293845e24612124e8d2592'
'6694fdea69fb0a84f4e8fc48c004f75599689624ca3a2b4cb60dd30115c8a2e3cd4e54a5a4e105050888d390610671f2e6087603135ccee9b899d1df24e982b9'
'35c5374d86f5a16a2e1bf002a4e02e2f33aa819db0ec568a73822daf5174a23b6496d96977ca319b0c3d2f312f2e31d75cd6b9983a87c8cd1b20520d20d504a3'
'01497cccc20ae7c39209cdb37260267e756d8e7bb276685019001f4288bff900b2aed0dcfefd5e2afdf411258bec078c4c0803a99eb218ceb230eed5f54ce958'
'0f508074218c50aa004896038b6834b98a7a9a5f790b21db673d5c71536f7598be86fae0c0b674dc428fb102d987bedd752c6f5689b8062b9581cb92615f48c0')
prepare() {
cd "${srcdir}/${pkgname}-${pkgname}-${_pkgsuffix}"
patch -p1 -i '../libqxt-linking.patch'
patch -p1 -i '../libqxt-media-keys.patch'
patch -p1 -i '../libqxt-header-fix.patch'
patch -p1 -i '../libqxt-gcc6.patch'
}
build() {
cd "${srcdir}/${pkgname}-${pkgname}-${_pkgsuffix}"
./configure -qmake-bin '/usr/bin/qmake-qt4' \
-prefix '/usr' \
-libdir '/usr/lib' \
-docdir '/usr/share/doc'
make
#make docs
}
package() {
cd "${srcdir}/${pkgname}-${pkgname}-${_pkgsuffix}"
make INSTALL_ROOT="${pkgdir}" install
}

11
libqxt/libqxt-gcc6.patch Normal file
View file

@ -0,0 +1,11 @@
--- a/src/core/qxtslotjob.cpp 2011-11-24 16:10:32.000000000 -0600
+++ b/src/core/qxtslotjob.cpp 2016-03-07 16:20:32.758268253 -0600
@@ -174,7 +174,7 @@ This uses QxtSignalWaiter so it will _no
QVariant QxtFuture::delayedResult(int msec)
{
- if (!waiter->wait(msec, false))
+ if (!waiter->wait(msec, NULL))
return QVariant();
return job->result();
}

View file

@ -0,0 +1,19 @@
diff -rupN libqxt.old/src/network/qxtnetwork.h libqxt/src/network/qxtnetwork.h
--- libqxt.old/src/network/qxtnetwork.h 2010-11-07 09:18:41.000000000 -0500
+++ libqxt/src/network/qxtnetwork.h 2011-08-25 19:18:47.000000000 -0400
@@ -26,13 +26,13 @@
#define QXTNETWORK_H_INCLUDED
#include "qxtjsonrpcclient.h"
-#include "qxtjsonrpcresponse.h"
+#include "qxtjsonrpccall.h"
#include "qxtmailmessage.h"
#include "qxtmailattachment.h"
#include "qxtsmtp.h"
#include "qxtrpcpeer.h"
#include "qxttcpconnectionmanager.h"
#include "qxtxmlrpcclient.h"
-#include "qxtxmlrpcresponse.h"
+#include "qxtxmlrpccall.h"
#endif // QXTNETWORK_H_INCLUDED

View file

@ -0,0 +1,8 @@
diff -rupN libqxt.old/config.tests/xrandr/xrandr.pro libqxt/config.tests/xrandr/xrandr.pro
--- libqxt.old/config.tests/xrandr/xrandr.pro 2010-11-07 09:18:41.000000000 -0500
+++ libqxt/config.tests/xrandr/xrandr.pro 2010-11-25 05:28:29.000000000 -0500
@@ -5,3 +5,4 @@ DEPENDPATH += .
INCLUDEPATH += .
SOURCES += main.cpp
!win32:LIBS+=-lXrandr
+LIBS+=-lX11

View file

@ -0,0 +1,407 @@
diff -rupN libqxt.old/src/gui/keymapper_x11.h libqxt/src/gui/keymapper_x11.h
--- libqxt.old/src/gui/keymapper_x11.h 1969-12-31 19:00:00.000000000 -0500
+++ libqxt/src/gui/keymapper_x11.h 2010-07-18 15:37:16.000000000 -0400
@@ -0,0 +1,364 @@
+#ifndef KEYMAPPER_X11_H
+#define KEYMAPPER_X11_H
+
+// (davidsansome) Nicked from qkeymapper_x11.cpp
+
+#include <Qt>
+
+#define XK_MISCELLANY
+#define XK_LATIN1
+#define XK_KOREAN
+#define XK_XKB_KEYS
+#include <X11/keysymdef.h>
+
+//
+// Keyboard event translation
+//
+
+#ifndef XK_ISO_Left_Tab
+#define XK_ISO_Left_Tab 0xFE20
+#endif
+
+#ifndef XK_dead_hook
+#define XK_dead_hook 0xFE61
+#endif
+
+#ifndef XK_dead_horn
+#define XK_dead_horn 0xFE62
+#endif
+
+#ifndef XK_Codeinput
+#define XK_Codeinput 0xFF37
+#endif
+
+#ifndef XK_Kanji_Bangou
+#define XK_Kanji_Bangou 0xFF37 /* same as codeinput */
+#endif
+
+// Fix old X libraries
+#ifndef XK_KP_Home
+#define XK_KP_Home 0xFF95
+#endif
+#ifndef XK_KP_Left
+#define XK_KP_Left 0xFF96
+#endif
+#ifndef XK_KP_Up
+#define XK_KP_Up 0xFF97
+#endif
+#ifndef XK_KP_Right
+#define XK_KP_Right 0xFF98
+#endif
+#ifndef XK_KP_Down
+#define XK_KP_Down 0xFF99
+#endif
+#ifndef XK_KP_Prior
+#define XK_KP_Prior 0xFF9A
+#endif
+#ifndef XK_KP_Next
+#define XK_KP_Next 0xFF9B
+#endif
+#ifndef XK_KP_End
+#define XK_KP_End 0xFF9C
+#endif
+#ifndef XK_KP_Insert
+#define XK_KP_Insert 0xFF9E
+#endif
+#ifndef XK_KP_Delete
+#define XK_KP_Delete 0xFF9F
+#endif
+
+// the next lines are taken from XFree > 4.0 (X11/XF86keysyms.h), defining some special
+// multimedia keys. They are included here as not every system has them.
+#define XF86XK_Standby 0x1008FF10
+#define XF86XK_AudioLowerVolume 0x1008FF11
+#define XF86XK_AudioMute 0x1008FF12
+#define XF86XK_AudioRaiseVolume 0x1008FF13
+#define XF86XK_AudioPlay 0x1008FF14
+#define XF86XK_AudioStop 0x1008FF15
+#define XF86XK_AudioPrev 0x1008FF16
+#define XF86XK_AudioNext 0x1008FF17
+#define XF86XK_HomePage 0x1008FF18
+#define XF86XK_Calculator 0x1008FF1D
+#define XF86XK_Mail 0x1008FF19
+#define XF86XK_Start 0x1008FF1A
+#define XF86XK_Search 0x1008FF1B
+#define XF86XK_AudioRecord 0x1008FF1C
+#define XF86XK_Back 0x1008FF26
+#define XF86XK_Forward 0x1008FF27
+#define XF86XK_Stop 0x1008FF28
+#define XF86XK_Refresh 0x1008FF29
+#define XF86XK_Favorites 0x1008FF30
+#define XF86XK_AudioPause 0x1008FF31
+#define XF86XK_AudioMedia 0x1008FF32
+#define XF86XK_MyComputer 0x1008FF33
+#define XF86XK_OpenURL 0x1008FF38
+#define XF86XK_Launch0 0x1008FF40
+#define XF86XK_Launch1 0x1008FF41
+#define XF86XK_Launch2 0x1008FF42
+#define XF86XK_Launch3 0x1008FF43
+#define XF86XK_Launch4 0x1008FF44
+#define XF86XK_Launch5 0x1008FF45
+#define XF86XK_Launch6 0x1008FF46
+#define XF86XK_Launch7 0x1008FF47
+#define XF86XK_Launch8 0x1008FF48
+#define XF86XK_Launch9 0x1008FF49
+#define XF86XK_LaunchA 0x1008FF4A
+#define XF86XK_LaunchB 0x1008FF4B
+#define XF86XK_LaunchC 0x1008FF4C
+#define XF86XK_LaunchD 0x1008FF4D
+#define XF86XK_LaunchE 0x1008FF4E
+#define XF86XK_LaunchF 0x1008FF4F
+// end of XF86keysyms.h
+
+// Special keys used by Qtopia, mapped into the X11 private keypad range.
+#define QTOPIAXK_Select 0x11000601
+#define QTOPIAXK_Yes 0x11000602
+#define QTOPIAXK_No 0x11000603
+#define QTOPIAXK_Cancel 0x11000604
+#define QTOPIAXK_Printer 0x11000605
+#define QTOPIAXK_Execute 0x11000606
+#define QTOPIAXK_Sleep 0x11000607
+#define QTOPIAXK_Play 0x11000608
+#define QTOPIAXK_Zoom 0x11000609
+#define QTOPIAXK_Context1 0x1100060A
+#define QTOPIAXK_Context2 0x1100060B
+#define QTOPIAXK_Context3 0x1100060C
+#define QTOPIAXK_Context4 0x1100060D
+#define QTOPIAXK_Call 0x1100060E
+#define QTOPIAXK_Hangup 0x1100060F
+#define QTOPIAXK_Flip 0x11000610
+
+// keyboard mapping table
+static const unsigned int KeyTbl[] = {
+
+ // misc keys
+
+ XK_Escape, Qt::Key_Escape,
+ XK_Tab, Qt::Key_Tab,
+ XK_ISO_Left_Tab, Qt::Key_Backtab,
+ XK_BackSpace, Qt::Key_Backspace,
+ XK_Return, Qt::Key_Return,
+ XK_Insert, Qt::Key_Insert,
+ XK_Delete, Qt::Key_Delete,
+ XK_Clear, Qt::Key_Delete,
+ XK_Pause, Qt::Key_Pause,
+ XK_Print, Qt::Key_Print,
+ 0x1005FF60, Qt::Key_SysReq, // hardcoded Sun SysReq
+ 0x1007ff00, Qt::Key_SysReq, // hardcoded X386 SysReq
+
+ // cursor movement
+
+ XK_Home, Qt::Key_Home,
+ XK_End, Qt::Key_End,
+ XK_Left, Qt::Key_Left,
+ XK_Up, Qt::Key_Up,
+ XK_Right, Qt::Key_Right,
+ XK_Down, Qt::Key_Down,
+ XK_Prior, Qt::Key_PageUp,
+ XK_Next, Qt::Key_PageDown,
+
+ // modifiers
+
+ XK_Shift_L, Qt::Key_Shift,
+ XK_Shift_R, Qt::Key_Shift,
+ XK_Shift_Lock, Qt::Key_Shift,
+ XK_Control_L, Qt::Key_Control,
+ XK_Control_R, Qt::Key_Control,
+ XK_Meta_L, Qt::Key_Meta,
+ XK_Meta_R, Qt::Key_Meta,
+ XK_Alt_L, Qt::Key_Alt,
+ XK_Alt_R, Qt::Key_Alt,
+ XK_Caps_Lock, Qt::Key_CapsLock,
+ XK_Num_Lock, Qt::Key_NumLock,
+ XK_Scroll_Lock, Qt::Key_ScrollLock,
+ XK_Super_L, Qt::Key_Super_L,
+ XK_Super_R, Qt::Key_Super_R,
+ XK_Menu, Qt::Key_Menu,
+ XK_Hyper_L, Qt::Key_Hyper_L,
+ XK_Hyper_R, Qt::Key_Hyper_R,
+ XK_Help, Qt::Key_Help,
+ 0x1000FF74, Qt::Key_Backtab, // hardcoded HP backtab
+ 0x1005FF10, Qt::Key_F11, // hardcoded Sun F36 (labeled F11)
+ 0x1005FF11, Qt::Key_F12, // hardcoded Sun F37 (labeled F12)
+
+ // numeric and function keypad keys
+
+ XK_KP_Space, Qt::Key_Space,
+ XK_KP_Tab, Qt::Key_Tab,
+ XK_KP_Enter, Qt::Key_Enter,
+ //XK_KP_F1, Qt::Key_F1,
+ //XK_KP_F2, Qt::Key_F2,
+ //XK_KP_F3, Qt::Key_F3,
+ //XK_KP_F4, Qt::Key_F4,
+ XK_KP_Home, Qt::Key_Home,
+ XK_KP_Left, Qt::Key_Left,
+ XK_KP_Up, Qt::Key_Up,
+ XK_KP_Right, Qt::Key_Right,
+ XK_KP_Down, Qt::Key_Down,
+ XK_KP_Prior, Qt::Key_PageUp,
+ XK_KP_Next, Qt::Key_PageDown,
+ XK_KP_End, Qt::Key_End,
+ XK_KP_Begin, Qt::Key_Clear,
+ XK_KP_Insert, Qt::Key_Insert,
+ XK_KP_Delete, Qt::Key_Delete,
+ XK_KP_Equal, Qt::Key_Equal,
+ XK_KP_Multiply, Qt::Key_Asterisk,
+ XK_KP_Add, Qt::Key_Plus,
+ XK_KP_Separator, Qt::Key_Comma,
+ XK_KP_Subtract, Qt::Key_Minus,
+ XK_KP_Decimal, Qt::Key_Period,
+ XK_KP_Divide, Qt::Key_Slash,
+
+ // International input method support keys
+
+ // International & multi-key character composition
+ XK_ISO_Level3_Shift, Qt::Key_AltGr,
+ XK_Multi_key, Qt::Key_Multi_key,
+ XK_Codeinput, Qt::Key_Codeinput,
+ XK_SingleCandidate, Qt::Key_SingleCandidate,
+ XK_MultipleCandidate, Qt::Key_MultipleCandidate,
+ XK_PreviousCandidate, Qt::Key_PreviousCandidate,
+
+ // Misc Functions
+ XK_Mode_switch, Qt::Key_Mode_switch,
+ XK_script_switch, Qt::Key_Mode_switch,
+
+ // Japanese keyboard support
+ XK_Kanji, Qt::Key_Kanji,
+ XK_Muhenkan, Qt::Key_Muhenkan,
+ //XK_Henkan_Mode, Qt::Key_Henkan_Mode,
+ XK_Henkan_Mode, Qt::Key_Henkan,
+ XK_Henkan, Qt::Key_Henkan,
+ XK_Romaji, Qt::Key_Romaji,
+ XK_Hiragana, Qt::Key_Hiragana,
+ XK_Katakana, Qt::Key_Katakana,
+ XK_Hiragana_Katakana, Qt::Key_Hiragana_Katakana,
+ XK_Zenkaku, Qt::Key_Zenkaku,
+ XK_Hankaku, Qt::Key_Hankaku,
+ XK_Zenkaku_Hankaku, Qt::Key_Zenkaku_Hankaku,
+ XK_Touroku, Qt::Key_Touroku,
+ XK_Massyo, Qt::Key_Massyo,
+ XK_Kana_Lock, Qt::Key_Kana_Lock,
+ XK_Kana_Shift, Qt::Key_Kana_Shift,
+ XK_Eisu_Shift, Qt::Key_Eisu_Shift,
+ XK_Eisu_toggle, Qt::Key_Eisu_toggle,
+ //XK_Kanji_Bangou, Qt::Key_Kanji_Bangou,
+ //XK_Zen_Koho, Qt::Key_Zen_Koho,
+ //XK_Mae_Koho, Qt::Key_Mae_Koho,
+ XK_Kanji_Bangou, Qt::Key_Codeinput,
+ XK_Zen_Koho, Qt::Key_MultipleCandidate,
+ XK_Mae_Koho, Qt::Key_PreviousCandidate,
+
+#ifdef XK_KOREAN
+ // Korean keyboard support
+ XK_Hangul, Qt::Key_Hangul,
+ XK_Hangul_Start, Qt::Key_Hangul_Start,
+ XK_Hangul_End, Qt::Key_Hangul_End,
+ XK_Hangul_Hanja, Qt::Key_Hangul_Hanja,
+ XK_Hangul_Jamo, Qt::Key_Hangul_Jamo,
+ XK_Hangul_Romaja, Qt::Key_Hangul_Romaja,
+ //XK_Hangul_Codeinput, Qt::Key_Hangul_Codeinput,
+ XK_Hangul_Codeinput, Qt::Key_Codeinput,
+ XK_Hangul_Jeonja, Qt::Key_Hangul_Jeonja,
+ XK_Hangul_Banja, Qt::Key_Hangul_Banja,
+ XK_Hangul_PreHanja, Qt::Key_Hangul_PreHanja,
+ XK_Hangul_PostHanja, Qt::Key_Hangul_PostHanja,
+ //XK_Hangul_SingleCandidate,Qt::Key_Hangul_SingleCandidate,
+ //XK_Hangul_MultipleCandidate,Qt::Key_Hangul_MultipleCandidate,
+ //XK_Hangul_PreviousCandidate,Qt::Key_Hangul_PreviousCandidate,
+ XK_Hangul_SingleCandidate, Qt::Key_SingleCandidate,
+ XK_Hangul_MultipleCandidate,Qt::Key_MultipleCandidate,
+ XK_Hangul_PreviousCandidate,Qt::Key_PreviousCandidate,
+ XK_Hangul_Special, Qt::Key_Hangul_Special,
+ //XK_Hangul_switch, Qt::Key_Hangul_switch,
+ XK_Hangul_switch, Qt::Key_Mode_switch,
+#endif // XK_KOREAN
+
+ // dead keys
+ XK_dead_grave, Qt::Key_Dead_Grave,
+ XK_dead_acute, Qt::Key_Dead_Acute,
+ XK_dead_circumflex, Qt::Key_Dead_Circumflex,
+ XK_dead_tilde, Qt::Key_Dead_Tilde,
+ XK_dead_macron, Qt::Key_Dead_Macron,
+ XK_dead_breve, Qt::Key_Dead_Breve,
+ XK_dead_abovedot, Qt::Key_Dead_Abovedot,
+ XK_dead_diaeresis, Qt::Key_Dead_Diaeresis,
+ XK_dead_abovering, Qt::Key_Dead_Abovering,
+ XK_dead_doubleacute, Qt::Key_Dead_Doubleacute,
+ XK_dead_caron, Qt::Key_Dead_Caron,
+ XK_dead_cedilla, Qt::Key_Dead_Cedilla,
+ XK_dead_ogonek, Qt::Key_Dead_Ogonek,
+ XK_dead_iota, Qt::Key_Dead_Iota,
+ XK_dead_voiced_sound, Qt::Key_Dead_Voiced_Sound,
+ XK_dead_semivoiced_sound, Qt::Key_Dead_Semivoiced_Sound,
+ XK_dead_belowdot, Qt::Key_Dead_Belowdot,
+ XK_dead_hook, Qt::Key_Dead_Hook,
+ XK_dead_horn, Qt::Key_Dead_Horn,
+
+ // Special multimedia keys
+ // currently only tested with MS internet keyboard
+
+ // browsing keys
+ XF86XK_Back, Qt::Key_Back,
+ XF86XK_Forward, Qt::Key_Forward,
+ XF86XK_Stop, Qt::Key_Stop,
+ XF86XK_Refresh, Qt::Key_Refresh,
+ XF86XK_Favorites, Qt::Key_Favorites,
+ XF86XK_AudioMedia, Qt::Key_LaunchMedia,
+ XF86XK_OpenURL, Qt::Key_OpenUrl,
+ XF86XK_HomePage, Qt::Key_HomePage,
+ XF86XK_Search, Qt::Key_Search,
+
+ // media keys
+ XF86XK_AudioLowerVolume, Qt::Key_VolumeDown,
+ XF86XK_AudioMute, Qt::Key_VolumeMute,
+ XF86XK_AudioRaiseVolume, Qt::Key_VolumeUp,
+ XF86XK_AudioPlay, Qt::Key_MediaPlay,
+ XF86XK_AudioStop, Qt::Key_MediaStop,
+ XF86XK_AudioPrev, Qt::Key_MediaPrevious,
+ XF86XK_AudioNext, Qt::Key_MediaNext,
+ XF86XK_AudioRecord, Qt::Key_MediaRecord,
+
+ // launch keys
+ XF86XK_Mail, Qt::Key_LaunchMail,
+ XF86XK_MyComputer, Qt::Key_Launch0,
+ XF86XK_Calculator, Qt::Key_Launch1,
+ XF86XK_Standby, Qt::Key_Standby,
+
+ XF86XK_Launch0, Qt::Key_Launch2,
+ XF86XK_Launch1, Qt::Key_Launch3,
+ XF86XK_Launch2, Qt::Key_Launch4,
+ XF86XK_Launch3, Qt::Key_Launch5,
+ XF86XK_Launch4, Qt::Key_Launch6,
+ XF86XK_Launch5, Qt::Key_Launch7,
+ XF86XK_Launch6, Qt::Key_Launch8,
+ XF86XK_Launch7, Qt::Key_Launch9,
+ XF86XK_Launch8, Qt::Key_LaunchA,
+ XF86XK_Launch9, Qt::Key_LaunchB,
+ XF86XK_LaunchA, Qt::Key_LaunchC,
+ XF86XK_LaunchB, Qt::Key_LaunchD,
+ XF86XK_LaunchC, Qt::Key_LaunchE,
+ XF86XK_LaunchD, Qt::Key_LaunchF,
+
+ // Qtopia keys
+ QTOPIAXK_Select, Qt::Key_Select,
+ QTOPIAXK_Yes, Qt::Key_Yes,
+ QTOPIAXK_No, Qt::Key_No,
+ QTOPIAXK_Cancel, Qt::Key_Cancel,
+ QTOPIAXK_Printer, Qt::Key_Printer,
+ QTOPIAXK_Execute, Qt::Key_Execute,
+ QTOPIAXK_Sleep, Qt::Key_Sleep,
+ QTOPIAXK_Play, Qt::Key_Play,
+ QTOPIAXK_Zoom, Qt::Key_Zoom,
+ QTOPIAXK_Context1, Qt::Key_Context1,
+ QTOPIAXK_Context2, Qt::Key_Context2,
+ QTOPIAXK_Context3, Qt::Key_Context3,
+ QTOPIAXK_Context4, Qt::Key_Context4,
+ QTOPIAXK_Call, Qt::Key_Call,
+ QTOPIAXK_Hangup, Qt::Key_Hangup,
+ QTOPIAXK_Flip, Qt::Key_Flip,
+
+ 0, 0
+};
+
+#endif // KEYMAPPER_X11_H
diff -rupN libqxt.old/src/gui/qxtglobalshortcut_x11.cpp libqxt/src/gui/qxtglobalshortcut_x11.cpp
--- libqxt.old/src/gui/qxtglobalshortcut_x11.cpp 2010-07-18 15:32:53.000000000 -0400
+++ libqxt/src/gui/qxtglobalshortcut_x11.cpp 2010-07-18 15:41:25.000000000 -0400
@@ -26,6 +26,8 @@
#include <QX11Info>
#include <X11/Xlib.h>
+#include "keymapper_x11.h"
+
static int (*original_x_errhandler)(Display* display, XErrorEvent* event);
static int qxt_x_errhandler(Display* display, XErrorEvent *event)
@@ -83,8 +85,25 @@ quint32 QxtGlobalShortcutPrivate::native
quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key)
{
+ // (davidsansome) Try the table from QKeyMapper first - this seems to be
+ // the only way to get Keysyms for the media keys.
+ unsigned int keysym = 0;
+ int i = 0;
+ while (KeyTbl[i]) {
+ if (KeyTbl[i+1] == static_cast<uint>(key)) {
+ keysym = KeyTbl[i];
+ break;
+ }
+ i += 2;
+ }
+
+ // If that didn't work then fall back on XStringToKeysym
+ if (!keysym) {
+ keysym = XStringToKeysym(QKeySequence(key).toString().toLatin1().data());
+ }
+
Display* display = QX11Info::display();
- return XKeysymToKeycode(display, XStringToKeysym(QKeySequence(key).toString().toLatin1().data()));
+ return XKeysymToKeycode(display, keysym);
}
bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods)

17
linpack/.SRCINFO Normal file
View file

@ -0,0 +1,17 @@
pkgbase = linpack
pkgdesc = Benchmark that measures a system's floating-point rate of execution by solving dense linear equations
pkgver = 2024.2.0
pkgrel = 1
url = https://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download
arch = x86_64
license = LicenseRef-Intel-SmpL-2022
options = !strip
backup = etc/linpack.conf
source = https://downloadmirror.intel.com/825890/l_onemklbench_p_2024.2.0_527.tgz
source = linpack.conf
source = linpack_runme_xeon64
sha512sums = 589be7ea199e362ad9eb6ef6deb7d3fc2d751417515b475fb64682f602c84d39f2dd26477869092a9499a919223ab9e7e15eaa7a2e4593b8bd47526a6d1bec89
sha512sums = 69b049a3a1c0b674e471bc61e1f88f729db1dd454eb0bfc9adde7c3a4876bb396a91f57f19d5e1add906ee4282068d8cd0fa5f1a59bf8a96784846a3c9f63ab1
sha512sums = 3e880d4e0af8154ac1d591177e08ceda28f5ff5fbf698e47f99de8621e37137ecf26024048bd0ee81fc7af73ca8ae0deeb0a309325970a701ac5f13b571bdb60
pkgname = linpack

31
linpack/PKGBUILD Normal file
View file

@ -0,0 +1,31 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: graysky <graysky AT archlinux dot us>
pkgname='linpack'
_pkgver=2024.2.0_527
_pkgid=825890
pkgver=${_pkgver%%_*}
_math_kernel_lib=${pkgver%%.0}
pkgrel=1
pkgdesc="Benchmark that measures a system's floating-point rate of execution by solving dense linear equations"
arch=('x86_64')
url='https://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download'
license=('LicenseRef-Intel-SmpL-2022')
backup=('etc/linpack.conf')
options=('!strip')
source=("https://downloadmirror.intel.com/${_pkgid}/l_onemklbench_p_${_pkgver}.tgz"
'linpack.conf'
'linpack_runme_xeon64')
sha512sums=('589be7ea199e362ad9eb6ef6deb7d3fc2d751417515b475fb64682f602c84d39f2dd26477869092a9499a919223ab9e7e15eaa7a2e4593b8bd47526a6d1bec89'
'69b049a3a1c0b674e471bc61e1f88f729db1dd454eb0bfc9adde7c3a4876bb396a91f57f19d5e1add906ee4282068d8cd0fa5f1a59bf8a96784846a3c9f63ab1'
'3e880d4e0af8154ac1d591177e08ceda28f5ff5fbf698e47f99de8621e37137ecf26024048bd0ee81fc7af73ca8ae0deeb0a309325970a701ac5f13b571bdb60')
package() {
local _base="${srcdir}/benchmarks_${_math_kernel_lib}"
local _test="${_base}/linux/share/mkl/benchmarks/linpack"
install -Dm755 linpack_runme_xeon64 "${pkgdir}/usr/bin/linpack_runme_xeon64"
install -Dm644 linpack.conf "${pkgdir}/usr/share/${pkgname}/linpack.conf"
install -Dm644 "${_base}/license.txt" "${pkgdir}/usr/share/licenses/linpack/license.txt"
install -Dm755 "${_test}/xlinpack_xeon64" "${pkgdir}/usr/bin/xlinpack_xeon64"
}

22
linpack/linpack.conf Normal file
View file

@ -0,0 +1,22 @@
Sample Intel(R) LINPACK data file
Intel(R) LINPACK data
1 # number of tests
12600 # problem sizes
12600 # leading dimensions
100 # times to run a test
4 # alignment values (in KBytes)
# Change the problem sizes and leading dimensions to suite your FREE physical memory
#
# Memory use = 8 x (problem size)^2
# or
# Problem size = sqrt (memory use / 8)
#
# Consider the following as a conservative guide
# For 1 GB use a problem size and leading dimensions of 6300
# For 2 GB use a problem size and leading dimensions of 12600
# For 4 GB use a problem size and leading dimensions of 18900
# For 8 GB use a problem size and leading dimensions of 25200
# For 16 GB use a problem size and leading dimensions of 31500
# For 32 GB use a problem size and leading dimensions of 37800
# For 64 GB use a problem size and leading dimensions of 44100

View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
#
export KMP_AFFINITY=nowarnings,compact
SKEL_CONFIG="/usr/share/linpack"
CONFIG="$SKEL_CONFIG/linpack.conf"
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
[[ -f "$SKEL_CONFIG/linpack.conf" ]] || {
echo "ERROR: Missing $SKEL_CONFIG/linpack.conf - reinstall this package." ; exit 1 ; }
[[ -d $XDG_CONFIG_HOME ]] || mkdir $XDG_CONFIG_HOME
[[ -f "$XDG_CONFIG_HOME/linpack.conf" ]] || cp "$CONFIG" "$XDG_CONFIG_HOME"
echo -e "Edit \E[31m$XDG_CONFIG_HOME/linpack.conf\E[37m to adjust the amount of physical memory to consume."
echo
echo -e "Starting calculation.... hit ctrl+c to stop."
echo -e "Consult \E[31m~/lin_xeon64.txt\E[37m for results as they are caculated."
date
date >> ~/lin_xeon64.txt
/usr/bin/xlinpack_xeon64 $XDG_CONFIG_HOME/linpack.conf >> ~/lin_xeon64.txt
date >> ~/lin_xeon64.txt
echo -n "Done: "
date

174
makepkg.conf Normal file
View file

@ -0,0 +1,174 @@
#!/hint/bash
# shellcheck disable=2034
#
# /etc/makepkg.conf
#
#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')
# Other common tools:
# /usr/bin/snarf
# /usr/bin/lftpget -c
# /usr/bin/wget
#-- The package required by makepkg to download VCS sources
# Format: 'protocol::package'
VCSCLIENTS=('bzr::breezy'
'fossil::fossil'
'git::git'
'hg::mercurial'
'svn::subversion')
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu"
#-- Compiler and Linker Flags
#CPPFLAGS=""
CFLAGS="-march=x86-64-v3 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mpclmul"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now \
-Wl,-z,pack-relative-relocs"
LTOFLAGS="-flto=auto -falign-functions=32"
RUSTFLAGS="-Copt-level=3 -Ctarget-cpu=x86-64-v3 -Clink-arg=-z -Clink-arg=pack-relative-relocs -Ccodegen-units=1"
#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-j $(nproc)"
#-- Debugging flags
DEBUG_CFLAGS="-g"
DEBUG_CXXFLAGS="$DEBUG_CFLAGS"
DEBUG_RUSTFLAGS="-C debuginfo=2"
#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- distcc: Use the Distributed C/C++/ObjC compiler
#-- color: Colorize output messages
#-- ccache: Use ccache to cache compilation
#-- check: Run the check() function if present in the PKGBUILD
#-- sign: Generate PGP signature file
#
BUILDENV=(!distcc color !ccache check !sign)
#
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
#DISTCC_HOSTS=""
#
#-- Specify a directory for package building.
#BUILDDIR=/tmp/makepkg
#########################################################################
# GLOBAL PACKAGE OPTIONS
# These are default values for the options=() settings
#########################################################################
#
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto !autodeps)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
#-- docs: Save doc directories specified by DOC_DIRS
#-- libtool: Leave libtool (.la) files in packages
#-- staticlibs: Leave static library (.a) files in packages
#-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- debug: Add debugging flags as specified in DEBUG_* variables
#-- lto: Add compile flags for building with link time optimization
#-- autodeps: Automatically add depends/provides
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge debug lto)
#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(sha256)
#-- Options to be used when stripping binaries. See `man strip' for details.
STRIP_BINARIES="--strip-all"
#-- Options to be used when stripping shared libraries. See `man strip' for details.
STRIP_SHARED="--strip-unneeded"
#-- Options to be used when stripping static libraries. See `man strip' for details.
STRIP_STATIC="--strip-debug"
#-- Manual (man and info) directories to compress (if zipman is specified)
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
#-- Doc directories to remove (if !docs is specified)
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
#-- Files to be removed from all packages (if purge is specified)
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#-- Directory to store source code in for debug packages
DBGSRCDIR="/usr/src/debug"
#-- Prefix and directories for library autodeps
LIB_DIRS=('lib:usr/lib' 'lib32:usr/lib32')
#########################################################################
# PACKAGE OUTPUT
#########################################################################
#
# Default: put built package and cached source in build directory
#
#-- Destination: specify a fixed directory where all packages will be placed
#PKGDEST=/home/packages
#-- Source cache: specify a fixed directory where source files will be cached
#SRCDEST=/home/sources
#-- Source packages: specify a fixed directory where all src packages will be placed
#SRCPKGDEST=/home/srcpackages
#-- Log files: specify a fixed directory where all log files will be placed
#LOGDEST=/home/makepkglogs
#-- Packager: name/email of the person or organization building packages
PACKAGER="Manuel Hüsers <aur@huesers.de>"
#-- Specify a key to use for package signing
#GPGKEY=""
#########################################################################
# COMPRESSION DEFAULTS
#########################################################################
#
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z -)
COMPRESSZST=(zstd -c -T0 -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f)
COMPRESSLZ4=(lz4 -q)
COMPRESSLZ=(lzip -c -f)
#########################################################################
# EXTENSION DEFAULTS
#########################################################################
#
PKGEXT='.pkg.tar.zst'
SRCEXT='.src.tar.gz'
#########################################################################
# OTHER
#########################################################################
#
#-- Command used to run pacman as root, instead of trying sudo and su
#PACMAN_AUTH=()
# vim: set ft=sh ts=2 sw=2 et:
export KCPPFLAGS=" -march=x86-64-v3 -O3"
export FFLAGS=$CFLAGS
export KCFLAGS=" -march=x86-64-v3 -O3"
export FCFLAGS=$CFLAGS
export GOAMD64=v3
export CARGO_PROFILE_RELEASE_LTO=fat

View file

@ -0,0 +1,16 @@
pkgbase = nginx-mod-form-input
pkgdesc = Nginx module that reads HTTP POST and PUT request body encoded in "application/x-www-form-urlencoded", and parse the arguments in request body into nginx variables.
pkgver = 0.12
pkgrel = 1
url = https://github.com/calio/form-input-nginx-module
arch = x86_64
license = BSD-2-Clause
makedepends = nginx-src
depends = nginx
depends = nginx-mod-ndk
source = https://github.com/vision5/ngx_devel_kit/archive/v0.3.1/ngx_devel_kit-0.3.1.tar.gz
source = https://github.com/calio/form-input-nginx-module/archive/v0.12/form-input-0.12.tar.gz
sha512sums = de1e3349d8dd08e5982279b2219dc8a8006739f0409b8e0f5c50d93434beff1fbafba43e9c5ac85a5fab90afc5c0a7244a340610339c36f82f2cba7233e72de9
sha512sums = 1c5c5ab74156cac09da44a2dcdd84f7c03c9919a23a847e63613e00e3781ecd73d5ad12446174b4fdef9d064257a31570a8dbcccc00d8266f7048e3dcde0362e
pkgname = nginx-mod-form-input

View file

@ -0,0 +1,42 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Manuel Hüsers <aur@huesers.de>
pkgname=nginx-mod-form-input
pkgver=0.12
pkgrel=1
_modname="${pkgname#nginx-mod-}"
_ndkver='0.3.1'
pkgdesc='Nginx module that reads HTTP POST and PUT request body encoded in "application/x-www-form-urlencoded", and parse the arguments in request body into nginx variables.'
arch=('x86_64')
depends=('nginx' 'nginx-mod-ndk')
makedepends=('nginx-src')
url="https://github.com/calio/$_modname-nginx-module"
license=('BSD-2-Clause')
source=(
https://github.com/vision5/ngx_devel_kit/archive/v$_ndkver/ngx_devel_kit-$_ndkver.tar.gz
https://github.com/calio/$_modname-nginx-module/archive/v$pkgver/$_modname-$pkgver.tar.gz
)
sha512sums=('de1e3349d8dd08e5982279b2219dc8a8006739f0409b8e0f5c50d93434beff1fbafba43e9c5ac85a5fab90afc5c0a7244a340610339c36f82f2cba7233e72de9'
'1c5c5ab74156cac09da44a2dcdd84f7c03c9919a23a847e63613e00e3781ecd73d5ad12446174b4fdef9d064257a31570a8dbcccc00d8266f7048e3dcde0362e')
build() {
cp -r /usr/src/nginx .
cd "$srcdir"/nginx
./configure --with-compat \
--add-module=../ngx_devel_kit-$_ndkver \
--add-dynamic-module=../$_modname-nginx-module-$pkgver
make modules
}
package() {
cd "$srcdir"/nginx/objs
for mod in *.so; do
install -Dm755 $mod "$pkgdir"/usr/lib/nginx/modules/$mod
done
install -Dm644 "$srcdir"/$_modname-nginx-module-$pkgver/README.md \
"$pkgdir"/usr/share/licenses/$pkgname/README.md
}

View file

@ -0,0 +1,19 @@
pkgbase = nginx-mod-traffic-accounting
pkgdesc = Monitor the incoming and outgoing traffic metrics in realtime for NGINX
pkgver = 2.0+18+g46aae3e
pkgrel = 1
url = https://github.com/Lax/traffic-accounting-nginx-module
arch = x86_64
license = BSD-2-Clause
makedepends = nginx-src
depends = nginx
source = https://github.com/Lax/traffic-accounting-nginx-module/archive/v2.0/traffic-accounting-nginx-module-2.0.tar.gz
source = d53a4a6.patch
source = server_addr.patch
source = succ_collect.patch
sha512sums = 0df34c3765e18dc5cc5a053d3a17dbee17a686a1f6e76ad057c262741c4e4465c66bcef86e627a19258f836cad5f14745bf046fd396b00960ad79ed20c2a07bb
sha512sums = c99fea97563bcb9463d5f4ef1880fe336ed8a675d964687cf3d70fdc50e8d2b2b7d83efbe3fe8ba35945cfaa83a17a6b9b432dc5daa5fc3228efff568ac6ff44
sha512sums = 8624b4201e390465ceb0274c8e6241ed9075c9d600661c52ad2d77078f92b19fd011d8fe9878a4453519db465d644f430439eabb438ab7810d126955ee814910
sha512sums = 1d0993d1f3f00f3682d6717192f95836bbf0f1d113e1fdf8b1437dd3f2ec250e36a687ed6238cc17019a829ce6d59baea7bda79bab154b5cba5b088452b0aec8
pkgname = nginx-mod-traffic-accounting

View file

@ -0,0 +1,53 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=nginx-mod-traffic-accounting
pkgver=2.0+18+g46aae3e
pkgrel=1
_modname="traffic-accounting-nginx-module"
pkgdesc='Monitor the incoming and outgoing traffic metrics in realtime for NGINX'
arch=('x86_64')
makedepends=('nginx-src')
depends=('nginx')
url="https://github.com/Lax/${_modname}"
license=('BSD-2-Clause')
source=(
"https://github.com/Lax/${_modname}/archive/v${pkgver%%+*}/${_modname}-${pkgver%%+*}.tar.gz"
"d53a4a6.patch"
"server_addr.patch"
"succ_collect.patch"
)
sha512sums=('0df34c3765e18dc5cc5a053d3a17dbee17a686a1f6e76ad057c262741c4e4465c66bcef86e627a19258f836cad5f14745bf046fd396b00960ad79ed20c2a07bb'
'c99fea97563bcb9463d5f4ef1880fe336ed8a675d964687cf3d70fdc50e8d2b2b7d83efbe3fe8ba35945cfaa83a17a6b9b432dc5daa5fc3228efff568ac6ff44'
'8624b4201e390465ceb0274c8e6241ed9075c9d600661c52ad2d77078f92b19fd011d8fe9878a4453519db465d644f430439eabb438ab7810d126955ee814910'
'1d0993d1f3f00f3682d6717192f95836bbf0f1d113e1fdf8b1437dd3f2ec250e36a687ed6238cc17019a829ce6d59baea7bda79bab154b5cba5b088452b0aec8')
prepare() {
mkdir -p build
cd build
ln -sf /usr/src/nginx/auto
ln -sf /usr/src/nginx/src
cd "../${_modname}-${pkgver%%+*}"
patch -Np1 -i '../d53a4a6.patch'
patch -Np1 -i '../server_addr.patch'
patch -Np1 -i '../succ_collect.patch'
}
build() {
cd build
/usr/src/nginx/configure --with-compat --with-stream --add-dynamic-module="../${_modname}-${pkgver%%+*}"
make modules
}
package() {
install -Dm644 "$srcdir"/"${_modname}-${pkgver%%+*}"/LICENSE \
"$pkgdir"/usr/share/licenses/$pkgname/LICENSE
cd build/objs
for mod in ngx_*.so; do
install -Dm755 $mod "$pkgdir"/usr/lib/nginx/modules/$mod
done
}

View file

@ -0,0 +1,235 @@
diff --git a/src/http/ngx_http_accounting_module.c b/src/http/ngx_http_accounting_module.c
index 63eccf0..23a5fc3 100644
--- a/src/http/ngx_http_accounting_module.c
+++ b/src/http/ngx_http_accounting_module.c
@@ -139,7 +139,7 @@ ngx_http_accounting_process_init(ngx_cycle_t *cycle)
}
if (amcf->current == NULL) {
- if (ngx_traffic_accounting_period_create(cycle->pool, amcf) != NGX_OK)
+ if (ngx_traffic_accounting_period_create(amcf) != NGX_OK)
return NGX_ERROR;
}
@@ -206,7 +206,7 @@ worker_process_alarm_handler(ngx_event_t *ev)
amcf = ngx_http_cycle_get_module_main_conf(ngx_cycle, ngx_http_accounting_module);
- ngx_traffic_accounting_period_rotate(amcf->current->pool, amcf);
+ ngx_traffic_accounting_period_rotate(amcf);
ngx_traffic_accounting_period_rbtree_iterate(amcf->previous,
worker_process_export_metrics,
amcf->previous->created_at,
@@ -243,10 +243,10 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
amcf = ngx_http_get_module_main_conf(r, ngx_http_accounting_module);
- metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id);
+ metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id, amcf->log);
if (metrics == NULL) { return NGX_ERROR; }
- if (ngx_traffic_accounting_metrics_init(metrics, amcf->current->pool, ngx_http_statuses_len) == NGX_ERROR)
+ if (ngx_traffic_accounting_metrics_init(metrics, ngx_http_statuses_len, amcf->log) == NGX_ERROR)
return NGX_ERROR;
amcf->current->updated_at = ngx_timeofday();
diff --git a/src/ngx_traffic_accounting.h b/src/ngx_traffic_accounting.h
index 1812927..462becf 100644
--- a/src/ngx_traffic_accounting.h
+++ b/src/ngx_traffic_accounting.h
@@ -38,21 +38,19 @@ typedef struct {
ngx_rbtree_t rbtree;
ngx_rbtree_node_t sentinel;
- ngx_pool_t *pool;
-
ngx_time_t *created_at;
ngx_time_t *updated_at;
} ngx_traffic_accounting_period_t;
-ngx_int_t ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, ngx_pool_t *pool, size_t len);
+ngx_int_t ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, size_t len, ngx_log_t *log);
ngx_int_t ngx_traffic_accounting_period_init(ngx_traffic_accounting_period_t *period);
-void ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
+void ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log);
void ngx_traffic_accounting_period_insert_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics);
void ngx_traffic_accounting_period_delete(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
void ngx_traffic_accounting_period_delete_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics);
ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_lookup_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
-ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
+ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log);
typedef ngx_int_t (*ngx_traffic_accounting_period_iterate_func)(void *val, void *para1, void *para2);
diff --git a/src/ngx_traffic_accounting_module.c b/src/ngx_traffic_accounting_module.c
index ebc877a..2291db7 100644
--- a/src/ngx_traffic_accounting_module.c
+++ b/src/ngx_traffic_accounting_module.c
@@ -9,15 +9,14 @@
ngx_int_t
-ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf)
+ngx_traffic_accounting_period_create(ngx_traffic_accounting_main_conf_t *amcf)
{
ngx_traffic_accounting_period_t *period;
- period = ngx_pcalloc(pool, sizeof(ngx_traffic_accounting_period_t));
+ period = ngx_calloc(sizeof(ngx_traffic_accounting_period_t), amcf->log);
if (period == NULL)
return NGX_ERROR;
- period->pool = pool;
ngx_traffic_accounting_period_init(period);
period->created_at = ngx_timeofday();
@@ -28,11 +27,11 @@ ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_ma
}
ngx_int_t
-ngx_traffic_accounting_period_rotate(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf)
+ngx_traffic_accounting_period_rotate(ngx_traffic_accounting_main_conf_t *amcf)
{
- ngx_pfree(pool, amcf->previous);
+ ngx_free(amcf->previous);
amcf->previous = amcf->current;
- return ngx_traffic_accounting_period_create(pool, amcf);
+ return ngx_traffic_accounting_period_create(amcf);
}
diff --git a/src/ngx_traffic_accounting_module.h b/src/ngx_traffic_accounting_module.h
index 08881f1..adfccec 100644
--- a/src/ngx_traffic_accounting_module.h
+++ b/src/ngx_traffic_accounting_module.h
@@ -46,8 +46,8 @@ ngx_str_t * ngx_traffic_accounting_get_accounting_id(void *entry, ngx_get_loc_co
ngx_get_indexed_variable_pt get_indexed_variable);
-ngx_int_t ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf);
-ngx_int_t ngx_traffic_accounting_period_rotate(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf);
+ngx_int_t ngx_traffic_accounting_period_create(ngx_traffic_accounting_main_conf_t *amcf);
+ngx_int_t ngx_traffic_accounting_period_rotate(ngx_traffic_accounting_main_conf_t *amcf);
#endif /* _NGX_TRAFFIC_ACCOUNTING_MODULE_H_INCLUDED_ */
diff --git a/src/ngx_traffic_accounting_period_metrics.c b/src/ngx_traffic_accounting_period_metrics.c
index b6b7055..7376ad9 100644
--- a/src/ngx_traffic_accounting_period_metrics.c
+++ b/src/ngx_traffic_accounting_period_metrics.c
@@ -10,17 +10,17 @@
static void ngx_traffic_accounting_period_insert_value(ngx_rbtree_node_t *temp, ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel);
ngx_int_t
-ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, ngx_pool_t *pool, size_t len)
+ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, size_t len, ngx_log_t *log)
{
if (metrics->nr_status == NULL) {
- metrics->nr_status = ngx_pcalloc(pool, sizeof(ngx_uint_t) * len);
+ metrics->nr_status = ngx_calloc(sizeof(ngx_uint_t) * len, log);
if (metrics->nr_status == NULL)
return NGX_ERROR;
}
if (metrics->nr_upstream_status == NULL) {
- metrics->nr_upstream_status = ngx_pcalloc(pool, sizeof(ngx_uint_t) * len);
+ metrics->nr_upstream_status = ngx_calloc(sizeof(ngx_uint_t) * len, log);
if (metrics->nr_upstream_status == NULL)
return NGX_ERROR;
@@ -39,14 +39,14 @@ ngx_traffic_accounting_period_init(ngx_traffic_accounting_period_t *period)
}
void
-ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name)
+ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log)
{
ngx_traffic_accounting_metrics_t *metrics;
- metrics = ngx_pcalloc(period->pool, sizeof(ngx_traffic_accounting_metrics_t));
+ metrics = ngx_calloc(sizeof(ngx_traffic_accounting_metrics_t), log);
void *data;
- data = ngx_pcalloc(period->pool, name->len+1);
+ data = ngx_calloc(name->len+1, log);
ngx_memcpy(data, name->data, name->len);
metrics->name.data = data;
@@ -82,7 +82,7 @@ void
ngx_traffic_accounting_period_delete_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics)
{
ngx_rbtree_delete(&period->rbtree, &metrics->rbnode);
- ngx_pfree(period->pool, metrics);
+ ngx_free(metrics);
}
ngx_traffic_accounting_metrics_t *
@@ -124,7 +124,7 @@ ngx_traffic_accounting_period_lookup_metrics(ngx_traffic_accounting_period_t *pe
}
ngx_traffic_accounting_metrics_t *
-ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name)
+ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log)
{
ngx_traffic_accounting_metrics_t *n;
@@ -132,7 +132,7 @@ ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *per
if (n != NULL)
return n;
- ngx_traffic_accounting_period_insert(period, name);
+ ngx_traffic_accounting_period_insert(period, name, log);
return ngx_traffic_accounting_period_lookup_metrics(period, name);
}
@@ -158,9 +158,10 @@ ngx_traffic_accounting_period_rbtree_iterate(ngx_traffic_accounting_period_t *pe
if (rc == NGX_DONE) {
/* NGX_DONE -> destroy node */
ngx_rbtree_delete(rbtree, node);
- ngx_pfree(period->pool, n->nr_status);
- ngx_pfree(period->pool, n->nr_upstream_status);
- ngx_pfree(period->pool, n);
+ ngx_free(n->nr_status);
+ ngx_free(n->nr_upstream_status);
+ ngx_free(n->name.data);
+ ngx_free(n);
goto done;
}
diff --git a/src/stream/ngx_stream_accounting_module.c b/src/stream/ngx_stream_accounting_module.c
index b1839d1..3db787d 100644
--- a/src/stream/ngx_stream_accounting_module.c
+++ b/src/stream/ngx_stream_accounting_module.c
@@ -136,7 +136,7 @@ ngx_stream_accounting_process_init(ngx_cycle_t *cycle)
}
if (amcf->current == NULL) {
- if (ngx_traffic_accounting_period_create(cycle->pool, amcf) != NGX_OK)
+ if (ngx_traffic_accounting_period_create(amcf) != NGX_OK)
return NGX_ERROR;
}
@@ -203,7 +203,7 @@ worker_process_alarm_handler(ngx_event_t *ev)
amcf = ngx_stream_cycle_get_module_main_conf(ngx_cycle, ngx_stream_accounting_module);
- ngx_traffic_accounting_period_rotate(amcf->current->pool, amcf);
+ ngx_traffic_accounting_period_rotate(amcf);
ngx_traffic_accounting_period_rbtree_iterate(amcf->previous,
worker_process_export_metrics,
amcf->previous->created_at,
@@ -240,10 +240,10 @@ ngx_stream_accounting_session_handler(ngx_stream_session_t *s)
amcf = ngx_stream_get_module_main_conf(s, ngx_stream_accounting_module);
- metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id);
+ metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id, amcf->log);
if (metrics == NULL) { return NGX_ERROR; }
- if (ngx_traffic_accounting_metrics_init(metrics, amcf->current->pool, ngx_stream_statuses_len) == NGX_ERROR)
+ if (ngx_traffic_accounting_metrics_init(metrics, ngx_stream_statuses_len, amcf->log) == NGX_ERROR)
return NGX_ERROR;
amcf->current->updated_at = ngx_timeofday();

View file

@ -0,0 +1,80 @@
diff --git a/src/http/ngx_http_accounting_module.c b/src/http/ngx_http_accounting_module.c
index 23a5fc3..ecc62d2 100644
--- a/src/http/ngx_http_accounting_module.c
+++ b/src/http/ngx_http_accounting_module.c
@@ -237,7 +237,6 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
ngx_time_t *tp = ngx_timeofday();
ngx_msec_int_t ms = 0;
ngx_http_upstream_state_t *state;
-
accounting_id = ngx_http_accounting_get_accounting_id(r);
if (accounting_id == NULL) { return NGX_ERROR; }
@@ -251,6 +250,27 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
amcf->current->updated_at = ngx_timeofday();
+ if (0 == metrics->server_addr.len) {
+ u_char var_name_buf[256] = {0};
+ ngx_str_t server_addr_var_name = ngx_string("server_addr");
+ ngx_uint_t server_addr_key = ngx_hash_strlow(var_name_buf, server_addr_var_name.data, server_addr_var_name.len);
+ ngx_http_variable_value_t* server_addr_val = ngx_http_get_variable(r, &server_addr_var_name, server_addr_key);
+
+ if (NULL == server_addr_val) {
+ // ngx_log_error(NGXTA_LOG_LEVEL, amcf->log, ngx_errno,
+ // ngx_realpath_n " get server_addr failed");
+ return NGX_ERROR;
+ } else {
+ // ngx_log_error(NGXTA_LOG_LEVEL, amcf->log, 0,
+ // ngx_realpath_n " %s", server_addr_val->data);
+ }
+ metrics->server_addr.data = ngx_calloc(server_addr_val->len + 1, amcf->log);
+ if (NULL == metrics->server_addr.data) {
+ return NGX_ERROR;
+ }
+ memcpy(metrics->server_addr.data, server_addr_val->data, server_addr_val->len);
+ metrics->server_addr.len = server_addr_val->len;
+ }
metrics->nr_entries += 1;
metrics->bytes_in += r->request_length;
metrics->bytes_out += r->connection->sent;
diff --git a/src/ngx_traffic_accounting.h b/src/ngx_traffic_accounting.h
index 462becf..6046d78 100644
--- a/src/ngx_traffic_accounting.h
+++ b/src/ngx_traffic_accounting.h
@@ -24,6 +24,7 @@ typedef struct {
ngx_rbtree_node_t rbnode;
ngx_str_t name;
+ ngx_str_t server_addr;
ngx_uint_t nr_entries;
ngx_uint_t bytes_in;
diff --git a/src/ngx_traffic_accounting_log.c b/src/ngx_traffic_accounting_log.c
index 9b4cd46..652cefb 100644
--- a/src/ngx_traffic_accounting_log.c
+++ b/src/ngx_traffic_accounting_log.c
@@ -35,9 +35,10 @@ ngx_traffic_accounting_log_metrics(void *val, void *para1, void *para2,
last = msg_buf + NGX_MAX_ERROR_STR;
p = ngx_slprintf(p, last,
- "pid:%i|from:%i|to:%i|accounting_id:%V|%s:%ui|bytes_in:%ui|bytes_out:%ui|latency_ms:%ui|upstream_latency_ms:%ui",
+ "pid:%i|from:%i|to:%i|server_addr:%V|accounting_id:%V|%s:%ui|bytes_in:%ui|bytes_out:%ui|latency_ms:%ui|upstream_latency_ms:%ui",
ngx_getpid(),
created_at->sec, updated_at->sec,
+ &metrics->server_addr,
&metrics->name, entry_n,
metrics->nr_entries,
metrics->bytes_in, metrics->bytes_out,
diff --git a/src/ngx_traffic_accounting_period_metrics.c b/src/ngx_traffic_accounting_period_metrics.c
index 7376ad9..d454a3c 100644
--- a/src/ngx_traffic_accounting_period_metrics.c
+++ b/src/ngx_traffic_accounting_period_metrics.c
@@ -161,6 +161,7 @@ ngx_traffic_accounting_period_rbtree_iterate(ngx_traffic_accounting_period_t *pe
ngx_free(n->nr_status);
ngx_free(n->nr_upstream_status);
ngx_free(n->name.data);
+ ngx_free(n->server_addr.data);
ngx_free(n);
goto done;

View file

@ -0,0 +1,96 @@
From 46aae3eccffea884430d72f3d6cfc664a5789853 Mon Sep 17 00:00:00 2001
From: David-Hang-12138 <david.hang@senseguard.ai>
Date: Thu, 15 Sep 2022 21:57:00 +0800
Subject: [PATCH] DEVHUB-73 added option for collecting only successful
requests.
---
src/http/ngx_http_accounting_module.c | 27 +++++++++++++++++-------
src/ngx_traffic_accounting_module.h | 1 +
src/ngx_traffic_accounting_module_conf.c | 2 ++
3 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/src/http/ngx_http_accounting_module.c b/src/http/ngx_http_accounting_module.c
index ecc62d2..a35759c 100644
--- a/src/http/ngx_http_accounting_module.c
+++ b/src/http/ngx_http_accounting_module.c
@@ -62,6 +62,13 @@ static ngx_command_t ngx_http_accounting_commands[] = {
0,
NULL},
+ { ngx_string("accounting_20x"),
+ NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
+ ngx_conf_set_flag_slot,
+ NGX_HTTP_MAIN_CONF_OFFSET,
+ offsetof(ngx_http_accounting_main_conf_t, log_20x),
+ NULL},
+
ngx_null_command
};
@@ -242,6 +249,18 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
amcf = ngx_http_get_module_main_conf(r, ngx_http_accounting_module);
+ if (r->err_status) {
+ status = r->err_status;
+ } else if (r->headers_out.status) {
+ status = r->headers_out.status;
+ } else {
+ status = NGX_HTTP_STATUS_UNSET;
+ }
+
+ if (amcf->log_20x && NGX_HTTP_SPECIAL_RESPONSE <= status) {
+ // Only log successful requests whose response code is 10x or 20x
+ return NGX_DECLINED;
+ }
metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id, amcf->log);
if (metrics == NULL) { return NGX_ERROR; }
@@ -275,14 +294,6 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
metrics->bytes_in += r->request_length;
metrics->bytes_out += r->connection->sent;
- if (r->err_status) {
- status = r->err_status;
- } else if (r->headers_out.status) {
- status = r->headers_out.status;
- } else {
- status = NGX_HTTP_STATUS_UNSET;
- }
-
metrics->nr_status[ngx_status_bsearch(status, ngx_http_statuses, ngx_http_statuses_len)] += 1;
ms = (ngx_msec_int_t)((tp->sec - r->start_sec) * 1000 + (tp->msec - r->start_msec));
diff --git a/src/ngx_traffic_accounting_module.h b/src/ngx_traffic_accounting_module.h
index adfccec..acc7d0b 100644
--- a/src/ngx_traffic_accounting_module.h
+++ b/src/ngx_traffic_accounting_module.h
@@ -18,6 +18,7 @@ typedef struct {
ngx_log_t *log;
time_t interval;
ngx_flag_t perturb;
+ ngx_flag_t log_20x; // account only 20x success responses
ngx_traffic_accounting_period_t *current;
ngx_traffic_accounting_period_t *previous;
diff --git a/src/ngx_traffic_accounting_module_conf.c b/src/ngx_traffic_accounting_module_conf.c
index ce1da71..d937666 100644
--- a/src/ngx_traffic_accounting_module_conf.c
+++ b/src/ngx_traffic_accounting_module_conf.c
@@ -20,6 +20,7 @@ ngx_traffic_accounting_create_main_conf(ngx_conf_t *cf)
amcf->enable = NGX_CONF_UNSET;
amcf->interval = NGX_CONF_UNSET;
amcf->perturb = NGX_CONF_UNSET;
+ amcf->log_20x = NGX_CONF_UNSET;
return amcf;
}
@@ -32,6 +33,7 @@ ngx_traffic_accounting_init_main_conf(ngx_conf_t *cf, void *conf)
if (amcf->enable == NGX_CONF_UNSET) { amcf->enable = 0; }
if (amcf->interval == NGX_CONF_UNSET) { amcf->interval = 60; }
if (amcf->perturb == NGX_CONF_UNSET) { amcf->perturb = 0; }
+ if (amcf->log_20x == NGX_CONF_UNSET) { amcf->log_20x = 0; }
return NGX_CONF_OK;
}

20
ntfs2btrfs-git/.SRCINFO Normal file
View file

@ -0,0 +1,20 @@
pkgbase = ntfs2btrfs-git
pkgdesc = In-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs
pkgver = 20240115.r0.g1d55788
pkgrel = 1
url = https://github.com/maharmstone/ntfs2btrfs
arch = x86_64
license = GPL-2.0-or-later
makedepends = git
makedepends = cmake
makedepends = pkgconf
depends = fmt
depends = zlib
depends = lzo
depends = zstd
provides = ntfs2btrfs
conflicts = ntfs2btrfs
source = git+https://github.com/maharmstone/ntfs2btrfs.git
sha512sums = SKIP
pkgname = ntfs2btrfs-git

35
ntfs2btrfs-git/PKGBUILD Normal file
View file

@ -0,0 +1,35 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: N Fytilis <n-fit AT live.com>
pkgname=ntfs2btrfs-git
pkgver=20240115.r0.g1d55788
pkgrel=1
pkgdesc="In-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs"
arch=('x86_64')
url="https://github.com/maharmstone/${pkgname%-git}"
license=('GPL-2.0-or-later')
depends=('fmt' 'zlib' 'lzo' 'zstd')
makedepends=('git' 'cmake' 'pkgconf')
provides=("${pkgname%-git}")
conflicts=("${pkgname%-git}")
source=("git+${url}.git")
sha512sums=('SKIP')
pkgver() {
cd "${pkgname%-git}"
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/release-//g;s/-/./g'
}
build() {
cmake -B build -S "${pkgname%-git}" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_SBINDIR=bin \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
}

17
ntfs2btrfs/.SRCINFO Normal file
View file

@ -0,0 +1,17 @@
pkgbase = ntfs2btrfs
pkgdesc = In-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs
pkgver = 20240115
pkgrel = 1
url = https://github.com/maharmstone/ntfs2btrfs
arch = x86_64
license = GPL-2.0-or-later
makedepends = cmake
makedepends = pkgconf
depends = fmt
depends = zlib
depends = lzo
depends = zstd
source = https://github.com/maharmstone/ntfs2btrfs/archive/20240115/ntfs2btrfs-20240115.tar.gz
sha512sums = c614e33b83a4dad25b07335f42161223804935bbee19a72a6576fe361a7edf91502773facc14c767e02abff03fd26d902ab2cd0d8f8bcde8ba10c56869d01873
pkgname = ntfs2btrfs

27
ntfs2btrfs/PKGBUILD Normal file
View file

@ -0,0 +1,27 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=ntfs2btrfs
pkgver=20240115
pkgrel=1
pkgdesc="In-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs"
arch=('x86_64')
url="https://github.com/maharmstone/$pkgname"
license=('GPL-2.0-or-later')
depends=('fmt' 'zlib' 'lzo' 'zstd')
makedepends=('cmake' 'pkgconf')
source=("$url/archive/$pkgver/$pkgname-$pkgver.tar.gz")
sha512sums=('c614e33b83a4dad25b07335f42161223804935bbee19a72a6576fe361a7edf91502773facc14c767e02abff03fd26d902ab2cd0d8f8bcde8ba10c56869d01873')
build() {
cmake -B build -S "$pkgname-$pkgver" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_SBINDIR=bin \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
}

28
obs-vkcapture/.SRCINFO Normal file
View file

@ -0,0 +1,28 @@
pkgbase = obs-vkcapture
pkgver = 1.5.1
pkgrel = 1
url = https://github.com/nowrep/obs-vkcapture
arch = x86_64
license = GPL-2.0-or-later
makedepends = gcc
makedepends = cmake
makedepends = vulkan-headers
makedepends = lib32-gcc-libs
makedepends = lib32-vulkan-icd-loader
makedepends = lib32-libgl
makedepends = lib32-libegl
depends = vulkan-icd-loader
depends = libgl
depends = libegl
depends = obs-studio>=27
source = https://github.com/nowrep/obs-vkcapture/archive/v1.5.1/obs-vkcapture-1.5.1.tar.gz
sha512sums = 9477fd738cdf80e09aad46e58ee5e325aa4f5ae72fbe1cb22918d4910fd997ba2a012ce7ca3b24b1b3734983b94e9b7df391f3deca569a79c90c5d115a1a5eed
pkgname = obs-vkcapture
pkgdesc = OBS Linux Vulkan/OpenGL game capture
pkgname = lib32-obs-vkcapture
pkgdesc = OBS Linux Vulkan/OpenGL game capture (32-bit)
depends = lib32-vulkan-icd-loader
depends = lib32-libgl
depends = lib32-libegl

49
obs-vkcapture/PKGBUILD Normal file
View file

@ -0,0 +1,49 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgbase=obs-vkcapture
pkgname=("$pkgbase" "lib32-$pkgbase")
pkgver=1.5.1
pkgrel=1
url="https://github.com/nowrep/$pkgbase"
license=('GPL-2.0-or-later')
arch=('x86_64')
depends=('vulkan-icd-loader' 'libgl' 'libegl' 'obs-studio>=27')
makedepends=('gcc' 'cmake' 'vulkan-headers' 'lib32-gcc-libs' 'lib32-vulkan-icd-loader' 'lib32-libgl' 'lib32-libegl')
source=("https://github.com/nowrep/$pkgbase/archive/v$pkgver/$pkgbase-$pkgver.tar.gz")
sha512sums=('9477fd738cdf80e09aad46e58ee5e325aa4f5ae72fbe1cb22918d4910fd997ba2a012ce7ca3b24b1b3734983b94e9b7df391f3deca569a79c90c5d115a1a5eed')
build() {
cmake -B build -S "$pkgbase-$pkgver" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_DATADIR=/share \
-DCMAKE_BUILD_TYPE=Release
cmake --build build
export CFLAGS="-m32 ${CFLAGS}"
export CXXFLAGS="-m32 ${CXXFLAGS}"
export LDFLAGS="-m32 ${LDFLAGS}"
cmake -B build32 -S "$pkgbase-$pkgver" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib32 \
-DCMAKE_INSTALL_DATADIR=/share \
-DCMAKE_LIBRARY_PATH=/usr/lib32 \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_PLUGIN=OFF
cmake --build build32
}
package_obs-vkcapture() {
pkgdesc='OBS Linux Vulkan/OpenGL game capture'
DESTDIR="$pkgdir" cmake --install build
}
package_lib32-obs-vkcapture() {
pkgdesc='OBS Linux Vulkan/OpenGL game capture (32-bit)'
depends=('lib32-vulkan-icd-loader' 'lib32-libgl' 'lib32-libegl')
DESTDIR="$pkgdir" cmake --install build32
rm -r "$pkgdir/usr/bin"
}

View file

@ -0,0 +1,13 @@
pkgbase = plymouth-theme-arch-logo
pkgdesc = A remake of the ubuntu-logo Plymouth theme, based on the debian-logo theme, but featuring the Arch Linux logo.
pkgver = 1
pkgrel = 2
url = https://www.gnome-look.org/content/show.php/Arch-logo+plymouth?content=141697
install = plymouth-theme-arch-logo.install
arch = any
license = GPL-3.0-or-later
depends = plymouth
source = plymouth-theme-arch-logo.tar.gz
sha512sums = 0c834bccc32d8d2df1a0bf2ae859487eef273ddf8047a7444f3630dffbbf04a9d014242304c5b2bcd9172bea2e04195f329dfe1fe4661bcc5af29ca64104af06
pkgname = plymouth-theme-arch-logo

View file

@ -0,0 +1,26 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Manuel Hüsers <aur@huesers.de>
# Contributor: Guillermo Garcia <ahioros@NO-SPAM.gmail.com>
pkgname=plymouth-theme-arch-logo
pkgver=1
pkgrel=2
pkgdesc='A remake of the ubuntu-logo Plymouth theme, based on the debian-logo theme, but featuring the Arch Linux logo.'
arch=('any')
# Alternative website(s)
#url='http://karlinux.deviantart.com/art/Arch-Logo-Plymouth-Theme-209553250'
url='https://www.gnome-look.org/content/show.php/Arch-logo+plymouth?content=141697'
license=('GPL-3.0-or-later')
depends=('plymouth')
install="${pkgname}.install"
source=(
'plymouth-theme-arch-logo.tar.gz'
)
sha512sums=('0c834bccc32d8d2df1a0bf2ae859487eef273ddf8047a7444f3630dffbbf04a9d014242304c5b2bcd9172bea2e04195f329dfe1fe4661bcc5af29ca64104af06')
package() {
cd "${srcdir}/arch-logo"
rm -fv *~
mkdir -p "${pkgdir}/usr/share/plymouth/themes/arch-logo"
install -Dvm644 * "${pkgdir}/usr/share/plymouth/themes/arch-logo"
}

View file

@ -0,0 +1,12 @@
post_install() {
cat <<EOF
==> To activate the theme, run as root:
==> plymouth-set-default-theme -R arch-logo
EOF
}
post_upgrade() {
post_install $1
}

View file

@ -0,0 +1,16 @@
pkgbase = polkit-explorer-git
pkgdesc = Present PolicyKit information in a human-readable form.
pkgver = 15.fac8d70
pkgrel = 4
url = https://github.com/scarygliders/polkit-explorer
arch = any
license = ISC
makedepends = git
depends = python-pyqt5
depends = python-lxml
provides = polkit-explorer
conflicts = polkit-explorer
source = git+https://github.com/scarygliders/polkit-explorer.git
sha512sums = SKIP
pkgname = polkit-explorer-git

View file

@ -0,0 +1,35 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Alad Wenter <https://wiki.archlinux.org/index.php/Special:EmailUser/Alad>
pkgname=polkit-explorer-git
_pkgname=${pkgname%-git}
pkgver=15.fac8d70
pkgrel=4
pkgdesc='Present PolicyKit information in a human-readable form.'
arch=('any')
url="https://github.com/scarygliders/${_pkgname}"
license=('ISC')
depends=('python-pyqt5' 'python-lxml')
makedepends=('git')
conflicts=('polkit-explorer')
provides=('polkit-explorer')
source=("git+${url}.git")
sha512sums=('SKIP')
pkgver() {
cd "${srcdir}/${_pkgname}"
printf '%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
package() {
cd "${srcdir}/${_pkgname}"
install -d -m755 "${pkgdir}"/{usr/bin,opt/$_pkgname}
install -m644 Ui_*.py "${pkgdir}/opt/${_pkgname}/"
install -m755 'polkitex.py' "${pkgdir}/opt/${_pkgname}/"
ln -s "/opt/${_pkgname}/polkitex.py" "${pkgdir}/usr/bin/polkitex"
install -Dm644 'LICENSE' "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
install -Dm644 "polkitex.desktop" "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
}

15
prepare-chroot.sh Executable file
View file

@ -0,0 +1,15 @@
#!/bin/sh
[ -z "$CHROOT" ] && echo "CHROOT env var is unset." && exit 1
sudo -v || exit 1
[ ! -d "$CHROOT/root" ] && sudo mkarchroot -M "$(dirname "$0")"/makepkg.conf "$CHROOT/root" base-devel
arch-nspawn "$CHROOT/root" pacman -Syu
mkdir -p -m 0755 "$CHROOT/$USER"
mountpoint -q "$CHROOT/$USER"
test $? -ne 0 && sudo mount -t tmpfs -o defaults,nodev,mode=0755,uid=$(id -u),gid=$(id -g) tmpfs "$CHROOT/$USER"
exit 0

16
qvr/.SRCINFO Normal file
View file

@ -0,0 +1,16 @@
pkgbase = qvr
pkgdesc = A library that makes writing Virtual Reality (VR) applications very easy
pkgver = 4.1.0
pkgrel = 1
url = https://marlam.de/qvr/
arch = x86_64
license = MIT
makedepends = cmake
depends = qt6-base
source = https://marlam.de/qvr/releases/qvr-4.1.0.tar.gz
source = https://marlam.de/qvr/releases/qvr-4.1.0.tar.gz.sig
validpgpkeys = 2F61B4828BBA779AECB3F32703A2A4AB1E32FD34
sha512sums = 609b706f06d21668db85dbdc282a1b86931ba380c0044e2918bbcd11903748ccc83579d9790dcf372ea8ebc7c86daa6810f12a43b8d7fc941b32b17f34c0b716
sha512sums = SKIP
pkgname = qvr

28
qvr/PKGBUILD Normal file
View file

@ -0,0 +1,28 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=qvr
pkgver=4.1.0
pkgrel=1
pkgdesc='A library that makes writing Virtual Reality (VR) applications very easy'
arch=('x86_64')
url='https://marlam.de/qvr/'
license=('MIT')
depends=('qt6-base')
makedepends=('cmake')
source=(https://marlam.de/qvr/releases/$pkgname-$pkgver.tar.gz{,.sig})
sha512sums=('609b706f06d21668db85dbdc282a1b86931ba380c0044e2918bbcd11903748ccc83579d9790dcf372ea8ebc7c86daa6810f12a43b8d7fc941b32b17f34c0b716'
'SKIP')
validpgpkeys=('2F61B4828BBA779AECB3F32703A2A4AB1E32FD34')
build() {
cmake -B build -S "$pkgname-$pkgver/libqvr" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
}

16
rc-local/.SRCINFO Normal file
View file

@ -0,0 +1,16 @@
pkgbase = rc-local
pkgdesc = Support for legacy rc.local scripts
pkgver = 4
pkgrel = 1
url = https://aur.archlinux.org/packages/rc-local/
install = rc-local.install
arch = any
license = LGPL-2.1-or-later
depends = systemd
backup = etc/rc.local
source = rc.local
source = rc-local.service
sha512sums = 4c3f8498957d47cf2c6ed6d755f6d6a6e42a59ac176b5a752ea4cdd23418d009c180bd53609bc34a1b11f720d71e702d71b4014ae4f98008c89f86323dc9afab
sha512sums = 85c7eafe5d79c4829b48c4df867e28bdb0b4464cab3581fd67e288648d416ceb69fe4e6b5193f86517f1e9578ef05fba8f708097625de6b903c6794fbec5078e
pkgname = rc-local

23
rc-local/PKGBUILD Normal file
View file

@ -0,0 +1,23 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: megadriver <megadriver at gmx dot com>
# Contributor: $pooky Hunter <spookyh+arch@gmail.org>
pkgname=rc-local
pkgver=4
pkgrel=1
pkgdesc='Support for legacy rc.local scripts'
url="https://aur.archlinux.org/packages/${pkgname}/"
arch=('any')
license=('LGPL-2.1-or-later')
install="${pkgname}.install"
depends=('systemd')
backup=('etc/rc.local')
source=('rc.local'
'rc-local.service')
sha512sums=('4c3f8498957d47cf2c6ed6d755f6d6a6e42a59ac176b5a752ea4cdd23418d009c180bd53609bc34a1b11f720d71e702d71b4014ae4f98008c89f86323dc9afab'
'85c7eafe5d79c4829b48c4df867e28bdb0b4464cab3581fd67e288648d416ceb69fe4e6b5193f86517f1e9578ef05fba8f708097625de6b903c6794fbec5078e')
package() {
install -Dm755 'rc.local' "${pkgdir}/etc/rc.local"
install -Dm644 'rc-local.service' "${pkgdir}/usr/lib/systemd/system/rc-local.service"
}

View file

@ -0,0 +1,8 @@
post_install() {
cat <<EOF
==> Please activate the rc-local service to execute /etc/rc.local on boot.
==> Run as root: systemctl enable rc-local.service
EOF
}

20
rc-local/rc-local.service Normal file
View file

@ -0,0 +1,20 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

14
rc-local/rc.local Normal file
View file

@ -0,0 +1,14 @@
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0

18
rcedit-bin/.SRCINFO Normal file
View file

@ -0,0 +1,18 @@
pkgbase = rcedit-bin
pkgdesc = Command line tool to edit resources of windows exe files
pkgver = 2.0.0
pkgrel = 4
url = https://github.com/electron/rcedit
arch = any
license = MIT
depends = wine
provides = rcedit
conflicts = rcedit
source = https://github.com/electron/rcedit/releases/download/v2.0.0/rcedit-x64.exe
source = https://raw.githubusercontent.com/electron/rcedit/v2.0.0/LICENSE
source = rcedit.sh
sha512sums = c13e7ffd60169c348e16a3ea59a171c1777acdb241f950c11a6e9b69c955a3a4eb3432182aee7f489a87a555d0bd51fde3b597826f7c1e6488f1f5097359ab4d
sha512sums = ca664e9ec12e6e23878c55f2b56e44fac50fc8b88c71499a4794fe3a0e8de18008c7435970628c8386410534dd5cc27af3ea5e7a818d6244f6159bc183969638
sha512sums = ce46f14c4e7c945c69fdfbc48bfd22c8241f653a974f4950d8378bb81943144f5b3ee2e49cb08a26637c46558327184c6504714f7e781f86fbf7b0c64f561bd0
pkgname = rcedit-bin

26
rcedit-bin/PKGBUILD Normal file
View file

@ -0,0 +1,26 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: jdigi78 <jdigiovanni78 at gmail dot com>
pkgname=rcedit-bin
_pkgname=${pkgname%-bin}
pkgver=2.0.0
pkgrel=4
pkgdesc='Command line tool to edit resources of windows exe files'
arch=('any')
url="https://github.com/electron/${_pkgname}"
license=('MIT')
depends=('wine')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
source=("https://github.com/electron/${_pkgname}/releases/download/v${pkgver}/${_pkgname}-x64.exe"
"https://raw.githubusercontent.com/electron/${_pkgname}/v${pkgver}/LICENSE"
"${_pkgname}.sh")
sha512sums=('c13e7ffd60169c348e16a3ea59a171c1777acdb241f950c11a6e9b69c955a3a4eb3432182aee7f489a87a555d0bd51fde3b597826f7c1e6488f1f5097359ab4d'
'ca664e9ec12e6e23878c55f2b56e44fac50fc8b88c71499a4794fe3a0e8de18008c7435970628c8386410534dd5cc27af3ea5e7a818d6244f6159bc183969638'
'ce46f14c4e7c945c69fdfbc48bfd22c8241f653a974f4950d8378bb81943144f5b3ee2e49cb08a26637c46558327184c6504714f7e781f86fbf7b0c64f561bd0')
package() {
install -Dm755 "${_pkgname}-x64.exe" "${pkgdir}/opt/${_pkgname}/${_pkgname}-x64.exe"
install -Dm755 "${_pkgname}.sh" "${pkgdir}/usr/bin/${_pkgname}"
install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
}

4
rcedit-bin/rcedit.sh Executable file
View file

@ -0,0 +1,4 @@
#!/bin/sh
export WINEDEBUG=-all
export DISPLAY=""
exec wine /opt/rcedit/rcedit-x64.exe "$@"

16
sublime-text-3/.SRCINFO Normal file
View file

@ -0,0 +1,16 @@
pkgbase = sublime-text-3
pkgdesc = Sophisticated text editor for code, html and prose (legacy version)
pkgver = 3.3211
pkgrel = 5
url = https://www.sublimetext.com/3
install = sublime-text-3.install
arch = x86_64
license = custom
depends = libpng
depends = gtk2
source = https://download.sublimetext.com/sublime_text_3_build_3211_x64.tar.bz2
source = sublime-text-3.sh
sha512sums = a6a068119eff95c5360e9ccbe1d845e7a93e4ad13b3659073752a7bd0e87f4691555820185514875649e677a4e8702e2338f74f5584fc80f69c16b323685d6f1
sha512sums = ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9
pkgname = sublime-text-3

46
sublime-text-3/PKGBUILD Normal file
View file

@ -0,0 +1,46 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: marcospb19 <marcospb19@hotmail.com>
pkgname=sublime-text-3
pkgver=3.3211
pkgrel=5
pkgdesc='Sophisticated text editor for code, html and prose (legacy version)'
arch=('x86_64')
url='https://www.sublimetext.com/3'
license=('custom')
depends=('libpng' 'gtk2')
install="${pkgname}.install"
source=("https://download.sublimetext.com/sublime_text_3_build_${pkgver:2}_x64.tar.bz2"
"${pkgname}.sh")
sha512sums=('a6a068119eff95c5360e9ccbe1d845e7a93e4ad13b3659073752a7bd0e87f4691555820185514875649e677a4e8702e2338f74f5584fc80f69c16b323685d6f1'
'ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9')
prepare() {
sed -i -e "s|@ST_PATH@|/opt/sublime_text_3|g" "${pkgname}.sh"
# Adjust naming in desktop entry
sed -i -e 's#Sublime Text#Sublime Text 3#g' 'sublime_text_3/sublime_text.desktop'
sed -i -e 's#sublime-text#sublime-text-3#g' 'sublime_text_3/sublime_text.desktop'
sed -i -e 's#/opt/sublime_text/sublime_text#/usr/bin/subl3#g' 'sublime_text_3/sublime_text.desktop'
sed -i -e '\#^StartupNotify=#a StartupWMClass=subl3' 'sublime_text_3/sublime_text.desktop'
}
package() {
# Install sublime text 3
install -dm755 "${pkgdir}/opt"
cp --preserve=mode -r 'sublime_text_3' "${pkgdir}/opt/sublime_text_3"
rm -f "${pkgdir}/opt/sublime_text_3/sublime_text.desktop"
# Install icons
for res in 128x128 16x16 256x256 32x32 48x48; do
install -dm755 "${pkgdir}/usr/share/icons/hicolor/${res}/apps"
ln -s "/opt/sublime_text_3/Icon/${res}/sublime-text.png" "${pkgdir}/usr/share/icons/hicolor/${res}/apps/sublime-text-3.png"
done
# Install desktop entry and executable
install -dm755 "${pkgdir}/usr/share/applications"
install -Dm644 'sublime_text_3/sublime_text.desktop' "${pkgdir}/usr/share/applications/sublime_text_3.desktop"
install -dm755 "${pkgdir}/usr/bin"
install -Dm755 "${pkgname}.sh" "${pkgdir}/usr/bin/subl3"
}

View file

@ -0,0 +1,18 @@
post_install() {
cat << _EOF
==> sublime-text-3 install note:
------------------------------------------------------------------------------
Since this is the last version of Sublime Text 3, you might want to disable
in-application reminders about new Sublime Text versions (reportedly only
works as a licensed user).
Add the following setting to your User Preferences file:
"update_check": false
_EOF
}
post_upgrade() {
post_install
}

View file

@ -0,0 +1,3 @@
#!/bin/sh
exec @ST_PATH@/sublime_text "$@"

20
sublime-text-4/.SRCINFO Normal file
View file

@ -0,0 +1,20 @@
pkgbase = sublime-text-4
pkgdesc = Sophisticated text editor for code, html and prose - stable build
pkgver = 4.4180
pkgrel = 1
url = https://www.sublimetext.com/download
arch = x86_64
arch = aarch64
license = custom
depends = libpng
depends = gtk3
provides = sublime-text
conflicts = sublime-text
source = sublime-text-4.sh
sha512sums = ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9
source_x86_64 = sublime_text_4_4_4180_1_x64.tar.xz::https://download.sublimetext.com/sublime_text_build_4180_x64.tar.xz
sha512sums_x86_64 = a115a352311a964268a1460710c562a7843b52c14c452745edb8706ac726e97b867931659b1a3286d44cb19b880f42f00af5bffe88aaa7916181a690e8324e1a
source_aarch64 = sublime_text_4_4_4180_1_arm64.tar.xz::https://download.sublimetext.com/sublime_text_build_4180_arm64.tar.xz
sha512sums_aarch64 = b127def4ad73cf390fc4fc69cae0bf71b9171b20579a742fbf2b18e3e40d3e0c37e1f8ceff7f7e2d1d8e71bcf3967a6ba282b1a94af5a5bbc88f0f99d89f9b84
pkgname = sublime-text-4

43
sublime-text-4/PKGBUILD Normal file
View file

@ -0,0 +1,43 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=sublime-text-4
pkgver=4.4180
pkgrel=1
pkgdesc='Sophisticated text editor for code, html and prose - stable build'
arch=('x86_64' 'aarch64')
url='https://www.sublimetext.com/download'
license=('custom')
depends=('libpng' 'gtk3')
conflicts=('sublime-text')
provides=('sublime-text')
source=("${pkgname}.sh")
source_x86_64=("${pkgname//-/_}_${pkgver/./_}_${pkgrel}_x64.tar.xz::https://download.sublimetext.com/sublime_text_build_${pkgver:2}_x64.tar.xz")
source_aarch64=("${pkgname//-/_}_${pkgver/./_}_${pkgrel}_arm64.tar.xz::https://download.sublimetext.com/sublime_text_build_${pkgver:2}_arm64.tar.xz")
sha512sums=('ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9')
sha512sums_x86_64=('a115a352311a964268a1460710c562a7843b52c14c452745edb8706ac726e97b867931659b1a3286d44cb19b880f42f00af5bffe88aaa7916181a690e8324e1a')
sha512sums_aarch64=('b127def4ad73cf390fc4fc69cae0bf71b9171b20579a742fbf2b18e3e40d3e0c37e1f8ceff7f7e2d1d8e71bcf3967a6ba282b1a94af5a5bbc88f0f99d89f9b84')
prepare() {
sed -i -e "s|@ST_PATH@|/opt/sublime_text|g" "${pkgname}.sh"
sed -i -e 's#/opt/sublime_text/sublime_text#/usr/bin/subl#g' 'sublime_text/sublime_text.desktop'
sed -i -e '\#^StartupNotify=#a StartupWMClass=subl' 'sublime_text/sublime_text.desktop'
}
package() {
install -dm755 "${pkgdir}/opt"
cp --preserve=mode -r 'sublime_text' "${pkgdir}/opt/sublime_text"
rm -f "${pkgdir}/opt/sublime_text/sublime_text.desktop"
for res in 128x128 16x16 256x256 32x32 48x48; do
install -dm755 "${pkgdir}/usr/share/icons/hicolor/${res}/apps"
ln -s "/opt/sublime_text/Icon/${res}/sublime-text.png" "${pkgdir}/usr/share/icons/hicolor/${res}/apps/sublime-text.png"
done
install -dm755 "${pkgdir}/usr/share/applications"
install -Dm644 'sublime_text/sublime_text.desktop' "${pkgdir}/usr/share/applications/sublime_text.desktop"
install -dm755 "${pkgdir}/usr/bin"
install -Dm755 "${pkgname}.sh" "${pkgdir}/usr/bin/subl"
}

View file

@ -0,0 +1,3 @@
#!/bin/sh
exec @ST_PATH@/sublime_text "$@"

21
sublime-text-dev/.SRCINFO Normal file
View file

@ -0,0 +1,21 @@
pkgbase = sublime-text-dev
pkgdesc = Sophisticated text editor for code, html and prose - dev build
pkgver = 4.4180
pkgrel = 1
url = https://www.sublimetext.com/dev
install = sublime-text-dev.install
arch = x86_64
arch = aarch64
license = custom
depends = libpng
depends = gtk3
provides = sublime-text
conflicts = sublime-text
source = sublime-text-dev.sh
sha512sums = ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9
source_x86_64 = sublime_text_dev_4_4180_1_x64.tar.xz::https://download.sublimetext.com/sublime_text_build_4180_x64.tar.xz
sha512sums_x86_64 = a115a352311a964268a1460710c562a7843b52c14c452745edb8706ac726e97b867931659b1a3286d44cb19b880f42f00af5bffe88aaa7916181a690e8324e1a
source_aarch64 = sublime_text_dev_4_4180_1_arm64.tar.xz::https://download.sublimetext.com/sublime_text_build_4180_arm64.tar.xz
sha512sums_aarch64 = b127def4ad73cf390fc4fc69cae0bf71b9171b20579a742fbf2b18e3e40d3e0c37e1f8ceff7f7e2d1d8e71bcf3967a6ba282b1a94af5a5bbc88f0f99d89f9b84
pkgname = sublime-text-dev

46
sublime-text-dev/PKGBUILD Normal file
View file

@ -0,0 +1,46 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Sander Boom <sanderboom@gmail.com>
# Contributor: realitygaps <realitygaps at yahoo dot com>
pkgname=sublime-text-dev
pkgver=4.4180
pkgrel=1
pkgdesc='Sophisticated text editor for code, html and prose - dev build'
arch=('x86_64' 'aarch64')
url='https://www.sublimetext.com/dev'
license=('custom')
depends=('libpng' 'gtk3')
conflicts=('sublime-text')
provides=('sublime-text')
install=${pkgname}.install
source=("${pkgname}.sh")
source_x86_64=("${pkgname//-/_}_${pkgver/./_}_${pkgrel}_x64.tar.xz::https://download.sublimetext.com/sublime_text_build_${pkgver:2}_x64.tar.xz")
source_aarch64=("${pkgname//-/_}_${pkgver/./_}_${pkgrel}_arm64.tar.xz::https://download.sublimetext.com/sublime_text_build_${pkgver:2}_arm64.tar.xz")
sha512sums=('ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9')
sha512sums_x86_64=('a115a352311a964268a1460710c562a7843b52c14c452745edb8706ac726e97b867931659b1a3286d44cb19b880f42f00af5bffe88aaa7916181a690e8324e1a')
sha512sums_aarch64=('b127def4ad73cf390fc4fc69cae0bf71b9171b20579a742fbf2b18e3e40d3e0c37e1f8ceff7f7e2d1d8e71bcf3967a6ba282b1a94af5a5bbc88f0f99d89f9b84')
prepare() {
sed -i -e "s|@ST_PATH@|/opt/sublime_text|g" "${pkgname}.sh"
sed -i -e 's#/opt/sublime_text/sublime_text#/usr/bin/subl#g' 'sublime_text/sublime_text.desktop'
sed -i -e '\#^StartupNotify=#a StartupWMClass=subl' 'sublime_text/sublime_text.desktop'
}
package() {
install -dm755 "${pkgdir}/opt"
cp --preserve=mode -r 'sublime_text' "${pkgdir}/opt/sublime_text"
rm -f "${pkgdir}/opt/sublime_text/sublime_text.desktop"
for res in 128x128 16x16 256x256 32x32 48x48; do
install -dm755 "${pkgdir}/usr/share/icons/hicolor/${res}/apps"
ln -s "/opt/sublime_text/Icon/${res}/sublime-text.png" "${pkgdir}/usr/share/icons/hicolor/${res}/apps/sublime-text.png"
done
install -dm755 "${pkgdir}/usr/share/applications"
install -Dm644 'sublime_text/sublime_text.desktop' "${pkgdir}/usr/share/applications/sublime_text.desktop"
install -dm755 "${pkgdir}/usr/bin"
install -Dm755 "${pkgname}.sh" "${pkgdir}/usr/bin/subl"
}

View file

@ -0,0 +1,28 @@
post_install() {
cat << _EOF
==> sublime-text-dev install note:
------------------------------------------------------------------------------
This package is used for the actual 'dev' branch of Sublime Text that
requires a license to be purchased from the Sublime Text website.
If you want to keep using the latest stable release you should instead
install 'sublime-text-4' or use the official repos provided by Sublime Text.
To disable in-application reminders about new Sublime Text dev versions,
add the following setting to your User Preferences file:
"update_check": false
_EOF
}
post_upgrade() {
cat << _EOF
==> sublime-text-dev upgrade note:
------------------------------------------------------------------------------
To disable in-application reminders about new Sublime Text dev versions,
add the following setting to your User Preferences file:
"update_check": false
_EOF
}

View file

@ -0,0 +1,3 @@
#!/bin/sh
exec @ST_PATH@/sublime_text "$@"

23
systemtap/.SRCINFO Normal file
View file

@ -0,0 +1,23 @@
pkgbase = systemtap
pkgdesc = Infrastructure to simplify the gathering of information about the running Linux system
pkgver = 5.1
pkgrel = 1
url = https://sourceware.org/systemtap/
install = systemtap.install
arch = x86_64
license = GPL-2.0-or-later
makedepends = python-setuptools
makedepends = xmlto
depends = elfutils
depends = nss
depends = python
depends = cpio
optdepends = sqlite3: for storing results in a database
options = !emptydirs
source = https://sourceware.org/ftp/systemtap/releases/systemtap-5.1.tar.gz
source = https://sourceware.org/ftp/systemtap/releases/systemtap-5.1.tar.gz.asc
validpgpkeys = 41A0C11274B1E87FE28E4C53E3D77E1F95161991
sha512sums = da0fe237d2124031a5786d1221dbb420d90da5497376715fd43a7a9f61a354a229c1128e67ce6becbc012aa3796dc5d337149e239e3c1def0651b179e5bf199f
sha512sums = SKIP
pkgname = systemtap

52
systemtap/PKGBUILD Normal file
View file

@ -0,0 +1,52 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Christian Pellegrin (chripell) <chripell@fsfe.org>
# Contributor: An Nguyen (stk) <an@linux.com>
# Contributor: George Angelopoulos <george@usermod.net>
# Contributor: Christian Rebischke <Chris.Rebischke@archlinux.org>
# Contributor: dront78 <dront78@gmail.com>
pkgname=systemtap
pkgver=5.1
pkgrel=1
pkgdesc="Infrastructure to simplify the gathering of information about the running Linux system"
url="https://sourceware.org/systemtap/"
arch=('x86_64')
license=('GPL-2.0-or-later')
depends=('elfutils' 'nss' 'python' 'cpio')
makedepends=('python-setuptools' 'xmlto')
optdepends=('sqlite3: for storing results in a database')
options=('!emptydirs')
install="${pkgname}.install"
source=("https://sourceware.org/ftp/${pkgname}/releases/${pkgname}-${pkgver}.tar.gz"{,.asc})
sha512sums=('da0fe237d2124031a5786d1221dbb420d90da5497376715fd43a7a9f61a354a229c1128e67ce6becbc012aa3796dc5d337149e239e3c1def0651b179e5bf199f'
'SKIP')
validpgpkeys=('41A0C11274B1E87FE28E4C53E3D77E1F95161991')
build() {
cd "${pkgname}-${pkgver}"
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib/"${pkgname}" \
--libdir=/usr/lib/"${pkgname}" \
--mandir=/usr/share/man/ \
--sbindir=/usr/bin \
--localstatedir=/var \
--enable-pie \
--disable-docs \
--enable-htmldocs \
--with-python3
make
}
check() {
cd "${pkgname}-${pkgver}"
make check
}
package() {
cd "${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
rm -r "${pkgdir}/usr/include/sys"
}

View file

@ -0,0 +1,18 @@
post_install() {
getent group stapusr >/dev/null || groupadd -g 156 -r stapusr 2>/dev/null || groupadd -r stapusr
getent group stapsys >/dev/null || groupadd -g 157 -r stapsys 2>/dev/null || groupadd -r stapsys
getent group stapdev >/dev/null || groupadd -g 158 -r stapdev 2>/dev/null || groupadd -r stapdev
getent group stapusr >/dev/null && chgrp stapusr /usr/bin/stapbpf
chmod 04110 /usr/bin/stapbpf
getent group stapusr >/dev/null && chgrp stapusr /usr/bin/staprun
chmod 04110 /usr/bin/staprun
echo "CONFIG_DEBUG_INFO is disabled on default. You need to recompile"
echo "the kernel with CONFIG_DEBUG_INFO enabled."
}
post_upgrade() {
post_install $1
}

44
tuned/.SRCINFO Normal file
View file

@ -0,0 +1,44 @@
pkgbase = tuned
pkgdesc = Daemon that performs monitoring and adaptive configuration of devices in the system
pkgver = 2.24.0
pkgrel = 1
url = https://github.com/redhat-performance/tuned
arch = any
license = GPL-2.0-or-later
makedepends = desktop-file-utils
depends = dbus-glib
depends = ethtool
depends = gawk
depends = hdparm
depends = polkit
depends = python-configobj
depends = python-dbus
depends = python-gobject
depends = python-linux-procfs
depends = python-perf
depends = python-pyudev
source = https://github.com/redhat-performance/tuned/archive/v2.24.0/tuned-2.24.0.tar.gz
sha512sums = d004cd621e26195fff14b39f29b2143cf47de09641454acd3029d61142c3d000a452f018356c84c32772bd99fc766f6ee847d2a8eddbde8ae34aaa0ecefa644e
pkgname = tuned
install = tuned.install
optdepends = virt-what: virtual machine detection
optdepends = systemtap: detailed system monitoring
optdepends = tuned-ppd: power-profiles-daemon api translation
backup = etc/tuned/active_profile
backup = etc/tuned/bootcmdline
backup = etc/tuned/cpu-partitioning-powersave-variables.conf
backup = etc/tuned/cpu-partitioning-variables.conf
backup = etc/tuned/post_loaded_profile
backup = etc/tuned/profile_mode
backup = etc/tuned/realtime-variables.conf
backup = etc/tuned/realtime-virtual-guest-variables.conf
backup = etc/tuned/realtime-virtual-host-variables.conf
backup = etc/tuned/tuned-main.conf
pkgname = tuned-ppd
pkgdesc = Daemon that allows applications to easily transition to TuneD from power-profiles-daemon (PPD)
depends = tuned
conflicts = power-profiles-daemon
options = !emptydirs
backup = etc/tuned/ppd.conf

63
tuned/PKGBUILD Normal file
View file

@ -0,0 +1,63 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Iwan Timmer <irtimmer@gmail.com>
# Contributor: Timothée Ravier <tim at siosm dot fr>
# Contributor: Tom <reztho at archlinux dot org>
pkgbase=tuned
pkgname=("${pkgbase}" "${pkgbase}-ppd")
pkgver=2.24.0
pkgrel=1
pkgdesc='Daemon that performs monitoring and adaptive configuration of devices in the system'
arch=('any')
url="https://github.com/redhat-performance/${pkgbase}"
license=('GPL-2.0-or-later')
depends=('dbus-glib' 'ethtool' 'gawk' 'hdparm' 'polkit' 'python-configobj' 'python-dbus' 'python-gobject' 'python-linux-procfs' 'python-perf' 'python-pyudev')
makedepends=('desktop-file-utils')
source=("https://github.com/redhat-performance/${pkgbase}/archive/v${pkgver}/${pkgbase}-${pkgver}.tar.gz")
sha512sums=('d004cd621e26195fff14b39f29b2143cf47de09641454acd3029d61142c3d000a452f018356c84c32772bd99fc766f6ee847d2a8eddbde8ae34aaa0ecefa644e')
prepare() {
cd "${pkgbase}-${pkgver}"
mv libexec lib
sed -i 's|/libexec/|/lib/|g' Makefile
sed -i 's|/sbin/|/bin/|g' Makefile tuned.service tuned-gui.py tuned-gui.desktop tuned/ppd/tuned-ppd.service
sed -i 's|install-ppd: install$|install-ppd: install-dirs|' Makefile
}
package_tuned() {
optdepends=('virt-what: virtual machine detection'
'systemtap: detailed system monitoring'
'tuned-ppd: power-profiles-daemon api translation')
backup=('etc/tuned/active_profile'
'etc/tuned/bootcmdline'
'etc/tuned/cpu-partitioning-powersave-variables.conf'
'etc/tuned/cpu-partitioning-variables.conf'
'etc/tuned/post_loaded_profile'
'etc/tuned/profile_mode'
'etc/tuned/realtime-variables.conf'
'etc/tuned/realtime-virtual-guest-variables.conf'
'etc/tuned/realtime-virtual-host-variables.conf'
'etc/tuned/tuned-main.conf')
install="${pkgbase}.install"
cd "${pkgbase}-${pkgver}"
make DESTDIR="${pkgdir}" install
rm -rv "${pkgdir}"/{run,var}
python -m compileall -d /usr/lib "${pkgdir}/usr/lib"
python -O -m compileall -d /usr/lib "${pkgdir}/usr/lib"
}
package_tuned-ppd() {
pkgdesc='Daemon that allows applications to easily transition to TuneD from power-profiles-daemon (PPD)'
depends=('tuned')
conflicts=('power-profiles-daemon')
backup=('etc/tuned/ppd.conf')
options=('!emptydirs')
cd "${pkgbase}-${pkgver}"
make DESTDIR="${pkgdir}" install-ppd
}

7
tuned/tuned.install Normal file
View file

@ -0,0 +1,7 @@
post_install() {
systemd-tmpfiles --create tuned.conf
}
pre_remove() {
systemd-tmpfiles --remove tuned.conf
}

View file

@ -0,0 +1,20 @@
pkgbase = waifu2x-ncnn-vulkan
pkgdesc = waifu2x converter ncnn version, runs fast on intel / amd / nvidia GPU with vulkan
pkgver = 20220728
pkgrel = 1
url = https://github.com/nihui/waifu2x-ncnn-vulkan
arch = x86_64
arch = aarch64
license = MIT
makedepends = cmake
makedepends = glslang
makedepends = vulkan-headers
makedepends = ncnn
depends = vulkan-icd-loader
depends = libwebp
source = https://github.com/nihui/waifu2x-ncnn-vulkan/archive/20220728/waifu2x-ncnn-vulkan-20220728.tar.gz
source = model_path.patch
sha512sums = ea17cbbcb7318586793222c6c7139f67395c49c567b601969b829fc426eb517308509b7c1da69171fcbf8e68baa5cec3e52e98159e3c5e6c35ce47a8514dadb7
sha512sums = 1a286730a7168f63c56544b334277234b84415bcc4c2956c8f8f39ef0d864f9de4ecb38cb9491da91c45b43d5ecdba0018931c2926fb6e2aea98edf3ca42657a
pkgname = waifu2x-ncnn-vulkan

View file

@ -0,0 +1,41 @@
pkgname=waifu2x-ncnn-vulkan
pkgver=20220728
pkgrel=1
pkgdesc='waifu2x converter ncnn version, runs fast on intel / amd / nvidia GPU with vulkan'
arch=('x86_64' 'aarch64')
url="https://github.com/nihui/$pkgname"
license=('MIT')
depends=('vulkan-icd-loader' 'libwebp')
makedepends=('cmake' 'glslang' 'vulkan-headers' 'ncnn')
source=("https://github.com/nihui/$pkgname/archive/$pkgver/$pkgname-$pkgver.tar.gz"
'model_path.patch')
sha512sums=('ea17cbbcb7318586793222c6c7139f67395c49c567b601969b829fc426eb517308509b7c1da69171fcbf8e68baa5cec3e52e98159e3c5e6c35ce47a8514dadb7'
'1a286730a7168f63c56544b334277234b84415bcc4c2956c8f8f39ef0d864f9de4ecb38cb9491da91c45b43d5ecdba0018931c2926fb6e2aea98edf3ca42657a')
prepare() {
cd $pkgname-$pkgver
# TODO: Make proper patch
patch -Np1 < '../model_path.patch'
}
build() {
cmake -B build -S "$pkgname-$pkgver/src" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DGLSLANG_TARGET_DIR=/usr/lib/cmake \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_SYSTEM_NCNN=on \
-DUSE_SYSTEM_WEBP=on
cmake --build build
}
package() {
install -Dm755 -t "$pkgdir/usr/bin" build/$pkgname
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" $pkgname-$pkgver/LICENSE
cd $pkgname-$pkgver/models
for f in models-*/*; do
install -Dm644 "$f" "$pkgdir/usr/share/$pkgname/$f"
done
}

View file

@ -0,0 +1,26 @@
diff --git a/src/filesystem_utils.h b/src/filesystem_utils.h
index fdf172c..9706dc9 100644
--- a/src/filesystem_utils.h
+++ b/src/filesystem_utils.h
@@ -169,7 +169,7 @@ static path_t sanitize_filepath(const path_t& path)
if (filepath_is_readable(path))
return path;
- return get_executable_directory() + path;
+ return "/usr/share/waifu2x-ncnn-vulkan/" + path;
}
#endif // FILESYSTEM_UTILS_H
diff --git a/src/main.cpp b/src/main.cpp
index fa10e6f..5590b2f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -470,7 +470,7 @@ int main(int argc, char** argv)
int noise = 0;
int scale = 2;
std::vector<int> tilesize;
- path_t model = PATHSTR("models-cunet");
+ path_t model = PATHSTR("/usr/share/waifu2x-ncnn-vulkan/models-cunet");
std::vector<int> gpuid;
int jobs_load = 1;
std::vector<int> jobs_proc;

12
wxedid/.SRCINFO Normal file
View file

@ -0,0 +1,12 @@
pkgbase = wxedid
pkgdesc = wxWidgets-based EDID (Extended Display Identification Data) editor
pkgver = 0.0.31
pkgrel = 1
url = https://sourceforge.net/projects/wxedid/
arch = x86_64
license = GPL-3.0-or-later
depends = wxwidgets-gtk3
source = https://downloads.sourceforge.net/wxedid/wxedid-0.0.31.tar.gz
sha512sums = 9e83ce46912ef1a43bccfa4e4086697cfec444ef932040e618210d682a6fa4a40bf78aece953e10a959ae7a38671b5782a0a4562cd776f71b5784c3bd1fcda5d
pkgname = wxedid

30
wxedid/PKGBUILD Normal file
View file

@ -0,0 +1,30 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Jonathan Liu <net147@gmail.com>
pkgname=wxedid
pkgver=0.0.31
pkgrel=1
pkgdesc='wxWidgets-based EDID (Extended Display Identification Data) editor'
arch=('x86_64')
url="https://sourceforge.net/projects/${pkgname}/"
license=('GPL-3.0-or-later')
depends=('wxwidgets-gtk3')
source=("https://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
sha512sums=('9e83ce46912ef1a43bccfa4e4086697cfec444ef932040e618210d682a6fa4a40bf78aece953e10a959ae7a38671b5782a0a4562cd776f71b5784c3bd1fcda5d')
build() {
cd "${pkgname}-${pkgver}"
autoreconf -f -i
./configure --prefix=/usr
make
}
check() {
cd "${pkgname}-${pkgver}"
make check
}
package() {
cd "${pkgname}-${pkgver}"
make DESTDIR="$pkgdir" install
}