012768bbd4869d310e5381fa93ae52f3a276cc7a
[booh] / INSTALL
1 This software requires for compiling:
2
3 - gtk >= 2.8
4 - devel of gtk
5 - ruby
6 - ruby-gettext >= 0.8.0
7 - ruby-gtk2 >= 0.12; notice:
8   - ruby-gtk2 0.15.0, 0.17.0 and 0.18.1 should be avoided, they are known
9     problematic versions
10   - with ruby >= 1.8.7, ruby-gtk2 >= 0.18.0 should be used, otherwise
11     crashes will occur
12 - devel of ruby-gnome2 (mkmf-gnome2.rb, rbgobject.h)
13 - devel of libexiv2 (and thus, g++)
14
15     Note: theoretically, gtk and ruby-gtk2 are not needed if
16     you're gonna use only the backend script (the only lost
17     functionality is white balance correction which uses
18     gdk_pixbuf). However, the GUI is an important part of this
19     software and its use is encouraged (it helps a lot).
20
21 And for runtime:
22
23 - convert (from ImageMagick) - for photos thumbnails generation
24 - identify (from ImageMagick) - for photos captions
25 - exif - to show full formatted EXIF information from photos
26 - mplayer - for videos thumbnails generation
27 - ffmpeg - for generating .mp4 videos
28 - gimp - for photos editing (may not be a hard require)
29 - mozilla-firefox - for showing albums in browser, and going on the
30   web for tutorials (may not be a hard require)
31 - lftp - for uploading web-albums
32
33         Compiling and Installing Quick Start
34
35 Type this as normal user:
36
37  # ruby setup.rb config
38  # ruby setup.rb setup
39  # cd ext
40  # ruby extconf.rb && make
41
42 *** Troubleshooting:
43
44 - on ubuntu 20, I received a failure on mkmf-gnome2 lib loading
45   indicating missing mkmf-gnome, and "sudo gem install gtk3"
46   workarounded this problem
47
48 - on one ubuntu 20, I received a failure compiling the extension with
49   Exiv2::AnyError not found; adding "#include <exiv2/exif.hpp>" in
50   line 27 of ext/rbbooh.cc workarounded this problem
51
52 - if that fails on missing GTK header file (gtk.h), you can try to
53   inject cflags with such a command:
54
55  # perl -pi -e 's/(CXXFLAGS.*)/$1 `pkg-config --cflags gtk+-2.0`/' Makefile
56  # make
57
58 - if that fails on redefinition of struct re_registers and you have
59   ruby-2.3, you can try to workaround with:
60
61  # cp /usr/include/ruby-2.3.0/ruby.h .
62  # perl -pi -e 's/.*HAVE_RUBY_ENCODING_H.*//' ruby.h
63  # make
64
65 - if that fails on redefinition of struct re_registers and you have
66   ruby-2.5, you can try to workaround with:
67
68  # mkdir exiv2
69  # cp -a /usr/include/exiv2/* exiv2
70  # perl -pi -e 's/#define EXV_HAVE_REGEX 1//' exiv2/exv_conf.h
71  # make
72
73 And type this as superuser:
74
75  $ ruby setup.rb install
76  $ cd ext
77  $ make install
78
79 If you want to package as normal user to another root:
80
81  $ ruby_archdir=`ruby -rrbconfig -e "puts Config::CONFIG['sitearchdir']"`
82  $ libdir=`ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']"`
83  $ rm -rf ${buildroot}
84  $ ruby setup.rb install --prefix=${buildroot}
85  $ cd ext
86  $ make install DESTDIR=${buildroot} libdir=${buildroot}${libdir} archdir=${buildroot}${ruby_archdir}
87
88 Note: it will install things in traditional directories plus
89 ruby_archdir and ruby_libdir.
90 Change FPATH in ${buildroot}/local/lib/site_ruby/1.8/booh/config.rb to suit your $buildroot
91
92 Find desktop stuff (.desktop entry and icons) for your menu/packaging system
93 in the destkop/ subdir.