Hi, During a rebuild of all packages in buster (in a buster chroot, not a sid chroot), your package failed to build on amd64. Relevant part (hopefully): http://aws-logs.debian.net/2019/03/15/node-jschardet_1.6.0+dfsg-1_testing.log A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! About the archive rebuild: The rebuild was done on EC2 VM instances from Amazon Web Services, using a clean, minimal and up-to-date chroot. Every failed build was retried once to eliminate random failures.
Bug seems to come from conflict between https://tracker.debian.org/pkg/uglify-js and https://tracker.debian.org/pkg/uglifyjs: webpack can't now be installed with uglifyjs Le 17/03/2019 à 19:05, Lucas Nussbaum a écrit :
Le 17/03/2019 à 23:12, Xavier a écrit : node-jscharset build-depends on both webpack and uglifyjs: * webpack depends on node-uglify via node-uglifyjs-webpack-plugin (and some other), provided by src:uglifyjs renamed later to src:uglify-js * uglifyjs is now provided by src:uglify-js, conflicts with node-uglify * src:uglify-js does not provide node-uglify but node-uglify-js instead
Quoting Xavier (2019-03-17 23:12:51) depends indirectly on node-uglify 2.x, whereas uglifyjs is either a virtual package provided by node-uglify 2.x or (since recently) a real package depending on node-uglyfy-js 3.x. Yes, the problem emerged when node-uglify was introduced as a real package, but the fix is for those packages depending on uglifyjs and webpack together to depend on node-uglify 2.x instead of the virtual package. Please revert these reassignments: This cannot be fixed in uglifyjs 3.x. - Jonas
Quoting Jonas Smedegaard (2019-03-17 23:48:57) Put differently, the problem is packages depending both unversioned and transitively versioned on uglifyjs - that works only as long as the transitive dependency happens to be newest major release of uglifyjs. - Jonas
Le 18/03/2019 à 00:02, Jonas Smedegaard a écrit : node-uglify Build Reverse Depends: sizzle sockjs-client twitter-bootstrap3 twitter-bootstrap3 underscore.string wax.js witty asciimathtml coffeescript d3-tip.js diff-match-patch elycharts.js es-module-loader-0.17.js explorercanvas flightgear-phi highlight.js icingaweb2 impress.js isso jquery-coolfieldset jquery-geo jquery-goodies jquery-lazyload jquery-minicolors jquery-reflection jquery-simpletreemenu jquery-watermark jsrender languages4translatewiki ldap-account-manager leaflet-geometryutil leaflet-image libjs-chosen libjs-cssrelpreload libjs-img.srcset libjs-jquery-scrollto libjs-jsxc libjs-term.js lintian mgrs modernizr node-babel node-bowser node-browser-pack node-browserify-lite node-eventemitter2 node-events node-fuzzaldrin-plus node-hooker node-htmlparser node-ipaddr.js node-is-typedarray node-iscroll node-jquery-textcomplete node-jsonselect node-lodash node-lunr node-markdown-it-html5-embed node-marked node-matrix-js-sdk node-merge node-n3 node-pinkyswear node-q node-sdp-transform node-shiny-server-client node-sink-test node-sprintf-js node-turbolinks node-tweetnacl node-typedarray-to-buffer node-umd pegjs polymaps prefixfree proj4js rainbow.js raphael requirejs rickshaw rtcninjajs ruby-rails-assets-favico.js ruby-rails-assets-jquery-fullscreen-plugin ruby-rails-assets-perfect-scrollbar sax.js sizzle slick sockjs-client spip underscore.string wax.js twitter-bootstrap3 twitter-bootstrap3 almond asciimathtml coffeescript d3-tip.js diff-match-patch elycharts.js emscripten es-module-loader-0.17.js explorercanvas flightgear-phi highlight.js icingaweb2 impress.js isso jquery-coolfieldset jquery-geo jquery-goodies jquery-lazyload jquery-minicolors jquery-reflection jquery-simpletreemenu jquery-watermark jsrender languages4translatewiki ldap-account-manager leaflet-geometryutil leaflet-image libjs-chosen libjs-cssrelpreload libjs-img.srcset libjs-jquery-scrollto libjs-jsxc libjs-term.js lintian mgrs modernizr node-babel node-bowser node-browser-pack node-browserify-lite node-eventemitter2 node-events node-fuzzaldrin-plus node-hooker node-htmlparser node-ipaddr.js node-is-typedarray node-iscroll node-jquery-textcomplete node-jsonselect node-lodash node-lunr node-markdown-it-html5-embed node-marked node-matrix-js-sdk node-merge node-mocha node-n3 node-pinkyswear node-q node-sdp-transform node-shiny-server-client node-sink-test node-sprintf-js node-turbolinks node-tweetnacl node-typedarray-to-buffer node-umd pegjs polymaps prefixfree proj4js rainbow.js raphael requirejs rickshaw rtcninjajs ruby-rails-assets-favico.js ruby-rails-assets-jquery-fullscreen-plugin ruby-rails-assets-perfect-scrollbar sax.js sizzle slick sockjs-client spip underscore.string wax.js witty freeipa node-grunt-contrib-uglify node-jquery proj4js icingaweb2 lintian twitter-bootstrap3 coffeescript jquery-goodies jupyter-notebook libjs-term.js mustache.js node-bowser node-events node-is-typedarray node-merge node-sdp-transform node-semver node-typedarray-to-buffer requirejs rtcninjajs twitter-bootstrap3 highlight.js jquery-minicolors less.js libjs-chosen node-iscroll node-marked pegjs almond angular.js backbone colors.js elycharts.js highlight.js ie7-js impress.js jquery jquery-coolfieldset jquery-geo jquery-goodies jquery-lazyload jquery-minicolors jquery-reflection jquery-simpletreemenu jquery-watermark jsrender languages4translatewiki leaflet leaflet-markercluster less.js libjs-chosen libjs-img.srcset modernizr mozilla-noscript node-async node-eventemitter2 node-hooker node-htmlparser node-ipaddr.js node-iscroll node-lodash node-marked node-semver node-sink-test owncloud owncloud-apps pegjs polymaps rainbow.js raphael requirejs sizzle twitter-bootstrap3 wax.js webdeveloper witty wot almond angular.js angular.js backbone colors.js elycharts.js highlight.js highlight.js ie7-js impress.js jquery jquery jquery-coolfieldset jquery-geo jquery-goodies jquery-lazyload jquery-minicolors jquery-reflection jquery-simpletreemenu jquery-watermark jsrender languages4translatewiki leaflet leaflet-markercluster less.js libjs-chosen libjs-img.srcset modernizr mozilla-noscript node-async node-eventemitter2 node-hooker node-htmlparser node-ipaddr.js node-iscroll node-lodash node-marked node-semver node-sink-test pegjs polymaps rainbow.js raphael requirejs sizzle twitter-bootstrap3 wax.js webdeveloper witty almond asciimathtml coffeescript d3-tip.js diff-match-patch elycharts.js es-module-loader-0.17.js explorercanvas flightgear-phi highlight.js icingaweb2 impress.js jquery-coolfieldset jquery-goodies jquery-lazyload jquery-reflection jquery-simpletreemenu jquery-watermark jsrender jupyter-notebook languages4translatewiki leaflet leaflet-markercluster libjs-chosen libjs-img.srcset libjs-jquery-scrollto libjs-jsxc libjs-term.js mgrs modernizr node-async node-bowser node-eventemitter2 node-events node-fuzzaldrin-plus node-hooker node-htmlparser node-ipaddr.js node-is-typedarray node-iscroll node-jsonselect node-lodash node-marked node-merge node-q node-sdp-transform node-sink-test node-sprintf-js node-typedarray-to-buffer pegjs polymaps proj4js rainbow.js raphael requirejs rickshaw rtcninjajs ruby-cal-heatmap-rails ruby-jquery-turbolinks ruby-rails-assets-favico.js ruby-rails-assets-jquery-fullscreen-plugin ruby-rails-assets-perfect-scrollbar node-uglify Reverse Depends: node-uglifyjs-webpack-plugin emscripten python3-webassets python-webassets uglifyjs node-uglify-js python3-livereload python-livereload node-with node-grunt-contrib-uglify node-transformers lava-dev node-dryice node-constantinople
Le 18/03/2019 à 06:19, Xavier a écrit : If I understand (but maybe I'm wrong), this means that in buster it is not possible to have uglifyjs installed with one of these 14 packages or their dependencies (`apt-cache rdepends --recurse node-uglify` returns several thousands package names).
Quoting Xavier (2019-03-18 06:56:42) Please clarify how you produced a list of packages which depend *both* unversioned and *also* transitively versioned on uglifyjs. ...or clarify what other list you produced and why you find such other list relevant here. Please elaborate why - either based on my explanation of the problem quoted above, or elaborate on which _different_ theory you have of what is the underlying problem you try to solve. - Jonas
Le 18/03/2019 à 11:46, Jonas Smedegaard a écrit : I pushed this list taken from UDD database (reverse build depends) + "apt-cache rdepends", just to help to understand the impact of this bug. If it is not useful, please ignore my message I do not have a theory, just want to help (I'm not uploader of any package concerned). So ignore my mail if it is not clear/useful. The fact is that today, it is not possible to have both webpack (or some other packages) and uglifyjs on the same machine.
Quoting Xavier (2019-03-18 12:01:52) it, I will ignore your provided list. Please note that I am _not_ saying that your list is wrong, nor that my view of the problem is correct. Only that I don't understand your info. Since you merged and reassigned bugs, packages will get kicked out of Buster because they cannot be fixed. I urge you to either stand by your change by engaging in discussions on theories as to what is the real problem here, or if you don't want to do that (or don't have the time, or don't understand the problem well enough) then I recommend that you consider reverting those changes done by you. - Jonas
Hi, it takes some time to understand what's happening here, and since fixing it properly will require quite some work on multiple packages, i add my notes to this bug report. Nota Bene: i use "webpack" here but the sake of the example. # Situation Because uglify version 2 compiles software that uglify version 3 does not compile correctly, and vice-versa, there are two versions in debian: * uglifyjs-2.8.29 builds node-uglify which provides uglifyjs * uglify-js-3.4.9 builds uglifyjs # Solutions (in my order of preference, to be adapted) 1. Packages not building with uglifyjs 2 should be fixed to build with uglifyjs 3. Not a trivial thing to do and it's deep freeze now. 2. Distribute /usr/bin/uglifyjsN and fix all packages calling /usr/bin/uglifyjs to call uglifyjsN, when they can't be fixed to use latest version of /usr/bin/uglifyjs. # Slight improvement that might be done for buster IF apt behaves like i think it will, to allow both /usr/bin/uglifyjs and node-uglify package to be installed: * uglify-js-3.4.9 builds node-uglify-js which provides uglifyjs and conflicts uglifyjs (<< 3.5.0-2), and remove uglifyjs binary package (to get it to be pure virtual package). However, if dependencies both try to install node-uglify and node-uglify-js it will still fail, but it's not as bad as a direct conflict with /usr/bin/uglifyjs. It could be misleading, though, to have an unexpected version, so maybe the best thing is to do nothing for Buster. Jérémy
Le ven. 22 mars 2019 à 15:51, Jonas Smedegaard <jonas@jones.dk> a écrit : Did you see my description at https://bugs.debian.org/924807#28 ? Yes, changing the dependency on uglifyjs to node-uglify of all concerned packages. Doing so without regressions will require quite some work. The other solution - migrate all packages to uglifyjs 3 - requires a lot more work. Indeed. My turn to not understand: many packages not coinstallable due to a conflict is fine ? node-uglify conflicts with node-uglify-js. Sure, that needs urgent fixing. However, debian users developing websites will typically want to use webpack and uglifyjs. And currently in Buster they won't be able to install both, and likewise with many other packages. The proposed change is to switch back uglifyjs to a pure virtual package, as it was before, (if what i know about apt is right) that would solve the main example above: install webpack + uglifyjs. I do care to avoid further mess and i understand that no change shall be made on a hurry, it is just something i wanted to discuss. Jérémy