Bug 207005 - science/gramps: Update to 4.2.2
Summary: science/gramps: Update to 4.2.2
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: Ben Woods
URL: https://github.com/gramps-project/gra...
Keywords:
Depends on: 207033 207035 207039 207040
Blocks:
  Show dependency treegraph
 
Reported: 2016-02-07 17:28 UTC by Ben Woods
Modified: 2016-05-19 21:17 UTC (History)
4 users (show)

See Also:


Attachments
Patch to update science/gramps to 4.2.2 (144.30 KB, patch)
2016-02-07 17:30 UTC, Ben Woods
no flags Details | Diff
QA: Successful poudriere testport logs for science/gramps 4.2.2 on FreeBSD 10.2 amd64 (564.36 KB, text/plain)
2016-02-07 17:30 UTC, Ben Woods
no flags Details
Patch to update science/gramps to 4.2.2 (144.30 KB, patch)
2016-02-08 23:54 UTC, Ben Woods
no flags Details | Diff
QA: Successful poudriere testport logs for science/gramps 4.2.2 on FreeBSD 10.2 amd64 (564.42 KB, text/plain)
2016-02-09 00:21 UTC, Ben Woods
no flags Details
Patch to update science/gramps to 4.2.2 (144.13 KB, patch)
2016-04-06 20:26 UTC, Ben Woods
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ben Woods freebsd_committer freebsd_triage 2016-02-07 17:28:04 UTC
The attached patch updates science/gramps to the latest upstream release.

 * Update to 4.2.2
 * Take maintainership
 * Update distinfo
 * Convert to USE_GITHUB (new location of main upstream repository)
 * Update dependencies for new version (namely python 3.2+ and GTK3) [1]
 * Convert "strongly recommended" options to dependencies (removing option) [1]
 * Add "optional" dependencies as OPTIONS [1]
 * Remove pkg-plist and convert build to USE_PYTHON=autoplist distutils
 * Remove pre-extract upgrade warning as it is ineffective for pkg upgrades and now only applies for systems which have not been upgraded in 1.5 years.
 * Add post-stage hack to fix staging support, copied from Arch Linux [2]
 * Delete files/patch-src_gramps.py as the offending file has been removed
 * Add files/patch-setup.py to allow "--single-version-externally-managed" [3]
 * Add files/patch-setup.py to fix double slashes in generated by autoplist [4]

 Changes:

   https://github.com/gramps-project/gramps/blob/v4.2.2/NEWS

 [1] https://github.com/gramps-project/gramps/blob/v4.2.2/README
 [2] https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/gramps&id=ee1c7fae15872481d8f55868f4211efcbce15314
 [3] https://github.com/gramps-project/gramps/commit/ab67c786b03552ce4b0ac8f0ed9d7af228d46fe4
 [4] https://github.com/gramps-project/gramps/pull/96
Comment 1 Ben Woods freebsd_committer freebsd_triage 2016-02-07 17:30:00 UTC
Created attachment 166713 [details]
Patch to update science/gramps to 4.2.2
Comment 2 Ben Woods freebsd_committer freebsd_triage 2016-02-07 17:30:56 UTC
Created attachment 166714 [details]
QA: Successful poudriere testport logs for science/gramps 4.2.2 on FreeBSD 10.2 amd64
Comment 3 Ben Woods freebsd_committer freebsd_triage 2016-02-07 21:38:45 UTC
I have just discovered this only builds correctly in poudriere if PYTHON_VERSION=3.4 is put in /etc/make.conf.

Without this, the build fails during the RUN_DEPENDS step with the following output:
=======================<phase: run-depends    >============================
===>   gramps-4.2.2 depends on package: py34-bsddb3>0 - not found
===>   Installing existing package /packages/All/py27-bsddb3-6.1.0_1.txz
[woodsb02.no-ip.org] Installing py27-bsddb3-6.1.0_1...
[woodsb02.no-ip.org] `-- Installing py27-setuptools27-19.2...
[woodsb02.no-ip.org] `-- Extracting py27-setuptools27-19.2: .......... done
[woodsb02.no-ip.org] `-- Installing db5-5.3.28_3...
[woodsb02.no-ip.org] `-- Extracting db5-5.3.28_3: .......... done
[woodsb02.no-ip.org] Extracting py27-bsddb3-6.1.0_1: .......... done
===>   gramps-4.2.2 depends on package: py34-bsddb3>0 - not found
*** Error code 1
Comment 4 Ben Woods freebsd_committer freebsd_triage 2016-02-08 23:54:34 UTC
Created attachment 166776 [details]
Patch to update science/gramps to 4.2.2

