Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

COPR #7

Merged
merged 8 commits into from
May 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/workflows/aur_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@ name: Test building the PKGBUILDs

on:
push:
paths:
- aur/**
branches: [ main ]
pull_request:
paths:
- aur/**
branches: [ main ]

# Allows you to run this workflow manually from the Actions tab
Expand All @@ -30,5 +34,5 @@ jobs:
uses: edlanglois/pkgbuild-action@v1
with:
aurDeps: true
pkgdir: ${{matrix.pkgname}}
pkgdir: aur/${{matrix.pkgname}}

16 changes: 9 additions & 7 deletions .github/workflows/aur_publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ name: Package for the AUR
# Only run when pushed to main
on:
push:
paths:
- aur/**
branches: [main]

# Allows you to run this workflow manually from the Actions tab
Expand All @@ -15,15 +17,15 @@ jobs:
include:
- pkgname: swayfx
assets: |
./swayfx/sway-portals.conf
./swayfx/50-systemd-user.conf
./swayfx/sway.install
./aur/swayfx/sway-portals.conf
./aur/swayfx/50-systemd-user.conf
./aur/swayfx/sway.install

- pkgname: swayfx-git
assets: |
./swayfx-git/sway-portals.conf
./swayfx-git/50-systemd-user.conf
./swayfx-git/sway.install
./aur/swayfx-git/sway-portals.conf
./aur/swayfx-git/50-systemd-user.conf
./aur/swayfx-git/sway.install

- pkgname: scenefx
- pkgname: scenefx-git
Expand All @@ -40,7 +42,7 @@ jobs:
uses: ulises-jeremias/github-actions-aur-publish@v1
with:
pkgname: ${{ matrix.pkgname }}
pkgbuild: ${{matrix.pkgname}}/PKGBUILD
pkgbuild: aur/${{matrix.pkgname}}/PKGBUILD
assets: ${{ matrix.assets }}
commit_username: ${{ secrets.AUR_USERNAME }}
commit_email: ${{ secrets.AUR_EMAIL }}
Expand Down
66 changes: 66 additions & 0 deletions .github/workflows/copr_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Build RPMs

on:
push:
paths:
- COPR/**
branches: [ main ]
pull_request:
paths:
- COPR/**
branches: [ main ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
RPM-build:
name: Build RPM swayfx
container: fedora:latest
runs-on: ubuntu-latest
steps:
- name: Install tooling for source RPM build
run: |
dnf -y install rpkg @rpm-development-tools 'dnf-command(builddep)'

- name: Check out sources
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: SceneFX Download RPM Spec sources
run: |
cd COPR/scenefx
spectool -g ./scenefx.rpkg.spec

- name: SceneFX Install build dependencies
run: |
cd COPR/scenefx
dnf -y builddep ./scenefx.rpkg.spec

- name: SceneFX Build RPM
run: |
cd COPR/scenefx
mkdir -p out
rpkg local --out `pwd`/out

- name: SceneFX Install RPMs
run: |
cd COPR/scenefx
dnf -y install ./out/**/*.rpm

- name: SwayFX Download RPM Spec sources
run: |
cd COPR/swayfx
spectool -g ./swayfx.rpkg.spec

- name: SwayFX Install build dependencies
run: |
cd COPR/swayfx
dnf -y builddep ./swayfx.rpkg.spec

- name: SwayFX Build RPM
run: |
cd COPR/swayfx
mkdir -p out
rpkg local --out `pwd`/out
49 changes: 49 additions & 0 deletions .github/workflows/copr_upload.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Package for Copr repo

