Files
oceanbase/package/rpm/anolis/oceanbase-ce.spec
2024-03-27 05:20:32 +00:00

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