(In reply to Ben Woods from comment #3)
> ===>   gramps-4.2.2 depends on package: py34-bsddb3>0 - not found

This error is fixed once all of the required python based dependencies are converted to USES=python:3. This has been achieved by creating new py3- ports for each of the python based dependencies. Refer to the "depends on" PRs linked to this PR.

Once these "depends on" PRs have all been applied (new py3- ports created), this updated patch builds cleanly and is ready to be applied to the ports tree.
Comment 5 Ben Woods freebsd_committer freebsd_triage 2016-02-09 00:21:44 UTC
Created attachment 166777 [details]
QA: Successful poudriere testport logs for science/gramps 4.2.2 on FreeBSD 10.2 amd64
Comment 6 Shane 2016-02-09 09:17:46 UTC
Rather than comment on every extra PR you have submitted for the new ports I will keep it all here.

The extra ports are not needed, they only complicate things. Each of the ports you have duplicated can already be built and installed concurrently for multiple python versions.

graphics/py-graphviz does need some adjustment, py3kplist and concurrent needs to be added to USE_PYTHON. concurrent is to prevent conflicting docs dirs.

The issue you are having building the updated gramps in poudriere is a known issue with the ports infrastructure that has begun to be addressed. What happens now is that dependencies are built using a default python version which doesn't match the python:3.2+ specified in the main port.

Refer to the last quarterly report for contact info and links to work being done.

https://www.freebsd.org/news/status/report-2015-10-2015-12.html#Supporting-Variants-in-the-Ports-Framework

In the meantime you can try adding the following to /usr/local/etc/poudriere.d/make.conf which I have had luck using to build my packages. It allows python packages to be built against python3.5 that can still be installed on a system that has python2.7 as default. I actually have it in another file called mypkgpy35-make.conf and add -z mypkgpy35 when running poudriere to keep things separate (and have similar for py34, py33, py32).

DEFAULT_VERSIONS= python=2.7
.if ${.CURDIR:M*/py*}
PYTHON_VERSION=python3.5
.endif

I add the if around the PYTHON_VERSION as it allows ports such as clang to still build using py27.

To manually build the port you can also set PYTHON_VERSION in your /etc/make.conf or environment.
Comment 7 Ben Woods freebsd_committer freebsd_triage 2016-02-09 12:25:11 UTC
(In reply to FreeBSD from comment #6)
> The extra ports are not needed, they only complicate things. Each of the ports you have duplicated can already be built and installed concurrently for multiple python versions.

Whilst this is true, my understanding is that the default FreeBSD ports building infrastructure will not build the dependent ports with python3, and therefore science/gramps will fail to build unless these extra ports are added to the port tree. Users will not be able to simply "pkg install gramps" from the official FreeBSD package repositories, and the maintainer would regularly receive pkg-fallout emails from the build infrastructure.
Comment 8 Kubilay Kocak freebsd_committer freebsd_triage 2016-02-09 12:28:54 UTC
@Ben,

Martin and I are looking into a possible bug whos fix may preclude needing py3-* versions of dependencies for consuming ports that can use either only Python 2.x or 3.x.
Comment 9 Shane 2016-02-10 10:27:05 UTC
Yes it would prevent a simple "pkg install science/gramps". The correct handling would be to add something like -

NO_PACKAGE= Manual build needed to get py3 dependencies not in packages

in your port to prevent the build system packaging it until the issue is resolved.

While the extra ports initially make it easier to build your updated port, they introduce more problems down the road.

Some users will not have any trouble but your py3 ports will conflict with any existing ports that have or will be installed for python3.x. So anyone that is using python3 and wants to run gramps will need to uninstall the standard python ports they have and install your duplicates, breaking any dependancies from other ports... or modify the gramps Makefile to have it use the standard ports, that is if they make the effort to look into why your py3 ports conflict with existing ports and whether they want to make adjustments....
Comment 10 Ben Woods freebsd_committer freebsd_triage 2016-04-06 20:26:49 UTC
Created attachment 169057 [details]
Patch to update science/gramps to 4.2.2

Patch updated to apply cleanly against recent changes in science/gramps
Comment 11 commit-hook freebsd_committer freebsd_triage 2016-05-19 21:16:38 UTC
A commit references this bug:

Author: woodsb02
Date: Thu May 19 21:16:12 UTC 2016
New revision: 415529
URL: https://svnweb.freebsd.org/changeset/ports/415529

Log:
  science/gramps: Update to 4.2.3
  - Take maintainership
  - Convert to USE_GITHUB (new location of main upstream repository)
  - Update dependencies for new version (namely python 3.2+ and GTK3) [1]
  - Convert "strongly recommended" options to dependencies (removing option) [1]
  - Add "optional" dependencies as OPTIONS [1]
  - Remove pkg-plist and convert build to USE_PYTHON=autoplist distutils
  - Remove pre-extract upgrade warning as it is ineffective for pkg upgrades
    and now only applies for systems which have not been upgraded in 1.5 years.
  - Add post-stage hack to fix staging support, copied from Arch Linux [2]
  - Delete files/patch-src_gramps.py as the offending file has been removed
  - Add files/patch-setup.py to allow "--single-version-externally-managed" [3]
  - Add files/patch-setup.py to fix double slashes in generated by autoplist [4]

   Changes:

     https://github.com/gramps-project/gramps/blob/v4.2.3/NEWS

   [1] https://github.com/gramps-project/gramps/blob/v4.2.3/README
   [2] https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/gramps&id=ee1c7fae15872481d8f55868f4211efcbce15314
   [3] https://github.com/gramps-project/gramps/commit/ab67c786b03552ce4b0ac8f0ed9d7af228d46fe4
   [4] https://github.com/gramps-project/gramps/pull/96

  PR:		207005
  Reviewed by:	mat (mentor)
  Approved by:	adamw (mentor)
  Differential Revision:	https://reviews.freebsd.org/D6439

Changes:
  head/science/gramps/Makefile
  head/science/gramps/distinfo
  head/science/gramps/files/patch-data_gramps.xml.in
  head/science/gramps/files/patch-setup.py
  head/science/gramps/files/patch-src_gramps.py
  head/science/gramps/pkg-descr
  head/science/gramps/pkg-plist