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

[firebirdsql] new port #36176

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from
Draft

Conversation

asfernandes
Copy link

  • Changes comply with the maintainer guide
  • The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines.
  • Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx
  • The versioning scheme in vcpkg.json matches what upstream says.
  • The license declaration in vcpkg.json matches what upstream says.
  • The installed as the "copyright" file matches what upstream says.
  • The source code of the component installed comes from an authoritative source.
  • The generated "usage text" is accurate. See adding-usage for context.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is in the new port's versions file.
  • Only one version is added to each modified port's versions file.
@asfernandes
Copy link
Author

@microsoft-github-policy-service agree

@MonicaLiu0311 MonicaLiu0311 added the category:new-port The issue is requesting a new library to be added; consider making a PR! label Jan 16, 2024
@dg0yt
Copy link
Contributor

dg0yt commented Jan 17, 2024

Did you at least try to use vcpkg_configure_make?

@asfernandes
Copy link
Author

Did you at least try to use vcpkg_configure_make?

Could you be more specific? For what?

@Neumann-A
Copy link
Contributor

The question is rather why it is not using vcpkg_cmake_configure

@asfernandes
Copy link
Author

The question is rather why it is not using vcpkg_cmake_configure

Firebird build procedure is with ./autogen.sh, not ./configure.

@Neumann-A
Copy link
Contributor

Neumann-A commented Jan 17, 2024

Maintainer guidelines say to prefer cmake buildsystem if upstream provides it (unless it is useless for some reason)

@asfernandes
Copy link
Author

Maintainer guidelines say to prefer cmake buildsystem if upstream provides it (unless it is useless for some reason)

Firebird has useless cmake files, used by single contributor in the past and now completely unmaitained.

@Neumann-A
Copy link
Contributor

Then the question becomes why are you not using vcpkg_configure_make. You are completely missing the compiler flags setup.

@asfernandes
Copy link
Author

Then the question becomes why are you not using vcpkg_configure_make. You are completely missing the compiler flags setup.

I may check it.

I based the port in libtomcrypt/libtommath, and both are calling making with vcpkg_execute_build_process too.

@dg0yt
Copy link
Contributor

dg0yt commented Jan 17, 2024

Firebird build procedure is with ./autogen.sh, not ./configure.

This autogen.sh doesn't do much more than autoreconf and configure. As does
vcpkg_configure_make(... AUTOCONFIG ...).

@asfernandes
Copy link
Author

Firebird needs to execute configure in the same directory as the sources are. It looks like vcpkg_configure_make runs it out of tree.

@dg0yt
Copy link
Contributor

dg0yt commented Jan 20, 2024

Out-of-tree is good practice. For the bad guys, there is option COPY_SOURCE.

@asfernandes
Copy link
Author

Out-of-tree is good practice. For the bad guys, there is option COPY_SOURCE.

Done, thanks.

Comment on lines 11 to 12
--with-builtin-tomcrypt
--with-builtin-tommath
Copy link
Contributor

Choose a reason for hiding this comment

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

These libs have ports in vcpkg, so the builtins shouldn't be used.

--enable-binreloc
--with-builtin-tomcrypt
--with-builtin-tommath
--with-termlib=:libncurses.a
Copy link
Contributor

Choose a reason for hiding this comment

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

This library has a port in vcpkg. And there is more than static linkage.

--with-builtin-tomcrypt
--with-builtin-tommath
--with-termlib=:libncurses.a
--with-atomiclib=:libatomic.a
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure if this should be hard-coded.

Comment on lines 41 to 44
file(GLOB EXT_LIBS_RELEASE
"${SOURCE_COPY_REL_PATH}/extern/libtomcrypt/.libs/libtomcrypt.so*"
"${SOURCE_COPY_REL_PATH}/extern/libtommath/.libs/libtommath.so*"
)
Copy link
Contributor

Choose a reason for hiding this comment

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

This really asks for trouble with regard to these libs' ports.

@dg0yt
Copy link
Contributor

dg0yt commented Jan 21, 2024

linux logs:

configure: error: ICU support not found - please install development ICU package
@asfernandes
Copy link
Author

linux logs:

configure: error: ICU support not found - please install development ICU package

Firebird always uses ICU through dynamic loading (dlopen / LoadLibrary).

Is it possible to force this dependency to be built as shared libraries / DLLs?

@dg0yt
Copy link
Contributor

dg0yt commented Jan 21, 2024

Is it possible to force this dependency to be built as shared libraries / DLLs?

Not in triplets which mandate static linkage.
Basically the user decides. Not a single port like firebirdsql.

@MonicaLiu0311
Copy link
Contributor

Note: I will be converting your PR to draft status. When you're ready, please revert to "ready for review".

@MonicaLiu0311 MonicaLiu0311 marked this pull request as draft January 26, 2024 03:03
@MonicaLiu0311
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).
@MonicaLiu0311
Copy link
Contributor

Please get failure logs here of x64-windows.

-- Using source at D:/b/firebird/src/v5.0.0-b04904ce0c.clean
CMake Error at ports/firebird/windows/portfile.cmake:19 (file):
  file INSTALL cannot find
  "D:/b/firebird/src/v5.0.0-b04904ce0c.clean/output_x64_release/include": No
  error.
Call Stack (most recent call first):
  ports/firebird/portfile.cmake:12 (include)
  scripts/ports.cmake:172 (include)


error: building firebird:x64-windows failed with: BUILD_FAILED

Please get failure logs here of x64-linux.

@MonicaLiu0311
Copy link
Contributor

@asfernandes Is there any new progress?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR!
4 participants