Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Jan 2014 14:50:39 -0700 (MST)
From:      John Hein <jhein@symmetricom.com>
To:        FreeBSD-gnats-submit@freebsd.org
Cc:        nivit@FreeBSD.org, python@freebsd.org
Subject:   ports/186088: [PATCH] devel/py27-dateutil: fix non-root build, other updates
Message-ID:  <201401242150.s0OLodSP008707@gromit.timing.com>
Resent-Message-ID: <201401242200.s0OM001l079953@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         186088
>Category:       ports
>Synopsis:       [PATCH] devel/py27-dateutil: fix non-root build, other updates
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jan 24 22:00:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     John Hein
>Release:        
>Organization:
>Environment:
System:
>Description:

The main motivation for this patch is to fix the build for the
non-root user.  The chmod in post-patch was removing write permission
from files that the build is trying to write to.  Okay if you're root
on a local filesystem, but it fails if you are a regular user (try
just 'make' as a regular user) because setup.py tries to write to
files in the python_dateutil.egg-info (which are now read-only thanks
to the chmod 444 in post-patch).

The fix is to change ${SHAREMODE} (0444) to a+r for the chmod.

While I was here, I:

 - added support for staging

 - moved away from the deprecated easy_install (changes plist,
    thus bumped PORTREVISION as well)

 - replaced the deprecated BSD license with BSD3CLAUSE

I chose to still use the static pkg-plist rather than
use PYDISTUTILS_AUTOPLIST.


p.s. bsd.python.mk could probably add PYDISTUTILS_EGGINFO to PLIST_SUB.


Port maintainer (nivit@FreeBSD.org) is cc'd.

Generated with FreeBSD Port Tools 0.99_8 (mode: change, diff: SVN)
>How-To-Repeat:

As a regular user:
cd /usr/ports/devel/py-dateutil
make

Observe:
 .
 .
running egg_info
writing requirements to python_dateutil.egg-info/requires.txt
error: python_dateutil.egg-info/requires.txt: Permission denied


>Fix:

--- py27-dateutil-2.1_3.patch begins here ---
Index: Makefile
===================================================================
--- Makefile	(revision 340890)
+++ Makefile	(working copy)
@@ -3,7 +3,7 @@
 
 PORTNAME=	dateutil
 PORTVERSION=	2.1
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	devel python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -12,19 +12,19 @@
 MAINTAINER=	nivit@FreeBSD.org
 COMMENT=	Provides powerful extensions to the standard datetime module
 
-LICENSE=	BSD
+LICENSE=	BSD3CLAUSE
 
 BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}six>0:${PORTSDIR}/devel/py-six
 RUN_DEPENDS+=	${BUILD_DEPENDS}
 
 USE_PYTHON=	yes
-USE_PYDISTUTILS=	easy_install
+USE_PYDISTUTILS=	yes
 PYDISTUTILS_PKGNAME=	python-dateutil
+PLIST_SUB+=	PYDISTUTILS_EGGINFO=${PYDISTUTILS_EGGINFO}
 
 # Fix incorrect permissions
-NO_STAGE=	yes
 post-patch:
-	@${FIND} ${WRKSRC} -type f -exec ${CHMOD} ${SHAREMODE} {} ";"
+	@${FIND} ${WRKSRC} -type f -exec ${CHMOD} a+r {} ";"
 	@${REINPLACE_CMD} -e 's|import winreg|from six.moves import winreg|' ${WRKSRC}/dateutil/tzwin.py
 
 regression-test: build
Index: pkg-plist
===================================================================
--- pkg-plist	(revision 340890)
+++ pkg-plist	(working copy)
@@ -1,35 +1,34 @@
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/PKG-INFO
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/SOURCES.txt
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/dependency_links.txt
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/not-zip-safe
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/requires.txt
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/top_level.txt
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/__init__.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/__init__.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/__init__.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/easter.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/easter.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/easter.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/parser.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/parser.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/parser.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/relativedelta.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/relativedelta.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/relativedelta.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/rrule.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/rrule.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/rrule.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/tz.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/tz.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/tz.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/tzwin.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/tzwin.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/tzwin.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/zoneinfo/__init__.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/zoneinfo/__init__.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/zoneinfo/__init__.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/zoneinfo/zoneinfo--latest.tar.gz
-@dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil/zoneinfo
-@dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/dateutil
-@dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO
-@dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%
+%%PYTHON_SITELIBDIR%%/%%PYDISTUTILS_EGGINFO%%/PKG-INFO
+%%PYTHON_SITELIBDIR%%/%%PYDISTUTILS_EGGINFO%%/SOURCES.txt
+%%PYTHON_SITELIBDIR%%/%%PYDISTUTILS_EGGINFO%%/dependency_links.txt
+%%PYTHON_SITELIBDIR%%/%%PYDISTUTILS_EGGINFO%%/not-zip-safe
+%%PYTHON_SITELIBDIR%%/%%PYDISTUTILS_EGGINFO%%/requires.txt
+%%PYTHON_SITELIBDIR%%/%%PYDISTUTILS_EGGINFO%%/top_level.txt
+%%PYTHON_SITELIBDIR%%/dateutil/__init__.py
+%%PYTHON_SITELIBDIR%%/dateutil/__init__.pyc
+%%PYTHON_SITELIBDIR%%/dateutil/__init__.pyo
+%%PYTHON_SITELIBDIR%%/dateutil/easter.py
+%%PYTHON_SITELIBDIR%%/dateutil/easter.pyc
+%%PYTHON_SITELIBDIR%%/dateutil/easter.pyo
+%%PYTHON_SITELIBDIR%%/dateutil/parser.py
+%%PYTHON_SITELIBDIR%%/dateutil/parser.pyc
+%%PYTHON_SITELIBDIR%%/dateutil/parser.pyo
+%%PYTHON_SITELIBDIR%%/dateutil/relativedelta.py
+%%PYTHON_SITELIBDIR%%/dateutil/relativedelta.pyc
+%%PYTHON_SITELIBDIR%%/dateutil/relativedelta.pyo
+%%PYTHON_SITELIBDIR%%/dateutil/rrule.py
+%%PYTHON_SITELIBDIR%%/dateutil/rrule.pyc
+%%PYTHON_SITELIBDIR%%/dateutil/rrule.pyo
+%%PYTHON_SITELIBDIR%%/dateutil/tz.py
+%%PYTHON_SITELIBDIR%%/dateutil/tz.pyc
+%%PYTHON_SITELIBDIR%%/dateutil/tz.pyo
+%%PYTHON_SITELIBDIR%%/dateutil/tzwin.py
+%%PYTHON_SITELIBDIR%%/dateutil/tzwin.pyc
+%%PYTHON_SITELIBDIR%%/dateutil/tzwin.pyo
+%%PYTHON_SITELIBDIR%%/dateutil/zoneinfo/__init__.py
+%%PYTHON_SITELIBDIR%%/dateutil/zoneinfo/__init__.pyc
+%%PYTHON_SITELIBDIR%%/dateutil/zoneinfo/__init__.pyo
+%%PYTHON_SITELIBDIR%%/dateutil/zoneinfo/zoneinfo--latest.tar.gz
+@dirrm %%PYTHON_SITELIBDIR%%/dateutil/zoneinfo
+@dirrm %%PYTHON_SITELIBDIR%%/dateutil
+@dirrm %%PYTHON_SITELIBDIR%%/%%PYDISTUTILS_EGGINFO%%
--- py27-dateutil-2.1_3.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401242150.s0OLodSP008707>