-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 tags 576005 + patch thanks
Hi Together with some people in #debian-python I was able to create the following patch. It will add two new tags package-installs-python-egg and package-installs-python-pycache-dir, which checks for .egg files (in some directores) and __pycache__ directories (every where). It also renames package-installs-python-pyc to package-installs-python-bytecode, but since the former is in the FTP master auto reject list the original tag remains in the patch[1]. If we have a better way of handling this, let me know and I will rewrite the patch accordingly. The -bytecode tag is also triggered on .pyo files and is not limited to the directories that the old -pyc tag was. ~Niels [1] Note it is never triggered, but lintian will fail if it cannot find cannot find the tag. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBCAAGBQJNMwsjAAoJEAVLu599gGRCPtIP/RXqXNBIkcCNz5Wt/cjs9WWX j4/60wXR4oR/7h4RJW5bkqTquks1YqhmZG8e153kklGnDimw2RDEo27858KvxPbG LCnxpvZxHxUpRsIHcavwRS6d3gR+5Zl0Nn6IZXnRbAhNdrLE8nqHqrSd0AGDL+oC /9y1RP+PEstC1UvoB0LV/8z5Ud4KMaNtBu2GpBBcJbUeRKC3HBzJxOSIOmh9l29v f3ZZT5rFpwyFlOGgAVhza6Fpd8k88MqFTP1Ya1L8lsp9WLGuRRRCP0SymvHm5o3h s/qvBzJpLLHmuCPJe4u18mGOU/2LWAAiYj8mTaGJJo8NtkZpvRNCuZNBeHHCZGuK UAdEa8oexy2Ab/cDkJAS9O+jLBVDcnIszcF/s8fzwt69le0UjKFyQEBS0MlC96o5 Gu5r5upuLcd8GqVHa131qtkxWY4/f8qpqiYMVu0WuYD9ILiAPjhB32Tc3OjD3/3L HVk+TLV/otaKoU1Hn7qzXAS1cjpttDgR7mIMz4nu5jcS+6fV84uWu3/KK5e6yHro x9qy2HW7001cKlaB/rPdufdJm46nBNXMXzP/6HrQeonEtIKpoNUeQ1iLRveKSJx6 h0NnmYzUouMmicuceupPbxVEz3WvW5IewtVLZd3BZQ9ZWHdu8S2vz12bdzfTW7/k oYBcUCOlHUY8peo6L4uM =LPbW -----END PGP SIGNATURE-----
>From 82ff2e6fb189f64616eb1c646c94d44fb4ba9336 Mon Sep 17 00:00:00 2001 From: Niels Thykier <ni...@thykier.net> Date: Sun, 16 Jan 2011 16:01:22 +0100 Subject: [PATCH] Improved checks for python bytecode and eggs Renamed package-installs-python-pyc to package-installs-python-bytecode and added package-installs-python-pycache-dir plus package-installs-python-egg. The -bytecode tag is now triggered on any .pyc or .pyo file regardless of install location[1]. The egg check is only triggered for files installed in usr/share/, usr/lib/pyshared and usr/lib/pythonX(.Y). Finally any __pycache__ dir (but not subdirs) triggers the -pycache-dir tag. Note since the FTP master auto-reject tags includes package-installs-python-pyc, the tag itself remains but is no longer triggered. [1] Exception being if they are in a __pycache__ dir, which triggers a separate tag. --- checks/files | 23 ++- checks/files.desc | 30 +++- t/COVERAGE | 3 +- t/tests/files-objects-inv/debian/debian/control.in | 16 -- t/tests/files-objects-inv/debian/debian/install | 1 - t/tests/files-objects-inv/debian/debian/rules | 11 - t/tests/files-objects-inv/debian/objects.inv | 199 -------------------- t/tests/files-objects-inv/desc | 7 - t/tests/files-objects-inv/tags | 1 - t/tests/files-python-general/debian/code.pyc | 1 + t/tests/files-python-general/debian/code.pyo | 1 + .../files-python-general/debian/debian/control.in | 16 ++ t/tests/files-python-general/debian/debian/install | 6 + t/tests/files-python-general/debian/debian/rules | 11 + t/tests/files-python-general/debian/objects.inv | 199 ++++++++++++++++++++ t/tests/files-python-general/debian/python.egg | 1 + t/tests/files-python-general/desc | 10 + t/tests/files-python-general/tags | 5 + testset/tags.scripts | 2 +- 19 files changed, 301 insertions(+), 242 deletions(-) delete mode 100644 t/tests/files-objects-inv/debian/debian/control.in delete mode 100644 t/tests/files-objects-inv/debian/debian/install delete mode 100644 t/tests/files-objects-inv/debian/debian/rules delete mode 100644 t/tests/files-objects-inv/debian/objects.inv delete mode 100644 t/tests/files-objects-inv/desc delete mode 100644 t/tests/files-objects-inv/tags create mode 100644 t/tests/files-python-general/debian/code.pyc create mode 100644 t/tests/files-python-general/debian/code.pyo create mode 100644 t/tests/files-python-general/debian/debian/control.in create mode 100644 t/tests/files-python-general/debian/debian/install create mode 100644 t/tests/files-python-general/debian/debian/rules create mode 100644 t/tests/files-python-general/debian/objects.inv create mode 100644 t/tests/files-python-general/debian/python.egg create mode 100644 t/tests/files-python-general/desc create mode 100644 t/tests/files-python-general/tags diff --git a/checks/files b/checks/files index 9a16d53..578ed3c 100644 --- a/checks/files +++ b/checks/files @@ -707,11 +707,28 @@ foreach my $file (@{$info->sorted_index}) { } } - # ---------------- .pyc (compiled python files - if ($file =~ m,^usr/lib/python\d\.\d/.*.pyc$,) { - tag "package-installs-python-pyc", "$file" + # ---------------- .pyc/.pyo (compiled python files) + # skip any file installed inside a __pycache__ directory + # - we have a separate check for that directory. + if ($file =~ m,\.py[co]$,o && $file !~ m,/__pycache__/,o) { + tag "package-installs-python-bytecode", "$file"; + # To avoid failing the "tag not implemented" test. + tag "package-installs-python-pyc", "$file" if (0); } + # ---------------- __pycache__ (directory for pyc/pyo files) + if ($index_info->{type} =~ m/^d/o && $file =~ m,/__pycache__/,o){ + tag "package-installs-python-pycache-dir", "$file"; + } + + # ---------------- .egg (python egg files) + if ($file =~ m,\.egg$,o && ($file =~ m,usr/lib/python\d+(?:\.\d+/),o || + $file =~ m,usr/lib/pyshared,o || + $file =~ m,usr/share/,o)){ + tag "package-installs-python-egg", "$file"; + } + + # ---------------- /usr/lib/site-python if ($file =~ m,^usr/lib/site-python/\S,) { tag "file-in-usr-lib-site-python", "$file"; diff --git a/checks/files.desc b/checks/files.desc index 5f5e97c..b71f9d8 100644 --- a/checks/files.desc +++ b/checks/files.desc @@ -744,9 +744,37 @@ Info: The directory /usr/lib/site-python has been deprecated as a Tag: package-installs-python-pyc Severity: serious Certainty: certain +Info: This tag has been replaced by package-installs-python-bytecode, + but since the ftp-master auto-reject file refers to it we still need + it. + +Tag: package-installs-python-bytecode +Severity: serious +Certainty: certain +Ref: python-policy 2.6 Info: Compiled python source files must not be included in the package. These files should be removed from the package and created at package - installation time in the postinst. + installation time in the postinst. + +Tag: package-installs-python-egg +Severity: serious +Certainty: possible +Ref: python-policy 2.6 +Info: Python eggs should not be installed, since the Debian package is + supposed to do the required steps for installing the Python code. + . + The egg may contain pre-compiled python bytecode or shared libraries. + +Tag: package-installs-python-pycache-dir +Severity: serious +Certainty: certain +Ref: python-policy 2.6 +Info: The package installs a __pycache__ directory, which is normally + only used to store compiled python source files. Compiled python + source files must not be included in the package, instead they + should be generated at installation time in the postinst. + . + Note this tag is issues even if the directory is empty. Tag: bad-permissions-for-ali-file Severity: normal diff --git a/t/COVERAGE b/t/COVERAGE index 67ddd0a..7325998 100644 --- a/t/COVERAGE +++ b/t/COVERAGE @@ -94,6 +94,7 @@ files package-installs-font-to-usr-x11r6 files package-installs-into-etc-rc.boot files package-installs-into-etc-rc.d files package-installs-perllocal-pod +files package-installs-python-pyc files package-uses-obsolete-file files perl-module-in-core-directory files setgid-binary @@ -257,7 +258,6 @@ files package-installs-file-to-usr-x11r6-bin files package-installs-into-etc-gconf-schemas files package-installs-nonbinary-perl-in-usr-lib-perl5 files package-installs-packlist -files package-installs-python-pyc files script-in-usr-share-doc files script-with-language-extension files setuid-binary @@ -545,7 +545,6 @@ scripts init.d-script-missing-lsb-short-description non-standard-executable-perm non-standard-setuid-executable-perm - package-installs-python-pyc php-script-but-no-phpX-cli-dep python-script-but-no-python-dep script-in-usr-share-doc diff --git a/t/tests/files-objects-inv/debian/debian/control.in b/t/tests/files-objects-inv/debian/debian/control.in deleted file mode 100644 index 79a6d1c..0000000 --- a/t/tests/files-objects-inv/debian/debian/control.in +++ /dev/null @@ -1,16 +0,0 @@ -Source: {$srcpkg} -Priority: extra -Section: python -Maintainer: {$author} -Standards-Version: {$standards_version} -Build-Depends: debhelper (>= 7.0.50~) - -Package: python-kinterbasdb -Architecture: all -Depends: $\{misc:Depends\}, -Description: {$description} - This is a test package designed to exercise some feature or tag of - Lintian. It is part of the Lintian test suite and may do very odd - things. It should not be installed like a regular package. It may - be an empty package. - diff --git a/t/tests/files-objects-inv/debian/debian/install b/t/tests/files-objects-inv/debian/debian/install deleted file mode 100644 index 07f0eb9..0000000 --- a/t/tests/files-objects-inv/debian/debian/install +++ /dev/null @@ -1 +0,0 @@ -objects.inv usr/share/doc/python-kinterbasdb/docs/ diff --git a/t/tests/files-objects-inv/debian/debian/rules b/t/tests/files-objects-inv/debian/debian/rules deleted file mode 100644 index 6efd88b..0000000 --- a/t/tests/files-objects-inv/debian/debian/rules +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/make -f - -DOCS:=debian/python-kinterbasdb/usr/share/doc/python-kinterbasdb/docs -%: - dh $@ - -override_dh_compress: - dh_compress - # Manually compress it, since debhelper will fix #608907 - # in the "near" future. - [ -f "$(DOCS)/objects.inv.gz" ] || gzip --best "$(DOCS)/objects.inv" diff --git a/t/tests/files-objects-inv/debian/objects.inv b/t/tests/files-objects-inv/debian/objects.inv deleted file mode 100644 index 2dcebcb..0000000 --- a/t/tests/files-objects-inv/debian/objects.inv +++ /dev/null @@ -1,199 +0,0 @@ -# Sphinx inventory version 1 -# Project: KInterbasDB -# Version: 3.3 -kinterbasdb.typeconv_23plus_lowmem mod beyond-python-db-api.html -kinterbasdb mod index.html -kinterbasdb.typeconv_naked mod beyond-python-db-api.html -kinterbasdb.typeconv_fixed_fixedpoint mod beyond-python-db-api.html -kinterbasdb.typeconv_23plus mod beyond-python-db-api.html -kinterbasdb.typeconv_fixed_decimal mod beyond-python-db-api.html -kinterbasdb.typeconv_fixed_stdlib mod beyond-python-db-api.html -kinterbasdb.typeconv_datetime_stdlib mod beyond-python-db-api.html -kinterbasdb.typeconv_text_unicode mod beyond-python-db-api.html -kinterbasdb.typeconv_datetime_mx mod beyond-python-db-api.html -kinterbasdb.typeconv_backcompat mod beyond-python-db-api.html -kinterbasdb.services mod beyond-python-db-api.html -kinterbasdb.typeconv_24plus mod beyond-python-db-api.html -kinterbasdb.services.Connection.getArchitecture method beyond-python-db-api.html -kinterbasdb.connect function python-db-api-compliance.html -kinterbasdb.Cursor.transaction attribute beyond-python-db-api.html -Cursor.executemany method Python-DB-API-2.0.html -kinterbasdb.TableReservation.render method beyond-python-db-api.html -Error exception Python-DB-API-2.0.html -kinterbasdb.PreparedStatement.description attribute beyond-python-db-api.html -kinterbasdb.DATETIME data python-db-api-compliance.html -kinterbasdb.Connection.prepare method beyond-python-db-api.html -kinterbasdb.PreparedStatement.sql attribute beyond-python-db-api.html -kinterbasdb.Transaction.cursors attribute beyond-python-db-api.html -kinterbasdb.Connection.trans method beyond-python-db-api.html -kinterbasdb.services.Conenction.setWriteMode method beyond-python-db-api.html -kinterbasdb.Connection.event_conduit method beyond-python-db-api.html -kinterbasdb.BlobReader.chunks method beyond-python-db-api.html -kinterbasdb.ConnectionGroup.prepare method beyond-python-db-api.html -kinterbasdb.TableReservation class beyond-python-db-api.html -Cursor.close method Python-DB-API-2.0.html -kinterbasdb.Transaction.n_physical attribute beyond-python-db-api.html -TimestampFromTicks function Python-DB-API-2.0.html -kinterbasdb.CT_NONTRANSPARENT data beyond-python-db-api.html -kinterbasdb.TPB.isolation_level attribute beyond-python-db-api.html -kinterbasdb.Transaction.close method beyond-python-db-api.html -kinterbasdb.PreparedStatement.n_output_params attribute beyond-python-db-api.html -Cursor.nextset method Python-DB-API-2.0.html -DATETIME data Python-DB-API-2.0.html -kinterbasdb.Cursor.rowcount attribute python-db-api-compliance.html -kinterbasdb.Connection.database_info method beyond-python-db-api.html -kinterbasdb.ConnectionGroup.remove method beyond-python-db-api.html -kinterbasdb.TPB.render method beyond-python-db-api.html -kinterbasdb.services.Conenction.modifyUser method beyond-python-db-api.html -kinterbasdb.services.Conenction.rollbackLimboTransaction method beyond-python-db-api.html -kinterbasdb.Transaction.__init__ method beyond-python-db-api.html -kinterbasdb.services.Connection.getHomeDir method beyond-python-db-api.html -kinterbasdb.Cursor.setinputsizes method python-db-api-compliance.html -paramstyle data Python-DB-API-2.0.html -kinterbasdb.TPB.lock_timeout attribute beyond-python-db-api.html -Connection.rollback method Python-DB-API-2.0.html -kinterbasdb.EventConduit.close method beyond-python-db-api.html -kinterbasdb.Cursor.arraysize attribute python-db-api-compliance.html -DatabaseError exception Python-DB-API-2.0.html -kinterbasdb.Cursor.description attribute python-db-api-compliance.html -kinterbasdb.EventConduit.flush method beyond-python-db-api.html -kinterbasdb.services.Connection.close method beyond-python-db-api.html -kinterbasdb.services.Conenction.activateShadowFile method beyond-python-db-api.html -kinterbasdb.Cursor.setoutputsize method python-db-api-compliance.html -kinterbasdb.ConnectionGroup.commit method beyond-python-db-api.html -kinterbasdb.services.Conenction.setSQLDialect method beyond-python-db-api.html -connect function Python-DB-API-2.0.html -Cursor.setinputsizes method Python-DB-API-2.0.html -kinterbasdb.Connection.dialect attribute python-db-api-compliance.html -kinterbasdb.Connection.execute_immediate method python-db-api-compliance.html -kinterbasdb.create_database function beyond-python-db-api.html -kinterbasdb.Connection.get_type_trans_in method beyond-python-db-api.html -kinterbasdb.TPB class beyond-python-db-api.html -kinterbasdb.services.connect function beyond-python-db-api.html -kinterbasdb.Transaction.commit method beyond-python-db-api.html -kinterbasdb.Connection.charset attribute python-db-api-compliance.html -TimeFromTicks function Python-DB-API-2.0.html -kinterbasdb.Connection.savepoint method beyond-python-db-api.html -kinterbasdb.Cursor.fetchallmap method python-db-api-compliance.html -kinterbasdb.PreparedStatement.statement_type attribute beyond-python-db-api.html -kinterbasdb.Cursor class beyond-python-db-api.html -kinterbasdb.services.Conenction.setShouldReservePageSpace method beyond-python-db-api.html -kinterbasdb.ConnectionGroup class beyond-python-db-api.html -Cursor.callproc method Python-DB-API-2.0.html -kinterbasdb.services.Connection class beyond-python-db-api.html -kinterbasdb.services.Connection.getServiceManagerVersion method beyond-python-db-api.html -IntegrityError exception Python-DB-API-2.0.html -kinterbasdb.Transaction class beyond-python-db-api.html -Cursor class Python-DB-API-2.0.html -kinterbasdb.Connection.drop_database method beyond-python-db-api.html -Connection.commit method Python-DB-API-2.0.html -kinterbasdb.services.Conenction.userExists method beyond-python-db-api.html -kinterbasdb.Cursor.fetchone method python-db-api-compliance.html -kinterbasdb.Connection.transactions attribute beyond-python-db-api.html -kinterbasdb.ConnectionGroup.disband method beyond-python-db-api.html -InterfaceError exception Python-DB-API-2.0.html -kinterbasdb.Transaction.connection attribute beyond-python-db-api.html -kinterbasdb.Connection.rollback method python-db-api-compliance.html -kinterbasdb.services.Connection.getStatistics method beyond-python-db-api.html -kinterbasdb.TPB.access_mode attribute beyond-python-db-api.html -kinterbasdb.services.Connection.getCapabilityMask method beyond-python-db-api.html -kinterbasdb.Connection.precision_mode attribute python-db-api-compliance.html -kinterbasdb.Connection.transaction_info method beyond-python-db-api.html -kinterbasdb.EventConduit class beyond-python-db-api.html -BINARY data Python-DB-API-2.0.html -kinterbasdb.Connection.db_info method beyond-python-db-api.html -kinterbasdb.ConnectionGroup.add method beyond-python-db-api.html -Binary function Python-DB-API-2.0.html -kinterbasdb.init function beyond-python-db-api.html -Cursor.setoutputsize method Python-DB-API-2.0.html -kinterbasdb.CT_COMMIT data beyond-python-db-api.html -kinterbasdb.services.Connection.getConnectionCount method beyond-python-db-api.html -kinterbasdb.services.Connection.getLockFileDir method beyond-python-db-api.html -kinterbasdb.ConnectionGroup.contains method beyond-python-db-api.html -kinterbasdb.ConnectionGroup.rollback method beyond-python-db-api.html -kinterbasdb.Connection.set_type_trans_in method beyond-python-db-api.html -kinterbasdb.Transaction.trans_info method beyond-python-db-api.html -Cursor.rowcount attribute Python-DB-API-2.0.html -threadsafety data Python-DB-API-2.0.html -kinterbasdb.services.Connection.restore method beyond-python-db-api.html -Warning exception Python-DB-API-2.0.html -kinterbasdb.services.Connection.getSecurityDatabasePath method beyond-python-db-api.html -Timestamp function Python-DB-API-2.0.html -kinterbasdb.Cursor.fetchmanymap method python-db-api-compliance.html -kinterbasdb.Transaction.closed attribute beyond-python-db-api.html -kinterbasdb.Cursor.fetchonemap method python-db-api-compliance.html -Date function Python-DB-API-2.0.html -kinterbasdb.ConnectionGroup.count method beyond-python-db-api.html -kinterbasdb.services.Connection.setSweepInterval method beyond-python-db-api.html -ProgrammingError exception Python-DB-API-2.0.html -kinterbasdb.Transaction.begin method beyond-python-db-api.html -kinterbasdb.CT_ROLLBACK data beyond-python-db-api.html -kinterbasdb.Cursor.set_type_trans_in method beyond-python-db-api.html -kinterbasdb.services.Conenction.shutdown method beyond-python-db-api.html -kinterbasdb.services.Connection.getAttachedDatabaseNames method beyond-python-db-api.html -kinterbasdb.Cursor.fetchall method python-db-api-compliance.html -kinterbasdb.services.Connection.backup method beyond-python-db-api.html -Connection class Python-DB-API-2.0.html -kinterbasdb.ConnectionGroup.begin method beyond-python-db-api.html -Time function Python-DB-API-2.0.html -kinterbasdb.services.Connection.getMessageFileDir method beyond-python-db-api.html -kinterbasdb.Transaction.resolution attribute beyond-python-db-api.html -Connection.cursor method Python-DB-API-2.0.html -kinterbasdb.ConnectionGroup.__init__ method beyond-python-db-api.html -kinterbasdb.Cursor.itermap method python-db-api-compliance.html -kinterbasdb.services.User class beyond-python-db-api.html -DataError exception Python-DB-API-2.0.html -kinterbasdb.CT_VETO data beyond-python-db-api.html -kinterbasdb.services.Conenction.bringOnline method beyond-python-db-api.html -apilevel data Python-DB-API-2.0.html -kinterbasdb.Cursor.get_type_trans_in method beyond-python-db-api.html -InternalError exception Python-DB-API-2.0.html -NUMBER data Python-DB-API-2.0.html -kinterbasdb.services.Conenction.repair method beyond-python-db-api.html -Cursor.fetchall method Python-DB-API-2.0.html -kinterbasdb.Transaction.prepare method beyond-python-db-api.html -kinterbasdb.Transaction.rollback method beyond-python-db-api.html -kinterbasdb.services.Conenction.setAccessMode method beyond-python-db-api.html -Cursor.fetchmany method Python-DB-API-2.0.html -kinterbasdb.services.Connection.getServerVersion method beyond-python-db-api.html -kinterbasdb.Transaction.cursor method beyond-python-db-api.html -kinterbasdb.services.Conenction.commitLimboTransaction method beyond-python-db-api.html -kinterbasdb.Cursor.fetchmany method python-db-api-compliance.html -Cursor.execute method Python-DB-API-2.0.html -kinterbasdb.services.Conenction.removeUser method beyond-python-db-api.html -kinterbasdb.Cursor.name attribute beyond-python-db-api.html -kinterbasdb.ConnectionGroup.clear method beyond-python-db-api.html -kinterbasdb.Connection class beyond-python-db-api.html -kinterbasdb.Connection.main_transaction attribute beyond-python-db-api.html -kinterbasdb.Cursor.prep method beyond-python-db-api.html -kinterbasdb.Cursor.nextset method python-db-api-compliance.html -kinterbasdb.BlobReader class beyond-python-db-api.html -kinterbasdb.TPB.lock_resolution attribute beyond-python-db-api.html -kinterbasdb.services.Conenction.getLimboTransactionIDs method beyond-python-db-api.html -STRING data Python-DB-API-2.0.html -Cursor.description attribute Python-DB-API-2.0.html -NotSupportedError exception Python-DB-API-2.0.html -kinterbasdb.PreparedStatement class beyond-python-db-api.html -kinterbasdb.ConnectionGroup.members method beyond-python-db-api.html -kinterbasdb.services.Conenction.addUser method beyond-python-db-api.html -kinterbasdb.PreparedStatement.n_input_params attribute beyond-python-db-api.html -kinterbasdb.services.Conenction.setDefaultPageBuffers method beyond-python-db-api.html -kinterbasdb.Connection.server_version attribute python-db-api-compliance.html -Connection.close method Python-DB-API-2.0.html -kinterbasdb.Connection.trans_info method beyond-python-db-api.html -kinterbasdb.Cursor.iter method python-db-api-compliance.html -DateFromTicks function Python-DB-API-2.0.html -kinterbasdb.EventConduit.wait method beyond-python-db-api.html -kinterbasdb.EventConduit.__init__ method beyond-python-db-api.html -Cursor.fetchone method Python-DB-API-2.0.html -kinterbasdb.Transaction.savepoint method beyond-python-db-api.html -kinterbasdb.services.Conenction.getUsers method beyond-python-db-api.html -kinterbasdb.TPB.table_reservation attribute beyond-python-db-api.html -kinterbasdb.Transaction.transaction_info method beyond-python-db-api.html -kinterbasdb.PreparedStatement.plan attribute beyond-python-db-api.html -kinterbasdb.services.Connection.getLog method beyond-python-db-api.html -ROWID data Python-DB-API-2.0.html -kinterbasdb.Connection.begin method beyond-python-db-api.html -kinterbasdb.services.Connection.sweep method beyond-python-db-api.html -kinterbasdb.Connection.commit method python-db-api-compliance.html -OperationalError exception Python-DB-API-2.0.html diff --git a/t/tests/files-objects-inv/desc b/t/tests/files-objects-inv/desc deleted file mode 100644 index 7ee3493..0000000 --- a/t/tests/files-objects-inv/desc +++ /dev/null @@ -1,7 +0,0 @@ -Testname: files-objects-inv -Sequence: 6000 -Version: 1.0 -Description: Test tags for compressed objects.inv files -References: Debian Bug#608810 -Test-For: - compressed-objects.inv diff --git a/t/tests/files-objects-inv/tags b/t/tests/files-objects-inv/tags deleted file mode 100644 index ce5d810..0000000 --- a/t/tests/files-objects-inv/tags +++ /dev/null @@ -1 +0,0 @@ -W: python-kinterbasdb: compressed-objects.inv usr/share/doc/python-kinterbasdb/docs/objects.inv.gz diff --git a/t/tests/files-python-general/debian/code.pyc b/t/tests/files-python-general/debian/code.pyc new file mode 100644 index 0000000..5a11df8 --- /dev/null +++ b/t/tests/files-python-general/debian/code.pyc @@ -0,0 +1 @@ +Hallo world diff --git a/t/tests/files-python-general/debian/code.pyo b/t/tests/files-python-general/debian/code.pyo new file mode 100644 index 0000000..5a11df8 --- /dev/null +++ b/t/tests/files-python-general/debian/code.pyo @@ -0,0 +1 @@ +Hallo world diff --git a/t/tests/files-python-general/debian/debian/control.in b/t/tests/files-python-general/debian/debian/control.in new file mode 100644 index 0000000..79a6d1c --- /dev/null +++ b/t/tests/files-python-general/debian/debian/control.in @@ -0,0 +1,16 @@ +Source: {$srcpkg} +Priority: extra +Section: python +Maintainer: {$author} +Standards-Version: {$standards_version} +Build-Depends: debhelper (>= 7.0.50~) + +Package: python-kinterbasdb +Architecture: all +Depends: $\{misc:Depends\}, +Description: {$description} + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. It may + be an empty package. + diff --git a/t/tests/files-python-general/debian/debian/install b/t/tests/files-python-general/debian/debian/install new file mode 100644 index 0000000..332e6f1 --- /dev/null +++ b/t/tests/files-python-general/debian/debian/install @@ -0,0 +1,6 @@ +code.pyc usr/share/python-kinterbasdb/ +code.pyo usr/share/python-kinterbasdb/ +code.pyc usr/share/python-kinterbasdb/__pycache__/ +code.pyo usr/share/python-kinterbasdb/__pycache__/ +objects.inv usr/share/doc/python-kinterbasdb/docs/ +python.egg usr/share/python-kinterbasdb/ diff --git a/t/tests/files-python-general/debian/debian/rules b/t/tests/files-python-general/debian/debian/rules new file mode 100644 index 0000000..6efd88b --- /dev/null +++ b/t/tests/files-python-general/debian/debian/rules @@ -0,0 +1,11 @@ +#!/usr/bin/make -f + +DOCS:=debian/python-kinterbasdb/usr/share/doc/python-kinterbasdb/docs +%: + dh $@ + +override_dh_compress: + dh_compress + # Manually compress it, since debhelper will fix #608907 + # in the "near" future. + [ -f "$(DOCS)/objects.inv.gz" ] || gzip --best "$(DOCS)/objects.inv" diff --git a/t/tests/files-python-general/debian/objects.inv b/t/tests/files-python-general/debian/objects.inv new file mode 100644 index 0000000..2dcebcb --- /dev/null +++ b/t/tests/files-python-general/debian/objects.inv @@ -0,0 +1,199 @@ +# Sphinx inventory version 1 +# Project: KInterbasDB +# Version: 3.3 +kinterbasdb.typeconv_23plus_lowmem mod beyond-python-db-api.html +kinterbasdb mod index.html +kinterbasdb.typeconv_naked mod beyond-python-db-api.html +kinterbasdb.typeconv_fixed_fixedpoint mod beyond-python-db-api.html +kinterbasdb.typeconv_23plus mod beyond-python-db-api.html +kinterbasdb.typeconv_fixed_decimal mod beyond-python-db-api.html +kinterbasdb.typeconv_fixed_stdlib mod beyond-python-db-api.html +kinterbasdb.typeconv_datetime_stdlib mod beyond-python-db-api.html +kinterbasdb.typeconv_text_unicode mod beyond-python-db-api.html +kinterbasdb.typeconv_datetime_mx mod beyond-python-db-api.html +kinterbasdb.typeconv_backcompat mod beyond-python-db-api.html +kinterbasdb.services mod beyond-python-db-api.html +kinterbasdb.typeconv_24plus mod beyond-python-db-api.html +kinterbasdb.services.Connection.getArchitecture method beyond-python-db-api.html +kinterbasdb.connect function python-db-api-compliance.html +kinterbasdb.Cursor.transaction attribute beyond-python-db-api.html +Cursor.executemany method Python-DB-API-2.0.html +kinterbasdb.TableReservation.render method beyond-python-db-api.html +Error exception Python-DB-API-2.0.html +kinterbasdb.PreparedStatement.description attribute beyond-python-db-api.html +kinterbasdb.DATETIME data python-db-api-compliance.html +kinterbasdb.Connection.prepare method beyond-python-db-api.html +kinterbasdb.PreparedStatement.sql attribute beyond-python-db-api.html +kinterbasdb.Transaction.cursors attribute beyond-python-db-api.html +kinterbasdb.Connection.trans method beyond-python-db-api.html +kinterbasdb.services.Conenction.setWriteMode method beyond-python-db-api.html +kinterbasdb.Connection.event_conduit method beyond-python-db-api.html +kinterbasdb.BlobReader.chunks method beyond-python-db-api.html +kinterbasdb.ConnectionGroup.prepare method beyond-python-db-api.html +kinterbasdb.TableReservation class beyond-python-db-api.html +Cursor.close method Python-DB-API-2.0.html +kinterbasdb.Transaction.n_physical attribute beyond-python-db-api.html +TimestampFromTicks function Python-DB-API-2.0.html +kinterbasdb.CT_NONTRANSPARENT data beyond-python-db-api.html +kinterbasdb.TPB.isolation_level attribute beyond-python-db-api.html +kinterbasdb.Transaction.close method beyond-python-db-api.html +kinterbasdb.PreparedStatement.n_output_params attribute beyond-python-db-api.html +Cursor.nextset method Python-DB-API-2.0.html +DATETIME data Python-DB-API-2.0.html +kinterbasdb.Cursor.rowcount attribute python-db-api-compliance.html +kinterbasdb.Connection.database_info method beyond-python-db-api.html +kinterbasdb.ConnectionGroup.remove method beyond-python-db-api.html +kinterbasdb.TPB.render method beyond-python-db-api.html +kinterbasdb.services.Conenction.modifyUser method beyond-python-db-api.html +kinterbasdb.services.Conenction.rollbackLimboTransaction method beyond-python-db-api.html +kinterbasdb.Transaction.__init__ method beyond-python-db-api.html +kinterbasdb.services.Connection.getHomeDir method beyond-python-db-api.html +kinterbasdb.Cursor.setinputsizes method python-db-api-compliance.html +paramstyle data Python-DB-API-2.0.html +kinterbasdb.TPB.lock_timeout attribute beyond-python-db-api.html +Connection.rollback method Python-DB-API-2.0.html +kinterbasdb.EventConduit.close method beyond-python-db-api.html +kinterbasdb.Cursor.arraysize attribute python-db-api-compliance.html +DatabaseError exception Python-DB-API-2.0.html +kinterbasdb.Cursor.description attribute python-db-api-compliance.html +kinterbasdb.EventConduit.flush method beyond-python-db-api.html +kinterbasdb.services.Connection.close method beyond-python-db-api.html +kinterbasdb.services.Conenction.activateShadowFile method beyond-python-db-api.html +kinterbasdb.Cursor.setoutputsize method python-db-api-compliance.html +kinterbasdb.ConnectionGroup.commit method beyond-python-db-api.html +kinterbasdb.services.Conenction.setSQLDialect method beyond-python-db-api.html +connect function Python-DB-API-2.0.html +Cursor.setinputsizes method Python-DB-API-2.0.html +kinterbasdb.Connection.dialect attribute python-db-api-compliance.html +kinterbasdb.Connection.execute_immediate method python-db-api-compliance.html +kinterbasdb.create_database function beyond-python-db-api.html +kinterbasdb.Connection.get_type_trans_in method beyond-python-db-api.html +kinterbasdb.TPB class beyond-python-db-api.html +kinterbasdb.services.connect function beyond-python-db-api.html +kinterbasdb.Transaction.commit method beyond-python-db-api.html +kinterbasdb.Connection.charset attribute python-db-api-compliance.html +TimeFromTicks function Python-DB-API-2.0.html +kinterbasdb.Connection.savepoint method beyond-python-db-api.html +kinterbasdb.Cursor.fetchallmap method python-db-api-compliance.html +kinterbasdb.PreparedStatement.statement_type attribute beyond-python-db-api.html +kinterbasdb.Cursor class beyond-python-db-api.html +kinterbasdb.services.Conenction.setShouldReservePageSpace method beyond-python-db-api.html +kinterbasdb.ConnectionGroup class beyond-python-db-api.html +Cursor.callproc method Python-DB-API-2.0.html +kinterbasdb.services.Connection class beyond-python-db-api.html +kinterbasdb.services.Connection.getServiceManagerVersion method beyond-python-db-api.html +IntegrityError exception Python-DB-API-2.0.html +kinterbasdb.Transaction class beyond-python-db-api.html +Cursor class Python-DB-API-2.0.html +kinterbasdb.Connection.drop_database method beyond-python-db-api.html +Connection.commit method Python-DB-API-2.0.html +kinterbasdb.services.Conenction.userExists method beyond-python-db-api.html +kinterbasdb.Cursor.fetchone method python-db-api-compliance.html +kinterbasdb.Connection.transactions attribute beyond-python-db-api.html +kinterbasdb.ConnectionGroup.disband method beyond-python-db-api.html +InterfaceError exception Python-DB-API-2.0.html +kinterbasdb.Transaction.connection attribute beyond-python-db-api.html +kinterbasdb.Connection.rollback method python-db-api-compliance.html +kinterbasdb.services.Connection.getStatistics method beyond-python-db-api.html +kinterbasdb.TPB.access_mode attribute beyond-python-db-api.html +kinterbasdb.services.Connection.getCapabilityMask method beyond-python-db-api.html +kinterbasdb.Connection.precision_mode attribute python-db-api-compliance.html +kinterbasdb.Connection.transaction_info method beyond-python-db-api.html +kinterbasdb.EventConduit class beyond-python-db-api.html +BINARY data Python-DB-API-2.0.html +kinterbasdb.Connection.db_info method beyond-python-db-api.html +kinterbasdb.ConnectionGroup.add method beyond-python-db-api.html +Binary function Python-DB-API-2.0.html +kinterbasdb.init function beyond-python-db-api.html +Cursor.setoutputsize method Python-DB-API-2.0.html +kinterbasdb.CT_COMMIT data beyond-python-db-api.html +kinterbasdb.services.Connection.getConnectionCount method beyond-python-db-api.html +kinterbasdb.services.Connection.getLockFileDir method beyond-python-db-api.html +kinterbasdb.ConnectionGroup.contains method beyond-python-db-api.html +kinterbasdb.ConnectionGroup.rollback method beyond-python-db-api.html +kinterbasdb.Connection.set_type_trans_in method beyond-python-db-api.html +kinterbasdb.Transaction.trans_info method beyond-python-db-api.html +Cursor.rowcount attribute Python-DB-API-2.0.html +threadsafety data Python-DB-API-2.0.html +kinterbasdb.services.Connection.restore method beyond-python-db-api.html +Warning exception Python-DB-API-2.0.html +kinterbasdb.services.Connection.getSecurityDatabasePath method beyond-python-db-api.html +Timestamp function Python-DB-API-2.0.html +kinterbasdb.Cursor.fetchmanymap method python-db-api-compliance.html +kinterbasdb.Transaction.closed attribute beyond-python-db-api.html +kinterbasdb.Cursor.fetchonemap method python-db-api-compliance.html +Date function Python-DB-API-2.0.html +kinterbasdb.ConnectionGroup.count method beyond-python-db-api.html +kinterbasdb.services.Connection.setSweepInterval method beyond-python-db-api.html +ProgrammingError exception Python-DB-API-2.0.html +kinterbasdb.Transaction.begin method beyond-python-db-api.html +kinterbasdb.CT_ROLLBACK data beyond-python-db-api.html +kinterbasdb.Cursor.set_type_trans_in method beyond-python-db-api.html +kinterbasdb.services.Conenction.shutdown method beyond-python-db-api.html +kinterbasdb.services.Connection.getAttachedDatabaseNames method beyond-python-db-api.html +kinterbasdb.Cursor.fetchall method python-db-api-compliance.html +kinterbasdb.services.Connection.backup method beyond-python-db-api.html +Connection class Python-DB-API-2.0.html +kinterbasdb.ConnectionGroup.begin method beyond-python-db-api.html +Time function Python-DB-API-2.0.html +kinterbasdb.services.Connection.getMessageFileDir method beyond-python-db-api.html +kinterbasdb.Transaction.resolution attribute beyond-python-db-api.html +Connection.cursor method Python-DB-API-2.0.html +kinterbasdb.ConnectionGroup.__init__ method beyond-python-db-api.html +kinterbasdb.Cursor.itermap method python-db-api-compliance.html +kinterbasdb.services.User class beyond-python-db-api.html +DataError exception Python-DB-API-2.0.html +kinterbasdb.CT_VETO data beyond-python-db-api.html +kinterbasdb.services.Conenction.bringOnline method beyond-python-db-api.html +apilevel data Python-DB-API-2.0.html +kinterbasdb.Cursor.get_type_trans_in method beyond-python-db-api.html +InternalError exception Python-DB-API-2.0.html +NUMBER data Python-DB-API-2.0.html +kinterbasdb.services.Conenction.repair method beyond-python-db-api.html +Cursor.fetchall method Python-DB-API-2.0.html +kinterbasdb.Transaction.prepare method beyond-python-db-api.html +kinterbasdb.Transaction.rollback method beyond-python-db-api.html +kinterbasdb.services.Conenction.setAccessMode method beyond-python-db-api.html +Cursor.fetchmany method Python-DB-API-2.0.html +kinterbasdb.services.Connection.getServerVersion method beyond-python-db-api.html +kinterbasdb.Transaction.cursor method beyond-python-db-api.html +kinterbasdb.services.Conenction.commitLimboTransaction method beyond-python-db-api.html +kinterbasdb.Cursor.fetchmany method python-db-api-compliance.html +Cursor.execute method Python-DB-API-2.0.html +kinterbasdb.services.Conenction.removeUser method beyond-python-db-api.html +kinterbasdb.Cursor.name attribute beyond-python-db-api.html +kinterbasdb.ConnectionGroup.clear method beyond-python-db-api.html +kinterbasdb.Connection class beyond-python-db-api.html +kinterbasdb.Connection.main_transaction attribute beyond-python-db-api.html +kinterbasdb.Cursor.prep method beyond-python-db-api.html +kinterbasdb.Cursor.nextset method python-db-api-compliance.html +kinterbasdb.BlobReader class beyond-python-db-api.html +kinterbasdb.TPB.lock_resolution attribute beyond-python-db-api.html +kinterbasdb.services.Conenction.getLimboTransactionIDs method beyond-python-db-api.html +STRING data Python-DB-API-2.0.html +Cursor.description attribute Python-DB-API-2.0.html +NotSupportedError exception Python-DB-API-2.0.html +kinterbasdb.PreparedStatement class beyond-python-db-api.html +kinterbasdb.ConnectionGroup.members method beyond-python-db-api.html +kinterbasdb.services.Conenction.addUser method beyond-python-db-api.html +kinterbasdb.PreparedStatement.n_input_params attribute beyond-python-db-api.html +kinterbasdb.services.Conenction.setDefaultPageBuffers method beyond-python-db-api.html +kinterbasdb.Connection.server_version attribute python-db-api-compliance.html +Connection.close method Python-DB-API-2.0.html +kinterbasdb.Connection.trans_info method beyond-python-db-api.html +kinterbasdb.Cursor.iter method python-db-api-compliance.html +DateFromTicks function Python-DB-API-2.0.html +kinterbasdb.EventConduit.wait method beyond-python-db-api.html +kinterbasdb.EventConduit.__init__ method beyond-python-db-api.html +Cursor.fetchone method Python-DB-API-2.0.html +kinterbasdb.Transaction.savepoint method beyond-python-db-api.html +kinterbasdb.services.Conenction.getUsers method beyond-python-db-api.html +kinterbasdb.TPB.table_reservation attribute beyond-python-db-api.html +kinterbasdb.Transaction.transaction_info method beyond-python-db-api.html +kinterbasdb.PreparedStatement.plan attribute beyond-python-db-api.html +kinterbasdb.services.Connection.getLog method beyond-python-db-api.html +ROWID data Python-DB-API-2.0.html +kinterbasdb.Connection.begin method beyond-python-db-api.html +kinterbasdb.services.Connection.sweep method beyond-python-db-api.html +kinterbasdb.Connection.commit method python-db-api-compliance.html +OperationalError exception Python-DB-API-2.0.html diff --git a/t/tests/files-python-general/debian/python.egg b/t/tests/files-python-general/debian/python.egg new file mode 100644 index 0000000..336f590 --- /dev/null +++ b/t/tests/files-python-general/debian/python.egg @@ -0,0 +1 @@ +Hallo World diff --git a/t/tests/files-python-general/desc b/t/tests/files-python-general/desc new file mode 100644 index 0000000..ec25e73 --- /dev/null +++ b/t/tests/files-python-general/desc @@ -0,0 +1,10 @@ +Testname: files-python-general +Sequence: 6000 +Version: 1.0 +Description: Test general python related tags +References: Debian Bug#608810 +Test-For: + compressed-objects.inv + package-installs-python-bytecode + package-installs-python-egg + package-installs-python-pycache-dir diff --git a/t/tests/files-python-general/tags b/t/tests/files-python-general/tags new file mode 100644 index 0000000..6383a44 --- /dev/null +++ b/t/tests/files-python-general/tags @@ -0,0 +1,5 @@ +E: python-kinterbasdb: package-installs-python-bytecode usr/share/python-kinterbasdb/code.pyc +E: python-kinterbasdb: package-installs-python-bytecode usr/share/python-kinterbasdb/code.pyo +E: python-kinterbasdb: package-installs-python-egg usr/share/python-kinterbasdb/python.egg +E: python-kinterbasdb: package-installs-python-pycache-dir usr/share/python-kinterbasdb/__pycache__/ +W: python-kinterbasdb: compressed-objects.inv usr/share/doc/python-kinterbasdb/docs/objects.inv.gz diff --git a/testset/tags.scripts b/testset/tags.scripts index 8097482..9be7f41 100644 --- a/testset/tags.scripts +++ b/testset/tags.scripts @@ -11,7 +11,7 @@ E: scripts: init.d-script-has-duplicate-lsb-section /etc/init.d/lsb-broken E: scripts: init.d-script-has-unterminated-lsb-section /etc/init.d/lsb-broken:15 E: scripts: missing-dep-for-interpreter jruby => jruby | jruby1.0 | jruby1.1 | jruby1.2 (./usr/bin/jruby-broken) E: scripts: missing-dep-for-interpreter lefty => graphviz (./usr/bin/lefty-foo) -E: scripts: package-installs-python-pyc usr/lib/python2.3/site-packages/test.pyc +E: scripts: package-installs-python-bytecode usr/lib/python2.3/site-packages/test.pyc E: scripts: php-script-but-no-phpX-cli-dep ./usr/share/scripts/php5foo E: scripts: php-script-but-no-phpX-cli-dep ./usr/share/scripts/phpfoo E: scripts: python-script-but-no-python-dep ./usr/bin/py2foo -- 1.7.2.3
0001-Improved-checks-for-python-bytecode-and-eggs.patch.sig
Description: Binary data