[pkg-bioc] Re: My first steps with cran2deb.pl

Frederic Lehobey Frederic.Lehobey at free.fr
Wed Dec 28 18:33:41 UTC 2005


Hi,

On Tue, Dec 27, 2005 at 11:31:01AM -0600, Dirk Eddelbuettel wrote:
> On 27 December 2005 at 17:41, Frederic Lehobey wrote:
> | I have successfully completed a complete run of it on the i386, sparc
> | and powerpc architectures (running sid).  kfreebsd-i386 is in progress
> | (on a slow machine).
> 
> That's pretty impressive. May have been fine to stop after one arch and
> settle the questions, but the more the merrier!

Actually they all ran in parallel so it was not that a burden.

> | I have updated http://wiki.debian.org/DebianCRAN accordingly (work
> | still in progress at the time of writing).

Now updated.

> | 1/ I have noticed some of the packages in CRAN that are automagically
> | built by the script are actually already in the official Debian
> | archive.  What is the goal for them (ultimately)?  Having them built
> | by the script or being blacklisted from it one way or another.  In
> | other words, is it interesting to keep and track their status with
> | respect to automatic build?
> 
> My perspective always was that we should _not_ autobuild what already is in
> Debian.  Two main reasons: a) Some of these packages are/were harder in terms
> of Depends and configuration (the snow/mpi/pvm/sprng complex is an examples);

OK.

> I had meant to give the script a spin over the holdidays, but haven't. Last
> time I updated it, it still contained a blacklist of packages to skip
> "because they are already in Debian".  I still think that is a good idea. 
> Comments?

So I believe the following section in the script has to be updated:

## packages which are already in Debian, and which fails with the current scrip\
t.
my @alreadyindebianCRAN = (
  "its",       ## in Debian as r-cran-its
  "rsprng",    ##              r-cran-rsprng
);

> One side-effect of this is that we need to fix the Wiki page where Steffen
> commented on build difficulties for a packages already in Debian. This proves
> a) above, but as per this discussion, shouldn't really have been tried
> anyway.  Unless folks disagree --- let me know your thoughts, and / or
> volunteer to edit the page :)

I will update the wiki page along my own progress.

> So to summarize: One table / hash / array we need to keep up to date in the
> script is the list of packages to skip.

Agreed.

> | 2/ How am I supposed to deal with dependencies between newly built
> | CRAN packages?  More precisely, if the necessary dependencies stated
> | on http://wiki.debian.org/DebianCRAN are available in the build
> | environment (from the Debian archive), then a huge list of CRAN
> | packages can be built.  However, some of the failing ones (at first
> | pass) simply need that some of the newly built packages be added to
> | the build environment.  What it the proper way to do it?  Install them
> | `by hand' with dpkg -i?
> 
> Pretty much, yes.  Unless you use an autobuild environment like pbuilder (to
> which we need to ultimately migrate) which installs them for you --- provided
> you declared the Build-Depends.

I understand how to run the script alone in a chroot or how to run
pbuilder but I do not see (yet) how to run it from inside pbuilder and
take advantage of this automatic installation.

> So the second table to keep up to date is the mapping between CRAN package
> Depends: and Debian Depends --- where it can't be "guessed" via the
> r-cran-$CRANNAME rule.

So it is the `%buildDeps' variable in the script.  I will try to first
understand it and see if things have to be fixed or updated (I will
first update the wiki page).

> | 3/ Some failures are architecture dependent (mostly endianness
> | problems for powerpc and sparc according to error messages).  How to
> | deal with that?  Setup some exclusion mechanism similar to
> | `cannotbuildamd64'?  (Then, there will be as many variables as
> | architectures.)
> 
> I'd say postpone / take offline.  That is really an upstream issue for these
> packages.  Finding this is a a HUGE benefit and may eventually win us friends
> in the R world. But so far we simply cannot assume that 600+ packages had
> ever been built on all the arches we have at our disposal.  I'd assume
> powerpc (Mac OS X), i386 and amd64 and nothing else.

Most of the big-endian failures seem to be related to gtools.  I
believe in the benefits of porting, and moreover, it is fun.   :-)
I am very impressed by the quality of kfreebsd-i386.

> | 5/ I have noticed the following warning when installing the built
> | packages (and some of the packages already in sid):
> | 
> | Ignoring deprecated option --htmllists called from postinst or postrm script.
> | 
> | I have not yet searched its origin.
> 
> See the changelog for r-base-core, and a couple of r-cran-* packages. The
> option used to be supported upstream, but that stopped in R 2.2.0. I patch
> the R upstream package to emit that string so that we get reminded to fix all
> offending packages.  The postinst and postrm should no longer call R to
> update the html index; this is now done by R when help.start() is called.
> Hope this explains it -- cran2deb.pl needs updated postinst/postrm templates
> too.

Thanks for the explanation.

Just for the record, I join my (currently small) diff with the script
in cvs.

Best regards,
Frederic

-------------- next part --------------
Index: cran2deb.pl
===================================================================
RCS file: /cvsroot/pkg-bioc/tools/cran2deb.pl,v
retrieving revision 1.19
diff -u -r1.19 cran2deb.pl
--- cran2deb.pl	14 Jun 2005 10:08:26 -0000	1.19
+++ cran2deb.pl	28 Dec 2005 18:30:18 -0000
@@ -174,51 +174,65 @@
 
 ## NB case matters here, need to lowercase before comparison
 my @cannotbuild = (
-                   #"LDheatmap",  ## depends on genetics which cannot be build
-		   "fextremes-201.10060", ## rebuilt binary files differ
-                   "mimR",
-                   "R.matlab",   ## problems defining the dependency... it complains about the '.' in the name
-		   "gnomeGUI",   ## cannot create regular file `/usr/lib/R/bin/exec/Rgnome': Permission denied
-		   "BRugs",      ## currently only works under Windows.\nIt is supposed to work under Linux in future releases.
-		   "rcdd",	 ## requires cddlib not distributed with Debian
-		   "RWinEdt",    ## can only be installed under Windows
-                   "RmSQL", "ROracle",
-                   "RSQLite",    ## has some Windows libs that trip lintian up
-                   "RScaLAPACK", ## need to sort -dev packages out
-                   "RNetCDF",    ## doesn't find netcdf in /usr
-                   "SciViews",   ## depends on tcltk but is not on CRAN
-                   "seao",       ## fails with Lintian warning: W: seao source: maintainer-upload-has-incorrect-version-number 0.2.1-0.r2d.1; W: seao source: binary-nmu-debian-revision-in-source 0.2.1-0.r2d.1
-                   "seao.gui",   ## depends on seao
-		   "spdep",      ## build error upon start
-		   "SoPhy",	 ## depends on RandomFields which I could not spot (steffen)
-                   "survey",     ## fails with: Error in open.connection(con, "rb") : unable to open connection
-                   "udunits",    ## dep=udunits not in Debian
-                   "uroot",      ## depends on tcltk but is not on CRAN
-                   "IDPmisc",    ## fails with: Error in loadNamespace(name) : There is no package called 'IDPmisc'
-                   ## "annaffy", ## needs to go to contrib because of KEGG
-                   ## the next list of packages is mentioned in CRAN's Description subdir
-                   ## but the tar.gz is not on CRAN. Dates for last test are behind package name
-                   "gmp",        ## 2005-02-21
-                   "boa",        ## 2005-02-21
-		   #"webbioc",    ## needs annaffy which in turn needs metadata
-		   "stepNorm", ## cannot represent change to DESCRIPTION: binary file contents changed
-		   #"ontoTools", ## needs Metadata
-		   #"OLINgui",
-		   #"edd", 	## needs golubEsets
-		   "GeneTraffic", ## SSOAP
-		   #"geneplotter", ## needs metadata
-		   "makePlatformDesign",
-		   "aCGH",      ## build error - need to investigate
-		   "prada",	## ** preparing package for lazy loading Error in loadNamespace(name) : there is no package called 'prada'
-		   "rfcdmin",   ## mysterious build error
-		   "RdbiPgSQL", ## needs environment variable
-		   "iSPlot",	## dependency to RGtk
-	       	   "twilight",	## cannot represent change to README: binary file contents changed
-		   "KEGGSOAP",	## SSOAP (>= 0.2), RCurl (>= 0.4)
-		   "gpls",	## cannot represent change to NAMESPACE: binary file contents changed
-		   		## Error in parse(file, n, text, prompt) : syntax error on line 10
-		   "ratCHRLOC", ## cannot open DESCRIPTION ...
-		   
+   ## List of packages that fail to build on 2005-12-28
+   "baymvb", ## C++ error in la.cc:201 ('accumulate')
+   "BRugs", ## currently only works under Windows...
+   "coin", ## Needs r-cran-mvnorm.
+   "debug", ## Needs r-cran-mvbutils and tcltk.
+   "lme4", ## no existing definition for function 'coef'
+   "mimR", ## can only be installed/used under Windows.
+   "party", ## Needs modeltools and coin.
+   "pbatR", ## package 'tcltk' could not be loaded
+   "rcdd", ## cddgmp not found or built with C++
+   "rcom", ## can only be installed/used under Windows.
+   "rJava", ## Seems to fail with free Java.
+   "Rlsf", ## Please set the LSF_ENVDIR variable...
+   "RNetCDF", ## Needs udunits library.
+   "RODBC", ## configure: error: cannot find sources (RODBC)
+   "ROracle", ## set the shell variable ORACLE_HOME...
+   "RScaLAPACK", ## Needs libmpich.a (which -dev???).
+   "RWinEdt", ## can only be installed/used under Windows.
+   "SciViews", ## Needs R2HTML and tcltk (2nd pass).
+   "seqinr", ## strip: Unable to recognise the format...
+   "SoPhy", ## Needs r-cran-randomfields and win_linux_aux.cc.
+   "spdep", ## Needs r-cran-maptools and SparseM.
+   "udunits", ## Needs udunits.
+   "uroot", ## Needs tcltk.
+   #"gnomeGUI",   ## cannot create regular file `/usr/lib/R/bin/exec/Rgnome': Permission denied (only when building as non root)
+   ## List of packages that build once their dependencies are
+   ## available in the build environment.
+   ## To be installed, for example, by something like:
+   ## dpkg -i builds/r-cran-...
+   #"BACCO", ## Needs r-cran-adapt.
+   #"BMA", ## Needs r-cran-leaps.
+   #"boolean", ## Needs r-cran-rgenoud.
+   #"cyclones", ## Needs r-cran-ncdf.
+   #"deal", ## Needs r-cran-dynamicgraph.
+   #"distr", ## Needs r-cran-setrng.
+   #"distrEx", ## Needs r-cran-distr (2).
+   #"distrSim",## Needs r-cran-distr (2).
+   #"distrTEst", ## Needs r-cran-distr and r-cran-distrsim (3).
+   #"dse", ## Needs r-cran-setrng.
+   #"LDheatmap", ## Needs r-cran-genetics.
+   #"ltm", ## Needs r-cran-msm.
+   #"maptools", ## Needs r-cran-sp.
+   #"MarkedPointProcess", ## Needs r-cran-randomfields.
+   #"orientlib", ## Needs r-cran-scatterplot3d.
+   #"RandVar", ## Needs r-cran-distr and r-cran-distrex (3).
+   #"rgdal", ## Needs r-cran-pixmap.
+   #"R.matlab", ## Needs r-cran-r.oo.
+   #"Rpad", ## Needs r-cran-r2html.
+   #"R.utils", ## Needs r-cran-r.oo.
+   #"SAGx", ## Needs r-cran-multtest and r-cran-sma.
+   #"varSelRF", ## Needs r-cran-randomforest.
+   ## List of packages failing to build on sparc and powerpc architectures.
+   #"gap", ## Needs r-cran-genetics.
+   #"genetics", ## gtools.so: ELF file data encoding not big-endian
+   #"gmodels", ## gtools.so: ELF file data encoding not big-endian
+   #"gplots", ##gtools.so: ELF file data encoding not big-endian
+   #"LDheatmap", ## Needs r-cran-genetics.
+   #"ltm", ## gtools.so:ELF file data encoding not big-endian
+   #"odesolve", ## strip: Unable to recognise the format of...
 );
 
 my @cannotbuildamd64 = ("rpvm",        ## fails with: /usr/bin/ld: /usr/lib/gcc-lib/x86_64-linux/3.3.5/../../../../lib64/libgpvm3.a(pvmgsu_core.o): relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC


More information about the pkg-bioc-devel mailing list