summaryrefslogtreecommitdiff
path: root/sci-electronics
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-03-12 21:55:15 +0000
committerV3n3RiX <venerix@redcorelinux.org>2021-03-12 21:55:15 +0000
commit7218e1b46bceac05841e90472501742d905fb3fc (patch)
tree56fae051db521b8fce8014cbc8b11484885b14b3 /sci-electronics
parent6d691ad5b6239929063441bbd14c489e92e7396e (diff)
gentoo resync : 12.03.2021
Diffstat (limited to 'sci-electronics')
-rw-r--r--sci-electronics/Manifest.gzbin9038 -> 9045 bytes
-rw-r--r--sci-electronics/gspeakers/Manifest2
-rw-r--r--sci-electronics/gspeakers/files/gspeakers-0.11-c++11.patch185
-rw-r--r--sci-electronics/gspeakers/files/gspeakers-0.11-fix-sigc-includes.patch26
-rw-r--r--sci-electronics/ngspice/Manifest3
-rw-r--r--sci-electronics/ngspice/ngspice-34.ebuild199
6 files changed, 415 insertions, 0 deletions
diff --git a/sci-electronics/Manifest.gz b/sci-electronics/Manifest.gz
index 34b490456122..74a62f2b71cd 100644
--- a/sci-electronics/Manifest.gz
+++ b/sci-electronics/Manifest.gz
Binary files differ
diff --git a/sci-electronics/gspeakers/Manifest b/sci-electronics/gspeakers/Manifest
index 879648d56976..0eec4b7ff90d 100644
--- a/sci-electronics/gspeakers/Manifest
+++ b/sci-electronics/gspeakers/Manifest
@@ -1,3 +1,5 @@
+AUX gspeakers-0.11-c++11.patch 17072 BLAKE2B 9107b0b7dbc7a7862cda0cc45976f54a4eef038134b3d6f66bf9b52826cb96f2c5a13c8ec121a064b6a6c0434ad557e2d5da1a4789f950bedf5dbfd1e6d92960 SHA512 c2d96308d1efd138c6402f2f5edbc225a9ec1dd1378aa65137e88f37b441b112fab554ea4489ec379402362612b2768fa70da38d9256c51e9e17fff99d613fc1
+AUX gspeakers-0.11-fix-sigc-includes.patch 730 BLAKE2B 057cc12d32466fd19ece24684248bdf998f6cef9eb39b9f85b14d74ae0246a7ce9a50a491f96438834bcf7431ba1c9ae281ac15c5ac5db956503bf9c4360f04c SHA512 048f1b187eda84ccc7280887913340a344a210022aebef7da5ab9f50a8056403d178cec09353298d89b70ef69c30fd3cd376f4be6deda4d221e19793e979d1cc
AUX gspeakers-0.11-gcc43.patch 1224 BLAKE2B 20b1fbd3841ec236d834344aa26f4ed3b353d3d6a2e54acb611942eb0df6b6015fd45701e09e8ce7ae1a5835efe503c4f26e71498d19f4a50d67e5c94bb62f86 SHA512 13ac2ccd0bac188a7b9ac6cabe937ce8bc5ae5b48052f4db15902a7a2a21fd826353709955c8c8c3cc0aba952ab7c5a34b99c9b4080115160707bfc97b29ba78
AUX gspeakers-0.11-glib-single-include.patch 3393 BLAKE2B e9320041cd5546b4f056784c3ef6725576ca9b20fb6b748ee1d992602e3ebefdc8c53656866021f9bf8d17b3a690e8be4f63acd7a99f614d5d37a114196a3e12 SHA512 dfa91f565088c3e6a3af0abf454184dff48cc0598e22a0c9b5828373e573755b3c0c7a25dc2b909539f543e5392cc402f5b3677a1ce126e783b3bf32353ac100
DIST gspeakers-0.11.tar.gz 546406 BLAKE2B fb3b06ef12337c48013dc5497d84ee18ce480729fbf611bd1388005ebe1a1405d72a06e125e20bee94419ca07f5ecf1d559f2470977934cab3a70d98de566ce6 SHA512 5a0c6374b5f18d089a1903c5718ba21b9932e4c6a99456e13d4f144eef243a623aca241590e941fa50300a642876b6be8684bcf036db724182c2ee925072bd20
diff --git a/sci-electronics/gspeakers/files/gspeakers-0.11-c++11.patch b/sci-electronics/gspeakers/files/gspeakers-0.11-c++11.patch
new file mode 100644
index 000000000000..4f60b023e368
--- /dev/null
+++ b/sci-electronics/gspeakers/files/gspeakers-0.11-c++11.patch
@@ -0,0 +1,185 @@
+--- a/src/speakereditor.cc 2004-06-22 16:33:48.000000000 -0500
++++ b/src/speakereditor.cc 2016-02-03 13:24:51.126527093 -0600
+@@ -147,27 +147,27 @@
+ m_ScrolledWindow.set_shadow_type(Gtk::SHADOW_ETCHED_IN);
+ m_ScrolledWindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
+
+- m_IdStringEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 0));
+- m_QtsEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 1));
+- m_FsEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 2));
+- m_VasEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 3));
+- m_RdcEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 4));
+- m_LvcEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 5));
+- m_QmsEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 6));
+- m_QesEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 7));
+- m_ImpEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 8));
+- m_SensEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 9));
+- m_MmdEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 13));
+- m_AdEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 14));
+- m_BlEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 15));
+- m_RmsEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 16));
+- m_CmsEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 17));
+- m_FreqRespFileEntry.signal_changed().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 18));
++ m_IdStringEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 0));
++ m_QtsEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 1));
++ m_FsEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 2));
++ m_VasEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 3));
++ m_RdcEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 4));
++ m_LvcEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 5));
++ m_QmsEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 6));
++ m_QesEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 7));
++ m_ImpEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 8));
++ m_SensEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 9));
++ m_MmdEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 13));
++ m_AdEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 14));
++ m_BlEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 15));
++ m_RmsEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 16));
++ m_CmsEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 17));
++ m_FreqRespFileEntry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 18));
+ m_FreqRespFileEntry.set_sensitive(false);
+
+- m_BassCheckButton.signal_toggled().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 10));
+- m_MidrangeCheckButton.signal_toggled().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 11));
+- m_TweeterCheckButton.signal_toggled().connect(bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 12));
++ m_BassCheckButton.signal_toggled().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 10));
++ m_MidrangeCheckButton.signal_toggled().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 11));
++ m_TweeterCheckButton.signal_toggled().connect(sigc::bind<int>(mem_fun(*this, &Speaker_ListStore::on_entry_changed), 12));
+
+ m_EditFreqRespButton.signal_clicked().connect( mem_fun(*this, &Speaker_ListStore::on_edit_freq_resp) );
+ m_BrowseFreqRespButton.signal_clicked().connect( mem_fun(*this, &Speaker_ListStore::on_browse_freq_resp) );
+--- a/src/boxeditor.cc 2004-06-22 16:33:48.000000000 -0500
++++ b/src/boxeditor.cc 2016-02-03 13:25:24.649550992 -0600
+@@ -94,16 +94,16 @@
+ m_bass_speaker_combo.get_entry()->set_editable(false);
+ m_bass_speaker_combo.get_entry()->signal_changed().connect(mem_fun(*this, &BoxEditor::on_combo_entry_changed));
+
+- m_id_string_entry.signal_changed().connect(bind<int>(mem_fun(*this, &BoxEditor::on_box_data_changed), ID_STRING_ENTRY_CHANGED));
+- m_vb1_entry.signal_changed().connect(bind<int>(mem_fun(*this, &BoxEditor::on_box_data_changed), VB1_ENTRY_CHANGED));
+- m_fb1_entry.signal_changed().connect(bind<int>(mem_fun(*this, &BoxEditor::on_box_data_changed), FB1_ENTRY_CHANGED));
++ m_id_string_entry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &BoxEditor::on_box_data_changed), ID_STRING_ENTRY_CHANGED));
++ m_vb1_entry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &BoxEditor::on_box_data_changed), VB1_ENTRY_CHANGED));
++ m_fb1_entry.signal_changed().connect(sigc::bind<int>(mem_fun(*this, &BoxEditor::on_box_data_changed), FB1_ENTRY_CHANGED));
+
+ signal_speakerlist_loaded.connect(mem_fun(*this, &BoxEditor::on_speaker_list_loaded));
+
+ /* Setup option menu */
+ Gtk::Menu::MenuList& menulist = m_option_menu.items();
+- menulist.push_back( Gtk::Menu_Helpers::MenuElem(_("Sealed"), bind<int>(mem_fun(*this, &BoxEditor::on_box_data_changed), SEALED_SELECTED) ) );
+- menulist.push_back( Gtk::Menu_Helpers::MenuElem(_("Ported"), bind<int>(mem_fun(*this, &BoxEditor::on_box_data_changed), PORTED_SELECTED) ) );
++ menulist.push_back( Gtk::Menu_Helpers::MenuElem(_("Sealed"), sigc::bind<int>(mem_fun(*this, &BoxEditor::on_box_data_changed), SEALED_SELECTED) ) );
++ menulist.push_back( Gtk::Menu_Helpers::MenuElem(_("Ported"), sigc::bind<int>(mem_fun(*this, &BoxEditor::on_box_data_changed), PORTED_SELECTED) ) );
+ m_box_type_optionmenu.set_menu(m_option_menu);
+
+ signal_box_selected.connect(mem_fun(*this, &BoxEditor::on_box_selected));
+--- a/src/settingsdialog.cc 2004-06-22 16:33:48.000000000 -0500
++++ b/src/settingsdialog.cc 2016-02-03 13:30:19.230163765 -0600
+@@ -156,31 +156,31 @@
+ m_scale_crossover_image_parts.set_active(g_settings.getValueBool("ScaleCrossoverImageParts"));
+
+ /* Setup configuration option change handlers */
+- m_save_mainwindow_size.signal_clicked().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_save_mainwindow_size.signal_clicked().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::SAVE_MAIN_WINDOW_SIZE));
+- m_save_mainwindow_position.signal_clicked().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_save_mainwindow_position.signal_clicked().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::SAVE_MAIN_WINDOW_SIZE));
+
+- m_autoupdate_filter_plots.signal_clicked().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_autoupdate_filter_plots.signal_clicked().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::AUTO_UPDATE_CROSSOVER_PLOT));
+- m_draw_driver_imp_plot.signal_clicked().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_draw_driver_imp_plot.signal_clicked().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::DRAW_DRIVER_IMP_PLOT));
+- m_draw_driver_freq_resp_plot.signal_clicked().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_draw_driver_freq_resp_plot.signal_clicked().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::DRAW_DRIVER_FREQ_RESP_PLOT));
+- m_disable_filter_amp.signal_clicked().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_disable_filter_amp.signal_clicked().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::DISABLE_FILTER_AMP));
+- m_scale_crossover_image_parts.signal_clicked().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_scale_crossover_image_parts.signal_clicked().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::SCALE_FILER_PARTS));
+- m_spice_path_entry.signal_changed().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_spice_path_entry.signal_changed().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::SPICE_PATH));
+- m_spice_use_ngspice.signal_clicked().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_spice_use_ngspice.signal_clicked().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::SPICE_TYPE));
+- m_spice_use_berkley.signal_clicked().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_spice_use_berkley.signal_clicked().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::SPICE_TYPE));
+- m_spice_use_gnucap.signal_clicked().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_spice_use_gnucap.signal_clicked().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::SPICE_TYPE));
+
+- m_toolbar_style.signal_changed().connect(bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
++ m_toolbar_style.signal_changed().connect(sigc::bind<GSpeakers::Settings>(mem_fun(*this, &SettingsDialog::on_config_option_change),
+ GSpeakers::TOOLBAR_STYLE));
+
+ }
+@@ -269,7 +269,7 @@
+ #endif
+ m_file_selection = new Gtk::FileSelection(_("Select SPICE executable..."));
+ m_file_selection->get_ok_button()->signal_clicked().connect(
+- bind<Gtk::FileSelection *>(mem_fun(*this, &SettingsDialog::on_file_ok), m_file_selection) );
++ sigc::bind<Gtk::FileSelection *>(mem_fun(*this, &SettingsDialog::on_file_ok), m_file_selection) );
+ m_file_selection->run();
+ m_file_selection->hide();
+ delete m_file_selection;
+--- a/src/freqrespeditor.cc 2016-02-03 13:27:57.898136003 -0600
++++ b/src/freqrespeditor.cc 2016-02-03 13:29:06.397503303 -0600
+@@ -122,7 +122,7 @@
+ f2 = g_ascii_strtod(substr_ptr, NULL);
+
+ dbmag_entries[i]->set_text(GSpeakers::double_to_ustring((double)f2, 2, 1));
+- dbmag_entries[i]->signal_changed().connect(bind<bool>(mem_fun(m_save_button, &Gtk::Button::set_sensitive), true));
++ dbmag_entries[i]->signal_changed().connect(sigc::bind<bool>(mem_fun(m_save_button, &Gtk::Button::set_sensitive), true));
+
+ delete buffer;
+ }
+@@ -148,7 +148,7 @@
+ delete buffer;
+ of.close();
+ for (int i = 0; i < 30; i++) {
+- dbmag_entries[i]->signal_changed().connect(bind<bool>(mem_fun(m_save_button, &Gtk::Button::set_sensitive), true));
++ dbmag_entries[i]->signal_changed().connect(sigc::bind<bool>(mem_fun(m_save_button, &Gtk::Button::set_sensitive), true));
+ }
+
+ } else {
+--- a/src/crossoverpaned.cc 2004-06-22 16:33:48.000000000 -0500
++++ b/src/crossoverpaned.cc 2016-02-03 13:35:16.600748274 -0600
+@@ -86,26 +86,26 @@
+ //sub_menulist.push_back( Gtk::Menu_Helpers::SeparatorElem() );
+ sub_menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem(_("New _lowpass crossover"),
+ GSpeakers::image_widget("stock_new_crossover_16.png"),
+- bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action), CROSSOVER_TYPE_LOWPASS) ) );
++ sigc::bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action), CROSSOVER_TYPE_LOWPASS) ) );
+ sub_menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem(_("New _subsonic crossover"),
+ GSpeakers::image_widget("stock_new_crossover_16.png"),
+- bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action) , CROSSOVER_TYPE_SUBSONIC) ) );
++ sigc::bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action) , CROSSOVER_TYPE_SUBSONIC) ) );
+ sub_menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem(_("New _highpass crossover"),
+ GSpeakers::image_widget("stock_new_crossover_16.png"),
+- bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action), CROSSOVER_TYPE_HIGHPASS) ) );
++ sigc::bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action), CROSSOVER_TYPE_HIGHPASS) ) );
+ sub_menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem(_("New _2-way crossover"),
+ GSpeakers::image_widget("stock_new_crossover_16.png"),
+- bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action), CROSSOVER_TYPE_TWOWAY) ) );
++ sigc::bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action), CROSSOVER_TYPE_TWOWAY) ) );
+ sub_menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem(_("New 2._5-way crossover"),
+ GSpeakers::image_widget("stock_new_crossover_16.png"),
+- bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action),
++ sigc::bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action),
+ CROSSOVER_TYPE_LOWPASS | CROSSOVER_TYPE_TWOWAY) ) );
+ sub_menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem(_("New _3-way crossover"),
+ GSpeakers::image_widget("stock_new_crossover_16.png"),
+- bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action), CROSSOVER_TYPE_THREEWAY) ) );
++ sigc::bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action), CROSSOVER_TYPE_THREEWAY) ) );
+ sub_menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem(_("New _4-way crossover"),
+ GSpeakers::image_widget("stock_new_crossover_16.png"),
+- bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action), CROSSOVER_TYPE_FOURWAY) ) );
++ sigc::bind<int>(mem_fun(*this, &CrossoverPaned::on_new_crossover_menu_action), CROSSOVER_TYPE_FOURWAY) ) );
+ menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem(_("_New Crossover"), GSpeakers::image_widget("stock_new_crossover_16.png"),
+ *new_crossover_submenu) );
+ menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem(_("New _Copy"), GSpeakers::image_widget("stock_new_crossover_copy_16.png"),
+
diff --git a/sci-electronics/gspeakers/files/gspeakers-0.11-fix-sigc-includes.patch b/sci-electronics/gspeakers/files/gspeakers-0.11-fix-sigc-includes.patch
new file mode 100644
index 000000000000..385d6c4e8135
--- /dev/null
+++ b/sci-electronics/gspeakers/files/gspeakers-0.11-fix-sigc-includes.patch
@@ -0,0 +1,26 @@
+diff --git a/src/gspeakersobject.h b/src/gspeakersobject.h
+index 9824b8b..8b9188e 100644
+--- a/src/gspeakersobject.h
++++ b/src/gspeakersobject.h
+@@ -18,7 +18,7 @@
+ #ifndef __GSPEAKERSOBJECT_H
+ #define __GSPEAKERSOBJECT_H
+
+-#include <sigc++/object.h>
++#include <sigc++/trackable.h>
+
+ /*
+ * This is a base object for data-containers in this project
+diff --git a/src/speakereditor.h b/src/speakereditor.h
+index 44368a0..29a1152 100644
+--- a/src/speakereditor.h
++++ b/src/speakereditor.h
+@@ -20,7 +20,7 @@
+ #ifndef __GSPEAKERS_SPEAKEREDITOR
+ #define __GSPEAKERS_SPEAKEREDITOR
+
+-#include <sigc++/object.h>
++#include <sigc++/trackable.h>
+ #include <gtkmm/widget.h>
+ #include <gtkmm/filechooserdialog.h>
+ #include <glibmm/ustring.h>
diff --git a/sci-electronics/ngspice/Manifest b/sci-electronics/ngspice/Manifest
index 1a6a7e44ff2a..900901b4c9dd 100644
--- a/sci-electronics/ngspice/Manifest
+++ b/sci-electronics/ngspice/Manifest
@@ -1,4 +1,7 @@
DIST ngspice-31-manual.pdf 2149244 BLAKE2B 155f7299cbb6d7c7953d8488e11f0bffc3c18097f02194c491174a9af387cda9e87cb79b13a37f402616386e7e82230eb4d41909fe37d900792e48f2f49c71dd SHA512 3322df92791718979a275f2640f82c3417f394a76d27ebf06b46f29a40a1ee3ef57c65a75a7ba67e697b55bd435f81e9ee61c78532f991a2dd6844b4f325eb55
DIST ngspice-31.tar.gz 7250057 BLAKE2B dabc8e1084eba957d6dad06e74f878b51e97dc8bc49b04ee612a6f9eaadde7302450c9ab93e943c4af42197b6bbdca7cae534464ccd2fcd4869b8a48b6f3140d SHA512 448024f398d267911d5d2a48da03eb0d87ba1133ce39d5132bd318dde8ad359d19c7f85f6b4ec88c08b081c9140f7b931334d84173019a22aa2ac98482bd7d5d
+DIST ngspice-34-manual.pdf 2311221 BLAKE2B e8863bab8173980a825970b90b685d3d5a59768a2110d00dc3fb3dbd504cd94390b13bf3ac8821ca22561cb390c0d7331d8eaa8e47020592b3526895f6d398d0 SHA512 b53f9161b793223015a307ba607add4e540ad22f252c2f6e3c6deedfc3fde173ec290bbc4939d4e419321cad6a68218f6a9c9b4c7620ee01da86eabfc22e5b7e
+DIST ngspice-34.tar.gz 7800546 BLAKE2B a07a7266225b8c4e478e3240718aa1fce9a77003d58477a30a6178368e7826f288007f9111797ca1c426486911d4bedd847bdf0daa69232e59333304468a4fc3 SHA512 5e90727f3f6b8675b83f71e1961d33cd498081a7f3bea5d081521f12ecb3979775159f083f84a5856233529505262c399f75d305758af51894a1245603476cf8
EBUILD ngspice-31-r1.ebuild 4393 BLAKE2B 97d73472447291f088d3a742781010a7dd40b0674c6a0059b15c592f4cb9f9919868b93486c2fd11f8896a0e8719b3378ff80a54ed2aa93b2b6fb67d13c7bcc5 SHA512 f450f605ee8630ce1c2f190ecbc287ef4a6b60ab72ba44e686670cf8a779b83e80d3e839434df9a4c88334907284d046d9e685aaf9ac45ed727ff5da54efca24
+EBUILD ngspice-34.ebuild 4503 BLAKE2B 8b039ded83223c8945abb3868e7030bdfd577bffe37d17334daf21b51272ce86d23df64cc2b2dcc59d7c67237054131e34e9f4122d4ef27fa2aa803d5d904f15 SHA512 a5708e8de8b54cfad67ab1851b7e137c77d7719e4bf4128b943c3f103008405a9c1f14ba8669e0501dcfc2f2dc7afab878e5d94320f8b1a9dbf8b80ee6f8f9d2
MISC metadata.xml 676 BLAKE2B 9f7a12febdcf08bf12af50524f20250fdb253888ff12045d6033f957f9c6d81fd21ce47a1e6694d9aa48d28fa2b5f9e3cbabc8e54f4e810ea10e5f251ebf3165 SHA512 3a92c343662ecec1091a9bc8e5b4c9569c783e3ddd78027925487a93446d43c863f918de67a8738eea463994ba6c590e693245d36ed4e05e62312cf100a1f2a7
diff --git a/sci-electronics/ngspice/ngspice-34.ebuild b/sci-electronics/ngspice/ngspice-34.ebuild
new file mode 100644
index 000000000000..9f70865e81ca
--- /dev/null
+++ b/sci-electronics/ngspice/ngspice-34.ebuild
@@ -0,0 +1,199 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools multibuild toolchain-funcs virtualx
+
+DESCRIPTION="The Next Generation Spice (Electronic Circuit Simulator)"
+SRC_URI="mirror://sourceforge/ngspice/${P}.tar.gz
+ doc? ( mirror://sourceforge/ngspice/${P}-manual.pdf )"
+HOMEPAGE="http://ngspice.sourceforge.net"
+LICENSE="BSD GPL-2"
+
+SLOT="0"
+IUSE="X debug deprecated doc examples fftw openmp +readline +shared tcl"
+KEYWORDS="~amd64 ~arm64 ~ppc ~sparc ~x86 ~x64-macos"
+
+RESTRICT="!test? ( test )"
+
+DEPEND="sys-libs/ncurses:0=
+ X? ( x11-libs/libXaw
+ x11-libs/libXt
+ x11-libs/libX11 )
+ fftw? ( sci-libs/fftw:3.0 )
+ readline? ( sys-libs/readline:0= )
+ tcl? ( dev-lang/tcl:0
+ dev-tcltk/blt )"
+RDEPEND="${DEPEND}
+ X? ( sci-visualization/xgraph )"
+
+DOCS=(
+ ANALYSES
+ AUTHORS
+ BUGS
+ ChangeLog
+ DEVICES
+ FAQ
+ NEWS
+ README
+ README.vdmos
+ Stuarts_Poly_Notes
+)
+
+pkg_setup() {
+ MULTIBUILD_VARIANTS=( "binaries" )
+ use shared && MULTIBUILD_VARIANTS+=( "shared" )
+ use tcl && MULTIBUILD_VARIANTS+=( "tcl" )
+ use openmp && tc-check-openmp
+}
+
+src_prepare() {
+ default
+
+ if use tcl; then
+ if use examples; then
+ find examples/tclspice -type f -iname \*tcl -or -iname \*.sh |
+ while read s
+ do
+ sed -i -e 's@../../../src/.libs/libspice.so@libspice.so@g' \
+ -e 's@package require BLT@package require Tk\npackage require BLT@g' \
+ -e "s@spice::codemodel \(.*\)/\(.*\).cm@spice::codemodel /usr/$(get_libdir)/ngspice/\2.cm@g" \
+ "${s}" || die "sed failed"
+ done
+ fi
+ fi
+
+ eautoreconf
+ multibuild_copy_sources
+}
+
+src_configure() {
+ multibuild_foreach_variant ngspice_configure
+}
+
+ngspice_configure() {
+ local myeconfargs
+
+ pushd "${BUILD_DIR}" &>/dev/null || die
+
+ if use debug; then
+ myeconfargs=(
+ --enable-debug
+ --enable-ftedebug
+ --enable-cpdebug
+ --enable-sensdebug
+ --enable-asdebug
+ --enable-stepdebug
+ --enable-pzdebug
+ )
+ else
+ myeconfargs=(
+ --disable-debug
+ --disable-ftedebug
+ --disable-cpdebug
+ --disable-sensdebug
+ --disable-asdebug
+ --disable-stepdebug
+ --disable-pzdebug
+ )
+ fi
+
+ # As of March 2021, these do not compile
+ myeconfargs+=(
+ --disable-blktmsdebug
+ --disable-smltmsdebug
+ )
+
+ myeconfargs+=(
+ --enable-xspice
+ --enable-cider
+ --disable-rpath
+ $(use_enable openmp)
+ $(use_with fftw fftw3)
+ $(use_with readline)
+ )
+
+ if [[ "${MULTIBUILD_VARIANT}" == "shared" ]]; then
+ myeconfargs+=( --with-ngshared )
+ elif [[ "${MULTIBUILD_VARIANT}" == "tcl" ]]; then
+ myeconfargs+=( --with-tcl="${EPREFIX}/usr/$(get_libdir)" )
+ else
+ myeconfargs+=(
+ $(use_enable deprecated oldapps)
+ $(use_with X x)
+ )
+ fi
+
+ econf "${myeconfargs[@]}"
+
+ popd &>/dev/null || die
+}
+
+src_compile() {
+ multibuild_foreach_variant ngspice_compile
+}
+
+ngspice_compile() {
+ pushd "${BUILD_DIR}" &>/dev/null || die
+ default
+ popd &>/dev/null || die
+}
+
+src_install() {
+ multibuild_foreach_variant ngspice_install
+
+ # merge the installations of all variants
+ local v
+ for v in "${MULTIBUILD_VARIANTS[@]}" ; do
+ cp -a "${ED}/tmp/${v}"/* "${ED}" || die "Failed to combine multibuild installations"
+ done
+ rm -rf "${ED}/tmp" || die
+
+ use tcl && DOCS+=( README.tcl )
+ use shared && DOCS+=( README.shared-xspice )
+ use doc && DOCS+=( "${DISTDIR}"/${P}-manual.pdf )
+
+ default
+
+ if use examples; then
+ if ! use tcl; then
+ rm -rf examples/tclspice || die
+ fi
+
+ insinto /usr/share/${PN}
+ doins -r examples
+ fi
+}
+
+ngspice_install() {
+ pushd "${BUILD_DIR}" &>/dev/null || die
+
+ emake DESTDIR="${ED}/tmp/${MULTIBUILD_VARIANT}" install
+
+ # Strip shared-library and Tcl-module builds to the bare minimum;
+ # all the support files will have been handled by the 'binaries' build.
+ if [[ "${MULTIBUILD_VARIANT}" != "binaries" ]]; then
+ rm -rf "${ED}/tmp/${MULTIBUILD_VARIANT}"/usr/bin{,.debug} || die
+ rm -rf "${ED}/tmp/${MULTIBUILD_VARIANT}"/usr/share || die
+ rm -rf "${ED}/tmp/${MULTIBUILD_VARIANT}"/usr/$(get_libdir)/*.la || die
+ rm -rf "${ED}/tmp/${MULTIBUILD_VARIANT}"/usr/$(get_libdir)/ngspice/*.cm{,.debug} || die
+ fi
+
+ popd &>/dev/null || die
+}
+
+src_test() {
+ if ! use debug; then
+ # tests can be only executed for the binaries variant
+ pushd "${WORKDIR}/${P}-binaries" &>/dev/null || die
+ echo "set ngbehavior=mc" > "${HOME}"/.spiceinit || die "Failed to configure ${PN} for running the test suite"
+ virtx default
+ popd &>/dev/null || die
+ else
+ # https://sourceforge.net/p/ngspice/bugs/353/
+ ewarn
+ ewarn "Skipping tests because they are known to fail in debug mode"
+ ewarn
+ fi
+}