automl / random_forest_run

Other
35 stars 24 forks source link

Installation copies files into include directory #34

Closed mfeurer closed 6 years ago

mfeurer commented 6 years ago

I think this is highly related to #27, but I nevertheless opened a new issue because I'm using a newer version of the pyrfr (0.6.0). Upon calling pip install pyrfr, the content of my include-directory changes from:

cloog  lzma    mpf2mpfr.h  pcre.h              pcrecpp.h     python3.6m  sqlite3ext.h  tclPlatDecls.h     tk.h           zconf.h
gmp.h  lzma.h  mpfr.h      pcre_scanner.h      pcrecpparg.h  readline    tcl.h         tclTomMath.h       tkDecls.h      zlib.h
isl    mpc.h   openssl     pcre_stringpiece.h  pcreposix.h   sqlite3.h   tclDecls.h    tclTomMathDecls.h  tkPlatDecls.h

to

access.hpp                                 filereadstream.h                pcre.h                          stdint.h
adapters.hpp                               filewritestream.h               pcre_scanner.h                  stream.h
allocators.h                               forest_options.hpp              pcre_stringpiece.h              strfunc.h
array.hpp                                  forward_list.hpp                pcrecpp.h                       string.hpp
array_wrapper.hpp                          functional.hpp                  pcrecpparg.h                    stringbuffer.h
base64.hpp                                 fwd.h                           pcreposix.h                     strtod.h
base_class.hpp                             gmp.h                           pointer.h                       swap.h
biginteger.h                               helpers.hpp                     polymorphic.hpp                 tcl.h
binary.hpp                                 ieee754.h                       polymorphic_impl.hpp            tclDecls.h
binary_fanova_tree.hpp                     inttypes.h                      polymorphic_impl_fwd.hpp        tclPlatDecls.h
binary_split_one_feature_rss_loss.hpp      isl                             portable_binary.hpp             tclTomMath.h
bitset.hpp                                 istreamwrapper.h                pow10.h                         tclTomMathDecls.h
boost_variant.hpp                          itoa.h                          prettywriter.h                  temporary_node.hpp
cereal.hpp                                 json.hpp                        python3.6m                      tk.h
chrono.hpp                                 k_ary_node.hpp                  quantile_regression_forest.hpp  tkDecls.h
classification_forest.hpp                  k_ary_tree.hpp                  queue.hpp                       tkPlatDecls.h
classification_split.hpp                   license.txt                     rapidjson.h                     traits.hpp
cloog                                      list.hpp                        rapidxml.hpp                    tree_base.hpp
common.hpp                                 lzma                            rapidxml_iterators.hpp          tree_options.hpp
complex.hpp                                lzma.h                          rapidxml_print.hpp              tuple.hpp
data_container.hpp                         macros.hpp                      rapidxml_utils.hpp              unordered_map.hpp
data_container_utils.hpp                   manual.html                     reader.h                        unordered_set.hpp
default_data_container.hpp                 map.hpp                         readline                        util.hpp
default_data_container_with_instances.hpp  memory.hpp                      regex.h                         utility.hpp
deque.hpp                                  memorybuffer.h                  regression_forest.hpp           valarray.hpp
diyfp.h                                    memorystream.h                  schema.h                        vector.hpp
document.h                                 meta.h                          set.hpp                         writer.h
dtoa.h                                     mpc.h                           split_base.hpp                  xml.hpp
en.h                                       mpf2mpfr.h                      sqlite3.h                       zconf.h
encodedstream.h                            mpfr.h                          sqlite3ext.h                    zlib.h
encodings.h                                openssl                         stack.h
error.h                                    ostreamwrapper.h                stack.hpp
fanova_forest.hpp                          pair_associative_container.hpp  static_object.hpp

Among those, the file inttypes.h is particularly malicious as it crashes on machines not having MS Visual Studio:

// ISO C9x  compliant inttypes.h for Microsoft Visual Studio
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 
// 
//  Copyright (c) 2006-2013 Alexander Chemeris
// 
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// 
//   1. Redistributions of source code must retain the above copyright notice,
//      this list of conditions and the following disclaimer.
// 
//   2. Redistributions in binary form must reproduce the above copyright
//      notice, this list of conditions and the following disclaimer in the
//      documentation and/or other materials provided with the distribution.
// 
//   3. Neither the name of the product nor the names of its contributors may
//      be used to endorse or promote products derived from this software
//      without specific prior written permission.
// 
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// 
///////////////////////////////////////////////////////////////////////////////

// The above software in this distribution may have been modified by 
// THL A29 Limited ("Tencent Modifications"). 
// All Tencent Modifications are Copyright (C) 2015 THL A29 Limited.

#ifndef _MSC_VER // [
#error "Use this header only with Microsoft Visual C++ compilers!"
#endif // _MSC_VER ]

Which makes it impossible to install Auto-sklearn: https://travis-ci.org/automl/auto-sklearn/jobs/282169539

sfalkner commented 6 years ago

Hey Matthias, I didn't use the MANIFEST.in file and put all the headers in the package_data. I did that only to include them automatically in my packaged zip file, but I wasn't aware that they get properly installed. Could you try again with version 0.6.1 from PyPI? It works for me locally, but I need your confirmation. Please close the issue if it works.

mfeurer commented 6 years ago

Okay, this works. Thanks a lot!