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

[libxlsxwriter] Updated version 1.1.8 #41217

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

Shadowrom2020
Copy link
Contributor

@Shadowrom2020 Shadowrom2020 commented Sep 27, 2024

If this PR updates an existing port, please uncomment and fill out this checklist:

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version.
  • Any fixed CI baseline entries are removed from that file.
  • Any patches that are no longer applied are deleted from the port's directory.
  • When updating the upstream version, the "port-version" is reset (removed from vcpkg.json).
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is added to each modified port's versions file.

@Shadowrom2020 Shadowrom2020 marked this pull request as ready for review September 27, 2024 10:27
Copy link
Contributor

@dg0yt dg0yt left a comment

Choose a reason for hiding this comment

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

I think the port must now explicitly control interaction with PKGCONFIG when the build looks for dependencies. Disable it, or provide the program.

ports/libxlsxwriter/dependencies.diff Outdated Show resolved Hide resolved
@Shadowrom2020 Shadowrom2020 marked this pull request as draft September 28, 2024 06:36
@Shadowrom2020 Shadowrom2020 marked this pull request as ready for review September 28, 2024 07:34
@LilyWangLL LilyWangLL self-assigned this Sep 29, 2024
@LilyWangLL LilyWangLL added the category:port-update The issue is with a library, which is requesting update new revision label Sep 29, 2024
ports/libxlsxwriter/vcpkg.json Outdated Show resolved Hide resolved
@dg0yt
Copy link
Contributor

dg0yt commented Sep 29, 2024

I think the port must now explicitly control interaction with PKGCONFIG when the build looks for dependencies. Disable it, or provide the program

Still valid.

@Shadowrom2020
Copy link
Contributor Author

I think the port must now explicitly control interaction with PKGCONFIG when the build looks for dependencies. Disable it, or provide the program

Still valid.

the port generated a pkg-config file but didn't use PKGCONFIG to find deps. I've removed the generation of the pkg-config file. The only reference to PKGCONFIG is in the Makefile, that isn't used to build the library when using CMake as build system.

@dg0yt
Copy link
Contributor

dg0yt commented Sep 29, 2024

This is not what was asked for.
We had working pc files and CMake config, and there is no reson to damage that.

@Shadowrom2020
Copy link
Contributor Author

This is not what was asked for. We had working pc files and CMake config, and there is no reson to damage that.

Hmm... It works just fine now. When I updated the version to 1.1.8 it didn't build, because the old patches didn't work.
Could you please explain to me what you ment with:

I think the port must now explicitly control interaction with PKGCONFIG when the build looks for dependencies. Disable it, or provide the program.

PKGCONFIG seems to be a optional feature introduced in 1.1.8. It's not used in building the library at all. I don't think it's necessary to provide pkg-config with the lib. I'm confused

@dg0yt
Copy link
Contributor

dg0yt commented Sep 29, 2024

  • CMakeLists.txt has find_package(PkgConfig). If it results in PKG_CONFIG_FOUND, it will configure using pkg-config, otherwise using CMake.
  • This is bad: On systems without pre-installed pkg-config, it may change the configuration result when port pkgconf is installed before libxlsxwriter.
  • So the task is to force exactly one behavior which works for all systems.
    • The pkg-config approach may work (with limited won't support for downstream multiconfig usage). It requires that portfile uses vcpkg_find_acquire_program(PKGCONFIG) and passes "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" via cmake OPTIONS.
    • CMake may be enforced with -DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=1. It probably requires an adaptation of the original patching, for using unofficial packages and targets which carry complete transitive usage requirements.

IMO CMake is preferred when building with, and export config for, CMake.

@Shadowrom2020
Copy link
Contributor Author

Ah, now I get the confusion.
I recon you looked at the main branch f the libxlsxwriter repository. Then you're correct, they seem to be working on PkgCongi integration for the next release.
But if you look at the v1.1.8 tag, you'll find there is no find_package(PkgConfig) in the CMakeLists.txt:

CMakeLists.txt from v1.1.8

@dg0yt
Copy link
Contributor

dg0yt commented Sep 29, 2024

Indeed. Usually updates are very close to master.
So updating our CMake patches might be even more relevant. Using unofficial exported CMake config from dependencies might be more maintainable for us. minizip may come with a bzip2 link dependency.

@Shadowrom2020
Copy link
Contributor Author

I see... I've readded the unofficial::minizip patch

+ set(MINIZIP_LIBRARIES unofficial::minizip::minizip)
endif()

# LIBRARY
diff --git a/dev/release/pkg-config.txt b/dev/release/pkg-config.txt
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
diff --git a/dev/release/pkg-config.txt b/dev/release/pkg-config.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0e855c77..b08ae8e6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -230,8 +230,8 @@ message("zlib version: " ${ZLIB_VERSION})
# MINIZIP
if (USE_SYSTEM_MINIZIP)
- find_package(MINIZIP "1.0" REQUIRED)
- list(APPEND LXW_PRIVATE_INCLUDE_DIRS ${MINIZIP_INCLUDE_DIRS})
+ find_package(MINIZIP NAMES unofficial-minizip REQUIRED)
+ set(MINIZIP_LIBRARIES unofficial::minizip::minizip)
endif()
# LIBRARY
diff --git a/dev/release/pkg-config.txt b/dev/release/pkg-config.txt

I really want this (updated) chunk back in dependencies.diff. And nothing else from pkg-config.diff.

PATCHES
dependencies.diff
fix-zlib-ver-required.patch
disable-pkgconfig.diff
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
disable-pkgconfig.diff

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-update The issue is with a library, which is requesting update new revision
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants