Hi Dirk, No, I don't have an Itanium around, unfortunately. Without that, it's tough to say. Probably something to do with the GType arithmetic. On a 64 bit system, I *think* a GType is a 64 bit integer, whereas in R we only have 52 bits from double. On most 64 bit architectures, it seems that the type codes fit in 52 bits, but maybe not on Itanium. This is just a guess though.
Luke is working on getting 64 bit ints into R, so this may not be a problem for much longer. Otherwise, the simplest fix would be to represent the codes as strings. Thanks, Michael On Fri, Dec 2, 2011 at 9:28 AM, Dirk Eddelbuettel <e...@debian.org> wrote: > > On 2 December 2011 at 17:33, Jakub Wilk wrote: > | Source: rgtk2 > | Version: 2.20.19-1 > | Severity: serious > | Justification: fails to build from source > | User: debian-i...@lists.debian.org > | Usertags: ia64 > > This is a pretty demanding package. > > I can see from the detailed logs at > > https://buildd.debian.org/status/logs.php?pkg=rgtk2 > > that it has not built on ia64 since release 2.12.18-1 in Feb 2010. It may > be > best to block it on ia64. > > Any idea, Mike? I don't presume you have an itanium box around, do you? > > Dirk > > | > | rgtk2 FTBFS on ia64: > | | installing to > /build/buildd-rgtk2_2.20.19-1-ia64-_0vVAw/rgtk2-2.20.19/debian/r-cran-rgtk2/usr/lib/R/site-library/RGtk2/libs > | | ** R > | | ** demo > | | ** inst > | | ** preparing package for lazy loading > | | ** help > | | *** installing help indices > | | ** building package indices ... > | | ** testing if installed package can be loaded > | | R session is headless; GTK+ not initialized. > | | > | | *** caught segfault *** > | | address 0x1000050, cause 'memory not mapped' > | | > | | Traceback: > | | 1: .Call("R_getGTypeAncestors", type, PACKAGE = "RGtk2") > | | 2: gTypeGetAncestors(parent) > | | 3: gClass("RGtkBuilder", "GtkBuilder", GtkBuilder = > list(get_type_from_name = function(self, name) as.GType(name))) > | | 4: .initClasses() > | | 5: fun(libname, pkgname) > | | 6: doTryCatch(return(expr), name, parentenv, handler) > | | 7: tryCatchOne(expr, names, parentenv, handlers[[1L]]) > | | 8: tryCatchList(expr, classes, parentenv, handlers) > | | 9: tryCatch(fun(libname, pkgname), error = identity) > | | 10: runHook(".onLoad", env, package.lib, package) > | | 11: loadNamespace(package, c(which.lib.loc, lib.loc)) > | | 12: doTryCatch(return(expr), name, parentenv, handler) > | | 13: tryCatchOne(expr, names, parentenv, handlers[[1L]]) > | | 14: tryCatchList(expr, classes, parentenv, handlers) > | | 15: tryCatch(expr, error = function(e) { call <- conditionCall(e) > if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) > call <- sys.call(-4L) dcall <- deparse(call)[1L] > prefix <- paste("Error in", dcall, ": ") LONG <- 75L msg <- > conditionMessage(e) sm <- strsplit(msg, "\n")[[1L]] w <- 14L > + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) > w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], > type = "b") if (w > LONG) prefix <- paste(prefix, > "\n ", sep = "") } else prefix <- "Error : " msg <- paste(prefix, > conditionMessage(e), "\n", sep = "") .Internal(seterrmessage(msg[1L])) > if (!silent && identical(getOption("show.error.messages"), TRUE)) > { cat(msg, file = stderr()) > .Internal(printDeferredWarnings()) } invisible(structure(msg, class > = "try-error", condition = e))}) > | | 16: try({ ns <- loadNamespace(package, c(which.lib.loc, lib.loc)) > dataPath <- file.path(which.lib.loc, package, "data") env <- > attachNamespace(ns, pos = pos, dataPath = dataPath, deps)}) > | | 17: library(pkg_name, lib.loc = lib, character.only = TRUE, > logical.return = TRUE) > | | 18: withCallingHandlers(expr, packageStartupMessage = function(c) > invokeRestart("muffleMessage")) > | | 19: suppressPackageStartupMessages(library(pkg_name, lib.loc = lib, > character.only = TRUE, logical.return = TRUE)) > | | 20: doTryCatch(return(expr), name, parentenv, handler) > | | 21: tryCatchOne(expr, names, parentenv, handlers[[1L]]) > | | 22: tryCatchList(expr, classes, parentenv, handlers) > | | 23: tryCatch(expr, error = function(e) { call <- conditionCall(e) > if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) > call <- sys.call(-4L) dcall <- deparse(call)[1L] > prefix <- paste("Error in", dcall, ": ") LONG <- 75L msg <- > conditionMessage(e) sm <- strsplit(msg, "\n")[[1L]] w <- 14L > + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) > w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], > type = "b") if (w > LONG) prefix <- paste(prefix, > "\n ", sep = "") } else prefix <- "Error : " msg <- paste(prefix, > conditionMessage(e), "\n", sep = "") .Internal(seterrmessage(msg[1L])) > if (!silent && identical(getOption("show.error.messages"), TRUE)) > { cat(msg, file = stderr()) > .Internal(printDeferredWarnings()) } invisible(structure(msg, class > = "try-error", condition = e))}) > | | 24: try(suppressPackageStartupMessages(library(pkg_name, lib.loc = > lib, character.only = TRUE, logical.return = TRUE))) > | | 25: tools:::.test_load_package("RGtk2", > "/build/buildd-rgtk2_2.20.19-1-ia64-_0vVAw/rgtk2-2.20.19/debian/r-cran-rgtk2/usr/lib/R/site-library") > | | aborting ... > | | Segmentation fault > | | ERROR: loading failed > | > | Full build log: > | > https://buildd.debian.org/status/fetch.php?pkg=rgtk2&arch=ia64&ver=2.20.19-1&stamp=1322841271 > | > | -- > | Jakub Wilk > | > | > > -- > "Outside of a dog, a book is a man's best friend. Inside of a dog, it is > too > dark to read." -- Groucho Marx >