Add AppImage installation and release guides

This commit is contained in:
burnintuna 2026-07-21 02:36:37 +09:00
parent 8d973f77dd
commit a1b941e8f5
4 changed files with 181 additions and 0 deletions

View file

@ -3,6 +3,11 @@
Comicviewer is a GTK4 desktop application for browsing and reading comic image Comicviewer is a GTK4 desktop application for browsing and reading comic image
archives stored locally or on SMB, FTP, and SFTP servers. archives stored locally or on SMB, FTP, and SFTP servers.
한국어 문서:
- [설치 및 실행 안내](docs/INSTALL.ko.md)
- [AppImage Release 배포 안내](docs/RELEASING.ko.md)
The project is currently in early development. It supports saved local, SMB, The project is currently in early development. It supports saved local, SMB,
FTP, and SFTP locations, complete remote ZIP downloads with an LRU cache, FTP, and SFTP locations, complete remote ZIP downloads with an LRU cache,
natural sorting, safe on-demand image decoding and prefetching, single-page and natural sorting, safe on-demand image decoding and prefetching, single-page and

View file

@ -0,0 +1 @@
ae696a3913804a39f304d6b111fc987973e81a3a37aa5d50089e5dfe490ac2f0 Comicviewer-0.1.0-x86_64.AppImage

87
docs/INSTALL.ko.md Normal file
View file

@ -0,0 +1,87 @@
# Comicviewer 설치 및 실행 안내
Comicviewer는 CachyOS와 Arch Linux에서 사용할 수 있는 만화 ZIP 뷰어입니다.
로컬 파일뿐 아니라 SMB, FTP, SFTP 서버의 폴더와 ZIP 파일도 열 수 있습니다.
## 1. 필수 패키지 설치
AppImage 실행과 원격 파일 접근에 필요한 패키지를 설치합니다.
```sh
sudo pacman -S fuse2 gvfs gvfs-smb
```
- `fuse2`: AppImage 마운트 및 실행
- `gvfs`: FTP와 SFTP 접근
- `gvfs-smb`: SMB 공유 접근
## 2. 다운로드 검증
Release 페이지에서 다음 두 파일을 같은 폴더에 다운로드합니다.
- `Comicviewer-0.1.0-x86_64.AppImage`
- `Comicviewer-0.1.0-x86_64.AppImage.sha256`
다운로드한 폴더에서 체크섬을 검증합니다.
```sh
sha256sum -c Comicviewer-0.1.0-x86_64.AppImage.sha256
```
`성공` 또는 `OK`가 표시되어야 합니다. 검증에 실패하면 파일을 실행하지 말고
다시 다운로드합니다.
## 3. 실행
AppImage에 실행 권한을 부여한 뒤 실행합니다.
```sh
chmod +x Comicviewer-0.1.0-x86_64.AppImage
./Comicviewer-0.1.0-x86_64.AppImage
```
FUSE를 사용할 수 없는 환경에서는 다음과 같이 임시 추출 방식으로 실행할 수
있습니다.
```sh
./Comicviewer-0.1.0-x86_64.AppImage --appimage-extract-and-run
```
## 4. 선택 사항: 사용자 계정에 설치
AppImage를 사용자 전용 프로그램 폴더에 설치하고 명령어로 실행하려면 다음을
사용합니다.
```sh
mkdir -p ~/.local/opt/comicviewer ~/.local/bin
install -m 755 Comicviewer-0.1.0-x86_64.AppImage \
~/.local/opt/comicviewer/Comicviewer.AppImage
ln -sfn ~/.local/opt/comicviewer/Comicviewer.AppImage ~/.local/bin/comicviewer
```
이후 새 터미널에서 다음 명령으로 실행할 수 있습니다.
```sh
comicviewer
```
`~/.local/bin`이 `PATH`에 없으면 AppImage의 전체 경로로 실행합니다.
## 데이터 저장 위치
Comicviewer는 XDG 표준 경로를 사용합니다.
- 설정: `${XDG_CONFIG_HOME:-~/.config}/comicviewer/`
- 읽기 기록과 데이터: `${XDG_DATA_HOME:-~/.local/share}/comicviewer/`
- 원격 ZIP 캐시: `${XDG_CACHE_HOME:-~/.cache}/comicviewer/`
저장한 원격 위치의 사용자명과 비밀번호는 설정 파일에 평문으로 기록됩니다.
설정 파일 권한은 `0600`으로 제한되지만, 설정 파일을 다른 사람에게 전달하거나
공유하지 않아야 합니다.
## 원격 파일 이용 참고 사항
- SMB 접속에는 호스트 시스템의 `gvfs-smb`가 필요합니다.
- FTP와 SFTP 접속에는 호스트 시스템의 GVfs 서비스가 필요합니다.
- 원격 ZIP은 열기 전에 로컬 캐시로 완전히 다운로드됩니다.
- 기본 영구 ZIP 캐시 한도는 10GB이며 설정에서 변경할 수 있습니다.

