/** * A simple set of functions to check our version 1.0 update service. * * @package WordPress * @since 2.3.0 */ /** * Check WordPress version against the newest version. * * The WordPress version, PHP version, and Locale is sent. Checks against the * WordPress server at api.wordpress.org server. Will only check if WordPress * isn't installing. * * @since 2.3.0 * @uses $wp_version Used to check against the newest WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_version_check( $extra_stats = array(), $force_check = false ) { if ( defined('WP_INSTALLING') ) return; global $wpdb, $wp_local_package; include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $php_version = phpversion(); $current = get_site_transient( 'update_core' ); $translations = wp_get_installed_translations( 'core' ); // Invalidate the transient when $wp_version changes if ( is_object( $current ) && $wp_version != $current->version_checked ) $current = false; if ( ! is_object($current) ) { $current = new stdClass; $current->updates = array(); $current->version_checked = $wp_version; } if ( ! empty( $extra_stats ) ) $force_check = true; // Wait 60 seconds between multiple version check requests $timeout = 60; $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( ! $force_check && $time_not_changed ) return false; $locale = get_locale(); /** * Filter the locale requested for WordPress core translations. * * @since 2.8.0 * * @param string $locale Current locale. */ $locale = apply_filters( 'core_version_check_locale', $locale ); // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_core', $current ); if ( method_exists( $wpdb, 'db_version' ) ) $mysql_version = preg_replace('/[^0-9.].*/', '', $wpdb->db_version()); else $mysql_version = 'N/A'; if ( is_multisite() ) { $user_count = get_user_count(); $num_blogs = get_blog_count(); $wp_install = network_site_url(); $multisite_enabled = 1; } else { $user_count = count_users(); $user_count = $user_count['total_users']; $multisite_enabled = 0; $num_blogs = 1; $wp_install = home_url( '/' ); } $query = array( 'version' => $wp_version, 'php' => $php_version, 'locale' => $locale, 'mysql' => $mysql_version, 'local_package' => isset( $wp_local_package ) ? $wp_local_package : '', 'blogs' => $num_blogs, 'users' => $user_count, 'multisite_enabled' => $multisite_enabled, ); $post_body = array( 'translations' => json_encode( $translations ), ); if ( is_array( $extra_stats ) ) $post_body = array_merge( $post_body, $extra_stats ); $url = $http_url = 'http://api.wordpress.org/core/version-check/1.7/?' . http_build_query( $query, null, '&' ); if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $options = array( 'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3 ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ), 'headers' => array( 'wp_install' => $wp_install, 'wp_blog' => home_url( '/' ) ), 'body' => $post_body, ); $response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) return false; $body = trim( wp_remote_retrieve_body( $response ) ); $body = json_decode( $body, true ); if ( ! is_array( $body ) || ! isset( $body['offers'] ) ) return false; $offers = $body['offers']; foreach ( $offers as &$offer ) { foreach ( $offer as $offer_key => $value ) { if ( 'packages' == $offer_key ) $offer['packages'] = (object) array_intersect_key( array_map( 'esc_url', $offer['packages'] ), array_fill_keys( array( 'full', 'no_content', 'new_bundled', 'partial', 'rollback' ), '' ) ); elseif ( 'download' == $offer_key ) $offer['download'] = esc_url( $value ); else $offer[ $offer_key ] = esc_html( $value ); } $offer = (object) array_intersect_key( $offer, array_fill_keys( array( 'response', 'download', 'locale', 'packages', 'current', 'version', 'php_version', 'mysql_version', 'new_bundled', 'partial_version', 'notify_email', 'support_email' ), '' ) ); } $updates = new stdClass(); $updates->updates = $offers; $updates->last_checked = time(); $updates->version_checked = $wp_version; if ( isset( $body['translations'] ) ) $updates->translations = $body['translations']; set_site_transient( 'update_core', $updates ); if ( ! empty( $body['ttl'] ) ) { $ttl = (int) $body['ttl']; if ( $ttl && ( time() + $ttl < wp_next_scheduled( 'wp_version_check' ) ) ) { // Queue an event to re-run the update check in $ttl seconds. wp_schedule_single_event( time() + $ttl, 'wp_version_check' ); } } // Trigger a background updates check if running non-interactively, and we weren't called from the update handler. if ( defined( 'DOING_CRON' ) && DOING_CRON && ! doing_action( 'wp_maybe_auto_update' ) ) { do_action( 'wp_maybe_auto_update' ); } } /** * Check plugin versions against the latest versions hosted on WordPress.org. * * The WordPress version, PHP version, and Locale is sent along with a list of * all plugins installed. Checks against the WordPress server at * api.wordpress.org. Will only check if WordPress isn't installing. * * @since 2.3.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_plugins( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined('WP_INSTALLING') ) return false; // If running blog-side, bail unless we've not checked in the last 12 hours if ( !function_exists( 'get_plugins' ) ) require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); $plugins = get_plugins(); $translations = wp_get_installed_translations( 'plugins' ); $active = get_option( 'active_plugins', array() ); $current = get_site_transient( 'update_plugins' ); if ( ! is_object($current) ) $current = new stdClass; $new_option = new stdClass; $new_option->last_checked = time(); // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-plugins.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $plugin_changed = false; foreach ( $plugins as $file => $p ) { $new_option->checked[ $file ] = $p['Version']; if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) $plugin_changed = true; } if ( isset ( $current->response ) && is_array( $current->response ) ) { foreach ( $current->response as $plugin_file => $update_details ) { if ( ! isset($plugins[ $plugin_file ]) ) { $plugin_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $plugin_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_plugins', $current ); $to_send = compact( 'plugins', 'active' ); $locales = array( get_locale() ); /** * Filter the locales requested for plugin translations. * * @since 3.7.0 * * @param array $locales Plugin locale. Default is current locale of the site. */ $locales = apply_filters( 'plugins_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 plugins $timeout = 3 + (int) ( count( $plugins ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'plugins' => json_encode( $to_send ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), 'all' => json_encode( true ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); foreach ( $response['plugins'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); foreach ( $response['no_update'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); if ( is_array( $response ) ) { $new_option->response = $response['plugins']; $new_option->translations = $response['translations']; // TODO: Perhaps better to store no_update in a separate transient with an expiry? $new_option->no_update = $response['no_update']; } else { $new_option->response = array(); $new_option->translations = array(); $new_option->no_update = array(); } set_site_transient( 'update_plugins', $new_option ); } /** * Check theme versions against the latest versions hosted on WordPress.org. * * A list of all themes installed in sent to WP. Checks against the * WordPress server at api.wordpress.org. Will only check if WordPress isn't * installing. * * @since 2.7.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_themes( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined( 'WP_INSTALLING' ) ) return false; $installed_themes = wp_get_themes(); $translations = wp_get_installed_translations( 'themes' ); $last_update = get_site_transient( 'update_themes' ); if ( ! is_object($last_update) ) $last_update = new stdClass; $themes = $checked = $request = array(); // Put slug of current theme into request. $request['active'] = get_option( 'stylesheet' ); foreach ( $installed_themes as $theme ) { $checked[ $theme->get_stylesheet() ] = $theme->get('Version'); $themes[ $theme->get_stylesheet() ] = array( 'Name' => $theme->get('Name'), 'Title' => $theme->get('Name'), 'Version' => $theme->get('Version'), 'Author' => $theme->get('Author'), 'Author URI' => $theme->get('AuthorURI'), 'Template' => $theme->get_template(), 'Stylesheet' => $theme->get_stylesheet(), ); } // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-themes.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $theme_changed = false; foreach ( $checked as $slug => $v ) { if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) $theme_changed = true; } if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { foreach ( $last_update->response as $slug => $update_details ) { if ( ! isset($checked[ $slug ]) ) { $theme_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $theme_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $last_update->last_checked = time(); set_site_transient( 'update_themes', $last_update ); $request['themes'] = $themes; $locales = array( get_locale() ); /** * Filter the locales requested for theme translations. * * @since 3.7.0 * * @param array $locales Theme locale. Default is current locale of the site. */ $locales = apply_filters( 'themes_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 themes $timeout = 3 + (int) ( count( $themes ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'themes' => json_encode( $request ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $new_update = new stdClass; $new_update->last_checked = time(); $new_update->checked = $checked; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); if ( is_array( $response ) ) { $new_update->response = $response['themes']; $new_update->translations = $response['translations']; } set_site_transient( 'update_themes', $new_update ); } /** * Performs WordPress automatic background updates. * * @since 3.7.0 */ function wp_maybe_auto_update() { include_once( ABSPATH . '/wp-admin/includes/admin.php' ); include_once( ABSPATH . '/wp-admin/includes/class-wp-upgrader.php' ); $upgrader = new WP_Automatic_Updater; $upgrader->run(); } /** * Retrieves a list of all language updates available. * * @since 3.7.0 */ function wp_get_translation_updates() { $updates = array(); $transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' ); foreach ( $transients as $transient => $type ) { $transient = get_site_transient( $transient ); if ( empty( $transient->translations ) ) continue; foreach ( $transient->translations as $translation ) { $updates[] = (object) $translation; } } return $updates; } /** * Collect counts and UI strings for available updates * * @since 3.3.0 * * @return array */ function wp_get_update_data() { $counts = array( 'plugins' => 0, 'themes' => 0, 'wordpress' => 0, 'translations' => 0 ); if ( $plugins = current_user_can( 'update_plugins' ) ) { $update_plugins = get_site_transient( 'update_plugins' ); if ( ! empty( $update_plugins->response ) ) $counts['plugins'] = count( $update_plugins->response ); } if ( $themes = current_user_can( 'update_themes' ) ) { $update_themes = get_site_transient( 'update_themes' ); if ( ! empty( $update_themes->response ) ) $counts['themes'] = count( $update_themes->response ); } if ( ( $core = current_user_can( 'update_core' ) ) && function_exists( 'get_core_updates' ) ) { $update_wordpress = get_core_updates( array('dismissed' => false) ); if ( ! empty( $update_wordpress ) && ! in_array( $update_wordpress[0]->response, array('development', 'latest') ) && current_user_can('update_core') ) $counts['wordpress'] = 1; } if ( ( $core || $plugins || $themes ) && wp_get_translation_updates() ) $counts['translations'] = 1; $counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'] + $counts['translations']; $titles = array(); if ( $counts['wordpress'] ) $titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] ); if ( $counts['plugins'] ) $titles['plugins'] = sprintf( _n( '%d Plugin Update', '%d Plugin Updates', $counts['plugins'] ), $counts['plugins'] ); if ( $counts['themes'] ) $titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] ); if ( $counts['translations'] ) $titles['translations'] = __( 'Translation Updates' ); $update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : ''; $update_data = array( 'counts' => $counts, 'title' => $update_title ); /** * Filter the returned array of update data for plugins, themes, and WordPress core. * * @since 3.5.0 * * @param array $update_data { * Fetched update data. * * @type array $counts An array of counts for available plugin, theme, and WordPress updates. * @type string $update_title Titles of available updates. * } * @param array $titles An array of update counts and UI strings for available updates. */ return apply_filters( 'wp_get_update_data', $update_data, $titles ); } function _maybe_update_core() { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $current = get_site_transient( 'update_core' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) && isset( $current->version_checked ) && $current->version_checked == $wp_version ) return; wp_version_check(); } /** * Check the last time plugins were run before checking plugin versions. * * This might have been backported to WordPress 2.6.1 for performance reasons. * This is used for the wp-admin to check only so often instead of every page * load. * * @since 2.7.0 * @access private */ function _maybe_update_plugins() { $current = get_site_transient( 'update_plugins' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_plugins(); } /** * Check themes versions only after a duration of time. * * This is for performance reasons to make sure that on the theme version * checker is not run on every page load. * * @since 2.7.0 * @access private */ function _maybe_update_themes() { $current = get_site_transient( 'update_themes' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_themes(); } /** * Schedule core, theme, and plugin update checks. * * @since 3.1.0 */ function wp_schedule_update_checks() { if ( !wp_next_scheduled('wp_version_check') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_version_check'); if ( !wp_next_scheduled('wp_update_plugins') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_plugins'); if ( !wp_next_scheduled('wp_update_themes') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_themes'); if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') ) wp_clear_scheduled_hook( 'wp_maybe_auto_update' ); } if ( ( ! is_main_site() && ! is_network_admin() ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) return; add_action( 'admin_init', '_maybe_update_core' ); add_action( 'wp_version_check', 'wp_version_check' ); add_action( 'upgrader_process_complete', 'wp_version_check', 10, 0 ); add_action( 'load-plugins.php', 'wp_update_plugins' ); add_action( 'load-update.php', 'wp_update_plugins' ); add_action( 'load-update-core.php', 'wp_update_plugins' ); add_action( 'admin_init', '_maybe_update_plugins' ); add_action( 'wp_update_plugins', 'wp_update_plugins' ); add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 ); add_action( 'load-themes.php', 'wp_update_themes' ); add_action( 'load-update.php', 'wp_update_themes' ); add_action( 'load-update-core.php', 'wp_update_themes' ); add_action( 'admin_init', '_maybe_update_themes' ); add_action( 'wp_update_themes', 'wp_update_themes' ); add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' ); add_action('init', 'wp_schedule_update_checks'); Los diez protagonistas del nuevo tiempoSesiónDeControl.com
Arrow

