🔒 Repository is read-only – file editing is disabled.

recipes/gui/qemu/PAGBUILD.yaml main

132 linii Raw ← Powrót
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
pkgname: qemu
pkgver: '11.1.0'
pkgrel: '1'
pkgdesc: 'Processor emulator using dynamic translation to achieve good emulation speed'
url: 'https://www.qemu.org'
arch: x86_64
depends:
- 'desktop-file-utils'
- ovmf

makedepends:
- meson
- ninja
- pkg-config
- flex
- bison
- dtc
- gtk3
- sdl2
- libseccomp
- 'libcap-ng'
- 'xorg-pixman'
- python
- mesa
- vte
- virglrenderer
- lzo
- nettle
- 'cyrus-sasl'
- libssh2
- pulseaudio
- 'alsa-lib'
- 'alsa-plugins'
- 'alsa-utils'
- check
- bluez
- libgcrypt
- gnutls
- libusb
- usbutils
- 'python-sphinx'
- usbredir
- 'bridge-utils'
- 'xorg-libdrm'
- spice
- 'spice-protocol'
- libaio
- libslirp

source:
- 'qemu-ga.conf'
- '99-qemu-guest-agent.rules'
- 'qemu-sysusers.conf'
- configvm
- startvm
- 'https://download.qemu.org/qemu-${pkgver}.tar.xz'

sha256sums:
- SKIP
- SKIP
- SKIP
- SKIP
- SKIP
- SKIP

hooks:
  'post-install': |
    if [ -d /run/systemd/system ]; then
      systemctl daemon-reload || true
      systemctl enable qemu-guest-agent || true
    fi
    echo "QEMU guest agent service is available as qemu-guest-agent.service"

build: |
  bsdtar -xf qemu-${pkgver}.tar.xz -C .
  cd qemu-${pkgver}

  mkdir -vp build
  cd build

  ../configure --prefix=/usr \
              --sysconfdir=/etc \
              --localstatedir=/var \
              --libexecdir=/usr/libexec \
              --enable-modules \
              --audio-drv-list=alsa,pa \
              --enable-opengl \
              --enable-virglrenderer \
              --enable-spice \
              --enable-slirp \
              --enable-kvm \
              --docdir=/usr/share/doc/${pkgname}

  make

package: |
  cd qemu-${pkgver}/build
  make DESTDIR="${PKGDIR}" install

  # Instalacja własnych skryptów pomocniczych z root katalogu źródeł
  for i in configvm startvm; do
    install -D -m 755 "../../${i}" "${PKGDIR}/usr/bin/${i}"
  done

  # Symlink dla domyślnego pliku wykonywalnego
  ln -svf qemu-system-x86_64 "${PKGDIR}/usr/bin/qemu"

  # Pliki konfiguracyjne i reguły udev
  install -vDm 644 ../../99-qemu-guest-agent.rules "${PKGDIR}/usr/lib/udev/rules.d/99-qemu-guest-agent.rules"
  install -vDm 644 ../../qemu-sysusers.conf "${PKGDIR}/usr/lib/sysusers.d/qemu.conf"
  install -vDm 644 ../../qemu-ga.conf "${PKGDIR}/etc/qemu/qemu-ga.conf"

  # Konfiguracja udev dla KVM
  install -d "${PKGDIR}/usr/lib/udev/rules.d"
  cat > "${PKGDIR}/usr/lib/udev/rules.d/65-kvm.rules" << "EOF"
  KERNEL=="kvm", GROUP="kvm", MODE="0660"
  EOF

  # Pomoce i usługi guest-agenta
  if [ -f ../scripts/qemu-guest-agent/fsfreeze-hook ]; then
    install -vDm 755 ../scripts/qemu-guest-agent/fsfreeze-hook -t "${PKGDIR}/etc/qemu/"
  fi

  if [ -f ../contrib/systemd/qemu-guest-agent.service ]; then
    install -vDm 644 ../contrib/systemd/qemu-guest-agent.service -t "${PKGDIR}/usr/lib/systemd/system/"
    sed -i '/\[Install\]/a WantedBy=multi-user.target' "${PKGDIR}/usr/lib/systemd/system/qemu-guest-agent.service"
  fi

  # Uprawnienia dla qemu-bridge-helper (bez twardego chgrp na hoście)
  if [ -f "${PKGDIR}/usr/libexec/qemu-bridge-helper" ]; then
    chmod 4750 "${PKGDIR}/usr/libexec/qemu-bridge-helper"
  fi