88
docs/RELEASING.ko.md Normal file
View file

@ -0,0 +1,88 @@
# AppImage Release 배포 안내
지인에게 배포할 때는 AppImage를 Git 소스 이력에 추가하지 않고 Git 서버의
Release 첨부 파일로 제공하는 방식을 권장합니다. 버전별 바이너리를 커밋하면
저장소를 복제할 때 모든 과거 바이너리까지 내려받아 저장소가 빠르게 커집니다.
기존 `v0.1.0` AppImage 커밋은 배포 기록으로 유지하되, 다음 버전부터는 이
절차를 사용합니다.
## 1. 버전 갱신
릴리스 전에 다음 위치의 버전이 일치하는지 확인합니다.
- `Cargo.toml`의 패키지 버전
- `data/io.github.comicviewer.Comicviewer.metainfo.xml`의 릴리스 버전과 날짜
- `packaging/build-appimage.sh`의 출력 파일 버전
## 2. 품질 검사
```sh
cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-features
```
모든 검사를 통과한 소스에서 AppImage를 빌드합니다.
## 3. AppImage 빌드
`linuxdeploy-x86_64.AppImage`와 `linuxdeploy-plugin-gtk.sh`가 있는 도구
폴더를 지정합니다.
```sh
PATH="/path/to/appimage-tools:$PATH" \
LINUXDEPLOY="/path/to/appimage-tools/linuxdeploy-x86_64.AppImage" \
./packaging/build-appimage.sh
```
완성된 AppImage는 `dist/`에 생성됩니다. 배포 전에 직접 실행해 기본 화면이
열리는지 확인합니다.
## 4. 체크섬 생성
아래 예시의 버전은 실제 릴리스 버전으로 변경합니다.
```sh
version=0.1.0
cd dist
sha256sum "Comicviewer-${version}-x86_64.AppImage" \
> "Comicviewer-${version}-x86_64.AppImage.sha256"
```
## 5. 소스 커밋과 태그
버전 변경과 문서를 커밋한 뒤 주석 태그를 생성하고 푸시합니다. AppImage 자체는
`git add -f`로 추가하지 않습니다.
```sh
git add Cargo.toml Cargo.lock data packaging README.md docs
git commit -m "Prepare v0.1.0 release"
git tag -a v0.1.0 -m "Comicviewer v0.1.0"
git push origin main
git push origin v0.1.0
```
이미 원격에 공개한 태그는 이동하거나 덮어쓰지 않습니다. 수정이 필요하면 새
패치 버전을 만듭니다.
## 6. Git 서버 Release 생성
Git 서버의 Releases 화면에서 푸시한 태그를 선택해 Release를 생성하고 다음
파일을 첨부합니다.
- `Comicviewer-0.1.0-x86_64.AppImage`
- `Comicviewer-0.1.0-x86_64.AppImage.sha256`
Release 설명에는 주요 변경 사항과 함께 다음 요구사항을 안내합니다.
```text
지원 환경: CachyOS / Arch Linux x86_64
필수 패키지: fuse2, gvfs, gvfs-smb
실행:
chmod +x Comicviewer-0.1.0-x86_64.AppImage
./Comicviewer-0.1.0-x86_64.AppImage
```
사용자에게는 [`INSTALL.ko.md`](INSTALL.ko.md) 문서를 함께 안내합니다.