rsvg2 3.2.3-x64-mingw32 → 3.2.4-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +5 -2
  3. data/vendor/local/bin/csslint-0.6.exe +0 -0
  4. data/vendor/local/bin/libcroco-0.6-3.dll +0 -0
  5. data/vendor/local/bin/librsvg-2-2.dll +0 -0
  6. data/vendor/local/bin/rsvg-convert.exe +0 -0
  7. data/vendor/local/include/librsvg-2.0/librsvg/librsvg-enum-types.h +1 -1
  8. data/vendor/local/include/librsvg-2.0/librsvg/librsvg-features.h +3 -3
  9. data/vendor/local/include/librsvg-2.0/librsvg/rsvg-cairo.h +2 -2
  10. data/vendor/local/include/librsvg-2.0/librsvg/rsvg.h +13 -9
  11. data/vendor/local/lib/girepository-1.0/Rsvg-2.0.typelib +0 -0
  12. data/vendor/local/lib/libcroco-0.6.dll.a +0 -0
  13. data/vendor/local/lib/librsvg-2.a +0 -0
  14. data/vendor/local/lib/librsvg-2.dll.a +0 -0
  15. data/vendor/local/lib/librsvg-2.la +5 -5
  16. data/vendor/local/lib/pkgconfig/librsvg-2.0.pc +1 -1
  17. data/vendor/local/share/doc/librsvg/COMPILING.md +266 -0
  18. data/vendor/local/share/doc/librsvg/CONTRIBUTING.md +152 -0
  19. data/vendor/local/share/doc/librsvg/README.md +162 -0
  20. data/vendor/local/share/doc/librsvg/code-of-conduct.md +74 -0
  21. data/vendor/local/share/gir-1.0/Rsvg-2.0.gir +49 -32
  22. data/vendor/local/share/gtk-doc/html/rsvg-2.0/annotation-glossary.html +6 -6
  23. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-full.html +65 -108
  24. data/vendor/local/share/gtk-doc/html/rsvg-2.0/ch01.html +54 -0
  25. data/vendor/local/share/gtk-doc/html/rsvg-2.0/index.html +35 -19
  26. data/vendor/local/share/gtk-doc/html/rsvg-2.0/licence.html +14 -10
  27. data/vendor/local/share/gtk-doc/html/rsvg-2.0/object-tree.html +10 -14
  28. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-2.0.devhelp2 +46 -55
  29. data/vendor/local/share/gtk-doc/html/rsvg-2.0/{RsvgHandle.html → rsvg-RsvgHandle.html} +252 -338
  30. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Using-RSVG-with-GIO.html +35 -42
  31. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Using-RSVG-with-GdkPixbuf.html +38 -34
  32. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Using-RSVG-with-cairo.html +13 -13
  33. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Version-check-and-feature-tests.html +13 -13
  34. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg.html +61 -15
  35. data/vendor/local/share/man/man1/rsvg-convert.1 +33 -16
  36. metadata +14 -17
  37. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-14.html +0 -54
  38. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-22.html +0 -42
  39. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-32.html +0 -46
  40. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-36.html +0 -45
  41. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-4.html +0 -38
  42. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-8.html +0 -53
  43. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-9.html +0 -52
  44. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-deprecated.html +0 -99
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 882875b9fde7facfba165bb1ba208f2123fab8e3245f9801013e032115cc16b5
4
- data.tar.gz: 3965924033a501ae748c638f3b0c1681d1241aaae4819c74e084f3ffbf30176c
3
+ metadata.gz: f016f543eee7d7a0c2257e48f9261d011b3f6cfafcdbe6deac4c1bee37660756
4
+ data.tar.gz: 59c29cca1983c05e17a7d888e85d9608b78d48009ada7ef79ab1653d5a78c9ee
5
5
  SHA512:
