[R-pkg-team] Bug#985281: r-cran-dt: unhandled symlink to directory conversion: /usr/lib/R/site-library/DT/htmlwidgets/lib/datatables-extensions -> ../../../../../../share/javascript/jquery-datatables-extensions

Andreas Beckmann anbe at debian.org
Sun Mar 28 20:26:08 BST 2021


Hi Étienne,

On 27/03/2021 22.43, Étienne Mollier wrote:
> There is however this upgrade path that I struggle to fix, note
> the missing --distupgrade-to-testdebs, which goes through the
> existing 0.17+dfsg-2 in Testing, and which is still broken:

That's a stable2testing2sid test (-d buster -d bullseye -d sid) and you can do that with --d-t-t, too.
(you could also use -d buster -d bullseye -d bullseye --d-t-t, yes, 2x -d bullseye)

The breakage is caused by by upgrading to the bullseye version, debsums says

debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.bootstrap.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.bootstrap.min.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.bootstrap4.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.bootstrap4.min.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.foundation.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.foundation.min.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.jqueryui.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.jqueryui.min.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.material.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.material.min.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.semanticui.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.semanticui.min.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.uikit.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/dataTables.uikit.min.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/jquery.dataTables.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables/css/jquery.dataTables.min.css (from libjs-jquery-datatables package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.bootstrap.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.bootstrap.min.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.colVis.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.colVis.min.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.foundation.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.foundation.min.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.html5.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.html5.min.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.jqueryui.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.jqueryui.min.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.print.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/buttons.print.min.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/dataTables.buttons.js (from libjs-jquery-datatables-extensions package)
debsums: missing file /usr/share/javascript/jquery-datatables-extensions/Buttons/js/dataTables.buttons.min.js (from libjs-jquery-datatables-extensions package)

debsums is not entirely right, the files still exist (as in 'test -e'),
but have been replaced by dangling symlinks:
(do you want to file a bug against debsums for that?)

# ls -la /usr/share/javascript/jquery-datatables/css /usr/share/javascript/jquery-datatables-extensions/Buttons/js
/usr/share/javascript/jquery-datatables-extensions/Buttons/js:
total 0
drwxr-xr-x 2 root root 420 Mar 28 13:14 .
drwxr-xr-x 5 root root 100 Mar 28 13:14 ..
lrwxrwxrwx 1 root root 104 Feb 12 07:11 buttons.bootstrap.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.bootstrap.js
lrwxrwxrwx 1 root root 108 Feb 12 07:11 buttons.bootstrap.min.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.bootstrap.min.js
lrwxrwxrwx 1 root root 101 Feb 12 07:11 buttons.colVis.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.colVis.js
lrwxrwxrwx 1 root root 105 Feb 12 07:11 buttons.colVis.min.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.colVis.min.js
lrwxrwxrwx 1 root root 105 Feb 12 07:11 buttons.foundation.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.foundation.js
lrwxrwxrwx 1 root root 109 Feb 12 07:11 buttons.foundation.min.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.foundation.min.js
lrwxrwxrwx 1 root root 100 Feb 12 07:11 buttons.html5.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.html5.js
lrwxrwxrwx 1 root root 104 Feb 12 07:11 buttons.html5.min.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.html5.min.js
lrwxrwxrwx 1 root root 103 Feb 12 07:11 buttons.jqueryui.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.jqueryui.js
lrwxrwxrwx 1 root root 107 Feb 12 07:11 buttons.jqueryui.min.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.jqueryui.min.js
lrwxrwxrwx 1 root root 100 Feb 12 07:11 buttons.print.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.print.js
lrwxrwxrwx 1 root root 104 Feb 12 07:11 buttons.print.min.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/buttons.print.min.js
lrwxrwxrwx 1 root root 105 Feb 12 07:11 dataTables.buttons.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/dataTables.buttons.js
lrwxrwxrwx 1 root root 109 Feb 12 07:11 dataTables.buttons.min.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/Buttons/js/dataTables.buttons.min.js
lrwxrwxrwx 1 root root  87 Feb 12 07:11 jszip.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/JSZip/jszip.js
lrwxrwxrwx 1 root root  91 Feb 12 07:11 jszip.min.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/JSZip/jszip.min.js
lrwxrwxrwx 1 root root  97 Feb 12 07:11 pdfmake.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/pdfmake/build/pdfmake.js
lrwxrwxrwx 1 root root 101 Feb 12 07:11 pdfmake.min.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/pdfmake/build/pdfmake.min.js
lrwxrwxrwx 1 root root  99 Feb 12 07:11 vfs_fonts.js -> ../../../../../../../../../share/javascript/jquery-datatables-extensions/pdfmake/build/vfs_fonts.js

/usr/share/javascript/jquery-datatables/css:
total 4
drwxr-xr-x 2 root root  380 Mar 28 13:14 .
drwxr-xr-x 4 root root  460 Mar 28 13:14 ..
lrwxrwxrwx 1 root root   87 Feb 12 07:11 dataTables.bootstrap.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.bootstrap.css
lrwxrwxrwx 1 root root   91 Feb 12 07:11 dataTables.bootstrap.min.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.bootstrap.min.css
lrwxrwxrwx 1 root root   88 Feb 12 07:11 dataTables.bootstrap4.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.bootstrap4.css
lrwxrwxrwx 1 root root   92 Feb 12 07:11 dataTables.bootstrap4.min.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.bootstrap4.min.css
lrwxrwxrwx 1 root root   88 Feb 12 07:11 dataTables.foundation.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.foundation.css
lrwxrwxrwx 1 root root   92 Feb 12 07:11 dataTables.foundation.min.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.foundation.min.css
lrwxrwxrwx 1 root root   86 Feb 12 07:11 dataTables.jqueryui.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.jqueryui.css
lrwxrwxrwx 1 root root   90 Feb 12 07:11 dataTables.jqueryui.min.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.jqueryui.min.css
lrwxrwxrwx 1 root root   86 Feb 12 07:11 dataTables.material.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.material.css
lrwxrwxrwx 1 root root   90 Feb 12 07:11 dataTables.material.min.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.material.min.css
lrwxrwxrwx 1 root root   88 Feb 12 07:11 dataTables.semanticui.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.semanticui.css
lrwxrwxrwx 1 root root   92 Feb 12 07:11 dataTables.semanticui.min.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.semanticui.min.css
lrwxrwxrwx 1 root root   83 Feb 12 07:11 dataTables.uikit.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.uikit.css
lrwxrwxrwx 1 root root   87 Feb 12 07:11 dataTables.uikit.min.css -> ../../../../../../../../share/javascript/jquery-datatables/css/dataTables.uikit.min.css
lrwxrwxrwx 1 root root   84 Feb 12 07:11 jquery.dataTables.css -> ../../../../../../../../share/javascript/jquery-datatables/css/jquery.dataTables.css
-rw-r--r-- 1 root root 1012 Feb 12 07:11 jquery.dataTables.extra.css
lrwxrwxrwx 1 root root   88 Feb 12 07:11 jquery.dataTables.min.css -> ../../../../../../../../share/javascript/jquery-datatables/css/jquery.dataTables.min.css

That can't be fixed on the r-cran-dt side alone.
But I'd consider it pretty bad (haven't seen overwrite problems
this way so far), as the files are actually destroyed (usually
they get overwritten with files with the same or similar content,
not symlinks).
Since the buggy package has reached testing, there are probably
people using testing that have the destroyed files.

The fix should be pretty easy: both libjs-jquery-datatables and
libjs-jquery-datatables-extensions (from two different source
packages) need to add
   Breaks: r-cran-dt (<< 0.17+dfsg-3~)
That will reinstall the destroyed files after upgrading to the fixed r-cran-dt
(r-cran-dt could bump its dependencies to the versions with the Breaks,
but that's primarily to prevent some partial upgrades with messed up files
and it could even introduce some upgrade unpack ordering fun).

Can you take care of that?


Thanks,

Andreas



More information about the R-pkg-team mailing list