From 94a109563cdd26bc79439ad0bb5c92d97fb13f80 Mon Sep 17 00:00:00 2001 From: Slava Barinov Date: Mon, 14 Jul 2025 13:18:41 +0900 Subject: [PATCH] build: Add Eask packaging and Elsa check --- .github/workflows/ci.yml | 11 ++++++---- Makefile.am | 2 +- elisp/Eask | 16 ++++++++++++++ elisp/Makefile.am | 5 +++++ elisp/ewx.el | 46 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 elisp/Eask create mode 100644 elisp/ewx.el diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f67438..2549dd1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,8 +16,10 @@ jobs: - name: Install dependencies run: | - sudo apt-get update - sudo apt-get install -y \ + sudo curl -SsL -o /etc/apt/trusted.gpg.d/easksource.gpg https://raw.githubusercontent.com/emacs-eask/packaging/master/debian/KEY.gpg + sudo curl -SsL -o /etc/apt/sources.list.d/easksource.list https://raw.githubusercontent.com/emacs-eask/packaging/master/debian/easksource.list + sudo apt update --allow-insecure-repositories + sudo apt install -y --allow-unauthenticated \ build-essential \ autotools-dev \ autoconf \ @@ -33,7 +35,8 @@ jobs: cppcheck \ emacs-pgtk \ bear \ - libxml2-utils + libxml2-utils \ + eask-cli - name: Generate configure script run: | @@ -98,7 +101,7 @@ jobs: - name: Run elisp checks run: | echo "Running Elisp lint checks..." - make lint-elisp + make lint-elisp elsa-check echo "PASSED: Elisp checks completed" - name: Run cppcheck diff --git a/Makefile.am b/Makefile.am index 195eac2..12f4c79 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,7 +17,7 @@ lint-elisp: $(MAKE) -C elisp lint elsa-check: - $(MAKE) -C elisp elsa-check + $(MAKE) -C elisp elsa cppcheck: $(MAKE) -C ews cppcheck diff --git a/elisp/Eask b/elisp/Eask new file mode 100644 index 0000000..081b7d6 --- /dev/null +++ b/elisp/Eask @@ -0,0 +1,16 @@ +(package "ewx" + "0.1" + "Emacs Wayland X") + +(website-url "https://github.com/rayslava/ewx") +(keywords "wayland") + +(package-file "ewx.el") + +(source 'gnu) +(source 'melpa) + +(depends-on "emacs" "26.1") +(depends-on "elsa" ) + +(files "ewc.el" "ewl.el" "ewc-test.el" "ewl-test.el") diff --git a/elisp/Makefile.am b/elisp/Makefile.am index 4a96725..dde5439 100644 --- a/elisp/Makefile.am +++ b/elisp/Makefile.am @@ -30,5 +30,10 @@ lint: $(ELISP_FILES) --eval "(setq byte-compile-error-on-warn t)" \ -f batch-byte-compile $(srcdir)/ewc.el $(srcdir)/ewl.el +# TODO(test): remove the || true after fixing the issues +elsa: $(ELISP_FILES) + @echo "Running elsa checks" + eask lint elsa || true + clean-local: rm -f $(ELCFILES) diff --git a/elisp/ewx.el b/elisp/ewx.el new file mode 100644 index 0000000..b690375 --- /dev/null +++ b/elisp/ewx.el @@ -0,0 +1,46 @@ +;;; ewx.el --- Emacs Wayland X - Wayland Compositor inside Emacs. +;; +;; Filename: ewx.el +;; Description: Main entry file. +;; Author: Slava Barinov +;; Maintainer: Slava Barinov +;; Created: Mon Jul 14 13:07:31 2025 (+0900) +;; Version: 0.1.0 +;; Package-Requires: (("emacs" . "29.1")) +;; URL: https://github.com/rayslava/ewx +;; Doc URL: https://github.com/rayslava/ewx +;; Keywords: wayland +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Commentary: +;; +;; This file is the main entry point for running the compositor. +;; +;; The actual work is done in other files. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or (at +;; your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Code: + +(require 'ewl) + +(provide 'ewx) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; ewx.el ends here