Los diez protagonistas


0
Jurdan Arretxe

Periodista. Trabajo en Noticias de Gipuzkoa. También soy profesor universitario en algunos ratos sueltos.


Escrito el 4 de marzo de 2014 a las 9:52 | Clasificado en Euskadi

ETA, los verificadores, los facilitadores, Urkullu, Rajoy… han copado los titulares de las últimas semanas en Euskadi. Diez son los protagonistas principales del nuevo tiempo sin la violencia de la organización armada.

Imagen del vídeo en el que dos miembros de ETA muestran varias armas a los verificadores.
Imagen del vídeo en el que dos miembros de ETA muestran varias armas a los verificadores.

Las últimas semanas han dejado varias novedades en Euskadi. Un paso de ETA, declaraciones del Gobierno Vasco con exigencias a distintos agentes, la indiferencia del Gobierno español y la implicación de los actores internacionales –dos de los tres han pasado ante los jueces- han marcado la agenda de los últimos días. Diez han sido los protagonistas.

Gobierno español

A la espera. El Ejecutivo de Mariano Rajoy ha decidido no oír ni lo que diga ni lo que haga ETA. Los distintos gobiernos desde Argel se han sentado con la organización armada. Incluso hubo quien reiteró su disposición al diálogo una vez ETA había dinamitado una de sus treguas. Ahora, La Moncloa no se mueve, pese a que algunas asociaciones de víctimas acusen a Rajoy de “cesión” y “chantaje”. Fuentes del PP reconocen que sin muertos, resulta más sencillo ni atender ni escuchar a ETA. El Gobierno dice esperar solo la disolución –afirma que entonces abordará otra interpretación de la legislación penitenciaria- y ni siquiera valora que los presos anuncien su sometimiento a la legalidad, lo que supone renunciar a un “triunfo” que genera cierta incomprensión entre los populares vascos. Tampoco sopesa aceptar un contacto con ETA para el decomiso de los arsenales. Disolución.

