[packages/inkscape] - up to 1.0.2
baggins
baggins at pld-linux.org
Fri Apr 2 17:29:41 CEST 2021
commit 99f1284fda2bed050c1f8deef702aac61f4e6fe6
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Fri Apr 2 17:29:24 2021 +0200
- up to 1.0.2
gcc11.patch | 289 +++++++++++++++++++++++++++++++++++++++++++++++++++
glib-extern.patch | 19 ++++
inkscape.spec | 14 ++-
missing-atomic.patch | 19 ++++
4 files changed, 337 insertions(+), 4 deletions(-)
---
diff --git a/inkscape.spec b/inkscape.spec
index ecb6486..203b438 100644
--- a/inkscape.spec
+++ b/inkscape.spec
@@ -8,13 +8,16 @@
Summary: Scalable vector graphics editor
Summary(pl.UTF-8): Edytor skalowalnej grafiki wektorowej
Name: inkscape
-Version: 1.0.1
-Release: 3
+Version: 1.0.2
+Release: 1
License: GPL v2+, LGPL v2.1+
Group: X11/Applications/Graphics
# download: follow https://inkscape.org/release/
Source0: https://media.inkscape.org/dl/resources/file/%{name}-%{version}.tar.xz
-# Source0-md5: daefc5212b72e49eff41a7681fd5e993
+# Source0-md5: ec90e0c1e4c7e3dba8f46b16c73462b3
+Patch0: gcc11.patch
+Patch1: glib-extern.patch
+Patch2: missing-atomic.patch
URL: https://inkscape.org/
%{!?with_imagick:BuildRequires: GraphicsMagick-c++-devel}
%{?with_imagick:BuildRequires: ImageMagick6-c++-devel < 7}
@@ -106,7 +109,10 @@ Bash completion for inkscape arguments.
Bashowe dopełnianie argumentów programu inkscape.
%prep
-%setup -q -n %{name}-%{version}_2020-09-07_3bc2e813f5
+%setup -q -n %{name}-%{version}_2021-01-15_e86c870879
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python2(\s|$),#!%{__python}\1,' -e '1s,#!\s*/usr/bin/env\s+python(\s|$),#!%{__python}\1,' -e '1s,#!\s*/usr/bin/python(\s|$),#!%{__python}\1,' \
CMakeScripts/cmake_consistency_check.py \
diff --git a/gcc11.patch b/gcc11.patch
new file mode 100644
index 0000000..794fc70
--- /dev/null
+++ b/gcc11.patch
@@ -0,0 +1,289 @@
+diff --git a/src/extension/system.cpp b/src/extension/system.cpp
+index 08de0b4..418f5ba 100644
+--- a/src/extension/system.cpp
++++ b/src/extension/system.cpp
+@@ -174,7 +174,7 @@ open_internal(Extension *in_plug, gpointer in_data)
+ // skip all the rest if we already found a function to open it
+ // since they're ordered by preference now.
+ if (!*pimod) {
+- gchar const *ext = dynamic_cast<Input *>(in_plug)->get_extension();
++ gchar const *ext = dynamic_cast<Input &>(*in_plug).get_extension();
+
+ gchar *filenamelower = g_utf8_strdown(filename, -1);
+ gchar *extensionlower = g_utf8_strdown(ext, -1);
+@@ -384,7 +384,7 @@ save_internal(Extension *in_plug, gpointer in_data)
+ // skip all the rest if we already found someone to save it
+ // since they're ordered by preference now.
+ if (!*pomod) {
+- gchar const *ext = dynamic_cast<Output *>(in_plug)->get_extension();
++ gchar const *ext = dynamic_cast<Output &>(*in_plug).get_extension();
+
+ gchar *filenamelower = g_utf8_strdown(filename, -1);
+ gchar *extensionlower = g_utf8_strdown(ext, -1);
+diff --git a/src/object/object-set.cpp b/src/object/object-set.cpp
+index bf41bb0..dafa2c1 100644
+--- a/src/object/object-set.cpp
++++ b/src/object/object-set.cpp
+@@ -242,7 +242,7 @@ void ObjectSet::set(SPObject *object, bool persist_selection_context) {
+ _clear();
+ _add(object);
+ if(dynamic_cast<Inkscape::Selection*>(this))
+- return dynamic_cast<Inkscape::Selection*>(this)->_emitChanged(persist_selection_context);
++ return dynamic_cast<Inkscape::Selection&>(*this)._emitChanged(persist_selection_context);
+ }
+
+ void ObjectSet::setReprList(std::vector<XML::Node*> const &list) {
+@@ -257,7 +257,7 @@ void ObjectSet::setReprList(std::vector<XML::Node*> const &list) {
+ }
+ _emitSignals();
+ if(dynamic_cast<Inkscape::Selection*>(this))
+- return dynamic_cast<Inkscape::Selection*>(this)->_emitChanged();//
++ return dynamic_cast<Inkscape::Selection&>(*this)._emitChanged();//
+ }
+
+
+diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp
+index 88c5d8d..c4c3788 100644
+--- a/src/selection-chemistry.cpp
++++ b/src/selection-chemistry.cpp
+@@ -680,7 +680,7 @@ static void sp_edit_select_all_full(SPDesktop *dt, bool force_all_layers, bool i
+
+ switch (inlayer) {
+ case PREFS_SELECTION_LAYER: {
+- if ( (onlysensitive && dynamic_cast<SPItem *>(dt->currentLayer())->isLocked()) ||
++ if ( (onlysensitive && dynamic_cast<SPItem &>(*dt->currentLayer()).isLocked()) ||
+ (onlyvisible && dt->itemIsHidden(dynamic_cast<SPItem *>(dt->currentLayer()))) )
+ return;
+
+@@ -775,7 +775,7 @@ Inkscape::XML::Node* ObjectSet::group() {
+ Geom::Affine item_t(Geom::identity());
+ if (t_str)
+ sp_svg_transform_read(t_str, &item_t);
+- item_t *= dynamic_cast<SPItem *>(doc->getObjectByRepr(current->parent()))->i2doc_affine();
++ item_t *= dynamic_cast<SPItem &>(*doc->getObjectByRepr(current->parent())).i2doc_affine();
+ // FIXME: when moving both clone and original from a transformed group (either by
+ // grouping into another parent, or by cut/paste) the transform from the original's
+ // parent becomes embedded into original itself, and this affects its clones. Fix
+@@ -869,7 +869,7 @@ static void ungroup_impl(ObjectSet *set)
+
+ SPItem *original = use;
+ while (dynamic_cast<SPUse *>(original)) {
+- original = dynamic_cast<SPUse *>(original)->get_original();
++ original = dynamic_cast<SPUse &>(*original).get_original();
+ }
+
+ if (groups.find(original) != groups.end()) {
+@@ -1651,7 +1651,8 @@ void ObjectSet::applyAffine(Geom::Affine const &affine, bool set_i2d, bool compe
+ && includes( sp_textpath_get_path_item(dynamic_cast<SPTextPath *>(item->firstChild())) ));
+
+ // ...both a flowtext and its frame?
+- bool transform_flowtext_with_frame = (dynamic_cast<SPFlowtext *>(item) && includes( dynamic_cast<SPFlowtext *>(item)->get_frame(nullptr))); // (only the first frame is checked so far)
++ bool transform_flowtext_with_frame = (dynamic_cast<SPFlowtext *>(item) && includes(
++dynamic_cast<SPFlowtext &>(*item).get_frame(nullptr))); // (only the first frame is checked so far)
+
+ // ...both an offset and its source?
+ bool transform_offset_with_source = (dynamic_cast<SPOffset *>(item) && dynamic_cast<SPOffset *>(item)->sourceHref) && includes( sp_offset_get_source(dynamic_cast<SPOffset *>(item)) );
+@@ -2048,19 +2049,21 @@ std::vector<SPItem*> sp_get_same_fill_or_stroke_color(SPItem *sel, std::vector<S
+ (type == SP_FILL_COLOR) ? iter->style->getFillPaintServer() : iter->style->getStrokePaintServer();
+
+ if ((dynamic_cast<SPLinearGradient *>(sel_server) || dynamic_cast<SPRadialGradient *>(sel_server) ||
+- (dynamic_cast<SPGradient *>(sel_server) && dynamic_cast<SPGradient *>(sel_server)->getVector()->isSwatch()))
++ (dynamic_cast<SPGradient *>(sel_server) && dynamic_cast<SPGradient
++&>(*sel_server).getVector()->isSwatch()))
+ &&
+ (dynamic_cast<SPLinearGradient *>(iter_server) || dynamic_cast<SPRadialGradient *>(iter_server) ||
+- (dynamic_cast<SPGradient *>(iter_server) && dynamic_cast<SPGradient *>(iter_server)->getVector()->isSwatch()))) {
+- SPGradient *sel_vector = dynamic_cast<SPGradient *>(sel_server)->getVector();
+- SPGradient *iter_vector = dynamic_cast<SPGradient *>(iter_server)->getVector();
++ (dynamic_cast<SPGradient *>(iter_server) && dynamic_cast<SPGradient
++&>(*iter_server).getVector()->isSwatch()))) {
++ SPGradient *sel_vector = dynamic_cast<SPGradient &>(*sel_server).getVector();
++ SPGradient *iter_vector = dynamic_cast<SPGradient &>(*iter_server).getVector();
+ if (sel_vector == iter_vector) {
+ match = true;
+ }
+
+ } else if (dynamic_cast<SPPattern *>(sel_server) && dynamic_cast<SPPattern *>(iter_server)) {
+- SPPattern *sel_pat = dynamic_cast<SPPattern *>(sel_server)->rootPattern();
+- SPPattern *iter_pat = dynamic_cast<SPPattern *>(iter_server)->rootPattern();
++ SPPattern *sel_pat = dynamic_cast<SPPattern &>(*sel_server).rootPattern();
++ SPPattern *iter_pat = dynamic_cast<SPPattern &>(*iter_server).rootPattern();
+ if (sel_pat == iter_pat) {
+ match = true;
+ }
+diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp
+index 151be25..cce1642 100644
+--- a/src/text-chemistry.cpp
++++ b/src/text-chemistry.cpp
+@@ -134,7 +134,7 @@ text_put_on_path()
+
+ if (SP_IS_TEXT(text)) {
+ // Replace any new lines (including sodipodi:role="line") by spaces.
+- dynamic_cast<SPText *>(text)->remove_newlines();
++ dynamic_cast<SPText &>(*text).remove_newlines();
+ }
+
+ Inkscape::Text::Layout const *layout = te_get_layout(text);
+diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp
+index cca4172..fe9638e 100644
+--- a/src/ui/clipboard.cpp
++++ b/src/ui/clipboard.cpp
+@@ -334,7 +334,7 @@ void ClipboardManagerImpl::copySymbol(Inkscape::XML::Node* symbol, gchar const*
+ SPObject *cmobj = _clipboardSPDoc->getObjectByRepr(repr);
+ if (cmobj && !user_symbol) { // convert only stock symbols
+ if (!Geom::are_near(scale_units, 1.0, Geom::EPSILON)) {
+- dynamic_cast<SPGroup *>(cmobj)->scaleChildItemsRec(
++ dynamic_cast<SPGroup &>(*cmobj).scaleChildItemsRec(
+ Geom::Scale(scale_units), Geom::Point(0, SP_ACTIVE_DESKTOP->getDocument()->getHeight().value("px")),
+ false);
+ }
+diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp
+index 5874cac..f119c81 100644
+--- a/src/ui/dialog/filedialogimpl-gtkmm.cpp
++++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp
+@@ -639,7 +639,7 @@ void FileSaveDialogImplGtk::fileNameChanged() {
+ Glib::ustring::size_type pos = name.rfind('.');
+ if ( pos == Glib::ustring::npos ) return;
+ Glib::ustring ext = name.substr( pos ).casefold();
+- if (extension && Glib::ustring(dynamic_cast<Inkscape::Extension::Output *>(extension)->get_extension()).casefold() == ext ) return;
++ if (extension && Glib::ustring(dynamic_cast<Inkscape::Extension::Output &>(*extension).get_extension()).casefold() == ext ) return;
+ if (knownExtensions.find(ext) == knownExtensions.end()) return;
+ fromCB = true;
+ fileTypeComboBox.set_active_text(knownExtensions[ext]->get_filetypename(true));
+diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp
+index 9b1e130..d1e8efd 100644
+--- a/src/ui/dialog/filter-effects-dialog.cpp
++++ b/src/ui/dialog/filter-effects-dialog.cpp
+@@ -477,8 +477,8 @@ private:
+
+ for(int i = 0; i < cols; ++i) {
+ _tree.append_column_numeric_editable("", _columns.cols[i], "%.2f");
+- dynamic_cast<Gtk::CellRendererText*>(
+- _tree.get_column_cell_renderer(i))->signal_edited().connect(
++ dynamic_cast<Gtk::CellRendererText&>(
++ *_tree.get_column_cell_renderer(i)).signal_edited().connect(
+ sigc::mem_fun(*this, &MatrixAttr::rebind));
+ }
+
+@@ -575,7 +575,7 @@ public:
+ if(w == &_label)
+ return "";
+ else
+- return dynamic_cast<const AttrWidget*>(w)->get_as_attribute();
++ return dynamic_cast<const AttrWidget&>(*w).get_as_attribute();
+ }
+
+ void clear_store()
+@@ -2571,7 +2571,7 @@ void FilterEffectsDialog::PrimitiveList::on_drag_end(const Glib::RefPtr<Gdk::Dra
+ bool FilterEffectsDialog::PrimitiveList::on_scroll_timeout()
+ {
+ if(_autoscroll_y) {
+- auto a = dynamic_cast<Gtk::ScrolledWindow*>(get_parent())->get_vadjustment();
++ auto a = dynamic_cast<Gtk::ScrolledWindow&>(*get_parent()).get_vadjustment();
+ double v = a->get_value() + _autoscroll_y;
+
+ if(v < 0)
+@@ -2586,7 +2586,7 @@ bool FilterEffectsDialog::PrimitiveList::on_scroll_timeout()
+
+
+ if(_autoscroll_x) {
+- auto a_h = dynamic_cast<Gtk::ScrolledWindow*>(get_parent())->get_hadjustment();
++ auto a_h = dynamic_cast<Gtk::ScrolledWindow&>(*get_parent()).get_hadjustment();
+ double h = a_h->get_value() + _autoscroll_x;
+
+ if(h < 0)
+diff --git a/src/ui/dialog/paint-servers.cpp b/src/ui/dialog/paint-servers.cpp
+index ec49312..2c6852f 100644
+--- a/src/ui/dialog/paint-servers.cpp
++++ b/src/ui/dialog/paint-servers.cpp
+@@ -283,7 +283,7 @@ Glib::RefPtr<Gdk::Pixbuf> PaintServersDialog::get_pixbuf(SPDocument *document, G
+ preview_document->getRoot()->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
+ preview_document->ensureUpToDate();
+
+- Geom::OptRect dbox = dynamic_cast<SPItem *>(rect)->visualBounds();
++ Geom::OptRect dbox = dynamic_cast<SPItem &>(*rect).visualBounds();
+
+ if (!dbox) {
+ return pixbuf;
+diff --git a/src/ui/dialog/svg-fonts-dialog.cpp b/src/ui/dialog/svg-fonts-dialog.cpp
+index 000f7ba..0c4bce9 100644
+--- a/src/ui/dialog/svg-fonts-dialog.cpp
++++ b/src/ui/dialog/svg-fonts-dialog.cpp
+@@ -826,13 +826,13 @@ Gtk::VBox* SvgFontsDialog::glyphs_tab(){
+ glyph_from_path_button.set_label(_("Get curves from selection..."));
+ glyph_from_path_button.signal_clicked().connect(sigc::mem_fun(*this, &SvgFontsDialog::set_glyph_description_from_selected_path));
+
+- dynamic_cast<Gtk::CellRendererText*>( _GlyphsList.get_column_cell_renderer(0))->signal_edited().connect(
++ dynamic_cast<Gtk::CellRendererText&>( *_GlyphsList.get_column_cell_renderer(0)).signal_edited().connect(
+ sigc::mem_fun(*this, &SvgFontsDialog::glyph_name_edit));
+
+- dynamic_cast<Gtk::CellRendererText*>( _GlyphsList.get_column_cell_renderer(1))->signal_edited().connect(
++ dynamic_cast<Gtk::CellRendererText&>( *_GlyphsList.get_column_cell_renderer(1)).signal_edited().connect(
+ sigc::mem_fun(*this, &SvgFontsDialog::glyph_unicode_edit));
+
+- dynamic_cast<Gtk::CellRendererText*>( _GlyphsList.get_column_cell_renderer(2))->signal_edited().connect(
++ dynamic_cast<Gtk::CellRendererText&>( *_GlyphsList.get_column_cell_renderer(2)).signal_edited().connect(
+ sigc::mem_fun(*this, &SvgFontsDialog::glyph_advance_edit));
+
+ _glyphs_observer.signal_changed().connect(sigc::mem_fun(*this, &SvgFontsDialog::update_glyphs));
+diff --git a/src/ui/widget/ink-flow-box.cpp b/src/ui/widget/ink-flow-box.cpp
+index 8485dd9..4b1ebe2 100644
+--- a/src/ui/widget/ink-flow-box.cpp
++++ b/src/ui/widget/ink-flow-box.cpp
+@@ -72,7 +72,7 @@ void InkFlowBox::on_toggle(gint pos, Gtk::ToggleButton *tbutton)
+ bool active = true;
+ for (auto child : tbutton->get_parent()->get_children()) {
+ if (tbutton != child) {
+- dynamic_cast<Gtk::ToggleButton *>(child)->set_active(active);
++ dynamic_cast<Gtk::ToggleButton &>(*child).set_active(active);
+ active = false;
+ }
+ }
+@@ -97,7 +97,7 @@ void InkFlowBox::on_global_toggle(Gtk::ToggleButton *tbutton)
+ bool active = true;
+ for (auto child : tbutton->get_parent()->get_children()) {
+ if (tbutton != child) {
+- dynamic_cast<Gtk::ToggleButton *>(child)->set_active(active);
++ dynamic_cast<Gtk::ToggleButton &>(*child).set_active(active);
+ active = false;
+ }
+ }
+diff --git a/src/ui/widget/spin-button-tool-item.cpp b/src/ui/widget/spin-button-tool-item.cpp
+index b283939..b8c639c 100644
+--- a/src/ui/widget/spin-button-tool-item.cpp
++++ b/src/ui/widget/spin-button-tool-item.cpp
+@@ -207,7 +207,7 @@ SpinButtonToolItem::process_tab(int increment)
+ if(dynamic_cast<SpinButtonToolItem *>(tool_item)) {
+ // (1) The tool item is a SpinButtonToolItem, in which case, we just pass
+ // focus to its spin-button
+- dynamic_cast<SpinButtonToolItem *>(tool_item)->grab_button_focus();
++ dynamic_cast<SpinButtonToolItem &>(*tool_item).grab_button_focus();
+ handled = true;
+ }
+ else if(dynamic_cast<Gtk::SpinButton *>(tool_item->get_child())) {
+diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
+index ebeb8ca..c25a217 100644
+--- a/src/widgets/desktop-widget.cpp
++++ b/src/widgets/desktop-widget.cpp
+@@ -1848,7 +1848,7 @@ void SPDesktopWidget::namedviewModified(SPObject *obj, guint flags)
+ std::vector<Gtk::Widget*> ch = Glib::wrap(GTK_CONTAINER(aux_toolbox))->get_children();
+ for (auto i:ch) {
+ if (GTK_IS_CONTAINER(i->gobj())) {
+- std::vector<Gtk::Widget*> grch = dynamic_cast<Gtk::Container*>(i)->get_children();
++ std::vector<Gtk::Widget*> grch = dynamic_cast<Gtk::Container&>(*i).get_children();
+ for (auto j:grch) {
+
+ if (!GTK_IS_WIDGET(j->gobj())) // wasn't a widget
+diff --git a/src/xml/repr-io.cpp b/src/xml/repr-io.cpp
+index ac9794e..fc08250 100644
+--- a/src/xml/repr-io.cpp
++++ b/src/xml/repr-io.cpp
+@@ -912,7 +912,7 @@ void sp_repr_write_stream( Node *repr, Writer &out, gint indent_level,
+ {
+ switch (repr->type()) {
+ case Inkscape::XML::TEXT_NODE: {
+- if( dynamic_cast<const Inkscape::XML::TextNode *>(repr)->is_CData() ) {
++ if( dynamic_cast<const Inkscape::XML::TextNode &>(*repr).is_CData() ) {
+ // Preserve CDATA sections, not converting '&' to &, etc.
+ out.printf( "<![CDATA[%s]]>", repr->content() );
+ } else {
diff --git a/glib-extern.patch b/glib-extern.patch
new file mode 100644
index 0000000..250c375
--- /dev/null
+++ b/glib-extern.patch
@@ -0,0 +1,19 @@
+diff -up inkscape-1.0.1_2020-09-07_3bc2e813f5/src/3rdparty/autotrace/autotrace.h.glib-extern inkscape-1.0.1_2020-09-07_3bc2e813f5/src/3rdparty/autotrace/autotrace.h
+--- inkscape-1.0.1_2020-09-07_3bc2e813f5/src/3rdparty/autotrace/autotrace.h.glib-extern 2021-02-16 12:59:00.917852141 +0100
++++ inkscape-1.0.1_2020-09-07_3bc2e813f5/src/3rdparty/autotrace/autotrace.h 2021-02-16 12:59:06.675894640 +0100
+@@ -22,6 +22,7 @@
+ #define AUTOTRACE_H
+
+ #include <stdio.h>
++#include "types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+@@ -35,7 +36,6 @@ extern "C" {
+ * Typedefs
+ * ===================================================================== */
+
+-#include "types.h"
+ #include "color.h"
+
+ /* Third degree is the highest we deal with. */
diff --git a/missing-atomic.patch b/missing-atomic.patch
new file mode 100644
index 0000000..cfbd8ef
--- /dev/null
+++ b/missing-atomic.patch
@@ -0,0 +1,19 @@
+diff -up inkscape-1.0.1_2020-09-07_3bc2e813f5/src/ui/tool/node.cpp.missing-atomic inkscape-1.0.1_2020-09-07_3bc2e813f5/src/ui/tool/node.cpp
+--- inkscape-1.0.1_2020-09-07_3bc2e813f5/src/ui/tool/node.cpp.missing-atomic 2021-02-16 13:35:58.455184020 +0100
++++ inkscape-1.0.1_2020-09-07_3bc2e813f5/src/ui/tool/node.cpp 2021-02-16 13:36:11.411279411 +0100
+@@ -10,6 +10,7 @@
+ #include <iostream>
+ #include <stdexcept>
+ #include <boost/utility.hpp>
++#include <atomic>
+
+ #include <glib/gi18n.h>
+ #include <gdk/gdkkeysyms.h>
+@@ -31,6 +32,7 @@
+ #include "ui/tools/node-tool.h"
+ #include "ui/tools-switch.h"
+
++
+ namespace {
+
+ Inkscape::ControlType nodeTypeToCtrlType(Inkscape::UI::NodeType type)
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/inkscape.git/commitdiff/99f1284fda2bed050c1f8deef702aac61f4e6fe6
More information about the pld-cvs-commit
mailing list