6
- metadata.gz: 4a80d3379b70914301ad4dbbceae87b46d2b612f33a6a2eda720a976bdc887c2a5acabfc52a1ff2ff0047375faade242383af3cc017513285dd0baa372c16dc8
7
- data.tar.gz: 8577c6abd9673b467b9da6da6e0a749164b0bd62c7e36e37a955d88620cb5bce1acfd4013636f42f17029b930e32223d2a7bcf6b07db8b8e29dbeb18f7ee079a
6
+ metadata.gz: 80e8f5c43f6845a33cd45bf06badb4f9afe6183f9973b5ddff52952b2aac53189315a9d1bd6bebf538ae80590c743cab2837e0097b029c6c3707ff543326618a
7
+ data.tar.gz: ed575f7a3003e8e531420189b79f95224c485e4b364e53c39eff4c4c108b0bee473ad1ca53ef6e652789ed326c4ec0fab256d65eee38e839e0cfb9331496c8ab
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # -*- ruby -*-
2
2
  #
3
- # Copyright (C) 2010-2017 Ruby-GNOME2 Project Team
3
+ # Copyright (C) 2010-2018 Ruby-GNOME2 Project Team
4
4
  #
5
5
  # This library is free software; you can redistribute it and/or
6
6
  # modify it under the terms of the GNU Lesser General Public
@@ -64,14 +64,17 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
64
64
  :name => "librsvg",
65
65
  :download_site => :gnome,
66
66
  :label => "librsvg",
67
- :version => "2.40.20",
67
+ :version => "2.42.3",
68
68
  :compression_method => "xz",
69
69
  :windows => {
70
70
  :configure_args => [
71
71
  "--enable-introspection",
72
72
  ],
73
73
  :patches => [
74
+ "librsvg-2.42-cross-compile.diff"
74
75
  ],
76
+ :need_autoreconf => true,
77
+ :force_to_disable_deplibs_check => true,
75
78
  :built_file => "bin/librsvg-2-2.dll",
76
79
  },
77
80
  },
Binary file
Binary file
Binary file
Binary file
@@ -11,7 +11,7 @@
11
11
  #include <glib-object.h>
12
12
 
13
13
  G_BEGIN_DECLS
14
- /* enumerations from "rsvg.h" */
14
+ /* enumerations from "librsvg/rsvg.h" */
15
15
  GType rsvg_error_get_type (void);
16
16
  #define RSVG_TYPE_ERROR (rsvg_error_get_type())
17
17
  GType rsvg_handle_flags_get_type (void);
@@ -6,9 +6,9 @@
6
6
  #define LIBRSVG_FEATURES_H
7
7
 
8
8
  #define LIBRSVG_MAJOR_VERSION (2)
9
- #define LIBRSVG_MINOR_VERSION (40)
10
- #define LIBRSVG_MICRO_VERSION (20)
11
- #define LIBRSVG_VERSION "2.40.20"
9
+ #define LIBRSVG_MINOR_VERSION (42)
10
+ #define LIBRSVG_MICRO_VERSION (3)
11
+ #define LIBRSVG_VERSION "2.42.3"
12
12
 
13
13
  #define LIBRSVG_CHECK_VERSION(major,minor,micro) \
