Compare commits

...

707 Commits

Author SHA1 Message Date
Manuel 1fd3ff62f2
upgpkg: discord-electron-openasar 0.0.54+827-1
upstream release
2024-05-14 07:58:32 +02:00
Manuel 09e109da22
upgpkg: discord-electron 0.0.54-1
upstream release
2024-05-14 07:58:13 +02:00
Manuel d637a76481
upgpkg: systemtap 5.1-1
upstream release
2024-05-13 06:56:52 +02:00
Manuel 5468d9f527
upgpkg: clonezilla-unstable 5.6.4-1
upstream release
2024-05-13 06:56:37 +02:00
Manuel ed4692db90
upgpkg: firefox-syncstorage 0.15.8-1
upstream release
2024-05-13 06:56:15 +02:00
Manuel 9352ffefd1
Update makepkg.conf
* Include latest ALHP changes
* Enable compression for archives again
2024-05-07 20:48:28 +02:00
Manuel 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
Manuel a71208ca9b
upgpkg: discord-electron 0.0.53-1
upstream release
2024-05-07 19:45:59 +02:00
Manuel a103a051b7
discord-electron: Remove maintainer notice
* Package removed from AUR but kept here for preservation
2024-05-07 19:44:46 +02:00
Manuel a90086660f
upgpkg: firefox-syncstorage 0.15.7-1
upstream release
2024-05-07 19:42:26 +02:00
Manuel 104661d3a4
upgpkg: gvisor-git 20240501.0-1
upstream release
2024-05-07 19:41:09 +02:00
Manuel ce7a5ee839
upgpkg: gvisor-bin 20240501.0-1
upstream release
2024-05-07 19:41:02 +02:00
Manuel d859014f06
upgpkg: sublime-text-dev 4.4175-1
upstream release
2024-05-07 18:59:31 +02:00
Manuel 13ee2ac405
upgpkg: spot-client 0.4.1-1
upstream release
2024-05-07 18:58:27 +02:00
Manuel 3ec66e826f
upgpkg: linpack 2024.1.0-1
upstream release
2024-05-07 18:58:08 +02:00
Manuel 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
Manuel 2ef7e351d4
upgpkg: firefox-syncstorage 0.15.5-1
upstream release
2024-04-30 21:48:48 +02:00
Manuel b71f207c0a
upgpkg: discord-electron-openasar 0.0.52+827-1
upstream release
2024-04-30 18:45:18 +02:00
Manuel 6913e9da39
upgpkg: discord-electron 0.0.52-1
upstream release
2024-04-30 18:45:00 +02:00
Manuel d7a06808ff
upgpkg: tuned 2.22.1-2: rebuild
* Trigger rebuild for Python 3.12
2024-04-27 20:57:00 +02:00
Manuel 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
Manuel 6405619721
upgpkg: clonezilla-unstable 5.6.2-1
upstream release
2024-04-24 07:19:02 +02:00
Manuel d46497867c
upgpkg: discord-electron-openasar 0.0.51+827-1
upstream release
2024-04-23 06:56:01 +02:00
Manuel d8f14fe7db
upgpkg: discord-electron 0.0.51-1
upstream release
2024-04-23 06:55:37 +02:00
Manuel 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
Manuel 8c698f9c96
upgpkg: discord-electron 0.0.50-2: update electron
* Update Electron version to 30
2024-04-21 09:39:59 +02:00
Manuel 75ea660891
upgpkg: discord-electron-openasar 0.0.50+827-1
upstream release
2024-04-16 22:57:08 +02:00
Manuel 8e4b63460c
upgpkg: discord-electron 0.0.50-1
upstream release
2024-04-16 22:56:54 +02:00
Manuel a09253c381
upgpkg: firefox-syncstorage 0.15.2-1
upstream release
2024-04-16 22:49:16 +02:00
Manuel 9473e1da58
upgpkg: wxedid 0.0.31-1
upstream release
2024-04-11 19:45:27 +02:00
Manuel 76f0ba5644
upgpkg: rcedit-bin 2.0.0-4: refactor
* Refactor PKGBUILD
* Remove redundant .gitignore
2024-04-11 19:42:55 +02:00
Manuel f44ebb794d
upgpkg: polkit-explorer-git 15.fac8d70-4: fix paths
* Use correct (non-git) paths
2024-04-11 19:39:30 +02:00
Manuel a5c0a2e468
upgpkg: ntfs2btrfs-git 20240115.r0.g1d55788-1
upstream release
2024-04-11 19:31:33 +02:00
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel cf8acd973c
Deleted package: plasma5-wallpapers-wallpaper-engine 2024-04-10 19:49:02 +02:00
Manuel 3f2c2f1494
upgpkg: discord-electron-openasar 0.0.49+827-1
upstream release
2024-04-09 20:16:29 +02:00
Manuel 7080b90ae1
upgpkg: discord-electron 0.0.49-1
upstream release
2024-04-09 20:16:20 +02:00
Manuel 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
Manuel 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
Manuel 4814f84b92
Replace checksums with sha512 2024-04-08 23:10:35 +02:00
Manuel f38a0ff4a3
ect: Add sha512 checksums 2024-04-08 22:58:27 +02:00
Manuel f3206040a9
systemtap: Remove redundant .gitignore 2024-04-08 22:53:57 +02:00
Manuel 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
Manuel 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
Manuel 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
Manuel 5d5194dd5f
upgpkg: systemtap 5.0-1
upstream release
2024-04-08 21:54:49 +02:00
Manuel 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
Manuel b43228e4bd
upgpkg: discord-electron-openasar 0.0.48+827-1
upstream release
2024-04-08 20:50:43 +02:00
Manuel f0ba3f4d43
upgpkg: discord-electron 0.0.48-1
upstream release
2024-04-08 20:50:38 +02:00
Manuel 8a5209b50c
upgpkg: clonezilla-unstable 5.6.1-1
upstream release
2024-04-08 20:50:23 +02:00
Manuel ee35ff2f47
upgpkg: gvisor-git 20240401.0-1
upstream release
2024-04-05 21:25:08 +02:00
Manuel 39422c29ff
upgpkg: gvisor-bin 20240401.0-1
upstream release
2024-04-05 21:24:47 +02:00
Manuel 5b05d8a34e
upgpkg: obs-vkcapture 1.5.0-1
upstream release
2024-04-01 19:48:21 +02:00
Manuel 3505453af4
upgpkg: discord-electron-openasar 0.0.47+827-1
upstream release
2024-03-25 20:29:56 +01:00
Manuel a0a553d122
upgpkg: discord-electron 0.0.47-1
upstream release
2024-03-25 20:29:29 +01:00
Manuel f3f922dbbc
upgpkg: discord-electron-openasar 0.0.46+827-1
upstream release
2024-03-18 19:47:43 +01:00
Manuel 16c6e8f08d
upgpkg: discord-electron 0.0.46-1
upstream release
2024-03-18 19:47:28 +01:00
Manuel 235e77f706
Add .gitattributes 2024-03-17 14:57:36 +01:00
Manuel 07dab3a33f
upgpkg: clonezilla-unstable 5.5.31-1
upstream release
2024-03-17 14:55:21 +01:00
Manuel 78ce8c3ffc
upgpkg: clonezilla-unstable 5.5.27-1
upstream release
2024-03-12 19:24:23 +01:00
Manuel 604753f819
upgpkg: discord-electron-openasar 0.0.45+827-1
upstream release
2024-03-12 19:23:10 +01:00
Manuel cec85ec3fd
upgpkg: discord-electron 0.0.45-1
upstream release
2024-03-12 19:22:50 +01:00
Manuel 25c882d365
upgpkg: gvisor-git 20240305.0-1
upstream release
2024-03-07 06:53:26 +01:00
Manuel cef2df01d7
upgpkg: gvisor-bin 20240305.0-1
upstream release
2024-03-07 06:53:08 +01:00
Manuel 33b25206a1
upgpkg: discord-electron-openasar 0.0.44+827-1
upstream release
2024-03-07 06:51:56 +01:00
Manuel ceda92e0cd
upgpkg: discord-electron 0.0.44-1
upstream release
2024-03-07 06:50:54 +01:00
Manuel 7f7d59436b
upgpkg: firefox-syncstorage 0.15.1-1
upstream release
2024-03-05 20:32:38 +01:00
Manuel 3573dd835d
upgpkg: clonezilla-unstable 5.5.24-1
upstream release
2024-03-01 20:45:30 +01:00
Manuel 68b0ac6aca
upgpkg: firefox-syncstorage 0.15.0-1
upstream release
2024-03-01 20:45:00 +01:00
Manuel 43cf71aa74
upgpkg: sublime-text-dev 4.4173-1
upstream release
2024-02-27 19:44:00 +01:00
Manuel b9740407f3
upgpkg: tuned 2.22.1-1
upstream release
2024-02-22 14:26:00 +01:00
Manuel 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
Manuel 78cca39e50
upgpkg: sublime-text-dev 4.4172-1
upstream release
2024-02-22 07:02:00 +01:00
Manuel 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
Manuel 4744e0f1a4
upgpkg: sublime-text-dev 4.4171-1
upstream release
2024-02-21 09:46:00 +01:00
Manuel 4edc35f5a3
upgpkg: tuned 2.22.0-1
upstream release
2024-02-17 09:45:14 +01:00
Manuel 6c4b27529e
upgpkg: discord-electron-openasar 0.0.43+827-1
upstream release
2024-02-12 23:30:54 +01:00
Manuel d6fda86458
upgpkg: discord-electron 0.0.43-1
upstream release
2024-02-12 23:30:37 +01:00
Manuel 168682ce88
upgpkg: obs-vkcapture 1.4.9-1
upstream release
2024-02-11 17:57:25 +01:00
Manuel 389c8ac42d
upgpkg: gvisor-git 20240206.0-1
upstream release
2024-02-11 12:11:47 +01:00
Manuel 46d0dbc55e
upgpkg: gvisor-bin 20240206.0-1
upstream release
2024-02-11 12:11:20 +01:00
Manuel 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
Manuel 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
Manuel 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
Manuel d992d9b5ee
Deleted package: prometheus-postgresql-exporter: moved to extra 2024-02-07 20:37:58 +01:00
Manuel 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
Manuel 7c1ee2f334
upgpkg: discord-electron 0.0.42-1
upstream release
2024-01-29 21:34:18 +01:00
Manuel 2f3cd45a85
upgpkg: discord-electron-openasar 0.0.41+826-1
upstream release
2024-01-23 21:04:15 +01:00
Manuel e213d0c028
upgpkg: discord-electron 0.0.41-1
upstream release
2024-01-23 21:03:56 +01:00
Manuel f9f560d04a
upgpkg: gvisor-git 20240109.0-1
upstream release
2024-01-12 13:56:12 +01:00
Manuel c83ebec04d
upgpkg: gvisor-bin 20240109.0-1
upstream release
2024-01-12 13:55:59 +01:00
Manuel ce8f60a0ab
upgpkg: discord-electron-openasar 0.0.40+826-1
Update to latest OpenAsar commit
2024-01-10 21:52:13 +01:00
Manuel 3119c4169c
upgpkg: discord-electron-openasar 0.0.40+824-1
upstream release
2024-01-09 20:38:14 +01:00
Manuel 7f90a526a5
upgpkg: discord-electron 0.0.40-1
upstream release
2024-01-09 20:38:00 +01:00
Manuel 073095acdc
ect: Fix submodule path 2024-01-08 20:54:10 +01:00
Manuel ecd597da60
upgpkg: ect 0.9.5-1
upstream release
2024-01-08 19:57:58 +01:00
Manuel 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
Manuel 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
Manuel 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
Manuel 9ce663bcc3
upgpkg: clonezilla-unstable 5.5.23-1
upstream release
2024-01-04 15:47:48 +01:00
Manuel 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
Manuel 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
Manuel 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
Manuel 1161de6464
upgpkg: discord-electron-openasar 0.0.39+824-1
upstream release
2023-12-19 21:47:42 +01:00
Manuel 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
Manuel 2938164241
upgpkg: clonezilla-unstable 5.5.20-1
upstream release
2023-12-18 12:27:44 +01:00
Manuel 714ad61a20
upgpkg: discord-electron-openasar 0.0.38+824-1
upstream release
2023-12-12 23:46:43 +01:00
Manuel 7d151dddad
upgpkg: discord-electron 0.0.38-1
upstream release
2023-12-12 23:46:26 +01:00
Manuel af44a9bf6b
upgpkg: firefox-syncstorage 0.14.4-1
upstream release
2023-12-11 22:57:37 +01:00
Manuel 79e98d992c
upgpkg: gvisor-git 20231204.0-1
upstream release
2023-12-06 22:36:53 +01:00
Manuel fcde69e24c
upgpkg: gvisor-bin 20231204.0-1
upstream release
2023-12-06 22:36:28 +01:00
Manuel 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
Manuel 0a1b550524
upgpkg: discord-electron 0.0.37-1
upstream release
2023-12-05 21:28:13 +01:00
Manuel 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
Manuel 5d93595481
Initial upload: lib32-amdvlk-2023q3.3 2023.Q3.3-1 2023-12-03 22:57:37 +01:00
Manuel 1255e64873
Replace checksums with sha512 2023-12-03 20:31:07 +01:00
Manuel c73c86f9fe
polkit-explorer-git: Refactor 2023-12-03 20:30:13 +01:00
Manuel be0a240ffb
waifu2x-ncnn-vulkan: Remove maintainer comment
Package currently only kept for preservation
2023-12-03 20:27:52 +01:00
Manuel 3bd443b8d8
Initial upload: amdvlk-2023q3.3 2023.Q3.3-1 2023-12-03 20:20:10 +01:00
Manuel df0ba439fc
upgpkg: obs-vkcapture 1.4.7-1
upstream release
2023-12-03 19:15:11 +01:00
Manuel 6ff795b993
upgpkg: obs-vkcapture 1.4.6-1
upstream release
2023-12-01 20:09:34 +01:00
Manuel 66d2a4511d
Update makepkg.conf 2023-11-30 19:37:02 +01:00
Manuel 4e12c64e30
upgpkg: firefox-syncstorage 0.14.3-1
upstream release
2023-11-30 19:36:15 +01:00
Manuel 55545213bc
upgpkg: discord-electron-openasar 0.0.36+821-1
upstream release
2023-11-29 01:18:04 +01:00
Manuel aaebd5388a
upgpkg: discord-electron 0.0.36-1
upstream release
2023-11-29 01:17:45 +01:00
Manuel 51ebf060d2
upgpkg: clonezilla-unstable 5.5.17-1
upstream release
2023-11-25 21:29:32 +01:00
Manuel 8803ba4b56
upgpkg: sublime-text-4 4.4169-1
upstream release
2023-11-23 23:31:27 +01:00
Manuel a36fa33c47
upgpkg: sublime-text-dev 4.4169-1
upstream release
2023-11-23 23:31:16 +01:00
Manuel 82fbd3c743
upgpkg: discord-electron-openasar 0.0.35+821-1
Update to latest OpenAsar commit
2023-11-23 22:18:18 +01:00
Manuel 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
Manuel bac9365dd6
upgpkg: sublime-text-4 4.4166-1
upstream release
2023-11-20 18:58:06 +01:00
Manuel 4f3f00a940
upgpkg: sublime-text-dev 4.4166-1
upstream release
2023-11-20 18:57:55 +01:00
Manuel e92ee34c5d
upgpkg: sublime-text-dev 4.4165-1
upstream release
2023-11-16 18:56:20 +01:00
Manuel bb7fc99d5f
upgpkg: discord-electron-openasar 0.0.35+816-1
upstream release
2023-11-13 19:50:49 +01:00
Manuel 804d2bd477
upgpkg: discord-electron 0.0.35-1
upstream release
2023-11-13 19:50:30 +01:00
Manuel e0ada1cb4e
upgpkg: obs-vkcapture 1.4.5-1
upstream release
2023-11-09 17:06:03 +01:00
Manuel 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
Manuel 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
Manuel c483c7acdc
upgpkg: gvisor-git 20231106.0-1
upstream release
2023-11-09 14:48:33 +01:00
Manuel ea9cbc9a6b
upgpkg: gvisor-bin 20231106.0-1
upstream release
2023-11-09 14:48:15 +01:00
Manuel a6cd5da461
upgpkg: sublime-text-dev 4.4164-1
upstream release
2023-11-08 17:08:22 +01:00
Manuel 4e6bd1aff1
upgpkg: prometheus-postgresql-exporter 0.15.0-1
upstream release
2023-11-07 18:36:18 +01:00
Manuel 0f8adabe09
upgpkg: clonezilla-unstable 5.5.16-1
upstream release
2023-11-07 18:15:10 +01:00
Manuel 3ee86baca8
upgpkg: discord-electron-openasar 0.0.34+813-1
upstream release
2023-11-07 00:09:21 +01:00
Manuel 0c81657cba
upgpkg: discord-electron 0.0.34-1
upstream release
2023-11-07 00:09:09 +01:00
Manuel 6821e6bbcf
upgpkg: clonezilla-unstable 5.5.15-1
upstream release
2023-11-02 15:40:06 +01:00
Manuel 6d5edd7baf
upgpkg: discord-electron-openasar 0.0.33+813-1
upstream release
2023-10-31 18:52:01 +01:00
Manuel 69456792b5
upgpkg: discord-electron 0.0.33-1
upstream release
2023-10-31 18:51:45 +01:00
Manuel 6c5619e5c9
upgpkg: discord-electron-openasar 0.0.32+813-2
Add unzip as dependency
2023-10-31 12:52:31 +01:00
Manuel 218aa2d708
upgpkg: clonezilla-unstable 5.5.14-1
upstream release
2023-10-30 18:50:14 +01:00
Manuel f51803c4f2
upgpkg: firefox-syncstorage 0.14.1-1
upstream release
2023-10-29 12:58:25 +01:00
Manuel fac7f702e8
upgpkg: discord-electron-openasar 0.0.32+813-1
Update to latest OpenAsar commit
2023-10-25 07:11:20 +02:00
Manuel 35d9cb45ba
upgpkg: sublime-text-dev 4.4160-1
upstream release
2023-10-24 09:09:06 +02:00
Manuel 5c9842adb0
upgpkg: sublime-text-dev 4.4159-1
upstream release
2023-10-20 11:01:59 +02:00
Manuel 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
Manuel 4f84bf4314
upgpkg: discord-electron-openasar 0.0.32+812-1
upstream release
2023-10-17 02:53:47 +02:00
Manuel b5712056b0
upgpkg: discord-electron 0.0.32-1
upstream release
2023-10-17 02:53:35 +02:00
Manuel 88e08b1d6d
upgpkg: gvisor-git 20231009.0-1
upstream release
2023-10-12 21:53:21 +02:00
Manuel 12c586fe62
upgpkg: gvisor-bin 20231009.0-1
upstream release
2023-10-12 21:50:21 +02:00
Manuel b8f306d2a8
upgpkg: clonezilla-unstable 5.5.12-1
upstream release
2023-10-07 20:25:10 +02:00
Manuel c9d0b67834
upgpkg: discord-electron-openasar 0.0.31+812-1
upstream release
2023-10-05 22:30:06 +02:00
Manuel ce943e5084
upgpkg: discord-electron 0.0.31-1
upstream release
2023-10-05 22:29:25 +02:00
Manuel adf6c51a1f
upgpkg: firefox-syncstorage 0.14.0-1
upstream release
2023-10-04 23:45:15 +02:00
Manuel f1574df6e9
upgpkg: obs-vkcapture 1.4.4-1
upstream release
2023-10-03 20:42:00 +02:00
Manuel 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
Manuel 806856866f
upgpkg: prometheus-postgresql-exporter 0.14.0-1
upstream release
2023-09-21 20:00:03 +02:00
Manuel ac264e52cf
upgpkg: sublime-text-dev 4.4156-1
upstream release
2023-09-18 23:51:04 +02:00
Manuel 92d541265d
upgpkg: obs-vkcapture 1.4.3-1
upstream release
2023-09-18 23:50:47 +02:00
Manuel 7c6c39ebd9
upgpkg: discord-electron-openasar 0.0.30+812-1
upstream release
2023-09-18 23:29:46 +02:00
Manuel 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
Manuel e39593a985
upgpkg: gvisor-git 20230904.0-1
upstream release
2023-09-08 23:57:58 +02:00
Manuel db049e5685
upgpkg: gvisor-bin 20230904.0-1
upstream release
2023-09-08 23:55:25 +02:00
Manuel e99aa26030
upgpkg: obs-vkcapture 1.4.2-1
upstream release
2023-09-07 19:59:45 +02:00
Manuel 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
Manuel 91e85d8a11
upgpkg: discord-electron 0.0.29-2
Update Electron version to 24
Update Krisp patch
2023-08-30 23:55:45 +02:00
Manuel 4b238b0477
upgpkg: discord-electron-openasar 0.0.29+812-1
upstream release
2023-08-30 19:23:33 +02:00
Manuel 32bc0bf1d4
upgpkg: discord-electron 0.0.29-1
upstream release
2023-08-30 19:22:50 +02:00
Manuel 8abf193e81
upgpkg: tuned 2.21.0-1
upstream release
2023-08-29 17:44:00 +02:00
Manuel 390b9c53fc
upgpkg: sublime-text-dev 4.4155-1
upstream release
2023-08-26 18:56:00 +02:00
Manuel 18c875d7bd
upgpkg: clonezilla-unstable 5.5.9-1
upstream release
2023-08-18 16:47:42 +02:00
Manuel 892291f73c
upgpkg: clonezilla-unstable 5.5.8-1
upstream release
2023-08-12 17:02:03 +02:00
Manuel cb6fe38dba
upgpkg: discord-electron-openasar 0.0.28+812-1
Update to latest OpenAsar commit
2023-08-12 17:00:38 +02:00
Manuel b0a8905ef4
upgpkg: sublime-text-dev 4.4154-1
upstream release
2023-08-08 18:41:16 +02:00
Manuel d1877600d1
upgpkg: clonezilla-unstable 5.5.7-1
upstream release
2023-08-07 22:35:28 +02:00
Manuel ea0ea4dcb7
sublime-text-4: Rename source files 2023-08-07 17:44:27 +02:00
Manuel f685b8ea8f
sublime-text-dev: Rename source files, Use sha512 2023-08-07 17:43:41 +02:00
Manuel 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
Manuel 73a994cff1
upgpkg: gvisor-bin 20230801.0-1
upstream release
2023-08-05 15:15:05 +02:00
Manuel 5232b91096
upgpkg: sublime-text-4 4.4152-2
Fix silently changed checksums
2023-08-04 20:38:08 +02:00
Manuel 7a63ba662d
upgpkg: sublime-text-4 4.4152-1
upstream release
2023-08-02 21:30:51 +02:00
Manuel 29bdcba26f
upgpkg: sublime-text-4 4.4151-1
upstream release
2023-08-02 21:05:00 +02:00
Manuel 1503b1d0b8
upgpkg: clonezilla-unstable 5.5.5-1
upstream release
2023-08-02 21:04:17 +02:00
Manuel 41b612faca
upgpkg: clonezilla-unstable 5.5.4-1
upstream release
2023-07-29 15:09:01 +02:00
Manuel 69284968ac
upgpkg: clonezilla-unstable 5.5.3-1
upstream release
2023-07-28 20:48:28 +02:00
Manuel 0cd1e6cf16
upgpkg: clonezilla-unstable 5.5.2-1
upstream release
2023-07-27 16:20:40 +02:00
Manuel ca31d75eb8
upgpkg: prometheus-postgresql-exporter 0.13.2-1
upstream release
2023-07-24 22:28:09 +02:00
Manuel d909dffc99
upgpkg: clonezilla-unstable 5.5.1-1
upstream release
2023-07-21 20:45:52 +02:00
Manuel 218e460b90
upgpkg: clonezilla-unstable 5.4.12-1
upstream release
2023-07-13 17:15:00 +02:00
Manuel 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
Manuel 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
Manuel 0359d05d68
upgpkg: gvisor-git 20230710.0-1 2023-07-13 06:38:29 +02:00
Manuel 2650a49fac
upgpkg: gvisor-bin 20230710.0-1
upstream release
2023-07-13 06:38:02 +02:00
Manuel e665d9a64f
upgpkg: obs-vkcapture 1.4.1-1
upstream release
2023-07-13 06:37:14 +02:00
Manuel 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
Manuel 044f004f3a
upgpkg: discord-electron 0.0.27-7
Update optdepends
2023-07-07 22:58:39 +02:00
Manuel 25fff397b1
Fix chroot setup script 2023-07-06 08:22:20 +02:00
Manuel 310039dbd8
upgpkg: clonezilla-unstable 5.4.11-1
upstream release
2023-07-06 08:19:33 +02:00
Manuel 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
Manuel 299ee92288
upgpkg: clonezilla-unstable 5.4.10-1
upstream release
2023-06-28 21:50:14 +02:00
Manuel d08c3f1875
upgpkg: prometheus-postgresql-exporter 0.13.1-1
upstream release
2023-06-27 21:42:04 +02:00
Manuel cb6b22fdc2
upgpkg: prometheus-postgresql-exporter 0.13.0-1
upstream release
2023-06-22 23:58:52 +02:00
Manuel 0d291b7ed6
upgpkg: obs-vkcapture 1.4.0-1
upstream release
2023-06-17 00:56:06 +02:00
Manuel 428082d9ac
upgpkg: prometheus-postgresql-exporter 0.12.1-1
upstream release
2023-06-17 00:55:38 +02:00
Manuel 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
Manuel 8689b4a782
upgpkg: gvisor-git 20230605.0-1 2023-06-08 21:42:39 +02:00
Manuel 3924a50336
upgpkg: gvisor-bin 20230605.0-1
upstream release
2023-06-08 21:41:09 +02:00
Manuel a7a20b9fd0
upgpkg: clonezilla-unstable 5.4.9-1
upstream release
2023-06-08 21:40:39 +02:00
Manuel 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
Manuel 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
Manuel ae61795aab
upgpkg: plasma5-wallpapers-wallpaper-engine 0.5.4-4
Include patch to fix build process
2023-05-28 23:58:32 +02:00
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel c21344130c
Update chroot setup script and add makepkg.conf 2023-05-27 19:58:24 +02:00
Manuel e7fc2abcdd
upgpkg: obs-vkcapture 1.3.3-1
upstream release
2023-05-27 15:15:15 +02:00
Manuel 226d458800
upgpkg: clonezilla-unstable 5.4.8-1
upstream release
2023-05-18 17:58:32 +02:00
Manuel d24fe99295
upgpkg: sublime-text-dev 4.4150-1
upstream release
2023-05-13 23:06:23 +02:00
Manuel 3617e4debb
upgpkg: clonezilla-unstable 5.4.7-1
upstream release
2023-05-13 23:05:52 +02:00
Manuel 48932538f5
upgpkg: tuned 2.20.0-2
Trigger rebuild for Python 3.11
2023-05-05 17:24:45 +02:00
Manuel e6d67b0e52
upgpkg: sublime-text-dev 4.4149-1
upstream release
2023-05-04 20:58:19 +02:00
Manuel bdd26e0f51
upgpkg: gvisor-git 20230501.0-1 2023-05-03 18:57:50 +02:00
Manuel d914671e59
upgpkg: gvisor-bin 20230501.0-1
upstream release
2023-05-03 18:57:19 +02:00
Manuel d85101e522
upgpkg: ntfs2btrfs-git 20230501.r0.ga8fd1a2-1
upstream release
2023-05-01 23:23:46 +02:00
Manuel 4024da54f4
upgpkg: ntfs2btrfs 20230501-1
upstream release
2023-05-01 23:23:32 +02:00
Manuel 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
Manuel a0d23ad7ef
upgpkg: discord-electron 0.0.27-1
upstream release
2023-04-29 14:53:06 +02:00
Manuel b903e81124
upgpkg: clonezilla-unstable 5.4.6-2
Fix silently changed checksum
2023-04-29 14:52:00 +02:00
Manuel 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
Manuel 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
Manuel 0df4b7ff3a
upgpkg: gvisor-git 20230417.0-1 2023-04-19 21:00:09 +02:00
Manuel 99bf69621c
upgpkg: gvisor-bin 20230417.0-1
upstream release
2023-04-19 20:59:19 +02:00
Manuel 84b48e8713
upgpkg: discord-electron-openasar 0.0.26+803-2
Update Electron version to v22
2023-04-17 22:30:37 +02:00
Manuel f4edcadef0
upgpkg: discord-electron-openasar 0.0.26+803-1
Update to latest OpenAsar commit
2023-04-16 22:30:44 +02:00
Manuel 1acdf50880
upgpkg: clonezilla-unstable 5.4.6-1
upstream release
2023-04-16 22:22:04 +02:00
Manuel fe947b21ed
upgpkg: discord-electron-openasar 0.0.26+800-1
Update to latest OpenAsar commit
2023-04-06 06:55:37 +02:00
Manuel 872eb64faa
upgpkg: obs-vkcapture 1.3.2-1
upstream release
2023-04-04 00:58:31 +02:00
Manuel c8eb826379
Initial upload: discord-electron-openasar 0.0.26+795-1 2023-04-03 08:35:46 +02:00
Manuel f277aa9dbd
Rename package to discord-electron, PKGBUILD refactor 2023-04-03 08:32:00 +02:00
Manuel 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
Manuel 4fd007bb9f
cage-vi: Update to latest master that includes vi patch 2023-04-02 21:12:32 +02:00
Manuel 05dacc1321
upgpkg: clonezilla-unstable 5.4.5-1
upstream release
2023-04-02 01:36:18 +02:00
Manuel 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
Manuel 57c47c4d64
upgpkg: obs-vkcapture 1.3.1-1
upstream release
2023-03-28 00:58:31 +02:00
Manuel f366caae8a
upgpkg: prometheus-postgresql-exporter 0.12.0-1
upstream release
2023-03-22 19:56:38 +01:00
Manuel 6fd0e3aa05
upgpkg: clonezilla-unstable 5.4.4-1
upstream release
2023-03-22 19:56:10 +01:00
Manuel c29e4a938d
upgpkg: clonezilla-unstable 5.4.3-1
upstream release
2023-03-18 22:12:14 +01:00
Manuel b6af281e9b
upgpkg: clonezilla-unstable 5.4.2-1
upstream release
2023-03-16 21:45:47 +01:00
Manuel dcab26fcf3
upgpkg: sublime-text-dev 4.4148-1
upstream release
2023-03-15 19:04:40 +01:00
Manuel 32463dab64
upgpkg: gvisor-git 20230306.0-1 2023-03-09 20:39:07 +01:00
Manuel 6080c9b2a6
upgpkg: gvisor-bin 20230306.0-1
upstream release
2023-03-09 20:38:08 +01:00
Manuel 395a67d8f0
upgpkg: firefox-syncstorage 0.13.6-1
upstream release
remove obsolete openssl compatibility parameter
2023-03-07 21:57:07 +01:00
Manuel 5884d3904f
upgpkg: firefox-syncstorage 0.13.5-1
upstream release
2023-03-04 23:00:00 +01:00
Manuel c0ba92f105
upgpkg: spot-client 0.4.0-1
upstream release
2023-02-24 23:24:08 +01:00
Manuel 4e0f9a096e
upgpkg: firefox-syncstorage 0.13.4-1
upstream release
2023-02-24 23:23:47 +01:00
Manuel 31a2a13f07
upgpkg: clonezilla-unstable 5.4.0-1
upstream release
2023-02-21 22:30:05 +01:00
Manuel 5d6aa86160
upgpkg: tuned 2.20.0-1
upstream release
2023-02-18 23:38:32 +01:00
Manuel 1373ba279d
upgpkg: firefox-syncstorage 0.13.2-1
upstream release
2023-02-18 23:37:46 +01:00
Manuel d1ea287c2f
upgpkg: gvisor-git 20230214.0-1 2023-02-18 22:55:33 +01:00
Manuel 31fc4a9a8b
upgpkg: gvisor-bin 20230214.0-1
upstream release
2023-02-18 22:55:17 +01:00
Manuel 8dfb31458f
upgpkg: bino 2.1-1
upstream release
2023-02-18 22:53:48 +01:00
Manuel 1abef8ab74
upgpkg: discord-electron-bin 0.0.25-1
upstream release
2023-02-14 20:59:04 +01:00
haawda 01d0e8bc60 update 2023-01-23 19:57:28 +01:00
Manuel 72874d274e
upgpkg: obs-vkcapture 1.3.0-1
upstream release
2023-01-17 17:10:21 +01:00
Manuel 7ba91c18cb
upgpkg: discord-electron-bin 0.0.24-1
upstream release
2023-01-15 20:44:49 +01:00
Manuel da4062644b
upgpkg: clonezilla-unstable 5.3.6-1
upstream release
2023-01-10 16:40:49 +01:00
Manuel ad9d01d057
upgpkg: clonezilla-unstable 5.3.5-1
upstream release
2023-01-08 17:08:46 +01:00
Manuel f6926a9d8f
upgpkg: clonezilla-unstable 5.3.4-1
upstream release
2023-01-08 15:20:16 +01:00
Manuel 42e209e49a
upgpkg: gvisor-git 20230102.0-1 2023-01-04 23:07:26 +01:00
Manuel bdc1308751
upgpkg: gvisor-bin 20230102.0-1
upstream release
2023-01-04 23:07:02 +01:00
Manuel 39d038f3ba
upgpkg: clonezilla-unstable 5.3.3-1
upstream release
2022-12-30 14:05:48 +01:00
Manuel 7d45c4876a
upgpkg: sublime-text-dev 4.4147-1
upstream release
2022-12-22 17:53:06 +01:00
Manuel 483589bb94
upgpkg: firefox-syncstorage 0.13.1-1
upstream release
2022-12-16 21:25:50 +01:00
Manuel 88eb6634f2
upgpkg: sublime-text-dev 4.4146-1
upstream release
2022-12-15 13:00:07 +01:00
Manuel 9b7ffc00cf
upgpkg: sublime-text-dev 4.4145-1
upstream release
2022-12-14 10:08:07 +01:00
Manuel ee817d5563
upgpkg: sublime-text-dev 4.4144-4 2022-12-14 08:08:55 +01:00
Manuel 4d63fd9c74
Initial upload: waifu2x-ncnn-vulkan 20220728-1 2022-12-12 22:12:31 +01:00
Manuel 1b7c8a975d
sublime-text-3: Refactor package function
pkgrel bump not needed as same package is produced
2022-12-12 12:59:41 +01:00
Manuel 8cfc99d12e
upgpkg: sublime-text-dev 4.4141-4
Use correct name for WMClass in desktop file
2022-12-12 12:02:48 +01:00
Manuel ab8a1a063b
upgpkg: sublime-text-4 4.4143-4
Use correct name for WMClass in desktop file
2022-12-12 12:02:35 +01:00
Manuel 922102daef
upgpkg: sublime-text-3 3.3211-4
Use correct name for WMClass in desktop file
2022-12-12 12:02:06 +01:00
Manuel 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
Manuel 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
Manuel 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
Manuel 8a99ae5f79
upgpkg: discord-electron-bin 0.0.22-1
upstream release
2022-12-10 05:00:10 +01:00
Manuel 741d316bde
spot-client: Use correct comment this time 2022-12-08 22:10:45 +01:00
Manuel 9a44a0d632
spot-client: Revert removal of comment 2022-12-08 22:06:38 +01:00
Manuel 2c26b0761c
upgpkg: spot-client 0.3.3-1
upstream release
2022-12-08 21:56:17 +01:00
Manuel a3bde23a8c
upgpkg: gvisor-git 20221205.0-1 2022-12-08 21:18:26 +01:00
Manuel 420b390205
upgpkg: gvisor-bin 20221205.0-1
upstream release
2022-12-08 21:18:06 +01:00
Manuel 08bf7c405d
Generically use cmake for build instead of make directly 2022-12-06 22:10:20 +01:00
Manuel 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
Manuel 939faa9efa
Initial upload: ntfs2btrfs 20220812-1 2022-12-04 08:00:07 +01:00
Manuel 3845fa28ff
upgpkg: obs-vkcapture 1.2.2-1
upstream release
2022-11-29 19:08:19 +01:00
Manuel 920e68a30a
upgpkg: clonezilla-unstable 5.3.1-1
upstream release
2022-11-27 21:15:00 +01:00
Manuel 920dad2fc1
upgpkg: clonezilla-unstable 5.3.0-1
upstream release
2022-11-27 19:41:02 +01:00
Manuel 64533bf083
upgpkg: plasma5-wallpapers-wallpaper-engine 0.5.4-3
Bump glslang version
2022-11-23 18:02:43 +01:00
Manuel 0789e79be9
Use unique file names for sources 2022-11-23 18:00:52 +01:00
Manuel 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
Manuel 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
Manuel 242661b737
Update indentation and formatting 2022-11-15 17:34:12 +01:00
Manuel 95be8e0fc1
upgpkg: firefox-syncstorage 0.13.0-1
upstream release
2022-11-15 17:25:15 +01:00
Manuel 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
Manuel 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
Manuel 16cbab618f
upgpkg: sublime-text-3 3.3211-2
Allow installation next to sublime-text
2022-11-15 17:16:35 +01:00
Manuel 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
Manuel ec7b51fcdd
upgpkg: sublime-text-4 4.4143-1
upstream release
2022-11-11 16:15:27 +01:00
Manuel 27b50850b2
Remove redundant editorconfigs 2022-11-10 17:53:37 +01:00
Manuel a8a34013a5
Add script to check gVisor version 2022-11-10 17:48:08 +01:00
Manuel 84a02eb30a
gvisor-bin: Add .gitignore 2022-11-10 17:46:52 +01:00
Manuel 72805e9a1f
upgpkg: sublime-text-4 4.4142-1
upstream release
2022-11-10 17:42:00 +01:00
Manuel 70eee4c223
upgpkg: sublime-text-dev 4.4141-1
upstream release
2022-11-10 17:41:24 +01:00
Manuel 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
Manuel 1b0c4aa2c9
bino: Update description 2022-11-09 18:09:58 +01:00
Manuel 696a4a2f4a
Deleted package: glewmx 2022-11-09 18:00:51 +01:00
Manuel c9385d3189
upgpkg: qvr 4.0.1-3
Fix wrong license
2022-11-09 17:56:28 +01:00
Manuel ace330850d
upgpkg: qvr 4.0.1-2
Fix wrong description and URL
2022-11-09 17:53:10 +01:00
Manuel 39efcecb36
upgpkg: bino 2.0-1
upstream release
2022-11-09 17:38:40 +01:00
Manuel f792c81786
Initial upload: qvr 4.0.1-1 2022-11-09 17:38:00 +01:00
Manuel 1bd4107088
upgpkg: gvisor-git 20221102.1-1 2022-11-05 12:46:20 +01:00
Manuel 2257772252
upgpkg: gvisor-bin 20221102.1-1
upstream release
2022-11-05 12:45:51 +01:00
Manuel 3c6e6ebb05
upgpkg: firefox-syncstorage 0.12.5-1
upstream release
2022-11-03 17:14:18 +01:00
Manuel a76923b67b
upgpkg: sublime-text-dev 4.4140-1
upstream release
2022-10-31 22:44:10 +01:00
Manuel fd8524cebd
upgpkg: obs-vkcapture 1.2.1-1
upstream release
2022-10-30 14:15:53 +01:00
Manuel a395017635
upgpkg: clonezilla-unstable 5.2.7-1
upstream release
2022-10-28 12:41:58 +02:00
Manuel fa94f32802
upgpkg: sublime-text-dev 4.4139-1
upstream release
2022-10-28 12:39:51 +02:00
Manuel 5e6744983f
Update README 2022-10-23 12:44:10 +02:00
Manuel 37a94ece2c
Add .editorconfig 2022-10-23 12:43:46 +02:00
Manuel 48f278ad44
Remove obsolete install and gitignore files 2022-10-23 11:18:17 +02:00
Manuel 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
Manuel 595ae192c1
upgpkg: discord-electron-bin 0.0.21-1
upstream release
2022-10-23 07:30:02 +02:00
Manuel 49383ed236
Add License 2022-10-18 00:03:56 +02:00
Manuel a74e1ee87c
Move scripts 2022-10-18 00:03:21 +02:00
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 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
Manuel 9f7af08ef5
Delete discord-electron-bin 2022-10-17 23:59:00 +02:00
Manuel 4f49445efa
Move packages 2022-10-17 23:58:40 +02:00
Manuel 7b27a45468
Update .gitignore 2022-10-17 23:57:26 +02:00
Manuel bed59f9734
Update README 2022-10-17 23:52:50 +02:00
Manuel b690ed4858
Update to build 4138 2022-10-17 11:17:09 +02:00
Manuel 9933b6954e
Update to version 5.2.6 2022-10-16 21:10:33 +02:00
Manuel 738c7f7c72
Version 0.12.4 2022-10-12 20:44:16 +02:00
Manuel a5c019afc5
cage-vi: Update required dependencies 2022-10-02 20:35:34 +02:00
Manuel 1964c5cea8
Version 0.12.3 2022-09-24 21:38:02 +02:00
Manuel f81abdb920
Update to build 4137 2022-09-23 23:43:40 +02:00
Manuel 65f387ee85
Initial commit with version 0.12.2 2022-09-23 22:36:18 +02:00
Manuel 5f454d6520
cage-vi: Minimize necessary dependencies 2022-09-23 18:47:36 +02:00
Manuel dd3071719e
Add cage-vi 2022-09-23 17:22:56 +02:00
Manuel 69aa9255bb
Update to 0.11.1 2022-09-20 23:34:26 +02:00
Manuel 6262bc5fa7
Initial commit 2022-09-15 20:44:17 +02:00
Manuel 5d4cfb5769
Downgrade Electron version to support screen sharing 2022-09-15 20:33:01 +02:00
Manuel 13032bd20c
Update discord-electron-bin to 0.0.20 2022-09-15 20:17:33 +02:00
Manuel 24e6c20ec0
Update to build 4136 2022-09-15 15:53:19 +02:00
Manuel 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
Manuel 277c8a0b34
Release 20220905.0 2022-09-07 18:28:23 +02:00
Manuel a6279bbc52
Bump to 20220905 2022-09-07 18:28:02 +02:00
Manuel 2918b6b331
Initial commit with version 1.2.0 2022-08-27 22:50:06 +02:00
Manuel 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
Manuel ea88447430
Add discord-electron-bin 2022-08-22 20:14:07 +02:00
Manuel 6258865f96
Version 2.19.0 2022-08-19 23:13:11 +02:00
haawda 38bcdca8c3 update 2022-08-15 12:28:45 +02:00
Manuel db5f4adedf
Initial commit 2022-08-14 13:39:34 +02:00
Manuel 144fe12d28
Bump to 20220808 2022-08-14 13:01:19 +02:00
Manuel 24712bc0b0
Release 20220808.0 2022-08-14 13:01:02 +02:00
Manuel 3112b7987d
Update checksum 2022-08-07 13:28:52 +02:00
Manuel c36e9eace7
Initial commit 2022-08-01 11:21:23 +02:00
Manuel 5de5c93142
Update to version 0.5.4 2022-07-31 14:32:36 +02:00
Manuel bd25c2efde
Update to 0.11.0 2022-07-28 16:23:44 +02:00
Manuel 1cbfd7fdd3
Bump to 20220713 2022-07-15 23:57:49 +02:00
Manuel 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
Manuel 32d3cf26e0
Update to version 5.2.2 2022-07-10 23:56:53 +02:00
Manuel fae32856ad
Release 20220704.0 2022-07-10 23:54:09 +02:00
Manuel dbc0828d1c
Bump to 20220704 2022-07-10 23:53:35 +02:00
Manuel 41c97b53b3
Update to version 5.2.1 2022-07-06 23:35:05 +02:00
Manuel 2fdf17d6e1
Add missing python3 pycs 2022-07-04 17:14:54 +02:00
Manuel 841d6fa4bb
Bump to 20220627 2022-07-02 22:31:12 +02:00
Manuel 44d7884908
Release 20220627.0 2022-07-02 22:30:54 +02:00
Manuel c02a18702e
Release 20220621.0 2022-06-23 19:06:17 +02:00
Manuel 1eeab7daf3
Bump to 20220621 2022-06-23 19:05:55 +02:00
Manuel cb7fe24648
Update ffmpeg4.4.patch checksum 2022-06-15 00:37:21 +02:00
Manuel 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
Manuel 9c51a1fff2
Release 20220606.0 2022-06-14 00:44:03 +02:00
Manuel f522e94d5c
Bump to 20220606 2022-06-14 00:44:03 +02:00
Manuel 77f2b6a0c3
Patch ffmpeg 5.0 compatibility
Contributed by AUR user @gruenfron
2022-06-14 00:35:20 +02:00
Manuel 667034a50e
Refactor PKGBUILD 2022-06-14 00:28:51 +02:00
Manuel fb97c0c906
Update to version 5.1.12 2022-06-12 19:05:37 +02:00
Manuel 42153a938b
Update to version 0.5.3 2022-06-11 22:43:38 +02:00
Manuel 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
Manuel 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
Manuel 44a5055f3b
Update to build 4134 2022-05-27 19:53:33 +02:00
Manuel cce2aa689c
Update to version 5.1.7 2022-05-26 17:19:48 +02:00
Manuel c63b4bb45a
Update to version 5.1.5 2022-05-22 21:59:41 +02:00
Manuel 444975b5c2
Release 20220510.0 2022-05-22 21:43:09 +02:00
Manuel 1a0d4dcef6
Bump to 20220516 2022-05-22 21:42:32 +02:00
Manuel 64ad93d140
Update to version 5.1.3 2022-05-13 17:12:16 +02:00
Manuel 66025ede26
Update to version 5.1.2 2022-05-11 00:03:26 +02:00
Manuel 2efb26ea9a
Update to version 0.5.2 2022-05-06 22:44:04 +02:00
Manuel d471cfea58
Update to version 5.1.1 2022-05-02 22:22:14 +02:00
Manuel e53187dfcc
Release 20220425.0 2022-04-30 19:42:14 +02:00
Manuel 4d175f54b3
Bump to 20220425 2022-04-30 19:41:19 +02:00
Manuel f498eee50e
Update to version 5.1.0 2022-04-28 18:14:35 +02:00
Manuel 99756c9412
Update dependencies 2022-04-23 19:42:01 +02:00
Manuel 698e1a973d
Update to version 0.5.1 2022-04-23 17:52:49 +02:00
Manuel c71bf81496
Initial commit with version 0.5.0 2022-04-20 22:01:03 +02:00
Manuel 8c5bb849e1
Update to version 5.0.12 2022-04-20 17:22:49 +02:00
Manuel 38270842ad
Update to version 5.0.11 2022-04-19 12:09:16 +02:00
Manuel ad9651dd55
Update to version 5.0.10 2022-04-18 15:25:54 +02:00
Manuel 25bf65fe66
Update to version 5.0.9 2022-04-13 23:56:11 +02:00
Manuel 894f39d938
Update to version 5.0.7 2022-04-09 21:20:48 +02:00
Manuel dae4eff819
Update to version 5.0.6 2022-03-30 00:17:11 +02:00
Manuel 4ae0a00e99
Update spot-client to 0.3.2 2022-03-28 21:58:37 +02:00
Manuel 411e0e4bef
Bump to 20220328, change build output directory 2022-03-28 21:12:11 +02:00
Manuel dbeb32aaab
Include containerd shim binary 2022-03-28 06:46:50 +02:00
Manuel 2a0929d868
Build using go and switch versioning scheme 2022-03-28 06:43:12 +02:00
Manuel cf89b2a664
Add support for ARMv8 2022-03-27 07:58:18 +02:00
Manuel d916f2b869
Release 20220228.0 2022-03-27 07:20:07 +02:00
Manuel 67b50f2204
Update to version 5.0.5 2022-03-27 07:15:11 +02:00
Manuel 3bb4130341
Update to build 4131 2022-03-25 23:58:25 +01:00
Manuel c39956b6dc
Fix unsupported git protocol still being used
Thanks goes to @a821 for the hint
2022-03-24 19:43:26 +01:00
Manuel 9d8f19b1a6
Update to build 4130 2022-03-23 22:28:00 +01:00
Manuel 5f62ffc115
Update to version 5.0.4 2022-03-13 20:20:16 +01:00
Daniel Peukert 8e6f510538 Disable LTO for spot-client 2022-03-08 12:33:04 +01:00
Daniel Peukert f8f9518535 Disable clippy tests for spot-client 2022-03-08 12:08:50 +01:00
Manuel 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
Manuel 1721a123a8
Update to build 4129 2022-02-24 16:20:05 +01:00
Manuel 6b773ff1c2
Update to build 4128 2022-02-22 15:31:31 +01:00
Manuel ed26520533
Update to version 5.0.3 2022-02-20 15:51:47 +01:00
Manuel 27a3a0912b
Update to version 5.0.2 2022-02-19 17:52:31 +01:00
Manuel 00ae1a3844
Update email 2022-02-13 15:16:15 +01:00
Manuel f0441047ba
Update email 2022-02-13 15:15:45 +01:00
Manuel e537460e56
Update email 2022-02-13 15:15:29 +01:00
Manuel 890c618a18
Update email 2022-02-13 15:15:11 +01:00
Manuel 85931efab9
Initial commit with version 5.0.1 2022-02-11 12:41:05 +01:00
Manuel e43b4b3bc9
Update to build 4127 2022-02-11 11:01:46 +01:00
Manuel 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
Daniel Peukert eab9b3c628 Update spot-client to 0.3.1 2022-01-24 10:03:46 +01:00
Manuel 4c91370cb1
Update to 0.10.1 2022-01-19 21:38:57 +01:00
Manuel 558f58d6fa
Version 2.17.0 2022-01-19 21:38:19 +01:00
Daniel Peukert 0de59833aa Update spot-client to 0.3.0 2022-01-16 16:36:22 +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
Manuel c942c5b8a8
Version 1.6.8 2021-12-24 11:48:20 +01:00
Manuel 499edeb25f
Update to build 4126 2021-12-23 12:51:44 +01:00
Daniel Peukert f37597e673 Fix failing Clippy tests for spot-client 2021-12-22 01:37:32 +01:00
Manuel 60f92875ed
Update to build 4125 2021-12-17 12:07:02 +01:00
Manuel 7b3aa4604c
Update to build 4124 2021-12-13 12:56:07 +01:00
Manuel 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
Brad Erhart 1942cf761f
Updating gVisor to v20211115.0
Signed-off-by: Brad Erhart <>
2021-11-19 00:12:46 -08:00
Daniel Peukert ddfec238c3 Update spot-client to 0.2.2 2021-11-10 18:26:46 +01: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
Manuel 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
Manuel d5c1c76f9a
Update to build 4121 2021-10-26 21:59:47 +02:00
Manuel 43edaeb809
Update to build 4121 2021-10-26 21:59:41 +02:00
Manuel 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
Daniel Peukert 3e9025506d Update spot-client to 0.2.1 2021-10-19 07:43:10 +02:00
Manuel fc9cc86c96
Rename package since it is a vcs package 2021-10-17 10:22:42 +02:00
Manuel 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
Manuel d294fbed7a
Update to build 4118 2021-10-15 08:53:12 +02:00
Daniel Peukert 9ed48b38d9 Update spot-client to 0.2.0.1 2021-10-09 00:01:40 +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
Manuel 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
Daniel Peukert bf314710db Update spot-client to 0.2.0 2021-09-10 02:10:25 +02:00
Brad Erhart d657c4f716 Updating gVisor to v20210830.0 2021-09-09 03:55:15 -07:00
Manuel 9d23dc8600
Update to 0.10.0 2021-09-05 23:05:21 +02:00
Manuel 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
Daniel Peukert bfccd96e88 Update spot-client to 0.1.16 2021-08-17 23:23:48 +02:00
Manuel 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
Daniel Peukert a66e905ac9 Disable the spot-client Clippy test 2021-07-31 13:57:42 +02: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
Manuel 0ec00ccdb6
Update to build 4113 2021-07-14 13:39:32 +02:00
Manuel 694366e0eb
Update to build 4113 2021-07-14 13:39:29 +02:00
Manuel cf358db55b
Update to build 4112 2021-07-13 16:10:56 +02:00
Manuel a427cce1f4
Update to build 4111 2021-07-12 13:41:22 +02:00
Manuel 083b83bf24
Update to build 4110 2021-07-06 18:54:00 +02:00
Manuel 1c8c8625c4
Change back to base repo 2021-07-04 17:03:36 +02:00
Daniel Peukert af3398d9f6 Update spot-client to 0.1.15 2021-06-30 22:36:24 +02:00
Brad Erhart b9f49bc3f0 Updating to gVisor v20210628.0 2021-06-30 10:04:05 -07:00
Manuel 3ba730d142
Update to build 4109 2021-06-22 18:12:04 +02:00
Daniel Peukert 98c971d08a Disable spot-client test timeout 2021-05-31 15:27:33 +02:00
Brad Erhart 99c95c4f62 Updating gVisor to v20210518.0 2021-05-27 23:56:44 -07:00
Manuel 76e247104b
Update to build 4107 2021-05-21 13:43:42 +02:00
Manuel 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
Daniel Peukert 37d87444b3 Update spot-client to 0.1.14 2021-05-11 01:45:09 +02:00
Brad Erhart e22456e6bc Updating gVisor to v20210419.0 2021-04-21 18:51:14 -07:00
Daniel Peukert c112e14c5b Update spot-client to 0.1.13 2021-04-13 10:24:16 +02:00
Manuel f0a6f43985
Update to 0.9.0 2021-04-02 15:07:13 +02:00
Manuel 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
Daniel Peukert f6b81c11a6 Update spot-client to 0.1.12 2021-03-24 18:10:37 +01:00
Daniel Peukert 71cec33e7d Update spot-client to 0.1.11 2021-03-17 23:03:00 +01:00
Daniel Peukert 6bb034a528 Use merged meson test fix commit for spot-client 2021-03-14 20:49:16 +01:00
Daniel Peukert 9d395f24da Add missing checkdepends to spot-client 2021-03-14 18:09:38 +01:00
Daniel Peukert 6cc2200153 Fix up meson & cargo arguments for spot-client 2021-03-14 17:40:24 +01:00
Daniel Peukert 0ce3385263 Update spot-client to 0.1.10 2021-03-14 09:34:04 +01:00
Jonathan Liu 4718a1475f Update to 0.0.23-1 2021-03-14 16:56:31 +11:00
Daniel Peukert 6494e8db56 Update spot-client to 0.1.9 2021-03-04 00:00:50 +01:00
Daniel Peukert 10a697af02 Update spot-client to 0.1.8 2021-02-22 17:32:13 +01:00
Daniel Peukert 2d12250a6e Add spot-client and spot-client-git 2021-02-18 14:07:27 +01:00
graysky 077715093e Update to 2021.1.1.001-1 2021-02-01 20:32:00 -05:00
Manuel 1bc2f91069
Update checksum that I forgot about 2021-01-24 21:56:58 +01:00
Manuel dac049e54c
Fix accidentally broken service file 2021-01-24 21:51:38 +01:00
Manuel 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
Manuel 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
Manuel 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
Manuel 3e87249e98 Version 2.14.0 2020-06-26 16:14:51 +02:00
Manuel 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
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
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
graysky 8c9e5f95c2 Update to 2018.3.011-1 2018-11-10 06:12:42 -05:00
perqin 653c964a39 Update to 3.3176 2018-10-16 00:36:44 +08:00
William J. Bowman a79be0ea10
Updated to 0.8.2-1 2018-06-30 00:29:21 -04: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
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
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
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
Iwan Timmer cab411550f Update to version 2.7.1 2017-01-24 11:30:00 +01: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
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
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
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
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
108 changed files with 6613 additions and 104 deletions

