[med-svn] [Git][med-team/libhmsbeagle][master] 7 commits: Installing all the .so files in the -dev package

Pierre Gruet (@pgt) gitlab at salsa.debian.org
Mon Dec 16 09:16:32 GMT 2024



Pierre Gruet pushed to branch master at Debian Med / libhmsbeagle


Commits:
03e469dd by Pierre Gruet at 2024-10-08T11:12:36+02:00
Installing all the .so files in the -dev package

- - - - -
c135b442 by Pierre Gruet at 2024-10-08T11:17:43+02:00
New upstream version 4.0.1+dfsg
- - - - -
c2248e33 by Pierre Gruet at 2024-10-08T11:17:54+02:00
Update upstream source from tag 'upstream/4.0.1+dfsg'

Update to upstream version '4.0.1+dfsg'
with Debian dir f4bd604ad0de54e782f3141188f0a91d423e4a3e
- - - - -
58c6688b by Pierre Gruet at 2024-10-08T11:18:49+02:00
Raising Standards version to 4.7.0 (no change)

- - - - -
218ff457 by Pierre Gruet at 2024-12-15T22:05:14+01:00
Making it explicit that we won't ship -opencl shared lib, as has been the case up to now

- - - - -
ef3dddb7 by Pierre Gruet at 2024-12-15T22:11:19+01:00
Documentation files are not built anymore

- - - - -
c616be33 by Pierre Gruet at 2024-12-15T22:12:03+01:00
Upload to unstable

- - - - -


18 changed files:

- + .github/workflows/ci.yaml
- CMakeLists.txt
- README.md
- debian/changelog
- debian/control
- − debian/libhmsbeagle-dev.doc-base
- − debian/libhmsbeagle-dev.docs
- debian/libhmsbeagle-dev.install
- debian/rules
- examples/CMakeLists.txt
- libhmsbeagle/CMakeLists.txt
- libhmsbeagle/CPU/BeagleCPUPlugin.cpp
- libhmsbeagle/CPU/BeagleCPUSSEPlugin.cpp
- libhmsbeagle/CPU/CMakeLists.txt
- libhmsbeagle/CPU/SSEDefinitions.h
- libhmsbeagle/CPU/sse2neon.h
- libhmsbeagle/GPU/KernelLauncher.cpp
- hmsbeagle-1.pc → libhmsbeagle/hmsbeagle-1.pc.in


Changes:

=====================================
.github/workflows/ci.yaml
=====================================
@@ -0,0 +1,59 @@
+name: CI
+
+on:
+  push:
+    branches:
+    - master
+  pull_request:
+    branches:
+    - master
+
+jobs:
+  build:
+    name: Build on Linux x86_64
+    runs-on: ubuntu-latest
+
+    steps:
+    - name: Checkout
+      uses: actions/checkout at v4
+
+    - name: Install dependencies
+      run: |
+        sudo apt-get update
+        sudo apt-get install -y cmake file
+
+    - name: Build
+      run: |
+        mkdir build
+        cd build
+        cmake ..
+        make -j
+        file libhmsbeagle/libhmsbeagle.so.* | grep x86-64
+
+  build-aarch64:
+    name: Build on Linux aarch64
+    runs-on: ubuntu-latest
+
+    steps:
+    - name: Checkout
+      uses: actions/checkout at v4
+
+    - name: Build
+      uses: uraimo/run-on-arch-action at v2
+      with:
+        arch: aarch64
+        distro: ubuntu20.04
+        githubToken: ${{ github.token }}
+        dockerRunArgs: |
+          --volume "${PWD}:/beagle-lib"
+        install: |
+          apt-get update -q -y
+          apt-get install -q -y cmake gcc g++ openjdk-11-jdk file
+        run: |
+          export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-arm64
+          cd /beagle-lib
+          mkdir build
+          cd build
+          cmake ..
+          make -j
+          file libhmsbeagle/libhmsbeagle.so.* | grep aarch64


=====================================
CMakeLists.txt
=====================================
@@ -4,16 +4,22 @@ project(BEAGLE)
 set(BEAGLE_PACKAGE_NAME "libhmsbeagle")
 set(BEAGLE_VERSION_MAJOR "4")
 set(BEAGLE_VERSION_MINOR "0")
