Merge pull request #305481 from sund3RRR/rtfm-0.4.1

rtfm: 0.2.4 -> 0.4.1
This commit is contained in:
Peder Bergebakken Sundt 2024-04-21 15:22:48 +02:00 committed by GitHub
commit f264532751
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 63 additions and 58 deletions

View File

@ -7,10 +7,10 @@
, desktopToDarwinBundle , desktopToDarwinBundle
, webkitgtk_6_0 , webkitgtk_6_0
, sqlite , sqlite
, gi-crystal
, libadwaita , libadwaita
, gtk4 , gtk4
, pango , pango
, substituteAll
}: }:
let let
gtk4' = gtk4.override { x11Support = true; }; gtk4' = gtk4.override { x11Support = true; };
@ -18,42 +18,40 @@ let
in in
crystal.buildCrystalPackage rec { crystal.buildCrystalPackage rec {
pname = "rtfm"; pname = "rtfm";
version = "0.2.4"; version = "0.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hugopl"; owner = "hugopl";
repo = "rtfm"; repo = "rtfm";
rev = "v${version}"; rev = "v${version}";
name = "rtfm"; name = "rtfm";
hash = "sha256-IfI7jYM1bsrCq2NiANv/SWkCjPyT/HYUofJMUYy0Sbk="; hash = "sha256-cloaGlHjtwrjuPGzAG55B58w307R+TO+MixAWTw2ags=";
}; };
patches = [ patches = [
# 1) fixed gi-crystal binding generator command # 1) fixed gi-crystal binding generator command
# 2) removed `-v` arg to `cp` command to prevent build failure due to stdout buffer overflow # 2) fixed docset generator command
# 3) added commands to build gschemas and update icon-cache # 3) added commands to build gschemas and update icon-cache
./patches/make.patch (substituteAll {
src = ./make.patch;
# fixed docset path and gi libs directory names inherit crystal;
./patches/friendly-docs-path.patch })
# added chmod +w for copied docs to prevent error: # added chmod +w for copied docs to prevent error:
# `Error opening file with mode 'wb': '.../style.css': Permission denied` # `Error opening file with mode 'wb': '.../style.css': Permission denied`
./patches/enable-write-permissions.patch ./enable-write-permissions.patch
]; ];
postPatch = '' postPatch = ''
substituteInPlace Makefile \ substituteInPlace src/doc2dash/create_gtk_docset.cr \
--replace "crystal run src/create_crystal_docset.cr" "crystal src/create_crystal_docset.cr ${crystal}/share/doc/crystal/api/" \ --replace-fail 'basedir = Path.new("/usr/share/doc")' 'basedir = Path.new(ARGV[0]? || "gtk-docs")'
--replace "crystal run src/create_gtk_docset.cr" "crystal src/create_gtk_docset.cr gtk-doc/"
''; '';
shardsFile = ./shards.nix; shardsFile = ./shards.nix;
copyShardDeps = true;
nativeBuildInputs = [ nativeBuildInputs = [
wrapGAppsHook4 wrapGAppsHook4
gobject-introspection gobject-introspection
gi-crystal
] ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ]; ] ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
buildInputs = [ buildInputs = [

View File

@ -1,5 +1,5 @@
--- a/src/doc2dash/doc_set_builder.cr 2023-07-19 14:00:06.864770147 +0300 --- a/src/doc2dash/docset_builder.cr 2024-04-20 10:45:32.000673168 +0300
+++ b/src/doc2dash/doc_set_builder.cr 2023-07-19 13:59:35.440707740 +0300 +++ b/src/doc2dash/docset_builder.cr 2024-04-20 10:45:56.072895349 +0300
@@ -44,6 +44,7 @@ @@ -44,6 +44,7 @@
real_dest = @html_dest.join(dest || source) real_dest = @html_dest.join(dest || source)
Dir.mkdir_p(Path.new(real_dest).dirname) Dir.mkdir_p(Path.new(real_dest).dirname)

View File

@ -0,0 +1,39 @@
--- a/Makefile 2024-04-20 10:28:36.697545022 +0300
+++ b/Makefile 2024-04-20 10:37:55.591657540 +0300
@@ -7,8 +7,10 @@
shards build --debug -Dpreview_mt
configure:
- shards install
- ./bin/gi-crystal
+ mkdir bin/
+ cd lib/gi-crystal && shards build -Dpreview_mt --release --no-debug
+ cd ../..
+ cp lib/gi-crystal/bin/gi-crystal bin/ && ./bin/gi-crystal
rtfm:
shards build --release -Dpreview_mt rtfm
@@ -16,10 +18,10 @@
docsets: crystal-docset gtk-docset
crystal-docset:
- crystal run src/doc2dash/create_crystal_docset.cr
+ crystal src/doc2dash/create_crystal_docset.cr "@crystal@/share/doc/crystal/api"
gtk-docset:
- crystal run src/doc2dash/create_gtk_docset.cr
+ crystal src/doc2dash/create_gtk_docset.cr "gtk-doc/"
test: crystal-docset gtk-docset
crystal spec
@@ -28,8 +30,10 @@
install -D -m 0755 bin/rtfm $(DESTDIR)$(PREFIX)/bin/rtfm
install -D -m 0644 data/io.github.hugopl.rtfm.desktop $(DESTDIR)$(PREFIX)/share/applications/io.github.hugopl.rtfm.desktop
install -D -m 0644 data/icons/hicolor/scalable/apps/io.github.hugopl.rtfm.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/io.github.hugopl.rtfm.svg
+ gtk4-update-icon-cache --ignore-theme-index $(PREFIX)/share/icons/hicolor
# Settings schema
install -D -m644 data/io.github.hugopl.rtfm.gschema.xml $(DESTDIR)$(PREFIX)/share/glib-2.0/schemas/io.github.hugopl.rtfm.gschema.xml
+ glib-compile-schemas $(DESTDIR)$(PREFIX)/share/glib-2.0/schemas
# docsets
mkdir -p $(DESTDIR)$(PREFIX)/share/rtfm/docsets/
cp -r data/Crystal.docset $(DESTDIR)$(PREFIX)/share/rtfm/docsets/

View File

@ -1,11 +0,0 @@
--- a/src/create_gtk_docset.cr 2023-07-17 14:28:04.882620660 +0300
+++ b/src/create_gtk_docset.cr 2023-07-17 14:27:09.660643747 +0300
@@ -136,7 +136,7 @@
end
def find_modules : Array(Path)
- basedir = Path.new("/usr/share/doc")
+ basedir = Path.new(ARGV[0]? || "gtk-docs")
MODULES.compact_map do |mod|
print "#{mod.ljust(20, '.')}"
mod_dir = basedir.join(mod)

View File

@ -1,21 +0,0 @@
--- a/Makefile 2023-12-07 23:37:38.984501858 +0300
+++ b/Makefile 2023-12-07 23:47:52.884456064 +0300
@@ -4,8 +4,7 @@
all: configure .WAIT rtfm docsets
configure:
- shards install
- ./bin/gi-crystal
+ gi-crystal
rtfm:
shards build --release -s rtfm
@@ -36,6 +35,8 @@
# Changelog
install -D -m0644 CHANGELOG.md $(DESTDIR)$(PREFIX)/share/doc/rtfm/CHANGELOG.md
gzip -9fn $(DESTDIR)$(PREFIX)/share/doc/rtfm/CHANGELOG.md
+ gtk4-update-icon-cache --ignore-theme-index $(PREFIX)/share/icons/hicolor
+ glib-compile-schemas $(DESTDIR)$(PREFIX)/share/glib-2.0/schemas
uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/rtfm

View File

@ -6,18 +6,18 @@
}; };
fzy = { fzy = {
url = "https://github.com/hugopl/fzy.git"; url = "https://github.com/hugopl/fzy.git";
rev = "v0.5.5"; rev = "6c2395bcdea1889969d0d08c16163c276fe4e473";
sha256 = "1zk95m43ymx9ilwr6iw9l44nkmp4sas28ib0dkr07hkhgrkw68sv"; sha256 = "0vpradafkwckfsq7wqrgkpsli7bfmgc27d38q06l1jzq0z0j92rw";
}; };
gio = { gi-crystal = {
url = "https://github.com/hugopl/gio.cr.git"; url = "https://github.com/hugopl/gi-crystal.git";
rev = "v0.2.1"; rev = "v0.22.2";
sha256 = "0vl5lpvhhdi9pvyl12smag0i3dwj1jjz1zzilc8ai0wjrnbnwlxs"; sha256 = "0bpa1f8iaf97z2kbgjc7nc8km7nd7bppiwna319lm2hvm8m5pw15";
}; };
gtk4 = { gtk4 = {
url = "https://github.com/hugopl/gtk4.cr.git"; url = "https://github.com/hugopl/gtk4.cr.git";
rev = "v0.16.0"; rev = "v0.16.1";
sha256 = "1bnnfy07246vwbjfwhziv2yw1g52pzhhrr25660fp3qcnw8q513w"; sha256 = "1cqkbh072y70l8g0p040vf50k920p32ry1larnwn9mqabd74jwaj";
}; };
harfbuzz = { harfbuzz = {
url = "https://github.com/hugopl/harfbuzz.cr.git"; url = "https://github.com/hugopl/harfbuzz.cr.git";
@ -31,8 +31,8 @@
}; };
pango = { pango = {
url = "https://github.com/hugopl/pango.cr.git"; url = "https://github.com/hugopl/pango.cr.git";
rev = "v0.3.0"; rev = "v0.3.1";
sha256 = "1dg5bcbq11zww4xh68dq4ivnsz89yqsnxz81ggp4j9c9d6dhx0m4"; sha256 = "0xlf127flimnll875mcq92q7xsi975rrgdpcpmnrwllhdhfx9qmv";
}; };
sqlite3 = { sqlite3 = {
url = "https://github.com/crystal-lang/crystal-sqlite3.git"; url = "https://github.com/crystal-lang/crystal-sqlite3.git";