View File

@ -1,26 +0,0 @@
pkgbase = systemtap
pkgdesc = Infrastructure to simplify the gathering of information about the running Linux system
pkgver = 4.8
pkgrel = 1
url = http://sourceware.org/systemtap/
install = systemtap.install
arch = x86_64
arch = i686
license = GPL
makedepends = python-setuptools
makedepends = python2-setuptools
makedepends = xmlto
depends = elfutils
depends = nss
depends = python
depends = cpio
optdepends = sqlite3: for storing results in a database
source = systemtap-4.8.tar.gz::https://sourceware.org/ftp/systemtap/releases/systemtap-4.8.tar.gz
source = systemtap-4.8.tar.gz.asc::https://sourceware.org/ftp/systemtap/releases/systemtap-4.8.tar.gz.sig
validpgpkeys = F75E6545B9F8AA15AA932A444DE16D68FDBFFFB8
validpgpkeys = 5D38116FA4D3A7CC77E378D37E83610126DCC2E8
validpgpkeys = 159B0DF71150B8A8539A8802D7C256443CC637CA
sha512sums = fdcbc48ba17b2155c1419d99147a4cfbee2e69db945bfd0e6881b71ab11165bd23ea7ce9456856ae36807fb18f9934880a6b7c44456b63833ea260038744d9f2
sha512sums = SKIP
pkgname = systemtap

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

