summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/build.py88
-rw-r--r--debian/changelog157
-rw-r--r--debian/clean2
-rw-r--r--debian/control42
-rw-r--r--debian/copyright139
-rw-r--r--debian/docs1
-rw-r--r--debian/flit.lintian-overrides4
-rw-r--r--debian/flit.manpages1
-rw-r--r--debian/gbp.conf2
-rw-r--r--debian/list_classifiers698
-rw-r--r--debian/patches/0002-use-system-tomli.patch23
-rw-r--r--debian/patches/build-with-local-flit_core.patch23
-rw-r--r--debian/patches/debian_installer_allowed_root.patch28
-rw-r--r--debian/patches/series3
-rwxr-xr-xdebian/rules41
-rw-r--r--debian/salsa-ci.yml4
-rw-r--r--debian/source/format1
-rw-r--r--debian/source/lintian-overrides2
-rw-r--r--debian/tests/control10
-rw-r--r--debian/tests/flit-user27
-rw-r--r--debian/watch2
21 files changed, 1298 insertions, 0 deletions
diff --git a/debian/build.py b/debian/build.py
new file mode 100644
index 0000000..8e0b0aa
--- /dev/null
+++ b/debian/build.py
@@ -0,0 +1,88 @@
+#!/usr/bin/env python3
+
+# Symlink install flit & flit_core for development.
+# Most projects can do the same with 'flit install --symlink'.
+# But that doesn't work until Flit is installed, so we need some bootstrapping.
+
+import argparse
+import logging
+import os
+import os.path as osp
+from pathlib import Path
+import shutil
+import sys
+
+my_dir = Path(__file__).parent
+os.chdir(str(my_dir))
+sys.path.insert(0, 'flit_core')
+
+from flit.install import Installer
+
+logging.basicConfig(level=logging.INFO)
+log = logging.getLogger(__name__)
+
+class DebianInstaller(Installer):
+ def install_directly(self):
+ """Install a module/package into package directory, and create its scripts.
+ """
+ dirs = self._get_dirs(user=self.user)
+ dirs['purelib'] = 'debian/flit/' + dirs['stdlib'] + '/dist-packages'
+ dirs['scripts'] = 'debian/flit'+ dirs['scripts']
+ os.makedirs(dirs['purelib'], exist_ok=True)
+ os.makedirs(dirs['scripts'], exist_ok=True)
+
+ dst = osp.join(dirs['purelib'], osp.basename(self.module.path))
+ if osp.lexists(dst):
+ if osp.isdir(dst) and not osp.islink(dst):
+ shutil.rmtree(dst)
+ else:
+ os.unlink(dst)
+
+ # Install requirements to target environment
+ # self.install_requirements()
+
+ # Install requirements to this environment if we need them to
+ # get docstring & version number.
+ #if self.python != sys.executable:
+ # self.install_reqs_my_python_if_needed()
+
+ src = str(self.module.path)
+ if self.symlink:
+ log.info("Symlinking %s -> %s", src, dst)
+ os.symlink(osp.abspath(self.module.path), dst)
+ self.installed_files.append(dst)
+ elif self.pth:
+ # .pth points to the the folder containing the module (which is
+ # added to sys.path)
+ pth_target = osp.dirname(osp.abspath(self.module.path))
+ pth_file = pathlib.Path(dst).with_suffix('.pth')
+ log.info("Adding .pth file %s for %s", pth_file, pth_target)
+ with pth_file.open("w") as f:
+ f.write(pth_target)
+ self.installed_files.append(pth_file)
+ elif self.module.is_package:
+ log.info("Copying directory %s -> %s", src, dst)
+ shutil.copytree(src, dst)
+ self._record_installed_directory(dst)
+ else:
+ log.info("Copying file %s -> %s", src, dst)
+ shutil.copy2(src, dst)
+ self.installed_files.append(dst)
+
+ scripts = self.ini_info.entrypoints.get('console_scripts', {})
+ self.install_scripts(scripts, dirs['scripts'])
+
+ self.write_dist_info(dirs['purelib'])
+
+install_kwargs = {'user': False, 'symlink': False}
+# Install flit_core
+DebianInstaller.from_ini_path(
+ my_dir / 'flit_core' / 'pyproject.toml', **install_kwargs
+).install_directly()
+print("Linked flit_core into site-packages.")
+
+# Install flit
+DebianInstaller.from_ini_path(
+ my_dir / 'pyproject.toml', **install_kwargs
+).install_directly()
+print("Linked flit into site-packages.")
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..20b4f99
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,157 @@
+flit (3.8.0-3) unstable; urgency=medium
+
+ [ Stefano Rivera ]
+ * Replace the hacks in debian/rules to support multiple wheels with --name.
+ (Closes: #1026678)
+
+ [ Scott Kitterman ]
+ * Bump standards-version to 4.6.2 without further change
+
+ -- Scott Kitterman <scott@kitterman.com> Wed, 04 Jan 2023 18:12:03 -0500
+
+flit (3.8.0-2) unstable; urgency=medium
+
+ * Update Vcs-Git field in debian/control to new Debian Python Team Salsa
+ layout
+ * Add manual depends on python3-tomli (upstream relies on embedded copy not
+ used in Debian)
+
+ -- Scott Kitterman <scott@kitterman.com> Sun, 20 Nov 2022 13:58:30 -0500
+
+flit (3.8.0-1) unstable; urgency=medium
+
+ * New upstream release
+ - Refresh patches
+ * Update lintian overrides, add d/s/lintian-overrides
+
+ -- Scott Kitterman <scott@kitterman.com> Wed, 09 Nov 2022 17:00:43 -0500
+
+flit (3.7.1-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream release.
+ * Refresh patches.
+ * Build with pybuild, fixing FTBFS. (Closes: #1009392)
+ * Patch: Build flit with the local flit_core.
+ * Bump Standards-Version to 4.6.1, no changes needed.
+ * Add myself to copyright.
+
+ -- Stefano Rivera <stefanor@debian.org> Fri, 02 Sep 2022 18:58:37 +0200
+
+flit (3.6.0-1) unstable; urgency=medium
+
+ * New upstream release
+ * Move removal of build.py from install to clean
+ * Update debian/build.py for removal of build_thyself
+ * Add debian/patches/0002-use-system-tomli.patch since we will use the
+ system tomli
+ * Update debian/rules to remove the vendored tomli from the build
+ * Update autopkgtest depends
+ * Run package tests during build
+ * Clean up dist-info directory:
+ - Remove direct_url.json, not useful in Debian
+ - Update RECORD to reflect files installed by the package
+
+ -- Scott Kitterman <scott@kitterman.com> Thu, 30 Dec 2021 11:50:05 -0500
+
+flit (3.5.1-1) unstable; urgency=medium
+
+ * New upstream release
+ - Refresh patches
+ * Replace build-depends on python3-toml with python3-tomli and
+ python3-tomli-w
+ * Remove build-depends on python3-pygments, not required
+ * Remove manually added binary depends, included in python3:Depends
+ * Update long description to mention PEP 621 support
+ * Correctly specify that build-deps not needed for clean are
+ Build-Depends-Indep
+ * Use sphinx-build instead of help2man to generate a more complete and
+ current man page
+ * Delete unneeded build-depends on python3-docutils and python3-requests
+ * Update lintian-overrides
+ * Set minimum dh-python version to 5.20211213 to avoid issues with depends
+ generation in earlier versions
+
+ -- Scott Kitterman <scott@kitterman.com> Mon, 13 Dec 2021 20:31:59 -0500
+
+flit (3.3.0-1) unstable; urgency=medium
+
+ * Team upload
+
+ [ Steffen Moeller ]
+ * New upstream version 3.3.0 (Closes: #994589)
+ * d/control: Bumped standard to 4.5.1
+ * d/rules: removing __pycache__ folders from previous builds
+
+ [ Michael R. Crusoe ]
+ * Standards-Version: 4.6.0 (routine-update)
+ * debhelper-compat 13 (routine-update)
+ * Respect DEB_BUILD_OPTIONS in override_dh_auto_test target (routine-
+ update)
+ * Add salsa-ci file (routine-update)
+ * Rules-Requires-Root: no (routine-update)
+ * watch file standard 4 (routine-update)
+ * {Build-,}Depends: switch to python3-toml from -pytoml
+
+ [ Stefano Rivera ]
+ * Run autopkgtest against all supported Python 3 versions.
+
+ -- Stefano Rivera <stefanor@debian.org> Thu, 25 Nov 2021 16:51:52 -0400
+
+flit (3.0.0-1) unstable; urgency=medium
+
+ * Team upload
+
+ [ Scott Kitterman ]
+ * Replace failing automatic man page generation with manual process that at
+ least works (Closes: #977044)
+
+ [ Ondřej Nový ]
+ * d/control: Update Maintainer field with new Debian Python Team
+ contact address.
+ * d/control: Update Vcs-* fields with new Debian Python Team Salsa
+ layout.
+
+ [ Antonio Terceiro ]
+ * New upstream version 3.0.0
+ - Makes RECORD deterministic (Closes: #968636)
+ - Builds reproducibly (Closes: #964440)
+ * debian/build.py: fix location of top level directory (Closes: #975796)
+ * debian/build.py: fix wrt the new upstream release
+ * autopkgtest: drop unnecessary breaks-testbed restriction
+ * autopkgtest: only test against Debian
+ * autopkgtest: ignore test that fails without `python`
+
+ -- Antonio Terceiro <terceiro@debian.org> Thu, 10 Dec 2020 12:28:33 -0300
+
+flit (2.3.0-3) unstable; urgency=medium
+
+ * Add missing autopkgtest depends on tox
+
+ -- Scott Kitterman <scott@kitterman.com> Mon, 13 Apr 2020 12:31:23 -0400
+
+flit (2.3.0-2) unstable; urgency=medium
+
+ * Add autopkgtest running upstream test suite with tox
+ * Patch install.Installer class not to error out when subclassed as
+ DebianInstaller from dh-python
+
+ -- Scott Kitterman <scott@kitterman.com> Mon, 13 Apr 2020 02:15:02 -0400
+
+flit (2.3.0-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Scott Kitterman <scott@kitterman.com> Sat, 11 Apr 2020 23:00:36 -0400
+
+flit (2.2.0-2) unstable; urgency=medium
+
+ * Add missing license to debian/copyright
+
+ -- Scott Kitterman <scott@kitterman.com> Mon, 06 Apr 2020 16:25:01 -0400
+
+flit (2.2.0-1) unstable; urgency=medium
+
+ * Initial release (Closes: #953992)
+
+ -- Scott Kitterman <scott@kitterman.com> Mon, 23 Mar 2020 11:12:49 -0400
diff --git a/debian/clean b/debian/clean
new file mode 100644
index 0000000..6e38511
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,2 @@
+debian/.doctrees/*
+debian/flit.1
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..07ec7a7
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,42 @@
+Source: flit
+Section: python
+Priority: optional
+Maintainer: Debian Python Team <team+python@tracker.debian.org>
+Uploaders: Scott Kitterman <scott@kitterman.com>
+Build-Depends: debhelper-compat (= 13),
+ dh-sequence-python3,
+ pybuild-plugin-pyproject,
+ python3-all,
+Build-Depends-Indep:
+ python3-tomli,
+ python3-tomli-w,
+ python3-sphinx,
+ python3-pytest,
+ python3-requests,
+ python3-responses,
+ python3-testpath,
+Standards-Version: 4.6.2
+Homepage: https://flit.readthedocs.io/en/latest/
+Rules-Requires-Root: no
+Vcs-Git: https://salsa.debian.org/python-team/packages/flit.git
+Vcs-Browser: https://salsa.debian.org/python-team/packages/flit
+
+Package: flit
+Architecture: all
+Depends: ${misc:Depends},
+ python3-tomli,
+ ${python3:Depends},
+Description: simple way to put Python packages and modules on PyPI (PEP 517)
+ Flit is a easy way to put Python packages and modules on PyPI. It tries to
+ require less thought about packaging and help you avoid common mistakes.
+ .
+ Flit supports PEP 517 Python packaging and PEP 621 project metadata.
+ .
+ Make the easy things easy and the hard things possible is an old motto from
+ the Perl community. Flit is entirely focused on the easy things part of that,
+ and leaves the hard things up to other tools.
+ .
+ Specifically, the easy things are pure Python packages with no build steps
+ (neither compiling C code, nor bundling Javascript, etc.). The vast majority
+ of packages on PyPI are like this: plain Python code, with maybe some static
+ data files like icons included.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..18673a4
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,139 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: flit
+Source: https://pypi.org/project/flit
+
+
+Files: *
+Copyright: (c) 2015, Thomas Kluyver and contributors
+License: BSD-3-Clause
+
+Files: flit/upload.py
+Copyright: (c) 2015, Thomas Kluyver and contributors
+License: PSF-2.0
+
+Files: flit/log.py
+Copyright: 2012 Facebook
+License: Apache-2.0
+
+Files: flit/vendorized/readme/rst.py
+Copyright: 2014 Donald Stufft
+License: Apache-2.0
+
+Files: flit_core/flit_core/versionno.py
+Copyright: (c) Donald Stufft and individual contributors
+License: BSD-2-Clause
+
+Files: debian/*
+Copyright: 2020 Scott Kitterman <scott@kitterman.com>
+ 2022 Stefano Rivera <stefanor@debian.org>
+License: BSD-3-Clause
+
+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:
+ .
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ .
+ 2. 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.
+ .
+ 3. Neither the name of the copyright holder 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 HOLDER 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: PSF-2.0
+ PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+ .
+ 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"),
+ and the Individual or Organization ("Licensee") accessing and otherwise using
+ this software ("Python") in source or binary form and its associated
+ documentation.
+ .
+ 2. Subject to the terms and conditions of this License Agreement, PSF hereby
+ grants Licensee a nonexclusive, royalty-free, world-wide license to
+ reproduce, analyze, test, perform and/or display publicly, prepare derivative
+ works, distribute, and otherwise use Python alone or in any derivative
+ version, provided, however, that PSF's License Agreement and PSF's notice of
+ copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python
+ Software Foundation; All Rights Reserved" are retained in Python alone or in
+ any derivative version prepared by Licensee.
+ .
+ 3. In the event Licensee prepares a derivative work that is based on or
+ incorporates Python or any part thereof, and wants to make the derivative
+ work available to others as provided herein, then Licensee hereby agrees to
+ include in any such work a brief summary of the changes made to Python.
+ .
+ 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES
+ NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT
+ NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF
+ PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
+ .
+ 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY
+ INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF
+ MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE
+ THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+ .
+ 6. This License Agreement will automatically terminate upon a material breach
+ of its terms and conditions.
+ .
+ 7. Nothing in this License Agreement shall be deemed to create any
+ relationship of agency, partnership, or joint venture between PSF and
+ Licensee. This License Agreement does not grant permission to use PSF
+ trademarks or trade name in a trademark sense to endorse or promote products
+ or services of Licensee, or any third party.
+ .
+ 8. By copying, installing or otherwise using Python, Licensee agrees to be
+ bound by the terms and conditions of this License Agreement.
+
+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 here:
+ /usr/share/common-licenses/Apache-2.0
+
+License: BSD-2-Clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ .
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ .
+ 2. 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.
+ .
+ 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 HOLDER 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.
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..a1320b1
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1 @@
+README.rst
diff --git a/debian/flit.lintian-overrides b/debian/flit.lintian-overrides
new file mode 100644
index 0000000..3726daf
--- /dev/null
+++ b/debian/flit.lintian-overrides
@@ -0,0 +1,4 @@
+# These are for flit templates and tests, lintian is (understandably) wrong.
+flit binary: script-not-executable [usr/lib/python3/dist-packages/flit_core/tests/samples/package1/data_dir/foo.sh]
+flit binary: extra-license-file
+flit binary: package-contains-documentation-outside-usr-share-doc
diff --git a/debian/flit.manpages b/debian/flit.manpages
new file mode 100644
index 0000000..41f999f
--- /dev/null
+++ b/debian/flit.manpages
@@ -0,0 +1 @@
+debian/flit.1
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 0000000..3879982
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,2 @@
+[DEFAULT]
+debian-branch=debian/master
diff --git a/debian/list_classifiers b/debian/list_classifiers
new file mode 100644
index 0000000..fbc133f
--- /dev/null
+++ b/debian/list_classifiers
@@ -0,0 +1,698 @@
+Development Status :: 1 - Planning
+Development Status :: 2 - Pre-Alpha
+Development Status :: 3 - Alpha
+Development Status :: 4 - Beta
+Development Status :: 5 - Production/Stable
+Development Status :: 6 - Mature
+Development Status :: 7 - Inactive
+Environment :: Console
+Environment :: Console :: Curses
+Environment :: Console :: Framebuffer
+Environment :: Console :: Newt
+Environment :: Console :: svgalib
+Environment :: Handhelds/PDA's
+Environment :: MacOS X
+Environment :: MacOS X :: Aqua
+Environment :: MacOS X :: Carbon
+Environment :: MacOS X :: Cocoa
+Environment :: No Input/Output (Daemon)
+Environment :: OpenStack
+Environment :: Other Environment
+Environment :: Plugins
+Environment :: Web Environment
+Environment :: Web Environment :: Buffet
+Environment :: Web Environment :: Mozilla
+Environment :: Web Environment :: ToscaWidgets
+Environment :: Win32 (MS Windows)
+Environment :: X11 Applications
+Environment :: X11 Applications :: Gnome
+Environment :: X11 Applications :: GTK
+Environment :: X11 Applications :: KDE
+Environment :: X11 Applications :: Qt
+Framework :: AiiDA
+Framework :: AsyncIO
+Framework :: BEAT
+Framework :: BFG
+Framework :: Bob
+Framework :: Bottle
+Framework :: Buildout
+Framework :: Buildout :: Extension
+Framework :: Buildout :: Recipe
+Framework :: CastleCMS
+Framework :: CastleCMS :: Theme
+Framework :: Chandler
+Framework :: CherryPy
+Framework :: CubicWeb
+Framework :: Dash
+Framework :: Django
+Framework :: Django :: 1.10
+Framework :: Django :: 1.11
+Framework :: Django :: 1.4
+Framework :: Django :: 1.5
+Framework :: Django :: 1.6
+Framework :: Django :: 1.7
+Framework :: Django :: 1.8
+Framework :: Django :: 1.9
+Framework :: Django :: 2.0
+Framework :: Django :: 2.1
+Framework :: Django :: 2.2
+Framework :: Django :: 3.0
+Framework :: Django CMS
+Framework :: Django CMS :: 3.4
+Framework :: Django CMS :: 3.5
+Framework :: Django CMS :: 3.6
+Framework :: Django CMS :: 3.7
+Framework :: Flake8
+Framework :: Flask
+Framework :: Hypothesis
+Framework :: IDLE
+Framework :: IPython
+Framework :: Jupyter
+Framework :: Lektor
+Framework :: Masonite
+Framework :: Matplotlib
+Framework :: Nengo
+Framework :: Odoo
+Framework :: Opps
+Framework :: Paste
+Framework :: Pelican
+Framework :: Pelican :: Plugins
+Framework :: Pelican :: Themes
+Framework :: Plone
+Framework :: Plone :: 3.2
+Framework :: Plone :: 3.3
+Framework :: Plone :: 4.0
+Framework :: Plone :: 4.1
+Framework :: Plone :: 4.2
+Framework :: Plone :: 4.3
+Framework :: Plone :: 5.0
+Framework :: Plone :: 5.1
+Framework :: Plone :: 5.2
+Framework :: Plone :: 5.3
+Framework :: Plone :: 6.0
+Framework :: Plone :: Addon
+Framework :: Plone :: Core
+Framework :: Plone :: Theme
+Framework :: Pylons
+Framework :: Pyramid
+Framework :: Pytest
+Framework :: Review Board
+Framework :: Robot Framework
+Framework :: Robot Framework :: Library
+Framework :: Robot Framework :: Tool
+Framework :: Scrapy
+Framework :: Setuptools Plugin
+Framework :: Sphinx
+Framework :: Sphinx :: Extension
+Framework :: Sphinx :: Theme
+Framework :: tox
+Framework :: Trac
+Framework :: Trio
+Framework :: Tryton
+Framework :: TurboGears
+Framework :: TurboGears :: Applications
+Framework :: TurboGears :: Widgets
+Framework :: Twisted
+Framework :: Wagtail
+Framework :: Wagtail :: 1
+Framework :: Wagtail :: 2
+Framework :: ZODB
+Framework :: Zope
+Framework :: Zope2
+Framework :: Zope :: 2
+Framework :: Zope3
+Framework :: Zope :: 3
+Framework :: Zope :: 4
+Framework :: Zope :: 5
+Intended Audience :: Customer Service
+Intended Audience :: Developers
+Intended Audience :: Education
+Intended Audience :: End Users/Desktop
+Intended Audience :: Financial and Insurance Industry
+Intended Audience :: Healthcare Industry
+Intended Audience :: Information Technology
+Intended Audience :: Legal Industry
+Intended Audience :: Manufacturing
+Intended Audience :: Other Audience
+Intended Audience :: Religion
+Intended Audience :: Science/Research
+Intended Audience :: System Administrators
+Intended Audience :: Telecommunications Industry
+License :: Aladdin Free Public License (AFPL)
+License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
+License :: CeCILL-B Free Software License Agreement (CECILL-B)
+License :: CeCILL-C Free Software License Agreement (CECILL-C)
+License :: DFSG approved
+License :: Eiffel Forum License (EFL)
+License :: Free For Educational Use
+License :: Free For Home Use
+License :: Free for non-commercial use
+License :: Freely Distributable
+License :: Free To Use But Restricted
+License :: Freeware
+License :: GUST Font License 1.0
+License :: GUST Font License 2006-09-30
+License :: Netscape Public License (NPL)
+License :: Nokia Open Source License (NOKOS)
+License :: OSI Approved
+License :: OSI Approved :: Academic Free License (AFL)
+License :: OSI Approved :: Apache Software License
+License :: OSI Approved :: Apple Public Source License
+License :: OSI Approved :: Artistic License
+License :: OSI Approved :: Attribution Assurance License
+License :: OSI Approved :: Boost Software License 1.0 (BSL-1.0)
+License :: OSI Approved :: BSD License
+License :: OSI Approved :: CEA CNRS Inria Logiciel Libre License, version 2.1 (CeCILL-2.1)
+License :: OSI Approved :: Common Development and Distribution License 1.0 (CDDL-1.0)
+License :: OSI Approved :: Common Public License
+License :: OSI Approved :: Eclipse Public License 1.0 (EPL-1.0)
+License :: OSI Approved :: Eclipse Public License 2.0 (EPL-2.0)
+License :: OSI Approved :: Eiffel Forum License
+License :: OSI Approved :: European Union Public Licence 1.0 (EUPL 1.0)
+License :: OSI Approved :: European Union Public Licence 1.1 (EUPL 1.1)
+License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)
+License :: OSI Approved :: GNU Affero General Public License v3
+License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
+License :: OSI Approved :: GNU Free Documentation License (FDL)
+License :: OSI Approved :: GNU General Public License (GPL)
+License :: OSI Approved :: GNU General Public License v2 (GPLv2)
+License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
+License :: OSI Approved :: GNU General Public License v3 (GPLv3)
+License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
+License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)
+License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
+License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
+License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
+License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
+License :: OSI Approved :: Historical Permission Notice and Disclaimer (HPND)
+License :: OSI Approved :: IBM Public License
+License :: OSI Approved :: Intel Open Source License
+License :: OSI Approved :: ISC License (ISCL)
+License :: OSI Approved :: Jabber Open Source License
+License :: OSI Approved :: MirOS License (MirOS)
+License :: OSI Approved :: MIT License
+License :: OSI Approved :: MITRE Collaborative Virtual Workspace License (CVW)
+License :: OSI Approved :: Motosoto License
+License :: OSI Approved :: Mozilla Public License 1.0 (MPL)
+License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)
+License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
+License :: OSI Approved :: Nethack General Public License
+License :: OSI Approved :: Nokia Open Source License
+License :: OSI Approved :: Open Group Test Suite License
+License :: OSI Approved :: Open Software License 3.0 (OSL-3.0)
+License :: OSI Approved :: PostgreSQL License
+License :: OSI Approved :: Python License (CNRI Python License)
+License :: OSI Approved :: Python Software Foundation License
+License :: OSI Approved :: Qt Public License (QPL)
+License :: OSI Approved :: Ricoh Source Code Public License
+License :: OSI Approved :: SIL Open Font License 1.1 (OFL-1.1)
+License :: OSI Approved :: Sleepycat License
+License :: OSI Approved :: Sun Industry Standards Source License (SISSL)
+License :: OSI Approved :: Sun Public License
+License :: OSI Approved :: Universal Permissive License (UPL)
+License :: OSI Approved :: University of Illinois/NCSA Open Source License
+License :: OSI Approved :: Vovida Software License 1.0
+License :: OSI Approved :: W3C License
+License :: OSI Approved :: X.Net License
+License :: OSI Approved :: zlib/libpng License
+License :: OSI Approved :: Zope Public License
+License :: Other/Proprietary License
+License :: Public Domain
+License :: Repoze Public License
+Natural Language :: Afrikaans
+Natural Language :: Arabic
+Natural Language :: Basque
+Natural Language :: Bengali
+Natural Language :: Bosnian
+Natural Language :: Bulgarian
+Natural Language :: Cantonese
+Natural Language :: Catalan
+Natural Language :: Chinese (Simplified)
+Natural Language :: Chinese (Traditional)
+Natural Language :: Croatian
+Natural Language :: Czech
+Natural Language :: Danish
+Natural Language :: Dutch
+Natural Language :: English
+Natural Language :: Esperanto
+Natural Language :: Finnish
+Natural Language :: French
+Natural Language :: Galician
+Natural Language :: German
+Natural Language :: Greek
+Natural Language :: Hebrew
+Natural Language :: Hindi
+Natural Language :: Hungarian
+Natural Language :: Icelandic
+Natural Language :: Indonesian
+Natural Language :: Irish
+Natural Language :: Italian
+Natural Language :: Japanese
+Natural Language :: Javanese
+Natural Language :: Korean
+Natural Language :: Latin
+Natural Language :: Latvian
+Natural Language :: Lithuanian
+Natural Language :: Macedonian
+Natural Language :: Malay
+Natural Language :: Marathi
+Natural Language :: Nepali
+Natural Language :: Norwegian
+Natural Language :: Panjabi
+Natural Language :: Persian
+Natural Language :: Polish
+Natural Language :: Portuguese
+Natural Language :: Portuguese (Brazilian)
+Natural Language :: Romanian
+Natural Language :: Russian
+Natural Language :: Serbian
+Natural Language :: Slovak
+Natural Language :: Slovenian
+Natural Language :: Spanish
+Natural Language :: Swedish
+Natural Language :: Tamil
+Natural Language :: Telugu
+Natural Language :: Thai
+Natural Language :: Tibetan
+Natural Language :: Turkish
+Natural Language :: Ukrainian
+Natural Language :: Urdu
+Natural Language :: Vietnamese
+Operating System :: Android
+Operating System :: BeOS
+Operating System :: iOS
+Operating System :: MacOS
+Operating System :: MacOS :: MacOS 9
+Operating System :: MacOS :: MacOS X
+Operating System :: Microsoft
+Operating System :: Microsoft :: MS-DOS
+Operating System :: Microsoft :: Windows
+Operating System :: Microsoft :: Windows :: Windows 10
+Operating System :: Microsoft :: Windows :: Windows 3.1 or Earlier
+Operating System :: Microsoft :: Windows :: Windows 7
+Operating System :: Microsoft :: Windows :: Windows 8
+Operating System :: Microsoft :: Windows :: Windows 8.1
+Operating System :: Microsoft :: Windows :: Windows 95/98/2000
+Operating System :: Microsoft :: Windows :: Windows CE
+Operating System :: Microsoft :: Windows :: Windows NT/2000
+Operating System :: Microsoft :: Windows :: Windows Server 2003
+Operating System :: Microsoft :: Windows :: Windows Server 2008
+Operating System :: Microsoft :: Windows :: Windows Vista
+Operating System :: Microsoft :: Windows :: Windows XP
+Operating System :: OS/2
+Operating System :: OS Independent
+Operating System :: Other OS
+Operating System :: PalmOS
+Operating System :: PDA Systems
+Operating System :: POSIX
+Operating System :: POSIX :: AIX
+Operating System :: POSIX :: BSD
+Operating System :: POSIX :: BSD :: BSD/OS
+Operating System :: POSIX :: BSD :: FreeBSD
+Operating System :: POSIX :: BSD :: NetBSD
+Operating System :: POSIX :: BSD :: OpenBSD
+Operating System :: POSIX :: GNU Hurd
+Operating System :: POSIX :: HP-UX
+Operating System :: POSIX :: IRIX
+Operating System :: POSIX :: Linux
+Operating System :: POSIX :: Other
+Operating System :: POSIX :: SCO
+Operating System :: POSIX :: SunOS/Solaris
+Operating System :: Unix
+Programming Language :: Ada
+Programming Language :: APL
+Programming Language :: ASP
+Programming Language :: Assembly
+Programming Language :: Awk
+Programming Language :: Basic
+Programming Language :: C
+Programming Language :: C#
+Programming Language :: C++
+Programming Language :: Cold Fusion
+Programming Language :: Cython
+Programming Language :: Delphi/Kylix
+Programming Language :: Dylan
+Programming Language :: Eiffel
+Programming Language :: Emacs-Lisp
+Programming Language :: Erlang
+Programming Language :: Euler
+Programming Language :: Euphoria
+Programming Language :: F#
+Programming Language :: Forth
+Programming Language :: Fortran
+Programming Language :: Haskell
+Programming Language :: Java
+Programming Language :: JavaScript
+Programming Language :: Lisp
+Programming Language :: Logo
+Programming Language :: ML
+Programming Language :: Modula
+Programming Language :: Objective C
+Programming Language :: Object Pascal
+Programming Language :: OCaml
+Programming Language :: Other
+Programming Language :: Other Scripting Engines
+Programming Language :: Pascal
+Programming Language :: Perl
+Programming Language :: PHP
+Programming Language :: Pike
+Programming Language :: Pliant
+Programming Language :: PL/SQL
+Programming Language :: PROGRESS
+Programming Language :: Prolog
+Programming Language :: Python
+Programming Language :: Python :: 2
+Programming Language :: Python :: 2.3
+Programming Language :: Python :: 2.4
+Programming Language :: Python :: 2.5
+Programming Language :: Python :: 2.6
+Programming Language :: Python :: 2.7
+Programming Language :: Python :: 2 :: Only
+Programming Language :: Python :: 3
+Programming Language :: Python :: 3.0
+Programming Language :: Python :: 3.1
+Programming Language :: Python :: 3.2
+Programming Language :: Python :: 3.3
+Programming Language :: Python :: 3.4
+Programming Language :: Python :: 3.5
+Programming Language :: Python :: 3.6
+Programming Language :: Python :: 3.7
+Programming Language :: Python :: 3.8
+Programming Language :: Python :: 3.9
+Programming Language :: Python :: 3 :: Only
+Programming Language :: Python :: Implementation
+Programming Language :: Python :: Implementation :: CPython
+Programming Language :: Python :: Implementation :: IronPython
+Programming Language :: Python :: Implementation :: Jython
+Programming Language :: Python :: Implementation :: MicroPython
+Programming Language :: Python :: Implementation :: PyPy
+Programming Language :: Python :: Implementation :: Stackless
+Programming Language :: R
+Programming Language :: REBOL
+Programming Language :: Rexx
+Programming Language :: Ruby
+Programming Language :: Rust
+Programming Language :: Scheme
+Programming Language :: Simula
+Programming Language :: Smalltalk
+Programming Language :: SQL
+Programming Language :: Tcl
+Programming Language :: Unix Shell
+Programming Language :: Visual Basic
+Programming Language :: XBasic
+Programming Language :: YACC
+Programming Language :: Zope
+Topic :: Adaptive Technologies
+Topic :: Artistic Software
+Topic :: Communications
+Topic :: Communications :: BBS
+Topic :: Communications :: Chat
+Topic :: Communications :: Chat :: ICQ
+Topic :: Communications :: Chat :: Internet Relay Chat
+Topic :: Communications :: Chat :: Unix Talk
+Topic :: Communications :: Conferencing
+Topic :: Communications :: Email
+Topic :: Communications :: Email :: Address Book
+Topic :: Communications :: Email :: Email Clients (MUA)
+Topic :: Communications :: Email :: Filters
+Topic :: Communications :: Email :: Mailing List Servers
+Topic :: Communications :: Email :: Mail Transport Agents
+Topic :: Communications :: Email :: Post-Office
+Topic :: Communications :: Email :: Post-Office :: IMAP
+Topic :: Communications :: Email :: Post-Office :: POP3
+Topic :: Communications :: Fax
+Topic :: Communications :: FIDO
+Topic :: Communications :: File Sharing
+Topic :: Communications :: File Sharing :: Gnutella
+Topic :: Communications :: File Sharing :: Napster
+Topic :: Communications :: Ham Radio
+Topic :: Communications :: Internet Phone
+Topic :: Communications :: Telephony
+Topic :: Communications :: Usenet News
+Topic :: Database
+Topic :: Database :: Database Engines/Servers
+Topic :: Database :: Front-Ends
+Topic :: Desktop Environment
+Topic :: Desktop Environment :: File Managers
+Topic :: Desktop Environment :: Gnome
+Topic :: Desktop Environment :: GNUstep
+Topic :: Desktop Environment :: K Desktop Environment (KDE)
+Topic :: Desktop Environment :: K Desktop Environment (KDE) :: Themes
+Topic :: Desktop Environment :: PicoGUI
+Topic :: Desktop Environment :: PicoGUI :: Applications
+Topic :: Desktop Environment :: PicoGUI :: Themes
+Topic :: Desktop Environment :: Screen Savers
+Topic :: Desktop Environment :: Window Managers
+Topic :: Desktop Environment :: Window Managers :: Afterstep
+Topic :: Desktop Environment :: Window Managers :: Afterstep :: Themes
+Topic :: Desktop Environment :: Window Managers :: Applets
+Topic :: Desktop Environment :: Window Managers :: Blackbox
+Topic :: Desktop Environment :: Window Managers :: Blackbox :: Themes
+Topic :: Desktop Environment :: Window Managers :: CTWM
+Topic :: Desktop Environment :: Window Managers :: CTWM :: Themes
+Topic :: Desktop Environment :: Window Managers :: Enlightenment
+Topic :: Desktop Environment :: Window Managers :: Enlightenment :: Epplets
+Topic :: Desktop Environment :: Window Managers :: Enlightenment :: Themes DR15
+Topic :: Desktop Environment :: Window Managers :: Enlightenment :: Themes DR16
+Topic :: Desktop Environment :: Window Managers :: Enlightenment :: Themes DR17
+Topic :: Desktop Environment :: Window Managers :: Fluxbox
+Topic :: Desktop Environment :: Window Managers :: Fluxbox :: Themes
+Topic :: Desktop Environment :: Window Managers :: FVWM
+Topic :: Desktop Environment :: Window Managers :: FVWM :: Themes
+Topic :: Desktop Environment :: Window Managers :: IceWM
+Topic :: Desktop Environment :: Window Managers :: IceWM :: Themes
+Topic :: Desktop Environment :: Window Managers :: MetaCity
+Topic :: Desktop Environment :: Window Managers :: MetaCity :: Themes
+Topic :: Desktop Environment :: Window Managers :: Oroborus
+Topic :: Desktop Environment :: Window Managers :: Oroborus :: Themes
+Topic :: Desktop Environment :: Window Managers :: Sawfish
+Topic :: Desktop Environment :: Window Managers :: Sawfish :: Themes 0.30
+Topic :: Desktop Environment :: Window Managers :: Sawfish :: Themes pre-0.30
+Topic :: Desktop Environment :: Window Managers :: Waimea
+Topic :: Desktop Environment :: Window Managers :: Waimea :: Themes
+Topic :: Desktop Environment :: Window Managers :: Window Maker
+Topic :: Desktop Environment :: Window Managers :: Window Maker :: Applets
+Topic :: Desktop Environment :: Window Managers :: Window Maker :: Themes
+Topic :: Desktop Environment :: Window Managers :: XFCE
+Topic :: Desktop Environment :: Window Managers :: XFCE :: Themes
+Topic :: Documentation
+Topic :: Documentation :: Sphinx
+Topic :: Education
+Topic :: Education :: Computer Aided Instruction (CAI)
+Topic :: Education :: Testing
+Topic :: Games/Entertainment
+Topic :: Games/Entertainment :: Arcade
+Topic :: Games/Entertainment :: Board Games
+Topic :: Games/Entertainment :: First Person Shooters
+Topic :: Games/Entertainment :: Fortune Cookies
+Topic :: Games/Entertainment :: Multi-User Dungeons (MUD)
+Topic :: Games/Entertainment :: Puzzle Games
+Topic :: Games/Entertainment :: Real Time Strategy
+Topic :: Games/Entertainment :: Role-Playing
+Topic :: Games/Entertainment :: Side-Scrolling/Arcade Games
+Topic :: Games/Entertainment :: Simulation
+Topic :: Games/Entertainment :: Turn Based Strategy
+Topic :: Home Automation
+Topic :: Internet
+Topic :: Internet :: File Transfer Protocol (FTP)
+Topic :: Internet :: Finger
+Topic :: Internet :: Log Analysis
+Topic :: Internet :: Name Service (DNS)
+Topic :: Internet :: Proxy Servers
+Topic :: Internet :: WAP
+Topic :: Internet :: WWW/HTTP
+Topic :: Internet :: WWW/HTTP :: Browsers
+Topic :: Internet :: WWW/HTTP :: Dynamic Content
+Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries
+Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System
+Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Message Boards
+Topic :: Internet :: WWW/HTTP :: Dynamic Content :: News/Diary
+Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Page Counters
+Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Wiki
+Topic :: Internet :: WWW/HTTP :: HTTP Servers
+Topic :: Internet :: WWW/HTTP :: Indexing/Search
+Topic :: Internet :: WWW/HTTP :: Session
+Topic :: Internet :: WWW/HTTP :: Site Management
+Topic :: Internet :: WWW/HTTP :: Site Management :: Link Checking
+Topic :: Internet :: WWW/HTTP :: WSGI
+Topic :: Internet :: WWW/HTTP :: WSGI :: Application
+Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware
+Topic :: Internet :: WWW/HTTP :: WSGI :: Server
+Topic :: Internet :: XMPP
+Topic :: Internet :: Z39.50
+Topic :: Multimedia
+Topic :: Multimedia :: Graphics
+Topic :: Multimedia :: Graphics :: 3D Modeling
+Topic :: Multimedia :: Graphics :: 3D Rendering
+Topic :: Multimedia :: Graphics :: Capture
+Topic :: Multimedia :: Graphics :: Capture :: Digital Camera
+Topic :: Multimedia :: Graphics :: Capture :: Scanners
+Topic :: Multimedia :: Graphics :: Capture :: Screen Capture
+Topic :: Multimedia :: Graphics :: Editors
+Topic :: Multimedia :: Graphics :: Editors :: Raster-Based
+Topic :: Multimedia :: Graphics :: Editors :: Vector-Based
+Topic :: Multimedia :: Graphics :: Graphics Conversion
+Topic :: Multimedia :: Graphics :: Presentation
+Topic :: Multimedia :: Graphics :: Viewers
+Topic :: Multimedia :: Sound/Audio
+Topic :: Multimedia :: Sound/Audio :: Analysis
+Topic :: Multimedia :: Sound/Audio :: Capture/Recording
+Topic :: Multimedia :: Sound/Audio :: CD Audio
+Topic :: Multimedia :: Sound/Audio :: CD Audio :: CD Playing
+Topic :: Multimedia :: Sound/Audio :: CD Audio :: CD Ripping
+Topic :: Multimedia :: Sound/Audio :: CD Audio :: CD Writing
+Topic :: Multimedia :: Sound/Audio :: Conversion
+Topic :: Multimedia :: Sound/Audio :: Editors
+Topic :: Multimedia :: Sound/Audio :: MIDI
+Topic :: Multimedia :: Sound/Audio :: Mixers
+Topic :: Multimedia :: Sound/Audio :: Players
+Topic :: Multimedia :: Sound/Audio :: Players :: MP3
+Topic :: Multimedia :: Sound/Audio :: Sound Synthesis
+Topic :: Multimedia :: Sound/Audio :: Speech
+Topic :: Multimedia :: Video
+Topic :: Multimedia :: Video :: Capture
+Topic :: Multimedia :: Video :: Conversion
+Topic :: Multimedia :: Video :: Display
+Topic :: Multimedia :: Video :: Non-Linear Editor
+Topic :: Office/Business
+Topic :: Office/Business :: Financial
+Topic :: Office/Business :: Financial :: Accounting
+Topic :: Office/Business :: Financial :: Investment
+Topic :: Office/Business :: Financial :: Point-Of-Sale
+Topic :: Office/Business :: Financial :: Spreadsheet
+Topic :: Office/Business :: Groupware
+Topic :: Office/Business :: News/Diary
+Topic :: Office/Business :: Office Suites
+Topic :: Office/Business :: Scheduling
+Topic :: Other/Nonlisted Topic
+Topic :: Printing
+Topic :: Religion
+Topic :: Scientific/Engineering
+Topic :: Scientific/Engineering :: Artificial Intelligence
+Topic :: Scientific/Engineering :: Artificial Life
+Topic :: Scientific/Engineering :: Astronomy
+Topic :: Scientific/Engineering :: Atmospheric Science
+Topic :: Scientific/Engineering :: Bio-Informatics
+Topic :: Scientific/Engineering :: Chemistry
+Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
+Topic :: Scientific/Engineering :: GIS
+Topic :: Scientific/Engineering :: Human Machine Interfaces
+Topic :: Scientific/Engineering :: Hydrology
+Topic :: Scientific/Engineering :: Image Recognition
+Topic :: Scientific/Engineering :: Information Analysis
+Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
+Topic :: Scientific/Engineering :: Mathematics
+Topic :: Scientific/Engineering :: Medical Science Apps.
+Topic :: Scientific/Engineering :: Physics
+Topic :: Scientific/Engineering :: Visualization
+Topic :: Security
+Topic :: Security :: Cryptography
+Topic :: Sociology
+Topic :: Sociology :: Genealogy
+Topic :: Sociology :: History
+Topic :: Software Development
+Topic :: Software Development :: Assemblers
+Topic :: Software Development :: Bug Tracking
+Topic :: Software Development :: Build Tools
+Topic :: Software Development :: Code Generators
+Topic :: Software Development :: Compilers
+Topic :: Software Development :: Debuggers
+Topic :: Software Development :: Disassemblers
+Topic :: Software Development :: Documentation
+Topic :: Software Development :: Embedded Systems
+Topic :: Software Development :: Internationalization
+Topic :: Software Development :: Interpreters
+Topic :: Software Development :: Libraries
+Topic :: Software Development :: Libraries :: Application Frameworks
+Topic :: Software Development :: Libraries :: Java Libraries
+Topic :: Software Development :: Libraries :: Perl Modules
+Topic :: Software Development :: Libraries :: PHP Classes
+Topic :: Software Development :: Libraries :: Pike Modules
+Topic :: Software Development :: Libraries :: pygame
+Topic :: Software Development :: Libraries :: Python Modules
+Topic :: Software Development :: Libraries :: Ruby Modules
+Topic :: Software Development :: Libraries :: Tcl Extensions
+Topic :: Software Development :: Localization
+Topic :: Software Development :: Object Brokering
+Topic :: Software Development :: Object Brokering :: CORBA
+Topic :: Software Development :: Pre-processors
+Topic :: Software Development :: Quality Assurance
+Topic :: Software Development :: Testing
+Topic :: Software Development :: Testing :: Acceptance
+Topic :: Software Development :: Testing :: BDD
+Topic :: Software Development :: Testing :: Mocking
+Topic :: Software Development :: Testing :: Traffic Generation
+Topic :: Software Development :: Testing :: Unit
+Topic :: Software Development :: User Interfaces
+Topic :: Software Development :: Version Control
+Topic :: Software Development :: Version Control :: Bazaar
+Topic :: Software Development :: Version Control :: CVS
+Topic :: Software Development :: Version Control :: Git
+Topic :: Software Development :: Version Control :: Mercurial
+Topic :: Software Development :: Version Control :: RCS
+Topic :: Software Development :: Version Control :: SCCS
+Topic :: Software Development :: Widget Sets
+Topic :: System
+Topic :: System :: Archiving
+Topic :: System :: Archiving :: Backup
+Topic :: System :: Archiving :: Compression
+Topic :: System :: Archiving :: Mirroring
+Topic :: System :: Archiving :: Packaging
+Topic :: System :: Benchmark
+Topic :: System :: Boot
+Topic :: System :: Boot :: Init
+Topic :: System :: Clustering
+Topic :: System :: Console Fonts
+Topic :: System :: Distributed Computing
+Topic :: System :: Emulators
+Topic :: System :: Filesystems
+Topic :: System :: Hardware
+Topic :: System :: Hardware :: Hardware Drivers
+Topic :: System :: Hardware :: Mainframes
+Topic :: System :: Hardware :: Symmetric Multi-processing
+Topic :: System :: Installation/Setup
+Topic :: System :: Logging
+Topic :: System :: Monitoring
+Topic :: System :: Networking
+Topic :: System :: Networking :: Firewalls
+Topic :: System :: Networking :: Monitoring
+Topic :: System :: Networking :: Monitoring :: Hardware Watchdog
+Topic :: System :: Networking :: Time Synchronization
+Topic :: System :: Operating System
+Topic :: System :: Operating System Kernels
+Topic :: System :: Operating System Kernels :: BSD
+Topic :: System :: Operating System Kernels :: GNU Hurd
+Topic :: System :: Operating System Kernels :: Linux
+Topic :: System :: Power (UPS)
+Topic :: System :: Recovery Tools
+Topic :: System :: Shells
+Topic :: System :: Software Distribution
+Topic :: System :: Systems Administration
+Topic :: System :: Systems Administration :: Authentication/Directory
+Topic :: System :: Systems Administration :: Authentication/Directory :: LDAP
+Topic :: System :: Systems Administration :: Authentication/Directory :: NIS
+Topic :: System :: System Shells
+Topic :: Terminals
+Topic :: Terminals :: Serial
+Topic :: Terminals :: Telnet
+Topic :: Terminals :: Terminal Emulators/X Terminals
+Topic :: Text Editors
+Topic :: Text Editors :: Documentation
+Topic :: Text Editors :: Emacs
+Topic :: Text Editors :: Integrated Development Environments (IDE)
+Topic :: Text Editors :: Text Processing
+Topic :: Text Editors :: Word Processors
+Topic :: Text Processing
+Topic :: Text Processing :: Filters
+Topic :: Text Processing :: Fonts
+Topic :: Text Processing :: General
+Topic :: Text Processing :: Indexing
+Topic :: Text Processing :: Linguistic
+Topic :: Text Processing :: Markup
+Topic :: Text Processing :: Markup :: HTML
+Topic :: Text Processing :: Markup :: LaTeX
+Topic :: Text Processing :: Markup :: SGML
+Topic :: Text Processing :: Markup :: VRML
+Topic :: Text Processing :: Markup :: XML
+Topic :: Utilities
+Typing :: Typed \ No newline at end of file
diff --git a/debian/patches/0002-use-system-tomli.patch b/debian/patches/0002-use-system-tomli.patch
new file mode 100644
index 0000000..5d9fa65
--- /dev/null
+++ b/debian/patches/0002-use-system-tomli.patch
@@ -0,0 +1,23 @@
+From: Scott Kitterman <scott@kitterman.com>
+Date: Thu, 30 Dec 2021 09:10:52 -0500
+Subject: use system tomli in python lt 3_11
+
+Origin: vendor
+Forwarded: not-needed
+---
+ flit_core/flit_core/config.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/flit_core/flit_core/config.py b/flit_core/flit_core/config.py
+index 1292956..3fd0bd5 100644
+--- a/flit_core/flit_core/config.py
++++ b/flit_core/flit_core/config.py
+@@ -11,7 +11,7 @@ try:
+ import tomllib
+ except ImportError:
+ try:
+- from .vendor import tomli as tomllib
++ import tomli as tomllib
+ # Some downstream distributors remove the vendored tomli.
+ # When that is removed, import tomli from the regular location.
+ except ImportError:
diff --git a/debian/patches/build-with-local-flit_core.patch b/debian/patches/build-with-local-flit_core.patch
new file mode 100644
index 0000000..c87a541
--- /dev/null
+++ b/debian/patches/build-with-local-flit_core.patch
@@ -0,0 +1,23 @@
+From: Stefano Rivera <stefanor@debian.org>
+Date: Fri, 2 Sep 2022 13:20:45 +0200
+Subject: Build flit with the local flit_core
+
+Origin: vendor
+Forwarded: not-needed
+---
+ pyproject.toml | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index caeefcd..e1ec281 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,6 +1,7 @@
+ [build-system]
+-requires = ["flit_core >=3.8.0,<4"]
++requires = []
+ build-backend = "flit_core.buildapi"
++backend-path = ["flit_core"]
+
+ [project]
+ name = "flit"
diff --git a/debian/patches/debian_installer_allowed_root.patch b/debian/patches/debian_installer_allowed_root.patch
new file mode 100644
index 0000000..f0257c8
--- /dev/null
+++ b/debian/patches/debian_installer_allowed_root.patch
@@ -0,0 +1,28 @@
+From: Scott Kitterman <scott@kitterman.com>
+Date: Tue, 7 Dec 2021 20:08:04 -0500
+Subject: Short circuit root test for building Debian packages
+
+Origin: vendor
+Forwarded: not-needed
+Last-Update: 2020-04-13
+
+ * Patch install.Installer class not to error out when subclassed as
+ DebianInstaller from dh-python
+---
+ flit/install.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/flit/install.py b/flit/install.py
+index 3ea9a4b..f29326c 100644
+--- a/flit/install.py
++++ b/flit/install.py
+@@ -109,7 +109,8 @@ class Installer(object):
+
+ if (hasattr(os, 'getuid') and (os.getuid() == 0) and
+ (not os.environ.get('FLIT_ROOT_INSTALL'))):
+- raise RootInstallError
++ if type(self).__name__ != 'DebianInstaller':
++ raise RootInstallError
+
+ if user is None:
+ self.user = self._auto_user(python)
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..dde7e6e
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,3 @@
+debian_installer_allowed_root.patch
+0002-use-system-tomli.patch
+build-with-local-flit_core.patch
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..5b90c9f
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,41 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+export FLIT_NO_NETWORK=True
+export FLIT_ROOT_INSTALL=1
+include /usr/share/dpkg/pkg-info.mk
+
+%:
+ dh $@ --with python3 --buildsystem=pybuild
+
+override_dh_auto_clean:
+ set -e; \
+ if [ -e _removed ]; then \
+ mv _removed/vendor flit_core/flit_core/; \
+ rmdir _removed; \
+ fi
+ dh_auto_clean --name flit
+ dh_auto_clean -d flit_core --name flit_core
+
+override_dh_auto_configure:
+ set -e; \
+ if [ -e flit_core/flit_core/vendor ]; then \
+ mkdir -p _removed; \
+ mv flit_core/flit_core/vendor _removed/; \
+ fi
+ pybuild --configure --name flit
+ pybuild --configure -d flit_core --name flit_core
+
+override_dh_auto_build:
+ pybuild --build --name flit
+ pybuild --build -d flit_core --name flit_core
+
+override_dh_auto_install:
+ pybuild --install --dest-dir debian/flit --name flit
+ pybuild --install --dest-dir debian/flit -d flit_core --name flit_core
+ sphinx-build -b man -D extensions='sphinx.ext.ifconfig' -D man_show_urls=True doc/ debian/
+
+override_dh_auto_test:
+ pybuild --test -d flit_core --name flit_core --test-pytest --test-args="-k 'not test_find_in_path'"
diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml
new file mode 100644
index 0000000..33c3a64
--- /dev/null
+++ b/debian/salsa-ci.yml
@@ -0,0 +1,4 @@
+---
+include:
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644
index 0000000..9938ef3
--- /dev/null
+++ b/debian/source/lintian-overrides
@@ -0,0 +1,2 @@
+# Flit is self-building and does not need the pyproject plugin
+flit source: missing-prerequisite-for-pyproject-backend
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000..abb280a
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,10 @@
+Tests: flit-user
+Depends:
+ python3-all,
+ python3-docutils,
+ python3-pytest,
+ python3-requests,
+ python3-responses,
+ python3-testpath,
+ @
+Restrictions: allow-stderr
diff --git a/debian/tests/flit-user b/debian/tests/flit-user
new file mode 100644
index 0000000..3aeb71f
--- /dev/null
+++ b/debian/tests/flit-user
@@ -0,0 +1,27 @@
+#!/bin/sh
+set -e
+
+user=testing
+
+if [ "$AUTOPKGTEST_TMP" = "" ] ; then
+ AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX)
+fi
+cd "$AUTOPKGTEST_TMP"
+
+if [ $(id -u) = 0 ]
+then
+ adduser --quiet --system --group --no-create-home $user
+ chown -R $user .
+ runuser="runuser -p -u $user --"
+else
+ runuser=""
+fi
+
+for py in $(py3versions -s); do
+ $runuser $py -m pytest -k 'not test_find_in_path' --pyargs flit_core
+done
+
+if [ $(id -u) = 0 ]
+then
+ deluser --quiet $user
+fi
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..2c8816a
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=4
+https://pypi.debian.net/flit/flit-([0-9][0-9t\.\-]*).tar.gz