File magpie.spec of Package magpie
Name: magpie
Version: 0.9.4
Release: 3
Summary: Window management library used by Budgie Desktop
License: LGPLv2+
Group: System/Libraries
URL: https://github.com/BuddiesOfBudgie/magpie
Source0: https://github.com/BuddiesOfBudgie/magpie/releases/download/v%{version}/magpie-%{version}.tar.xz
BuildRequires: meson
BuildRequires: ninja
BuildRequires: gcc
BuildRequires: vala
BuildRequires: gobject-introspection-devel
# Core deps
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(graphene-gobject-1.0)
BuildRequires: pkgconfig(gsettings-desktop-schemas)
BuildRequires: pkgconfig(gnome-settings-daemon)
BuildRequires: gnome-settings-daemon-devel
BuildRequires: pkgconfig(colord)
BuildRequires: colord-devel
BuildRequires: pkgconfig(xkbfile)
BuildRequires: libxkbfile-devel
BuildRequires: pkgconfig(libcanberra)
BuildRequires: libcanberra-devel
BuildRequires: pkgconfig(gudev-1.0)
BuildRequires: libgudev-devel
BuildRequires: pkgconfig(libdrm)
BuildRequires: libdrm-devel
BuildRequires: pkgconfig(gbm)
BuildRequires: lib64gbm-devel
BuildRequires: pkgconfig(libinput)
BuildRequires: lib64input-devel
BuildRequires: pkgconfig(libpipewire-0.3)
BuildRequires: pipewire-devel
BuildRequires: xrandr
# Required for Budgie 10.10.x
BuildRequires: pkgconfig(libxfce4windowing-0)
%description
Magpie is the window management abstraction library used by Budgie Desktop
10.10.x. It provides window tracking, workspace handling, and compositor
integration via libxfce4windowing.
%prep
%autosetup -n magpie-%{version}
# --- Disable cvt (Mageia does not ship it) ---
sed -i "s/'cvt'/'true'/" src/meson.build
# --- Stub out gen-default-modes.py with empty arrays ---
cat > src/meta-default-modes.h << 'EOF'
#pragma once
#include <stdint.h>
typedef struct {
int width;
int height;
int refresh;
} MetaDrmModeInfo;
static const MetaDrmModeInfo meta_default_landscape_drm_mode_infos[] = {};
static const MetaDrmModeInfo meta_default_portrait_drm_mode_infos[] = {};
EOF
# --- Remove ONLY eglmesaext.h includes (Mageia does not ship this header) ---
sed -i '/#include <EGL\/eglmesaext.h>/d' cogl/cogl/cogl-egl-defines.h.in
sed -i '/#include <EGL\/eglmesaext.h>/d' cogl/cogl/cogl-egl.h
# --- Remove references in Meson build ---
sed -i 's|eglmesaext.h||g' cogl/cogl/meson.build
%build
%meson
%meson_build
%install
%meson_install
%files
%doc README.md
%license COPYING
/usr/lib64/libmagpie-0.so.*
/usr/lib64/pkgconfig/magpie-0.pc
/usr/lib64/girepository-1.0/Magpie-0.1.typelib
/usr/share/gir-1.0/Magpie-0.1.gir
/usr/include/magpie-0/*
%changelog
* Fri Mar 20 2026 Henrik <tux4ever@protonmail.com> 0.9.4-3
- Patched out cvt usage (Mageia does not ship cvt)
- Stubbed gen-default-modes.py with empty arrays to avoid compiler errors
- Removed eglmesaext.h include (Mageia does not ship this header)
- Cleaned and corrected BuildRequires for Mageia Cauldron