[R-pkg-devel] corrupted NAMESPACE file

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Sat Jan 21 14:28:29 CET 2023


On 20/01/2023 9:47 p.m., Spencer Graves wrote:
> 
> 
> On 1/20/23 7:32 PM, Duncan Murdoch wrote:
>> On 20/01/2023 8:16 p.m., Spencer Graves wrote:
>>> Hello, All:
>>>
>>>
>>>        My attempts to fix this problem exposed what seems to be a
>>> completely
>>> unrelated problem:  All five GitHub Actions end now with:
>>>
>>>
>>> Error: package or namespace load failed for ‘fda’ in namespaceExport(ns,
>>> exports):
>>>     undefined exports: refinery
>>>
>>>
>>>        The package includes ~man/refinery.Rd, ~data/refinery.rda, and
>>> NAMESPACE includes "export( ... refinery, ...)".
>>
>>
>> I think if you declare something as data by putting it in the data
>> directory and using LazyData:true, you shouldn't also declare it as an
>> export in the NAMESPACE file.
> 
> 
> 	  I got the same negative results after deleting "LazyData: true" from
> DESCRIPTION.  (That's what I would expect, because there are 17 other
> *.rda files in the data subdirectory that are are mentioned in NAMESPACE
> and are not creating a problem.  In 2009 the package included both
> "data/refinery.rda" and "man/refinery.Rd".  They were erroneously
> removed at some point.  I'm now trying to restore them.)

I just cloned the repository, and saw the same error as you saw.  Then I 
followed my advice, and removed `refinery` from the NAMESPACE file, and 
the error went away.

Since you don't have `LazyData: true` in the current version, you need 
to run `data(refinery)` to make that dataset available.  That does work.

I also tried restoring `LazyData:true` as well as removing `refinery` 
from NAMESPACE, and that works too, without the need to call 
`data(refinery)`.  The variable is just available.

I'm not sure which *.rda files you are talking about that "are mentioned 
in NAMESPACE".  Now that I've removed `refinery` in my copy, I don't see 
any of them.

Duncan Murdoch

> 
> 
> 	  Thanks,
> 	  Spencer
> 
>>
>> Duncan Murdoch
>>
>>>
>>>
>>>        ???
>>>        I have Bitdefender installed on this computer.  A "Quick Scan"
>>> produced nothing just now.
>>>
>>>
>>>        Thanks,
>>>        Spencer
>>>
>>>
>>> On 1/20/23 5:08 PM, Duncan Murdoch wrote:
>>>> On 20/01/2023 6:02 p.m., Greg Hunt wrote:
>>>>> xFEFF isn't a BOM in a UTF-8 file, its not anything.   The UTF-8 BOM
>>>>> is a
>>>>> different sequence of bits.  If tools treat it as a BOM, that is
>>>>> arguably a
>>>>> problem.
>>>>
>>>> You're right.  FEFF is the UTF-16 big endian BOM.  UTF-16 is a 16 bit
>>>> encoding, not at all the same as UTF-8.  I don't know how to read UTF-16
>>>> in R. Uwe's advice was for UTF-8.
>>>>
>>>> Duncan Murdoch
>>>>
>>>>>
>>>>> On Sat, 21 Jan 2023 at 05:09, Bill Dunlap <williamwdunlap using gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Setting the locale to "C" (or perhaps some other non-UTF-8 locale)
>>>>>> will
>>>>>> show the BOM bytes.  E.g., on Windows I get:
>>>>>>
>>>>>>> Sys.getlocale()
>>>>>> [1] "LC_COLLATE=English_United States.utf8;LC_CTYPE=English_United
>>>>>> States.utf8;LC_MONETARY=English_United
>>>>>> States.utf8;LC_NUMERIC=C;LC_TIME=English_United States.utf8"
>>>>>>> tools::showNonASCIIfile('
>>>>>> https://raw.githubusercontent.com/JamesRamsay5/fda/master/NAMESPACE')
>>>>>>> rawToChar(readBin('
>>>>>> https://raw.githubusercontent.com/JamesRamsay5/fda/master/NAMESPACE',
>>>>>> what="raw", n=20))
>>>>>> [1] "export(AmpPhasDec"
>>>>>>> Sys.setlocale(locale="C")
>>>>>> [1] "C"
>>>>>>> tools::showNonASCIIfile('
>>>>>> https://raw.githubusercontent.com/JamesRamsay5/fda/master/NAMESPACE')
>>>>>> 1: <ef><bb><bf>export(AmpPhasDecomp,
>>>>>>> rawToChar(readBin('
>>>>>> https://raw.githubusercontent.com/JamesRamsay5/fda/master/NAMESPACE',
>>>>>> what="raw", n=20))
>>>>>> [1] "\357\273\277export(AmpPhasDec"
>>>>>>
>>>>>> -Bill
>>>>>>
>>>>>>
>>>>>> On Fri, Jan 20, 2023 at 9:16 AM Spencer Graves <
>>>>>> spencer.graves using effectivedefense.org> wrote:
>>>>>>
>>>>>>> Hi, Ivan and Uwe:
>>>>>>>
>>>>>>>
>>>>>>>              Thanks for your suggestions, but I've so far been unable
>>>>>>> to get
>>>>>>> them
>>>>>>> to work.  see below.
>>>>>>>
>>>>>>>
>>>>>>> On 1/20/23 9:22 AM, Uwe Ligges wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> On 20.01.2023 15:53, Ivan Krylov wrote:
>>>>>>>>> В Fri, 20 Jan 2023 08:41:25 -0600
>>>>>>>>> Spencer Graves <spencer.graves using effectivedefense.org> пишет:
>>>>>>>>>
>>>>>>>>>> ** byte-compile and prepare package for lazy loading
>>>>>>>>>> Error in parse(nsFile, keep.source = FALSE, srcfile = NULL) :
>>>>>>>>>>        1:1: unexpected input
>>>>>>>>>
>>>>>>>>> tools::showNonASCIIfile('
>>>>>>> https://raw.githubusercontent.com/JamesRamsay5/fda/master/NAMESPACE')
>>>>>>>>> # 1: <ef><bb><bf>export(AmpPhaseDecomp,
>>>>>>>>>
>>>>>>>>> Your NAMESPACE file starts with a U+FEFF ZERO WIDTH NO-BREAK SPACE.
>>>>>>>>> You'll need to remove it, e.g. by re-creating the first line.
>>>>>>>>
>>>>>>>>
>>>>>>>> Note that this is also called "byte order mark" (BOM). Tell your
>>>>>>>> editor
>>>>>>>> not to create files with BOM.
>>>>>>>>
>>>>>>>> You can also fix in R:
>>>>>>>>
>>>>>>>> x <- readLines(..., encoding="UTF-8-BOM")
>>>>>>>> writeLines(x, ......)
>>>>>>>
>>>>>>>
>>>>>>>              In RStudio 2022.12.0+353 (the current version),
>>>>>>>
>>>>>>>
>>>>>>> tools::showNonASCIIfile('
>>>>>>> https://raw.githubusercontent.com/JamesRamsay5/fda/master/NAMESPACE')
>>>>>>>
>>>>>>>
>>>>>>> returned "char(0)".  'readLines' and 'writeLines' as Uwe suggested
>>>>>>> failed to fix it for me.
>>>>>>>
>>>>>>>
>>>>>>>              The first problem I noticed with this was that RStudio
>>>>>>> could
>>>>>> not
>>>>>>> read
>>>>>>> the NAMESPACE file.  When I tried, it said, "File is binary rather
>>>>>>> than
>>>>>>> text so cannot be opened by the source editor."  I changed something
>>>>>>> using a different editor and did "git commit" and "git push", and got
>>>>>>> the error on GitHub that I reported above.  I copied the file
>>>>>>> elsewhere,
>>>>>>> deleted it locally and from GitHub, then recreated it in
>>>>>>> LibreOffice by
>>>>>>> manually typing the first and last lines then copying the rest from a
>>>>>>> copy I had saved elsewhere.  The RStudio would open the file, but I
>>>>>>> still get the same error message as above from both "R CMD build fda"
>>>>>>> locally and from GitHub Action at:
>>>>>>>
>>>>>>>
>>>>>>> https://github.com/JamesRamsay5/fda
>>>>>>>
>>>>>>>
>>>>>>>              Other suggestions?
>>>>>>>              Thanks,
>>>>>>>              Spencer Graves
>>>>>>>
>>>>>>>>
>>>>>>>> Best,
>>>>>>>> Uwe Ligges
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> ______________________________________________
>>>>>>> R-package-devel using r-project.org mailing list
>>>>>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>>>>>>
>>>>>>
>>>>>>            [[alternative HTML version deleted]]
>>>>>>
>>>>>> ______________________________________________
>>>>>> R-package-devel using r-project.org mailing list
>>>>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>>>>>
>>>>>
>>>>>       [[alternative HTML version deleted]]
>>>>>
>>>>> ______________________________________________
>>>>> R-package-devel using r-project.org mailing list
>>>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>>>
>>>> ______________________________________________
>>>> R-package-devel using r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>



More information about the R-package-devel mailing list