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

qpdf/11.1.1 add (lib only) package #13113

Merged
merged 75 commits into from
Oct 17, 2022

Conversation

cguentherTUChemnitz
Copy link
Contributor

Specify library name and version: qpdf/11.1.0

I am not a maintainer of the qpdf project, but i would like to have it in the conan package ecosystem. The project speaks best on its-self:
https://github.com/qpdf/qpdf

The project provides cli tools as well as c++ and c libraries.

One explanation for the decision to go for libjpeg-turbo as hardcoded requirement:
libjpeg produces runtime errors in the package-test with:

error while getting stream data for 7 0 R: Wrong JPEG library version: library is 90, caller expects 80

This seems that i would have to downgrade libjpeg to something that is not present on the conan repository. Nevertheless i was happy to find out that libjpeg-turbo was just working fine.


  • 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.

@CLAassistant
Copy link

CLAassistant commented Sep 23, 2022

CLA assistant check
All committers have signed the CLA.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@cguentherTUChemnitz
Copy link
Contributor Author

Mh it seems there is an requirement from within qpdf to require a more modern cmake version that installed on the ci-runners, since they report:

-- Configuring incomplete, errors occurred!
qpdf/11.1.0: 
CMake Error at CMakeLists.txt:2 (cmake_minimum_required):
  CMake 3.16 or higher is required.  You are running version 3.15.7

What is the way here to go? I an upgrade on ci-systems necessary? That would wonder me since other packages are using cmake version 3.16 in there test_package, like in boost-ext-ut/all/test_package/CMakeLists.txt. So how such a package was able to merge? Would it be a solution to add cmake from conan in a more modern version as a build_requirement?

@uilianries
Copy link
Member

@cguentherTUChemnitz You should add cmake as tool_requires, in build_requirements() method: https://docs.conan.io/en/latest/migrating_to_2.0/recipes.html#requirements

@conan-center-bot

This comment has been minimized.

@cguentherTUChemnitz cguentherTUChemnitz changed the title initial conan qpdf package implementation qpdf/11.1.0 add package Sep 26, 2022
@conan-center-bot

This comment has been minimized.

Copy link
Member

@uilianries uilianries left a comment

Choose a reason for hiding this comment

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

Thank you for your contribution. Please, refine the template according to your target project, remove unused methods and comments.

recipes/qpdf/all/conandata.yml Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/test_package/test_package.cpp Outdated Show resolved Hide resolved
@cguentherTUChemnitz
Copy link
Contributor Author

Thank you for your contribution. Please, refine the template according to your target project, remove unused methods and comments.

Thanks for your pleasant examples and documentations as well as your fast and detailed feedback ;) I will do it shortly

@conan-center-bot

This comment has been minimized.

@github-actions
Copy link
Contributor

Hooks produced the following warnings for commit e9d6be8
qpdf/11.1.0
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library './lib/libqpdf.so' links to system library 'm' but it is not in cpp_info.system_libs.

@conan-center-bot

This comment has been minimized.

@cguentherTUChemnitz
Copy link
Contributor Author

@uilianries I tried to update everything as your review suggest.

  • removed a lot of comments from the templates
  • shrinked down the test to some version printing instead of doing real work
  • introduced with_crypto option to select between native and openssl (didn't find the third way of gnutls on conan)
  • revisited the linked system libs (only libm seems to be necessary here, as mentioned from the great conan ci-builds)

Do you think this is now in a mergeable state?

recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/conanfile.py Outdated Show resolved Hide resolved
recipes/qpdf/all/test_package/CMakeLists.txt Outdated Show resolved Hide resolved
recipes/qpdf/all/test_package/CMakeLists.txt Outdated Show resolved Hide resolved
recipes/qpdf/all/test_package/CMakeLists.txt Outdated Show resolved Hide resolved
recipes/qpdf/all/test_package/conanfile.py Outdated Show resolved Hide resolved
@cguentherTUChemnitz
Copy link
Contributor Author

@uilianries fine that way?

continuous-integration/jenkins/pr-merge Expected — Waiting for status to be reported
Do i have to do something here, or is it just wait for the scheduled build job?

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@cguentherTUChemnitz
Copy link
Contributor Author

@uilianries Are we finished here? Can we trigger additional people to provide the necessary reviews?

uilianries
uilianries previously approved these changes Sep 28, 2022
Copy link
Member

@uilianries uilianries left a comment

Choose a reason for hiding this comment

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

LGTM

@uilianries uilianries self-requested a review September 28, 2022 13:41
jwillikers
jwillikers previously approved these changes Oct 14, 2022
uilianries
uilianries previously approved these changes Oct 14, 2022
@conan-center-bot

This comment has been minimized.

… finally fix windows plattform of not enabling openssl sources, even when conan does provide openssl.
jwillikers
jwillikers previously approved these changes Oct 14, 2022
@cguentherTUChemnitz
Copy link
Contributor Author

Sry guys for all the patch-rounds here, but i do not have a windows platform at hand, so i have to do quite some ping-pong with the ci.

@conan-center-bot

This comment has been minimized.

@cguentherTUChemnitz
Copy link
Contributor Author

@uilianries What is here to do, when crucial dependency like the default used openssl is missing here on ci as prebuilt package?

@conan-center-bot

This comment has been minimized.

jwillikers
jwillikers previously approved these changes Oct 15, 2022
@cguentherTUChemnitz
Copy link
Contributor Author

@uilianries @prince-chrismc I think we are finally here in a mergeable state with openssl conan support for all major platforms ;)

if self.options.with_ssl == "openssl":
# TODO: update to 3.x branch of openssl, when zlib is able to handle it
Copy link
Contributor

Choose a reason for hiding this comment

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

Isn't the dependencies the other way around? 😖

Copy link
Contributor Author

Choose a reason for hiding this comment

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

A yes, your are right. I think it it not necessary to add the comment here after all, since updating dependencies is like an on-going todo... I would just now remove the comment to solve the discussion here.

@@ -119,12 +124,24 @@ def generate(self):

def _patch_sources(self):
apply_conandata_patches(self)
# we generally expect to have one crypto in-place, but need to patch the found mechanics
# since we avoid currently the correct pkg_config
replace_in_file(self, os.path.join(self.source_folder, "libqpdf", "CMakeLists.txt"),
Copy link
Contributor

Choose a reason for hiding this comment

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

This can go in the parch I think

Copy link
Contributor Author

@cguentherTUChemnitz cguentherTUChemnitz Oct 16, 2022

Choose a reason for hiding this comment

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

Mh, it is possible, but i would like to have the handling for the FOUND_CRYPTO, USE_CRYPTO_OPENSSL, USE_CRYPTO_GNUTLS, USE_CRYPTO_NATIVE next to each other, since they are already contextwise near to each other. Since the use_crypto_xxx flags are easier handled in the conanfile.py, since they are dependending on the conan options, i would like to keep the FROUND_CRYPTO also there. Is that fine for you, @prince-chrismc ?

@conan-center-bot
Copy link
Collaborator

All green in build 59 (3aed2bbce8c3a332847aeae3b7b3d356a51f7774):

  • qpdf/11.1.1@:
    All packages built successfully! (All logs)

Copy link
Member

@uilianries uilianries left a comment

Choose a reason for hiding this comment

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

LGTM. Separating that patch could be a good improvement, but it's good enough now.

@conan-center-bot conan-center-bot merged commit 936eef0 into conan-io:master Oct 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants