diff --git a/.gitignore b/.gitignore index b1772f1..9889c39 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /python-mapnik-f81d5f8b83f6584527b701f5fe5f94b947e5fe45.tar.gz /test-data-3f15d11635fff10cc4d552629a8195158ba92c3e.tar.gz /test-data-visual-972b039bfc5a5e189f68852c22df717a30c1adf7.tar.gz +/python-mapnik-db7c1fdb2e970bdc93ab439119465fa5c0df3a07.tar.gz diff --git a/python-mapnik-cairo.patch b/python-mapnik-cairo.patch deleted file mode 100644 index a6c42aa..0000000 --- a/python-mapnik-cairo.patch +++ /dev/null @@ -1,196 +0,0 @@ -commit da21c898a31162fa8ce8632df33ed72da5ad4d2e -Author: Tom Hughes -Date: Wed Dec 2 21:47:28 2015 +0000 - - Add cairo support - -diff --git a/setup.py b/setup.py -index 20b5ffa..22179ec 100755 ---- a/setup.py -+++ b/setup.py -@@ -214,6 +214,14 @@ if proj_path: - - extra_comp_args = check_output([mapnik_config, '--cflags']).split(' ') - -+if os.environ.get("PYCAIRO", "false") == "true": -+ try: -+ extra_comp_args.append('-DHAVE_PYCAIRO') -+ extra_comp_args.extend(check_output(["pkg-config", '--cflags', 'pycairo']).strip().split(' ')) -+ linkflags.extend(check_output(["pkg-config", '--libs', 'pycairo']).strip().split(' ')) -+ except: -+ raise Exception("Failed to find compiler options for pycairo") -+ - if sys.platform == 'darwin': - extra_comp_args.append('-mmacosx-version-min=10.8') - # silence warning coming from boost python macros which -diff --git a/test/python_tests/images/pycairo/cairo-cairo-expected.png b/test/python_tests/images/pycairo/cairo-cairo-expected.png -index 3a99f5e7302a07ff49b6efbfe585feb9bbf58f89..687440c247b5b8ffe4dd2c9391535024b95a0047 100644 -GIT binary patch -delta 2773 -zcmV;`3M%!e9M>X{HGdHdNkl! -zn}j4Ab~npz_SQePjY~Fxr3t&i-{&*=BjrDrxT -zJ8PC8M*SfK@ZBunArFq#|%hz5%)$;*h@^rRss+{UM05CPG$8PLveY~^n@u`{$ -z0I#X0rE8j(tvR&$k^pqJJ^u7hzB%br0$?&MUwi%709XP72vvQ=QTGJ_{Ms13=V$!* -zkptkqAb?*dM}G`}B_M!M0>JCr$k1Tdj;DI}b-c_7a70I50)p4b$nemU|Mk_Xn!1(m -z_~7_Qx32rfKwrhIdSV(s-4 -z55Q|@bgH9&Z(erR+*KEheRQC=d&`|S4-XBNQf9AslK}8~WC;jfPEEr}RW)_(8}2@A -zykq0~;i19$nRBLOR&ZPh0Iv^yU3O<8AS1&=TYvno&p!CW!M+2fl*+2= -zxvMW;b@fMTr_XxD=f2^bD>@$gNylUB7hm|BqkkhkyV|-so<8N$_w>E+{9!w9zU|A; -zKlxx^*PhYM>bizS=Uubn?Z12I5<<_ewg9^}=&RKE!`|4-T>Dj$~`vX6C=;l8@?;|%hwk(_YaUQ?* -z#($lg?rm&2W#PG3Rn^q(`tP6beEg@~9Z#SCu`g8DO?&z0HZMDC+N`-dHr#zE06R9^ -zT}oMS&gI+If9tTF+c&J6yZWNWmSuG_n)t;xohE@uWDMlroU@%>wVwd{DZ%%D1T+41~7>PfGIFM(Er5uzBqn-@Wr07n_cZ& -zx7~9~E6b9OV9u4jg{54 -zrIZEdT=Dp=H+F1X-+J#Yr(W^?S9pF!#r(71zHR-tx_7lT&RaS%Jk;^n`dLd>H-9wG -zAHVOVfAsb0`ss%@mt1(=gJ1jfj)(79e%X8L8k-M|_w0UV}_*FQv>{vbuTc -zn$FgZql-Bc(XnxTDP`H)-aUHuAAhyt^7oaBijK$DPvi&-&c3`GS1D!BmWK`= -z*#Cxet~lbJW6%Djl!~hAmNl1-3=i+$zIp6;&9uhF=UsDXbK0zV3*NYPu>Zw9TOOR? -z4+Y20I{>CYbzQ^TKJ`!I$M5^n4gKBw4sE`$y{(V+zp!_B@Zd-p86F%cr5x<(9J^a%%d*Ov+OZ=u7oGOp -z!*_J=Y;9R{=|p}gICcWSRDY)P|cO`q!T-q*C` -zj5({$tFD_~QCZo&vvv38`-g{z#_m}=W))8t(0=G_l5eCW{({oy{UA9Ywj&)y!FW+e&xyAZyFgIJlgtC+r78;ckNyM -zu8)tsmix@lzqfny{fF&&*iEISlz{^;9GWUj4%YxUah=q1N-1UkGfy1jac0b0QcCIC -zv32ZVfA_xr?!9%5&3`r18Ygm)s@nQ_t1lip*jGPu&e6Usy{lteDW&DCm#pD*wQn82 -zXZNnQ!|wg>>UjFlRAF)m04J^mZ@RLS^3+}bJbqzh{Qsa|M$4I(lu}xMcI()WWwqY> -zosr?;(T67Jw0C~^f{%USEg$;x!aCc>O?VOe8O?*CZj4T0h;%Z*DX7TygZhzpm`@VF;k_)e!K6i0tRdw&)j@?h* -z-{0MN(Z~OGg2$P=>VlJ3ylL;&M;`wApDjNB+NzqmT~FNi+{1U&&zybAW$&5zd}DGI0nLc|_&+caq+q2>11yA07Q-617 -z)6z5hy7p{a|Ev9`Q`05ZT;~#N-34qHOtptzwB+la~vlFuc)GwvV86J -zqrd;_>7RUa^q0aP8i5nS$jE`cJNmo#Rn^qjoz#5TwcLpt>^so2d;9Rv;PjIh)SYzl -z@txyKUVr8JXG?Dlh%a!O>LK)XrRZ+G{-@I2sp$ -z0YV7?KqyNSqfcq>=!fOxUd8Svk?of0+SF2W`9*r -z^#ovQ3=Q-j?CC6})Xr$Cs;Qgm>A(~a0OAbx_ikOce(%=WgT2d3DYXroPF`_v#pRb( -z*ELM_)L>Ex09i(chcZ5dk2}{_WF7hF6Xs9~oY`f4eIIWDx*@^zQ5E -z?>_x#kM?z+*}Jb}GUo$RO90@1Rg{sbo&roN0U$_2^ZdHT%}0B*u5nXC^Zd!24@@lq -zAj_=9FIH4;89!c8xngub}sk$;^@BCjgveN0A3?UJEb2v0G(}{I@>nAmh%B% -zidg~z2=$V808LBREMI&5R80kd*HqKeHDfnl5`gAqYnqp>DF6hp1OyPOy13^DAdJ&K -bK(zk>q%@D5Nag%U!-=uh?+@hJCanSjY`u( -z6VoI(Fbw0xfq-qWjcxq03#*o+&I-C6FP0I)#L9)7i_Yk#RIisrUE+jl%#?)?C;aC*A-SC)GZ0F*~*`kk|fJ9@f0 -z%C!{$uB)c?TbkRpOx?XC06kqDhhF&lf^P|ch0wm^(dhwj2?!umY1UEi3j+9+G5MaK -z%g1LAfcFIf{C_H$H2^LF0fZ6&fKUPe5J~`8bYB0@f4n$&ZpPr)$k5N9{=2I>eAacY -zYCo^*0k^qgT5iELsAf!$?(W|I;%pljTz1pi746&3ojADplYd+k#VgpZ4$~V8T@u5Flv-N>l=daoN;H&@f -z#f>}vs8m}wIdWp}u8lh%n+m|p4V*l5@cFOSE`M*De6;V_8)pvgz4iV_+V1<*aDUIy -zJRl#;WedMo-ii)Br -z8d~p|7#ltMqi@d@fXnAMtlhBpt52+Y&%IUEwU^Id(zvqWmJO#~`{9~xA1aEX@7RIS -zk$(%#?c3&Au(rPW;B#M@nsDdu{P|6{Z=bw<)9u?|{@1@azV~~r_k8sK`}2V7LI7Bd -z?)v@DFJHNC`pD3^w_p1E&rRMwePB<`@}@U;eR=B93%#cX&vwtX+Ud?8-+KQelPBv* -z4Xt-9X=v#^^4f~qw#|CTnr$CC_LJ{S27loAzFlj!K3FmB@XHsh`Ne<#CoO4MId!|D -zvhtSqJ=EQ?TL4&Wya>#VXJnwSW?94Zk-El}>)t=->2;*PudbnG#$a93s^R{#a~-nk -z-M`-d){()pC&w-hcX#Ywd)J5Galv`iHLV&x_x6>~hlSx805_h}l4UpFdH+1G;(uN? -zf9c3T-;BYL{+{Z(`ne9NEY+;ueBX(EyOy=I)~{}>Yg+Y=3(jMtzqfknyRLjbEDX;8 -zxbduL-+HoR_wCqce^`wUwN)z!3Y31o`3cCe(LmrJqMrr%HWyfBLlss-uTf^zx>xrSFF9l -z`DYI9-S@T6x83(!)pg6~`6`XAca&g|z>LGEZp@fp*R*Qg`yZa`j6D6Tues~P1E-Ew)hwC3TU*~; -zSy`H~;OOv$y2h0^-TuDw-G`?Zx%s_2-u&Lb4W2zwRa4ipVf#IgJvGneCMcJRqA1#T -zJUaR3Uk<(S^~t{pJT(GbtvB6&``NpGZ|1w0po}g*w@;3^1OyOD002S>09<4BtJ-jmWI#YT@*!a{SR6;j^6gbZ&cMRDfiZ3K?wj^CdSA1eeK&l -zU0*DU)srKGXFh%8rS5Yl{%reaf4icxs=V8Sh2%8=vb_GxcY2RLK6Up0h1I=BAAkLs -zXUl)HCnysEAj!l;@6pK-H#o5 -z{>jswrHdEZilV5lJKVBy^tJ~+;X?qV5dh+pYU?)c{K$rnjE;^B6-801X|1U84}nB} -z?+H~=RjRIAUhZ8$Ie87UQ4gE}vJcDwX;f*}(X)qNUEqBHaGlI`N}oLdJze{Iy7phs -z{QyvAE&&0Ay5t!^)A}v#J0309RsguJn$~Zbe)p09G`DSOZrf4-5WpoMfKa8vdwu}I -dIPC*O`(OQhi=mytgKz)<002ovPDHLkV1iRHGLrxR - -diff --git a/test/python_tests/images/pycairo/cairo-cairo-expected.svg b/test/python_tests/images/pycairo/cairo-cairo-expected.svg -index 18d7343..c120f58 100644 ---- a/test/python_tests/images/pycairo/cairo-cairo-expected.svg -+++ b/test/python_tests/images/pycairo/cairo-cairo-expected.svg -@@ -3,45 +3,48 @@ - - - -- -+ - - -- -+ - - -- -+ - - -- -+ - - -- -+ - - -- -+ - - -- -+ - - -- -+ -+ -+ -+ - - - - - -- -+ - -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ - -- -+ - - diff --git a/python-mapnik-flags.patch b/python-mapnik-flags.patch index 6b3c42e..fbe3a13 100644 --- a/python-mapnik-flags.patch +++ b/python-mapnik-flags.patch @@ -1,11 +1,11 @@ -commit b058d88ec6a783d648ed3ffa027ec3d840894fa8 +commit 70d6caa03fbd74d4fd300202019ce3d31b2c5379 Author: Tom Hughes Date: Sat Jul 11 00:30:09 2015 +0100 Don't try and edit compiler settings diff --git a/setup.py b/setup.py -index 1e6095c..f607dbb 100755 +index 64964d2..5de70db 100755 --- a/setup.py +++ b/setup.py @@ -81,24 +81,6 @@ class WhichBoostCommand(Command): @@ -14,26 +14,26 @@ index 1e6095c..f607dbb 100755 -cflags = sysconfig.get_config_var('CFLAGS') -sysconfig._config_vars['CFLAGS'] = re.sub( -- ' +', ' ', cflags.replace('-g', '').replace('-Os', '').replace('-arch i386', '')) +- ' +', ' ', cflags.replace('-g ', '').replace('-Os', '').replace('-arch i386', '')) -opt = sysconfig.get_config_var('OPT') -sysconfig._config_vars['OPT'] = re.sub( -- ' +', ' ', opt.replace('-g', '').replace('-Os', '')) +- ' +', ' ', opt.replace('-g ', '').replace('-Os', '')) -ldshared = sysconfig.get_config_var('LDSHARED') -sysconfig._config_vars['LDSHARED'] = re.sub( -- ' +', ' ', ldshared.replace('-g', '').replace('-Os', '').replace('-arch i386', '')) +- ' +', ' ', ldshared.replace('-g ', '').replace('-Os', '').replace('-arch i386', '')) -ldflags = sysconfig.get_config_var('LDFLAGS') -sysconfig._config_vars['LDFLAGS'] = re.sub( -- ' +', ' ', ldflags.replace('-g', '').replace('-Os', '').replace('-arch i386', '')) +- ' +', ' ', ldflags.replace('-g ', '').replace('-Os', '').replace('-arch i386', '')) -pycflags = sysconfig.get_config_var('PY_CFLAGS') -sysconfig._config_vars['PY_CFLAGS'] = re.sub( -- ' +', ' ', pycflags.replace('-g', '').replace('-Os', '').replace('-arch i386', '')) +- ' +', ' ', pycflags.replace('-g ', '').replace('-Os', '').replace('-arch i386', '')) -sysconfig._config_vars['CFLAGSFORSHARED'] = '' -os.environ['ARCHFLAGS'] = '' - if os.environ.get("MASON_BUILD", "false") == "true": # run bootstrap.sh to get mason builds subprocess.call(['./bootstrap.sh']) -@@ -244,8 +226,6 @@ if sys.platform == 'darwin': +@@ -252,8 +234,6 @@ if sys.platform == 'darwin': linkflags.append('-mmacosx-version-min=10.8') else: linkflags.append('-lrt') diff --git a/python-mapnik-paths.patch b/python-mapnik-paths.patch deleted file mode 100644 index e2a038a..0000000 --- a/python-mapnik-paths.patch +++ /dev/null @@ -1,65 +0,0 @@ -commit f3883056898b9fe37b2df9a3af4a08ddb27ea240 -Author: Tom Hughes -Date: Mon Nov 23 11:09:30 2015 +0000 - - Ask mapnik-config where to find fonts and input plugins - -diff --git a/setup.py b/setup.py -index 13b4904..0c544e8 100755 ---- a/setup.py -+++ b/setup.py -@@ -107,6 +107,9 @@ else: - f_paths.write('import os\n') - f_paths.write('\n') - -+input_plugin_path = check_output([mapnik_config, '--input-plugins']) -+font_path = check_output([mapnik_config, '--fonts']) -+ - if mason_build: - try: - if sys.platform == 'darwin': -@@ -117,7 +120,6 @@ if mason_build: - shutil.copyfile(f, os.path.join('mapnik', base_f)) - except shutil.Error: - pass -- input_plugin_path = check_output([mapnik_config, '--input-plugins']) - input_plugin_files = os.listdir(input_plugin_path) - input_plugin_files = [os.path.join( - input_plugin_path, f) for f in input_plugin_files] -@@ -129,7 +131,6 @@ if mason_build: - 'mapnik', 'plugins', 'input', os.path.basename(f))) - except shutil.Error: - pass -- font_path = check_output([mapnik_config, '--fonts']) - font_files = os.listdir(font_path) - font_files = [os.path.join(font_path, f) for f in font_files] - if not os.path.exists(os.path.join('mapnik', 'plugins', 'fonts')): -@@ -143,6 +144,8 @@ if mason_build: - if create_paths: - f_paths.write( - 'mapniklibpath = os.path.join(os.path.dirname(os.path.realpath(__file__)), "plugins")\n') -+ f_paths.write("inputpluginspath = os.path.join(mapniklibpath,'input')\n") -+ f_paths.write("fontscollectionpath = os.path.join(mapniklibpath,'fonts')\n") - elif create_paths: - if os.environ.get('LIB_DIR_NAME'): - mapnik_lib_path = lib_path + os.environ.get('LIB_DIR_NAME') -@@ -150,15 +153,12 @@ elif create_paths: - mapnik_lib_path = lib_path + "/mapnik" - f_paths.write("mapniklibpath = '{path}'\n".format(path=mapnik_lib_path)) - f_paths.write('mapniklibpath = os.path.normpath(mapniklibpath)\n') -+ f_paths.write( -+ "inputpluginspath = '{path}'\n".format(path=input_plugin_path)) -+ f_paths.write( -+ "fontscollectionpath = '{path}'\n".format(path=font_path)) - - if create_paths: -- f_paths.write("inputpluginspath = os.path.join(mapniklibpath,'input')\n") -- if os.environ.get('SYSTEM_FONTS'): -- font_path = "os.path.normpath('{path}')".format(path=os.environ.get('SYSTEM_FONTS')) -- else: -- font_path = "os.path.join(mapniklibpath,'fonts')" -- f_paths.write( -- "fontscollectionpath = {path}\n".format(path=font_path)) - f_paths.write( - "__all__ = [mapniklibpath,inputpluginspath,fontscollectionpath]\n") - f_paths.close() diff --git a/python-mapnik-register.patch b/python-mapnik-register.patch new file mode 100644 index 0000000..5d16971 --- /dev/null +++ b/python-mapnik-register.patch @@ -0,0 +1,59 @@ +commit f605135fc8defbe0459c3d2c976a9df71d910789 +Author: Tom Hughes +Date: Sun Jan 24 12:37:09 2016 +0000 + + Add some explicit register_ptr_to_python calls + +diff --git a/src/mapnik_datasource.cpp b/src/mapnik_datasource.cpp +index c35e5c0..bf3afb3 100644 +--- a/src/mapnik_datasource.cpp ++++ b/src/mapnik_datasource.cpp +@@ -202,6 +202,7 @@ void export_datasource() + "These vary depending on the type of data source.") + .def(self == self) + ; ++ register_ptr_to_python >(); + + def("CreateDatasource",&create_datasource); + +diff --git a/src/mapnik_feature.cpp b/src/mapnik_feature.cpp +index d77b9ee..07c9f73 100644 +--- a/src/mapnik_feature.cpp ++++ b/src/mapnik_feature.cpp +@@ -237,4 +237,5 @@ void export_feature() + .def("from_geojson",from_geojson_impl) + .staticmethod("from_geojson") + ; ++ register_ptr_to_python >(); + } +diff --git a/src/mapnik_featureset.cpp b/src/mapnik_featureset.cpp +index e19348f..87aae04 100644 +--- a/src/mapnik_featureset.cpp ++++ b/src/mapnik_featureset.cpp +@@ -93,4 +93,5 @@ void export_featureset() + "\n" + ) + ; ++ register_ptr_to_python >(); + } +diff --git a/src/mapnik_geometry.cpp b/src/mapnik_geometry.cpp +index b051c72..22124d5 100644 +--- a/src/mapnik_geometry.cpp ++++ b/src/mapnik_geometry.cpp +@@ -290,4 +290,5 @@ void export_geometry() + //.def("to_svg",&to_svg) + // TODO add other geometry_type methods + ; ++ register_ptr_to_python> >(); + } +diff --git a/src/mapnik_image.cpp b/src/mapnik_image.cpp +index da62680..b59fa6b 100644 +--- a/src/mapnik_image.cpp ++++ b/src/mapnik_image.cpp +@@ -470,5 +470,6 @@ void export_image() + .staticmethod("from_cairo") + #endif + ; ++ register_ptr_to_python >(); + + } diff --git a/python-mapnik.spec b/python-mapnik.spec index 6675822..70898b6 100644 --- a/python-mapnik.spec +++ b/python-mapnik.spec @@ -1,6 +1,6 @@ %global srcname mapnik -%global commit f81d5f8b83f6584527b701f5fe5f94b947e5fe45 +%global commit db7c1fdb2e970bdc93ab439119465fa5c0df3a07 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global testcommit 3f15d11635fff10cc4d552629a8195158ba92c3e @@ -18,14 +18,12 @@ Source1: https://github.com/mapnik/test-data/archive/%{testcommit}/test-d Source2: https://github.com/mapnik/test-data-visual/archive/%{visualcommit}/test-data-visual-%{visualcommit}.tar.gz # Stop setup.py trying to fiddle with compiler flags Patch0: python-mapnik-flags.patch -# https://github.com/mapnik/python-mapnik/pull/66 -Patch1: python-mapnik-paths.patch # Allow more variation in comparisons -Patch2: python-mapnik-precision.patch +Patch1: python-mapnik-precision.patch # Remove test that relies on WKT data missing from Fedora's gdal -Patch3: python-mapnik-gdal.patch -# https://github.com/mapnik/python-mapnik/pull/71 -Patch4: python-mapnik-cairo.patch +Patch2: python-mapnik-gdal.patch +# https://github.com/mapnik/python-mapnik/pull/79 +Patch3: python-mapnik-register.patch BuildRequires: python2-devel python3-devel BuildRequires: python2-nose python3-nose @@ -106,6 +104,10 @@ pg_ctl stop -D pg_data %changelog +* Sun Jan 24 2016 Tom Hughes - 0.1-5.20151209gitdb7c1fd +- Update to new snapshot +- Patch some boost 1.60.0 issues + * Fri Jan 22 2016 Tom Hughes - 0.1-5.20151209gitf81d5f8 - Rebuild for boost 1.60.0 diff --git a/sources b/sources index f92fb58..1bae67a 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -bddf74ec2e0074842253537dd1ae05dc python-mapnik-f81d5f8b83f6584527b701f5fe5f94b947e5fe45.tar.gz +7f12157ac8dc264aa4ad50c64100b2cb python-mapnik-db7c1fdb2e970bdc93ab439119465fa5c0df3a07.tar.gz b02c858a36a5da9ee4bd0e02007e5199 test-data-3f15d11635fff10cc4d552629a8195158ba92c3e.tar.gz 691ccd659e1d09f353bc55c5537b1a53 test-data-visual-972b039bfc5a5e189f68852c22df717a30c1adf7.tar.gz