← recipes

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 \