From bcad4f5dfe16eed888a022bc9e1df7b970fee93a Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Sep 11 2013 23:46:01 +0000 Subject: handle entrypoint programs with multiple sqlalchemy versions * buildrequire older sqlalchemy to ensure it's ignored in %check * Ensure replace_dist() is inserted at the start of "entry_point" programs (including nosetests). --- diff --git a/python-migrate-newdeps.patch b/python-migrate-newdeps.patch index ae82140..0715d84 100644 --- a/python-migrate-newdeps.patch +++ b/python-migrate-newdeps.patch @@ -1,7 +1,7 @@ diff -Naur sqlalchemy-migrate-0.7.2.orig/migrate/__init__.py sqlalchemy-migrate-0.7.2/migrate/__init__.py --- sqlalchemy-migrate-0.7.2.orig/migrate/__init__.py 2011-11-01 20:22:48.000000000 +0000 -+++ sqlalchemy-migrate-0.7.2/migrate/__init__.py 2013-09-11 15:23:42.443386304 +0000 -@@ -5,7 +5,29 @@ ++++ sqlalchemy-migrate-0.7.2/migrate/__init__.py 2013-09-11 15:40:00.963685954 +0000 +@@ -5,6 +5,28 @@ using Python. """ @@ -26,23 +26,7 @@ diff -Naur sqlalchemy-migrate-0.7.2.orig/migrate/__init__.py sqlalchemy-migrate- + +replace_dist("SQLAlchemy >= 0.6.3") + ++ from migrate.versioning import * from migrate.changeset import * - __version__ = '0.7.2' -+ -diff -Naur sqlalchemy-migrate-0.7.2.orig/migrate/__init__.py.newdeps sqlalchemy-migrate-0.7.2/migrate/__init__.py.newdeps ---- sqlalchemy-migrate-0.7.2.orig/migrate/__init__.py.newdeps 1970-01-01 00:00:00.000000000 +0000 -+++ sqlalchemy-migrate-0.7.2/migrate/__init__.py.newdeps 2011-11-01 20:22:48.000000000 +0000 -@@ -0,0 +1,11 @@ -+""" -+ SQLAlchemy migrate provides two APIs :mod:`migrate.versioning` for -+ database schema version and repository management and -+ :mod:`migrate.changeset` that allows to define database schema changes -+ using Python. -+""" -+ -+from migrate.versioning import * -+from migrate.changeset import * -+ -+__version__ = '0.7.2' diff --git a/python-migrate.spec b/python-migrate.spec index 9be6baf..b242b0a 100644 --- a/python-migrate.spec +++ b/python-migrate.spec @@ -30,6 +30,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch BuildRequires: python2-devel +# Require older sqlalchemy to ensure new one is selected in %%check +BuildRequires: python-sqlalchemy BuildRequires: python-sqlalchemy0.7 BuildRequires: python-setuptools BuildRequires: python-nose @@ -83,6 +85,15 @@ sed -i "s/import unittest2/import unittest as unittest2/g" \ %{__rm} -rf %{buildroot} %{__python} setup.py install --skip-build --root %{buildroot} +# Insert our replace_dist() patch first to these entry_point programs +for bin in sqlalchemy-migrate sqlalchemy-migrate-repository; do + (echo '#!/usr/bin/python' + sed -n 's/^+\([^+]\)/\1/p' %{PATCH200} + cat %{buildroot}/%{_bindir}/$bin) > $bin.tmp + mv $bin.tmp %{buildroot}/%{_bindir}/$bin + chmod a+x %{buildroot}/%{_bindir}/$bin +done + %clean %{__rm} -rf %{buildroot} @@ -90,13 +101,18 @@ sed -i "s/import unittest2/import unittest as unittest2/g" \ # Need to set PATH for two reasons: # 1) Path isn't being cleared by mock so we have /root/bin/ in the PATH # 2) Need to be able to find the newly installed migrate binaries -PATH=/bin:/usr/bin:%{buildroot}%{_bindir} +# 3) Need to avoid older versions of migrate binaries which may be installed +PATH=%{buildroot}%{_bindir}:/bin:/usr/bin export PATH PYTHONPATH=`pwd` export PYTHONPATH echo 'sqlite:///__tmp__' > test_db.cfg -nosetests + +# Rather than just calling `nosetests`, +# Insert our replace_dist() patch first +(sed -n 's/^+\([^+]\)/\1/p' < %{PATCH200}; + cat /usr/bin/nosetests) | python %files %defattr(-,root,root,-) @@ -106,10 +122,7 @@ nosetests %changelog * Wed Sep 11 2013 Pádraig Brady - 0.7.2-8 -- Update to EPEL to 0.7.2 depending on python-sqlalchemy0.7 - -* Sun Aug 04 2013 Fedora Release Engineering - 0.7.2-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild +- Update to 0.7.2 depending on python-sqlalchemy0.7 * Mon Mar 11 2013 Pádraig Brady - 0.7.2-7 - Add compatability for sqlalchemy >= 0.8