-set(BEAGLE_VERSION_PATCH "0")
+set(BEAGLE_VERSION_PATCH "1")
+
+set(GENERIC_API_VERSION "1")
 
 set(BEAGLE_VERSION "${BEAGLE_VERSION_MAJOR}.${BEAGLE_VERSION_MINOR}.${BEAGLE_VERSION_PATCH}")
 set(BEAGLE_PLUGIN_VERSION "${BEAGLE_VERSION_MAJOR}${BEAGLE_VERSION_MINOR}")
 
+message(STATUS "BEAGLE_VERSION = ${BEAGLE_VERSION}")
+message(STATUS "BEAGLE_PLUGIN_VERSION = ${BEAGLE_PLUGIN_VERSION}")
+
 set(BEAGLE_OPTIMIZE_FOR_NATIVE_ARCH true)
 
 option(BUILD_OPENCL "Build beagle with OpenCL library" ON)
 option(BUILD_CUDA "Build beagle with CUDA library" ON)
 option(BUILD_JNI "Build beagle with JNI library" ON)
+option(BUILD_SSE "Build beagle with SSE library" ON)
 
 # Old config.h settings
 


=====================================
README.md
=====================================
@@ -27,8 +27,8 @@ The paper describing the algorithms used for calculating likelihoods of sequence
 
 ### Current binary installers
 
