gtk: attempt to fix rpmspec
This commit is contained in:
@@ -1,58 +0,0 @@
|
|||||||
# CLAUDE.md
|
|
||||||
|
|
||||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
||||||
|
|
||||||
## Build Commands
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Setup build directory (first time)
|
|
||||||
meson setup builddir
|
|
||||||
|
|
||||||
# Build project
|
|
||||||
meson compile -C builddir
|
|
||||||
|
|
||||||
# Clean rebuild
|
|
||||||
rm -rf builddir && meson setup builddir && meson compile -C builddir
|
|
||||||
|
|
||||||
# Run the application
|
|
||||||
./builddir/src/kordophone
|
|
||||||
```
|
|
||||||
|
|
||||||
## Architecture Overview
|
|
||||||
|
|
||||||
Kordophone is a GTK4/Libadwaita messaging client written in Vala that acts as a frontend to a separate DBus daemon (`kordophonecd`). The application follows a clean separation of concerns:
|
|
||||||
|
|
||||||
### Core Architecture
|
|
||||||
- **DBus Client**: This GTK app connects to `net.buzzert.kordophonecd` daemon over DBus
|
|
||||||
- **Split UI**: Main window has conversation list sidebar + transcript view
|
|
||||||
- **Custom Rendering**: Transcript uses Gtk.DrawingArea with snapshot API for performance
|
|
||||||
- **Repository Pattern**: All data operations go through `Repository` singleton which proxies to DBus service
|
|
||||||
|
|
||||||
### Key Components
|
|
||||||
- **Application** (`src/application/`): App lifecycle, main window, preferences
|
|
||||||
- **Service** (`src/service/`): DBus integration, data repository, settings management
|
|
||||||
- **Conversation List** (`src/conversation-list/`): Sidebar with conversation list and search
|
|
||||||
- **Transcript** (`src/transcript/`): Message display with pluggable bubble layouts
|
|
||||||
- **Models** (`src/models/`): Data structures (Conversation, Message, Attachment)
|
|
||||||
|
|
||||||
### DBus Interface
|
|
||||||
The app depends on a running `kordophonecd` daemon that provides:
|
|
||||||
- **Repository interface**: Conversation/message CRUD, real-time sync via signals
|
|
||||||
- **Settings interface**: Server configuration, user credentials
|
|
||||||
|
|
||||||
### Development Notes
|
|
||||||
- Vala compiles to C, build artifacts in `builddir/`
|
|
||||||
- DBus interfaces auto-generated from XML: run `src/service/interface/generate.sh`
|
|
||||||
- Resources bundled via GResource (`src/resources/kordophone.gresource.xml`)
|
|
||||||
- Custom CSS styling in `src/resources/style.css`
|
|
||||||
- Application ID: `net.buzzert.kordophone2`
|
|
||||||
|
|
||||||
### Message Layout System
|
|
||||||
Transcript view uses a pluggable layout system in `src/transcript/layouts/`:
|
|
||||||
- `BubbleLayout`: Base class for message bubbles
|
|
||||||
- `TextBubbleLayout`: Text messages
|
|
||||||
- `ImageBubbleLayout`: Image attachments
|
|
||||||
- `DateItemLayout`: Date separators
|
|
||||||
- `SenderAnnotationLayout`: Sender labels
|
|
||||||
|
|
||||||
All layouts render to Cairo context via Gtk snapshot API for efficient scrolling performance.
|
|
||||||
12
gtk/dist/rpm/kordophone.spec
vendored
12
gtk/dist/rpm/kordophone.spec
vendored
@@ -4,7 +4,8 @@ Release: 1%{?dist}
|
|||||||
Summary: GTK4/Libadwaita client for Kordophone
|
Summary: GTK4/Libadwaita client for Kordophone
|
||||||
|
|
||||||
License: GPL
|
License: GPL
|
||||||
URL: https://git.sr.ht/~buzzert/kordophone-2-gtk
|
URL: https://code.buzzert.dev/buzzert/Kordophone
|
||||||
|
Source0: https://code.buzzert.dev/buzzert/Kordophone/archive/master.tar.gz
|
||||||
|
|
||||||
BuildRequires: meson >= 0.56.0
|
BuildRequires: meson >= 0.56.0
|
||||||
BuildRequires: vala
|
BuildRequires: vala
|
||||||
@@ -26,14 +27,9 @@ Requires: kordophoned >= 1.0.0
|
|||||||
%description
|
%description
|
||||||
A GTK4/Libadwaita Linux Client for the Kordophone client daemon.
|
A GTK4/Libadwaita Linux Client for the Kordophone client daemon.
|
||||||
|
|
||||||
%prep
|
|
||||||
if [ ! -d .git ]; then
|
|
||||||
git clone --bare https://git.sr.ht/~buzzert/kordophone-2-gtk .git
|
|
||||||
git config --local --bool core.bare false
|
|
||||||
git reset --hard
|
|
||||||
fi
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
pwd
|
||||||
|
cd gtk
|
||||||
%meson
|
%meson
|
||||||
%meson_build
|
%meson_build
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user