Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.5:Update
sapconf.14472
sapconf.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File sapconf.spec of Package sapconf.14472
# # spec file for package sapconf # # Copyright (c) 2019-2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %if ! %{defined _fillupdir} %define _fillupdir /var/adm/fillup-templates %endif Name: sapconf Version: 4.2.3 Release: 0 Summary: Kernel Parameter Initializiation for SAP Systems License: LGPL-2.1-or-later Group: Productivity/Other Url: https://www.suse.com/partners/alliance/sap/ PreReq: %fillup_prereq Source0: %name-%version.tar.gz BuildArch: noarch BuildRequires: tuned Requires: bc Requires: systemd >= 234-24.42 Requires: sysstat Requires: tuned Requires: uuidd Suggests: cron logrotate %{?systemd_requires} %description The utility adjusts operating system parameters, such as kernel tuning settings and resource limits, to allow running various SAP solutions at satisfactory performance. Authors: -------- Angela Briel, Howard Guo %prep %setup -q %build %install mkdir -p %{buildroot}%{_libexecdir}/tuned/ cp -R profile/* %{buildroot}%{_libexecdir}/tuned/ mkdir -p %{buildroot}%{_libexecdir}/%{name}/ install -m 0644 lib/common.sh %{buildroot}%{_libexecdir}/%{name}/ install -m 0644 lib/util.sh %{buildroot}%{_libexecdir}/%{name}/ install -m 0755 lib/sccu.sh %{buildroot}%{_libexecdir}/%{name}/ mkdir -p %{buildroot}%{_unitdir}/systemd/system/ %{buildroot}%{_sbindir}/ install -m 0644 sapconf.service %{buildroot}%{_unitdir}/ ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcsapconf mkdir -p %{buildroot}%{_mandir}/{man5,man7}/ install -m 0644 man/*.5 %{buildroot}%{_mandir}/man5/ install -m 0644 man/*.7 %{buildroot}%{_mandir}/man7/ mkdir -p %{buildroot}/%{_fillupdir}/ pushd sysconfig for file in *; do cp "$file" "%{buildroot}/%{_fillupdir}/sysconfig.$file" done popd %pre %service_add_pre sapconf.service if [ $1 -ne 1 ]; then # package update # fix a problem with former post install of version 4.2.0 if [ -f %{_fillupdir}/sysconfig.sapconf ]; then if ! (grep "The following lines are only for documentation purpose" /etc/sysconfig/sapconf >/dev/null 2>&1); then echo -e "\n" >> /etc/sysconfig/sapconf sed -n "/^####.*##$/,/^#SAPCONF_END.*/p" %{_fillupdir}/sysconfig.sapconf >> /etc/sysconfig/sapconf fi fi fi %post if [ $1 -eq 1 ]; then # package initial install # to preserve the trailing comments, use /bin/fillup -t instead of # macro fillup_only echo "Updating /etc/sysconfig/sapconf ..." touch /etc/sysconfig/sapconf || : /bin/fillup -q -t %{_fillupdir}/sysconfig.sapconf /etc/sysconfig/sapconf /etc/sysconfig/sapconf || : touch /tmp/initial_sapconf_inst || : else # package update if [ -f /etc/sysconfig/sapnote-1557506 ]; then # covers updates from SLE12 sapconf versions < 4.1.12 mv /etc/sysconfig/sapconf /etc/sysconfig/sapconf.rpmsave || true # to preserve the trailing comments, use /bin/fillup -t instead of # macro fillup_only echo "Updating /etc/sysconfig/sapconf ..." touch /etc/sysconfig/sapconf || : /bin/fillup -q -t %{_fillupdir}/sysconfig.sapconf /etc/sysconfig/sapconf /etc/sysconfig/sapconf || : # remove no longer needed 'pagecache' sysconfig file rm -f /etc/sysconfig/sapnote-1557506 || true # remove no longer needed 'ase' sysconfig file rm -f /etc/sysconfig/sapnote-1680803 || true elif [ -f /etc/sysconfig/sapnote-1680803 ]; then # covers updates from SLE12 sapconf versions >= 4.1.12 # adjust comments, not covered by fillup sed -n "/## Path:.*/,/##.*integration of sapconf./p" %{_fillupdir}/sysconfig.sapconf > /etc/sysconfig/sapconf.new.$$ sed "/## Path:.*Other.*/,/## integration of sapconf./d" /etc/sysconfig/sapconf >> /etc/sysconfig/sapconf.new.$$ mv /etc/sysconfig/sapconf.new.$$ /etc/sysconfig/sapconf || true # remove pagecache section from sapconf sysconfig file # no longer supported in SLE15 sed -i '/## Path: SAP\/Note\/1557506 - Linux paging improvements/,/.*PAGECACHE_LIMIT_IGNORE_DIRTY[[:blank:]]*=.*/d' /etc/sysconfig/sapconf sed -i '/.*PAGECACHE_LIMIT_IGNORE_DIRTY[[:blank:]]*=.*/d' /etc/sysconfig/sapconf # bsc#1096496/bsc#1096498 # to update the comment sections in /etc/sysconfig/sapconf # does not work with /bin/fillup, but is mandatory for SAP %{_libexecdir}/%{name}/sccu.sh || : echo "Updating /etc/sysconfig/sapconf ..." /bin/fillup -q -t /etc/sysconfig/sapconf %{_fillupdir}/sysconfig.sapconf # remove no longer needed 'ase' sysconfig file rm -f /etc/sysconfig/sapnote-1680803 || true else # covers updates from SLE15 # bsc#1096496/bsc#1096498 # to update the comment sections in /etc/sysconfig/sapconf # does not work with /bin/fillup, but is mandatory for SAP %{_libexecdir}/%{name}/sccu.sh || : echo "Updating /etc/sysconfig/sapconf ..." /bin/fillup -q -t /etc/sysconfig/sapconf %{_fillupdir}/sysconfig.sapconf fi %{remove_and_set -n sapconf SEMMSL SEMMNS SEMOPM SEMMNI} # move old sapconf profiles sap-hana, sap-netweaver, sap-ase and sap-bobj to # the new sapconf profile 'sapconf' # works without problems as long as the tuned package does not ship the # upstream sap- profiles. [[ $(cat /etc/tuned/active_profile) == sap-* ]] && echo sapconf > /etc/tuned/active_profile || true fi sed -i '/^[^#].*[[:blank:]][[:blank:]]*=[[:blank:]][[:blank:]]*.*/s;[[:blank:]];;g' /etc/sysconfig/sapconf >/dev/null 2>&1 || true %service_add_post sapconf.service # Amend logind's behaviour (bsc#1031355, bsc#1039309, bsc#1043844), there is no rollback. # Not needed any longer as the limit is removed from logind (jsc#SLE-10123) SAP_LOGIN_FILE=/etc/systemd/logind.conf.d/sap.conf if [ -f $SAP_LOGIN_FILE ]; then echo "removing no longer needed file '$SAP_LOGIN_FILE'" rm -rf $SAP_LOGIN_FILE || : fi # remove UserTasksMax section from sapconf sysconfig file # no longer needed in SLE15 sed -i '/# .*UserTasksMax setting$/,/# A message will indicate .*/d' /etc/sysconfig/sapconf || true %preun %service_del_preun sapconf.service test -n "$FIRST_ARG" || FIRST_ARG=$1 if [ $FIRST_ARG -eq 0 ]; then # Package removal, not upgrade # to suppress error messags from tuned, if the current active profile is # a removed sapconf profile (systemctl -q is-active tuned && [[ $(cat /etc/tuned/active_profile) == sapconf ]] ) && (/usr/bin/systemctl stop tuned.service >/dev/null 2>&1; > /etc/tuned/active_profile) || true fi %postun %service_del_postun sapconf.service %posttrans -p /bin/bash # Use a real bash script with an explicit "exit 0" at the end to be by default fail safe # an explicit "exit 1" must be use to enforce package install/upgrade/erase failure where needed # see the "Shared_libraries" section in http://en.opensuse.org/openSUSE:Packaging_scriptlet_snippets # Begin refresh systemd units and clean up possibly obsolete systemd units # The following is a generic way how to refresh and/or clean up systemd units. # A systemd unit may need a refresh after updating a package when the new package # had installed a changed systemd unit file for an enabled systemd unit. # A systemd unit may become obsolete by updating a package (see bnc#904215). # A systemd unit is considered to have become obsolete when the systemd # symlink /etc/systemd/system/.../unit_name -> /path/to/unit_file is broken. # When during package update the new package does no longer provide a unit file # then the systemd symlink becomes broken after the files of the old package # had been actually removed by RPM. # According to /usr/share/doc/packages/rpm/manual/triggers and according # to https://en.opensuse.org/openSUSE:Packaging_scriptlet_snippets#Scriptlet_Ordering # and http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Scriptlet_Ordering # from the new package only "posttrans of new package" is run after "removal of old package" # so that the new package must do the clean up as RPM posttrans scriptlet. if systemctl --quiet is-enabled sapconf.service 2>/dev/null; then # Refresh still valid enabled systemd units and clean up possibly obsoleted systemd units: # Enforce systemd to use the current unit file which is usually the unit file of the new package # but also in case of custom units (that use other unit files) a "reenable" won't hurt because # "reenable" does not implicitly stop a running service which is "the right thing" because # a RPM package installation must not automatically disrupt (restart) a running service. # Using "--force reenable" is essential to clean up possibly conflicting/broken symlinks. # (without "|| :" build fails with "Failed to get D-Bus connection: No connection to service manager. posttrans script ... failed"): systemctl --quiet --force reenable sapconf.service 2>/dev/null || : else # Refresh still valid disabled systemd units and clean up possibly obsoleted systemd units: # First using "--force reenable" is essential to clean up possibly conflicting/broken symlinks # because there is no "--force disable" that would clean up possibly conflicting/broken symlinks # see https://bugzilla.opensuse.org/show_bug.cgi?id=904215#c34 # so that first the unit has a clean state and then it is set back to disabled (as it was before). # If a disabled systemd unit has become obsoleted, "systemctl --force reenable" will clean it up # which means the unit gets removed and the subsequent "systemctl disable" will do nothing. # (without "|| :" build fails with "Failed to get D-Bus connection: No connection to service manager. posttrans script ... failed"): systemctl --quiet --force reenable sapconf.service 2>/dev/null || : systemctl --quiet disable sapconf.service 2>/dev/null || : fi if [ -f /tmp/initial_sapconf_inst ]; then # package initial install rm -f /tmp/initial_sapconf_inst || : [[ $(cat /etc/tuned/active_profile) == "" ]] && systemctl start sapconf.service || : else # package update (systemctl -q is-active sapconf && [[ $(cat /etc/tuned/active_profile) == sapconf ]] ) && systemctl reload sapconf.service || : fi exit 0 %files %defattr(-,root,root) %{_sbindir}/rcsapconf %{_unitdir}/sapconf.service %{_libexecdir}/tuned/sap* %dir %{_libexecdir}/%{name} %{_libexecdir}/%{name}/* %{_mandir}/man*/* %{_fillupdir}/* %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor