Your message dated Thu, 3 Jun 2021 10:43:27 +0200
with message-id <f35ce422-fa48-4c68-2d98-5e1390899...@t-online.de>
and subject line Re: Bug#989245: python3-django needs to depends on 
libjs-jquery, not only recommend this package
has caused the Debian Bug report #989245,
regarding python3-django needs to depends on libjs-jquery, not only recommend 
this package
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
989245: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989245
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: python3-django
Version: 2:2.2.23-1
Severity: important

Dear Maintainer,

while working on a local Django application based on the Django version
avaialable in unstable/testing we want to use on may day
job I noticed while preparing this all into a Debian package the package
is failing while installion on a fresh and clean system in case I use
the switch '--no-install-recommends' for package installion.

I'm doing this because our Django application is intended to run on a
server system which are always configured to install packages without
recommended packages.

Our local Django application is called 'patchy2' and this is depending
on a new Debian package python3-django-crispy-forms-foundation which is
awaiting further processing in the NEW queue currently.

I run the installation on a fresh system installed by debootstrap
without addional added packages except the packages that are installed by
the installer automatically for a non X-system.

carsten@debian:~$ sudo apt install ./*.deb --no-install-recommends
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'patchy2' instead of './patchy2_0~20210528_all.deb'
Note, selecting 'python3-django-crispy-forms-foundation' instead of 
'./python3-django-crispy-forms-foundation_0.8.0+ds-1~exp1_all.deb'
The following additional packages will be installed:
  libpq5 python3-attr python3-django-auth-ldap python3-django-crispy-forms 
python3-django-filters python3-ldap python3-psycopg2 python3-pyasn1 
python3-pyasn1-modules
Suggested packages:
  postgresql python-attr-doc python-django-auth-ldap-doc 
python-django-crispy-forms-doc python-django-crispy-forms-foundation-doc 
python-django-filters-doc python-psycopg2-doc
Recommended packages:
  python3-mssql python3-mysqldb
The following NEW packages will be installed:
  libpq5 patchy2 python3-attr python3-django-auth-ldap 
python3-django-crispy-forms python3-django-crispy-forms-foundation 
python3-django-filters python3-ldap python3-psycopg2 python3-pyasn1
  python3-pyasn1-modules
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/876 kB of archives.
After this operation, 4346 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 
/home/carsten/python3-django-crispy-forms-foundation_0.8.0+ds-1~exp1_all.deb 
python3-django-crispy-forms-foundation all 0.8.0+ds-1~exp1 [23.6 kB]
Get:2 /home/carsten/patchy2_0~20210528_all.deb patchy2 all 0~20210528 [164 kB]
Selecting previously unselected package libpq5:amd64.
(Reading database ... 42187 files and directories currently installed.)
Preparing to unpack .../00-libpq5_13.2-1_amd64.deb ...
Unpacking libpq5:amd64 (13.2-1) ...
Selecting previously unselected package python3-attr.
Preparing to unpack .../01-python3-attr_20.3.0-1_all.deb ...
Unpacking python3-attr (20.3.0-1) ...
Selecting previously unselected package python3-pyasn1.
Preparing to unpack .../02-python3-pyasn1_0.4.8-1_all.deb ...
Unpacking python3-pyasn1 (0.4.8-1) ...
Selecting previously unselected package python3-pyasn1-modules.
Preparing to unpack .../03-python3-pyasn1-modules_0.2.1-1_all.deb ...
Unpacking python3-pyasn1-modules (0.2.1-1) ...
Selecting previously unselected package python3-ldap:amd64.
Preparing to unpack .../04-python3-ldap_3.2.0-4+b3_amd64.deb ...
Unpacking python3-ldap:amd64 (3.2.0-4+b3) ...
Selecting previously unselected package python3-django-auth-ldap.
Preparing to unpack .../05-python3-django-auth-ldap_2.2.0-1_all.deb ...
Unpacking python3-django-auth-ldap (2.2.0-1) ...
Selecting previously unselected package python3-django-crispy-forms.
Preparing to unpack .../06-python3-django-crispy-forms_1.9.2-1_all.deb ...
Unpacking python3-django-crispy-forms (1.9.2-1) ...
Selecting previously unselected package python3-django-crispy-forms-foundation.
Preparing to unpack 
.../07-python3-django-crispy-forms-foundation_0.8.0+ds-1~exp1_all.deb ...
Unpacking python3-django-crispy-forms-foundation (0.8.0+ds-1~exp1) ...
Selecting previously unselected package python3-django-filters.
Preparing to unpack .../08-python3-django-filters_2.4.0-1_all.deb ...
Unpacking python3-django-filters (2.4.0-1) ...
Selecting previously unselected package python3-psycopg2.
Preparing to unpack .../09-python3-psycopg2_2.8.6-2_amd64.deb ...
Unpacking python3-psycopg2 (2.8.6-2) ...
Selecting previously unselected package patchy2.
Preparing to unpack .../10-patchy2_0~20210528_all.deb ...
Unpacking patchy2 (0~20210528) ...
Setting up python3-attr (20.3.0-1) ...
Setting up libpq5:amd64 (13.2-1) ...
Setting up python3-psycopg2 (2.8.6-2) ...
Setting up python3-pyasn1 (0.4.8-1) ...
Setting up python3-django-crispy-forms (1.9.2-1) ...
Setting up python3-django-filters (2.4.0-1) ...
Setting up python3-pyasn1-modules (0.2.1-1) ...
Setting up python3-django-crispy-forms-foundation (0.8.0+ds-1~exp1) ...
Setting up python3-ldap:amd64 (3.2.0-4+b3) ...
Setting up python3-django-auth-ldap (2.2.0-1) ...
Setting up patchy2 (0~20210528) ...
could not import from local settings: No module named 'config.settings.local'
Traceback (most recent call last):
  File "/usr/share/patchy2/./manage.py", line 24, in <module>
    main()
  File "/usr/share/patchy2/./manage.py", line 20, in main
    execute_from_command_line(sys.argv)
  File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", 
line 381, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", 
line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python3/dist-packages/django/core/management/base.py", line 
323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/lib/python3/dist-packages/django/core/management/base.py", line 
364, in execute
    output = self.handle(*args, **options)
  File 
"/usr/lib/python3/dist-packages/django/contrib/staticfiles/management/commands/collectstatic.py",
 line 188, in handle
    collected = self.collect()
  File 
"/usr/lib/python3/dist-packages/django/contrib/staticfiles/management/commands/collectstatic.py",
 line 114, in collect
    handler(path, prefixed_path, storage)
  File 
"/usr/lib/python3/dist-packages/django/contrib/staticfiles/management/commands/collectstatic.py",
 line 351, in copy_file
    with source_storage.open(path) as source_file:
  File "/usr/lib/python3/dist-packages/django/core/files/storage.py", line 38, 
in open
    return self._open(name, mode)
  File "/usr/lib/python3/dist-packages/django/core/files/storage.py", line 231, 
in _open
    return File(open(self.path(name), mode))
FileNotFoundError: [Errno 2] No such file or directory: 
'/usr/lib/python3/dist-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js'
dpkg: error processing package patchy2 (--configure):
 installed patchy2 package post-installation script subprocess returned error 
exit status 1
Processing triggers for libc-bin (2.31-12) ...
Errors were encountered while processing:
 patchy2
E: Sub-process /usr/bin/dpkg returned an error code (1)

So looking around for the missing file indeed I see this isn't there.
Looking at the python3-django package I can see that the package
libjs-jquery isn't a hard dependency and only recommended.

I've no deeper knowledge on Django yet :-) but to me it looks like the
libjs-jquery package should be in the Depends and not only in the recommends
field.

I haven't found some information within the doc folder for the package
why libjs-jquery isn't a hard dependency and maybe I miss something, if
so it would be nice if at least some information about the rationale can
be placed with the documentation for python3-django.

Long story short, if I install libjs-jquery prior or also appended to my
local list of packages all went fine.

Regards
Carsten

-- System Information:
Debian Release: 11.0
  APT prefers testing
  APT policy: (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, aarch64, arm64

Kernel: Linux 5.10.0-6-amd64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_WARN
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages python3-django depends on:
ii  python3           3.9.2-3
ii  python3-sqlparse  0.4.1-1
ii  python3-tz        2021.1-1

Versions of packages python3-django recommends:
ii  libjs-jquery  3.5.1+dfsg+~3.5.5-7

Versions of packages python3-django suggests:
pn  bpython3                   <none>
pn  geoip-database-contrib     <none>
ii  gettext                    0.21-4
ii  ipython3                   7.20.0-1
pn  libgdal20                  <none>
pn  libsqlite3-mod-spatialite  <none>
pn  python-django-doc          <none>
ii  python3-bcrypt             3.1.7-4
pn  python3-flup               <none>
ii  python3-memcache           1.59-5
ii  python3-mysqldb            1.4.4-2+b3
ii  python3-pil                8.1.2+dfsg-0.1
ii  python3-psycopg2           2.8.6-2
pn  python3-selenium           <none>
pn  python3-sqlite             <none>
ii  python3-yaml               5.3.1-4

-- no debconf information

--- End Message ---
--- Begin Message ---
Hello Chris,

Am 31.05.21 um 15:54 schrieb Chris Lamb:
> Hi Carsten,
> 
>> FileNotFoundError: [Errno 2] No such file or directory:
>> '/usr/lib/python3/dist-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js'
> 
> [..]
> 
>> So looking around for the missing file indeed I see this isn't there.
>> Looking at the python3-django package I can see that the package
>> libjs-jquery isn't a hard dependency and only recommended.
> 
> So I'm pretty much just paraphrasing the definition of the Depends
> field here (hence why there is no explicit note in the Django
> packaging itself), but the libjs-jquery package is not required to
> provide a significant amount of functionality in Django. Needless to
> say, the python3-django package can be installed without libjs-jquery
> being installed.

yes, that's what the policy is saying about the Depends field.
And sadly I see (in my eyes) that a lot of packages are not user
friendly installable if the the option --no-install-recommends is used
(which is a common default on server systems).

python3-django is about 23MB installed and libjs-jquery is about 700kB,
so I see no real gain to have libjs-jquery just being recommended. And
this is the only recommended package. ;)

I'd say there is a gap which is difficult to handle in the end by only
pointing and strictly using our more technically packaging policy in
contrary to make the system much as possible user friendly. But o.k., I
see your point and will respect the decision of the package maintainers.

> This is all to say that given that your custom patchy2 package calls
> collectstatic during its own package configuration stage, would it not
> make more sense to specify libjs-query as a Depends on your package
> instead?

Our application has no dependency on libjs-jquery so adding a direct
dependency to this package wouldn't be the correct thing to me.

As we use a configuration management system to control our servers we
will set then libjs-jquery as further package which need to be installed
on the target system. No big deal finally.

I'll close this issue by this email.

-- 
Regards
Carsten

--- End Message ---

Reply via email to