ETA

Hubo que esperar dos años y cuatro meses para que la organización armada diera un nuevo paso tras el de octubre de 2011. Aquel “cese definitivo de la actividad armada” puso el punto final a la violencia para buena parte de la sociedad vasca, que en su mayoría da por amortizada esta preocupación, más allá de los debates semánticos en torno a desarmes y disoluciones. Veintiocho meses después, la organización armada anunció el sellado de una parte de su arsenal. Un gesto cuyo valor fue motivo de debate entre los políticos vascos y de chascarrillos en Internet y en programas de humor. La nula disposición del Gobierno español (y francés) a un desarme al uso más la difícil hipótesis de que ETA entregue su arsenal al que declaró “enemigo” (uno de los fundadores de ETA y que se desmarcó de la organización hace dos décadas, Julen Madariaga, considera que este gesto sería una “humillación”), abren las incógnitas de los próximos meses.

Gobierno Vasco

El Ejecutivo de Vitoria ha elaborado un Plan de Paz y Convivencia al que trata de sumar el máximo de apoyos posible. El lehendakari, Iñigo Urkullu, se ha involucrado de lleno en el plano público esta última semana. Empezó con un viaje a Madrid para verse con los verificadores, tras ser estos citados por la Audiencia Nacional; y terminó el viernes, cuando mostró su disposición a entablar conversaciones con ETA “para la paz y la convivencia”, una implicación pública arriesgada y cuestionada. Urkullu, un interlocutor en torno al que giraban las conversaciones con la izquierda abertzale ilegalizada, el PSOE en La Moncloa y Ajuria Enea y él en Sabin Etxea, trata de que el Gobierno español modifique parte de su posición para que el final de ETA sea más rápido. El portavoz, Josu Erkoreka, ya ha hablado de “tensiones internas” en ETA, algo que encontró una respuesta contundente de Sortu. Su presidente, Hasier Arraiz, acusó a Erkoreka de ser “muy irresponsable” al dar pábulo a “una gran mentira”. La presidenta de la Sala de lo Social del Tribunal Superior de Justicia del País Vasco y miembro de la Comisión para el Impulso del Proceso de Paz auspiciada por el Foro Social, Garbiñe Biurrun, recomendó cerrar cuanto antes “cabos sueltos” como el desarme, porque “la sociedad vasca quiere que ese final se materialice cuanto antes y porque las cosas se están enredando”. Más allá de estas declaraciones de la última semana, el Gobierno Vasco se topa con el mismo problema que su partido.

