vcpkg icon indicating copy to clipboard operation
vcpkg copied to clipboard

Add libfaketime

Open dudoslav opened this issue 1 year ago • 2 comments

  • [ x] Changes comply with the maintainer guide.
  • [x] 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.
  • [x] 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.
  • [x] The versioning scheme in vcpkg.json matches what upstream says.
  • [x] The license declaration in vcpkg.json matches what upstream says.
  • [x] The installed as the "copyright" file matches what upstream says.
  • [x] The source code of the component installed comes from an authoritative source.
  • [x] The generated "usage text" is accurate. See adding-usage for context.
  • [x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • [x] Only one version is in the new port's versions file.
  • [x] Only one version is added to each modified port's versions file.

dudoslav avatar Apr 30 '24 13:04 dudoslav

@microsoft-github-policy-service agree company="TileDB"

dudoslav avatar Apr 30 '24 13:04 dudoslav

0.9.10 is declared with 451debe90ea3a82a03d3ba30eeaa0abc3e9409a3, but the local port has a different SHA 43c3d525b4e071c4265c512fda07775af3a0df6a.
Please update the port's version fields and then run:
vcpkg x-add-version libfaketime
git add versions
git commit -m "Update version database"
to add the new version.
To attempt to resolve all errors at once, run:
vcpkg x-add-version --all

Cheney-W avatar May 06 '24 10:05 Cheney-W

Why don't you use the Makefile provided by the upstream to build this port?

Cheney-W avatar May 06 '24 10:05 Cheney-W

For our use case only libfaketime.so is needed and I prefer using CMake. I hope it is not an issue :) .

dudoslav avatar May 14 '24 12:05 dudoslav

The vcpkg policy is that if the upstream provides multiple build methods, we prefer CMake. However, if the upstream only provides one available build method, we need to use the upstream's build method instead of using a custom CMake.

Cheney-W avatar May 17 '24 06:05 Cheney-W

I reworked this PR to use Make instead of CMake but right now it fails due to I assume incorrect working directory, is there a chance to change it?:

-- Building x64-linux-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:134 (message):
    Command failed: /usr/bin/make V=1 -j 9 -f Makefile all
    Working Directory: /home/dudoslav/Projects/vcpkg/buildtrees/libfaketime/x64-linux-dbg/
    See logs for more information:
      /home/dudoslav/Projects/vcpkg/buildtrees/libfaketime/build-x64-linux-dbg-err.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_build_make.cmake:136 (vcpkg_execute_build_process)
  scripts/cmake/vcpkg_install_make.cmake:2 (vcpkg_build_make)
  ports/libfaketime/portfile.cmake:10 (vcpkg_install_make)
  scripts/ports.cmake:175 (include)


error: building libfaketime:x64-linux failed with: BUILD_FAILED
Elapsed time to handle libfaketime:x64-linux: 1.7 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
  https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+libfaketime
You can submit a new issue at:
  https://github.com/microsoft/vcpkg/issues/new?title=[libfaketime]+Build+error+on+x64-linux&body=Copy+issue+body+from+%2Fhome%2Fdudoslav%2FProjects%2Fvcpkg%2Finstalled%2Fvcpkg%2Fissue_body.md

(base) taco:vcpkg dudoslav$ cat /home/dudoslav/Projects/vcpkg/buildtrees/libfaketime/build-x64-linux-dbg-err.log
───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: /home/dudoslav/Projects/vcpkg/buildtrees/libfaketime/build-x64-linux-dbg-err.log
───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ make: Makefile: No such file or directory
   2   │ make: *** No rule to make target 'Makefile'.  Stop.
───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
(base) taco:vcpkg dudoslav$ 

1716209136_grim But I can see that the source is in src instead of /home/dudoslav/Projects/vcpkg/buildtrees/libfaketime/x64-linux-dbg/

dudoslav avatar May 20 '24 12:05 dudoslav

Sorry for the late reply. Any ideas what might be wrong with these builds? 1717604178_grim

dudoslav avatar Jun 05 '24 16:06 dudoslav

BTW @dudoslav the PR has some other errors with regards to the versions database. I cleaned them up and pushed a branch to https://github.com/teo-tsirpanis/vcpkg/tree/libfaketime which you can checkout and force-push. But them I'm getting the same errors. 😕

teo-tsirpanis avatar Jun 05 '24 17:06 teo-tsirpanis

IIRC now the key barrier for ports using make without configure is passing all required options (per build type) into the make install step. Some options are easily available for the configure step but not for make.

And that's why I add a small configure script to some ports. It creates a Makefile.vcpkg which captures the configuration options and passed them on to the actual Makefile. Example: libcap.

dg0yt avatar Jun 05 '24 17:06 dg0yt