-* [BEAGLE v4.0.0 for macOS universal](https://github.com/beagle-dev/beagle-lib/releases/download/v4.0.0/BEAGLE.v4.0.0.pkg)
-* [BEAGLE v4.0.0 for Windows 64-bit](https://github.com/beagle-dev/beagle-lib/releases/download/v4.0.0/BEAGLE.v4.0.0.msi)
+* [BEAGLE v4.0.0 for macOS universal](https://github.com/beagle-dev/beagle-lib/releases/download/v4.0.0/BEAGLE-4.0.0-Darwin-x86-ARM.pkg)
+* [BEAGLE v4.0.0 for Windows 64-bit](https://github.com/beagle-dev/beagle-lib/releases/download/v4.0.0/BEAGLE-4.0.0-win64.msi)
 
 ### Previous binary installers
 


=====================================
debian/changelog
=====================================
@@ -1,13 +1,21 @@
-libhmsbeagle (4.0.0+dfsg-1) UNRELEASED; urgency=medium
+libhmsbeagle (4.0.1+dfsg-1) unstable; urgency=medium
 
-  * New upstream version
-  * Standards-Version: 4.6.1 (routine-update)
+  * Team upload
+  * Building the jar file
+  * Installing all the .so files in the -dev package
+  * New upstream version 4.0.1+dfsg
+  * Raising Standards version to 4.7.0 (no change)
+  * Making it explicit that we won't ship -opencl shared lib, as has been the
+    case up to now
+  * Documentation files are not built anymore, removing them from doc-base
+
+  [ Andreas Tille ]
+  * New upstream version 4.0.0+dfsg
+  * Refresh patches
   * Upstream switched build system to cmake
   * d/watch: Create proper upstream filename
-  TODO: finally decide whether we need all those changes
-  (no static libs build and more, not sure whetheropencl library works)
 
- -- Andreas Tille <tille at debian.org>  Sun, 24 Jul 2022 07:50:14 +0200
+ -- Pierre Gruet <pgt at debian.org>  Sun, 15 Dec 2024 22:11:23 +0100
 
 libhmsbeagle (3.1.2+dfsg-13) unstable; urgency=medium
 


=====================================
debian/control
=====================================
@@ -16,7 +16,7 @@ Build-Depends: debhelper-compat (= 13),
                ocl-icd-opencl-dev | opencl-dev,
                pocl-opencl-icd [amd64] | opencl-icd [amd64],
                clinfo
-Standards-Version: 4.6.1
+Standards-Version: 4.7.0
 Vcs-Browser: https://salsa.debian.org/med-team/libhmsbeagle
 Vcs-Git: https://salsa.debian.org/med-team/libhmsbeagle.git
 Homepage: https://github.com/beagle-dev/beagle-lib


=====================================
debian/libhmsbeagle-dev.doc-base deleted
=====================================
@@ -1,13 +0,0 @@
-Document: libhmsbeagle
-Title: Application Programming Interface and High-Performance Computing Library for Statistical Phylogenetics
-Author: The BEAGLE Developer group
-Abstract:  High-performance lib for Bayesian and Maximum Likelihood phylogenetics
- BEAGLE is a high-performance library that can perform the core calculations at
- the heart of most Bayesian and Maximum Likelihood phylogenetics packages. It
- can make use of highly-parallel processors such as those in graphics cards
- (GPUs) found in many PCs.
-Section: Science/Biology
-
-Format: html
-Index: /usr/share/doc/libhmsbeagle-dev/html/index.html
-Files: /usr/share/doc/libhmsbeagle-dev/html/*


=====================================
debian/libhmsbeagle-dev.docs deleted
=====================================
@@ -1 +0,0 @@
-#doc/html


=====================================
debian/libhmsbeagle-dev.install
=====================================
@@ -1,10 +1,11 @@
 #!/usr/bin/dh-exec
 usr/include/*
-#usr/lib/*/pkgconfig/*
 usr/lib/lib*-cpu*.so		usr/lib/${DEB_HOST_MULTIARCH}
 #usr/lib/*/lib*-cpu*.a
 #usr/lib/*/libhmsbeagle.a
-usr/lib/libhmsbeagle.so		usr/lib/${DEB_HOST_MULTIARCH}
 #usr/lib/libhmsbeagle-opencl.so	usr/lib/${DEB_HOST_MULTIARCH}
+usr/lib/libhmsbeagle.so		usr/lib/${DEB_HOST_MULTIARCH}
 #usr/lib/*/lib*jni.a
 #usr/lib/*/lib*opencl.a
+usr/lib/cmake/hmsbeagle-1/* usr/lib/${DEB_HOST_MULTIARCH}/cmake/hmsbeagle
+usr/lib/pkg-config/hmsbeagle*.pc usr/lib/${DEB_HOST_MULTIARCH}


=====================================
debian/rules
=====================================
@@ -19,7 +19,8 @@ BUILDARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH)
 
 override_dh_auto_configure:
 	dh_auto_configure -- \
-	    -DBUILD_CUDA=OFF
+	    -DBUILD_CUDA=OFF \
+	    -DBUILD_OPENCL=OFF
 
 override_dh_auto_build:
 	dh_auto_build


=====================================
examples/CMakeLists.txt
=====================================
@@ -30,16 +30,24 @@ add_executable(synthetictest
 
 target_link_libraries(hmctest
 	hmsbeagle
-	hmsbeagle-cpu-sse
+#	hmsbeagle-cpu-sse
 	hmsbeagle-cpu
 	${CMAKE_DL_LIBS})
 
 target_link_libraries(synthetictest
 		hmsbeagle
-		hmsbeagle-cpu-sse
+#		hmsbeagle-cpu-sse
 		hmsbeagle-cpu
 		${CMAKE_DL_LIBS})
 
+if(BUILD_SSE)
+	target_link_libraries(hmctest
+		hmsbeagle-cpu-sse)
+		
+	target_link_libraries(synthetictest
+		hmsbeagle-cpu-sse)		
+endif(BUILD_SSE)
+
 add_test(hmctest hmctest)
 
 #target_link_libraries(hmctest5 hmsbeagle ${CMAKE_DL_LIBS})


=====================================
libhmsbeagle/CMakeLists.txt
=====================================
@@ -74,7 +74,9 @@ add_library(hmsbeagle SHARED
         ${BEAGLE_PLUGIN_SOURCE}
         )
 
-set_target_properties(hmsbeagle PROPERTIES PUBLIC_HEADER "beagle.h;platform.h")
+set_target_properties(hmsbeagle PROPERTIES
+                                PUBLIC_HEADER "beagle.h;platform.h"
+                                VERSION ${GENERIC_API_VERSION})
 
 if(NOT WIN32 AND NOT APPLE)
 	target_link_libraries(hmsbeagle ${CMAKE_DL_LIBS})
@@ -86,12 +88,43 @@ if(BUILD_JNI)
     add_subdirectory(JNI)
 endif(BUILD_JNI)
 
+set(PKG "hmsbeagle-${GENERIC_API_VERSION}")
+
 install(TARGETS hmsbeagle
+        EXPORT ${PKG}
 	LIBRARY DESTINATION ${BEAGLE_INSTALL_DIR}
 	PUBLIC_HEADER DESTINATION ${BEAGLE_HEADER_DIR}
 	COMPONENT main
+      )
+
+include(CMakePackageConfigHelpers)
+
+write_basic_package_version_file(
+    ${PKG}ConfigVersion.cmake
+    VERSION ${BEAGLE_VERSION}
+    COMPATIBILITY AnyNewerVersion
     )
 
+install(EXPORT ${PKG}
+        FILE ${PKG}Config.cmake
+        NAMESPACE ${PKG}-${BEAGLE_VERSION}::
+        DESTINATION lib/cmake/${PKG}
+      )
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/hmsbeagle-1ConfigVersion.cmake"
+        DESTINATION lib/cmake/${PKG}
+       )
+
+configure_file(
+  ${PKG}.pc.in
+  ${PKG}.pc
+  @ONLY
+)
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PKG}.pc"
+        DESTINATION lib/pkg-config
+)
+
 if(WIN32)
     SET_TARGET_PROPERTIES(hmsbeagle
         PROPERTIES


=====================================
libhmsbeagle/CPU/BeagleCPUPlugin.cpp
=====================================
@@ -17,7 +17,7 @@ BeagleCPUPlugin::BeagleCPUPlugin() :
 Plugin("CPU", "CPU")
 {
 	BeagleResource resource;
-#ifdef __ARM64_ARCH_8__
+#ifdef __aarch64__
 	    resource.name = (char*) "CPU (arm64)";
 #else
         resource.name = (char*) "CPU (x86_64)";


=====================================
libhmsbeagle/CPU/BeagleCPUSSEPlugin.cpp
=====================================
@@ -24,7 +24,7 @@ BeagleCPUSSEPlugin::BeagleCPUSSEPlugin() :
 Plugin("CPU-SSE", "CPU-SSE")
 {
 	BeagleResource resource;
-#ifdef __ARM64_ARCH_8__
+#ifdef __aarch64__
 	    resource.name = (char*) "CPU (arm64)";
 #else
         resource.name = (char*) "CPU (x86_64)";
@@ -116,6 +116,8 @@ bool check_sse2()
   if (edx & bit_SSE2)
 	return true;
   return false;
+#elif defined(__aarch64__)
+  return false;
 #else // HAVE_CPUID.H
 	// Determine if cpuid supported:
     unsigned int res;
@@ -158,8 +160,8 @@ bool check_sse2()
     return result[3] & 0x04000000;
 #endif // HAVE_CPUID.H
 }
-#else // For Mac OS X GNU C
-#if defined(__ARM64_ARCH_8__)
+#else
+#if defined(__aarch64__)
 bool check_sse2() { return 1; }
 #else
 bool check_sse2(){


=====================================
libhmsbeagle/CPU/CMakeLists.txt
=====================================
@@ -25,6 +25,7 @@ SET_TARGET_PROPERTIES(hmsbeagle-cpu
 	SUFFIX "${BEAGLE_PLUGIN_SUFFIX}"
     )
 
+if(BUILD_SSE)
 add_library(hmsbeagle-cpu-sse SHARED
         BeagleCPU4StateSSEImpl.h
         BeagleCPU4StateSSEImpl.hpp
@@ -55,3 +56,4 @@ SET_TARGET_PROPERTIES(hmsbeagle-cpu-sse
     SOVERSION "${BEAGLE_PLUGIN_VERSION_EXTENDED}"
 	SUFFIX "${BEAGLE_PLUGIN_SUFFIX}"
     )
+endif(BUILD_SSE)


=====================================
libhmsbeagle/CPU/SSEDefinitions.h
=====================================
@@ -23,40 +23,12 @@
 #define DLS_USE_SSE2
 
 #if defined(DLS_USE_SSE2)
-#	if defined(__ARM64_ARCH_8__)
+#	if defined(__aarch64__)
 #		include "libhmsbeagle/CPU/sse2neon.h"
 #       define _MM_SHUFFLE2(fp1,fp0) (((fp1) << 1) | (fp0))
 #		define VEC_SHUFFLE0(a,b)	_mm_shuffle_pd(a, b, _MM_SHUFFLE2(0,0)) // vreinterpretq_f64_m128d(a)
 #		define VEC_SHUFFLE1(a,b)	_mm_shuffle_pd(a, b, _MM_SHUFFLE2(1,1)) // vreinterpretq_f64_m128d(a)
-#       if __has_builtin(__builtin_shufflevector)
-#       	define _mm_shuffle_pd(a,b,imm)                                \
-				__extension__({                                           \
-		        float64x2_t _input1 = vreinterpretq_f64_m128(a);          \
-	    	    float64x2_t _input2 = vreinterpretq_f64_m128(b);          \
-		        float64x2_t _shuf = __builtin_shufflevector(              \
-	    	        _input1, _input2, (imm) & (0x1), ((imm) >> 1) & 0x1); \
-	        	vreinterpretq_m128_f32(_shuf);                            \
-    	    })
-#		else
-#			error "Need to implement NEON translation of _mm_shuffle_pd"
-#		endif
-
-		static inline __m128 _mm_div_pd(__m128 a, __m128 b) {
-		    return vreinterpretq_m128_f64(
-        		vdivq_f64(vreinterpretq_f64_m128(a), vreinterpretq_f64_m128(b)));
-		}
-
-		static inline void _mm_store_sd(double* a, __m128 b) {
-			const auto _b = vreinterpretq_f64_m128(b);
-			a[0] = _b[0];
-		}
 
-        static inline __m128 _mm_dp_pd(__m128 lhs, __m128 rhs, const int) {
-            auto const product = vmulq_f64(vreinterpretq_f64_m128d(lhs),
-                                           vreinterpretq_f64_m128d(rhs));
-            auto const sum = product[0] + product[1]; // TODO Almost surely an more efficient way
-            return vreinterpretq_m128d_f64(vdupq_n_f64(sum));
-        }
 #   else
 #		if !defined(DLS_MACOS)
 #			include <emmintrin.h>


=====================================
libhmsbeagle/CPU/sse2neon.h
=====================================
The diff for this file was not included because it is too large.

=====================================
libhmsbeagle/GPU/KernelLauncher.cpp
=====================================
@@ -285,17 +285,12 @@ void KernelLauncher::LoadKernels() {
     fMultipleNodeSiteSquaredReduction = gpu->GetFunction(
             "kernelMultipleNodeSiteSquaredReduction");
 
-
-    fprintf(stderr, "A\n");
-
     fPartialsPartialsCrossProducts = gpu->GetFunction(
             "kernelPartialsPartialsCrossProducts");
 
     fPartialsStatesCrossProducts = gpu->GetFunction(
             "kernelPartialsStatesCrossProducts");
 
-    fprintf(stderr, "B\n");
-
     if (kPaddedStateCount == 4) { // TODO Temporary hack until kernels are written
     fPartialsPartialsByPatternBlockCheckScaling = gpu->GetFunction(
             "kernelPartialsPartialsCheckScale");


=====================================
hmsbeagle-1.pc → libhmsbeagle/hmsbeagle-1.pc.in
=====================================
@@ -1,4 +1,4 @@
-prefix=/usr/local
+prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=${prefix}
 libdir=${exec_prefix}/lib
 includedir=${prefix}/include
@@ -6,6 +6,6 @@ includedir=${prefix}/include
 Name: hmsbeagle
 Description: A library to calculate phylogenetic likelihoods.
 Requires:
-Version: 4.0.0
-Libs: -L${libdir} -lhmsbeagle
-Cflags: -I${includedir}/libhmsbeagle-1
+Version: @BEAGLE_VERSION@
+Libs: -L"${libdir}" -lhmsbeagle
+Cflags: -I"${includedir}/libhmsbeagle-1"



View it on GitLab: https://salsa.debian.org/med-team/libhmsbeagle/-/compare/21243eb25f940276879d1b0809f9b67b41d1d386...c616be33e08c24754d57d4a5d7b1a837abe87c18

-- 
View it on GitLab: https://salsa.debian.org/med-team/libhmsbeagle/-/compare/21243eb25f940276879d1b0809f9b67b41d1d386...c616be33e08c24754d57d4a5d7b1a837abe87c18
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20241216/570e7797/attachment-0001.htm>


More information about the debian-med-commit mailing list