Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add aws-sdk-cpp/1.7.299 recipe #1146

Closed
wants to merge 10 commits into from
Closed

Conversation

madebr
Copy link
Contributor

@madebr madebr commented Mar 19, 2020

Specify library name and version: aws-sdk-cpp/1.7.299


  • I've read the guidelines for contributing.
  • I've followed the PEP8 style guides for Python code in the recipes.
  • I've used the latest Conan client version.
  • I've tried at least one configuration locally with the
    conan-center hook activated.

Fixes conan-io/wishlist#145

@conan-center-bot

This comment has been minimized.

@madebr madebr mentioned this pull request Mar 24, 2020
4 tasks
@conan-center-bot

This comment has been minimized.

@gocarlos
Copy link
Contributor

related to #621

@gocarlos
Copy link
Contributor

@madebr any updates on this?

@madebr
Copy link
Contributor Author

madebr commented Jun 20, 2020

I just pushed a fix to #1140

@conan-center-bot

This comment has been minimized.

@gocarlos
Copy link
Contributor

CI needs to be re-triggered?

@uilianries uilianries closed this Jun 29, 2020
@uilianries uilianries reopened this Jun 29, 2020
@gocarlos
Copy link
Contributor

ping

@uilianries uilianries closed this Jul 21, 2020
@uilianries
Copy link
Member

let's try again

@uilianries uilianries reopened this Jul 21, 2020
@conan-center-bot

This comment has been minimized.

@uilianries
Copy link
Member

@danimtb something is wrong here, jenkins is hanging, could you please check?

@conan-center-bot

This comment has been minimized.

1 similar comment
@conan-center-bot

This comment has been minimized.

@gocarlos
Copy link
Contributor

@danimtb how can we push this forward?

@conan-center-bot
Copy link
Collaborator

An unexpected error happened and has been reported. Help is on its way! 🏇

@gocarlos
Copy link
Contributor

one thing that I think we need to address in the conan center is the process of adding a package:

aws-sdk-cpp adds a release every day!! now as CCI is not automated (yet?) and this recipe is taking months to merge:

I think that now no one is going to use version 1.7.299 as there are already like 100 versions in between!

are there concrete plans to allow people to do the same as npm or cargo does? e.g. upload a package to the CCI by themselfs e.g. when they are upstream?

@uilianries
Copy link
Member

@gocarlos That's a good point for a further discussion. Usually we include new version when someone asks, for example, Facebook Folly has no releases, so we tag by the date.

@danimtb
Copy link
Member

danimtb commented Jul 29, 2020

@madebr I see the build of this package takes a lot of memory usage in our containers and it gets killed. I suppose aws-sdk-cpp is a huge project. Currently we have a 4 GB limit of memory for runtime processes, could you verify if you are seeing this values as well from your side?

@uilianries
Copy link
Member

@madebr is mining bitcoins in CCI server 😹

@madebr
Copy link
Contributor Author

madebr commented Jul 29, 2020

@madebr is mining bitcoins in CCI server 😹

@uilianries
You make me thinking. Would it be possible to mine bitcoins at compile time?

The question should be: has anyone done this already? 😺

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@Croydon
Copy link
Contributor

Croydon commented Oct 20, 2020

Please add Fixes https://github.com/conan-io/wishlist/issues/145, thanks!

@conan-center-bot

This comment has been minimized.

@madebr
Copy link
Contributor Author

madebr commented Oct 21, 2020

I think it was killed due to out-of-memory.

@conan-center-bot
Copy link
Collaborator

Some configurations of 'aws-sdk-cpp/1.8.34' failed in build 22 (babeaecb71ab59fa619350c8d1a785c276d3b1d8):

Copy link
Contributor

@dvirtz dvirtz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add build_only option to shorten build times

"use_virtual_operations": [True, False],
"with_curl": [True, False],
"enable_curl_logging": [True, False],
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
}
"build_only": "ANY",
}

"use_virtual_operations": True,
"with_curl": True,
"enable_curl_logging": False,
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
}
"build_only": None,
}

self._cmake.definitions["ENABLE_CURL_LOGGING"] = self.options.get_safe("enable_curl_logging")
if self.settings.compiler.cppstd:
self._cmake.definitions["CPP_STANDARD"] = self._cmake_cpp_standard

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if self.options.build_only:
self._cmake.definitions["BUILD_ONLY"] = self.options.build_only

cmake = self._configure_cmake()
cmake.install()

tools.rmdir(os.path.join(self.package_folder, "lib", "cmake"))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why delete this? I, as a consumer, prefer the library's cmake config script, if available, rather than conan's generated one

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's cci policy to remove these.
But I agree to your sentiment.
Most cmake config scripts now are relocatable, whereas in the past they had absolute paths to the build systems embedded into them.

@danimtb @uilianries @SpaceIm @jgsogo
aws-sdk-cpp provides a lot of libraries (and config cmake scripts). By a lot, I mean 30+.
conan does currently not provide a way to generate multiple config scripts.
And even then, the generated conan cmake scripts will be generic and never the same as those provided by the aws-sdk-cpp cmake build script.

I feel cci should allow those cmake scripts that play by the book and are fully relocatable.
This would also save a lot of maintenance and acceptance of conan/cci.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that the other AWS packages don't delete this folder, e.g.

self.cpp_info.components["aws-c-common-lib"].builddirs = [os.path.join("lib", "cmake")]

Comment on lines +47 to +48
if self.settings.compiler.cppstd:
tools.check_min_cppstd(self, 2003)
Copy link
Contributor

@SpaceIm SpaceIm Nov 4, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why 2003? Don't you mean 11 (looking at build())?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keep 11. 2003 it's not listed as default cppstd in setting.yml.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll make the change to 11.
But 2003 is a fine value too.
Last time I checked, tools.check_min_cppstd converts self.settings.compiler.cppstd and 11 to a 4-digit year,
That way comparing 98 and 11 uses the same code path.

Copy link
Contributor Author

@madebr madebr Nov 5, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Btw, using 98,11,14,17 and 20 will cause a new y2k-kind problem in less then 80 years. 🤣

def requirements(self):
self.requires("aws-c-common/0.4.25")
self.requires("aws-c-event-stream/0.1.5")
self.requires("openssl/1.1.1g")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
self.requires("openssl/1.1.1g")
self.requires("openssl/1.1.1h")

self.requires("openssl/1.1.1g")
self.requires("zlib/1.2.11")
if self.options.with_curl:
self.requires("libcurl/7.71.1")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
self.requires("libcurl/7.71.1")
self.requires("libcurl/7.73.0")

Comment on lines +101 to +105
for root, _, _ in os.walk(self._source_subfolder):
cmakelists = os.path.join(root, "CMakeLists.txt")
repl = "AWS::aws-c-event-stream"
if os.path.isfile(cmakelists) and repl in tools.load(cmakelists):
tools.replace_in_file(cmakelists, repl, "CONAN_PKG::aws-c-event-stream", strict=False)
Copy link
Contributor

@SpaceIm SpaceIm Nov 4, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't be required anymore, imported target in aws-c-event-stream recipe was fixed in #2584

tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig"))

def package_info(self):
self.cpp_info.libs = tools.collect_libs(self)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as there are inter-dependencies between components (e.g. many depend on aws-sdk-core) it's not good to use collect_libs (see https://docs.conan.io/en/latest/reference/tools.html?highlight=inter%20dependent#tools-collect-libs)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it needs a similar approach as my boost components pr (#2097)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wow, you have a lot going on

@MartinDelille
Copy link
Contributor

Sorry I push a new PR without noticing one was already on its way. Is there something blocking this to be merge ?

@ghost
Copy link

ghost commented Jan 28, 2021

I detected other pull requests that are modifying aws-sdk-cpp/all recipe:

This message is automatically generated by https://github.com/ericLemanissier/conan-center-conflicting-prs so don't hesitate to report issues/improvements there.

@madebr
Copy link
Contributor Author

madebr commented Jan 28, 2021

@MartinDelille
I haven't worked on this one since months.
It's for you for the taking!

@conan-center-bot
Copy link
Collaborator

Failure in build 23 (babeaecb71ab59fa619350c8d1a785c276d3b1d8):

  • aws-sdk-cpp/1.8.34@:
    CI failed to create some packages (All logs)

    Logs for packageID d644b3a187ced211071d18344ebb6101ba2ab51a:
    [settings]
    arch=x86_64
    arch_build=x86_64
    build_type=Debug
    compiler=gcc
    compiler.libcxx=libstdc++
    compiler.version=6
    os=Linux
    os_build=Linux
    [options]
    aws-sdk-cpp:shared=False
    
    Scanning dependencies of target aws-cpp-sdk-elastic-inference
    [ 34%] Building CXX object source_subfolder/aws-cpp-sdk-elastic-inference/CMakeFiles/aws-cpp-sdk-elastic-inference.dir/ub_ELASTIC-INFERENCE.cpp.o
    [ 34%] Linking CXX static library ../../lib/libaws-cpp-sdk-elastic-inference.a
    [ 34%] Built target aws-cpp-sdk-elastic-inference
    Scanning dependencies of target aws-cpp-sdk-elasticache
    [ 35%] Building CXX object source_subfolder/aws-cpp-sdk-elasticache/CMakeFiles/aws-cpp-sdk-elasticache.dir/ub_ELASTICACHE.cpp.o
    source_subfolder/aws-cpp-sdk-ec2/CMakeFiles/aws-cpp-sdk-ec2.dir/build.make:82: recipe for target 'source_subfolder/aws-cpp-sdk-ec2/CMakeFiles/aws-cpp-sdk-ec2.dir/ub_EC2.cpp.o' failed
    CMakeFiles/Makefile2:6929: recipe for target 'source_subfolder/aws-cpp-sdk-ec2/CMakeFiles/aws-cpp-sdk-ec2.dir/all' failed
    [ 35%] Linking CXX static library ../../lib/libaws-cpp-sdk-elasticache.a
    [ 35%] Built target aws-cpp-sdk-elasticache
    Makefile:148: recipe for target 'all' failed
    aws-sdk-cpp/1.8.34: 
    fatal: Not a git repository: '/home/conan/w/BuildSingleReference/.conan/data/aws-sdk-cpp/1.8.34/_/_/build/d644b3a187ced211071d18344ebb6101ba2ab51a/source_subfolder/.git'
    CMake Warning at source_subfolder/aws-cpp-sdk-text-to-speech/CMakeLists.txt:31 (message):
      We've detected that you are building on linux, but the header files for
      pulseaudio are not available.  If you are providing your own audio
      implementation or you will not be using the text-to-speech library, this is
      fine.  However, if you are not providing your own implemenation and you
      want to use text-to-speech, you need to install the dev files for
      pulseAudio.  e.g.  apt-get install libpulse-dev or yum install
      pulseaudio-libs-devel.  Currently, no audio implementation will be built
      into this library.
    
    
    CMake Warning:
      Manually-specified variables were not used by the project:
    
        CMAKE_EXPORT_NO_PACKAGE_REGISTRY
    
    
    g++: internal compiler error: Killed (program cc1plus)
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions.
    make[2]: *** [source_subfolder/aws-cpp-sdk-ec2/CMakeFiles/aws-cpp-sdk-ec2.dir/ub_EC2.cpp.o] Error 4
    make[1]: *** [source_subfolder/aws-cpp-sdk-ec2/CMakeFiles/aws-cpp-sdk-ec2.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    make: *** [all] Error 2
    WARN: libcurl/7.71.1: requirement openssl/1.1.1j overridden by aws-sdk-cpp/1.8.34 to openssl/1.1.1g 
    [HOOK - conan-center.py] post_package_info(): WARN: [LIBRARY DOES NOT EXIST (KB-H054)] Component aws-c-common::aws-c-common libdir "lib" does not contain any declared library
    [HOOK - conan-center.py] post_package_info(): WARN: [LIBRARY DOES NOT EXIST (KB-H054)] Component aws-checksums::aws-checksums libdir "lib" does not contain any declared library
    [HOOK - conan-center.py] post_package_info(): WARN: [LIBRARY DOES NOT EXIST (KB-H054)] Component openssl::openssl libdir "lib" does not contain any declared library
    [HOOK - conan-center.py] post_package_info(): WARN: [LIBRARY DOES NOT EXIST (KB-H054)] Component aws-c-event-stream::aws-c-event-stream libdir "lib" does not contain any declared library
    [HOOK - conan-center.py] post_package_info(): WARN: [LIBRARY DOES NOT EXIST (KB-H054)] Component libcurl::libcurl libdir "lib" does not contain any declared library
    aws-sdk-cpp/1.8.34: WARN: Build folder is dirty, removing it: /home/conan/w/BuildSingleReference/.conan/data/aws-sdk-cpp/1.8.34/_/_/build/d644b3a187ced211071d18344ebb6101ba2ab51a
    aws-sdk-cpp/1.8.34: ERROR: Package 'd644b3a187ced211071d18344ebb6101ba2ab51a' build failed
    aws-sdk-cpp/1.8.34: WARN: Build folder /home/conan/w/BuildSingleReference/.conan/data/aws-sdk-cpp/1.8.34/_/_/build/d644b3a187ced211071d18344ebb6101ba2ab51a
    ERROR: aws-sdk-cpp/1.8.34: Error in build() method, line 120
    	cmake.build()
    	ConanException: Error 2 while executing cmake --build '/home/conan/w/BuildSingleReference/.conan/data/aws-sdk-cpp/1.8.34/_/_/build/d644b3a187ced211071d18344ebb6101ba2ab51a' '--' '-j2'
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Failed infrastructure Waiting on tools or services belonging to the infra
Projects
None yet
Development

Successfully merging this pull request may close these issues.

aws-sdk-cpp