Commit b840cb42
6
files
+210
added
-47
deleted
@@ -1,23 +1,56 @@
1
1
pkgname: chrome
2
-pkgver: '137.0.7151.55'
3
-pkgrel: '3'
2
+pkgver: '155.0.8059.84'
3
+pkgrel: '4'
4
4
pkgdesc: 'The popular and trusted web browser by Google (Stable Channel)'
5
5
url: 'https://www.google.com/chrome'
6
6
arch: x86_64
7
+# Pełna lista z DT_NEEDED binarki /opt/google/chrome/chrome. Wcześniej było
8
+# tylko 6 pozycji, przez co po instalacji brakowało libnss3, libatk, libcups,
9
+# libgbm itd. (chrome nie startował).
7
10
depends:
8
-- 'xorg-libxscrnsaver'
9
-- 'hicolor-icon-theme'
10
-- 'desktop-file-utils'
11
-- 'gtk-update-icon-cache'
12
-- 'shared-mime-info'
11
+- ca-certificates
12
+- desktop-file-utils
13
+- gtk-update-icon-cache
14
+- hicolor-icon-theme
15
+- shared-mime-info
16
+- xdg-utils
17
+- wget
18
+- curl
19
+- nss
20
+- nspr
21
+- at-spi2-core
22
+- alsa-lib
23
+- cairo
24
+- cups
25
+- dbus
26
+- expat
27
+- freetype
28
+- xorg-fontconfig
29
+- gcc
30
+- glib
31
+- gtk3
32
+- libxcb
33
+- libxkbcommon
34
+- mesa
35
+- pango
36
+- systemd
37
+- xorg-libx11
38
+- xorg-libxcomposite
39
+- xorg-libxdamage
40
+- xorg-libxext
41
+- xorg-libxfixes
42
+- xorg-libxrandr
43
+- xorg-libxscrnsaver
44
+- xorg-libxshmfence
13
45
- qtbase
46
+- qt6-base
14
47
15
48
makedepends:
16
-- 'alsa-lib'
49
+- alsa-lib
17
50
- gtk3
18
51
- cups
19
-- 'xorg-libxscrnsaver'
20
-- 'xorg-libxtst'
52
+- xorg-libxscrnsaver
53
+- xorg-libxtst
21
54
- nss
22
55
23
56
source:
@@ -26,20 +59,74 @@ source:
26
59
sha256sums:
27
60
- SKIP
28
61
62
+# pagsync --check-updates: Chrome nie ma stabilnego URL-a wersji w nazwie
63
+# pliku, więc bierzemy wersję z publicznego API Google (fallback: control z .deb).
64
+update: |
65
+ v=$(curl -fsSL --max-time 30 \
66
+ "https://versionhistory.googleapis.com/v1/chrome/platforms/linux/channels/stable/versions?page_size=1" \
67
+ | python3 -c 'import sys,json; print(json.load(sys.stdin)["versions"][0]["version"])' 2>/dev/null || true)
68
+ if [ -z "$v" ]; then
69
+ tmp=$(mktemp)
70
+ curl -fsSL --max-time 180 -o "$tmp" \
71
+ https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb || true
72
+ if [ -s "$tmp" ] && command -v ar >/dev/null 2>&1; then
73
+ v=$(ar p "$tmp" control.tar.xz | bsdtar -xOf - ./control 2>/dev/null \
74
+ | awk '/^Version:/ {print $2; exit}' | sed 's/-[0-9]*$//')
75
+ fi
76
+ rm -f "$tmp"
77
+ fi
78
+ echo "$v"
79
+
80
+hooks:
81
+ post-install: |
82
+ # Sandbox Chrome MUSI być setuid root – inaczej chrome odmawia startu
83
+ # komunikatem "The SUID sandbox helper binary was found, but is not
84
+ # configured correctly".
85
+ if [ -f /opt/google/chrome/chrome-sandbox ]; then
86
+ chown root:root /opt/google/chrome/chrome-sandbox || true
87
+ chmod 4755 /opt/google/chrome/chrome-sandbox || true
88
+ fi
89
+ if command -v gtk-update-icon-cache >/dev/null 2>&1; then
90
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor || true
91
+ fi
92
+ if command -v update-desktop-database >/dev/null 2>&1; then
93
+ update-desktop-database -q || true
94
+ fi
95
+ if command -v update-mime-database >/dev/null 2>&1; then
96
+ update-mime-database /usr/share/mime || true
97
+ fi
98
+
29
99
build: |
30
100
bsdtar -xf *.deb
31
101
bsdtar -xf data.tar.xz -C "${PKGDIR}/"
32
102
33
- # Icons
34
- for i in 16x16 24x24 32x32 48x48 64x64 128x128 256x256; do
35
- install -Dm644 "${PKGDIR}"/opt/google/chrome/product_logo_${i/x*}.png \
36
- "${PKGDIR}"/usr/share/icons/hicolor/$i/apps/google-chrome.png
37
- done
103
+ # Ikony – źródłowe nazwy to product_logo_<rozmiar>.png.
104
+ for size in 16 24 32 48 64 128 256; do
105
+ src="${PKGDIR}/opt/google/chrome/product_logo_${size}.png"
106
+ if [ -f "$src" ]; then
107
+ install -Dm644 "$src" \
108
+ "${PKGDIR}/usr/share/icons/hicolor/${size}x${size}/apps/google-chrome.png"
109
+ fi
110
+ done
111
+
112
+ if [ -f "${PKGDIR}/usr/share/applications/google-chrome.desktop" ]; then
113
+ sed -i '/^Exec=/i StartupWMClass=Google-chrome' \
114
+ "${PKGDIR}/usr/share/applications/google-chrome.desktop"
115
+ fi
116
+
117
+ # Oba wejścia: google-chrome (zgodne z Debianem) i chrome (krótkie).
118
+ ln -sf /opt/google/chrome/google-chrome "${PKGDIR}/usr/bin/google-chrome"
119
+ ln -sf /opt/google/chrome/google-chrome "${PKGDIR}/usr/bin/chrome"
38
120
39
- sed -i "/Exec=/i\StartupWMClass=Google-chrome" "${PKGDIR}"/usr/share/applications/google-chrome.desktop
121
+ # Nie pakujemy cronów Google (aktualizator i tak nie działa poza dpkg).
122
+ rm -rf "${PKGDIR}/etc/cron.daily" "${PKGDIR}/opt/google/chrome/cron"
123
+ rm -f "${PKGDIR}"/opt/google/chrome/product_logo_*.png
40
124
41
- rm -r "${PKGDIR}"/etc/cron.daily/ "${PKGDIR}"/opt/google/chrome/cron/
42
- rm "${PKGDIR}"/opt/google/chrome/product_logo_*.png
125
+ # Bity SUID w archiwum .pag (pag zachowuje je przy instalacji).
126
+ if [ -f "${PKGDIR}/opt/google/chrome/chrome-sandbox" ]; then
127
+ chown root:root "${PKGDIR}/opt/google/chrome/chrome-sandbox"
128
+ chmod 4755 "${PKGDIR}/opt/google/chrome/chrome-sandbox"
129
+ fi
43
130
44
131
package: |
45
132
true
@@ -1,6 +1,6 @@
1
1
pkgname: libvirt
2
2
pkgver: '12.8.0'
3
-pkgrel: 1
3
+pkgrel: 3
4
4
pkgdesc: The virtualization API
5
5
url: 'https://libvirt.org/'
6
6
arch: x86_64
@@ -12,12 +12,14 @@ depends:
12
12
- acl
13
13
- curl
14
14
- cyrus-sasl
15
+- dbus
15
16
- fuse
16
17
- glib
17
18
- gnutls
18
19
- json-c
19
20
- libbsd
20
21
- libcap-ng
22
+- libgcrypt
21
23
- libnl
22
24
- libpcap
23
25
- libssh
@@ -28,6 +30,7 @@ depends:
28
30
- netcf
29
31
- numactl
30
32
- parted
33
+- polkit
31
34
- readline
32
35
- systemd
33
36
- util-linux
@@ -72,23 +75,62 @@ sha256sums:
72
75
- SKIP
73
76
hooks:
74
77
post-install: |
75
- name=libvirt
76
- version=12.6.0
77
- release=1
78
- INFO="\033[1;36m"
79
- NORMAL="\033[0;39m"
80
- printf "${INFO}
81
-
82
- Your account need to be part of the 'kvm' group
83
- to be able to use virtualisation:
84
-
85
- gpasswd -a <username> $UN
86
-
87
- ${NORMAL}\n
78
+ # Grupa libvirt (upstream sysusers) – potrzebna do qemu:///system.
79
+ if command -v systemd-sysusers >/dev/null 2>&1; then
80
+ systemd-sysusers /usr/lib/sysusers.d/libvirt.conf 2>/dev/null || true
81
+ fi
82
+ if ! getent group libvirt >/dev/null 2>&1 && command -v groupadd >/dev/null 2>&1; then
83
+ groupadd -r libvirt || true
84
+ fi
85
+ # qemu działa jako qemu:kvm – dostęp do /dev/kvm bez dopisywania użytkownika.
86
+ if ! getent group kvm >/dev/null 2>&1 && command -v groupadd >/dev/null 2>&1; then
87
+ groupadd -r kvm || true
88
+ fi
89
+ if [ -d /run/systemd/system ]; then
90
+ systemctl daemon-reload || true
91
+ systemctl enable libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket \
92
+ virtlogd.socket virtlockd.socket 2>/dev/null || true
93
+ systemctl start libvirtd.socket virtlogd.socket virtlockd.socket 2>/dev/null || true
94
+ fi
95
+ # Domyślna sieć NAT (192.168.122.0/24) – żeby VM od razu miały internet.
96
+ if [ -d /run/systemd/system ] && command -v virsh >/dev/null 2>&1; then
97
+ for _i in 1 2 3 4 5; do
98
+ if virsh -c qemu:///system net-info default >/dev/null 2>&1; then
99
+ break
100
+ fi
101
+ sleep 1
102
+ done
103
+ if ! virsh -c qemu:///system net-info default >/dev/null 2>&1; then
104
+ virsh -c qemu:///system net-define /etc/libvirt/qemu/networks/default.xml >/dev/null 2>&1 || true
105
+ fi
106
+ virsh -c qemu:///system net-autostart default >/dev/null 2>&1 || true
107
+ virsh -c qemu:///system net-start default >/dev/null 2>&1 || true
108
+ fi
109
+ _u="${SUDO_USER:-${USER:-}}"
110
+ [ -z "$_u" ] && _u="$(logname 2>/dev/null || true)"
111
+ [ -z "$_u" ] && _u="<user>"
112
+ printf '\n\033[1;36mLibvirt: aby używać qemu:///system jako zwykły użytkownik:\n usermod -aG kvm,libvirt %s\n\033[0m\n' "$_u"
88
113
build: |
89
- # NIE podawac -Dnetcf=disabled: pagbuild przepisuje nieznane opcje feature
90
- # 'disabled'->'false', co wywala meson. Bez tego meson sam wylacza netcf (auto).
91
- meson setup --prefix /usr --buildtype plain --libexecdir=/usr/lib/${pkgname} --sbindir=/usr/bin -D b_pie=true ${pkgname}-${pkgver} builddir
114
+ # Opcje feature muszą być literalnym "disabled" (pagbuild nie zamienia ich
115
+ # na "false"): tests/docs/selinux/apparmor są na liście _meson_feature_opts.
116
+ meson setup --prefix=/usr \
117
+ --sysconfdir=/etc \
118
+ --localstatedir=/var \
119
+ --buildtype=plain \
120
+ --libexecdir=/usr/lib/${pkgname} \
121
+ --sbindir=/usr/bin \
122
+ -Dsystem=true \
123
+ -Drunstatedir=/run \
124
+ -Dtests=disabled \
125
+ -Ddocs=disabled \
126
+ -Dselinux=disabled \
127
+ -Dapparmor=disabled \
128
+ -Dlibvirtd=enabled \
129
+ -Ddriver_qemu=enabled \
130
+ -Dpolkit=enabled \
131
+ -Dqemu_user=qemu \
132
+ -Dqemu_group=kvm \
133
+ ${pkgname}-${pkgver} builddir
92
134
meson compile -C builddir
93
135
DESTDIR=${PKGDIR} meson install -C builddir
94
136
package: |
@@ -1,6 +1,6 @@
1
1
pkgname: qemu
2
2
pkgver: '11.1.2'
3
-pkgrel: '1'
3
+pkgrel: '2'
4
4
pkgdesc: 'Processor emulator using dynamic translation to achieve good emulation speed'
5
5
url: 'https://www.qemu.org'
6
6
arch: x86_64
@@ -54,12 +54,12 @@ depends:
54
54
makedepends:
55
55
- meson
56
56
- ninja
57
-- pkg-config
57
+- pkgconf
58
58
- flex
59
59
- bison
60
60
- dtc
61
61
- gtk3
62
-- sdl2
62
+- sdl
63
63
- libseccomp
64
64
- 'libcap-ng'
65
65
- 'xorg-pixman'
@@ -108,25 +108,45 @@ sha256sums:
108
108
109
109
hooks:
110
110
'post-install': |
111
+ # Utwórz grupę kvm i użytkownika qemu (sysusers) jeszcze przed udev.
112
+ if command -v systemd-sysusers >/dev/null 2>&1; then
113
+ systemd-sysusers /usr/lib/sysusers.d/qemu.conf || true
114
+ fi
115
+ if ! getent group kvm >/dev/null 2>&1 && command -v groupadd >/dev/null 2>&1; then
116
+ groupadd -r kvm || true
117
+ fi
118
+ # qemu-bridge-helper musi być setuid root i należeć do grupy kvm.
119
+ if [ -f /usr/libexec/qemu-bridge-helper ]; then
120
+ chown root:root /usr/libexec/qemu-bridge-helper || true
121
+ chgrp kvm /usr/libexec/qemu-bridge-helper 2>/dev/null || true
122
+ chmod 4750 /usr/libexec/qemu-bridge-helper || true
123
+ fi
111
124
if [ -d /run/systemd/system ]; then
112
125
systemctl daemon-reload || true
113
126
systemctl enable qemu-guest-agent || true
127
+ udevadm control --reload-rules || true
128
+ udevadm trigger --subsystem-match=misc --sysname-match=kvm || true
114
129
fi
115
- echo "QEMU guest agent service is available as qemu-guest-agent.service"
130
+ echo "QEMU: /dev/kvm jest w grupie kvm (0660). Dodaj użytkownika: usermod -aG kvm <user>"
116
131
117
132
build: |
118
133
bsdtar -xf qemu-${pkgver}.tar.xz -C .
119
134
cd qemu-${pkgver}
120
135
136
+ # Uwaga: poprawka QemuRect.y (dawne virtio.patch) jest już w QEMU 11.1.2
137
+ # upstream – nie aplikujemy jej ponownie (patch by się odwrócił).
138
+
121
139
mkdir -vp build
122
140
cd build
123
141
124
142
../configure --prefix=/usr \
143
+ --libdir=/usr/lib \
125
144
--sysconfdir=/etc \
126
145
--localstatedir=/var \
127
146
--libexecdir=/usr/libexec \
128
147
--enable-modules \
129
- --audio-drv-list=alsa,pa \
148
+ --audio-drv-list=alsa,pa,pipewire \
149
+ --disable-docs \
130
150
--enable-opengl \
131
151
--enable-virglrenderer \
132
152
--enable-spice \
@@ -1,2 +1,3 @@
1
+g kvm - -
1
2
u! qemu - "QEMU user" - -
2
3
m qemu kvm
@@ -1,11 +1,12 @@
1
1
pkgname: virt-manager
2
2
pkgver: '5.1.0'
3
-pkgrel: '11'
3
+pkgrel: '12'
4
4
pkgdesc: Desktop user interface for managing virtual machines
5
5
url: 'https://virt-manager.org/'
6
6
arch: x86_64
7
7
depends:
8
8
- gtk-vnc
9
+- gtk3
9
10
- gtksourceview4
10
11
- libxml2
11
12
- libosinfo
@@ -32,6 +33,7 @@ makedepends:
32
33
- python-gobject
33
34
- python-lxml
34
35
- python-requests
36
+- python-docutils
35
37
- spice-gtk
36
38
- vte
37
39
source:
@@ -1,6 +1,6 @@
1
1
pkgname: ovmf
2
2
pkgver: '202011'
3
-pkgrel: '5'
3
+pkgrel: '6'
4
4
pkgdesc: Tianocore UEFI firmware for Qemu
5
5
url: 'https://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EDK2'
6
6
arch: x86_64
@@ -30,6 +30,17 @@ sha256sums:
30
30
- SKIP
31
31
- SKIP
32
32
build: |
33
+ # BUGFIX: bez tej tablicy wszystkie pętle budujące firmware były puste,
34
+ # więc paczka zawierała tylko deskryptory JSON (bez OVMF_CODE.fd/VARS.fd).
35
+ _arch_list=(IA32 X64)
36
+
37
+ # pagbuild eksportuje MAKEFLAGS=-jN; jobserver dziedziczy go do rekurencyjnego
38
+ # make w BaseTools i omija -n 1, wywołując race ".map". Czyścimy środowisko.
39
+ unset MAKEFLAGS MFLAGS
40
+
41
+ # Edk2 stable202011 ma race w równoległym budowaniu modułów ("No rule to
42
+ # make target ... .map"), dlatego firmware budujemy szeregowo (-n 1).
43
+
33
44
mv edk2-edk2-stable${pkgver} ${pkgname}-${pkgver}
34
45
35
46
#Sylink openssl into place
@@ -75,7 +86,7 @@ build: |
75
86
BaseTools/BinWrappers/PosixLike/build -p ShellPkg/ShellPkg.dsc \
76
87
-a "${_arch}" \
77
88
-b "RELEASE" \
78
- -n "$(nproc)" \
89
+ -n 1 \
79
90
-t "GCC5"
80
91
# ovmf
81
92
if [[ "${_arch}" == 'IA32' ]]; then
@@ -84,7 +95,7 @@ build: |
84
95
OvmfPkg/build.sh -p OvmfPkg/OvmfPkgIa32.dsc \
85
96
-a "${_arch}" \
86
97
-b "RELEASE" \
87
- -n "$(nproc)" \
98
+ -n 1 \
88
99
-t "GCC5" \
89
100
-D LOAD_X64_ON_IA32_ENABLE \
90
101
-D NETWORK_IP6_ENABLE \
@@ -103,7 +114,7 @@ build: |
103
114
OvmfPkg/build.sh -p OvmfPkg/OvmfPkgIa32.dsc \
104
115
-a "${_arch}" \
105
116
-b "RELEASE" \
106
- -n "$(nproc)" \
117
+ -n 1 \
107
118
-t "GCC5" \
108
119
-D LOAD_X64_ON_IA32_ENABLE \
109
120
-D NETWORK_IP6_ENABLE \
@@ -121,7 +132,7 @@ build: |
121
132
OvmfPkg/build.sh -p "OvmfPkg/OvmfPkg${_arch}.dsc" \
122
133
-a "${_arch}" \
123
134
-b "RELEASE" \
124
- -n "$(nproc)" \
135
+ -n 1 \
125
136
-t "GCC5" \
126
137
-D NETWORK_IP6_ENABLE \
127
138
-D TPM_ENABLE \
@@ -139,7 +150,7 @@ build: |
139
150
OvmfPkg/build.sh -p "OvmfPkg/OvmfPkg${_arch}.dsc" \
140
151
-a "${_arch}" \
141
152
-b "RELEASE" \
142
- -n "$(nproc)" \
153
+ -n 1 \
143
154
-t "GCC5" \
144
155
-D NETWORK_IP6_ENABLE \
145
156
-D TPM_ENABLE \