Dear all, I am on a Debian buster system. I am a beginner to Debian packaging. Here is my workflow for converting an R package which I call mypackage into a Debian package: 1. I take an R package, say mypackage_2.1.tar.gz 2. I create it's copy as mypackage_2.1.orig.tar.gz 3. Then I untar the original tarball and create the mypackage directory. [ I have installed dh-r helper function like this : sudo apt install dh-r ] 4. I goto the mypackage directory and do: dh-make-R in order to create the debian directory. 5. Then I modify debian/control ( to make Source / Package entries from: r-cran-mypackage into mypackage ) and similarly change r-cran-mypackage into mypackage in debian/changelog (where I updated the message to "Initial release"). 6. Then from the mypackage directory I do : debuild The above workflow FAILS with this error: dpkg-checkbuilddeps: error: Unmet build dependencies: r-cran-dbi r-cran-rsqlite r-cran-xts r-cran-zoo r-cran-foreach r-cran-domc But when I check like this,it says the dependencies are THERE: $ apt-cache show r-cran-dbi Package: r-cran-dbi Source: dbi Version: 1.0.0-2 Installed-Size: 1931 Maintainer: Dirk Eddelbuettel <edd at debian.org> Architecture: all Depends: r-base-core (>= 3.5.0-3), r-api-3.5 Suggests: r-cran-rmysql Description-en: GNU R package providing a generic database interface A generic database interface (DBI) definition for communication between R and relational database management systems -- similar to Perl's DBI system. All classes in this package are virtual and need to be extended by the various R/DBMS implementations as e.g. RMySQL. Description-md5: dc00e91ab4b239de079502722ee124b8 Homepage: https://cran.r-project.org/package=DBI Tag: devel::lang:r, devel::library, field::statistics, implemented-in::r, role::app-data, suite::gnu, works-with::db Section: gnu-r Priority: optional Filename: pool/main/d/dbi/r-cran-dbi_1.0.0-2_all.deb Size: 788848 MD5sum: 82a1102a8f6b315b4cbce30edbdb9ed8 SHA256: 704d743feca0a028da369342fd5b0891758952877185b463db289b45f32c9c0e When I do : debuild -d it does not check the dependencies and creates the package. I have 2 queries though: 1. Why does it say unmet build dependencies when I know for sure that the dependencies are present. 2. My second query is that : is there a way that instead of checking for say : r-cran-dbi it checks that the corresponding DBI package is installed inside R but perhaps by using the incantation install.packages("DBI") and not from the r-cran-dbi Debian package? Can someone please help me ? Many thanks and Best Regards, Ashim
Dirk Eddelbuettel
2021-Jul-24 00:26 UTC
[R-sig-Debian] Converting R package to Debian package
Hi Ashim, Sorry, I must have missed this while traveling. On 7 July 2021 at 11:42, Ashim Kapoor wrote: | Dear all, | | I am on a Debian buster system. I am a beginner to Debian packaging. | | Here is my workflow for converting an R package which I call mypackage | into a Debian package: | | 1. I take an R package, say mypackage_2.1.tar.gz | 2. I create it's copy as mypackage_2.1.orig.tar.gz | 3. Then I untar the original tarball and create the mypackage directory. | [ I have installed dh-r helper function like this : sudo apt install dh-r ] | 4. I goto the mypackage directory and do: dh-make-R | in order to create the debian directory. | 5. Then I modify debian/control ( to make Source / Package entries | from: r-cran-mypackage into mypackage ) and similarly change | r-cran-mypackage into mypackage in debian/changelog (where I updated | the message to "Initial release"). | 6. Then from the mypackage directory I do : debuild | | The above workflow FAILS with this error: | | dpkg-checkbuilddeps: error: Unmet build dependencies: r-cran-dbi | r-cran-rsqlite r-cran-xts r-cran-zoo r-cran-foreach r-cran-domc That may mean they need to be in the minimal 'chroot' environment in which the package is built, which you ensure via debian/control and the Build-Depends field. Or it may mean that dpkg-checkbuilddeps checks against your current system. | But when I check like this,it says the dependencies are THERE: | | $ apt-cache show r-cran-dbi That tests your outer system / what is known in the _entire distribution_ which is very different from the build-a-package clean room. | Package: r-cran-dbi | Source: dbi | Version: 1.0.0-2 | Installed-Size: 1931 | Maintainer: Dirk Eddelbuettel <edd at debian.org> | Architecture: all | Depends: r-base-core (>= 3.5.0-3), r-api-3.5 | Suggests: r-cran-rmysql | Description-en: GNU R package providing a generic database interface | A generic database interface (DBI) definition for communication | between R and relational database management systems -- similar to | Perl's DBI system. All classes in this package are virtual and need | to be extended by the various R/DBMS implementations as e.g. RMySQL. | Description-md5: dc00e91ab4b239de079502722ee124b8 | Homepage: https://cran.r-project.org/package=DBI | Tag: devel::lang:r, devel::library, field::statistics, implemented-in::r, | role::app-data, suite::gnu, works-with::db | Section: gnu-r | Priority: optional | Filename: pool/main/d/dbi/r-cran-dbi_1.0.0-2_all.deb | Size: 788848 | MD5sum: 82a1102a8f6b315b4cbce30edbdb9ed8 | SHA256: 704d743feca0a028da369342fd5b0891758952877185b463db289b45f32c9c0e | | When I do : | | debuild -d | | it does not check the dependencies and creates the package. That is all that matters :) | I have 2 queries though: | | 1. Why does it say unmet build dependencies when I know for sure that | the dependencies are present. See above. | 2. My second query is that : is there a way that instead of checking | for say : r-cran-dbi it checks that the corresponding DBI package is | installed inside R but perhaps by using the incantation | install.packages("DBI") and not from the r-cran-dbi Debian package? I do not understand the question. Can you rephrase it? | Can someone please help me ? I'll try. Dirk | Many thanks and Best Regards, | Ashim | | _______________________________________________ | R-SIG-Debian mailing list | R-SIG-Debian at r-project.org | https://stat.ethz.ch/mailman/listinfo/r-sig-debian -- https://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org