conda-forge / expat-feedstock

A conda-smithy repository for expat.
BSD 3-Clause "New" or "Revised" License
0 stars 18 forks source link

Update to 2.2.1 #11

Closed ocefpaf closed 6 years ago

ocefpaf commented 7 years ago

See https://libexpat.github.io/

conda-forge-linter commented 7 years ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

ocefpaf commented 6 years ago

Windows is failing with:

[ 76%] Building C object CMakeFiles/runtestspp.dir/tests/memcheck.c.obj
cl : Command line warning D9002 : ignoring unknown option '-fno-strict-aliasing'
memcheck.c
[ 80%] Linking CXX executable tests\runtestspp.exe
LINK : warning LNK4044: unrecognized option '/fno-strict-aliasing'; ignored
runtestspp.cpp.obj : error LNK2019: unresolved external symbol _align_limit_to_full_utf8_characters referenced in function "void __cdecl test_utf8_auto_align(void)" (?test_utf8_auto_align@@YAXXZ)
tests\runtestspp.exe : fatal error LNK1120: 1 unresolved externals
LINK failed. with 1120
NMAKE : fatal error U1077: 'C:\bld\expat_1499011634022\_b_env\Library\bin\cmake.exe' : return code '0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
(C:\bld\expat_1499011634022\_b_env) C:\bld\expat_1499011634022\work\expat-2.2.1>if errorlevel 1 exit 1 

full log: https://ci.appveyor.com/project/conda-forge/expat-feedstock/build/1.0.36/job/c3lpv54cmq8ejqbt

@gillins do you think this is an easy fix?

gillins commented 6 years ago

Here is someone else with the same problem: https://www.mail-archive.com/dev@apr.apache.org/msg26616.html. Can't see a solution yet though...

gillins commented 6 years ago

This patch seems to fix it. Not sure if we should tell upstream...

diff -ru expat-2.2.1-orig/lib/internal.h expat-2.2.1/lib/internal.h
--- expat-2.2.1-orig/lib/internal.h 2017-07-03 12:06:41.177664236 +1000
+++ expat-2.2.1/lib/internal.h  2017-07-03 12:22:42.877661674 +1000
@@ -80,13 +80,14 @@
 # endif
 #endif

+#include "expat_external.h"

 #ifdef __cplusplus
 extern "C" {
 #endif

-void
+XMLPARSEAPI(void)
 align_limit_to_full_utf8_characters(const char * from, const char ** fromLimRef);

diff -ru expat-2.2.1-orig/lib/libexpat.def expat-2.2.1/lib/libexpat.def
--- expat-2.2.1-orig/lib/libexpat.def   2017-07-03 12:06:41.177664236 +1000
+++ expat-2.2.1/lib/libexpat.def    2017-07-03 12:07:33.725664096 +1000
@@ -74,3 +74,4 @@
 ; added with version 2.1.1
 ; XML_GetAttributeInfo @66
   XML_SetHashSalt @67@
+  align_limit_to_full_utf8_characters @90@
ocefpaf commented 6 years ago

Not sure if we should tell upstream...

I will try it here and if it works I'll report upstream. Thanks!

ocefpaf commented 6 years ago

The patch above worked for vc14 but we had another issue with vc9 that I missed before:

[ 64%] Building C object CMakeFiles/runtests.dir/tests/runtests.c.obj
cl : Command line warning D9002 : ignoring unknown option '-fno-strict-aliasing'
runtests.c
C:\bld\expat_1499085903898\work\expat-2.2.1\tests\runtests.c(19) : fatal error C1083: Cannot open include file: 'stdbool.h': No such file or directory
NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~1.0\VC\bin\amd64\cl.exe' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\nmake.exe"' : return code '0x2'
Stop.
(C:\bld\expat_1499085903898\_b_env) C:\bld\expat_1499085903898\work\expat-2.2.1>if errorlevel 1 exit 1 

@gillins is this a case skip or is there an easy solution?

gillins commented 6 years ago

I've sent you a PR....

ocefpaf commented 6 years ago

Everything works. Thanks @gillins!