[rkward-cvs] SF.net SVN: rkward:[2711] trunk/rkward

kapatp at users.sourceforge.net kapatp at users.sourceforge.net
Thu Nov 26 11:02:38 UTC 2009


Revision: 2711
          http://rkward.svn.sourceforge.net/rkward/?rev=2711&view=rev
Author:   kapatp
Date:     2009-11-26 11:02:20 +0000 (Thu, 26 Nov 2009)

Log Message:
-----------
Provide a UI to select CRAN download mirror. This is still buggy, thgough.

Modified Paths:
--------------
    trunk/rkward/rkward/settings/rksettingsmoduler.cpp
    trunk/rkward/rkward/settings/rksettingsmoduler.h

Added Paths:
-----------
    trunk/rkward/CRAN_mirror_list.R

Added: trunk/rkward/CRAN_mirror_list.R
===================================================================
--- trunk/rkward/CRAN_mirror_list.R	                        (rev 0)
+++ trunk/rkward/CRAN_mirror_list.R	2009-11-26 11:02:20 UTC (rev 2711)
@@ -0,0 +1,31 @@
+#!/usr/bin/Rscript
+# Read the mirror list file from MIRROR_LIST
+# and create two lists suitable for QStringList.
+# These two strings are used in rkward/settings/rksettingsmoduler.cpp
+
+MIRROR_LIST <- '/usr/share/R/doc/CRAN_mirrors.csv'
+
+removeCityFromCountry <- function (x) {
+	sub (' *$', '', sub (paste ('(',x[2],')', sep=''), '', x[1], fixed=TRUE))
+}
+
+mirror.list <- read.csv(MIRROR_LIST, stringsAsFactors=FALSE)
+
+mirror.names <- paste('"', 
+	paste (apply(mirror.list[,c(1,3)], 1, 'removeCityFromCountry'), 
+		mirror.list$City, 
+		unlist(lapply(strsplit(mirror.list$Host, split=','), function(x) {x[1]})), 
+	sep=' - '), '"', sep='')
+
+cat (
+ 'Host details list:\n', # cran_mirrors_list
+ paste (c(' << "Ask everytime"', mirror.names), collapse=' << '), # Host details
+ '\nURL list:\n', # cran_url_list
+ paste (c(' << "@CRAN@"', paste('"', mirror.list$URL, '"', sep='')), collapse=' << '), # URL
+ '\n') 
+
+
+## If ever a separate .h file is used:
+# In fact could combine the two lists into one (i = i+2)
+#message (paste (c(' << "Ask everytime"', mirror.names), collapse='\n\t << ')) # Host details
+#message (paste (c(' << "@CRAN@"',paste('"', mirror.list$URL, '"', sep='')), collapse='\n\t << ')) # URL


Property changes on: trunk/rkward/CRAN_mirror_list.R
___________________________________________________________________
Added: svn:executable
   + *

Modified: trunk/rkward/rkward/settings/rksettingsmoduler.cpp
===================================================================
--- trunk/rkward/rkward/settings/rksettingsmoduler.cpp	2009-11-12 05:54:29 UTC (rev 2710)
+++ trunk/rkward/rkward/settings/rksettingsmoduler.cpp	2009-11-26 11:02:20 UTC (rev 2711)
@@ -320,6 +320,8 @@
 bool RKSettingsModuleRPackages::archive_packages;
 QStringList RKSettingsModuleRPackages::package_repositories;
 QString RKSettingsModuleRPackages::essential_packages = QString ("base\nmethods\nutils\ngrDevices\ngraphics\nrkward");
+int RKSettingsModuleRPackages::cran_mirror_index;
+QString RKSettingsModuleRPackages::cran_mirror_url;
 
 RKSettingsModuleRPackages::RKSettingsModuleRPackages (RKSettings *gui, QWidget *parent) : RKSettingsModule(gui, parent) {
 	RK_TRACE (SETTINGS);
@@ -334,6 +336,20 @@
 	connect (repository_selector, SIGNAL (getNewStrings (QStringList*)), this, SLOT (addRepository (QStringList*)));
 	main_vbox->addWidget (repository_selector);
 
+	/** lists created from CRAN_mirrors.csv using CRAN_mirror_list.R: 
+	 would ideally like to create this dynamically at build time 
+	 in a separate .h file  as a static variable **/
+	cran_mirror_list  << "Ask everytime" << "Argentina - Buenos Aires - Patan.com.ar" << "Argentina - Mendoza - CONICET" << "Australia - Melbourne - University of Melbourne" << "Austria - Wien - Wirtschaftsuniversitaet Wien" << "Belgium - Antwerp - K.U.Leuven Association" << "Brazil (PR) - Curitiba - Universidade Federal do Parana" << "Brazil (RJ) - Rio de Janeiro - Oswaldo Cruz Foundation" << "Brazil (SP 1) - Sao Paulo - University of Sao Paulo" << "Brazil (SP 2) - Piracicaba - University of Sao Paulo" << "Canada (BC) - Burnaby - Simon Fraser University" << "Canada (ON) - Toronto - University of Toronto" << "Canada (QC) - Montreal - iWeb" << "Chile - Santiago - Pontificia Universidad Catolica de Chile" << "China (Beijing) - Bejing - CTEX.ORG" << "China - Hong Kong - GeoExpat.Com" << "Colombia - Bogota - National University of Colombia" << "Croatia - Zagreb - Rudjer Boskovic Institute" << "Denmark - Aalborg - dotsrc.org" << "France - Toulouse - CICT" << "France - Lyon - Dept. of Biometry & Evol. Biology" << "France - Paris - Miroir-Francais" << "Germany - Berlin - Softliste.de" << "Germany - Goettingen - GWDG Goettingen" << "Germany - Hannover - Opensource Mirror Project" << "Germany - Muenchen - Rakanu.com" << "Germany - Wiesbaden - Yalwa GmbH" << "Iran - Mashhad - Ferdowsi University of Mashhad" << "Ireland - Dublin - HEAnet" << "Italy - Milano - Garr Mirror" << "Italy - Padua - University of Padua" << "Italy - Palermo - Universita degli Studi di Palermo" << "Japan - Aizu - University of Aizu" << "Japan - Hyogo - Hyogo University of Teacher Education" << "Japan - Tokyo - University of Tokyo" << "Japan - Tsukuba - University of Tsukuba" << "Korea - Seoul - Seoul National University" << "Mexico - Cuernavaca - Universidad Autonoma del Estado de Morelos" << "Netherlands (Amsterdam 2) - Amsterdam - Nedmirror" << "Netherlands - Utrecht - Utrecht University" << "New Zealand - Auckland - University of Auckland" << "Norway - Bergen - University of Bergen" << "Poland - Oswiecim - Piotrkosoft - Data Storage Center" << "Poland - Wroclaw - University of Wroclaw" << "Portugal - Porto - Universidade do Porto" << "Russia - Moscow - GIS-Lab.info" << "Singapore 1 - Singapore - National University of Singapore" << "Singapore 2 - Singapore - National University of Singapore" << "Slovakia - Bratislava - FYXM.net" << "South Africa - Grahamstown - Rhodes University" << "Spain - Madrid - Spanish National Research Network" << "Sweden - Uppsala - Swedish University Computer Network" << "Switzerland - Zuerich - ETH Zuerich" << "Taiwan - Taichung - Providence University" << "Taiwan (Taipeh) - Taipei - National Taiwan University" << "Thailand - Bangkok - Kapook.com" << "UK - Bristol - University of Bristol" << "USA (AZ) - Scottsdale - opensourceresources.org" << "USA (CA 1) - Berkeley - University of California" << "USA (CA 2) - Los Angeles - University of California" << "USA (IA) - Ames - Iowa State University" << "USA (MD) - Bethesda - National Cancer Institute" << "USA (MI) - Houghton - Michigan Technological University" << "USA (MO) - St. Louis - Washington University" << "USA (NC) - Chapel Hill - University of North Carolina" << "USA (OH) - Cleveland - Case Western Reserve University" << "USA (PA 1) - Pittsburgh - Statlib" << "USA (PA 2) - Pittsburgh - Hoobly Classifieds" << "USA (TN) - Knoxville - University of Tennessee" << "USA (TX 1) - San Antonio - Revolution Computing" << "USA (TX 2) - Dallas - CyberUse.com" << "USA (TX 3) - Houston - sixsigmaonline.org" << "USA (WA) - Seattle - Fred Hutchinson Cancer Research Center";
+	cran_url_list << "@CRAN@" << "http://cran.patan.com.ar/" << "http://mirror.cricyt.edu.ar/r/" << "http://cran.ms.unimelb.edu.au/" << "http://cran.at.r-project.org/" << "http://www.freestatistics.org/cran/" << "http://cran.br.r-project.org/" << "http://cran.fiocruz.br/" << "http://www.vps.fmvz.usp.br/CRAN/" << "http://brieger.esalq.usp.br/CRAN/" << "http://cran.stat.sfu.ca/" << "http://probability.ca/cran/" << "http://cran.parentinginformed.com/" << "http://dirichlet.mat.puc.cl/" << "http://ftp.ctex.org/mirrors/CRAN/" << "http://mirrors.geoexpat.com/cran/" << "http://www.laqee.unal.edu.co/CRAN/" << "http://imago.irb.hr/r/" << "http://cran.dk.r-project.org/" << "http://cran.fr.r-project.org/" << "http://cran.univ-lyon1.fr/" << "http://cran.miroir-francais.fr/" << "http://mirrors.softliste.de/cran/" << "http://ftp5.gwdg.de/pub/misc/cran/" << "http://cran.mirroring.de" << "http://cran.rakanu.com/" << "http://ftp.yalwa.org/cran/" << "http://cran.um.ac.ir/" << "http://ftp.heanet.ie/mirrors/cran.r-project.org/" << "http://rm.mirror.garr.it/mirrors/CRAN/" << "http://cran.stat.unipd.it/" << "http://dssm.unipa.it/CRAN/" << "ftp://ftp.u-aizu.ac.jp/pub/lang/R/CRAN" << "http://essrc.hyogo-u.ac.jp/cran/" << "ftp://ftp.ecc.u-tokyo.ac.jp/CRAN/" << "http://cran.md.tsukuba.ac.jp/" << "http://bibs.snu.ac.kr/R/" << "http://www2.uaem.mx/r-mirror/" << "http://cran.nedmirror.nl/" << "http://cran-mirror.cs.uu.nl/" << "http://cran.stat.auckland.ac.nz/" << "http://cran.ii.uib.no/" << "http://piotrkosoft.net/pub/mirrors/CRAN/" << "http://r.meteo.uni.wroc.pl/" << "http://cran.pt.r-project.org/" << "http://cran.gis-lab.info/" << "http://cran.bic.nus.edu.sg/" << "http://cran.stat.nus.edu.sg/" << "http://cran.fyxm.net/" << "http://cran.za.r-project.org/" << "http://cran.es.r-project.org/" << "http://ftp.sunet.se/pub/lang/CRAN/" << "http://cran.ch.r-project.org/" << "http://cran.cs.pu.edu.tw/" << "http://cran.csie.ntu.edu.tw/" << "http://mirror.kapook.com/cran/" << "http://cran.uk.r-project.org/" << "http://cran.opensourceresources.org/" << "http://cran.cnr.Berkeley.edu" << "http://cran.stat.ucla.edu/" << "http://streaming.stat.iastate.edu/CRAN/" << "http://watson.nci.nih.gov/cran_mirror/" << "http://cran.mtu.edu/" << "http://cran.wustl.edu/" << "http://www.ibiblio.org/pub/languages/R/CRAN/" << "http://cran.case.edu/" << "http://lib.stat.cmu.edu/R/CRAN/" << "http://cran.mirrors.hoobly.com" << "http://mira.sunsite.utk.edu/CRAN/" << "http://www.revolution-computing.com/cran/" << "http://www.cyberuse.com/cran/" << "http://cran.sixsigmaonline.org/" << "http://cran.fhcrc.org/";
+	main_vbox->addWidget (new QLabel (i18n ("CRAN download mirror:"), this));
+	cran_mirrors = new QComboBox (this);
+	cran_mirrors->setEditable (false);
+	for (int i = 0; i < cran_mirror_list.size(); ++i)
+		cran_mirrors->insertItem (i, i18n (cran_mirror_list.at(i).toLocal8Bit().constData()));
+	cran_mirrors->setCurrentIndex (cran_mirror_index);
+	connect (cran_mirrors, SIGNAL (activated (int)), this, SLOT (boxChanged (int)));
+	main_vbox->addWidget (cran_mirrors);
+
 	archive_packages_box = new QCheckBox (i18n ("Archive downloaded packages"), this);
 	archive_packages_box->setChecked (archive_packages);
 	connect (archive_packages_box, SIGNAL (stateChanged (int)), this, SLOT (boxChanged (int)));
@@ -400,8 +416,8 @@
 		if (it != package_repositories.begin ()) {
 			command.append (", ");
 		}
-		if (*it == "@CRAN@") command.append ("CRAN="); 
-		command.append ("\"" + *it + "\"");
+		if (*it == "@CRAN@") command.append ("CRAN=\"" + cran_mirror_url + "\""); 
+		else command.append ("\"" + *it + "\"");
 	}
 	list.append (command + "))\n");
 
