From 6fe32f9c42dfd8147e2f720c752283a73631885f Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 19 Jun 2018 05:53:41 -0400 Subject: audio/guitarix: Updated for version 0.37.1. Signed-off-by: B. Watson --- audio/guitarix/ChangeLog.old | 63 +++++ audio/guitarix/guitarix.SlackBuild | 100 ++----- audio/guitarix/guitarix.info | 6 +- ...Guitarix-crashes-when-click-online-for-pr.patch | 35 +++ ...Guitarix-crashes-when-click-online-for-pr.patch | 311 +++++++++++++++++++++ 5 files changed, 442 insertions(+), 73 deletions(-) create mode 100644 audio/guitarix/ChangeLog.old create mode 100644 audio/guitarix/patches/0001-fix-bug-59-Guitarix-crashes-when-click-online-for-pr.patch create mode 100644 audio/guitarix/patches/0002-fix-bug-59-Guitarix-crashes-when-click-online-for-pr.patch (limited to 'audio') diff --git a/audio/guitarix/ChangeLog.old b/audio/guitarix/ChangeLog.old new file mode 100644 index 0000000000..ac4d9f096f --- /dev/null +++ b/audio/guitarix/ChangeLog.old @@ -0,0 +1,63 @@ +# This stuff used to be in the script, but it was getting annoyingly +# long. Probably only of interest to me, and maybe future archaeologists. + +# 20161016 bkw: Updated for 0.35.2 + +# 20160806 bkw: +# - Updated for 0.35.1 +# - removed WEBKIT=no option from README (it was removed from the +# script in March, should have been removed from README then). +# - removed webkitgtk from REQUIRES, as it's now optional (and +# autodetected, no way to force-disable it). +# - removed patches, since they're already included in the new release. +# - remove unimplemented SSE=no option. Note that SSE support is still +# autodetected, so if someone's trying this on e.g. ARCH=arm, it should +# automatically build without SSE (I have no idea if the build will +# actually complete, in that case). +# - remove .desktop sed stuff, upstream fixed it. +# - update man page. +# - note: zita-convolver and zita-resampler are not requirements. they +# will be linked if installed, otherwise guitarix's bundled copies will +# be used. I only mention this here so I won't forget again... + +# 20160329 dbs: +# - Updated for Slackware-14.2. Forced -msse in SLKCFLAGS. +# This just won't build without SSE on 32 bit gcc-5.3.0 :( +# xmmintrin.h:857:1: error: inlining failed in call to always_inline +# ‘void _MM_SET_EXCEPTION_STATE(unsigned int)’: target specific option mismatch +# Patch 0003-fix-build-even-for-gcc4.8.patch doesn't fix it, and there +# are no further fixes upstream at this time. + +# 20151108 bkw: +# - Updated for 0.34.0 +# - Added --disable-cxx11 to ./waf flags, as bluetooth.h uses the gcc +# typeof() extension. Not sure if newer versions of bluez would have +# this issue (but Slackware 14.1's bluez is pretty old by now). +# - Added patch from upstream git to allow building without webkitgtk. +# The author added support for downloading presets, but didn't make +# it optional in 0.34.0. Also added a couple of bugfix patches. +# - Support building 0.33.0 with VERSION=0.33.0 in the env. +# - Add SSE=no option. +# - Add WEBKIT=no option. +# - Remove LV2=no option from README (but not from script). + +# 20150514 bkw: +# - Updated for 0.32.3 +# - Fix some issues with the shared libs: they were being installed +# to /usr/lib/ on 64-bit, and they were missing the +x bits. +# - Made LV2 option default to yes, since upstream is requiring lilv +# even if --no-lv2 is used. Also, the lv2 plugins were being +# installed to /usr/lib/ on 64-bit. Grr. +# - Upstream wants avahi by default. For now, hardcoded --no-avahi. + +# 20130430 bkw: +# - Updated for 0.27.1 +# - Replaced slack-desc with updated text from guitarix site +# - Added LV2 option + +# 20121216 bkw: +# - Upgraded to guitarix2 +# - Added man page +# - Added realtime capabilities +# - Make .desktop file validate +# - Add guitarix's README to /usr/doc diff --git a/audio/guitarix/guitarix.SlackBuild b/audio/guitarix/guitarix.SlackBuild index 0b19d82a24..9c1db57684 100644 --- a/audio/guitarix/guitarix.SlackBuild +++ b/audio/guitarix/guitarix.SlackBuild @@ -6,14 +6,25 @@ # Modified by B. Watson . Modified version released # under the WTFPL, for details see http://www.wtfpl.net/txt/copying/ -# 20171223 bkw: Updated for 0.36.1. - -# 20170825 bkw: -# - Updated for 0.35.6 -# - Install the bundled roboto font. +# Note to self: git URL for guitarix is: +# git://git.code.sf.net/p/guitarix/git/ + +# 20180619 bkw: +# - Updated for 0.37.1. +# - Force building with bundled zita-convolver and resampler libs. +# Previously, system libs would be linked if they were installed, +# otherwise bundled libs were used... caused a problem if the +# system zita-convolver was updated to an incompatible version. +# - Add config options to re-enable ladspa and lv2 mod-gui stuff that +# used to be enabled by default in 0.36.1. +# - Add patches from upstream git, to fix segfaults when online +# button gets clicked. Also if dbus isn't running, guitarix will now +# actually say so, in its error message. +# - Move old changelog entries to ChangeLog.old. -# 20170725 bkw: -# - Updated for 0.35.5 +# 20171223 bkw: Updated for 0.36.1. +# 20170825 bkw: Updated for 0.35.6. Install the bundled roboto font. +# 20170725 bkw: Updated for 0.35.5 # 20170710 bkw: # - Updated for 0.35.4 @@ -30,70 +41,8 @@ # - Flip changelog comments right-side up # - Stop writing outside of $TMP. -# 20161016 bkw: -# - Updated for 0.35.2 - -# 20160806 bkw: -# - Updated for 0.35.1 -# - removed WEBKIT=no option from README (it was removed from the -# script in March, should have been removed from README then). -# - removed webkitgtk from REQUIRES, as it's now optional (and -# autodetected, no way to force-disable it). -# - removed patches, since they're already included in the new release. -# - remove unimplemented SSE=no option. Note that SSE support is still -# autodetected, so if someone's trying this on e.g. ARCH=arm, it should -# automatically build without SSE (I have no idea if the build will -# actually complete, in that case). -# - remove .desktop sed stuff, upstream fixed it. -# - update man page. -# - note: zita-convolver and zita-resampler are not requirements. they -# will be linked if installed, otherwise guitarix's bundled copies will -# be used. I only mention this here so I won't forget again... - -# 20160329 dbs: -# - Updated for Slackware-14.2. Forced -msse in SLKCFLAGS. -# This just won't build without SSE on 32 bit gcc-5.3.0 :( -# xmmintrin.h:857:1: error: inlining failed in call to always_inline -# ‘void _MM_SET_EXCEPTION_STATE(unsigned int)’: target specific option mismatch -# Patch 0003-fix-build-even-for-gcc4.8.patch doesn't fix it, and there -# are no further fixes upstream at this time. - -# 20151108 bkw: -# - Updated for 0.34.0 -# - Added --disable-cxx11 to ./waf flags, as bluetooth.h uses the gcc -# typeof() extension. Not sure if newer versions of bluez would have -# this issue (but Slackware 14.1's bluez is pretty old by now). -# - Added patch from upstream git to allow building without webkitgtk. -# The author added support for downloading presets, but didn't make -# it optional in 0.34.0. Also added a couple of bugfix patches. -# - Support building 0.33.0 with VERSION=0.33.0 in the env. -# - Add SSE=no option. -# - Add WEBKIT=no option. -# - Remove LV2=no option from README (but not from script). - -# 20150514 bkw: -# - Updated for 0.32.3 -# - Fix some issues with the shared libs: they were being installed -# to /usr/lib/ on 64-bit, and they were missing the +x bits. -# - Made LV2 option default to yes, since upstream is requiring lilv -# even if --no-lv2 is used. Also, the lv2 plugins were being -# installed to /usr/lib/ on 64-bit. Grr. -# - Upstream wants avahi by default. For now, hardcoded --no-avahi. - -# 20130430 bkw: -# - Updated for 0.27.1 -# - Replaced slack-desc with updated text from guitarix site -# - Added LV2 option - -# 20121216 bkw: -# - Upgraded to guitarix2 -# - Added man page -# - Added realtime capabilities -# - Make .desktop file validate -# - Add guitarix's README to /usr/doc - PRGNAM=guitarix -VERSION=${VERSION:-0.36.1} +VERSION=${VERSION:-0.37.1} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -143,6 +92,12 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+ +# Apply commits a4792a6b9c and 7278d18e0 from upstream, to stop +# segfaulting when user clicks the online button. Note these are +# -p2 patches (made with "git format-patch"), unusual for a slackbuild. +patch -p2 < $CWD/patches/0001-fix-bug-59-Guitarix-crashes-when-click-online-for-pr.patch +patch -p2 < $CWD/patches/0002-fix-bug-59-Guitarix-crashes-when-click-online-for-pr.patch + # guitarix wants to install the roboto font in the wrong place for # slackware. sed -i '/fonts/s,\,TTF,' wscript tools/undiag @@ -163,6 +118,11 @@ LIBDIR="/usr/lib${LIBDIRSUFFIX}" --no-avahi \ --no-ldconfig \ --no-desktop-update \ + --includeresampler \ + --includeconvolver \ + --ladspa \ + --new-ladspa \ + --mod-lv2 \ $EXTRAOPT \ $LV2OPT ./waf build # -v # verbose, shows actual commands diff --git a/audio/guitarix/guitarix.info b/audio/guitarix/guitarix.info index b20803f315..eed566163a 100644 --- a/audio/guitarix/guitarix.info +++ b/audio/guitarix/guitarix.info @@ -1,8 +1,8 @@ PRGNAM="guitarix" -VERSION="0.36.1" +VERSION="0.37.1" HOMEPAGE="http://guitarix.sourceforge.net/" -DOWNLOAD="http://downloads.sourceforge.net/guitarix/guitarix2-0.36.1.tar.xz" -MD5SUM="1615863a469497f42f1bbec5ebb0d4e1" +DOWNLOAD="http://downloads.sourceforge.net/guitarix/guitarix2-0.37.1.tar.xz" +MD5SUM="123f2ea027c03ba07021a0b1fa2d56b2" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="jack-audio-connection-kit liblrdf lilv" diff --git a/audio/guitarix/patches/0001-fix-bug-59-Guitarix-crashes-when-click-online-for-pr.patch b/audio/guitarix/patches/0001-fix-bug-59-Guitarix-crashes-when-click-online-for-pr.patch new file mode 100644 index 0000000000..1ce0e4ccf2 --- /dev/null +++ b/audio/guitarix/patches/0001-fix-bug-59-Guitarix-crashes-when-click-online-for-pr.patch @@ -0,0 +1,35 @@ +From a4792a6b9c6f97fd2bb653169a2c8274c9a782fd Mon Sep 17 00:00:00 2001 +From: Hermann Meyer +Date: Mon, 4 Jun 2018 10:03:08 +0200 +Subject: [PATCH 1/2] * fix bug #59 Guitarix crashes when click online for + presets + +--- + trunk/src/gx_head/gui/gx_preset_window.cpp | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/trunk/src/gx_head/gui/gx_preset_window.cpp b/trunk/src/gx_head/gui/gx_preset_window.cpp +index 0d34390f..e09bf77f 100644 +--- a/trunk/src/gx_head/gui/gx_preset_window.cpp ++++ b/trunk/src/gx_head/gui/gx_preset_window.cpp +@@ -919,6 +919,17 @@ void PresetWindow::replace_inline(std::string& subject, const std::string& searc + + void PresetWindow::show_online_preset() { + ++ char *dbus = getenv("DBUS_SESSION_BUS_ADDRESS"); ++ if (!dbus) { ++ system("eval 'dbus-launch --sh-syntax --exit-with-session'"); ++ } ++ ++ dbus = getenv("DBUS_SESSION_BUS_ADDRESS"); ++ if (!dbus) { ++ gx_print_error("downloadPreset", _("DBUS_SESSION_BUS_ADDRESS not detected, online prest download isn't supported!!")); ++ return; ++ } ++ + Glib::RefPtr dest = Gio::File::create_for_uri(Glib::filename_to_uri(options.get_online_config_filename(), resolve_hostname())); + static bool load_new = true; + static bool load = false; +-- +2.14.1 + diff --git a/audio/guitarix/patches/0002-fix-bug-59-Guitarix-crashes-when-click-online-for-pr.patch b/audio/guitarix/patches/0002-fix-bug-59-Guitarix-crashes-when-click-online-for-pr.patch new file mode 100644 index 0000000000..245d43da0d --- /dev/null +++ b/audio/guitarix/patches/0002-fix-bug-59-Guitarix-crashes-when-click-online-for-pr.patch @@ -0,0 +1,311 @@ +From 7278d18e0124b21c18c8e47ca403cf1eb1bea2dc Mon Sep 17 00:00:00 2001 +From: Hermann Meyer +Date: Tue, 5 Jun 2018 10:00:47 +0200 +Subject: [PATCH 2/2] * fix bug #59 Guitarix crashes when click online for + presets, switch to use libcurl instead GIO + +--- + trunk/src/gx_head/gui/gx_preset_window.cpp | 142 ++++++----------------------- + trunk/src/gx_head/wscript | 2 +- + trunk/src/headers/guitarix.h | 1 + + trunk/src/headers/gx_preset_window.h | 24 +---- + trunk/wscript | 1 + + 5 files changed, 32 insertions(+), 138 deletions(-) + +diff --git a/trunk/src/gx_head/gui/gx_preset_window.cpp b/trunk/src/gx_head/gui/gx_preset_window.cpp +index e09bf77f..00e358f7 100644 +--- a/trunk/src/gx_head/gui/gx_preset_window.cpp ++++ b/trunk/src/gx_head/gui/gx_preset_window.cpp +@@ -170,9 +170,13 @@ PresetWindow::PresetWindow(Glib::RefPtr bld, gx_engine::GxMac + gtk_size_group_add_widget(lc, GTK_WIDGET(new_preset_bank->gobj())); + gtk_size_group_add_widget(lc, GTK_WIDGET(organize_presets->gobj())); + gtk_size_group_add_widget(lc, GTK_WIDGET(online_preset->gobj())); ++ curl_global_init(CURL_GLOBAL_DEFAULT); ++ curl = curl_easy_init(); + } + + PresetWindow::~PresetWindow() { ++ curl_easy_cleanup(curl); ++ curl_global_cleanup(); + } + + void PresetWindow::on_selection_changed() { +@@ -695,53 +699,6 @@ void PresetWindow::on_new_bank() { + + // Online Preset Downloader + +-void DownloadWatch::start () { +- cancellable = Gio::Cancellable::create (); +- file_state = sigc::slot(&f_progress); +- watcher = Glib::Thread::create(sigc::mem_fun(*this, &DownloadWatch::watch), true); +-} +- +-void DownloadWatch::watch () { +- while(true) { +- { +- Glib::Mutex::Lock lock (w_mutex); +- if (stop) break; +- } +- sleep(25); // time out for the server response +- cancellable->cancel(); +- if (!stop) timeout(); +- break; +- } +-} +- +-void DownloadWatch::f_progress(goffset read, goffset total) +-{ +- if(Gtk::Main::events_pending()) +- Gtk::Main::iteration(false); +- //std::cout << read << "/" << total << std::endl; +-} +- +-DownloadWatch::~DownloadWatch() { +- { +- Glib::Mutex::Lock lock (w_mutex); +- stop = true; +- } +- if (watcher) watcher->join(); +-} +- +-void PresetWindow::go_watch () { +- if(watch != NULL) return; +- watch = new DownloadWatch(); +- watch->timeout.connect(sigc::mem_fun(*this, &PresetWindow::watch_done)); +- watch->start(); +-} +- +-void PresetWindow::watch_done() { +- if(watch == NULL) return; +- delete watch; +- watch = NULL; +-} +- + Glib::ustring PresetWindow::resolve_hostname() { + static Glib::ustring hostname = "localhost"; + if (! machine.get_jack()) { +@@ -753,21 +710,31 @@ Glib::ustring PresetWindow::resolve_hostname() { + + bool PresetWindow::download_file(Glib::ustring from_uri, Glib::ustring to_path) { + +- go_watch(); +- Glib::RefPtr rem = Gio::File::create_for_uri(from_uri); +- Glib::RefPtr dest = Gio::File::create_for_uri(Glib::filename_to_uri(to_path, resolve_hostname())); +- try { +- rem->copy(dest, watch->file_state, watch->cancellable,Gio::FILE_COPY_OVERWRITE); +- } catch (Gio::Error& e) { +- if (watch->cancellable->is_cancelled()) { +- gx_print_error( _("Time out, download cancelled"), _("the server on https://musical-artifacts.com/ takes to long to respond")); ++ CURLcode res; ++ FILE *out; ++ out = fopen(to_path.c_str(), "wb"); ++ ++ curl_easy_setopt(curl, CURLOPT_WRITEDATA, out); ++ curl_easy_setopt(curl, CURLOPT_URL, from_uri.c_str()); ++ res = curl_easy_perform(curl); ++ if(CURLE_OK == res) { ++ char *ct = NULL; ++ res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct); ++ if (strstr(ct, "application/json")!= NULL ) { ++ gx_print_info( "download_file", from_uri); ++ } else if (strstr(ct, "application/octet-stream")!= NULL) { ++ gx_print_info( "download_preset", from_uri); + } else { +- gx_print_error(e.what().c_str(), Glib::ustring::compose("can't download '%1 ' from https://musical-artifacts.com/", from_uri)); +- if (watch) watch_done(); ++ res = CURLE_CONV_FAILED; + } ++ } ++ curl_easy_reset(curl); ++ fclose(out); ++ if(res != CURLE_OK) { ++ remove(to_path.c_str()); ++ gx_print_error( "download_file", Glib::ustring::compose("curl_easy_perform() failed: %1", curl_easy_strerror(res))); + return false; + } +- if (watch) watch_done(); + return true; + } + +@@ -802,9 +769,6 @@ void PresetWindow::read_preset_menu() { + std::string INFO_; + std::string AUTHOR_; + std::string line; +- // bool set_name = false; +- // bool set_file = false; +- // bool set_info = false; + while ( in->read_line(line) ) + { + std::istringstream is(line); +@@ -825,9 +789,7 @@ void PresetWindow::read_preset_menu() { + jp.read_kv("file", FILE_); + INFO_ += "Author : " + AUTHOR_; + olp.push_back(std::tuple(NAME_,FILE_,INFO_)); +- //os << "\n<> \n" << NAME_ << "\n<> \n" << FILE_ << "\n<> \n" << INFO_ << "\n<> \n" << "\n"; +- } else { +- //gx_print_warning("read_online", "unknown key: " + jp.current_value()); ++ } else { + jp.skip_object(); + } + } while (jp.peek() == gx_system::JsonParser::value_key); +@@ -837,41 +799,6 @@ void PresetWindow::read_preset_menu() { + cerr << "JsonException: " << e.what() << ": '" << jp.current_value() << "'" << endl; + assert(false); + } +- +-/* +- if (line.find("<>") != string::npos) { +- set_name = true; +- set_file = false; +- set_info = false; +- NAME_ = ""; +- continue; +- } else if (line.find("<>") != string::npos ) { +- set_name = false; +- set_file = true; +- set_info = false; +- FILE_ = ""; +- continue; +- } else if (line.find("<>") != string::npos ) { +- set_name = false; +- set_file = false; +- set_info = true; +- INFO_ = ""; +- continue; +- } else if (line.find("<>") != string::npos ) { +- set_name = false; +- set_file = false; +- set_info = false; +- olp.push_back(std::tuple(NAME_,FILE_,INFO_)); +- NAME_ = ""; +- FILE_ = ""; +- INFO_ = ""; +- continue; +- } +- if ( set_name ) NAME_ += line; +- else if ( set_file ) FILE_ += line; +- else if ( set_info ) INFO_ += line+"\n"; +- +- */ + } + in->close (); + } +@@ -919,17 +846,6 @@ void PresetWindow::replace_inline(std::string& subject, const std::string& searc + + void PresetWindow::show_online_preset() { + +- char *dbus = getenv("DBUS_SESSION_BUS_ADDRESS"); +- if (!dbus) { +- system("eval 'dbus-launch --sh-syntax --exit-with-session'"); +- } +- +- dbus = getenv("DBUS_SESSION_BUS_ADDRESS"); +- if (!dbus) { +- gx_print_error("downloadPreset", _("DBUS_SESSION_BUS_ADDRESS not detected, online prest download isn't supported!!")); +- return; +- } +- + Glib::RefPtr dest = Gio::File::create_for_uri(Glib::filename_to_uri(options.get_online_config_filename(), resolve_hostname())); + static bool load_new = true; + static bool load = false; +@@ -939,16 +855,14 @@ void PresetWindow::show_online_preset() { + window->set_cursor(cursor); + if (dest->query_exists()) { + Gtk::MessageDialog *d = new Gtk::MessageDialog(*dynamic_cast(online_preset->get_toplevel()), +- "Do you wont to check for new presets from\n https://musical-artifacts.com ? \n Note, that may take a while", ++ "Do you want to check for new presets from\n https://musical-artifacts.com ? \n Note, that may take a while", + false, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO, true); + d->set_position(Gtk::WIN_POS_MOUSE); + if (d->run() == Gtk::RESPONSE_YES) load = true; + delete d; + } + if (load || ! dest->query_exists()) { +- if (download_file("https://musical-artifacts.com/artifacts.json?apps=guitarix", options.get_online_config_filename())) { +- // machine.load_online_presets(); +- } else { ++ if (!download_file("https://musical-artifacts.com/artifacts.json?apps=guitarix", options.get_online_config_filename())) { + window->set_cursor(); + return; + } +diff --git a/trunk/src/gx_head/wscript b/trunk/src/gx_head/wscript +index 45a5b249..df7c97b0 100644 +--- a/trunk/src/gx_head/wscript ++++ b/trunk/src/gx_head/wscript +@@ -161,7 +161,7 @@ def build(bld): + lib = [] + if sys.platform.startswith("linux"): + lib.append('dl') +- uselib = ['JACK', 'SNDFILE', 'GTHREAD', 'GMODULE_EXPORT', ++ uselib = ['JACK', 'SNDFILE', 'GTHREAD', 'GMODULE_EXPORT', 'CURL', + 'GTK2', 'GTKMM', 'GIOMM', 'FFTW3', 'LRDF', 'LILV', 'BOOST_SYSTEM','BOOST_IOSTREAMS'] + if bld.env["HAVE_AVAHI"]: + uselib += ['AVAHI_GOBJECT', 'AVAHI_GLIB', 'AVAHI_CLIENT'] +diff --git a/trunk/src/headers/guitarix.h b/trunk/src/headers/guitarix.h +index 9c71dccd..686cb284 100644 +--- a/trunk/src/headers/guitarix.h ++++ b/trunk/src/headers/guitarix.h +@@ -65,6 +65,7 @@ + #endif + + #include ++#include + + #include "engine.h" + #include "jsonrpc.h" +diff --git a/trunk/src/headers/gx_preset_window.h b/trunk/src/headers/gx_preset_window.h +index 5d65d399..0b2afdd0 100644 +--- a/trunk/src/headers/gx_preset_window.h ++++ b/trunk/src/headers/gx_preset_window.h +@@ -66,26 +66,6 @@ public: + using Gtk::TreeView::on_drag_motion; + }; + +- +-class DownloadWatch { +-public: +- DownloadWatch() : watcher(0), stop(false) {} +- Glib::RefPtr cancellable; +- Gio::File::SlotFileProgress file_state; +- static void f_progress(goffset read, goffset total); +- void start (); +- ~DownloadWatch(); +- Glib::Dispatcher timeout; +- +-protected: +- void watch (); +- void load (); +- Glib::Thread * watcher; +- Glib::Mutex w_mutex; +- bool stop; +-}; +- +- + struct GxActions; + + class PresetWindow: public sigc::trackable { +@@ -97,9 +77,7 @@ private: + }; + gx_engine::GxMachineBase& machine; + GxActions& actions; +- DownloadWatch *watch; +- void go_watch (); +- void watch_done(); ++ CURL *curl; + bool in_edit; + Gtk::TreeModel::iterator edit_iter; + Glib::RefPtr pb_edit; +diff --git a/trunk/wscript b/trunk/wscript +index 2d54736a..7ebd6324 100644 +--- a/trunk/wscript ++++ b/trunk/wscript +@@ -676,6 +676,7 @@ def configure(conf): + conf.check_cfg(package='glibmm-2.4', atleast_version='2.24', args='--cflags --libs', uselib_store='GLIBMM', mandatory=1) + conf.check(header_name='fftw3.h', mandatory=1) + conf.check_cfg(package='fftw3f', atleast_version='3.1.2', args='--cflags --libs', uselib_store='FFTW3', mandatory=1) ++ conf.check_cfg(package='libcurl', atleast_version='7.26.0', args='--cflags --libs', uselib_store='CURL', mandatory=1) + + if (opt.standalone): + conf.env['STANDALONE'] = True +-- +2.14.1 + -- cgit v1.2.3