28
.gitignore vendored
View File

@ -1,5 +1,25 @@
*.tar.xz
*.tar.gz
# package src/pkg archives, downloaded sources
*.tar*
*.tgz
*.zip
# signed sources
*.asc
pkg
src
*.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

View File

@ -1,56 +0,0 @@
# Maintainer: Christian Pellegrin (chripell) <chripell@fsfe.org>
# Original Maintainer: An Nguyen (stk) <an@linux.com>
# Original Maintainer: George Angelopoulos <george@usermod.net>
# Original Maintainer: Christian Rebischke <Chris.Rebischke@archlinux.org>
# Original Maintainer: dront78 <dront78@gmail.com>
pkgname=systemtap
pkgver=4.8
pkgrel=1
pkgdesc="Infrastructure to simplify the gathering of information about the running Linux system"
url="http://sourceware.org/systemtap/"
arch=('x86_64' 'i686')
license=('GPL')
depends=('elfutils' 'nss' 'python' 'cpio')
makedepends=('python-setuptools' 'python2-setuptools' 'xmlto')
optdepends=('sqlite3: for storing results in a database')
source=("${pkgname}-${pkgver}.tar.gz::https://sourceware.org/ftp/systemtap/releases/${pkgname}-${pkgver}.tar.gz"
"${pkgname}-${pkgver}.tar.gz.asc::https://sourceware.org/ftp/systemtap/releases/${pkgname}-${pkgver}.tar.gz.sig"
)
sha512sums=('fdcbc48ba17b2155c1419d99147a4cfbee2e69db945bfd0e6881b71ab11165bd23ea7ce9456856ae36807fb18f9934880a6b7c44456b63833ea260038744d9f2'
'SKIP')
install='systemtap.install'
# Note, you need to run:
# gpg --recv-keys --keyserver hkps://keys.openpgp.org/ 0xD7C256443CC637CA
# unless /etc/pacman.d/gnupg/gpg.conf is updated.
validpgpkeys=('F75E6545B9F8AA15AA932A444DE16D68FDBFFFB8' # "Serhei Makarov (for Red Hat 2018..onwards) <smakarov@redhat.com>"
'5D38116FA4D3A7CC77E378D37E83610126DCC2E8'
'159B0DF71150B8A8539A8802D7C256443CC637CA')
prepare() {
cd "${pkgname}-${pkgver}"
}
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
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
rmdir "${pkgdir}/var/run/stap-server/"
rmdir "${pkgdir}/var/run/"
rm -r "${pkgdir}/usr/include"
}

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.1
pkgrel = 1
url = https://bino3d.org/
arch = x86_64
license = GPL3
makedepends = cmake
makedepends = qt6-tools
depends = qt6-multimedia
depends = qt6-svg
depends = qvr
source = https://bino3d.org/releases/bino-2.1.tar.gz
source = https://bino3d.org/releases/bino-2.1.tar.gz.sig
validpgpkeys = 2F61B4828BBA779AECB3F32703A2A4AB1E32FD34
sha512sums = 6a7e22a311bdfce4fbfb4b0dedebc5524ea08af773d14e6ca235c3693c7aacea40b1941302e2a9c20564a0783b4728b38db9f6cbb727289df668d50dbba0180d
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.1
pkgrel=1
pkgdesc='A video player with focus on 3D and Virtual Reality'
arch=('x86_64')
url='https://bino3d.org/'
license=('GPL3')
depends=('qt6-multimedia' 'qt6-svg' 'qvr')
makedepends=('cmake' 'qt6-tools')
source=(https://bino3d.org/releases/$pkgname-$pkgver.tar.gz{,.sig})
sha512sums=('6a7e22a311bdfce4fbfb4b0dedebc5524ea08af773d14e6ca235c3693c7aacea40b1941302e2a9c20564a0783b4728b38db9f6cbb727289df668d50dbba0180d'
'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.4
pkgrel = 1
url = https://clonezilla.org
arch = any
license = GPL2
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.4.tar.xz
source = usrbin.patch
sha512sums = 8538dbcf13fccea246fb027708230bfe31f864e1f86800532fb34556cfd29aaa7f054dc4f0ff07438492852f129ac46aa1c6acde57804fd5567e82ac149480f0
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.4
pkgrel=1
pkgdesc="ncurses partition and disk imaging/cloning program"
arch=('any')
url="https://clonezilla.org"
license=('GPL2')
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=('8538dbcf13fccea246fb027708230bfe31f864e1f86800532fb34556cfd29aaa7f054dc4f0ff07438492852f129ac46aa1c6acde57804fd5567e82ac149480f0'
'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,31 @@
pkgbase = discord-electron-openasar
pkgdesc = Discord packaged with OpenAsar using system provided electron (v30) for increased security and performance
pkgver = 0.0.54+827
pkgrel = 1
url = https://discord.com
install = discord-electron-openasar.install
arch = x86_64
license = custom
makedepends = git
makedepends = asar
makedepends = nodejs
makedepends = curl
makedepends = python-html2text
depends = electron30
depends = libxss
depends = unzip
optdepends = libpulse: Pulseaudio support
optdepends = libappindicator-gtk3: Systray indicator support
optdepends = xdg-utils: Open files
optdepends = rizin: Allow patching Krisp support
provides = discord
conflicts = discord
options = !strip
source = https://dl.discordapp.net/apps/linux/0.0.54/discord-0.0.54.tar.gz
source = discord-launcher.sh
source = git+https://github.com/goosemod/openasar.git#commit=4f264d860a5a6a32e1862ce26178b9cf6402335d
sha512sums = ceb6265e846fafd27e3c2941f00f0a2d4e045abe5471a2691b070bedb330ef345edee838a706b27ff65ecce40aec46b1a1dd9c4bb9763dadaa907ec181c1a222
sha512sums = 9d00f9d2e05c2ba31c930c066f247954700bb0f96f2fc605e61c3973d7dacf962bf372659b71e05e5d8d4e152cc884bf12ec1fb5ecbfc4da55d22ab2591c4c40
sha512sums = 055bbe5fbc63a715ab8357db8aabacad282e3d176b48e322d7133a5887291577687456bbfaf7b832d19f13b1a5a373e2c0f6f82664887509feb3c193ee4f1849
pkgname = discord-electron-openasar

View File

@ -0,0 +1,91 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=discord-electron-openasar
_pkgname=discord
pkgver=0.0.54+827
_pkgver=${pkgver%%+*}
pkgrel=1
_electronver=30
_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' 'python-html2text')
optdepends=(
'libpulse: Pulseaudio support'
'libappindicator-gtk3: Systray indicator support'
'xdg-utils: Open files'
'rizin: Allow patching Krisp support'
)
source=("https://dl.discordapp.net/apps/linux/${_pkgver}/${_pkgname}-${_pkgver}.tar.gz"
'discord-launcher.sh'
"git+https://github.com/goosemod/openasar.git#commit=4f264d860a5a6a32e1862ce26178b9cf6402335d")
sha512sums=('ceb6265e846fafd27e3c2941f00f0a2d4e045abe5471a2691b070bedb330ef345edee838a706b27ff65ecce40aec46b1a1dd9c4bb9763dadaa907ec181c1a222'
'9d00f9d2e05c2ba31c930c066f247954700bb0f96f2fc605e61c3973d7dacf962bf372659b71e05e5d8d4e152cc884bf12ec1fb5ecbfc4da55d22ab2591c4c40'
'055bbe5fbc63a715ab8357db8aabacad282e3d176b48e322d7133a5887291577687456bbfaf7b832d19f13b1a5a373e2c0f6f82664887509feb3c193ee4f1849')
_krisp_b2sum='c4e49b1a0be64cacd23474c5e474130084755f2de36af01686ce94c6eceea67426b6d6aa81889a418f9d08476476e99d63479b6131d1f7eaef987ecf4d779cf9'
# 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" \
-e "s|@KRISPB2@|${_krisp_b2sum}|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 https://discord.com/terms | html2text >"${srcdir}"/LICENSE.md
curl https://discord.com/licenses | html2text >"${srcdir}"/OSS-LICENSES.md
}
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,bin}
install -d "${pkgdir}"/usr/share/{pixmaps,applications,licenses/$_pkgname}
# copy relevant data
cp -r ${_pkgname^}/resources "${pkgdir}"/usr/lib/$_pkgname/
cp ${_pkgname^}/$_pkgname.png \
"${pkgdir}"/usr/share/pixmaps/$_pkgname.png
cp ${_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 licenses
install -Dm 644 LICENSE.md "${pkgdir}"/usr/share/licenses/$_pkgname/
install -Dm 644 OSS-LICENSES.md "${pkgdir}"/usr/share/licenses/$_pkgname/
}

View File

@ -0,0 +1,34 @@
post_upgrade() {
# 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 'rizin' 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,42 @@
#!/usr/bin/env bash
set -eo pipefail
declare -a flags
[[ -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="${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@/@PKGVER@/modules/@PKGNAME@_krisp/@PKGNAME@_krisp.node"
krisp_b2=@KRISPB2@
if hash rizin &> /dev/null && [[ "${PATCH_KRISP}" == true ]]; then
# Patch Krisp binary to ignore signature check
if [[ -w "${krisp_bin}" && $(b2sum "${krisp_bin}" | head -c 128) == $krisp_b2 ]]; then
addr=$(rz-find -x '4881ec00010000' "${krisp_bin}" | head -n1)
rizin -q -w -c "s $addr + 0x30 ; wao nop" "${krisp_bin}" &> /dev/null
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 krisp_b2
exec /usr/lib/@ELECTRON@/electron \
/usr/lib/@PKGNAME@/resources/app.asar \
--ozone-platform-hint=auto \
"${flags[@]}" "$@"

26
discord-electron/.SRCINFO Normal file
View File

@ -0,0 +1,26 @@
pkgbase = discord-electron
pkgdesc = Discord using system provided electron (v30) for increased security and performance
pkgver = 0.0.54
pkgrel = 1
url = https://discord.com
install = discord-electron.install
arch = x86_64
license = custom
makedepends = asar
makedepends = curl
makedepends = python-html2text
depends = electron30
depends = libxss
optdepends = libpulse: Pulseaudio support
optdepends = libappindicator-gtk3: Systray indicator support
optdepends = xdg-utils: Open files
optdepends = rizin: Allow patching Krisp support
provides = discord
conflicts = discord
options = !strip
source = https://dl.discordapp.net/apps/linux/0.0.54/discord-0.0.54.tar.gz
source = discord-launcher.sh
sha512sums = ceb6265e846fafd27e3c2941f00f0a2d4e045abe5471a2691b070bedb330ef345edee838a706b27ff65ecce40aec46b1a1dd9c4bb9763dadaa907ec181c1a222
sha512sums = 9d00f9d2e05c2ba31c930c066f247954700bb0f96f2fc605e61c3973d7dacf962bf372659b71e05e5d8d4e152cc884bf12ec1fb5ecbfc4da55d22ab2591c4c40
pkgname = discord-electron

81
discord-electron/PKGBUILD Normal file
View File

@ -0,0 +1,81 @@
pkgname=discord-electron
_pkgname=discord
pkgver=0.0.54
pkgrel=1
_electronver=30
_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' 'python-html2text')
optdepends=(
'libpulse: Pulseaudio support'
'libappindicator-gtk3: Systray indicator support'
'xdg-utils: Open files'
'rizin: Allow patching Krisp support'
)
source=("https://dl.discordapp.net/apps/linux/${pkgver}/${_pkgname}-${pkgver}.tar.gz"
'discord-launcher.sh')
sha512sums=('ceb6265e846fafd27e3c2941f00f0a2d4e045abe5471a2691b070bedb330ef345edee838a706b27ff65ecce40aec46b1a1dd9c4bb9763dadaa907ec181c1a222'
'9d00f9d2e05c2ba31c930c066f247954700bb0f96f2fc605e61c3973d7dacf962bf372659b71e05e5d8d4e152cc884bf12ec1fb5ecbfc4da55d22ab2591c4c40')
_krisp_b2sum='c4e49b1a0be64cacd23474c5e474130084755f2de36af01686ce94c6eceea67426b6d6aa81889a418f9d08476476e99d63479b6131d1f7eaef987ecf4d779cf9'
prepare() {
# prepare launcher script
sed -i -e "s|@PKGNAME@|${_pkgname}|g" \
-e "s|@PKGVER@|${pkgver}|g" \
-e "s|@ELECTRON@|${_electronname}|g" \
-e "s|@KRISPB2@|${_krisp_b2sum}|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 https://discord.com/terms | html2text >"${srcdir}"/LICENSE.md
curl https://discord.com/licenses | html2text >"${srcdir}"/OSS-LICENSES.md
}
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,bin}
install -d "${pkgdir}"/usr/share/{pixmaps,applications,licenses/$_pkgname}
# copy relevant data
cp -r ${_pkgname^}/resources "${pkgdir}"/usr/lib/$_pkgname/
cp ${_pkgname^}/$_pkgname.png \
"${pkgdir}"/usr/share/pixmaps/$_pkgname.png
cp ${_pkgname^}/$_pkgname.desktop \
"${pkgdir}"/usr/share/applications/$_pkgname.desktop
# install the launch script
install -Dm 755 discord-launcher.sh "${pkgdir}"/usr/bin/$_pkgname
# install licenses
install -Dm 644 LICENSE.md "${pkgdir}"/usr/share/licenses/$_pkgname/
install -Dm 644 OSS-LICENSES.md "${pkgdir}"/usr/share/licenses/$_pkgname/
}

View File

@ -0,0 +1,35 @@
post_upgrade() {
# 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 'rizin' 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,42 @@
#!/usr/bin/env bash
set -eo pipefail
declare -a flags
[[ -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="${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@/@PKGVER@/modules/@PKGNAME@_krisp/@PKGNAME@_krisp.node"
krisp_b2=@KRISPB2@
if hash rizin &> /dev/null && [[ "${PATCH_KRISP}" == true ]]; then
# Patch Krisp binary to ignore signature check
if [[ -w "${krisp_bin}" && $(b2sum "${krisp_bin}" | head -c 128) == $krisp_b2 ]]; then
addr=$(rz-find -x '4881ec00010000' "${krisp_bin}" | head -n1)
rizin -q -w -c "s $addr + 0x30 ; wao nop" "${krisp_bin}" &> /dev/null
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 krisp_b2
exec /usr/lib/@ELECTRON@/electron \
/usr/lib/@PKGNAME@/resources/app.asar \
--ozone-platform-hint=auto \
"${flags[@]}" "$@"

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 = 1
url = https://github.com/fhanau/efficient-compression-tool
arch = x86_64
license = Apache
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 = 2d3f96c90cfa355797c4ebed9e5568d53f7fe7a1a225007908ea356c0a808cef856004b411b91beb2311102c3c77ea2eed37f3b8b2a9c057b8905c1d21d06383
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=1
pkgdesc='File compressor, supports postcompression of PNG, JPEG, GZIP and ZIP files'
url="https://github.com/fhanau/$_pkgname"
arch=('x86_64')
license=('Apache')
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'
'2d3f96c90cfa355797c4ebed9e5568d53f7fe7a1a225007908ea356c0a808cef856004b411b91beb2311102c3c77ea2eed37f3b8b2a9c057b8905c1d21d06383')
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.15.8
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 = MPL2
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.15.8/syncstorage-rs-0.15.8.tar.gz
source = firefox-syncstorage.service
sha512sums = 154d628bbaf999a1890d45278a3c00806fab5c3bce1c9b001c13f7fd68b1d95cbc9acc13586eab0285930a6d64c9d70b10cd83378479902056e2b40d3a5f591b
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.15.8
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=('MPL2')
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=('154d628bbaf999a1890d45278a3c00806fab5c3bce1c9b001c13f7fd68b1d95cbc9acc13586eab0285930a6d64c9d70b10cd83378479902056e2b40d3a5f591b'
'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
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')
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 = 20240501.0
pkgrel = 1
url = https://gvisor.dev
arch = x86_64
arch = aarch64
license = Apache
optdepends = docker: for Docker runtime support
provides = gvisor
conflicts = gvisor
source_x86_64 = runsc-x86_64-20240501.0::https://storage.googleapis.com/gvisor/releases/release/20240501.0/x86_64/runsc
source_x86_64 = containerd-shim-runsc-v1-x86_64-20240501.0::https://storage.googleapis.com/gvisor/releases/release/20240501.0/x86_64/containerd-shim-runsc-v1
sha512sums_x86_64 = 34e11b0a9479adc6a39e8202af6a96c697b044a26ab952c0d225b4d46cbd04248358ed2ab93b6c3f616b1380f8fe59e4d61fe89a42233728bb3decd10e158e85
sha512sums_x86_64 = a011d53a261d0b9394121c667af1f85e8e02e209fc62e5241c80c69ff98018198984ee32426a2f0e6992b833d960df8f8eeb3991e499f39015536de2d11b5a13
source_aarch64 = runsc-aarch64-20240501.0::https://storage.googleapis.com/gvisor/releases/release/20240501.0/aarch64/runsc
source_aarch64 = containerd-shim-runsc-v1-aarch64-20240501.0::https://storage.googleapis.com/gvisor/releases/release/20240501.0/aarch64/containerd-shim-runsc-v1
sha512sums_aarch64 = 93ed2233018c14f3b22ab67b43c3bc734139a55d2a30056f1d8be39ca679be618013a850dfe726edb40f5a2394d76d85e5ff56662e8c350f2df656bec28daa8e
sha512sums_aarch64 = 16b07544260a9463e242df5744ecf0e7897d7d7c320c1be002fbb69f482ca897b00672380c097a6af8593c69475e17c6c357848be96f2f6b062e96e8d1ac5bab
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=20240501.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')
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=('34e11b0a9479adc6a39e8202af6a96c697b044a26ab952c0d225b4d46cbd04248358ed2ab93b6c3f616b1380f8fe59e4d61fe89a42233728bb3decd10e158e85'
'a011d53a261d0b9394121c667af1f85e8e02e209fc62e5241c80c69ff98018198984ee32426a2f0e6992b833d960df8f8eeb3991e499f39015536de2d11b5a13')
sha512sums_aarch64=('93ed2233018c14f3b22ab67b43c3bc734139a55d2a30056f1d8be39ca679be618013a850dfe726edb40f5a2394d76d85e5ff56662e8c350f2df656bec28daa8e'
'16b07544260a9463e242df5744ecf0e7897d7d7c320c1be002fbb69f482ca897b00672380c097a6af8593c69475e17c6c357848be96f2f6b062e96e8d1ac5bab')
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 = 20240501.0
pkgrel = 1
url = https://gvisor.dev
arch = x86_64
arch = aarch64
license = Apache
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=20240501.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')
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
}

28
libqxt/.SRCINFO Normal file
View File

@ -0,0 +1,28 @@
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
license = LGPL2.1
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' 'LGPL2.1')
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.1.0
pkgrel = 1
url = http://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download
arch = x86_64
license = custom
options = !strip
backup = etc/linpack.conf
source = https://downloadmirror.intel.com/819583/l_onemklbench_p_2024.1.0_517.tgz
source = linpack.conf
source = linpack_runme_xeon64
sha512sums = c4b0704668f77deb5a3120f07a5e75dbecbf1a796294ec9ab83f1a4bcf2eb5a27d42a7c34bbcd462baf5ac35d8294be237210d481c7739efeffe302bbea65206
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.1.0_517
_pkgid=819583
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='http://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download'
license=('custom')
backup=('etc/linpack.conf')
options=('!strip')
source=("https://downloadmirror.intel.com/${_pkgid}/l_onemklbench_p_${_pkgver}.tgz"
'linpack.conf'
'linpack_runme_xeon64')
sha512sums=('c4b0704668f77deb5a3120f07a5e75dbecbf1a796294ec9ab83f1a4bcf2eb5a27d42a7c34bbcd462baf5ac35d8294be237210d481c7739efeffe302bbea65206'
'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

171
makepkg.conf Normal file
View File

@ -0,0 +1,171 @@
#!/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)
# 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
#
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"
#########################################################################
# 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 --ultra -20 -)
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
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')
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
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')
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 = GPL2
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=('GPL2')
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 = GPL2
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=('GPL2')
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.0
pkgrel = 1
url = https://github.com/nowrep/obs-vkcapture
arch = x86_64
license = GPL2
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.0/obs-vkcapture-1.5.0.tar.gz
sha512sums = 856a735ca3d1ed9f04c91c7e4a006aca2a72389a4ac0dee13d2b1f87da8e622d71dda400bb263499ddd04b1bc4294e7270382fc12e91e82a8ed554de8e3a4c96
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.0
pkgrel=1
url="https://github.com/nowrep/$pkgbase"
license=('GPL2')
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=('856a735ca3d1ed9f04c91c7e4a006aca2a72389a4ac0dee13d2b1f87da8e622d71dda400bb263499ddd04b1bc4294e7270382fc12e91e82a8ed554de8e3a4c96')
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
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')
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.0.1
pkgrel = 3
url = https://marlam.de/qvr/
arch = x86_64
license = MIT
makedepends = cmake
depends = qt6-base
source = https://marlam.de/qvr/releases/qvr-4.0.1.tar.gz
source = https://marlam.de/qvr/releases/qvr-4.0.1.tar.gz.sig
validpgpkeys = 2F61B4828BBA779AECB3F32703A2A4AB1E32FD34
sha512sums = 9d306d013873354ec875d1433fe7648219b8e43d34dd510fc72d70b80eabae1049d155e5cf8f8a314f7aed0988bd34ce14cb266b84ff737b8e80cdbb2e5c0a52
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.0.1
pkgrel=3
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=('9d306d013873354ec875d1433fe7648219b8e43d34dd510fc72d70b80eabae1049d155e5cf8f8a314f7aed0988bd34ce14cb266b84ff737b8e80cdbb2e5c0a52'
'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 = LGPL2.1
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=('LGPL2.1')
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 "$@"

34
spot-client/.SRCINFO Normal file
View File

@ -0,0 +1,34 @@
pkgbase = spot-client
pkgdesc = Gtk/Rust native Spotify client
pkgver = 0.4.1
pkgrel = 1
url = https://github.com/xou816/spot
arch = x86_64
arch = i686
arch = arm
arch = armv6h
arch = armv7h
arch = aarch64
license = MIT
checkdepends = appstream-glib
makedepends = cargo
makedepends = meson>=0.59.0
makedepends = blueprint-compiler>=0.8.1
depends = alsa-lib
depends = cairo
depends = glib2
depends = glibc
depends = graphene
depends = gtk4
depends = libadwaita
depends = libpulse
depends = openssl
depends = pango
optdepends = org.freedesktop.secrets
options = !lto
source = https://github.com/xou816/spot/archive/0.4.1/spot-0.4.1.tar.gz
source = disable-clippy.patch
sha512sums = 05ee8ce9277230a0f6c25411b41788a508551a61cd436bdd6bb0d8245030b0523232c0e30c7d2f98977382e687ec0f502cb6eb9b95a7dbaae97042ec596f407e
sha512sums = 4e38fff2a5867c46749959ceb0fb16372f12c8f8038b6a33d43e126e741f43e524e1499bb9b514e56b036097aaa0ac5dd149823c2c9eba277ab0ea4f58d5fb55
pkgname = spot-client

51
spot-client/PKGBUILD Normal file
View File

@ -0,0 +1,51 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Daniel Peukert <daniel@peukert.cc>
# Contributor: NicoHood <archlinux {cat} nicohood {dog} de>
_projectname='spot'
pkgname="$_projectname-client"
pkgver='0.4.1'
pkgrel='1'
pkgdesc='Gtk/Rust native Spotify client'
arch=('x86_64' 'i686' 'arm' 'armv6h' 'armv7h' 'aarch64')
url="https://github.com/xou816/$_projectname"
license=('MIT')
depends=('alsa-lib' 'cairo' 'glib2' 'glibc' 'graphene' 'gtk4' 'libadwaita' 'libpulse' 'openssl' 'pango')
optdepends=('org.freedesktop.secrets')
makedepends=('cargo' 'meson>=0.59.0' 'blueprint-compiler>=0.8.1')
checkdepends=('appstream-glib')
options=('!lto') # Build breaks with LTO enabled
source=("https://github.com/xou816/$_projectname/archive/$pkgver/$_projectname-$pkgver.tar.gz"
'disable-clippy.patch')
sha512sums=('05ee8ce9277230a0f6c25411b41788a508551a61cd436bdd6bb0d8245030b0523232c0e30c7d2f98977382e687ec0f502cb6eb9b95a7dbaae97042ec596f407e'
'4e38fff2a5867c46749959ceb0fb16372f12c8f8038b6a33d43e126e741f43e524e1499bb9b514e56b036097aaa0ac5dd149823c2c9eba277ab0ea4f58d5fb55')
validpgpkeys=() # Waiting for https://github.com/xou816/spot/issues/283
_sourcedirectory="$_projectname-$pkgver"
_builddirectory='build'
prepare() {
cd "$srcdir/$_sourcedirectory/"
# Disable failing clippy tests
patch -Np1 < '../disable-clippy.patch'
}
build() {
cd "$srcdir/"
# We're not using arch-meson, because upstream recommends using --buildtype 'release'
# The offline build flag is turned off, as we're not predownloading rust dependencies
meson setup --prefix '/usr' --libexecdir 'lib' --sbindir 'bin' --buildtype 'release' --wrap-mode 'nodownload' \
-Db_lto='true' -Db_pie='true' -Doffline='false' "$_sourcedirectory" "$_builddirectory"
meson compile -C "$_builddirectory"
}
check() {
cd "$srcdir/"
meson test -C "$_builddirectory" --timeout-multiplier -1
}
package() {
cd "$srcdir/"
meson install -C "$_builddirectory" --destdir "$pkgdir"
install -Dm644 "$_sourcedirectory/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

View File

@ -0,0 +1,24 @@
diff --git a/src/meson.build b/src/meson.build
index 900f3fa..e08b062 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -149,19 +149,3 @@ test('Unit tests',
timeout: 180,
env: env
)
-
-test('Clippy',
- cargo,
- args: [
- 'clippy',
- '--manifest-path', cargo_manifest,
- '--target-dir', meson.project_build_root() / 'src',
- '--',
- '-D', 'warnings',
- '-A', 'clippy::module_inception',
- '-A', 'clippy::new_without_default',
- '-A', 'clippy::enum-variant-names'
- ],
- timeout: 180,
- env: env
-)

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.4169
pkgrel = 2
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_4169_2_x64.tar.xz::https://download.sublimetext.com/sublime_text_build_4169_x64.tar.xz
sha512sums_x86_64 = 6764363f8f92f65532d64ba014023e28b18f40dc62a1b114239b59360257d445494f9a2f57580174b5f4994c8fa06cd8f562c9419cfda92324c9ebf25d15e576
source_aarch64 = sublime_text_4_4_4169_2_arm64.tar.xz::https://download.sublimetext.com/sublime_text_build_4169_arm64.tar.xz
sha512sums_aarch64 = e9964f55a5bff89fc0ad13266cc7695c8e0cc41d86caed212836fd737c3b52d84400c683b3f9699b554e71fa2d3ed3cc4351cfebcf9f182512211227465db3d6
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.4169
pkgrel=2
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=('6764363f8f92f65532d64ba014023e28b18f40dc62a1b114239b59360257d445494f9a2f57580174b5f4994c8fa06cd8f562c9419cfda92324c9ebf25d15e576')
sha512sums_aarch64=('e9964f55a5bff89fc0ad13266cc7695c8e0cc41d86caed212836fd737c3b52d84400c683b3f9699b554e71fa2d3ed3cc4351cfebcf9f182512211227465db3d6')
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.4175
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_4175_1_x64.tar.xz::https://download.sublimetext.com/sublime_text_build_4175_x64.tar.xz
sha512sums_x86_64 = 7ffc30c53dbdb40fe12bdccce03fe522a569ae3c9a43241f9392067b19377e58e2ca49179c0b1c4a3b210913efbcb5b6c1729f7521b07eaceecf637aa8e333b5
source_aarch64 = sublime_text_dev_4_4175_1_arm64.tar.xz::https://download.sublimetext.com/sublime_text_build_4175_arm64.tar.xz
sha512sums_aarch64 = dfb228c13e76febf73d121c822faa8a48cb63185d7269aa68cd7e69d7c9e2efd2566b87ea3e61b1556862734758edfa2e2a77649e28aed130bf179f07b01c989
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.4175
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=('7ffc30c53dbdb40fe12bdccce03fe522a569ae3c9a43241f9392067b19377e58e2ca49179c0b1c4a3b210913efbcb5b6c1729f7521b07eaceecf637aa8e333b5')
sha512sums_aarch64=('dfb228c13e76febf73d121c822faa8a48cb63185d7269aa68cd7e69d7c9e2efd2566b87ea3e61b1556862734758edfa2e2a77649e28aed130bf179f07b01c989')
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 "$@"

View File

@ -1,18 +0,0 @@
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
}

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
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')
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
}

43
tuned/.SRCINFO Normal file
View File

@ -0,0 +1,43 @@
pkgbase = tuned
pkgdesc = Daemon that performs monitoring and adaptive configuration of devices in the system
pkgver = 2.22.1
pkgrel = 2
url = https://github.com/redhat-performance/tuned
arch = any
license = GPL
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
options = !emptydirs
source = https://github.com/redhat-performance/tuned/archive/v2.22.1/tuned-2.22.1.tar.gz
sha512sums = 160b1cab5477d84a0da89f584fe646b32162527a138d9b5957799c5f26598b98449733040710133a1c5bdd5588eee72549131ff163e777a105fc24e92edc6d8f
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/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
backup = etc/tuned/ppd.conf

61
tuned/PKGBUILD Normal file
View File

@ -0,0 +1,61 @@
# 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.22.1
pkgrel=2
pkgdesc='Daemon that performs monitoring and adaptive configuration of devices in the system'
arch=('any')
url="https://github.com/redhat-performance/${pkgbase}"
license=('GPL')
depends=('dbus-glib' 'ethtool' 'gawk' 'hdparm' 'polkit' 'python-configobj' 'python-dbus' 'python-gobject' 'python-linux-procfs' 'python-perf' 'python-pyudev')
makedepends=('desktop-file-utils')
options=('!emptydirs')
source=("https://github.com/redhat-performance/${pkgbase}/archive/v${pkgver}/${pkgbase}-${pkgver}.tar.gz")
sha512sums=('160b1cab5477d84a0da89f584fe646b32162527a138d9b5957799c5f26598b98449733040710133a1c5bdd5588eee72549131ff163e777a105fc24e92edc6d8f')
prepare() {
cd "${pkgbase}-${pkgver}"
mv libexec lib
sed -i 's/libexec/lib/g' Makefile
sed -i 's/sbin/bin/g' Makefile
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/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
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')
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 = GPL3
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/wxedid/'
license=('GPL3')
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 -k check
}
package() {
cd "${pkgname}-${pkgver}"
make DESTDIR="$pkgdir" install
}