DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: scala-js 1.22.0-1

Package Information

DescriptionScala.js compiler plugin and linker for Scala 2.13

Scala.js is the Scala to JavaScript compiler. Programs compiled with it run in web browsers and in Node.js, and can use JavaScript libraries and the DOM.

This package provides the Scala.js tools for the JVM, built for Scala 2.13: the compiler plugin for scalac 2.13.18, which writes Scala.js IR (.sjsir files) next to the class files, the IR library, the linker and its interface, and scalajs-link, a small command that links IR into a JavaScript file (as fastLinkJS and fullLinkJS do in sbt).

This build has no Google Closure Compiler back end.

MaintainerDebian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
Changed ByJuan Manuel Méndez Rey <juan.mendezr@proton.me>
Sponsortsimonq2@debian.org
Distributionunstable
Architectureall
VCSgit: https://salsa.debian.org/java-team/scala-js.git (browse)
Closes#1149816
Trackerhttps://tracker.debian.org/pkg/scala-js
Uploaded6 hours ago

New Package Report

.changes◂
Changed-ByJuan Manuel Méndez Rey <juan.mendezr@proton.me>
Architecturesource all
Distributionunstable
DateSat, 03 Oct 2026 08:19:40 +0200
Sourcescala-js
Version1.22.0-1
Changelog◂
scala-js (1.22.0-1) unstable; urgency=medium
 .
   * Initial release. (Closes: #1149816)
.dsc◂
Package-Listscala-js deb devel optional arch=all
scala-js-library deb devel optional arch=all
Sectiondevel
Priorityoptional
Componentmain
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: scala-js
Upstream-Contact: https://github.com/scala-js/scala-js/issues
Source: https://github.com/scala-js/scala-js
 The two components come from https://github.com/scala-js/scala-js-logging
 (tag v1.2.0, whole tree) and https://github.com/scala/scala (tag
 v2.13.18, src/library); see debian/README.source.
Comment:
 The main tarball is upstream's git tag as is. The scala213-library
 component is cut from its upstream git tag by uscan with
 Files-Excluded-scala213-library and Files-Included-scala213-library.
Files-Excluded-scala213-library: *
Files-Included-scala213-library:
 src/library
 LICENSE
 NOTICE

