/** * 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'); Entre los presos y el desarmeSesiónDeControl.com
Arrow

Entre los presos y el desarme


0
Jurdan Arretxe

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


Escrito el 4 de junio de 2013 a las 11:39 | Clasificado en Euskadi

Lokarri y Bake Bidean presentan doce recomendaciones para tratar de reimpulsar el proceso de paz. La cuestión penitenciaria y la entrega de armas centran el documento que casi ningún partido comparte al 100%, pero en el que aprecian avances

Paul Rios, coordinador de Lokarri, uno de los organizadores del Foro Social para impulsar la paz. (Flickr: Lokarri)
Paul Rios, coordinador de Lokarri, uno de los organizadores del Foro Social para impulsar la paz. (Flickr: Lokarri)

Lejos de la rapidez con la que se sucedieron los acontecimientos en octubre de 2011, agentes sociales y políticos vascos tratan de reactivar un proceso cuyo objetivo principal es el desarme y posterior disolución de ETA, y la resolución de los aspectos más o menos técnicos que conlleva. Una cuestión que no es fácil, más cuando tras el anuncio de cese definitivo de la violencia de hace año y medio, la organización armada ha dejado de suponer un problema de primer orden para un Gobierno español centrado en la agenda económica.

Aun así, el Ejecutivo de Mariano Rajoy ha llevado a cabo estos meses dos movimientos que al final le han salido rana y se ha topado con hasta tres informes —contradictorios entre sí— sobre la situación de la organización armada, desde el aviso de que está lista para atentar hasta el certificado del silencio de las armas. CNI, Guardia Civil y Policía discrepan hasta el punto de que el propio Rajoy llamó a filas a sus responsables, según relató El País.

La Moncloa tampoco ha conseguido sacar provecho del programa de reinserción que el ministro del Interior, Jorge Fernández Díaz, impulsó como sustitución de una ‘vía Nanclares’ que sí había logrado atraer a algunos reclusos. El plan del ministro, presentado en abril de 2012, solo consiguió soliviantar a algunas asociaciones de víctimas de ETA y al ala más dura del PP. Un efecto similar al que provocó la decisión de la Audiencia Nacional, con el visto bueno de Interior pero reticencias de Justicia, de excarcelar por enfermedad grave a Josu Uribetxebarria.

Porque, más allá de la decena de reclusos que padecen enfermedades graves, los que ya han cumplido las dos terceras partes de sus condenas y los 70 a los que siguen en prisión por aplicación de una ‘doctrina Parot’ pendiente de Estrasburgo, la de las cárceles puede ser una de las llaves para que el proceso de desarme y disolución de ETA continúe. Una flexibilización de la política penitenciaria, sostiene el PP, que no va a ocurrir hasta que ETA no desaparezca. Sin avances por un lado ni por otro, la situación es, por lo tanto, la misma que a finales de 2011.

¿Qué hacer? En una fórmula que podría recordar a la Declaración de Aiete que valió a ETA para anunciar su cese definitivo de la violencia, Lokarri y Bake Bidean, junto a otras organizaciones y relatores internacionales, presentaron la semana pasada en el mismo palacio donostiarra —sin la pompa de 2011— una docena de recomendaciones que, entre cuatro aspectos clave, centran las cuestiones del desarme y de los presos.

Las recomendaciones

Para estos sugiere una “solución” que “siendo integral”, se debe desarrollar “de forma individualizada, escalonada y en tiempo prudencial”. Hasta ahora, el colectivo oficial de reclusos (el EPPK, en sus siglas en euskera) ha rechazado de plano salidas personalizadas y ha llegado a reclamar una “amnistía para los presos políticos”. Una posición que les ha llevado a enfrentarse a los reos que sí se fueron desmarcando de ETA y accediendo a la ‘vía Nanclares’.

El EPPK, cuyos portavoces acogieron en marzo “con gran interés” las jornadas de ponencias que celebró el Foro Social en Pamplona y Bilbao, anunció el pasado sábado mediante sus interlocutores que abría un periodo de reflexión sobre las recomendaciones. Estas piden a los reos también que muestren “su compromiso con el nuevo escenario de paz y renuncien a vías violentas. Además, en su caso, debe haber por su parte un reconocimiento del daño causado como consecuencia de su actuación”.

Pero la materia penitenciaria no acaba ahí. Tras reclamar “facilitar la relación y el intercambio de opiniones entre las personas presas, la ciudadanía vasca e instituciones competentes”, las recomendaciones que surgen de las ponencias de expertos internacionales y unas 400 aportaciones ciudadanas aconsejan “modificar aspectos de la política penitenciaria que contravienen los derechos humanos o que van contra el tratamiento humanitario de las personas presas”.

Tampoco es nuevo en el panorama vasco. Mientras EH Bildu pide “derogar las medidas de excepción”, el PNV —también el lehendakari, Iñigo Urkullu, en sus reuniones con Rajoy— solicita una aplicación “no restrictiva” de la legislación y el PSE reclama “una orientación consensuada, dinámica y flexible de la política penitenciaria, basada en la reinserción, en el respeto a la legalidad y en los principios humanitarios que impregnan nuestra legislación”.

Los socialistas, sobre todo desde que Patxi López dejó de ser lehendakari, se acercan a esta tesis que ha llevado a decenas de miles de manifestantes a la calle, mientras que el PP —lo repite su portavoz parlamentario, Borja Sémper— sigue con que el de los reclusos “no es un problema de la sociedad vasca”, sino de ETA y la izquierda abertzale.

Las recomendaciones elaboradas por Lokarri y Bake Bidean junto a cuatro relatores internacionales también abordan el desarme, una de las principales bazas que se guarda la organización armada. “Con el objetivo de garantizar la seguridad a toda la ciudadanía, y como parte esencial del proceso de paz, recomendamos el diseño de un proceso controlado, ordenado y consensuado que culmine con el desmantelamiento de armas y estructuras militares de ETA”, se recoge en el segundo punto del documento.

¿Cómo? A entender de las recomendaciones, “este proceso, a desarrollar en un tiempo prudencial, cuente desde sus inicios con la intervención y colaboración de organismos facilitadores independientes que den seguridad de lo realizado tanto a los Estados y sus instituciones como a la sociedad en general”. Sin contar el hipotético papel de España respecto a los tres dirigentes de ETA que estaban en Oslo, poco o nada ha hecho el Gobierno de Rajoy, salvo esperar. Tanto es así que el ministro Fernández Díaz sugirió a ETA que dejara “en una campa del País Vasco unas cuantas armas. Sería una forma de empezar a visualizar el final”, algo que para Maite Aristegi solo hicieron Astérix y Obélix.

A diferencia de la Declaración de Aiete, en la que Kofi Annan, Bertie Ahern, Gro Harlem Brundtland, Gerry Adams y Pierre Joxe instaron a los gobiernos español y francés a sentarse con ETA para resolver cuestiones como esta, no hay una interpelación directa a los ejecutivos de Rajoy y Hollande. Lo reconocía el lunes el coordinador de Lokarri, Paul Rios: “Podríamos abordar todos los retos menos uno, precisamente el de los presos, porque la llave de las cárceles la tiene el Gobierno español”.

En esa línea, ayer mismo, el presidente del PNV, Andoni Ortuzar, lanzó el guante a ETA: que se desarme en Euskadi. “Frente al inmovilismo, el PNV propone la solución vasca. Como ciudadano vasco no entiendo que ETA prefiera entregar sus armas a la Guardia Civil o al Ejército español, antes que a las instituciones vascas, a una representación de este país. Lo que ETA tenga que hacer, lo tiene que hacer ante las mujeres y los hombres de Euskadi. Nos lo debe”, aseguró Ortuzar.

Más allá de estos dos ejes principales, el Foro Social —cuestionado por la Fundación para la Libertad— también plantea abordar la memoria, trabajar la convivencia, “un proceso amplio de verdad, justicia y reconciliación de carácter integral y que abarque al conjunto de la sociedad”, “facilitar diversas maneras de narrar y recordar, sin negar lo acontecido, fomentando la autocrítica en todos los sectores sociales y políticos y los ejercicios honestos de reconocimiento de los graves errores cometidos” o “redimensionar el número y la función de las fuerzas y cuerpos de seguridad del Estado para adaptarlos a la realidad”.

Todas estas recomendaciones deben guardar “respeto a los derechos de verdad, justicia y reparación que asisten a todas las víctimas” y advierten de que “no puede haber lugar para la impunidad. Además de no tener encaje en el ordenamiento jurídico internacional, iría en contra de los principios de verdad, justicia y reparación y de los derechos de las víctimas”.

Las reacciones

A la espera de la valoraciones del EPPK y de ETA, han sido los partidos políticos los primeros en pronunciarse. Ninguno, salvo Eusko Alkartasuna, ha mostrado una adhesión plena a la recomendaciones. Tampoco la izquierda abertzale, a quien representantes del PP y del PSE han atribuído la autoría de estas recomendaciones “de parte”. Los portavoces de Sortu Pernando Barrena y Amaia Izko señalaron que la formación “no comparte al 100%” las conclusiones —”válidas en su conjunto, no valoradas por separado”—, si bien mostraron su disposición a participar en un hipotético diálogo “con una actitud constructiva y con una posición propia”.

Tampoco el Gobierno Vasco (ni el PNV) hizo una defensa cerrada del texto. El secretario general de Paz y Convivencia, Jonan Fernandez, vio las recomendaciones “globalmente positivas”, si bien se podían haber “redactado de otra manera”, impresión que refrendó el lehendakari, Iñigo Urkullu, hace una semana.

Más contundente en la crítica fue el socialista Rodolfo Ares, que tachó las conclusiones de “absolutamente insuficientes” por no pedir a ETA que se disuelva (“lo más importante”), aunque al mismo tiempo sí reconoció que las recomendaciones traían “alguna novedad” habida cuenta de “lo que ha sido la posición tradicional de la denominada izquierda abertzale”. Un aspecto que ni siquiera destacó el PP, para cuya parlamentaria Laura Garrido “el problema” de los reclusos sigue siendo una cuestión de la izquierda abertzale y de ETA.

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>