PNV

El partido que dirige Andoni Ortuzar no quiere que el final de ETA y todo lo que ello conlleva se alargue. A comienzos de enero, dos días después de la multitudinaria marcha de Bilbao que debía ser por los ‘Derechos humanos, acuerdo y paz’, Ortuzar dio un plazo de seis meses para que se registraran avances en tres ámbitos: el inicio del desarme de ETA de forma unilateral, giro de la política penitenciaria y la reanudación de los trabajos de la Ponencia de Paz en el Parlamento. Pero los movimientos del PNV como interlocutor tienen un margen y, por lo tanto, un problema claro: los pasos decisivos del proceso no corresponden a Sabin Etxea, sino a ETA, sus presos y los gobiernos de Madrid y París.

La izquierda abertzale-Sortu

Su giro principal llegó de la mano del debate interno ‘Zutik Euskal Herria!’ que presentó en febrero de 2010 y pocos meses antes llevó a la cárcel al exportavoz de Batasuna, Arnaldo Otegi, entre otros, condenado a seis años de prisión que cumplirá en apenas 12 meses. Un año después vio la luz el nuevo partido de la izquierda abertzale, Sortu, que en sus estatutos rechazó “sin ambages” la violencia, incluida la de “la organización ETA”. La legalización definitiva de la formación estuvo pendiente hasta 2012, pero el regreso de la izquierda abertzale llegó en las municipales y forales de 2011 en calidad de independientes de la lista que compusieron Eusko Alkartasuna y Alternatiba.