Files: *
Copyright: 2013-2026 EPFL
License: Apache-2.0
Comment:
 Most source files say "Copyright EPFL."; NOTICE says
 "Copyright (c) 2013-2018 EPFL". Scala.js includes software developed at
 EPFL (https://lamp.epfl.ch/ and https://scala.epfl.ch/).

Files: scalalib/overrides/* scalalib/overrides-2.12/* scalalib/overrides-2.13/*
Copyright: 2002-2013 LAMP/EPFL
           EPFL and Lightbend, Inc.
           EPFL
License: Apache-2.0
Comment:
 Modified copies of files of the Scala standard library. Some keep the old
 Scala header ("(c) 2002-2013, LAMP/EPFL") with no licence text; the Scala
 standard library is under Apache-2.0 (as the newer headers and
 scala213-library/LICENSE say).

Files: javalib/src/main/scala/java/math/*
Copyright: 2009 Google Inc.
           The Apache Software Foundation
           EPFL
License: Apache-2.0
Comment:
 Ported to Scala by Alistair Johnson from GWT's java.math emulation
 (https://github.com/gwtproject/gwt) and from Android libcore (Apache
 Harmony); the files quote both original Apache-2.0 notices.

Files: javalib/src/main/scala/java/util/concurrent/ThreadLocalRandom.scala
Copyright: Doug Lea and members of JCP JSR-166 Expert Group (public domain)
License: public-domain
 Written by Doug Lea with assistance from members of JCP JSR-166
 Expert Group and released to the public domain, as explained at
 http://creativecommons.org/publicdomain/zero/1.0/
 .
 and translated to Scala.

Files: javalib/src/main/scala/java/lang/StackTrace.scala
Copyright: EPFL
License: Apache-2.0
Comment:
 Part of the file is translated from stacktrace.js 0.x
 (https://github.com/stacktracejs/stacktrace.js), whose LICENSE.txt
 says "Domain Public by Eric Wendelin (2008), Luke Smith (2008), Loic
 Dachary (2008), Johan Euphrosine (2008), Oyvind Sean Kinsey (2010),
 Victor Homyakov (2010)".

Files: linker-private-library/src/main/scala/org/scalajs/linker/runtime/WasmRuntime.scala
Copyright: EPFL
           2005-2020 Rich Felker, et al.
           The rust-lang/libm contributors
License: Apache-2.0 and Expat
Comment:
 fmodd and fmodf are translated from rust-lang/libm fmod.rs, itself from
 musl fmod.c.

Files: test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigDecimalArithmeticTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigDecimalCompareTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigDecimalConstructorsTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigDecimalConvertTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigDecimalScaleOperationsTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerAddTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerAndTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerCompareTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerConstructorsTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerConvertTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerDivideTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerHashCodeTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerModPowTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerMultiplyTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerNotTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerOperateBitsTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerOrTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerSubtractTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerToStringTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigIntegerXorTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/MathContextTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/RoundingModeTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/lang/IntegerTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/lang/LongTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/lang/StringTest.scala
       test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/util/PropertiesTest.scala
Copyright: 2009 Google Inc.
           The Apache Software Foundation
           EPFL
License: Apache-2.0
Comment:
 Ported from GWT's and Apache Harmony's java.math, java.lang and
 java.util tests. Not built.

Files: test-suite/js/src/test/resources/SourceMapTestTemplate.scala
Copyright: EPFL
           2012-2013 Persist Software
License: Apache-2.0
Comment:
 The JSON parser in class Json is adapted from
 https://github.com/nestorpersist/json. Not built.

Files: examples/helloworld/src/main/scala/helloworld/HelloWorld.scala
       examples/reversi/src/main/scala/reversi/JSTypes.scala
       examples/reversi/src/main/scala/reversi/Reversi.scala
Copyright: Sebastien Doeraene
License: public-domain
 Scala.js example code. Public domain.

Files: junit-runtime/src/main/scala/org/junit/*
Copyright: 2000-2014 JUnit contributors
           EPFL
License: EPL-1.0
Comment:
 Translation of JUnit 4.12 to Scala.js (see NOTICE); the full licence is
 in junit-runtime/src/main/scala/org/junit/LICENSE-junit.txt. Not built.

Files: junit-runtime/src/main/scala/org/hamcrest/*
Copyright: 2000-2006 www.hamcrest.org
           EPFL
License: BSD-3-clause
Comment:
 Translation of Hamcrest 1.3 to Scala.js (see NOTICE); the licence is in
 junit-runtime/src/main/scala/org/hamcrest/LICENSE-hamcrest.txt. Not
 built.

Files: logging/*
Copyright: 2013-2020 EPFL
License: Apache-2.0
Comment:
 scalajs-logging 1.2.0. The source headers say "Copyright EPFL."

Files: scala213-library/*
Copyright: 2002-2025 EPFL
           2002-2025 LAMP/EPFL
           EPFL and Lightbend, Inc. dba Akka
           2011-2025 Lightbend, Inc. dba Akka
License: Apache-2.0
Comment:
 The Scala 2.13.18 standard library sources. The CompletionLatch class in
 src/library/scala/concurrent/impl/Promise.scala says it is inspired by
 Doug Lea's public domain AbstractQueuedSynchronizer; the file itself is
 under the Scala header.

Files: scala213-library/src/library/scala/math/BigInt.scala
Copyright: EPFL and Lightbend, Inc. dba Akka
           2011 The Guava Authors
License: Apache-2.0
Comment:
 The private longGcd method is adapted from Google Guava's LongMath.java,
 whose notice the file quotes.

Files: debian/*
Copyright: 2026 Juan Manuel Méndez Rey <juan.mendezr@proton.me>
License: Apache-2.0
Comment:
 debian/poms/*.pom are the POM files published by upstream on Maven
 Central for the same artifacts.

License: Apache-2.0
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
 .
 http://www.apache.org/licenses/LICENSE-2.0
 .
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 .
 On Debian systems, the complete text of the Apache License, Version 2.0
 can be found in "/usr/share/common-licenses/Apache-2.0".

License: EPL-1.0
 Eclipse Public License - v 1.0
 .
 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
 LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
 CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
 .
 1. DEFINITIONS
 .
 "Contribution" means:
 .
       a) in the case of the initial Contributor, the initial code and
          documentation distributed under this Agreement, and
       b) in the case of each subsequent Contributor:
 .
       i) changes to the Program, and
 .
       ii) additions to the Program;
 .
       where such changes and/or additions to the Program originate from and are
 distributed by that particular Contributor. A Contribution 'originates' from a
 Contributor if it was added to the Program by such Contributor itself or anyone
 acting on such Contributor's behalf. Contributions do not include additions to
 the Program which: (i) are separate modules of software distributed in
 conjunction with the Program under their own license agreement, and (ii) are
 not derivative works of the Program.
 .
 "Contributor" means any person or entity that distributes the Program.
 .
 "Licensed Patents " mean patent claims licensable by a Contributor which are
 necessarily infringed by the use or sale of its Contribution alone or when
 combined with the Program.
 .
 "Program" means the Contributions distributed in accordance with this Agreement.
 .
 "Recipient" means anyone who receives the Program under this Agreement,
 including all Contributors.
 .
 2. GRANT OF RIGHTS
 .
       a) Subject to the terms of this Agreement, each Contributor hereby grants
 Recipient a non-exclusive, worldwide, royalty-free copyright license to
 reproduce, prepare derivative works of, publicly display, publicly perform,
 distribute and sublicense the Contribution of such Contributor, if any, and
 such derivative works, in source code and object code form.
 .
       b) Subject to the terms of this Agreement, each Contributor hereby grants
 Recipient a non-exclusive, worldwide, royalty-free patent license under
 Licensed Patents to make, use, sell, offer to sell, import and otherwise
 transfer the Contribution of such Contributor, if any, in source code and
 object code form. This patent license shall apply to the combination of the
 Contribution and the Program if, at the time the Contribution is added by the
 Contributor, such addition of the Contribution causes such combination to be
 covered by the Licensed Patents. The patent license shall not apply to any
 other combinations which include the Contribution. No hardware per se is
 licensed hereunder.
 .
       c) Recipient understands that although each Contributor grants the
 licenses to its Contributions set forth herein, no assurances are provided by
 any Contributor that the Program does not infringe the patent or other
 intellectual property rights of any other entity. Each Contributor disclaims
 any liability to Recipient for claims brought by any other entity based on
 infringement of intellectual property rights or otherwise. As a condition to
 exercising the rights and licenses granted hereunder, each Recipient hereby
 assumes sole responsibility to secure any other intellectual property rights
 needed, if any. For example, if a third party patent license is required to
 allow Recipient to distribute the Program, it is Recipient's responsibility to
 acquire that license before distributing the Program.
 .
       d) Each Contributor represents that to its knowledge it has sufficient
 copyright rights in its Contribution, if any, to grant the copyright license
 set forth in this Agreement.
 .
 3. REQUIREMENTS
 .
 A Contributor may choose to distribute the Program in object code form under
 its own license agreement, provided that:
 .
       a) it complies with the terms and conditions of this Agreement; and
 .
       b) its license agreement:
 .
       i) effectively disclaims on behalf of all Contributors all warranties and
 conditions, express and implied, including warranties or conditions of title
 and non-infringement, and implied warranties or conditions of merchantability
 and fitness for a particular purpose;
 .
       ii) effectively excludes on behalf of all Contributors all liability for
 damages, including direct, indirect, special, incidental and consequential
 damages, such as lost profits;
 .
       iii) states that any provisions which differ from this Agreement are
 offered by that Contributor alone and not by any other party; and
 .
       iv) states that source code for the Program is available from such
 Contributor, and informs licensees how to obtain it in a reasonable manner on
 or through a medium customarily used for software exchange.
 .
 When the Program is made available in source code form:
 .
       a) it must be made available under this Agreement; and
 .
       b) a copy of this Agreement must be included with each copy of the
 Program.
 .
 Contributors may not remove or alter any copyright notices contained within the
 Program.
 .
 Each Contributor must identify itself as the originator of its Contribution, if
 any, in a manner that reasonably allows subsequent Recipients to identify the
 originator of the Contribution.
 .
 4. COMMERCIAL DISTRIBUTION
 .
 Commercial distributors of software may accept certain responsibilities with
 respect to end users, business partners and the like. While this license is
 intended to facilitate the commercial use of the Program, the Contributor who
 includes the Program in a commercial product offering should do so in a manner
 which does not create potential liability for other Contributors. Therefore, if
 a Contributor includes the Program in a commercial product offering, such
 Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
 every other Contributor ("Indemnified Contributor") against any losses, damages
 and costs (collectively "Losses") arising from claims, lawsuits and other legal
 actions brought by a third party against the Indemnified Contributor to the
 extent caused by the acts or omissions of such Commercial Contributor in
 connection with its distribution of the Program in a commercial product
 offering. The obligations in this section do not apply to any claims or Losses
 relating to any actual or alleged intellectual property infringement. In order
 to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
 Contributor in writing of such claim, and b) allow the Commercial Contributor
 to control, and cooperate with the Commercial Contributor in, the defense and
 any related settlement negotiations. The Indemnified Contributor may
 participate in any such claim at its own expense.
 .
 For example, a Contributor might include the Program in a commercial product
 offering, Product X. That Contributor is then a Commercial Contributor. If that
 Commercial Contributor then makes performance claims, or offers warranties
 related to Product X, those performance claims and warranties are such
 Commercial Contributor's responsibility alone. Under this section, the
 Commercial Contributor would have to defend claims against the other
 Contributors related to those performance claims and warranties, and if a court
 requires any other Contributor to pay any damages as a result, the Commercial
 Contributor must pay those damages.
 .
 5. NO WARRANTY
 .
 EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
 IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
 NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
 Recipient is solely responsible for determining the appropriateness of using
 and distributing the Program and assumes all risks associated with its exercise
 of rights under this Agreement, including but not limited to the risks and
 costs of program errors, compliance with applicable laws, damage to or loss of
 data, programs or equipment, and unavailability or interruption of operations.
 .
 6. DISCLAIMER OF LIABILITY
 .
 EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
 CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
 PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
 WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
 GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 .
 7. GENERAL
 .
 If any provision of this Agreement is invalid or unenforceable under applicable
 law, it shall not affect the validity or enforceability of the remainder of the
 terms of this Agreement, and without further action by the parties hereto, such
 provision shall be reformed to the minimum extent necessary to make such
 provision valid and enforceable.
 .
 If Recipient institutes patent litigation against any
 entity (including a cross-claim or counterclaim in a lawsuit) alleging that the
 Program itself (excluding combinations of the Program with other software or
 hardware) infringes such Recipient's patent(s), then such Recipient's rights
 granted under Section 2(b) shall terminate as of the date such litigation is
 filed.
 .
 All Recipient's rights under this Agreement shall terminate if it fails to
 comply with any of the material terms or conditions of this Agreement and does
 not cure such failure in a reasonable period of time after becoming aware of
 such noncompliance. If all Recipient's rights under this Agreement terminate,
 Recipient agrees to cease use and distribution of the Program as soon as
 reasonably practicable. However, Recipient's obligations under this Agreement
 and any licenses granted by Recipient relating to the Program shall continue
 and survive.
 .
 Everyone is permitted to copy and distribute copies of this Agreement, but in
 order to avoid inconsistency the Agreement is copyrighted and may only be
 modified in the following manner. The Agreement Steward reserves the right to
 publish new versions (including revisions) of this Agreement from time to time.
 No one other than the Agreement Steward has the right to modify this Agreement.
 The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to
 serve as the Agreement Steward to a suitable separate entity. Each new version
 of the Agreement will be given a distinguishing version number. The Program
 (including Contributions) may always be distributed subject to the version of
 the Agreement under which it was received. In addition, after a new version of
 the Agreement is published, Contributor may elect to distribute the Program
 (including its Contributions) under the new version. Except as expressly stated
 in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
 the intellectual property of any Contributor under this Agreement, whether
 expressly, by implication, estoppel or otherwise. All rights in the Program not
 expressly granted under this Agreement are reserved.
 .
 This Agreement is governed by the laws of the State of New York and the
 intellectual property laws of the United States of America. No party to this
 Agreement will bring a legal action under this Agreement more than one year
 after the cause of action arose. Each party waives its rights to a jury trial
 in any resulting litigation.

License: BSD-3-clause
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
 met:
 .
 Redistributions of source code must retain the above copyright notice,
 this list of conditions and the following disclaimer. Redistributions in
 binary form must reproduce the above copyright notice, this list of
 conditions and the following disclaimer in the documentation and/or other
 materials provided with the distribution.
 .
 Neither the name of Hamcrest nor the names of its contributors may be
 used to endorse or promote products derived from this software without
 specific prior written permission.
 .
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

License: Expat
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 .
 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
 .
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.

DFSG Assistant LLM REVIEW 1 blocker, 2 important, 4 minor

This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.

Reviewed 4 hours ago.

Report◂

DFSG NEW review for scala-js version 1.22.0-1

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: No
  • Packaging is of good quality: Yes
  • Issues: 1 blocker, 2 important, 4 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: nothing found

Licensing

The licences in the tree are DFSG-free (Apache-2.0 for almost everything, EPL-1.0 and BSD-3-clause for the JUnit/Hamcrest translations, Expat for the libm fmod code, public domain for a few files), and the licence texts that are not in /usr/share/common-licenses are included. debian/copyright is nevertheless incomplete: 17 files of library/src/main/scala/scala/scalajs/js declare their doc comments to be Mozilla Contributors' text under CC-BY-SA, but the catch-all stanza calls them EPFL/Apache-2.0 and the CC-BY-SA terms appear nowhere; Google is not named for the GWT-derived javalib and test files; and javalib RedBlackTree.scala, copied from Scala 2.13, is listed as EPFL only although that code is EPFL and Lightbend.

Packaging

The packaging is careful and unusually well documented: debhelper compat 14 with dh-sequence-maven-repo-helper, upstream POMs cleaned with maven.rules/maven.ignoreRules, NOTICE files installed for both packages, DEP-3 patches for the two removed features, an autopkgtest and a build-time link test that exercises the shipped jars, and a README.source that explains the sbt-free build and its differences from upstream's artifacts. Standards-Version is current, Vcs-* and upstream/metadata are present, dependencies exist in the archive or in NEW. The only defect found is that scala-js-library does not depend on scala-library-2.13 although its installed POM declares it and its jar's Scala classes need it.

Issues

1. [blocker] [licensing] debian/copyright omits the Mozilla Contributors CC-BY-SA doc comments in 17 scala.scalajs.js files

  • Files: library/src/main/scala/scala/scalajs/js/Array.scala:13-15, library/src/main/scala/scala/scalajs/js/Date.scala:13-15, library/src/main/scala/scala/scalajs/js/Dictionary.scala:13-15, library/src/main/scala/scala/scalajs/js/Dynamic.scala:13-15, library/src/main/scala/scala/scalajs/js/Error.scala:13-15, library/src/main/scala/scala/scalajs/js/Function.scala:13-15, library/src/main/scala/scala/scalajs/js/JSNumberOps.scala:13-15, library/src/main/scala/scala/scalajs/js/JSON.scala:13-15, library/src/main/scala/scala/scalajs/js/JSStringOps.scala:13-15, library/src/main/scala/scala/scalajs/js/Math.scala:13-15, library/src/main/scala/scala/scalajs/js/Object.scala:13-15, library/src/main/scala/scala/scalajs/js/RegExp.scala:13-15, library/src/main/scala/scala/scalajs/js/ThisFunction.scala:13-15, library/src/main/scala/scala/scalajs/js/Tuple.scala:13-15, library/src/main/scala/scala/scalajs/js/UnicodeNormalizationForm.scala:13-15, library/src/main/scala-new-collections/scala/scalajs/js/Any.scala:13-15, library/src/main/scala-old-collections/scala/scalajs/js/Any.scala:13-15, debian/copyright:18-20
  • Basis: checked, in the package or with a reference tool
  • Evidence: /** All doc-comments marked as "MDN" are by Mozilla Contributors, distributed under the Creative Commons Attribution-ShareAlike license from https://developer.mozilla.org/en-US/docs/Web/Reference/API (Array.scala:13-15); the catch-all stanza says Files: * / Copyright: 2013-2026 EPFL / License: Apache-2.0 (debian/copyright:18-20), and neither Mozilla nor CC-BY-SA occurs anywhere in the file.
  • Problem: Those files contain text held by Mozilla Contributors under CC-BY-SA, with its attribution and share-alike conditions, next to EPFL's Apache-2.0 code. CC-BY-SA is a free licence, so this is not a DFSG violation, but debian/copyright must record the holder and the licence for every file and include or point to the licence text (Policy 12.5, copyright-format 6.7 and 6.8); as it stands it states the wrong holder and licence for these 17 files and reproduces no CC-BY-SA terms.
  • Fix: Add a Files stanza for these 17 files with Copyright: Mozilla Contributors and a License: CC-BY-SA-... field giving the licence version the text was taken under and its full text (it is not in /usr/share/common-licenses). If the MDN text were rewritten, say so instead and drop the claim of CC-BY-SA from the files.

2. [important] [licensing] debian/copyright does not name Google Inc. for GWT-derived javalib code and CharacterTest

  • Files: javalib/src/main/scala/java/lang/Character.scala:472, javalib/src/main/scala/java/lang/_String.scala:294-296, test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/lang/CharacterTest.scala:296-305, debian/copyright:18-20, debian/copyright:75-104
  • Basis: checked, in the package or with a reference tool
  • Evidence: // ported from https://github.com/gwtproject/gwt/blob/master/user/super/com/google/gwt/emul/java/lang/Character.java and /* Both regionMatches ported from https://github.com/gwtproject/gwt/.../String.java */; the GWT/Harmony stanza (debian/copyright:75-104, Copyright: 2009 Google Inc. / The Apache Software Foundation / EPFL) lists 27 GWT test files but not CharacterTest.scala, which has Ported from https://github.com/gwtproject/gwt/.../CharacterTest.java.
  • Problem: This is GWT code, whose copyright is Google's and which the package itself already attributes to Google Inc. in the java.math stanza; the files fall through to Files: *, which names only EPFL. The licence (Apache-2.0) is right, so this is an attribution/holder omission, not a licence error, but debian/copyright is inaccurate for these files.
  • Fix: Extend the 2009 Google Inc. stanza (or add a stanza before Files: * is overridden) to cover javalib/src/main/scala/java/lang/Character.scala, javalib/src/main/scala/java/lang/_String.scala and test-suite/.../javalib/lang/CharacterTest.scala.

3. [important] [licensing] debian/copyright omits that javalib RedBlackTree.scala is copied from Scala 2.13 (EPFL and Lightbend)

  • Files: javalib/src/main/scala/java/util/RedBlackTree.scala:17-21, ir/shared/src/main/scala/org/scalajs/ir/Printers.scala:30, compiler/src/main/scala/org/scalajs/nscplugin/ExplicitInnerJS.scala:301, debian/copyright:18-20
  • Basis: checked, in the package or with a reference tool
  • Evidence: This implementation was copied and adapted from scala.collection.mutable.RedBlackTree as found in Scala 2.13.0.; /** Basically copied from scala.reflect.internal.Printers */; // Taken from ExplicitOuter. The package's own Scala sources and NOTICE say Copyright EPFL and Lightbend, Inc. dba Akka, and the scala213-library stanza names Lightbend, but Files: * names only EPFL.
  • Problem: RedBlackTree is a substantial implementation copied into javalib and shipped as IR in scalajs-javalib.jar; the Scala compiler/library code it and Printers.scala/ExplicitInnerJS.scala derive from is jointly held by EPFL and Lightbend (as the package's scala213-library stanza itself states). The catch-all stanza therefore names an incomplete set of holders for these files.
  • Fix: Add a Files stanza for these derived files naming EPFL and Lightbend, Inc. dba Akka (Apache-2.0), or fold them into a stanza that does.

4. [minor] [licensing] debian/copyright does not record the JSR-166 public-domain origin of RandomGenerator.scala

  • Files: javalib/src/main/scala/java/util/random/RandomGenerator.scala:164-169, debian/copyright:47-49
  • Basis: checked, in the package or with a reference tool
  • Evidence: The algorithms used in nextIntLong() with bounds were initially implemented for Int's as part of ThreadLocalRandom. That implementation had been written by Doug Lea with assistance from members of JCP JSR-166 Expert Group and released to the public domain, as explained at http://creativecommons.org/publicdomain/zero/1.0/; the ThreadLocalRandom stanza covers only that one file.
  • Problem: copyright-format 6.8 says public-domain information should be recorded in the Copyright field; the same Doug Lea/JSR-166 dedication recorded for ThreadLocalRandom is also in RandomGenerator.scala, but no stanza covers it. The licence is free either way, so this is an accuracy detail.
  • Fix: Extend the ThreadLocalRandom stanza's Files line to include javalib/src/main/scala/java/util/random/RandomGenerator.scala, or mention it in that stanza's Comment.

5. [minor] [licensing] debian/poms/*.pom are attributed to the maintainer although they are upstream's files

  • Files: debian/copyright:167-170, debian/poms/scalajs-linker_2.13.pom:1-30
  • Basis: checked, in the package or with a reference tool
  • Evidence: Files: debian/* / Copyright: 2026 Juan Manuel Méndez Rey <juan.mendezr@proton.me> with the comment debian/poms/*.pom are the POM files published by upstream on Maven Central for the same artifacts; the POMs themselves name org.scala-js as organization and list upstream's developers.
  • Problem: The nine POMs are copied from upstream (EPFL/org.scala-js), not written by the maintainer, so the single holder in the debian/* stanza is wrong for them.
  • Fix: Add a Files: debian/poms/* stanza with the upstream holder (EPFL), keeping the maintainer's copyright for the scripts, tools and man page.

6. [minor] [packaging] scala-js-library does not depend on scala-library-2.13 although its POM and jar need it

  • Files: debian/control:42-46, debian/poms/scalajs-library_2.13.pom:50-54
  • Basis: inferred from what was read, not seen directly
  • Evidence: debian/control's Package: scala-js-library has Depends: ${misc:Depends} only, while the installed POM declares <dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>2.13.18</version> as a compile dependency (rewritten to 2.13.x by debian/maven.rules and not removed by debian/maven.ignoreRules).
  • Problem: scalajs-library.jar ships JVM classes compiled from Scala sources (the other two jars are .sjsir only), so the Scala classes they refer to come from scala-library; a user who puts /usr/share/java/scalajs-library.jar on a JVM classpath without scala-library gets NoClassDefFoundError. The package should declare the dependency its own Maven metadata declares.
  • Fix: Add scala-library-2.13 (>= 2.13.18) to scala-js-library's Depends.

7. [minor] [packaging] Files-Excluded is set but the version carries no repack suffix

  • Files: debian/copyright, debian/changelog, debian/watch
  • Basis: found by the review tooling's own checks
  • Evidence: 1.22.0-1
  • Problem: debian/copyright has Files-Excluded, so uscan repacks the upstream tarball, but the version in debian/changelog does not say so with a suffix such as +dfsg or +ds, as is the convention for a tarball that differs from upstream's.
  • Fix: Add the suffix to the version, and Repacksuffix to debian/watch.

Verified

  • Read debian/copyright in full (DEP-5, correct Format URL); every Files stanza read, and the 15 stanzas' paths checked against the tree (all listed files exist).
  • The 13 files the prescan flagged for (c) ... LAMP/EPFL (scalalib/overrides-2.12/scala/Console.scala, collection/immutable/Range.scala, collection/mutable/ArrayBuilder.scala and the rest) are covered by Files: scalalib/overrides/* scalalib/overrides-2.12/* scalalib/overrides-2.13/* (debian/copyright:26-30), which names 2002-2013 LAMP/EPFL.
  • No binary artifacts in the tree: no images, fonts, PDFs, archives, .class, .sjsir or minified JavaScript; the only .js files are five small hand-written fixtures under test-suite/js/src/test/resources{,commonjs,esmodule}/ and scripts/test-html.js.
  • Only five licence-bearing files exist besides debian/copyright: LICENSE and NOTICE at the top, logging/LICENSE, scala213-library/LICENSE and NOTICE, and junit-runtime's LICENSE-junit.txt (EPL-1.0) and LICENSE-hamcrest.txt (BSD-3-clause); all are read and each has a copyright stanza.
  • Generated code has its generator in the package: javalib/src/main/scala/java/lang/Character.scala's tables are produced by project/UnicodeDataGen.scala; all jars are compiled from the shipped sources by debian/build-driver.sh, and debian/README.source maps each artifact to its sources.
  • Licence texts: Apache-2.0 and Expat are given with a pointer to /usr/share/common-licenses/Apache-2.0; EPL-1.0 and BSD-3-clause are reproduced in full; the public-domain stanzas carry their explanation. The combination Apache-2.0 + Expat in WasmRuntime.scala and EPL/BSD in the unbuilt junit-runtime is licence-compatible.
  • No non-free or restricted wording anywhere in the tree: searches for non-commercial, no-modification, field-of-use, JSON 'Good, not Evil', GNU licences, MPL and MIT-style notices found nothing outside the licence files listed above.
  • Other third-party origins in the tree are covered: javalib java.math (GWT/Android libcore, Google/ASF), StackTrace.scala (stacktrace.js, public domain), test-suite SourceMapTestTemplate.scala (nestorpersist/json, stanza with Persist Software), scala213-library BigInt.scala (Guava), scala213-library Promise.scala (Doug Lea, public domain), and the GWT-derived test files listed in debian/copyright:75-104.
  • junit-runtime's com/novocode/junit/JUnitFramework.scala and org/scalajs/junit/* are EPFL Apache-2.0 (headers read) and fall under Files: *; they are plus the EPL/BSD translations not built or shipped.
  • Build dependencies checked with apt-cache: scala 2.12.21+ds3-2 and scala-asm 9.9.0-scala-1-1 exist; dh-sequence-maven-repo-helper is provided by maven-repo-helper 1.13; scala-2.13 and scala-library-2.13 are not in the archive but are built by the scala-2.13 2.13.18+ds2-1 upload in NEW, which is not a fault.
  • Installed POMs are cleaned by mh_install with debian/maven.ignoreRules, so the linker POM's compile dependencies on closure-compiler v20220202 and scala-parallel-collections 1.2.0 (neither in Debian, both features deliberately removed) are dropped from the published metadata; scala-library and the other real dependencies are rewritten by debian/maven.rules and are provided by the scala-2.13 package.
  • Patches: both have DEP-3 headers (Description, Author, Forwarded: not-needed, Last-Update) and match what build-driver.sh excludes (backend/closure, ParCollOps.scala); no obsolete or unforwarded-for-a-reason patch.
  • autopkgtest: debian/tests/control names hello-link, whose script is present and exercises scalac with the installed plugin, both linker modes and node; nodejs <!nocheck> matches its node use, and at compat 14 dh skips override_dh_auto_test under nocheck (the explicit ifeq in debian/rules is redundant, not wrong).
  • debian/scala-js-library.lintian-overrides is justified: scalajs-javalib.jar and scalajs-scalalib.jar contain only .sjsir IR, so codeless-jar is expected for them; scalajs-library.jar does contain classes and is not overridden.
  • Packaging files all read: control, rules, changelog (initial release, unstable, Closes #1149816), source/format (3.0 (quilt)), gbp.conf, README.source, upstream/metadata, maven.rules, maven.ignoreRules, lrc.config, both .poms lists, the nine POMs, the .docs/.manpages files, scalajs-link, scalajs-link.1 and debian/tools/*; Standards-Version 4.7.4 against Policy 4.7.4.1, and Vcs-Git/Vcs-Browser are correct.
  • Coverage: all 2760 files were reached by directory listings and targeted searches of copyright/licence wording; large directories (scala213-library, test-suite, partest-suite, scala-test-suite, javalib) were searched exhaustively for holder and provenance notices rather than read file by file.
  • uscan found the packaged version as the newest upstream release (upstream 1.22.0, packaged 1.22.0).
  • Every pointer of debian/copyright to /usr/share/common-licenses names a file that is there (Apache-2.0).

Not confirmed

  • File modes cannot be read from the unpacked tree; if debian/tests/hello-link is not executable, autopkgtest will refuse to run it (debian/rules and debian/build-driver.sh are invoked through sh/make and are unaffected).
  • A clean build depends on the exact jar paths that build-driver.sh and debian/tests/hello-link hard-code (/usr/share/java/scala-library-2.12.jar, scala-compiler-2.13.jar, scala-reflect-2.13.jar, and /usr/share/maven-repo/org/scala-lang/modules/scala-asm/debian/scala-asm-debian.jar). Those jars come from the scala and scala-2.13 packages, which are not installed on the reviewing system (scala-2.13 is in NEW), so I could not verify the names; only a build in a clean chroot would settle it. I am not reporting a build failure from this.

Proposed changes

None.

Uploader's response to the LLM review

The uploader rejected this upload in response to the review.

Review Information

rejected — allocated to dfsg-uploader 0 hours ago, started 0 hours ago, completed 0 hours ago.

Final Comment

The uploader rejected this upload in response to the automated (LLM) review of it, so that they can fix the problems it found and upload again.

The uploader said:

Thanks, all right. Fixed in 1.22.0+ds-1, which replaces this upload: https://salsa.debian.org/java-team/scala-js/-/merge_requests/1

  1. The MDN doc comments are removed by a +ds repack, as in scala3; the built jars are unchanged.
    2-5. Google, EPFL and Lightbend, JSR-166 and the POMs now have their own stanzas.
  2. scala-js-library depends on scala-library-2.13.
  3. Fixed by the +ds repack.

Back to Dashboard | View all reviews for this package