libultrahdr icon indicating copy to clipboard operation
libultrahdr copied to clipboard

Request: Support prebuilt binaries for Major Linux distributions

Open ganadist opened this issue 2 years ago • 5 comments
trafficstars

Hello.

I'm considering to use this library on our media server implementation.

In my case, I'm using RHEL(Redhat Enterprise Linux)7 compliant distribution (CentOS 7)

In the case of the Linux operating environment, if EOL remains, there is a high tendency not to change the operating environment.

Currently, libultrahdr requires (or recommends)

  • Clang 15
  • CMake 3.5
    • gtest requires CMake 3.13

For RHEL7, It seems Redhat provides Clang 15 for their service subscribers. But for CentOS7, it provides Clang 7 by SCL Also CentOS7 provides CMake 3.6.1 by SCL

So libultrahdr is hard to use with CentOS7 by toolchain requirements even if they are supported by upstream(RHEL7).

Providing prebuilt binaries for popular Linux distributions would make it easier to adapt this library and help spread the Ultra HDR format.

ganadist avatar Oct 13 '23 04:10 ganadist

Interested in packaging this for MSYS2, but have a question:

The archive created is libultrahdr.a, but the pkgconf file is libuhdr.pc. What should be the package called then? Can these two be synced to either name please?

E.g. although the project name is highway, the majority of distros package it as libhwy as both the .a and .pc have that name.

kmilos avatar Apr 04 '24 10:04 kmilos

@kmilos this may not be completely true, with this pull request all the names are in sync https://github.com/google/libultrahdr/pull/96

ram-mohan avatar Apr 04 '24 11:04 ram-mohan

@ram-mohan Thanks Ram, that's great, at least the .pc and .a are in sync now, which is the main thing.

kmilos avatar Apr 04 '24 11:04 kmilos

Shared library should be versioned and install with appropriate symlinks for -dev package. See https://www.debian.org/doc/debian-policy/ch-sharedlibs#s-sharedlibs-runtime

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1827267..892b83d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -567,7 +567,7 @@ set(UHDR_TARGET_NAME uhdr)
 add_library(${UHDR_TARGET_NAME})
 add_dependencies(${UHDR_TARGET_NAME} ${UHDR_CORE_LIB_NAME})
 target_link_libraries(${UHDR_TARGET_NAME} PRIVATE ${JPEG_LIBRARIES})
-set_target_properties(${UHDR_TARGET_NAME} PROPERTIES PUBLIC_HEADER ultrahdr_api.h)
+set_target_properties(${UHDR_TARGET_NAME} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} PUBLIC_HEADER ultrahdr_api.h)
 combine_static_libs(${UHDR_CORE_LIB_NAME} ${UHDR_TARGET_NAME})
 
 if(UHDR_ENABLE_INSTALL)
.
├── include
│   └── ultrahdr_api.h
└── lib
    ├── libuhdr.so -> libuhdr.so.1
    ├── libuhdr.so.1 -> libuhdr.so.1.0
    ├── libuhdr.so.1.0
    └── pkgconfig
        └── libuhdr.pc

Also need to install appropriate static library.

spvkgn avatar Jun 12 '24 10:06 spvkgn

Starting to trickle in 😉

https://repology.org/project/libultrahdr/versions

kmilos avatar Aug 29 '24 10:08 kmilos