rtfm: 0.5.0 -> 0.6.0 (#378466)
This commit is contained in:
@@ -1,10 +0,0 @@
|
||||
--- 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)
|
||||
File.copy(original, real_dest)
|
||||
+ File.chmod(real_dest, 0o600)
|
||||
dest || source
|
||||
end
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
--- 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/
|
||||
@@ -2,7 +2,7 @@
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
crystal,
|
||||
crystal_1_14,
|
||||
wrapGAppsHook4,
|
||||
gobject-introspection,
|
||||
desktopToDarwinBundle,
|
||||
@@ -10,45 +10,70 @@
|
||||
sqlite,
|
||||
libadwaita,
|
||||
gtk4,
|
||||
glib,
|
||||
pango,
|
||||
replaceVars,
|
||||
symlinkJoin,
|
||||
gitUpdater,
|
||||
_experimental-update-script-combinators,
|
||||
runCommand,
|
||||
crystal2nix,
|
||||
writeShellScript,
|
||||
}:
|
||||
let
|
||||
gtk4' = gtk4.override { x11Support = true; };
|
||||
pango' = pango.override { withIntrospection = true; };
|
||||
in
|
||||
crystal.buildCrystalPackage rec {
|
||||
pname = "rtfm";
|
||||
version = "0.5.0";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hugopl";
|
||||
repo = "rtfm";
|
||||
rev = "v${version}";
|
||||
name = "rtfm";
|
||||
hash = "sha256-+s7KXl3+j/BaneOBqVAMJJhmrG6xtcGaHhYnMvUfiVA=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-KuxGQs7TPn2Lmgk/NjfoRsBtkTY0GC/DOUlQZXCdRXE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# 1) fixed gi-crystal binding generator command
|
||||
# 2) fixed docset generator command
|
||||
# 3) added commands to build gschemas and update icon-cache
|
||||
(replaceVars ./make.patch {
|
||||
inherit crystal;
|
||||
})
|
||||
# added chmod +w for copied docs to prevent error:
|
||||
# `Error opening file with mode 'wb': '.../style.css': Permission denied`
|
||||
./enable-write-permissions.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/doc2dash/create_gtk_docset.cr \
|
||||
--replace-fail 'basedir = Path.new("/usr/share/doc")' 'basedir = Path.new(ARGV[0]? || "gtk-docs")'
|
||||
'';
|
||||
gtk-doc =
|
||||
let
|
||||
gtk4' = gtk4.override { x11Support = true; };
|
||||
pango' = pango.override { withIntrospection = true; };
|
||||
in
|
||||
symlinkJoin {
|
||||
name = "gtk-doc";
|
||||
paths = [
|
||||
gtk4'.devdoc
|
||||
pango'.devdoc
|
||||
glib.devdoc
|
||||
libadwaita.devdoc
|
||||
webkitgtk_6_0.devdoc
|
||||
];
|
||||
};
|
||||
in
|
||||
crystal_1_14.buildCrystalPackage {
|
||||
pname = "rtfm";
|
||||
inherit version src;
|
||||
|
||||
shardsFile = ./shards.nix;
|
||||
copyShardDeps = true;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/doc2dash/create_gtk_docset.cr \
|
||||
--replace-fail 'basedir = Path.new("/usr/share/doc")' 'basedir = Path.new(ARGV[0]? || "${gtk-doc}/share/doc")' \
|
||||
--replace-fail 'webkit2gtk-4.0' 'webkitgtk-6.0'
|
||||
substituteInPlace src/doc2dash/create_crystal_docset.cr \
|
||||
--replace-fail 'doc_source = Path.new(ARGV[0]? || "/usr/share/doc/crystal/api")' 'doc_source = Path.new(ARGV[0]? || "${crystal_1_14}/share/doc/crystal/api")'
|
||||
substituteInPlace src/doc2dash/docset_builder.cr \
|
||||
--replace-fail 'File.copy(original, real_dest)' 'File.copy(original, real_dest); File.chmod(real_dest, 0o600)'
|
||||
substituteInPlace Makefile \
|
||||
--replace-fail 'shards install' 'true'
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
cd lib/gi-crystal
|
||||
shards build -Dpreview_mt --release --no-debug
|
||||
cd ../..
|
||||
mkdir bin/
|
||||
cp lib/gi-crystal/bin/gi-crystal bin/
|
||||
'';
|
||||
|
||||
buildTargets = [ "all" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
wrapGAppsHook4
|
||||
gobject-introspection
|
||||
@@ -58,37 +83,44 @@ crystal.buildCrystalPackage rec {
|
||||
webkitgtk_6_0
|
||||
sqlite
|
||||
libadwaita
|
||||
gtk4'
|
||||
pango'
|
||||
gtk4
|
||||
pango
|
||||
];
|
||||
|
||||
buildTargets = [
|
||||
"configure"
|
||||
"rtfm"
|
||||
"docsets"
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
mkdir gtk-doc/
|
||||
|
||||
for file in "${gtk4'.devdoc}"/share/doc/*; do
|
||||
ln -s "$file" "gtk-doc/$(basename "$file")"
|
||||
done
|
||||
|
||||
for file in "${pango'.devdoc}"/share/doc/*; do
|
||||
ln -s "$file" "gtk-doc/$(basename "$file")"
|
||||
done
|
||||
|
||||
for file in "${libadwaita.devdoc}"/share/doc/*; do
|
||||
ln -s "$file" "gtk-doc/$(basename "$file")"
|
||||
done
|
||||
postInstall = ''
|
||||
glib-compile-schemas $out/share/glib-2.0/schemas
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = _experimental-update-script-combinators.sequence [
|
||||
(gitUpdater { rev-prefix = "v"; })
|
||||
(_experimental-update-script-combinators.copyAttrOutputToFile "rtfm.shardLock" "./shard.lock")
|
||||
{
|
||||
command = [
|
||||
(writeShellScript "update-lock" "cd $1; ${lib.getExe crystal2nix}")
|
||||
./.
|
||||
];
|
||||
supportedFeatures = [ "silent" ];
|
||||
}
|
||||
{
|
||||
command = [
|
||||
"rm"
|
||||
"./shard.lock"
|
||||
];
|
||||
supportedFeatures = [ "silent" ];
|
||||
}
|
||||
];
|
||||
shardLock = runCommand "shard.lock" { inherit src; } ''
|
||||
cp $src/shard.lock $out
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Dash/docset reader with built in documentation for Crystal and GTK APIs";
|
||||
homepage = "https://github.com/hugopl/rtfm/";
|
||||
license = licenses.mit;
|
||||
mainProgram = "rtfm";
|
||||
maintainers = with maintainers; [ sund3RRR ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
};
|
||||
fzy = {
|
||||
url = "https://github.com/hugopl/fzy.git";
|
||||
rev = "6c2395bcdea1889969d0d08c16163c276fe4e473";
|
||||
sha256 = "0vpradafkwckfsq7wqrgkpsli7bfmgc27d38q06l1jzq0z0j92rw";
|
||||
rev = "v0.6.0";
|
||||
sha256 = "1mpw3ridzvqkf807wik6wzwpzcsk0075kifagsfnz38vx1mw2y55";
|
||||
};
|
||||
gi-crystal = {
|
||||
url = "https://github.com/hugopl/gi-crystal.git";
|
||||
rev = "v0.22.2";
|
||||
sha256 = "0bpa1f8iaf97z2kbgjc7nc8km7nd7bppiwna319lm2hvm8m5pw15";
|
||||
rev = "v0.24.0";
|
||||
sha256 = "0x356xn35008l573qhyl1sdddc9cc5i3bsa4c7865kgq9521ifyh";
|
||||
};
|
||||
gtk4 = {
|
||||
url = "https://github.com/hugopl/gtk4.cr.git";
|
||||
rev = "v0.16.1";
|
||||
sha256 = "1cqkbh072y70l8g0p040vf50k920p32ry1larnwn9mqabd74jwaj";
|
||||
rev = "v0.17.0";
|
||||
sha256 = "0lv3nvsanxi4g2322zvkf1jxx5zgzaapk228vcw2cl0ja1drm06d";
|
||||
};
|
||||
harfbuzz = {
|
||||
url = "https://github.com/hugopl/harfbuzz.cr.git";
|
||||
@@ -25,7 +25,7 @@
|
||||
sha256 = "06wgqxwyib5416yp53j2iwcbr3bl4jjxb1flm7z103l365par694";
|
||||
};
|
||||
libadwaita = {
|
||||
url = "https://github.com/geopjr/libadwaita.cr.git";
|
||||
url = "https://github.com/hugopl/libadwaita.cr.git";
|
||||
rev = "cffabb56e911d2a90c53c2fd14d6bd08bf5ac446";
|
||||
sha256 = "0gcq04vgxg0vff9fcalgzq9phq0y76diihkzhlfn91bdxwkx7rl3";
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user