Unverified Commit f2645327 authored by Peder Bergebakken Sundt's avatar Peder Bergebakken Sundt Committed by GitHub
Browse files

Merge pull request #305481 from sund3RRR/rtfm-0.4.1

rtfm: 0.2.4 -> 0.4.1
parents 78e550e9 a73b134d
Loading
Loading
Loading
Loading
+12 −14
Original line number Diff line number Diff line
@@ -7,10 +7,10 @@
, desktopToDarwinBundle
, webkitgtk_6_0
, sqlite
, gi-crystal
, libadwaita
, gtk4
, pango
, substituteAll
}:
let
  gtk4' = gtk4.override { x11Support = true; };
@@ -18,42 +18,40 @@ let
in
crystal.buildCrystalPackage rec {
  pname = "rtfm";
  version = "0.2.4";
  version = "0.4.1";

  src = fetchFromGitHub {
    owner = "hugopl";
    repo = "rtfm";
    rev = "v${version}";
    name = "rtfm";
    hash = "sha256-IfI7jYM1bsrCq2NiANv/SWkCjPyT/HYUofJMUYy0Sbk=";
    hash = "sha256-cloaGlHjtwrjuPGzAG55B58w307R+TO+MixAWTw2ags=";
  };

  patches = [
    # 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
    ./patches/make.patch

    # fixed docset path and gi libs directory names
    ./patches/friendly-docs-path.patch

    (substituteAll {
      src = ./make.patch;
      inherit crystal;
    })
    # added chmod +w for copied docs to prevent error:
    # `Error opening file with mode 'wb': '.../style.css': Permission denied`
    ./patches/enable-write-permissions.patch
    ./enable-write-permissions.patch
  ];

  postPatch = ''
    substituteInPlace Makefile \
      --replace "crystal run src/create_crystal_docset.cr" "crystal src/create_crystal_docset.cr ${crystal}/share/doc/crystal/api/" \
      --replace "crystal run src/create_gtk_docset.cr" "crystal src/create_gtk_docset.cr gtk-doc/"
    substituteInPlace src/doc2dash/create_gtk_docset.cr \
      --replace-fail 'basedir = Path.new("/usr/share/doc")' 'basedir = Path.new(ARGV[0]? || "gtk-docs")'
  '';

  shardsFile = ./shards.nix;
  copyShardDeps = true;

  nativeBuildInputs = [
    wrapGAppsHook4
    gobject-introspection
    gi-crystal
  ] ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];

  buildInputs = [
+2 −2
Original line number Diff line number Diff line
--- a/src/doc2dash/doc_set_builder.cr	2023-07-19 14:00:06.864770147 +0300
+++ b/src/doc2dash/doc_set_builder.cr	2023-07-19 13:59:35.440707740 +0300
--- a/src/doc2dash/docset_builder.cr	2024-04-20 10:45:32.000673168 +0300
+++ b/src/doc2dash/docset_builder.cr	2024-04-20 10:45:56.072895349 +0300
@@ -44,6 +44,7 @@
       real_dest = @html_dest.join(dest || source)
       Dir.mkdir_p(Path.new(real_dest).dirname)
+39 −0
Original line number Diff line number Diff line
--- 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/
+0 −11
Original line number Diff line number Diff line
--- 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)
+0 −21
Original line number Diff line number Diff line
--- 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
Loading