Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Application:ITS:otobo
otobo
otobo.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File otobo.spec of Package otobo
# # spec file for package otobo # # Copyright (c) 2023 SUSE LLC # Copyright (c) 2023 Scorpio IT, Deidesheim, DE # # 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/ # #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir /var/adm/fillup-templates %endif Name: otobo %define otobo_ver 10.0.18 %define itsm_ver 10.1.1 %define itsm_min 10 %define otobo_root /srv/%{name} %define otobodoc_dir_files AUTHORS* CHANGES* COPYING* CREDITS LICENSE README* doc %define otobodocs CHANGES* doc Summary: The Open Ticket Request System License: GPL-3.0-or-later Group: Productivity/Networking/Email/Utilities Version: %{otobo_ver} Release: 0 URL: https://otobo.de/ Source: https://ftp.otobo.org/pub/%{name}/%{name}-%{otobo_ver}.tar.gz Source1: itsm-%{itsm_ver}.tar.bz2 Source2: %{name}.rpmlintrc # Used to update the itsm package Source11: sysconfig.%{name} Source12: %{name}.README.en Source13: %{name}.README.de Source14: itsm.README.en Source15: itsm.README.de Source16: ZZZAuto.pm Source20: %{name}.service Source21: %{name}.service.helper.sh # Source99: itsm-update.sh # PATCH-FIX-OPENSUSE -- VARS for conf and fix for apache >= 2.4 Patch1: %{name}-httpd_conf.patch # PATCH-FIX-OPENSUSE -- don't test write permissions on bin/ Patch2: otobo-perm_test.patch BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires(pre): coreutils Requires(pre): shadow Requires(post): %fillup_prereq Requires(post): apache2 Requires(post): coreutils Requires(post): sed Requires(post): shadow BuildRequires: fdupes BuildRequires: pwdutils # %if 0%{?suse_version} >= 1210 BuildRequires: pkgconfig(systemd) %{?systemd_ordering} %define has_systemd 1 %endif # Requires: apache2-mod_perl Requires: elasticsearch Requires: fetchmail Requires: mysql Requires: mysql-client Requires: perl Requires: procmail Requires: perl(Archive::Tar) Requires: perl(Archive::Zip) Requires: perl(Convert::BinHex) Requires: perl(DBD::mysql) Requires: perl(DBI) Requires: perl(Date::Format) Requires: perl(DateTime) Requires: perl(Digest::SHA) Requires: perl(LWP::UserAgent) Requires: perl(List::Util::XS) Requires: perl(Moo) Requires: perl(Net::DNS) >= 0.60 # fix for BUG gh#14357 Requires: perl(Net::SMTP) >= 3.11 Requires: perl(Net::SMTP::SSL) Requires: perl(Template) Requires: perl(Template::Stash::XS) Requires: perl(Time::HiRes) Requires: perl(Time::Piece) Requires: perl(Try::Tiny) Requires: perl(Unicode::Collate) Requires: perl(XML::LibXML) Requires: perl(YAML::XS) # Recommends: perl(Apache::DBI) Recommends: perl(Apache2::Reload) Recommends: perl(Authen::SASL) Recommends: perl(Crypt::Eksblowfish::Bcrypt) Recommends: perl(Crypt::SSLeay) Recommends: perl(GD) Recommends: perl(GD::Graph) Recommends: perl(GD::Text) Recommends: perl(IO::Socket::SSL) Recommends: perl(JSON::XS) Recommends: perl(Mail::IMAPClient) >= 3.22 Recommends: perl(ModPerl::Util) Recommends: perl(Net::SSL) Recommends: perl(PDF::API2) >= 0.73 Recommends: perl(SOAP::Lite) Recommends: perl(Sub::Exporter) Recommends: perl(Text::CSV_XS) Recommends: perl(XML::LibXSLT) Recommends: perl(XML::Parser) # Suggests: perl(Authen::NTML) Suggests: perl(DBD::ODBC) Suggests: perl(DBD::Oracle) Suggests: perl(DBD::Pg) Suggests: perl(Encode::HanExtra) >= 0.23 Suggests: perl(Net::LDAP) # ### Framework -> Crypt::SMIME Recommends: ca-certificates %if "%_vendor" == "suse" %define VENDOR SUSE %else %define VENDOR %_vendor %endif %description OTOBO is a Ticket Request System with many features to manage customer telephone calls and e-mails. Feature list: see README Authors list: see CREDITS %package doc Summary: OTOBO Documentation Group: Documentation/Other %description doc This package contains the README, Changes and docs for OTOBO Authors list: see CREDITS %package -n otobo-itsm Summary: ITIL focused IT service management Group: Productivity/Networking/Email/Utilities Version: %{itsm_ver} Release: 0 Requires: %{name} >= %{itsm_ver} Provides: OTOBO::ITSM Provides: itsm = %{itsm_ver} %description itsm OTOBO::ITSM implements ITIL focused IT service management. You need a OTOBO %{otobo_ver} (https://otobo.de/) installation. Make sure your database accepts packages over 5 MB in size. A MySQL database for example accepts packages up to 1 MB by default. In this case, the value for max_allowed_packet must be increased. The recommended maximum size accepted is 20 MB. for INSTALL see INSTALL-%{itsm_min}.ITSM please see README.itsm for further details, which comes with otobo package Required OTOBO::ITSM modules can be found under %{otobo_root}/itsm Authors list: see CREDITS %prep %setup -q -n %{name}-%{otobo_ver} -a 1 %patch1 %patch2 ### Is this critical ? (https://bugs.otrs.org/show_bug.cgi?id=12889) # rpmlint: pem-certificate /srv/otrs/Kernel/cpan-lib/Mozilla/CA/cacert.pem #rm -f Kernel/cpan-lib/Mozilla/CA/cacert.pem rm -f CONTRIBUTING.md INSTALL.md UPDATING.md ### UPGRADING.SUSE #cp %{S:17} . # fix @OTOBO_ROOT@ #sed -i -e "s,@OTOBO_ROOT@,%{otobo_root},g" UPGRADING.SUSE ### ZZZAuto.pm for OTOBO::ITSM pushd Kernel/Config/Files cp %{S:16} . # fix @OTOBO_ROOT@ sed -i -e "s,@OTOBO_ROOT@,%{otobo_root},g" ZZZAuto.pm popd # remove unwanted files (Installed (but unpackaged) file(s) found:) rm -rf \ .dockerignore \ .github \ .otobo-ci.yml \ Kernel/Config.pm.docker.dist \ cpanfile* \ hooks \ %{name}.* # remove not needed devel files from bin rm -rf \ bin/devel # remove not needed files from scripts rm -rf \ scripts/*.spec \ scripts/auto_build \ scripts/redhat-* \ scripts/suse-*rc*otobo* # scripts/test [Kernel::System::Package::_FileInstall] # fix old otobo_root (/opt) sed -i -e "s,/opt/%{name},%{otobo_root},g" \ bin/Cron.sh \ i18n/otobo/otobo.*.po \ Kernel/Config/Defaults.pm \ Kernel/Config/Files/XML/Daemon.xml \ Kernel/Config/Files/XML/Framework.xml \ Kernel/Config.pm.dist \ Kernel/Language/*.pm \ Kernel/Modules/AdminDynamicFieldText.pm \ Kernel/Output/HTML/Templates/Standard/AdminGenericInterfaceTransportHTTPSOAP.tt \ Kernel/System/SysConfig.pm \ Kernel/System/ACL/DB/ACL.pm \ Kernel/System/Environment.pm \ Kernel/System/ProcessManagement/DB/Process.pm \ Kernel/System/UnitTest/Helper.pm \ scripts/apache2-perl-startup.pl ### rpmlint # wrong-file-end-of-line-encoding #perl -p -i -e "s|\r\n|\n|" itsm-%{itsm_ver}/INSTALL-%{itsm_min}.ITSM # env-script-interpreter for i in $(grep -R "/usr/bin/env perl" * | awk -F':' '{print $1}'); do sed -i -e "s,/usr/bin/env perl,/usr/bin/perl," "${i}" done %build # copy config file cp -a Kernel/Config.pm.dist Kernel/Config.pm # copy all crontab dist files for file in var/cron/*.dist; do mv $file var/cron/$(basename $file .dist) done %install export DESTROOT="%{otobo_root}/" install -d %{buildroot}/${DESTROOT} install -d %{buildroot}/%{_sbindir} # install OTOBO base system cp -a . %{buildroot}/${DESTROOT} # remove SECURITY.md rm -f %{buildroot}/${DESTROOT}/SECURITY.md for configFile in .fetchmailrc .mailfilter .procmailrc; do touch %{buildroot}/${DESTROOT}/${configFile} done touch %{buildroot}${DESTROOT}var/log/TicketCounter.log # install README for lang in en de; do cp -p "%{_sourcedir}/%{name}.README.${lang}" "README.%{VENDOR}.${lang}" cp -p "%{_sourcedir}/itsm.README.${lang}" "README.itsm.%{VENDOR}.${lang}" done # fix @OTOBO_ROOT@ in README.* for r in $(ls -1 README.*); do sed -i -e "s,@OTOBO_ROOT@,%{otobo_root},g" $r done # remove files that are part of the docdir pushd %{buildroot}/${DESTROOT} rm -rf %{otobodoc_dir_files} install -d doc popd # sysconfig install -D -m 0644 %{S:11} %{buildroot}%{_fillupdir}/sysconfig.%{name} # fix @OTOBO_ROOT@ sed -i -e "s,@OTOBO_ROOT@,%{otobo_root},g" %{buildroot}%{_fillupdir}/sysconfig.%{name} # systemd install -D -m 0644 %{S:20} %{buildroot}/%{_unitdir}/%{name}.service ln -fs %{_sbindir}/service %{buildroot}/%{_sbindir}/rc%{name} install -D -m 0755 %{S:21} %{buildroot}/%{_bindir}/%{name}.service.helper.sh # fix @OTOBO_ROOT@ sed -i -e "s,@OTOBO_ROOT@,%{otobo_root},g" "%{buildroot}/%{_unitdir}/%{name}.service" sed -i -e "s,@OTOBO_ROOT@,%{otobo_root},g" "%{buildroot}/%{_bindir}/%{name}.service.helper.sh" otobo_apache_conf="scripts/apache2-httpd.include.conf" install -D -m 0644 ${otobo_apache_conf} %{buildroot}/etc/apache2/conf.d/%{name}.conf rm -f %{buildroot}/%{otobo_root}/scripts/apache*.conf # fix @OTOBO_ROOT@ sed -i -e "s,@OTOBO_ROOT@,%{otobo_root},g" %{buildroot}/etc/apache2/conf.d/%{name}.conf # OTOBO::ITSM # rename itsm-%{itsm_ver} to itsm pushd %{buildroot}/${DESTROOT} mv itsm-%{itsm_ver} itsm popd %if 0%{?suse_version} > 1020 %fdupes %{buildroot}/%{otobo_root}/scripts/test %fdupes %{buildroot}/%{otobo_root}/var %fdupes %{buildroot}/%{otobo_root}/Kernel/cpan-lib %endif %pre # add new group otobo if [ -z "`%{_bindir}/getent group %{name} 2>/dev/null`" ]; then # is it parallel install to otrs ? if [ -z "`%{_bindir}/getent group otrs 2>/dev/null`" ]; then %{_sbindir}/groupadd -g 88 -r %{name} else %{_sbindir}/groupadd -g 88 -o -r %{name} fi fi # add new user otobo if [ -z "`%{_bindir}/getent passwd %{name} 2>/dev/null`" ]; then # is it parallel install to otrs ? if [ -z "`%{_bindir}/getent passwd otrs 2>/dev/null`" ]; then %{_sbindir}/useradd -c "OTOBO User" -d %{otobo_root} -G %{name},www -g %{name} -u 88 -r -s /bin/false %{name} else %{_sbindir}/useradd -c "OTOBO User" -d %{otobo_root} -G %{name},www -g %{name} -o -u 88 -r -s /bin/false %{name} # set group otobo as main group for otrs %{_sbindir}/usermod -G %{name},www -g %{name} otrs fi fi # add group otobo to wwwrun user %{_sbindir}/usermod -a -G %{name} wwwrun %service_add_pre %{name}.service %preun %service_del_preun %{name}.service %post %{fillup_only -n otobo} %service_add_post %{name}.service # %if 0%{?suse_version} /usr/sbin/a2enmod deflate >/dev/null /usr/sbin/a2enmod filter >/dev/null /usr/sbin/a2enmod headers >/dev/null /usr/sbin/a2enmod perl >/dev/null /usr/sbin/a2enmod version >/dev/null %endif # if rpm is not in update mode if ! [ $1 -gt 1 ]; then if [ -z "${YAST_IS_RUNNING}" ]; then if [ -n "$LC_ALL" ]; then lang="$LC_ALL" elif [ -n "$LC_MESSAGE" ]; then lang="$LC_MESSAGE" elif [ -n "$LANG" ]; then lang="$LANG" else lang= fi echo case "$lang" in de_*) echo "Hinweise zur Erstkonfiguration von OTOBO finden Sie in" echo "/usr/share/doc/packages/otobo/README.%{VENDOR}.de" ;; *) echo "About the initial setup of OTOBO, please read" echo "/usr/share/doc/packages/otobo/README.%{VENDOR}.en" ;; esac echo fi fi exit 0 %postun %service_del_postun %{name}.service %files %defattr(-,root,root,-) %doc AUTHORS.md CHANGES.md README* SECURITY.md %license COPYING* LICENSE %{otobo_root}/ARCHIVE %{otobo_root}/RELEASE %{otobo_root}/.bash_completion %dir %{_sysconfdir}/apache2 %dir %{_sysconfdir}/apache2/conf.d %config(noreplace) %{_sysconfdir}/apache2/conf.d/%{name}.conf # systemd %{_fillupdir}/sysconfig.%{name} %{_unitdir}/%{name}.service %{_bindir}/%{name}.service.helper.sh %{_sbindir}/rc%{name} # Custom %{otobo_root}/Custom/README # i18n %dir %{otobo_root}/i18n %{otobo_root}/i18n/* # scripts/* %{otobo_root}/scripts/contrib %{otobo_root}/scripts/database %{otobo_root}/scripts/elasticsearch %{otobo_root}/scripts/nginx %{otobo_root}/scripts/tools %{otobo_root}/scripts/webservices %{otobo_root}/scripts/*.pl %exclude %{otobo_root}/scripts/vim # var/cron %dir %{otobo_root}/var/cron %config(noreplace) %attr(644,%{name},www) %{otobo_root}/var/cron/* # var/fonts %{otobo_root}/var/fonts # var/processes %{otobo_root}/var/processes # var/webservices %{otobo_root}/var/webservices ############### ## {root,www} ############### #defattr(0770,root,www,0775) %defattr(0750,root,www,0750) # bin %dir %{otobo_root}/bin %{otobo_root}/bin/*.pl %dir %{otobo_root}/bin/cgi-bin %{otobo_root}/bin/cgi-bin/*.pl %{otobo_root}/bin/Cron.sh #dir %{otobo_root}/bin/mojo-bin #{otobo_root}/bin/mojo-bin/dbviewer.conf #{otobo_root}/bin/mojo-bin/dbviewer.pl %dir %{otobo_root}/bin/psgi-bin/ %{otobo_root}/bin/psgi-bin/*.psgi %exclude %{otobo_root}/bin/%{name}.SetPermissions.pl ############### ## {otobo,otobo} ############### # otobo HOME %defattr(-,%{name},%{name}) %dir %{otobo_root} %ghost %config(noreplace) %{otobo_root}/.fetchmailrc %ghost %config(noreplace) %{otobo_root}/.mailfilter %ghost %config(noreplace) %{otobo_root}/.procmailrc %{otobo_root}/.fetchmailrc.dist %{otobo_root}/.mailfilter.dist %{otobo_root}/.procmailrc.dist %{otobo_root}/.screenrc ############### ## {otobo,www} ############### %defattr(0644,%{name},www,0775) # var %dir %{otobo_root}/var %{otobo_root}/var/logo-%{name}.png # var/log %dir %attr(0770,%{name},www) %{otobo_root}/var/log %attr(660,%{name},www) %{otobo_root}/var/log/.keep %ghost %config(noreplace) %attr(660,%{name},www) %{otobo_root}/var/log/TicketCounter.log # var/sessions %dir %attr(0770,%{name},www) %{otobo_root}/var/sessions %attr(660,%{name},www) %{otobo_root}/var/sessions/.keep # var/spool %dir %attr(0770,%{name},www) %{otobo_root}/var/spool %attr(660,%{name},www) %{otobo_root}/var/spool/.keep ############### ## {wwwrun,www} ############### %defattr(0750,wwwrun,www,0750) # bin %exclude %{otobo_root}/bin/docker %defattr(0644,wwwrun,www,0755) # Custom %dir %{otobo_root}/Custom # doc (is empty), [Kernel::System::Package::_FileInstall] %dir %{otobo_root}/doc # scripts/* %dir %{otobo_root}/scripts # scripts/test, [Kernel::System::Package::_FileInstall] %dir %{otobo_root}/scripts/test %{otobo_root}/scripts/test/* # var/httpd, [Kernel::System::Package::_FileInstall] %{otobo_root}/var/httpd # var/stats %dir %{otobo_root}/var/stats %{otobo_root}/var/stats/* %defattr(0664,wwwrun,www,0775) # Kernel DIR %dir %{otobo_root}/Kernel %dir %{otobo_root}/Kernel/Autoload %{otobo_root}/Kernel/Autoload/Test.pm %{otobo_root}/Kernel/Autoload/Znuny4OTOBOPasswordPolicy.pm %config(noreplace) %attr(0640,wwwrun,www) %{otobo_root}/Kernel/Config.pm %{otobo_root}/Kernel/Config.pm.dist %{otobo_root}/Kernel/Config.pod.dist %dir %{otobo_root}/Kernel/Config %{otobo_root}/Kernel/Config/Defaults.pm %dir %{otobo_root}/Kernel/Config/Files %dir %{otobo_root}/Kernel/Config/Files/XML/ %{otobo_root}/Kernel/Config/Files/XML/*.xml %{otobo_root}/Kernel/GenericInterface %{otobo_root}/Kernel/cpan-lib %dir %{otobo_root}/Kernel/Language %config(noreplace) %{otobo_root}/Kernel/Language/*.pm %{otobo_root}/Kernel/Language.pm %{otobo_root}/Kernel/Modules/ %dir %{otobo_root}/Kernel/Output %dir %{otobo_root}/Kernel/Output/HTML %{otobo_root}/Kernel/Output/HTML/* %{otobo_root}/Kernel/Output/JavaScript %dir %{otobo_root}/Kernel/Output/PDF %{otobo_root}/Kernel/Output/PDF/* %dir %{otobo_root}/Kernel/Output/Template %{otobo_root}/Kernel/Output/Template/* %{otobo_root}/Kernel/System/ %files doc %defattr(644,root,root,755) %doc %{otobodocs} %files itsm %defattr(-,root,root,-) %doc COPYING* README.itsm* %{otobo_root}/itsm %config(noreplace) %attr(0664,wwwrun,www) %{otobo_root}/Kernel/Config/Files/ZZZAuto.pm %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