14
14
  (LIBRSVG_MAJOR_VERSION > (major) || \
@@ -1,5 +1,5 @@
1
- /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
- /* vim: set sw=4 sts=4 ts=4 expandtab: */
1
+ /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
+ /* vim: set sw=4 sts=4 expandtab: */
3
3
  /*
4
4
  rsvg-cairo.h: SAX-based renderer for SVG files using cairo
5
5
 
@@ -1,5 +1,5 @@
1
- /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
- /* vim: set sw=4 sts=4 ts=4 expandtab: */
1
+ /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
+ /* vim: set sw=4 sts=4 expandtab: */
3
3
  /*
4
4
  rsvg.h: SAX-based renderer for SVG files into a GdkPixbuf.
5
5
 
@@ -65,11 +65,6 @@ typedef enum {
65
65
  #define RSVG_ERROR (rsvg_error_quark ())
66
66
  GQuark rsvg_error_quark (void) G_GNUC_CONST;
67
67
 
68
- /**
69
- * RsvgHandle:
70
- *
71
- * The #RsvgHandle is an object representing the parsed form of a SVG
72
- */
73
68
  typedef struct _RsvgHandle RsvgHandle;
74
69
  typedef struct RsvgHandlePrivate RsvgHandlePrivate;
75
70
  typedef struct _RsvgHandleClass RsvgHandleClass;
@@ -80,7 +75,7 @@ typedef struct _RsvgPositionData RsvgPositionData;
80
75
  * RsvgHandleClass:
81
76
  * @parent: parent class
82
77
  *
83
- * Class structure for #RsvgHandle
78
+ * Class structure for #RsvgHandle.
84
79
  */
85
80
  struct _RsvgHandleClass {
86
81
  GObjectClass parent;
@@ -89,6 +84,12 @@ struct _RsvgHandleClass {
89
84
  gpointer _abi_padding[15];
90
85
  };
91
86
 
87
+ /**
88
+ * RsvgHandle:
89
+ * @parent: parent instance
90
+ *
91
+ * Lets you load SVG data and render it.
92
+ */
92
93
  struct _RsvgHandle {
93
94
  GObject parent;
94
95
 
@@ -127,7 +128,10 @@ struct _RsvgPositionData {
127
128
 
128
129
  void rsvg_cleanup (void);
129
130
 
131
+ RSVG_DEPRECATED
130
132
  void rsvg_set_default_dpi (double dpi);
133
+
134
+ RSVG_DEPRECATED
131
135
  void rsvg_set_default_dpi_x_y (double dpi_x, double dpi_y);
132
136
 
133
137
  void rsvg_handle_set_dpi (RsvgHandle * handle, double dpi);
@@ -219,7 +223,7 @@ void rsvg_handle_free (RsvgHandle * handle);
219
223
  * Deprecated: Set up a cairo matrix and use rsvg_handle_render_cairo() instead.
220
224
  * See the documentation for rsvg_handle_set_size_callback() for an example.
221
225
  */
222
- typedef /* RSVG_DEPRECATED */ void (*RsvgSizeFunc) (gint * width, gint * height, gpointer user_data);
226
+ /* RSVG_DEPRECATED */ typedef void (*RsvgSizeFunc) (gint * width, gint * height, gpointer user_data);
223
227
 
224
228
  RSVG_DEPRECATED
225
229
  void rsvg_handle_set_size_callback (RsvgHandle * handle,
Binary file
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  # librsvg-2.la - a libtool library file
2
- # Generated by libtool (GNU libtool) 2.4.6
2
+ # Generated by libtool (GNU libtool) 2.4.6 Debian-2.4.6-2
3
3
  #
4
4
  # Please DO NOT delete this file!
5
5
  # It is necessary for linking the library.
@@ -17,15 +17,15 @@ old_library='librsvg-2.a'
17
17
  inherited_linker_flags=' -pthread'
18
18
 
19
19
  # Libraries that this one depends upon.
20
- dependency_libs=' -R/home/vagrant/ruby-gnome2/glib2/vendor/local/lib -L/home/vagrant/ruby-gnome2/glib2/vendor/local/lib -L/home/vagrant/rcairo/vendor/local/lib -L/home/vagrant/ruby-gnome2/rsvg2/vendor/local/lib -L/home/vagrant/ruby-gnome2/pango/vendor/local/lib -L/home/vagrant/ruby-gnome2/gdk_pixbuf2/vendor/local/lib /home/vagrant/ruby-gnome2/gdk_pixbuf2/vendor/local/lib/libgdk_pixbuf-2.0.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libgio-2.0.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libgmodule-2.0.la -ldnsapi -liphlpapi /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libpangocairo-1.0.la /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libpangowin32-1.0.la -lusp10 /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libpangoft2-1.0.la /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libharfbuzz.la /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libpango-1.0.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libgthread-2.0.la /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libfribidi.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libgobject-2.0.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libffi.la /home/vagrant/rcairo/vendor/local/lib/libcairo.la -lpthread /home/vagrant/rcairo/vendor/local/lib/libpixman-1.la /home/vagrant/rcairo/vendor/local/lib/libfontconfig.la /home/vagrant/rcairo/vendor/local/lib/libfreetype.la -lgdi32 -lmsimg32 /home/vagrant/rcairo/vendor/local/lib/libpng16.la /home/vagrant/ruby-gnome2/rsvg2/vendor/local/lib/libcroco-0.6.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libglib-2.0.la -lole32 -lwinmm -lshlwapi /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libpcre.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libintl.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libiconv.la /home/vagrant/rcairo/vendor/local/lib/libxml2.la -lz -lws2_32'
20
+ dependency_libs=' -R/home/vagrant/ruby-gnome2/glib2/vendor/local/lib -L/home/vagrant/ruby-gnome2/glib2/vendor/local/lib -L/home/vagrant/rcairo/vendor/local/lib -L/home/vagrant/ruby-gnome2/rsvg2/vendor/local/lib -L/home/vagrant/ruby-gnome2/pango/vendor/local/lib -L/home/vagrant/ruby-gnome2/gdk_pixbuf2/vendor/local/lib /home/vagrant/ruby-gnome2/gdk_pixbuf2/vendor/local/lib/libgdk_pixbuf-2.0.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libgio-2.0.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libgmodule-2.0.la -ldnsapi -liphlpapi /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libpangocairo-1.0.la /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libpangowin32-1.0.la -lusp10 /home/vagrant/rcairo/vendor/local/lib/libcairo.la -lpthread /home/vagrant/rcairo/vendor/local/lib/libpixman-1.la -lgdi32 -lmsimg32 /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libpangoft2-1.0.la /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libharfbuzz.la /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libpango-1.0.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libgthread-2.0.la /home/vagrant/ruby-gnome2/pango/vendor/local/lib/libfribidi.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libgobject-2.0.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libffi.la /home/vagrant/rcairo/vendor/local/lib/libfontconfig.la /home/vagrant/rcairo/vendor/local/lib/libfreetype.la /home/vagrant/rcairo/vendor/local/lib/libpng16.la /home/vagrant/ruby-gnome2/rsvg2/vendor/local/lib/libcroco-0.6.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libglib-2.0.la -lole32 -lwinmm -lshlwapi /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libpcre.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libintl.la /home/vagrant/ruby-gnome2/glib2/vendor/local/lib/libiconv.la /home/vagrant/rcairo/vendor/local/lib/libxml2.la -lz -lws2_32'
21
21
 
22
22
  # Names of additional weak libraries provided by this library
23
23
  weak_library_names=''
24
24
 
25
25
  # Version information for librsvg-2.
26
- current=42
27
- age=40
28
- revision=20
26
+ current=44
27
+ age=42
28
+ revision=3
29
29
 
30
30
  # Is this an already installed library?
31
31
  installed=yes
@@ -8,7 +8,7 @@ css_supported=true
8
8
 
9
9
  Name: librsvg
10
10
  Description: library that renders svg files
11
- Version: 2.40.20
11
+ Version: 2.42.3
12
12
  Requires: glib-2.0 gio-2.0 gdk-pixbuf-2.0 cairo
13
13
  Requires.private:
14
14
  Libs: -L${libdir} -lrsvg-2 -lm
@@ -0,0 +1,266 @@
1
+ Compiling librsvg
2
+ =================
3
+
4
+ Librsvg uses a mostly normal [autotools] setup, but it has some
5
+ peculiarities due to librsvg's use of a Rust sub-library. The details
6
+ of how librsvg integrates Cargo and Rust into its autotools setup are
7
+ described in [this blog post][blog], although hopefully you will not
8
+ need to refer to it.
9
+
10
+ It is perfectly fine to [ask the maintainer][maintainer] if you have
11
+ questions about the Autotools setup; it's a tricky bit of machinery,
12
+ and we are glad to help.
13
+
14
+ There are generic compilation/installation instructions in the
15
+ [`INSTALL`][install] file, which comes from Autotools. The following
16
+ explains librsvg's peculiarities.
17
+
18
+ * [Installing dependencies for building](#installing-dependencies-for-building)
19
+ * [Basic compilation instructions](#basic-compilation-instructions)
20
+ * [Verbosity](#verbosity)
21
+ * [Debug or release builds](#debug-or-release-builds)
22
+ * [Cross-compilation](#cross-compilation)
23
+ * [Building with no network access](#building-with-no-network-access)
24
+
25
+ # Installing dependencies for building
26
+
27
+ To compile librsvg, you need the following packages installed. The
28
+ minimum version is listed here; you may use a newer version instead.
29
+
30
+ **Compilers:**
31
+
32
+ * a C compiler and `make` tool; we recommend GNU `make`.
33
+ * rust 1.21
34
+ * cargo
35
+
36
+ **Mandatory dependencies:**
37
+
38
+ * Cairo 1.15.4 with PNG support
39
+ * Freetype2 2.8.0
40
+ * Libcroco 0.6.1
41
+ * Gdk-pixbuf 2.20.0
42
+ * GIO 2.24.0
43
+ * GObject-Introspection 0.10.8
44
+ * Libxml2 2.9.0
45
+ * Pango 1.38.0
46
+
47
+ **Optional dependencies:**
48
+
49
+ * GTK+ 3.10.0 if you want the `rsvg-view-3` program
50
+
51
+ The following sections describe how to install these dependencies on
52
+ several systems.
53
+
54
+ ### Debian based systems
55
+
56
+ As of 2018/Feb/22, librsvg cannot be built in `debian stable` and
57
+ `ubuntu 16.04`, as they have packages that are too old.
58
+
59
+ **Build dependencies on Debian Testing:**
60
+
61
+ ```sh
62
+ apt-get install -y gcc make rustc cargo \
63
+ automake autoconf libtool gettext itstool \
64
+ libgdk-pixbuf2.0-dev libgirepository1.0-dev \
65
+ gtk-doc-tools git libgtk-3-dev \
66
+ libxml2-dev libcroco3-dev libcairo2-dev libpango1.0-dev
67
+ ```
68
+
69
+ **Build dependencies on Ubuntu 18.04 or newer:**
70
+
71
+ As of 2018/Feb/22 you will need to install `rustc` and `cargo` with
72
+ [rustup.rs](https://rustup.rs), as the `rustc` package from Ubuntu is
73
+ too old. Please follow the instructions there to install Rust and Cargo.
74
+
75
+ ```sh
76
+ apt-get install -y gcc make \
77
+ automake autoconf libtool gettext itstool \
78
+ libgdk-pixbuf2.0-dev libgirepository1.0-dev \
79
+ gtk-doc-tools git libgtk-3-dev \
80
+ libxml2-dev libcroco3-dev libcairo2-dev libpango1.0-dev
81
+ ```
82
+
83
+ ### Fedora based systems
84
+
85
+ ```sh
86
+ dnf install -y gcc rust rust-std-static cargo make \
87
+ automake autoconf libtool gettext itstool \
88
+ gdk-pixbuf2-devel gobject-introspection-devel \
89
+ gtk-doc git redhat-rpm-config gtk3-devel \
90
+ libxml2-devel libcroco-devel cairo-devel pango-devel
91
+ ```
92
+
93
+ ### openSUSE based systems
94
+
95
+ ```sh
96
+ zypper install -y gcc rust rust-std cargo make \
97
+ automake autoconf libtool gettext itstool git \
98
+ gtk-doc gobject-introspection-devel gtk3-devel \
99
+ libxml2-devel libcroco-devel cairo-devel \
100
+ pango-devel gdk-pixbuf-devel
101
+ ```
102
+
103
+ ### MacOS systems
104
+
105
+ Dependencies may be installed using [Homebrew](https://brew.sh) or another
106
+ package manager.
107
+
108
+ ```sh
109
+ brew install cairo gdk-pixbuf glib libcroco pango \
110
+ gobject-introspection rust
111
+
112
+ export PKG_CONFIG_PATH="`brew --prefix`/lib/pkgconfig:\
113
+ `brew --prefix libffi`/lib/pkgconfig:\
114
+ /usr/lib/pkgconfig"
115
+ export ARCHFLAGS="-arch x86_64"
116
+ ```
117
+
118
+ Note that `PKG_CONFIG_PATH` must be manually set to include Homebrew's libffi,
119
+ as the system libffi is too old but Homebrew does not install it in a public
120
+ location by default.
121
+
122
+ Currently, cairo 1.15.4 or later must also be installed manually, as the
123
+ Homebrew package is for the older stable release. This may require adding
124
+ it to `PKG_CONFIG_PATH` as well if you do not install it in `/usr/local`.
125
+
126
+ Setting `ARCHFLAGS` is required if gobject-introspection is using the system
127
+ Python provided by Apple, as on Homebrew.
128
+
129
+
130
+ # Basic compilation instructions
131
+
132
+ If you are compiling a tarball:
133
+
134
+ ```sh
135
+ ./configure
136
+ make
137
+ make install
138
+ ```
139
+
140
+ See the [`INSTALL`][install] file for details on options you can pass
141
+ to the `configure` script to select where to install the compiled
142
+ library.
143
+
144
+ If you are compiling from a git checkout:
145
+
146
+ ```sh
147
+ ./autogen.sh
148
+ make
149
+ make install
150
+ ```
151
+
152
+ # Verbosity
153
+
154
+ By default the compilation process is quiet, and it just tells you
155
+ which files it is compiling.
156
+
157
+ If you wish to see the full compilation command lines, use "`make V=1`"
158
+ instead of plain "`make`".
159
+
160
+ # Debug or release builds
161
+
162
+ Librsvg has code both in C and Rust, and each language has a different
163
+ way of specifying compilation options to select compiler
164
+ optimizations, or whether debug information should be included.
165
+
166
+ You should set the `CFLAGS` environment variable with compiler flags
167
+ that you want to pass to the C compiler.
168
+
169
+ ## Controlling debug or release mode for Rust
170
+
171
+ * With a `configure` option: `--enable-debug` or `--disable-debug`
172
+ * With an environment variable: `LIBRSVG_DEBUG=yes` or `LIBRSVG_DEBUG=no`
173
+
174
+ For the Rust part of librsvg, we have a flag that
175
+ you can pass at `configure` time. When enabled, the Rust
176
+ sub-library will have debugging information and no compiler
177
+ optimizations. *This flag is off by default:* if the flag is not
178
+ specified, the Rust sub-library will be built in release mode (no
179
+ debug information, full compiler optimizations).
180
+
181
+ The rationale is that people who already had scripts in place to build
182
+ binary packages for librsvg, generally from release tarballs, are
183
+ already using conventional machinery to specify C compiler options,
184
+ such as that in RPM specfiles or Debian source packages. However,
185
+ they may not contemplate Rust sub-libraries and they will certainly
186
+ not want to modify their existing packaging scripts too much.
187
+
188
+ So, by default, the Rust library builds in **release mode**, to make
189
+ life easier to binary distributions. Librsvg's build scripts will add
190
+ `--release` to the Cargo command line by default.
191
+
192
+ Developers can request a debug build of the Rust sub-library by
193
+ passing `--enable-debug` to the `configure` script, or by setting the
194
+ `LIBRSVG_DEBUG=yes` environment variable before calling `configure`.
195
+ This will omit the `--release` option from Cargo, so that it will
196
+ build the Rust sub-library in debug mode.
197
+
198
+ In case both the environment variable and the command-line option are
199
+ specified, the command-line option overrides the env var.
200
+
201
+ # Cross-compilation
202
+
203
+ If you need to cross-compile librsvg, specify the `--host=TRIPLE` to
204
+ the `configure` script as usual with Autotools. This will cause
205
+ librsvg's build scripts to automatically pass `--target=TRIPLE` to
206
+ `cargo`.
207
+
208
+ Note, however, that Rust may support different targets than the C
209
+ compiler on your system. Rust's supported targets can be found in the
210
+ [`rust/src/librustc_back/target`][rust-target-dir] in the Rust
211
+ compiler's source code.
212
+
213
+ You can check Jorge Aparicio's [guide on cross-compilation for
214
+ Rust][rust-cross] for more details.
215
+
216
+ ## Cross-compiling to a target not supported by Rust out of the box
217
+
218
+ When building with a target that is not supported out of the box by
219
+ Rust, you have to do this:
220
+
221
+ 1. Create a [target JSON definition file][target-json].
222
+
223
+ 2. Set the environment variable `RUST_TARGET_PATH` to its directory
224
+ for the `make` command.
225
+
226
+ Example:
227
+
228
+ ```sh
229
+ cd /my/target/definition
230
+ echo "JSON goes here" > MYMACHINE-VENDOR-OS.json
231
+ cd /source/tree/for/librsvg
232
+ ./configure --host=MYMACHINE-VENDOR-OS
233
+ make RUST_TARGET_PATH=/my/target/definition
234
+ ```
235
+
236
+ # Building with no network access
237
+
238
+ Automated build systems generally avoid network access so that they
239
+ can compile from known-good sources, instead of pulling random updates
240
+ from the net every time. However, normally Cargo likes to download
241
+ dependencies when it first compiles a Rust project.
242
+
243
+ We use [`cargo vendor`][cargo-vendor] to ship librsvg release tarballs
244
+ with the source code for Rust dependencies **embedded within the
245
+ tarball**. If you unpack a librsvg tarball, these sources will appear
246
+ in the `rust/vendor` subdirectory. If you build librsvg from a
247
+ tarball, instead of git, it should not need to access the network to
248
+ download extra sources at all.
249
+
250
+ Build systems can use [Cargo's source replacement
251
+ mechanism][cargo-source-replacement] to override the location of the
252
+ source code for the Rust dependencies, for example, in order to patch
253
+ one of the Rust crates that librsvg uses internally.
254
+
255
+ The source replacement information is in `rust/.cargo/config` in the
256
+ unpacked tarball. Your build system can patch this file as needed.
257
+
258
+ [autotools]: https://autotools.io/index.html
259
+ [blog]: https://people.gnome.org/~federico/blog/librsvg-build-infrastructure.html
260
+ [maintainer]: README.md#maintainers
261
+ [install]: INSTALL
262
+ [rust-target-dir]: https://github.com/rust-lang/rust/tree/master/src/librustc_back/target
263
+ [cargo-vendor]: https://crates.io/crates/cargo-vendor
264
+ [cargo-source-replacement]: http://doc.crates.io/source-replacement.html
265
+ [rust-cross]: https://github.com/japaric/rust-cross
266
+ [target-json]: https://github.com/japaric/rust-cross#target-specification-files
@@ -0,0 +1,152 @@
1
+ Contributing to librsvg
2
+ =======================
3
+
4
+ Thank you for looking in this file! There are different ways of
5
+ contributing to librsvg, and we appreciate all of them.
6
+
7
+ * [Source repository](#source-code)
8
+ * [Reporting bugs](#reporting-bugs)
9
+ * [Feature requests](#feature-requests)
10
+ * [Merge requests](#merge-requests)
11
+
12
+ There is a **code of conduct** for contributors to librsvg; please see the
13
+ file [`code-of-conduct.md`][coc].
14
+
15
+ ## Source repository
16
+
17
+ Librsvg's main source repository is at gitlab.gnome.org. You can view
18
+ the web interface here:
19
+
20
+ https://gitlab.gnome.org/GNOME/librsvg
21
+
22
+ Development happens in the master branch. There are also branches for
23
+ stable releases.
24
+
25
+ Alternatively, you can use the mirror at Github:
26
+
27
+ https://github.com/GNOME/librsvg
28
+
29
+ Note that we don't do bug tracking in the Github mirror; see the next
30
+ section.
31
+
32
+ If you need to publish a branch, feel free to do it at any
33
+ publically-accessible Git hosting service, although gitlab.gnome.org
34
+ makes things easier for the maintainers of librsvg.
35
+
36
+ ## Reporting bugs
37
+
38
+ Please report bugs at https://gitlab.gnome.org/GNOME/librsvg/issues
39
+
40
+ If you want to report a rendering bug, or a missing SVG feature,
41
+ please provide an example SVG file as an attachment to your bug
42
+ report. It really helps if you can minimize the SVG to only the
43
+ elements required to reproduce the bug or see the missing feature, but
44
+ it is not absolutely required. **Please be careful** of publishing
45
+ SVG images that you don't want other people to see, or images whose
46
+ copyright does not allow redistribution; the bug tracker is a public
47
+ resource and attachments are visible to everyone.
48
+
49
+ You can also [browse the existing bugs][bugs-browse].
50
+
51
+ ## Feature requests
52
+
53
+ Librsvg aims to be a small and relatively simple SVG rendering
54
+ library. Currently we do not plan to support scripting, animation, or
55
+ interactive features like mouse events on SVG elements.
56
+
57
+ However, we *do* aim go provide good support for SVG's graphical
58
+ features. Please see the "[reporting bugs](#reporting-bugs)" section for
59
+ information about our bug tracking system; feature requests should be
60
+ directed there.
61
+
62
+ It is especially helpful if you file bug for a feature request along
63
+ with a sample SVG file.
64
+
65
+ ## Merge requests
66
+
67
+ ### Creating a merge request
68
+
69
+ You may create a forked version of librsvg in [GNOME's Gitlab
70
+ instance][gitlab], or any other publically-accesible Git hosting
71
+ service. You can register an account there, or log in with your
72
+ account from other OAuth services.
73
+
74
+ Note that the maintainers of librsvg only get notified about merge
75
+ requests (or pull requests) if your fork is in
76
+ [gitlab.gnome.org][gitlab].
77
+
78
+ For technical reasons, the maintainers of librsvg do not get
79
+ automatically notified if you submit a pull request through the GNOME
80
+ mirror in Github. [Please contact the maintainer][maintainer] directly if you
81
+ have a pull request there or a branch that you would like to
82
+ contribute.
83
+
84
+ ### Test suite
85
+
86
+ Please make sure that the test suite passes with the changes in your
87
+ branch. The easiest way to run all the tests is to go to librsvg's
88
+ toplevel directory and run `make check`. This will run both the small
89
+ unit tests and the black box tests in the `librsvg/tests` directory.
90
+
91
+ If you need to add new tests (you should, for new features, or for
92
+ things that we weren't testing!), or for additional information on how
93
+ the test suite works, please see the file
94
+ [`tests/README.md`][tests-readme].
95
+
96
+ ### Working on the source
97
+
98
+ Librvg uses an autotools setup, which is described in detail [in this
99
+ blog post][blog].
100
+
101
+ If you need to **add a new source file**, you need to do it in the
102
+ toplevel [`Makefile.am`][toplevel-makefile]. *Note that this is for
103
+ both C and Rust sources*, since `make(1)` needs to know when a Rust
104
+ file changed so it can call `cargo` as appropriate.
105
+
106
+ It is perfectly fine to [ask the maintainer][maintainer] if you have
107
+ questions about the Autotools setup; it's a tricky bit of machinery,
108
+ and we are glad to help.
109
+
110
+ ### Testing changes
111
+
112
+ The most direct way to test a change is to have an example SVG file
113
+ that exercises the code you want to test. Then you can rebuild
114
+ librsvg, and run this:
115
+
116
+ ```
117
+ cd /src/librsvg
118
+ libtool --mode=execute ./rsvg-convert -o foo.png foo.svg
119
+ ```
120
+
121
+ Then you can view the resulting `foo.png` image. Alternatively, you
122
+ can use `./rsvg-view-3` for a quick-and-dirty SVG viewer.
123
+
124
+ **Please update the test suite** with a suitable example file once you
125
+ have things working (or before even writing code, if you like
126
+ test-driven development), so we can avoid regressions later. The test
127
+ suite is documented in [`tests/README.md`][tests-readme].
128
+
129
+ ### Testing performance-related changes
130
+
131
+ You can use the [rsvg-bench] tool to benchmark librsvg. It lets you
132
+ run a benchmarking program **on an already-installed librsvg
133
+ library**. For example, you can ask rsvg-bench to render one or more
134
+ SVGs hundreds of times in a row, so you can take accurate timings or
135
+ run a sampling profiler and get enough samples.
136
+
137
+ **Why is rsvg-bench not integrated in librsvg's sources?** Because
138
+ rsvg-bench depends on the [rsvg-rs] Rust bindings, and these are
139
+ shipped outside of librsvg. This requires you to first install
140
+ librsvg, and then compile rsvg-bench. We aim to make this easier in
141
+ the future. Of course all help is appreciated!
142
+
143
+ [coc]: code-of-conduct.md
144
+ [gitlab]: https://gitlab.gnome.org/GNOME/librsvg
145
+ [bugs-browse]: https://gitlab.gnome.org/GNOME/librsvg/issues
146
+ [maintainer]: README.md#maintainers
147
+ [tests-readme]: tests/README.md
148
+ [blog]: https://people.gnome.org/~federico/blog/librsvg-build-infrastructure.html
149
+ [toplevel-makefile]: Makefile.am
150
+ [tests-readme]: tests/README.md
151
+ [rsvg-bench]: https://gitlab.gnome.org/federico/rsvg-bench
152
+ [rsvg-rs]: https://github.com/selaux/rsvg-rs