Bug 200994 - www/py-django-mezzanine: Broken dependencies
Summary: www/py-django-mezzanine: Broken dependencies
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Kubilay Kocak
URL:
Keywords: patch, patch-ready
: 201889 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-06-20 18:09 UTC by heas
Modified: 2015-10-29 08:06 UTC (History)
1 user (show)

See Also:
koobs: maintainer-feedback+
koobs: merge-quarterly+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description heas 2015-06-20 18:09:08 UTC
py27-django-mezzanine, REL-10.1 binary or source, has dependency problems; specifically:

django >= 1.4.10, != 1.6.0, < 1.7
tzlocal == 1.0
beautifulsoup4 == 4.1.3
future == 0.9.0

all mismatch with binary or source ports.
Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2015-06-21 06:23:41 UTC
The differences between versions declared in install_requires and the FreeBSD port (and thus packages) is known. I'm not sure what this issue proposes as an improvement or fix.

In ports (as of todays date)

py-future is 0.14.3
py-beautifulsoup is 4.3.2
tzlocal is 1.1.1
django, we have ports for versions 1.4.x (1.4.20), 1.6.x (1.6.11) 1.7.x (1.7.8)

The first three versions (in ports) have already surpassed the exact (pinned) version requirements declared in Mezzanines setup.py, and the dependencies declared in RUN and BUILD DEPENDS are as close as we can make them to those in setup.py. Note: We don't support multiple operators (AND, NOT) in version expressions.

There is not much we can do about this without carrying a port/package for every single python package version.

There's also not much we can do about upstreams pinning their version dependencies (using ==) in release versions, when >= version specifications is much more reasonable.

The best I can do is to patch out those dependencies declared in setup.py so that pkg_resources doesn't bail out with errors.

If you had something else in mind please clarify and elaborate
Comment 2 heas 2015-06-21 15:56:52 UTC
I'm not certain what the appropriate fix is - but clearly a package that does not work is broken.

I'd vote for patching the requires.txt file.  The package appears to be overly restrictive, as you mentioned.
Comment 3 Kubilay Kocak freebsd_committer freebsd_triage 2015-10-29 05:42:15 UTC
*** Bug 201889 has been marked as a duplicate of this bug. ***
Comment 4 commit-hook freebsd_committer freebsd_triage 2015-10-29 06:39:18 UTC
A commit references this bug:

Author: koobs
Date: Thu Oct 29 06:38:43 UTC 2015
New revision: 400443
URL: https://svnweb.freebsd.org/changeset/ports/400443

Log:
  www/py-django-mezzanine: Fix run dependency versions

  Loosen the dependencies listed in setup.py:install_requires so that
  port dependencies can satisfy them. This fixes run-time errors such as:

  pkg_resources.DistributionNotFound: The 'future==0.9.0' distribution was not found and is required by Mezzanine

   - Update and sort RUN_DEPENDS, remove chardet
   - Add TEST_DEPENDS
   - Rename test target now that framework supports TEST_DEPENDS et al.
   - Update test target to set some environment variables that if not set
     can cause test failures in particular environments.

  PR:		200994
  MFH:		2015Q4

Changes:
  head/www/py-django-mezzanine/Makefile
  head/www/py-django-mezzanine/files/
  head/www/py-django-mezzanine/files/patch-setup.py
Comment 5 Kubilay Kocak freebsd_committer freebsd_triage 2015-10-29 06:39:56 UTC
Apologies for the delay. Committed to HEAD, pending MFH to latest quarterly branch
Comment 6 commit-hook freebsd_committer freebsd_triage 2015-10-29 08:05:24 UTC
A commit references this bug:

Author: koobs
Date: Thu Oct 29 08:04:51 UTC 2015
New revision: 400444
URL: https://svnweb.freebsd.org/changeset/ports/400444

Log:
  MFH: r400443

  www/py-django-mezzanine: Fix run dependency versions

  Loosen the dependencies listed in setup.py:install_requires so that
  port dependencies can satisfy them. This fixes run-time errors such as:

  pkg_resources.DistributionNotFound: The 'future==0.9.0' distribution was not found and is required by Mezzanine

   - Update and sort RUN_DEPENDS, remove chardet
   - Add TEST_DEPENDS
   - Rename test target now that framework supports TEST_DEPENDS et al.
   - Update test target to set some environment variables that if not set
     can cause test failures in particular environments.

  PR:		200994

  Approved by:	portmgr (delphij)

Changes:
_U  branches/2015Q4/
  branches/2015Q4/www/py-django-mezzanine/Makefile
  branches/2015Q4/www/py-django-mezzanine/files/