tangled
alpha
login
or
join now
tjh.dev
/
nixpkgs
Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
0
fork
atom
overview
issues
pulls
pipelines
rtfm: 0.2.4 -> 0.4.1
sund3RRR
2 years ago
a73b134d
63ac7bec
+63
-58
6 changed files
expand all
collapse all
unified
split
pkgs
applications
misc
rtfm
default.nix
enable-write-permissions.patch
make.patch
patches
friendly-docs-path.patch
make.patch
shards.nix
+12
-14
pkgs/applications/misc/rtfm/default.nix
···
7
7
, desktopToDarwinBundle
8
8
, webkitgtk_6_0
9
9
, sqlite
10
10
-
, gi-crystal
11
10
, libadwaita
12
11
, gtk4
13
12
, pango
13
13
+
, substituteAll
14
14
}:
15
15
let
16
16
gtk4' = gtk4.override { x11Support = true; };
···
18
18
in
19
19
crystal.buildCrystalPackage rec {
20
20
pname = "rtfm";
21
21
-
version = "0.2.4";
21
21
+
version = "0.4.1";
22
22
23
23
src = fetchFromGitHub {
24
24
owner = "hugopl";
25
25
repo = "rtfm";
26
26
rev = "v${version}";
27
27
name = "rtfm";
28
28
-
hash = "sha256-IfI7jYM1bsrCq2NiANv/SWkCjPyT/HYUofJMUYy0Sbk=";
28
28
+
hash = "sha256-cloaGlHjtwrjuPGzAG55B58w307R+TO+MixAWTw2ags=";
29
29
};
30
30
31
31
patches = [
32
32
# 1) fixed gi-crystal binding generator command
33
33
-
# 2) removed `-v` arg to `cp` command to prevent build failure due to stdout buffer overflow
33
33
+
# 2) fixed docset generator command
34
34
# 3) added commands to build gschemas and update icon-cache
35
35
-
./patches/make.patch
36
36
-
37
37
-
# fixed docset path and gi libs directory names
38
38
-
./patches/friendly-docs-path.patch
39
39
-
35
35
+
(substituteAll {
36
36
+
src = ./make.patch;
37
37
+
inherit crystal;
38
38
+
})
40
39
# added chmod +w for copied docs to prevent error:
41
40
# `Error opening file with mode 'wb': '.../style.css': Permission denied`
42
42
-
./patches/enable-write-permissions.patch
41
41
+
./enable-write-permissions.patch
43
42
];
44
43
45
44
postPatch = ''
46
46
-
substituteInPlace Makefile \
47
47
-
--replace "crystal run src/create_crystal_docset.cr" "crystal src/create_crystal_docset.cr ${crystal}/share/doc/crystal/api/" \
48
48
-
--replace "crystal run src/create_gtk_docset.cr" "crystal src/create_gtk_docset.cr gtk-doc/"
45
45
+
substituteInPlace src/doc2dash/create_gtk_docset.cr \
46
46
+
--replace-fail 'basedir = Path.new("/usr/share/doc")' 'basedir = Path.new(ARGV[0]? || "gtk-docs")'
49
47
'';
50
48
51
49
shardsFile = ./shards.nix;
50
50
+
copyShardDeps = true;
52
51
53
52
nativeBuildInputs = [
54
53
wrapGAppsHook4
55
54
gobject-introspection
56
56
-
gi-crystal
57
55
] ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
58
56
59
57
buildInputs = [
+39
pkgs/applications/misc/rtfm/make.patch
···
1
1
+
--- a/Makefile 2024-04-20 10:28:36.697545022 +0300
2
2
+
+++ b/Makefile 2024-04-20 10:37:55.591657540 +0300
3
3
+
@@ -7,8 +7,10 @@
4
4
+
shards build --debug -Dpreview_mt
5
5
+
6
6
+
configure:
7
7
+
- shards install
8
8
+
- ./bin/gi-crystal
9
9
+
+ mkdir bin/
10
10
+
+ cd lib/gi-crystal && shards build -Dpreview_mt --release --no-debug
11
11
+
+ cd ../..
12
12
+
+ cp lib/gi-crystal/bin/gi-crystal bin/ && ./bin/gi-crystal
13
13
+
14
14
+
rtfm:
15
15
+
shards build --release -Dpreview_mt rtfm
16
16
+
@@ -16,10 +18,10 @@
17
17
+
docsets: crystal-docset gtk-docset
18
18
+
19
19
+
crystal-docset:
20
20
+
- crystal run src/doc2dash/create_crystal_docset.cr
21
21
+
+ crystal src/doc2dash/create_crystal_docset.cr "@crystal@/share/doc/crystal/api"
22
22
+
23
23
+
gtk-docset:
24
24
+
- crystal run src/doc2dash/create_gtk_docset.cr
25
25
+
+ crystal src/doc2dash/create_gtk_docset.cr "gtk-doc/"
26
26
+
27
27
+
test: crystal-docset gtk-docset
28
28
+
crystal spec
29
29
+
@@ -28,8 +30,10 @@
30
30
+
install -D -m 0755 bin/rtfm $(DESTDIR)$(PREFIX)/bin/rtfm
31
31
+
install -D -m 0644 data/io.github.hugopl.rtfm.desktop $(DESTDIR)$(PREFIX)/share/applications/io.github.hugopl.rtfm.desktop
32
32
+
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
33
33
+
+ gtk4-update-icon-cache --ignore-theme-index $(PREFIX)/share/icons/hicolor
34
34
+
# Settings schema
35
35
+
install -D -m644 data/io.github.hugopl.rtfm.gschema.xml $(DESTDIR)$(PREFIX)/share/glib-2.0/schemas/io.github.hugopl.rtfm.gschema.xml
36
36
+
+ glib-compile-schemas $(DESTDIR)$(PREFIX)/share/glib-2.0/schemas
37
37
+
# docsets
38
38
+
mkdir -p $(DESTDIR)$(PREFIX)/share/rtfm/docsets/
39
39
+
cp -r data/Crystal.docset $(DESTDIR)$(PREFIX)/share/rtfm/docsets/
+2
-2
pkgs/applications/misc/rtfm/patches/enable-write-permissions.patch
pkgs/applications/misc/rtfm/enable-write-permissions.patch
···
1
1
-
--- a/src/doc2dash/doc_set_builder.cr 2023-07-19 14:00:06.864770147 +0300
2
2
-
+++ b/src/doc2dash/doc_set_builder.cr 2023-07-19 13:59:35.440707740 +0300
1
1
+
--- a/src/doc2dash/docset_builder.cr 2024-04-20 10:45:32.000673168 +0300
2
2
+
+++ b/src/doc2dash/docset_builder.cr 2024-04-20 10:45:56.072895349 +0300
3
3
@@ -44,6 +44,7 @@
4
4
real_dest = @html_dest.join(dest || source)
5
5
Dir.mkdir_p(Path.new(real_dest).dirname)
-11
pkgs/applications/misc/rtfm/patches/friendly-docs-path.patch
···
1
1
-
--- a/src/create_gtk_docset.cr 2023-07-17 14:28:04.882620660 +0300
2
2
-
+++ b/src/create_gtk_docset.cr 2023-07-17 14:27:09.660643747 +0300
3
3
-
@@ -136,7 +136,7 @@
4
4
-
end
5
5
-
6
6
-
def find_modules : Array(Path)
7
7
-
- basedir = Path.new("/usr/share/doc")
8
8
-
+ basedir = Path.new(ARGV[0]? || "gtk-docs")
9
9
-
MODULES.compact_map do |mod|
10
10
-
print "#{mod.ljust(20, '.')}"
11
11
-
mod_dir = basedir.join(mod)
-21
pkgs/applications/misc/rtfm/patches/make.patch
···
1
1
-
--- a/Makefile 2023-12-07 23:37:38.984501858 +0300
2
2
-
+++ b/Makefile 2023-12-07 23:47:52.884456064 +0300
3
3
-
@@ -4,8 +4,7 @@
4
4
-
all: configure .WAIT rtfm docsets
5
5
-
6
6
-
configure:
7
7
-
- shards install
8
8
-
- ./bin/gi-crystal
9
9
-
+ gi-crystal
10
10
-
11
11
-
rtfm:
12
12
-
shards build --release -s rtfm
13
13
-
@@ -36,6 +35,8 @@
14
14
-
# Changelog
15
15
-
install -D -m0644 CHANGELOG.md $(DESTDIR)$(PREFIX)/share/doc/rtfm/CHANGELOG.md
16
16
-
gzip -9fn $(DESTDIR)$(PREFIX)/share/doc/rtfm/CHANGELOG.md
17
17
-
+ gtk4-update-icon-cache --ignore-theme-index $(PREFIX)/share/icons/hicolor
18
18
-
+ glib-compile-schemas $(DESTDIR)$(PREFIX)/share/glib-2.0/schemas
19
19
-
20
20
-
uninstall:
21
21
-
rm -f $(DESTDIR)$(PREFIX)/bin/rtfm
+10
-10
pkgs/applications/misc/rtfm/shards.nix
···
6
6
};
7
7
fzy = {
8
8
url = "https://github.com/hugopl/fzy.git";
9
9
-
rev = "v0.5.5";
10
10
-
sha256 = "1zk95m43ymx9ilwr6iw9l44nkmp4sas28ib0dkr07hkhgrkw68sv";
9
9
+
rev = "6c2395bcdea1889969d0d08c16163c276fe4e473";
10
10
+
sha256 = "0vpradafkwckfsq7wqrgkpsli7bfmgc27d38q06l1jzq0z0j92rw";
11
11
};
12
12
-
gio = {
13
13
-
url = "https://github.com/hugopl/gio.cr.git";
14
14
-
rev = "v0.2.1";
15
15
-
sha256 = "0vl5lpvhhdi9pvyl12smag0i3dwj1jjz1zzilc8ai0wjrnbnwlxs";
12
12
+
gi-crystal = {
13
13
+
url = "https://github.com/hugopl/gi-crystal.git";
14
14
+
rev = "v0.22.2";
15
15
+
sha256 = "0bpa1f8iaf97z2kbgjc7nc8km7nd7bppiwna319lm2hvm8m5pw15";
16
16
};
17
17
gtk4 = {
18
18
url = "https://github.com/hugopl/gtk4.cr.git";
19
19
-
rev = "v0.16.0";
20
20
-
sha256 = "1bnnfy07246vwbjfwhziv2yw1g52pzhhrr25660fp3qcnw8q513w";
19
19
+
rev = "v0.16.1";
20
20
+
sha256 = "1cqkbh072y70l8g0p040vf50k920p32ry1larnwn9mqabd74jwaj";
21
21
};
22
22
harfbuzz = {
23
23
url = "https://github.com/hugopl/harfbuzz.cr.git";
···
31
31
};
32
32
pango = {
33
33
url = "https://github.com/hugopl/pango.cr.git";
34
34
-
rev = "v0.3.0";
35
35
-
sha256 = "1dg5bcbq11zww4xh68dq4ivnsz89yqsnxz81ggp4j9c9d6dhx0m4";
34
34
+
rev = "v0.3.1";
35
35
+
sha256 = "0xlf127flimnll875mcq92q7xsi975rrgdpcpmnrwllhdhfx9qmv";
36
36
};
37
37
sqlite3 = {
38
38
url = "https://github.com/crystal-lang/crystal-sqlite3.git";