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
openSUSE Build Service is sponsored by