PSE

El partido que dirige el exlehendakari Patxi López inició la legislatura en la Ponencia de Paz del Parlamento Vasco junto al PNV y EH Bildu, pero en septiembre de 2013 decidió salir por la “involución” de estos últimos. Sin PP ni UPyD, el PNV intenta que se sume, pero el regreso no parece próximo. El PSE sí solicita, no obstante, el cambio de la política penitenciaria, siempre dentro de la legalidad. Los socialistas, que mantenían “relación” con los verificadores cuando formaban parte del Gobierno Vasco, se opusieron a la declaración judicial de estos en la Audiencia Nacional y alabaron el “reconocido prestigio” de los integrantes del grupo liderado por Ram Manikkalingam. El PSOE, por su parte, apenas da aire a esta cuestión, en la que acostumbra a no desmarcarse de la línea gubernamental.

PP

Los populares transitan entre dos posiciones: la habitual del trazo grueso del “todo es ETA” y que estos días tiene su aplicación práctica en la pugna por la moción de censura en Navarra; y la más novedosa, uno de cuyos exponentes es el portavoz del PP en el Parlamento Vasco y presidente del partido en Gipuzkoa, Borja Sémper: “Bildu no es ETA”. Las tensiones generadas en torno a algunas víctimas de ETA, así como la marcha de varios dirigentes del PP a formaciones como Vox, han agitado las aguas de un PP que en Euskadi trata de convertirse, en una nueva etapa de la política vasca, en un partido renovado. Es el objetivo del congreso extraordinario en el que este fin de semana Arantza Quiroga será ratificada. La posición del PP en Madrid, que parte de la sociedad tacha de “inmovilista”, puede pasar factura a la marca en la CAV.

