Skip to content

Commit

Permalink
[GLUTEN-4141][VL] Support Gluten Build in Debian 12 (#4535)
Browse files Browse the repository at this point in the history
Support Gluten Build in Debian 12 environment
  • Loading branch information
surnaik committed Jan 30, 2024
1 parent fb10c4c commit ec7f10c
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,14 @@ class ListenerApiImpl extends ListenerApi {
new SharedLibraryLoaderCentos7
} else if (systemName.contains("Debian") && systemVersion.startsWith("11")) {
new SharedLibraryLoaderDebian11
} else if (systemName.contains("Debian") && systemVersion.startsWith("12")) {
new SharedLibraryLoaderDebian12
} else {
throw new GlutenException(
"Found unsupported OS! Currently, Gluten's Velox backend" +
" only supports Ubuntu 20.04/22.04, CentOS 7/8, " +
"Alibaba Cloud Linux 2/3 & Anolis 7/8, tencentos 3.2, RedHat 7/8, " +
"Debian 11.")
"Debian 11/12.")
}
loader.loadLib(load)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.glutenproject.utils

import io.glutenproject.vectorized.JniLibLoader

class SharedLibraryLoaderDebian12 extends SharedLibraryLoader {
override def loadLib(loader: JniLibLoader): Unit = {
loader
.newTransaction()
.loadAndCreateLink("libcrypto.so.3", "libcrypto.so", false)
.loadAndCreateLink("libkrb5support.so.0", "libkrb5support.so", false)
.loadAndCreateLink("libssl.so.3", "libssl.so", false)
.loadAndCreateLink("libicudata.so.72", "libicudata.so", false)
.loadAndCreateLink("libk5crypto.so.3", "libk5crypto.so", false)
.loadAndCreateLink("libkeyutils.so.1", "libkeyutils.so", false)
.loadAndCreateLink("libsnappy.so.1", "libsnappy.so", false)
.loadAndCreateLink("libthrift-0.17.0.so", "libthrift.so", false)
.loadAndCreateLink("libicuuc.so.72", "libicuuc.so", false)
.loadAndCreateLink("libkrb5.so.3", "libkrb5.so", false)
.loadAndCreateLink("liblber-2.5.so.0", "liblber-2.4.so", false)
.loadAndCreateLink("libsasl2.so.2", "libsasl2.so", false)
.loadAndCreateLink("libbrotlicommon.so.1", "libbrotlicommon.so", false)
.loadAndCreateLink("libicui18n.so.72", "libicui18n.so", false)
.loadAndCreateLink("libgflags.so.2.2", "libgflags.so", false)
.loadAndCreateLink("libunwind.so.8", "libunwind.so", false)
.loadAndCreateLink("libnghttp2.so.14", "libnghttp2.so", false)
.loadAndCreateLink("librtmp.so.1", "librtmp.so", false)
.loadAndCreateLink("libssh2.so.1", "libssh2.so", false)
.loadAndCreateLink("libpsl.so.5", "libpsl.so", false)
.loadAndCreateLink("libgssapi_krb5.so.2", "libgssapi_krb5.so", false)
.loadAndCreateLink("libldap-2.5.so.0", "libldap_r-2.4.so", false)
.loadAndCreateLink("libbrotlidec.so.1", "libbrotlidec.so", false)
.loadAndCreateLink("libboost_context.so.1.74.0", "libboost_context.so", false)
.loadAndCreateLink("libboost_regex.so.1.74.0", "libboost_regex.so", false)
.loadAndCreateLink("libdouble-conversion.so.3", "libdouble-conversion.so", false)
.loadAndCreateLink("libglog.so.1", "libglog.so", false)
.loadAndCreateLink("libevent-2.1.so.7", "libevent-2.1.so", false)
.loadAndCreateLink("libcurl.so.4", "libcurl.so", false)
.loadAndCreateLink("libprotobuf.so.32", "libprotobuf.so", false)
.loadAndCreateLink("libhdfs3.so.1", "libhdfs3.so", false)
.commit()
}
}
7 changes: 7 additions & 0 deletions dev/package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ function process_setup_debian_11 {
cp /usr/local/lib/{libhdfs3.so.1,libprotobuf.so.32} $THIRDPARTY_LIB/
}

function process_setup_debian_12 {
cp /usr/lib/x86_64-linux-gnu/{libthrift-0.17.0.so,libboost_context.so.1.74.0,libboost_regex.so.1.74.0,libdouble-conversion.so.3,libevent-2.1.so.7,libgflags.so.2.2,libglog.so.1,libsnappy.so.1,libunwind.so.8,libcurl.so.4,libicui18n.so.72,libicuuc.so.72,libnghttp2.so.14,librtmp.so.1,libssh2.so.1,libpsl.so.5,libldap-2.5.so.0,liblber-2.5.so.0,libbrotlidec.so.1,libicudata.so.72,libsasl2.so.2,libbrotlicommon.so.1,libcrypto.so.3,libssl.so.3,libgssapi_krb5.so.2,libkrb5.so.3,libk5crypto.so.3,libkrb5support.so.0,libkeyutils.so.1} $THIRDPARTY_LIB/
cp /usr/local/lib/{libprotobuf.so.32,libhdfs3.so.1} $THIRDPARTY_LIB/
}

if [[ "$LINUX_OS" == "ubuntu" || "$LINUX_OS" == "pop" ]]; then
if [ "$VERSION" == "20.04" ]; then
process_setup_ubuntu_2004
Expand All @@ -67,6 +72,8 @@ elif [ "$LINUX_OS" == "tencentos" ]; then
elif [ "$LINUX_OS" == "debian" ]; then
if [ "$VERSION" == "11" ]; then
process_setup_debian_11
elif [ "$VERSION" == "12" ]; then
process_setup_debian_12
fi
fi
cd $THIRDPARTY_LIB/
Expand Down

0 comments on commit ec7f10c

Please sign in to comment.