377 lines
13 KiB
RPMSpec
377 lines
13 KiB
RPMSpec
Name: oceanbase-ce
|
|
Version: %{VERSION}
|
|
Release: %{RELEASE}
|
|
Summary: oceanbase-ce
|
|
Group: Applications/Databases
|
|
License: Mulan PubL v2.
|
|
Url: https://open.oceanbase.com/
|
|
Vendor: OceanBase Inc.
|
|
Prefix: /home/admin/oceanbase
|
|
Requires: curl, jq, oceanbase-ce-libs = %{version}
|
|
BuildRequires: wget, rpm, cpio, make, glibc-devel, glibc-headers, binutils, m4, python3, python2, libtool, libaio
|
|
Autoreq: 0
|
|
%systemd_requires
|
|
%global daemon_name oceanbase
|
|
%define __os_install_post %{nil}
|
|
%define _prefix /home/admin/oceanbase
|
|
%description
|
|
OceanBase is a distributed relational database
|
|
%global __requires_exclude ^(/bin/bash|/usr/bin/.*)$
|
|
%define _unpackaged_files_terminate_build 0
|
|
%global _missing_build_ids_terminate_build 0
|
|
%global arch %{_arch}
|
|
%global lto_jobs %{?lto_jobs}
|
|
%global src_dir %{?src_dir}
|
|
%global _find_debuginfo_opts -g
|
|
%define __strip %{?src_dir}/deps/3rd/usr/local/oceanbase/devtools/bin/llvm-strip
|
|
%undefine __brp_mangle_shebangs
|
|
%define buildsubdir %{name}-%{version}-%{release}.%{arch}
|
|
%define _debugsource_template %{nil}
|
|
%global debug_package %{nil}
|
|
|
|
%package debuginfo
|
|
Summary: Debug information for OceanBase
|
|
Group: Development/Debug
|
|
%description debuginfo
|
|
This package provides debug information for package oceanbase-ce.
|
|
Debug information is useful when developing applications that use this
|
|
package or when debugging this package.
|
|
|
|
%package libs
|
|
Summary: Libraries for OceanBase
|
|
Group: System Environment/Libraries
|
|
%description libs
|
|
This package contains libraries for OceanBase.
|
|
|
|
%package libs-debuginfo
|
|
Summary: Debug information for OceanBase Libs
|
|
Group: Development/Debug
|
|
%description libs-debuginfo
|
|
This package provides debug information for package oceanbase-ce-libs.
|
|
Debug information is useful when developing applications that use this
|
|
package or when debugging this package.
|
|
|
|
%package sql-parser
|
|
Summary: Sql Parser Libraries for OceanBase
|
|
Group: System Environment/Libraries
|
|
%description sql-parser
|
|
This package contains sql pareser libraries for OceanBase.
|
|
|
|
%package table
|
|
Summary: Table Api Libraries for OceanBase
|
|
Group: System Environment/Libraries
|
|
%description table
|
|
This package contains table api libraries for OceanBase.
|
|
|
|
%package table-debuginfo
|
|
Summary: Debug information for OceanBase Table
|
|
Group: Development/Debug
|
|
%description table-debuginfo
|
|
This package provides debug information for package oceanbase-ce-table.
|
|
Debug information is useful when developing applications that use this
|
|
package or when debugging this package.
|
|
|
|
%package utils
|
|
Summary: Tools for OceanBase
|
|
Group: Development/Tools
|
|
%description utils
|
|
This package contains tools for OceanBase.
|
|
|
|
%package utils-debuginfo
|
|
Summary: Debug information for OceanBase Utils
|
|
Group: Development/Debug
|
|
%description utils-debuginfo
|
|
This package provides debug information for package oceanbase-ce-utils.
|
|
Debug information is useful when developing applications that use this
|
|
package or when debugging this package.
|
|
|
|
%build
|
|
rm -rf $RPM_BUILD_ROOT/%{_prefix}
|
|
mkdir -p $RPM_BUILD_ROOT/%{_prefix}
|
|
|
|
RPM_DIR=$OLDPWD;
|
|
SRC_DIR=$OLDPWD/../../..;
|
|
BUILD_DIR=$OLDPWD/rpmbuild
|
|
|
|
mkdir -p $BUILD_DIR
|
|
cd $BUILD_DIR
|
|
rm -rf $BUILD_DIR/*
|
|
|
|
if [ ! -e "/usr/bin/python" ]; then
|
|
ln -s /usr/bin/python2 /usr/bin/python
|
|
fi
|
|
pip3 install PyYAML
|
|
|
|
cd $SRC_DIR
|
|
chmod u+x build.sh
|
|
bash build.sh clean
|
|
python3 tools/upgrade/gen_obcdc_compatiable_info.py
|
|
bash build.sh release -DOB_BUILD_PACKAGE=ON -DENABLE_FATAL_ERROR_HANG=OFF -DENABLE_AUTO_FDO=ON -DENABLE_THIN_LTO=ON \
|
|
-DOB_STATIC_LINK_LGPL_DEPS=OFF -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLTO_JOBS=%{lto_jobs} --init
|
|
cd build_release
|
|
make observer ob_sql_proxy_parser_static obtable obtable_static ob_admin ob_error %{_smp_mflags};
|
|
make install DESTDIR=$RPM_BUILD_ROOT
|
|
|
|
mv %{_buildrootdir}/%{buildsubdir}/%{_prefix}/bin/obshell %{_builddir}/obshell
|
|
%{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} %{_builddir}/%{?buildsubdir}; %{nil}
|
|
mv %{_builddir}/obshell %{_buildrootdir}/%{buildsubdir}/%{_prefix}/bin/obshell
|
|
|
|
echo "/usr/lib/debug/%{_prefix}/bin/observer.debug" > %{buildroot}/debuginfo_filelist
|
|
|
|
echo "/usr/lib/debug/%{_prefix}/lib/libaio.so.debug" > %{buildroot}/libs_debuginfo_filelist
|
|
echo "/usr/lib/debug/%{_prefix}/lib/libaio.so.1.debug" >> %{buildroot}/libs_debuginfo_filelist
|
|
echo "/usr/lib/debug/%{_prefix}/lib/libaio.so.1.0.1.debug" >> %{buildroot}/libs_debuginfo_filelist
|
|
echo "/usr/lib/debug/%{_prefix}/lib/libmariadb.so.debug" >> %{buildroot}/libs_debuginfo_filelist
|
|
echo "/usr/lib/debug/%{_prefix}/lib/libmariadb.so.3.debug" >> %{buildroot}/libs_debuginfo_filelist
|
|
|
|
echo "/usr/lib/debug/%{_prefix}/lib/libobtable.so.debug" > %{buildroot}/table_debuginfo_filelist
|
|
echo "/usr/lib/debug/%{_prefix}/lib/libobtable.so.1.debug" >> %{buildroot}/table_debuginfo_filelist
|
|
echo "/usr/lib/debug/%{_prefix}/lib/libobtable.so.1.0.0.debug" >> %{buildroot}/table_debuginfo_filelist
|
|
|
|
echo "/usr/lib/debug/usr/bin/ob_admin.debug" > %{buildroot}/utils_debuginfo_filelist
|
|
echo "/usr/lib/debug/usr/bin/ob_error.debug" >> %{buildroot}/utils_debuginfo_filelist
|
|
|
|
# package infomation
|
|
%files
|
|
%defattr(-,root,root,0777)
|
|
%{_prefix}/admin
|
|
%{_prefix}/bin/import_srs_data.py
|
|
%{_prefix}/bin/import_time_zone_info.py
|
|
%{_prefix}/bin/observer
|
|
%{_prefix}/bin/obshell
|
|
%{_prefix}/etc/default_parameter.json
|
|
%{_prefix}/etc/default_system_variable.json
|
|
%{_prefix}/etc/default_srs_data_mysql.sql
|
|
%{_prefix}/etc/fill_help_tables-ob.sql
|
|
%{_prefix}/etc/oceanbase_upgrade_dep.yml
|
|
%{_prefix}/etc/timezone_V1.log
|
|
%{_prefix}/etc/upgrade_checker.py
|
|
%{_prefix}/etc/upgrade_health_checker.py
|
|
%{_prefix}/etc/upgrade_post.py
|
|
%{_prefix}/etc/upgrade_pre.py
|
|
%{_prefix}/profile
|
|
|
|
%files debuginfo -f %{buildroot}/debuginfo_filelist
|
|
%defattr(-,root,root,0777)
|
|
|
|
%files libs
|
|
%defattr(-,root,root,0777)
|
|
%{_prefix}/lib/libaio.so
|
|
%{_prefix}/lib/libaio.so.1
|
|
%{_prefix}/lib/libaio.so.1.0.1
|
|
%{_prefix}/lib/libmariadb.so
|
|
%{_prefix}/lib/libmariadb.so.3
|
|
|
|
%files libs-debuginfo -f %{buildroot}/libs_debuginfo_filelist
|
|
%defattr(-,root,root,0777)
|
|
|
|
%files sql-parser
|
|
%defattr(-,root,root,0777)
|
|
%{_prefix}/include/ob_item_type.h
|
|
%{_prefix}/include/ob_sql_mode.h
|
|
%{_prefix}/include/ob_sql_parser.h
|
|
%{_prefix}/include/parse_malloc.h
|
|
%{_prefix}/include/parse_node.h
|
|
%{_prefix}/include/parser_proxy_func.h
|
|
%{_prefix}/lib/libob_sql_proxy_parser_static.a
|
|
|
|
%files table
|
|
%defattr(-,root,root,0777)
|
|
%{_prefix}/examples
|
|
%{_prefix}/include/Time.h
|
|
%{_prefix}/include/abit_set.h
|
|
%{_prefix}/include/achunk_mgr.h
|
|
%{_prefix}/include/alloc_assist.h
|
|
%{_prefix}/include/alloc_func.h
|
|
%{_prefix}/include/alloc_struct.h
|
|
%{_prefix}/include/block_set.h
|
|
%{_prefix}/include/cond.h
|
|
%{_prefix}/include/config.h
|
|
%{_prefix}/include/data_buffer.h
|
|
%{_prefix}/include/libobtable.h
|
|
%{_prefix}/include/mprotect.h
|
|
%{_prefix}/include/murmur_hash.h
|
|
%{_prefix}/include/mutex.h
|
|
%{_prefix}/include/mysql_errno.h
|
|
%{_prefix}/include/ob_accuracy.h
|
|
%{_prefix}/include/ob_action_flag.h
|
|
%{_prefix}/include/ob_addr.h
|
|
%{_prefix}/include/ob_allocator.h
|
|
%{_prefix}/include/ob_array.h
|
|
%{_prefix}/include/ob_array_helper.h
|
|
%{_prefix}/include/ob_array_index_hash_set.h
|
|
%{_prefix}/include/ob_array_iterator.h
|
|
%{_prefix}/include/ob_array_serialization.h
|
|
%{_prefix}/include/ob_array_wrap.h
|
|
%{_prefix}/include/ob_atomic.h
|
|
%{_prefix}/include/ob_atomic_event.h
|
|
%{_prefix}/include/ob_atomic_reference.h
|
|
%{_prefix}/include/ob_bit_set.h
|
|
%{_prefix}/include/ob_bucket_lock.h
|
|
%{_prefix}/include/ob_cache_washer.h
|
|
%{_prefix}/include/ob_cached_allocator.h
|
|
%{_prefix}/include/ob_charset.h
|
|
%{_prefix}/include/ob_common_config.h
|
|
%{_prefix}/include/ob_common_utility.h
|
|
%{_prefix}/include/ob_concurrent_fifo_allocator.h
|
|
%{_prefix}/include/ob_config.h
|
|
%{_prefix}/include/ob_config_helper.h
|
|
%{_prefix}/include/ob_core_local_storage.h
|
|
%{_prefix}/include/ob_counter.h
|
|
%{_prefix}/include/ob_crc64.h
|
|
%{_prefix}/include/ob_ctype.h
|
|
%{_prefix}/include/ob_date_unit_type.h
|
|
%{_prefix}/include/ob_dedup_queue.h
|
|
%{_prefix}/include/ob_define.h
|
|
%{_prefix}/include/ob_dlink_node.h
|
|
%{_prefix}/include/ob_dlist.h
|
|
%{_prefix}/include/ob_drw_lock.h
|
|
%{_prefix}/include/ob_errno.h
|
|
%{_prefix}/include/ob_fifo_allocator.h
|
|
%{_prefix}/include/ob_fixed_array.h
|
|
%{_prefix}/include/ob_fixed_length_string.h
|
|
%{_prefix}/include/ob_fixed_queue.h
|
|
%{_prefix}/include/ob_hang_fatal_error.h
|
|
%{_prefix}/include/ob_hash_func.h
|
|
%{_prefix}/include/ob_hashmap.h
|
|
%{_prefix}/include/ob_hashset.h
|
|
%{_prefix}/include/ob_hashtable.h
|
|
%{_prefix}/include/ob_hashutils.h
|
|
%{_prefix}/include/ob_hkv_table.h
|
|
%{_prefix}/include/ob_iarray.h
|
|
%{_prefix}/include/ob_iteratable_hashmap.h
|
|
%{_prefix}/include/ob_latch.h
|
|
%{_prefix}/include/ob_latch_define.h
|
|
%{_prefix}/include/ob_lf_fifo_allocator.h
|
|
%{_prefix}/include/ob_linear_hash_map.h
|
|
%{_prefix}/include/ob_link.h
|
|
%{_prefix}/include/ob_list.h
|
|
%{_prefix}/include/ob_lock.h
|
|
%{_prefix}/include/ob_lock_guard.h
|
|
%{_prefix}/include/ob_log.h
|
|
%{_prefix}/include/ob_log_module.h
|
|
%{_prefix}/include/ob_log_print_kv.h
|
|
%{_prefix}/include/ob_macro_utils.h
|
|
%{_prefix}/include/ob_malloc.h
|
|
%{_prefix}/include/ob_malloc_allocator.h
|
|
%{_prefix}/include/ob_mod_define.h
|
|
%{_prefix}/include/ob_monitor.h
|
|
%{_prefix}/include/ob_mutex.h
|
|
%{_prefix}/include/ob_mysql_global.h
|
|
%{_prefix}/include/ob_name_def.h
|
|
%{_prefix}/include/ob_name_id_def.h
|
|
%{_prefix}/include/ob_net_util.h
|
|
%{_prefix}/include/ob_number_v2.h
|
|
%{_prefix}/include/ob_obj_cast.h
|
|
%{_prefix}/include/ob_obj_type.h
|
|
%{_prefix}/include/ob_object.h
|
|
%{_prefix}/include/ob_partition_location.h
|
|
%{_prefix}/include/ob_pcounter.h
|
|
%{_prefix}/include/ob_placement_hashutils.h
|
|
%{_prefix}/include/ob_pointer_hashmap.h
|
|
%{_prefix}/include/ob_pooled_allocator.h
|
|
%{_prefix}/include/ob_print_kv.h
|
|
%{_prefix}/include/ob_print_utils.h
|
|
%{_prefix}/include/ob_pstore.h
|
|
%{_prefix}/include/ob_random.h
|
|
%{_prefix}/include/ob_range.h
|
|
%{_prefix}/include/ob_rate_limiter.h
|
|
%{_prefix}/include/ob_region.h
|
|
%{_prefix}/include/ob_resource_mgr.h
|
|
%{_prefix}/include/ob_retire_station.h
|
|
%{_prefix}/include/ob_role.h
|
|
%{_prefix}/include/ob_rowkey.h
|
|
%{_prefix}/include/ob_rowkey_info.h
|
|
%{_prefix}/include/ob_rwlock.h
|
|
%{_prefix}/include/ob_se_array.h
|
|
%{_prefix}/include/ob_seq_event_recorder.h
|
|
%{_prefix}/include/ob_serialization.h
|
|
%{_prefix}/include/ob_serialization_helper.h
|
|
%{_prefix}/include/ob_small_allocator.h
|
|
%{_prefix}/include/ob_small_spin_lock.h
|
|
%{_prefix}/include/ob_spin_lock.h
|
|
%{_prefix}/include/ob_spin_rwlock.h
|
|
%{_prefix}/include/ob_string.h
|
|
%{_prefix}/include/ob_string_buf.h
|
|
%{_prefix}/include/ob_string_buf.ipp
|
|
%{_prefix}/include/ob_string_util.h
|
|
%{_prefix}/include/ob_strings.h
|
|
%{_prefix}/include/ob_table.h
|
|
%{_prefix}/include/ob_table_define.h
|
|
%{_prefix}/include/ob_table_rpc_proxy.h
|
|
%{_prefix}/include/ob_table_rpc_struct.h
|
|
%{_prefix}/include/ob_table_service_client.h
|
|
%{_prefix}/include/ob_table_service_config.h
|
|
%{_prefix}/include/ob_tc_malloc.h
|
|
%{_prefix}/include/ob_template_utils.h
|
|
%{_prefix}/include/ob_tenant_ctx_allocator.h
|
|
%{_prefix}/include/ob_thread_cond.h
|
|
%{_prefix}/include/ob_time_convert.h
|
|
%{_prefix}/include/ob_time_utility.h
|
|
%{_prefix}/include/ob_timeout_ctx.h
|
|
%{_prefix}/include/ob_timezone_info.h
|
|
%{_prefix}/include/ob_trace_event.h
|
|
%{_prefix}/include/ob_trace_log.h
|
|
%{_prefix}/include/ob_tsi_factory.h
|
|
%{_prefix}/include/ob_tsi_utils.h
|
|
%{_prefix}/include/ob_unify_serialize.h
|
|
%{_prefix}/include/ob_vector.h
|
|
%{_prefix}/include/ob_vector.ipp
|
|
%{_prefix}/include/ob_wait_class.h
|
|
%{_prefix}/include/ob_wait_event.h
|
|
%{_prefix}/include/ob_yson.h
|
|
%{_prefix}/include/ob_yson_encode.h
|
|
%{_prefix}/include/ob_zerofill_info.h
|
|
%{_prefix}/include/ob_zone.h
|
|
%{_prefix}/include/object_mgr.h
|
|
%{_prefix}/include/object_set.h
|
|
%{_prefix}/include/page_arena.h
|
|
%{_prefix}/include/serialization.h
|
|
%{_prefix}/include/utility.h
|
|
%{_prefix}/lib/libobtable.so
|
|
%{_prefix}/lib/libobtable.so.1
|
|
%{_prefix}/lib/libobtable.so.1.0.0
|
|
%{_prefix}/lib/libobtable_static.a
|
|
|
|
%files table-debuginfo -f %{buildroot}/table_debuginfo_filelist
|
|
%defattr(-,root,root,0777)
|
|
|
|
%files utils
|
|
%defattr(-,root,root,0777)
|
|
/usr/bin/ob_admin
|
|
/usr/bin/ob_error
|
|
|
|
%files utils-debuginfo -f %{buildroot}/utils_debuginfo_filelist
|
|
%defattr(-,root,root,0777)
|
|
|
|
%post
|
|
echo "execute post install script"
|
|
cp -f %{_prefix}/profile/oceanbase.service /etc/systemd/system/oceanbase.service
|
|
chmod 644 /etc/systemd/system/oceanbase.service
|
|
chmod +x %{_prefix}/profile/oceanbase-service.sh
|
|
cp -f %{_prefix}/profile/oceanbase.cnf /etc/oceanbase.cnf
|
|
systemctl daemon-reload
|
|
|
|
# telemetry
|
|
/bin/bash %{_prefix}/profile/telemetry.sh $1 >/dev/null 2>&1
|
|
|
|
%preun
|
|
echo "execute pre uninstall script"
|
|
systemctl stop %{daemon_name}
|
|
systemctl disable %{daemon_name}
|
|
/bin/bash %{_prefix}/profile/oceanbase-service.sh destroy
|
|
rm -f /etc/systemd/system/oceanbase.service /etc/oceanbase.cnf
|
|
systemctl daemon-reload
|
|
|
|
# telemetry
|
|
/bin/bash %{_prefix}/profile/telemetry.sh $1 >/dev/null 2>&1
|
|
|
|
%postun
|
|
echo "execute post uninstall script"
|
|
rm -rf %{_prefix}/.meta %{_prefix}/log_obshell
|
|
|
|
%changelog
|
|
* Mon Mar 18 2024 oceanbase 4.3.0
|
|
- new features: support for packaging with spec files
|
|
- new features: support for packaging on anolis
|