Los verificadores

La Comisión Internacional de Verificación (CIV) ha sido la principal protagonista de las últimas semanas en Euskadi. El equipo liderado por Ram Manikkalingam, director de Dialogue Advisory Group y profesor universitario implicado en conflictos como el de Sri Lanka, Irlanda del Norte e Irak, anunció el sellado de parte del arsenal de ETA y que varias armas habían quedado “fuera de uso”. Dos días después de aquel 21 de febrero, el propio Manikkalingam, el sudafricano Ronnie Kasrils y el exdirector de la Oficina de Irlanda del Norte (NIO) del Reino Unido Chris Maccabe declararon ante el juez de la Audiencia Nacional Ismael Moreno. La Comisión, puesta en marcha en septiembre de 2011, reconoce que su credibilidad queda “dañada” tras el vídeo de la BBC aunque salieran políticamente “reforzados” de su última visita a Euskadi –cuentan con el apoyo de los tres principales partidos. Avisan, eso sí, de lo insólito de la situación española al no existir “precedente alguno, ni otro ejemplo, en ningún lugar del mundo” de que un gesto como el de ETA “no reciba el aval positivo de las instituciones formales”.

Los facilitadores

Al frente del Grupo Internacional de Contacto (GIC) está el abogado Brian Currin. El sudafricano comenzó a trabajar primero en la transición de la izquierda abertzale y apareció en Euskadi en 2009. A comienzos de 2010, Bruselas alumbra una declaración firmada por varios premios Nobel de la paz y arranca un camino internacional que se consolidaría con la puesta en marcha del Grupo Internacional de Contacto. Silvia Casale, Pierre Hazan, Raymond Kendall, Nuala O’Loan y Alberto Spektorowski acompañan a Currin en el conflicto vasco desde noviembre de 2010. El papel de Currin ha pasado a segundo plano, aunque esta semana han pasado por Euskadi y, antes de un acto previsto el sábado en Baiona, la jueza antiterrorista gala Laurence Le Vert, interrogó a tres de ellos en la comisaría de la capital labortana.

La comunidad internacional

Es el último de los tres grupos internacionales que entra en acción. También el de mayor renombre y el que no ha pasado por el juzgado. Como los otros dos, también cuestionado por parte de la sociedad vasca, sobre todo las posiciones más cercanas a PP, UPyD y, parte, PSE. Uno de los agentes extranjeros más implicado es el exjefe de Gabinete del expremier británico Tony Blair, Jonathan Powell, que la semana pasada también pasó por Euskadi. Fue uno de los firmantes de la declaración de Aiete junto a Pierre Joxe, Gro Harlem Brundtland, Bertie Ahern, Gerry Adams y Kofi Annan. Una adhesión que también han mostrado desde 2011 el propio Blair, George Mitchell, Jimmy Carter, dirigentes latinoamericanos como Piedad Córdoba, Belisario Betancour, Fernando Lugo, Ricardo Lagos. En los últimos días, el último en suscribir la Declaración de Aiete fue Lula da Silva, mientras que el estadounidense Bill Clinton apoyó el proceso de paz a través de Twitter.

Comparte tu punto de vista

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>