@@ -427,6 +443,9 @@
 void RKSettingsModuleRPackages::applyChanges () {
 	RK_TRACE (SETTINGS);
 
+	cran_mirror_index = cran_mirrors->currentIndex ();
+	cran_mirror_url = cran_url_list.at(cran_mirror_index).toLocal8Bit().constData();
+
 	archive_packages = archive_packages_box->isChecked ();
 	package_repositories = repository_selector->getValues ();
 	liblocs = libloc_selector->getValues ();
@@ -448,6 +467,7 @@
 	RK_TRACE (SETTINGS);
 
 	KConfigGroup cg = config->group ("R Settings");
+	cg.writeEntry ("CRAN mirror index", cran_mirror_index);
 	cg.writeEntry ("archive packages", archive_packages);
 	cg.writeEntry ("Repositories", package_repositories);
 	cg.writeEntry ("LibraryLocations", liblocs);
@@ -457,6 +477,8 @@
 	RK_TRACE (SETTINGS);
 
 	KConfigGroup cg = config->group ("R Settings");
+#warning BUG: loading the mirror index does not set options(repos) for the first run
+	cran_mirror_index = cg.readEntry ("CRAN mirror index", 0);
 	archive_packages = cg.readEntry ("archive packages", false);
 	package_repositories = cg.readEntry ("Repositories", QStringList ("@CRAN@"));
 

Modified: trunk/rkward/rkward/settings/rksettingsmoduler.h
===================================================================
--- trunk/rkward/rkward/settings/rksettingsmoduler.h	2009-11-12 05:54:29 UTC (rev 2710)
+++ trunk/rkward/rkward/settings/rksettingsmoduler.h	2009-11-26 11:02:20 UTC (rev 2711)
@@ -135,7 +135,12 @@
 	MultiStringSelector *libloc_selector;
 	QCheckBox *archive_packages_box;
 	MultiStringSelector *repository_selector;
+	QComboBox *cran_mirrors;
+	QStringList cran_mirror_list;
+	QStringList cran_url_list;
 
+	static int cran_mirror_index;
+	static QString cran_mirror_url;
 	static QStringList liblocs;
 	static bool archive_packages;
 	static QStringList package_repositories;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the rkward-tracker mailing list