on:
push:
paths:
- COPR/**
branches: [main]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
upload-copr:
strategy:
fail-fast: false
matrix:
pkgname: [ swayfx, scenefx ]

container: fedora:latest
runs-on: ubuntu-latest
steps:
- name: Install API token for copr-cli
env:
# To generate a new token: https://copr.fedorainfracloud.org/api/.
API_LOGIN: ${{ secrets.COPR_API_LOGIN }}
API_USERNAME: ${{ secrets.COPR_API_USERNAME }}
API_TOKEN_CONTENT: ${{ secrets.COPR_API_TOKEN }}
run: |
mkdir -p "$HOME/.config"
# To generate a new token: https://copr.fedorainfracloud.org/api/.
echo "[copr-cli]" >> "$HOME/.config/copr"
echo "login = $API_LOGIN" >> "$HOME/.config/copr"
echo "username = $API_USERNAME" >> "$HOME/.config/copr"
echo "token = $API_TOKEN_CONTENT" >> "$HOME/.config/copr"
echo "copr_url = https://copr.fedorainfracloud.org" >> "$HOME/.config/copr"

- name: Install dependencies
run: |
dnf -y install copr-cli

- name: Check out sources
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Submit the build to copr
run: |
cd COPR/${{matrix.pkgname}}
rpkg -v copr-build -w ${{ secrets.COPR_REPO_NAME }}
86 changes: 86 additions & 0 deletions COPR/scenefx/scenefx.rpkg.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# vim: syntax=spec

### CHANGE THESE VARIABLES BEFORE RELEASE:
# Change to current SceneFX tag!
%global tag 0.1
# Version of the .so library
%global abi_ver 1

Name: scenefx
Version: %{tag}
Release: 1%{?dist}
Summary: A drop-in replacement for the wlroots scene API that allows wayland compositors to render surfaces with eye-candy effects
License: MIT
URL: https://github.com/wlrfx/scenefx
Source0: %{url}/archive/refs/tags/%{tag}.tar.gz


BuildRequires: gcc
BuildRequires: glslang
BuildRequires: gnupg2
BuildRequires: meson >= 0.59.0

BuildRequires: (pkgconfig(wlroots) >= 0.17.0 with pkgconfig(wlroots) < 0.18)
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(gbm) >= 17.1.0
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(hwdata)
BuildRequires: pkgconfig(libdrm) >= 2.4.114
BuildRequires: pkgconfig(pixman-1) >= 0.42.0
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-protocols) >= 1.32
BuildRequires: pkgconfig(wayland-scanner)
BuildRequires: pkgconfig(wayland-server) >= 1.22

%description
%{summary}


%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} == %{version}-%{release}
# for examples
Suggests: gcc
Suggests: meson >= 0.58.0
Suggests: pkgconfig(wayland-egl)

%description devel
Development files for %{name}.


%prep
%autosetup -N

%build
MESON_OPTIONS=(
# Disable options requiring extra/unpackaged dependencies
-Dexamples=false
-Dwerror=false
)

%{meson} "${MESON_OPTIONS[@]}"
%{meson_build}


%install
%{meson_install}


%check
%{meson_test}


%files
%license LICENSE
%doc README.md
%{_libdir}/lib%{name}.so.%{abi_ver}{,.*}


%files devel
%{_includedir}/scenefx
%{_libdir}/lib%{name}.so
%{_libdir}/pkgconfig/%{name}.pc


# Changelog will be empty until you make first annotated Git tag.
# %changelog
File renamed without changes.
File renamed without changes.
122 changes: 122 additions & 0 deletions COPR/swayfx/swayfx.rpkg.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# vim: syntax=spec

### CHANGE THESE VARIABLES BEFORE RELEASE:
# Change to current Sway base version!
%global SwayBaseVersion 1.9.0
# Change to current SwayFX tag!
%global tag 0.4

Name: swayfx
Version: %{tag}
Release: 1%{?dist}
Summary: SwayFX: Sway, but with eye candy!
License: MIT
URL: https://github.com/WillPower3309/swayfx
Source0: %{url}/archive/refs/tags/%{tag}.tar.gz
Source101: sway-portals.conf

# Upstream patches

# Fedora patches

# Conditional patches

BuildRequires: gcc-c++
BuildRequires: gnupg2
BuildRequires: meson >= 0.60.0
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(json-c) >= 0.13
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libevdev)
BuildRequires: pkgconfig(libinput) >= 1.21.0
BuildRequires: pkgconfig(libpcre2-8)
BuildRequires: pkgconfig(libsystemd) >= 239
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(pangocairo)
BuildRequires: pkgconfig(pixman-1)
BuildRequires: pkgconfig(scdoc)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-cursor)
BuildRequires: pkgconfig(wayland-server) >= 1.21.0
BuildRequires: pkgconfig(wayland-protocols) >= 1.24
BuildRequires: (pkgconfig(wlroots) >= 0.17.0 with pkgconfig(wlroots) < 0.18)
BuildRequires: (pkgconfig(scenefx) >= 0.1 with pkgconfig(scenefx) < 0.2)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-icccm)
BuildRequires: pkgconfig(xkbcommon) >= 1.5.0

# Require any of the available configuration packages;
# Prefer the -upstream one if none are directly specified in the package manager transaction
Requires: %{name}-config
Suggests: %{name}-config-upstream


Conflicts: sway
Provides: sway = %{SwayBaseVersion}

%description
SwayFX: Sway, but with eye candy!

# The artwork is heavy and we don't use it with our default config
%package wallpapers
Summary: Wallpapers for Sway
BuildArch: noarch
License: CC0

%description wallpapers
Wallpaper collection provided with Sway


%prep
%autosetup -N -n %{name}-%{tag}

# apply unconditional patches
%autopatch -p1 -M99
# apply conditional patches

%build
%meson \
-Dsd-bus-provider=libsystemd \
-Dwerror=false
%meson_build

%install
%meson_install
# Install portals.conf for xdg-desktop-portal
install -D -m644 -pv %{SOURCE101} %{buildroot}%{_datadir}/xdg-desktop-portal/sway-portals.conf
# Create directory for extra config snippets
install -d -m755 -pv %{buildroot}%{_sysconfdir}/sway/config.d


%files
%license LICENSE
%dir %{_sysconfdir}/sway
%dir %{_sysconfdir}/sway/config.d
%{_mandir}/man1/sway*
%{_mandir}/man5/*
%{_mandir}/man7/*
%caps(cap_sys_nice=ep) %{_bindir}/sway
%{_bindir}/swaybar
%{_bindir}/swaymsg
%{_bindir}/swaynag

%config(noreplace) %{_sysconfdir}/sway/config
%{_datadir}/wayland-sessions/sway.desktop

%dir %{_datadir}/xdg-desktop-portal
%{_datadir}/xdg-desktop-portal/sway-portals.conf

%{bash_completions_dir}/sway*
%{fish_completions_dir}/sway*.fish
%{zsh_completions_dir}/_sway*


%files wallpapers
%license assets/LICENSE
%{_datadir}/backgrounds/sway

# Changelog will be empty until you make first annotated Git tag.
# %changelog
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading
Loading