DFSG NEW Queue

DFSG, Licensing & New Packages Team

python-newspaper 0.2.8-1

Package Information

DescriptionPython3 library for article web scraping and curation

Scrape articles on the web and extract news url, text, top image, keywords, summary, author, google trending terms. It supports multiple languages, and proxies.

MaintainerDebian Python Team <team+python@tracker.debian.org>
Changed ByJérémy Lal <kapouer@melix.org>
Sponsorkapouer@melix.org
Distributionunstable
Architectureall
VCSgit: https://salsa.debian.org/python-team/packages/python3-newspaper.git (browse)
Closes#1151034
Trackerhttps://tracker.debian.org/pkg/python-newspaper
Uploaded6 hours ago

New Package Report

.changes◂
Distributionunstable
DateFri, 16 Oct 2026 15:44:57 +0200
Sourcepython-newspaper
Version0.2.8-1
Changed-ByJérémy Lal <kapouer@melix.org>
Architecturesource all
Changelog◂
python-newspaper (0.2.8-1) unstable; urgency=low
 .
   * Initial release (Closes: #1151034)
.dsc◂
Priorityoptional
Componentmain
Package-Listpython3-newspaper deb python optional arch=all
Sectionpython
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: newspaper3k
Source: https://github.com/codelucas/newspaper/

Files: *
Copyright: 2013 Lucas Ou-Yang
License: Expat

Files: newspaper/parsers.py newspaper/extractors.py
Copyright: Xavier Grangier
License: Apache-2.0
Comment: Newspaper uses much of python-goose's extraction code. View their license:
 https://github.com/codelucas/newspaper/blob/master/GOOSE-LICENSE.txt
 This redirects to https://github.com/grangier/python-goose, unreachable.
 Investigating internet cache shows the license is actually Apache-2.0.

Files: newspaper/resources/text/*
Copyright: 2001-2025 The Apache Software Foundation
License: Apache-2.0
Comment: Most stopwords are probably taken from Lucene's StopAnalyzer, see
 https://github.com/apache/lucene/tree/main/lucene/analysis/common/src/resources/org/apache/lucene/analysis

Files: debian/*
Copyright: 2026 Jérémy Lal <kapouer@melix.org>
License: Expat

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.

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 2.0 can
 be found in "/usr/share/common-licenses/Apache-2.0"

DFSG Assistant LLM REVIEW 0 blocker, 0 important, 2 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 3 hours ago.

Report◂

DFSG NEW review for python-newspaper version 0.2.8-1

Summary

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

Licensing

All source is free: the newspaper modules and data carry MIT (Expat) by Lucas Ou-Yang 2013/2014, mislabelled only parsers.py and extractors.py as python-goose-derived Apache-2.0 (Xavier Grangier), and resources/text stopword lists are attributed to the Apache Software Foundation under Apache-2.0. debian/copyright is in valid DEP-5 (Format: 1.0) with complete Expat text and Apache-2.0 referred to common-licenses. Both licences are DFSG-free and compatible. No minified, compiled, or binary files; no Files-Excluded needed. One minor under-attribution of further goose-derived modules is noted.

Packaging

Clean, modern single-binary python-pure package: debhelper compat 14 via Build-Depends, dh-sequence-python3/pybuild with PYBUILD_SYSTEM=pyproject, Architecture all, Standards-Version 4.7.4, sane patch set with DEP-3 headers (icu substitution for tinysegmenter; distutils drop), py3dist-overrides mapping jieba3k to python3-jieba. Explicit Depends on python3-lxml-html-clean and python3-icu are the two modules dh_python3 cannot map; the rest of the runtime closure (bs4, lxml, requests, feedparser, tldextract, PIL, nltk, jieba, dateutil) is added by dh_python3 at compat 14. Only a Vcs-Browser URL typo.

Issues

1. [minor] [licensing] Goose-derived modules covered only by the Expat catch-all

  • Files: debian/copyright (Files: * stanza), newspaper/cleaners.py, newspaper/outputformatters.py, newspaper/videos/extractors.py
  • Basis: inferred from what was read, not seen directly
  • Evidence: parsers.py header states 'Newspaper uses a lot of python-goose's parsing code...'; cleaners.py (DocumentCleaner) and outputformatters.py (OutputFormatter) and videos/extractors.py (VideoExtractor) mirror the python-goose class/API structure exactly, yet debian/copyright attributes only parsers.py and extractors.py as goose-derived Apache-2.0 and lets the others fall under Files: * ... 2013 Lucas Ou-Yang Expat.
  • Problem: If these modules are derived from python-goose (Apache-2.0, as the structure strongly suggests), their holder/licence in debian/copyright should attribute Grangier/ASF under Apache-2.0 rather than Lucas Ou-Yang/Expat. Not a DFSG problem (Apache-2.0 is free), but a copyright-accuracy risk. I could not confirm goose origin against external source.
  • Fix: Extend the goose-derived Apache-2.0 stanza (or add a Comment) to cover cleaners.py, outputformatters.py and videos/extractors.py, or verify they are original work.

2. [minor] [packaging] Vcs-Browser URL misspells package name

  • Files: debian/control
  • Basis: checked, in the package or with a reference tool
  • Evidence: Vcs-Browser: https://salsa.debian.org/python-team/packages/python3-newpaper while Vcs-Git uses python3-newspaper.git.
  • Problem: Vcs-Browser points to a non-existent page (missing 's' in 'newspaper'); the repository link is dead.
  • Fix: Change to .../packages/python3-newspaper.

Verified

  • Prescan: author-check scanned 74 files; every holder found is named in debian/copyright; no built/minified/binary files flagged.
  • debian/copyright is valid DEP-5 with Format 1.0; Files: * (Expat), Files: newspaper/parsers.py newspaper/extractors.py (Apache-2.0, Grangier), Files: newspaper/resources/text/* (ASF 2001-2025, Apache-2.0), debian/* (Expat); full Expat text and Apache-2.0 -> /usr/share/common-licenses included.
  • All newspaper/.py and newspaper/videos/.py carry __copyright__ = 'Copyright 2014, Lucas Ou-Yang' with MIT header; LICENSE is MIT 2013 Lucas Ou-Yang (year drift is minor). Covered by Files: * Expat.
  • Of the stopword files, only resources/text/stopwords-fr.txt carries the ASF Apache header; the others are word lists without headers but are all attributed to ASF/Apache-2.0 (maintainer assertion for Lucene/Snowball origin).
  • resources/misc (useragents.txt, google_sources.txt, popular_sources.txt, stopwords-nlp-en.txt) are plain word/string data, free.
  • Whole tree enumerated (gitignore:false, hidden:true): only upstream files plus .egg-info sdist metadata; no minified JS/CSS, .jar, .pyc, firmware, or generated-code-without-source.
  • Expat and Apache-2.0 are both DFSG-free and compatible when combined.
  • requirements.txt extra deps (PyYAML, feedfinder2, tinysegmenter) are not imported anywhere in newspaper/; jieba3k and tinysegmenter are handled by py3dist-overrides and the icu patch respectively, so no Build/Depends gap.
  • Patches applied: replace-tinysegmenter-by-icu.patch and drop-distutils.patch, both with DEP-3 headers; Build-Depends include the needed python3-icu (Depends present) and the removed tinysegmenter is not required.
  • Binary Depends lists only python3-lxml-html-clean and python3-icu (the two modules dh_python3 cannot map); at compat 14 the remaining runtime closure comes from ${python3:Depends}/${misc:Depends} substvars automatically.
  • uscan found the packaged version as the newest upstream release (upstream 0.2.8, packaged 0.2.8).
  • Every pointer of debian/copyright to /usr/share/common-licenses names a file that is there (Apache-2.0).

Not confirmed

  • Whether cleaners.py/outputformatters.py/videos/extractors.py are actually derived from python-goose (and so Apache-2.0) or are original work - external goose source was not read; reported as minor above on structural evidence.

Proposed changes

None.

Uploader's response to the LLM review

This second LLM review still finds a misspelled Vcs-Browser, but I don't think it's still the case ?

— Jérémy Lal (kapouer), 3 hours ago

Other Reviews of this Package

VersionHashAllocatedCompletedReviewerStatusDetails
0.2.8-1 5337298e… 2026-10-19 08:18 2026-10-19 08:18 dfsg-uploader rejected VIEW

Back to Dashboard | View all reviews for this package