toddfarmer / arrow-migration

0 stars 1 forks source link

[C++] Support Ubuntu 14.04 in .deb packaging automation #1466

Closed toddfarmer closed 6 years ago

toddfarmer commented 7 years ago

Note: This issue was originally created as ARROW-1538. Please see the migration documentation for further details.

Original Issue Description:

toddfarmer commented 7 years ago

Note: Comment by Kouhei Sutou (kou): [~rvernica] I want to separate debian/ directory like debian.ubuntu-14.04/ for Ubuntu 14.04 because there are many differences with other supported platforms.

toddfarmer commented 7 years ago

Note: Comment by Rares Vernica (rvernica): I'm trying to build Arrow 0.7.0 in Ubuntu 14.04 using the patches from here but I am having some issues with glib:

# docker run --rm --tty --volume /arrow/arrow-dist/cpp-linux/apt:/host:rw --env DEBUG=yes apache-arrow-ubuntu-14.04 /host/build.sh
...
make[2]: Entering directory `/build/apache-arrow-0.7.0/c_glib_build'
make  all-recursive
make[3]: Entering directory `/build/apache-arrow-0.7.0/c_glib_build'
Making all in arrow-glib
make[4]: Entering directory `/build/apache-arrow-0.7.0/c_glib_build/arrow-glib'
  GEN      stamp-enums.c
touch stamp-enums.c
  GEN      stamp-enums.h
touch stamp-enums.h
make  all-am
make[5]: Entering directory `/build/apache-arrow-0.7.0/c_glib_build/arrow-glib'
  CXX      libarrow_glib_la-array.lo
In file included from ../../c_glib/arrow-glib/array.h:23:0,
                 from ../../c_glib/arrow-glib/array.hpp:24,
                 from ../../c_glib/arrow-glib/array.cpp:24:
../../c_glib/arrow-glib/compute.h:27:25: error: expected constructor, destructor, or type conversion before '(' token
 G_DECLARE_DERIVABLE_TYPE(GArrowCastOptions,
                         ^
../../c_glib/arrow-glib/compute.h:37:1: error: 'GArrowCastOptions' does not name a type
 GArrowCastOptions *garrow_cast_options_new(void);
 ^
In file included from ../../c_glib/arrow-glib/array.hpp:24:0,
                 from ../../c_glib/arrow-glib/array.cpp:24:
../../c_glib/arrow-glib/array.h:88:42: error: 'GArrowCastOptions' has not been declared
                                          GArrowCastOptions *options,
                                          ^
In file included from ../../c_glib/arrow-glib/array.cpp:26:0:
../../c_glib/arrow-glib/compute.hpp:26:1: error: 'GArrowCastOptions' does not name a type
 GArrowCastOptions *garrow_cast_options_new_raw(arrow::compute::CastOptions *arrow_cast_options);
 ^
../../c_glib/arrow-glib/compute.hpp:27:58: error: 'GArrowCastOptions' was not declared in this scope
 arrow::compute::CastOptions *garrow_cast_options_get_raw(GArrowCastOptions *cast_options);
                                                          ^
../../c_glib/arrow-glib/compute.hpp:27:77: error: 'cast_options' was not declared in this scope
 arrow::compute::CastOptions *garrow_cast_options_get_raw(GArrowCastOptions *cast_options);
                                                                             ^
../../c_glib/arrow-glib/array.cpp:519:19: error: 'GArrowCastOptions' has not been declared
                   GArrowCastOptions *options,
                   ^
../../c_glib/arrow-glib/array.cpp: In function 'GArrowArray* garrow_array_cast(GArrowArray*, GArrowDataType*, int*, GError**)':
../../c_glib/arrow-glib/array.cpp:530:61: error: 'garrow_cast_options_get_raw' cannot be used as a function
     auto arrow_options = garrow_cast_options_get_raw(options);
                                                             ^
make[5]: *** [libarrow_glib_la-array.lo] Error 1
make[5]: Leaving directory `/build/apache-arrow-0.7.0/c_glib_build/arrow-glib'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/build/apache-arrow-0.7.0/c_glib_build/arrow-glib'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/build/apache-arrow-0.7.0/c_glib_build'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/build/apache-arrow-0.7.0/c_glib_build'
dh_auto_build: make -j1 returned exit code 2
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory `/build/apache-arrow-0.7.0'
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
debuild: fatal error at line 1364:
dpkg-buildpackage -rfakeroot -D -us -uc failed
Failed debuild -us -uc
toddfarmer commented 7 years ago

Note: Comment by Wes McKinney (wesm): hi [~rvernica] you need ARROW-1546 https://github.com/apache/arrow/commit/bfe657909f5e7d96b7b8e5179baa17044b6ea375

toddfarmer commented 7 years ago

Note: Comment by Rares Vernica (rvernica): Thanks for the pointer on glib. I applied the bfe65790 commit on top of the 0.7.0 tag and I am able to move past that error, but I get some errors related to missing files, even while building for Ubuntu 16.04:

# docker run --rm --tty --volume /arrow-dist/cpp-linux/apt:/host:rw --env DEBUG=yes apache-arrow-ubuntu-16.04 /host/build.sh
...
-- Installing: /build/apache-arrow-0.7.0/debian/tmp/usr/include/arrow/python/type_traits.h
-- Installing: /build/apache-arrow-0.7.0/debian/tmp/usr/lib/x86_64-linux-gnu/pkgconfig/arrow-python.pc
make[2]: Leaving directory '/build/apache-arrow-0.7.0/cpp_build'
dh_auto_install             \
  --sourcedirectory=c_glib      \
  --builddirectory=c_glib_build
make[1]: Leaving directory '/build/apache-arrow-0.7.0'
   dh_install
dh_install: libarrow-glib0 missing files: usr/lib/*/libarrow-glib.so.*
dh_install: gir1.2-arrow-1.0 missing files: usr/lib/*/girepository-1.0/
dh_install: libarrow-glib-dev missing files: usr/include/arrow-glib/
dh_install: libarrow-glib-dev missing files: usr/lib/*/libarrow-glib.a
dh_install: libarrow-glib-dev missing files: usr/lib/*/libarrow-glib.so
dh_install: libarrow-glib-dev missing files: usr/lib/*/pkgconfig/arrow-glib.pc
dh_install: libarrow-glib-dev missing files: usr/share/gir-1.0/
dh_install: libarrow-glib-dev missing files: usr/share/arrow-glib/example/
dh_install: libarrow-glib-doc missing files: usr/share/doc/libarrow-glib-doc/arrow-glib/
dh_install: missing files, aborting
debian/rules:12: recipe for target 'binary' failed
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -D -us -uc failed
Failed debuild -us -uc

It seems like nothing is happening for c_glib during dh_auto_install.

toddfarmer commented 7 years ago

Note: Comment by Rares Vernica (rvernica): I figured it out. I was applying the patch on the git clone and then doing git archive. The resulting archive did not contain all the necessary Makefiles. Instead, I applied the patch on the distributed archive and it worked.

toddfarmer commented 7 years ago

Note: Comment by Rares Vernica (rvernica): PR: https://github.com/apache/arrow-dist/pull/11