Hello community, here is the log from the commit of package otrs for openSUSE:Factory checked in at 2019-03-26 15:39:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/otrs (Old) and /work/SRC/openSUSE:Factory/.otrs.new.25356 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "otrs" Tue Mar 26 15:39:47 2019 rev:63 rq:682270 version:6.0.16 Changes: -------- --- /work/SRC/openSUSE:Factory/otrs/otrs.changes 2018-12-03 10:11:12.747663410 +0100 +++ /work/SRC/openSUSE:Factory/.otrs.new.25356/otrs.changes 2019-03-26 15:40:51.668290233 +0100 @@ -1,0 +2,55 @@ +Sat Feb 2 20:16:27 UTC 2019 - Jan Engelhardt <jeng...@inai.de> + +- Do not hide errors from useradd. +- Remove pointless groupadd/useradd in %build (this always fails, + and the error is always ignored). +- Replace %__-type macro indirections. Replace old $RPM_* + shell vars. +- Trim redundant metadata from description. +- Switch out strong PreReq by more lenient Requires(pre,post). + +------------------------------------------------------------------- +Thu Jan 31 22:13:49 UTC 2019 - ch...@computersalat.de + +- update rpmlintrc + * disable setBadness('permissions-unauthorized-file', 333) + +------------------------------------------------------------------- +Tue Jan 29 15:16:30 UTC 2019 - ch...@computersalat.de + +- Update to 6.0.16 + https://community.otrs.com/release-notes-otrs-faq-6-patch-level-16/ +- fix for boo#1122560 + * (CVE-n/a, OSA-2019-01) + Stored XSS + An attacker who is logged into OTRS as an agent or a customer user + may upload a carefully crafted resource in order to cause execution + of JavaScript in the context of OTRS. +- Update to 6.0.15 + https://community.otrs.com/release-notes-otrs-faq-6-patch-level-15/ +- fix typo in itsm.README +- fix permissions + * add missing trailing / +- rework rpmlintrc + * addFilter pem-certificate + * keep permissions-unauthorized-file for other DISTS than Factory + +------------------------------------------------------------------- +Sat Dec 1 20:27:14 UTC 2018 - ch...@computersalat.de + +- Update to 6.0.14 + https://community.otrs.com/release-notes-otrs-faq-6-patch-level-14/ +- fix Url +- update License: AGPL-3.0-only -> GPL-3.0-or-later +- improve itsm-update.sh +- rebase otrs-perm_test.patch +- update + * UPGRADING.SUSE + * ZZZAuto.pm + * otrs.README.de + * otrs.README.en +- remove SysVinit stuff and scripts + * otrs.init +- rework permissions handling vor @OTRS_ROOT@/var/tmp + +------------------------------------------------------------------- Old: ---- itsm-5.0.32.tar.bz2 otrs-5.0.32.tar.bz2 otrs.init New: ---- itsm-6.0.16.tar.bz2 otrs-6.0.16.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ otrs.spec ++++++ --- /var/tmp/diff_new_pack.qwnFYl/_old 2019-03-26 15:40:56.908288149 +0100 +++ /var/tmp/diff_new_pack.qwnFYl/_new 2019-03-26 15:40:56.912288148 +0100 @@ -1,7 +1,7 @@ # # spec file for package otrs # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,19 +23,19 @@ Name: otrs -%define otrs_ver 5.0.32 -%define itsm_ver 5.0.32 -%define itsm_min 5 +%define otrs_ver 6.0.16 +%define itsm_ver 6.0.16 +%define itsm_min 6 %define otrs_root /srv/%{name} %define otrsdoc_dir_files AUTHORS* CHANGES* COPYING* CREDITS README* UPGRADING.SUSE doc %define otrsdocs CHANGES* doc Summary: The Open Ticket Request System -License: AGPL-3.0-only +License: GPL-3.0-or-later Group: Productivity/Networking/Email/Utilities Version: %{otrs_ver} Release: 0 -Url: http://otrs.org/ +URL: https://community.otrs.com/ AutoReqProv: off Source: ftp://ftp.otrs.org/pub/otrs/%{name}-%{otrs_ver}.tar.bz2 Source1: itsm-%{itsm_ver}.tar.bz2 @@ -51,9 +51,6 @@ Source17: UPGRADING.SUSE Source20: %{name}.service Source21: %{name}.service.helper.sh -#Source22: %{name}-scheduler.service -Source23: %{name}.init -#Source24: %{name}-scheduler.init # Source99: itsm-update.sh # PATCH-FIX-OPENSUSE -- VARS for conf and fix for apache >= 2.4 @@ -62,20 +59,23 @@ Patch2: otrs-perm_test.patch BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build -PreReq: %insserv_prereq %fillup_prereq -PreReq: coreutils mktemp net-tools pwdutils -PreReq: grep sed -PreReq: apache2 +Requires(pre): coreutils Requires(pre): permissions +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: systemd %{?systemd_requires} %define has_systemd 1 %endif - +# Requires: apache2-mod_perl Requires: fetchmail Requires: mysql @@ -87,6 +87,7 @@ 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) @@ -134,14 +135,10 @@ %endif %description -OTRS is an Open source Ticket Request System with many features to manage -customer telephone calls and e-mails. It is distributed under the GNU -AFFERO General Public License (AGPL) and tested on Linux, Solaris, AIX, -Windows, FreeBSD, OpenBSD and Mac OS 10.x. Do you receive many e-mails and -want to answer them with a team of agents? You're going to love OTRS! +OTRS 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 @@ -154,7 +151,7 @@ Authors list: see CREDITS %package -n otrs-itsm -Summary: ITIL (R) focused IT service management +Summary: ITIL focused IT service management Group: Productivity/Networking/Email/Utilities Version: %{itsm_ver} Release: 0 @@ -163,7 +160,7 @@ Provides: itsm = %{itsm_ver} %description itsm -OTRS::ITSM implements ITIL (R) focused IT service management. +OTRS::ITSM implements ITIL focused IT service management. You need a OTRS %{otrs_ver} (http://otrs.org/) installation. @@ -181,75 +178,72 @@ %prep %setup -q -n %{name}-%{otrs_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 Kernel/cpan-lib/Mozilla/CA/cacert.pem ### UPGRADING.SUSE -%__rm -f CONTRIBUTING.md INSTALL.md UPGRADING.md -%__cp %{S:17} . +rm -f CONTRIBUTING.md INSTALL.md UPDATING.md +cp %{S:17} . # fix @OTRS_ROOT@ -%__sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" UPGRADING.SUSE +sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" UPGRADING.SUSE ### ZZZAuto.pm for OTRS::ITSM pushd Kernel/Config/Files -%__cp %{S:16} . +cp %{S:16} . # fix @OTRS_ROOT@ -%__sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" ZZZAuto.pm +sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" ZZZAuto.pm popd # remove not needed files from scripts -%__rm -rf \ +rm -rf \ scripts/*.spec \ - scripts/auto_build* \ + scripts/auto_build \ scripts/redhat-* \ scripts/suse-*rc*otrs* # scripts/test [Kernel::System::Package::_FileInstall] # fix old otrs_root (/opt) -%__sed -i -e "s,/opt/%{name},%{otrs_root},g" \ +sed -i -e "s,/opt/%{name},%{otrs_root},g" \ bin/Cron.sh \ i18n/otrs/otrs.*.po \ Kernel/Config/Defaults.pm \ - Kernel/Config/Files/Daemon.xml \ - Kernel/Config/Files/Framework.xml \ + 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 +perl -p -i -e "s|\r\n|\n|" itsm-%{itsm_ver}/INSTALL-%{itsm_min}.ITSM %build -%{_sbindir}/groupadd -g 88 -r %{name} 2>/dev/null || : -%{_sbindir}/useradd -c "OTRS User" -d %{otrs_root} -G %{name},www -g %{name} \ - -u 88 -r -s /bin/false %{name} 2>/dev/null || : - # copy config file -%__cp -a Kernel/Config.pm.dist Kernel/Config.pm +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) +mv $file var/cron/$(basename $file .dist) done %install export DESTROOT="%{otrs_root}/" -%__install -d %{buildroot}${DESTROOT} -%__install -d %{buildroot}%{_sbindir} +install -d %{buildroot}/${DESTROOT} +install -d %{buildroot}/%{_sbindir} # install OTRS base system -%__cp -a . %{buildroot}/${DESTROOT} +cp -a . %{buildroot}/${DESTROOT} for configFile in .fetchmailrc .mailfilter .procmailrc; do touch %{buildroot}/${DESTROOT}/${configFile} @@ -258,61 +252,49 @@ # install README for lang in en de; do - %__cp -p "${RPM_SOURCE_DIR}/%{name}.README.${lang}" "README.%{VENDOR}.${lang}" - %__cp -p "${RPM_SOURCE_DIR}/itsm.README.${lang}" "README.itsm.%{VENDOR}.${lang}" + cp -p "%{_sourcedir}/%{name}.README.${lang}" "README.%{VENDOR}.${lang}" + cp -p "%{_sourcedir}/itsm.README.${lang}" "README.itsm.%{VENDOR}.${lang}" done # fix @OTRS_ROOT@ in README.* for r in $(ls -1 README.*); do - %__sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" $r + sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" $r done # remove files that are part of the docdir pushd %{buildroot}/${DESTROOT} -%__rm -rf %{otrsdoc_dir_files} -%__install -d doc +rm -rf %{otrsdoc_dir_files} +install -d doc popd -%if 0%{?suse_version} < 1140 -# install permissions file -%__install -D -m 0644 %{S:3} %{buildroot}/etc/permissions.d/%{name} +# permissions +install -D -m 0644 %{S:3} %{buildroot}/etc/permissions.d/%{name} # fix @OTRS_ROOT@ -%__sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" %{buildroot}/etc/permissions.d/%{name} -%endif +sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" %{buildroot}/etc/permissions.d/%{name} -%__install -D -m 0644 %{S:11} %{buildroot}%{_fillupdir}/sysconfig.%{name} +# sysconfig +install -D -m 0644 %{S:11} %{buildroot}%{_fillupdir}/sysconfig.%{name} # fix @OTRS_ROOT@ -%__sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" %{buildroot}%{_fillupdir}/sysconfig.%{name} +sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" %{buildroot}%{_fillupdir}/sysconfig.%{name} -# systemd vs SysVinit -%if 0%{?has_systemd} -%__install -D -m 0644 %{S:20} %{buildroot}%{_unitdir}/%{name}.service -%__ln_s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name} -%__install -D -m 0755 %{S:21} %{buildroot}%{_bindir}/%{name}.service.helper.sh -#%__install -D -m 0644 %{S:22} %{buildroot}%{_unitdir}/%{name}-scheduler.service -#%__ln_s -f %{_sbindir}/service %{buildroot}/%{_sbindir}/rc%{name}-scheduler +# 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 @OTRS_ROOT@ -%__sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" "%{buildroot}%{_unitdir}/%{name}.service" -%__sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" "%{buildroot}%{_bindir}/%{name}.service.helper.sh" -#%__sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" "%{buildroot}%{_unitdir}/%{name}-scheduler.service" -%else #SysVinit -# install sysconfig file and init script -%__install -D -m 0755 %{S:23} %{buildroot}/etc/init.d/%{name} -%__ln_s -f ../../etc/init.d/%{name} %{buildroot}%{_sbindir}/rc%{name} -#%__install -D -m 0755 %{S:24} %{buildroot}/etc/init.d/%{name}-scheduler -#%__ln_s -f ../../etc/init.d/%{name}-scheduler %{buildroot}%{_sbindir}/rc%{name}-scheduler -%endif +sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" "%{buildroot}/%{_unitdir}/%{name}.service" +sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" "%{buildroot}/%{_bindir}/%{name}.service.helper.sh" otrs_apache_conf="scripts/apache2-httpd.include.conf" -%__install -D -m 0644 ${otrs_apache_conf} %{buildroot}/etc/apache2/conf.d/%{name}.conf -%__rm -f %{buildroot}%{otrs_root}/scripts/apache*.conf +install -D -m 0644 ${otrs_apache_conf} %{buildroot}/etc/apache2/conf.d/%{name}.conf +rm -f %{buildroot}/%{otrs_root}/scripts/apache*.conf # fix @OTRS_ROOT@ -%__sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" %{buildroot}/etc/apache2/conf.d/%{name}.conf +sed -i -e "s,@OTRS_ROOT@,%{otrs_root},g" %{buildroot}/etc/apache2/conf.d/%{name}.conf # OTRS::ITSM # rename itsm-%{itsm_ver} to itsm pushd %{buildroot}/${DESTROOT} -%__mv itsm-%{itsm_ver} itsm +mv itsm-%{itsm_ver} itsm popd %if 0%{?suse_version} > 1020 @@ -323,60 +305,38 @@ %if 0%{?suse_version} %verifyscript -%verify_permissions -e %{otrs_root}/var/tmp +%verify_permissions -e %{otrs_root}/var/tmp/ %endif %pre # on `rpm -ivh` PARAM is 1 # on `rpm -Uvh` PARAM is 2 if [ -z "`%{_bindir}/getent group %{name} 2>/dev/null`" ]; then - %{_sbindir}/groupadd -g 88 -r %{name} 2>/dev/null + %{_sbindir}/groupadd -g 88 -r %{name} else if [ `%{_bindir}/id -g %{name}` != 88 ]; then - %{_sbindir}/groupmod -g 88 %{name} 2>/dev/null + %{_sbindir}/groupmod -g 88 %{name} fi fi if [ -z "`%{_bindir}/getent passwd %{name} 2>/dev/null`" ]; then - %{_sbindir}/useradd -c "OTRS User" -d %{otrs_root} -G %{name},www -g %{name} -u 88 -r -s /bin/false %{name} 2>/dev/null + %{_sbindir}/useradd -c "OTRS User" -d %{otrs_root} -G %{name},www -g %{name} -u 88 -r -s /bin/false %{name} else if [ `%{_bindir}/id -u %{name}` != 88 ]; then - %{_sbindir}/usermod -c "OTRS User" -d %{otrs_root} -G %{name},www -g %{name} -u 88 %{name} 2>/dev/null + %{_sbindir}/usermod -c "OTRS User" -d %{otrs_root} -G %{name},www -g %{name} -u 88 %{name} fi fi # add wwwrun to otrs group %{_sbindir}/usermod -G %{name} wwwrun -%if 0%{?has_systemd} %service_add_pre %{name}.service -#%service_add_pre %{name}-scheduler.service -%endif %preun -%if 0%{?has_systemd} -#%service_del_preun %{name}-scheduler.service %service_del_preun %{name}.service -%else -#%stop_on_removal otrs-scheduler -%stop_on_removal otrs -%endif %post -%if 0%{?has_systemd} %{fillup_only -n otrs} %service_add_post %{name}.service -#%service_add_post %{name}-scheduler.service -%else -# fill otrs sysconfig file -#%{fillup_and_insserv -f otrs-scheduler} -%{fillup_and_insserv otrs} -%endif # set permissions -%if 0%{?suse_version} >= 1140 - %if 0%{?set_permissions:1} -%set_permissions %{otrs_root}/var/tmp - %else -%run_permissions - %endif -%endif +%set_permissions %{otrs_root}/var/tmp/ # %if 0%{?suse_version} /usr/sbin/a2enmod perl >/dev/null @@ -386,12 +346,12 @@ if [ ${FIRST_ARG:-0} -gt 1 ]; then # OTRS_ROOT changed from /opt to /srv if [ -f /opt/%{name}/Kernel/Config.pm.rpmsave ]; then - %__mv /opt/%{name}/Kernel/Config.pm.rpmsave %{otrs_root}/Kernel/ + mv /opt/%{name}/Kernel/Config.pm.rpmsave %{otrs_root}/Kernel/ fi %{_sbindir}/usermod -d %{otrs_root} %{name} #update sysconfig if [ -f /etc/sysconfig/%{name} ]; then - %__sed -i -e "s,/opt/%{name},%{otrs_root},g" /etc/sysconfig/%{name} + sed -i -e "s,/opt/%{name},%{otrs_root},g" /etc/sysconfig/%{name} fi fi # if rpm is not in update mode @@ -423,15 +383,7 @@ exit 0 %postun -%if 0%{?has_systemd} -#%service_del_postun %{name}-scheduler.service %service_del_postun %{name}.service -%else -#%restart_on_update otrs-scheduler -%restart_on_update otrs -%restart_on_update apache2 -%insserv_cleanup -%endif %files %defattr(-,root,root,-) @@ -442,22 +394,13 @@ %dir %{_sysconfdir}/apache2 %dir %{_sysconfdir}/apache2/conf.d %config(noreplace) %{_sysconfdir}/apache2/conf.d/%{name}.conf -# -%if 0%{?suse_version} < 1140 +# permissions %config %{_sysconfdir}/permissions.d/%{name} -%endif -# systemd vs SysVinit +# systemd %{_fillupdir}/sysconfig.%{name} -%if 0%{?has_systemd} %{_unitdir}/%{name}.service %{_bindir}/%{name}.service.helper.sh -#%{_unitdir}/%{name}-scheduler.service -%else -%{_sysconfdir}/init.d/%{name} -#%{_sysconfdir}/init.d/%{name}-scheduler -%endif %{_sbindir}/rc%{name} -#%{_sbindir}/rc%{name}-scheduler # Custom %dir %{otrs_root}/Custom @@ -470,9 +413,10 @@ # scripts/* %{otrs_root}/scripts/contrib %{otrs_root}/scripts/database +%{otrs_root}/scripts/DBUpdateTo6 %{otrs_root}/scripts/tools %{otrs_root}/scripts/*.pl -%{otrs_root}/scripts/*.sql +%{otrs_root}/scripts/*.pm # var/cron %dir %{otrs_root}/var/cron @@ -559,23 +503,23 @@ %{otrs_root}/var/stats/* # var/tmp -%if 0%{?suse_version} < 1140 %dir %{otrs_root}/var/tmp -%else %verify(not user group mode) %attr(2770,wwwrun,www) %dir %{otrs_root}/var/tmp -%endif %defattr(0664,wwwrun,www,0775) # Kernel DIR %dir %{otrs_root}/Kernel +%dir %{otrs_root}/Kernel/Autoload +%{otrs_root}/Kernel/Autoload/Test.pm %config(noreplace) %attr(0640,wwwrun,www) %{otrs_root}/Kernel/Config.pm %{otrs_root}/Kernel/Config.pm.dist %{otrs_root}/Kernel/Config.pod.dist %dir %{otrs_root}/Kernel/Config %{otrs_root}/Kernel/Config/Defaults.pm %dir %{otrs_root}/Kernel/Config/Files -%{otrs_root}/Kernel/Config/Files/*.xml +%dir %{otrs_root}/Kernel/Config/Files/XML/ +%{otrs_root}/Kernel/Config/Files/XML/*.xml %{otrs_root}/Kernel/GenericInterface %{otrs_root}/Kernel/cpan-lib %dir %{otrs_root}/Kernel/Language @@ -585,6 +529,7 @@ %dir %{otrs_root}/Kernel/Output %dir %{otrs_root}/Kernel/Output/HTML %{otrs_root}/Kernel/Output/HTML/* +%{otrs_root}/Kernel/Output/JavaScript %dir %{otrs_root}/Kernel/Output/PDF %{otrs_root}/Kernel/Output/PDF/* %dir %{otrs_root}/Kernel/Output/Template ++++++ UPGRADING.SUSE ++++++ --- /var/tmp/diff_new_pack.qwnFYl/_old 2019-03-26 15:40:56.952288131 +0100 +++ /var/tmp/diff_new_pack.qwnFYl/_new 2019-03-26 15:40:56.952288131 +0100 @@ -1,20 +1,27 @@ -Upgrading OTRS from 4 to 5 -=========================== +Upgrading OTRS from 5 to 6 +========================== -These instructions are for people upgrading OTRS from 4 to 5 or from a 5 -to a later patchlevel release 5 and applies both for RPM and source code (tarball) upgrades. - -If you are running a lower version of OTRS you have to follow the upgrade path to 4 first -(1.1->1.2->1.3->2.0->2.1->2.2->2.3->2.4->3.0->3.1->3.2->3.3->4)! You need to perform a full -upgrade to every version in between, including database changes and the upgrading Perl script. +Warning +------- +You cannot update from OTRS 4 or earlier directly to OTRS 6. Full updates to all +available minor versions have to be made sequentially instead. For example, if +you come from OTRS 3.0, you first have to perform a full update to OTRS 3.1, +then to 3.2, 3.3, 4, 5 and finally to OTRS 6. + +These instructions are for people upgrading OTRS from 5 to 6 or from a 6 +to a later patchlevel release 6 and applies both for RPM and source code (tarball) upgrades. + +If you are running a lower version of OTRS you have to follow the upgrade path to 5 first +(1.1->1.2->1.3->2.0->2.1->2.2->2.3->2.4->3.0->3.1->3.2->3.3->4->5)! You need to perform a full +upgrade to every version in between, including database changes and the upgrading Perl script. Please note that if you upgrade from OTRS 2.2 or earlier, you have to take an extra step. Within a single minor version you can skip patch level releases if you want to upgrade. -For instance you can upgrade directly from OTRS 5 patchlevel 2 to version 5 patchlevel 6. -If you need to do such a "patch level upgrade", you should skip steps 6, 11, 13 and 14. +For instance you can upgrade directly from OTRS 6 patchlevel 2 to version 6 patchlevel 14. -It is highly recommended to perform a test update on a separate testing machine first. +It is highly recommended to perform a test update on a separate testing machine first. +It is highly recommended to have a backup of your database first. 1. Stop all relevant services @@ -23,14 +30,13 @@ e. g. (depends on used services): shell> rcotrs stop - shell> rcotrs-scheduler stop + shell> rcpostfix stop shell> rcapache2 stop 2. Backup everything below @OTRS_ROOT@ (default: OTRS_ROOT=@OTRS_ROOT@) --------------------------------------------------------------------- - Kernel/Config.pm -- Kernel/Config/GenericAgent.pm - Kernel/Config/Files/ZZZAuto.pm - var/* - as well as the database @@ -43,12 +49,13 @@ 4. Install the new release (RPM) -------------------------------- - shell> rpm -Uvh otrs-4.0.*noarch.rpm + shell> zypper -n up otrs +if are also using ITSM, then also + shell> zypper -n up otrs-itsm The RPM-update will keep the old configuration files. - Kernel/Config.pm -- Kernel/Config/GenericAgent.pm - Kernel/Config/Files/ZZZAuto.pm (will be overwritten by itsm) You must use the new files *.rpmnew @@ -72,37 +79,21 @@ shell> cd @OTRS_ROOT@ + Note: + If you have any custom Perl or XML configuration files in + Kernel/Config/Files, these need to be converted to the new formats supported + by OTRS 6 before running the migration script. -### SCHEMA UPDATE - -MySQL: - - Note: new tables created in the MySQL UPGRADING process will be created with the - default table storage engine set in your MySQL server. - In MySQL 5.5 the new default type is InnoDB. - If existing tables, e.g. "users", have the table storage engine e.g. MyISAM, - then an error will be displayed when creating the foreign key constraints. - - You have two options: you can change the default storage engine of MySQL back to MyISAM - so that new tables will have the same engine as the existing tables, - or change the existing tables to use InnoDB as storage engine. - - Any problems with regards to the storage engine will be reported by the - `otrs.CheckDB.pl` script, so please run it to check for possible issues. - - shell> bin/otrs.CheckDB.pl - shell> cat scripts/DBUpdate-to-4.mysql.sql | mysql -p -f -u root otrs + You should convert the config files to the new XML format. -PostgreSQL 8.2+: - - shell> cat scripts/DBUpdate-to-4.postgresql.sql | psql --set ON_ERROR_STOP=on --single-transaction otrs otrs + shell> bin/otrs.Console.pl Dev::Tools::Migrate::ConfigXMLStructure --source-directory Kernel/Config/Files ### DATABASE MIGRATION SCRIPT Run the migration script (as user `otrs`, NOT as `root`): - shell> scripts/DBUpdate-to-5.pl + shell> scripts/DBUpdate-to-6.pl Do not continue the upgrading process if this script did not work properly for you. Otherwise data loss may occur. @@ -118,170 +109,22 @@ shell> bin/otrs.Console.pl Maint::Cache::Delete -8. Restart your services -------------------------- - -e. g. (depends on used services): - - shell> rcapache start - shell> rcotrs start - shell> rcotrs-scheduler start - -Now you can log into your system. - - -9. Check installed packages ----------------------------- - -Note: The OTRS packages of 4 are NOT compatible with OTRS 5, so you have to perform a package upgrade! - -The following packages are automatically uninstalled after the upgrade process (if they where -installed before): - -- OTRSGenericInterfaceMappingXSLT - - -10. Configure NodeIDs (only for multi-frontend clustered setups) ------------------------------------------------------------------ - -Note: This step is only needed if you have a clustered setup with several frontend machines. - -From OTRS 5 on, every frontend server needs to have its own unique NodeID. -This defaults to 1 and thus does not need to be configured for single-frontend -setups. If you have more than one machine, each machine needs to have this -value set to a unique value between 1 and 999. This configuration needs to be -done in the file Kernel/Config.pm: - -$Self->{'NodeID'} = '2'; # assign a unique value for every frontend server - - -11. Update and activate cronjobs ---------------------------------- - -There are two default OTRS cron files in /opt/otrs/var/cron/*.dist, and their -purpose is to make sure that the OTRS Daemon is running. They need to be -activated by copying them without the ".dist" filename extension. - - shell> cd /opt/otrs/var/cron - shell> for foo in *.dist; do cp $foo `basename $foo .dist`; done - - -To schedule these cron jobs on your system, you can use the script Cron.sh with the otrs user. - - shell> /opt/otrs/bin/Cron.sh start - - -Please note that if you had any custom cron jobs, you should consider moving -them to SysConfig (Daemon -> Daemon::SchedulerCronTaskManager::Task) to have -them executed by the OTRS daemon as well. You might also need to adapt your -custom scripts, because now most OTRS commands are managed by -bin/otrs.Console.pl instead of single scripts. - -Note: The console command Dev::Code::Generate::ConsoleCommand can help to -create new console commands for your custom scripts. This command creates a -template where the script logic and its parameters can be adapted. - - -12: Review your ticket notifications -------------------------------------- - -With OTRS 5 ticket notifications are configured differently than in previous -versions. They are now part of the "Event Notifications" that were previously -available as well (now called just "Ticket Notifications"). Your existing -ticket notifications have been migrated into the list of ticket notifications, -but deactivated. You have also received the new default ticket notifications, -active by default. - -In case you did not modify the old ticket notifications you don't have to do -anything. If you have made local modifications or translations, you have two -choices: a) you can migrate your modifications to the new ticket notifications -(recommended) or b) you can deactivate the new notifications and activate the -old notifications again. - -Please also review the escalation notification recipient settings and see if -they match with your expectations (agents who have the ticket in one of their -custom queues vs. all agents with read permissions). This was configured via a -setting in the file Kernel/Config/GenericAgent.pm (now obsolete) previously and -can now be controlled via the GUI for each notification separately. +8 Update installed packages +--------------------------- +Please run (as user `otrs`, NOT as `root`): -13: Update system registration (optional) ------------------------------------------- + shell> bin/otrs.Console.pl Admin::Package::UpgradeAll -If the system is already registered with OTRS Group, it is strongly recommended -to update the registration information at this time. This will update the -registered version of the system (among other changes) in the OTRS Group -records, in order to get much accurate information from the cloud services. -If you don't update the registration information manually, it will be done -automatically on a regular basis, but this could happen some hours or days -after. During this period it might be possible to get wrong information from -cloud services like OTRS Business Solution™ updates. +9. Restart your services +------------------------ - shell> cd /opt/otrs/ - shell> bin/otrs.Console.pl Maint::Registration::UpdateSend --force - shell> bin/otrs.Console.pl Maint::Cache::Delete - - -14: Migrate custom Perl based GenericAgent jobs (optional) ------------------------------------------------------------ +e. g. (depends on used services): -This is only relevant if you had any custom GenericAgent jobs in Perl OTRS 4 -configuration files such as Kernel/Config/GenericAgent.pm that cannot be handled -with the regular ticket notifications. Such jobs now need to be registered as -OTRS Daemon cron tasks in the SysConfig - (Daemon -> Daemon::SchedulerCronTaskManager::Task), -in order to be executed on a regular basis. - -There are 5 settings in the SysConfig prepared for this purpose - (Daemon::SchedulerCronTaskManager::Task###GenericAgentFile1 to - Daemon::SchedulerCronTaskManager::Task###GenericAgentFile5). -If more settings are needed they can be added in a custom SysConfig setting file. - -Please replace "<ModuleName>" with the file that contains the custom -GenericAgent jobs configuration, e.g. Kernel::Config::GenericAgent for the file: -Kernel/Config/GenericAgent.pm, set the schedule to match the periodicity as it -was executed before, mark the setting as active and save the changes. -Note - -To get more information about other parameters that can be used while running -the GenericAgent jobs, please execute: - - shell> bin/otrs.Console.pl Maint::GenericAgent::Run --help - - -15: Setup bash autocompletion (optional) ------------------------------------------ - -All regular OTRS command line operations now happen via the OTRS Console -interface bin/otrs.Console.pl. This provides an auto completion for the bash -shell which makes finding the right command and options much easier. - -You can activate the bash autocompletion by installing the package bash-completion. -It will automatically detect and load the file /opt/otrs/.bash_completion for the otrs user. - -After restarting your shell, you can just type bin/otrs.Console.pl followed by TAB, -and it will list all available commands. If you type a few characters of the -command name, TAB will show all matching commands. After typing a complete command, -all possible options and arguments will be shown by pressing TAB. -Step 18: Review ticket action screen configurations (optional) - -Some ticket action screens like "Note" had default subjects in OTRS 4 -(configurable via SysConfig, Ticket::Frontend::AgentTicketNote###Subject in this case). -These default subjects have been removed to reduce the amount of potentially -redundant/meaningless data. You might want to re-add them if they are mandatory for you. - - -16: Review Ticket Event Module Configurations ----------------------------------------------- - -Because of a bugfix in OTRS 5s, configuration names for a few ticket event modules had -to be changed. Any possible customizations need to be re-applied. Please review your -settings in SysConfig -> Ticket -> Core::Ticket and check all settings that start with -Ticket::EventModulePost to see if your custiomizations have to be re-applied. This could -be the case if you had activated and configured the event handler to save customer data -in ticket dynamic fields, for example. + shell> rcapache2 start + shell> rcpostfix start + shell> rcotrs start +Now you can log into your system. -17: Well done! --------------- ++++++ ZZZAuto.pm ++++++ --- /var/tmp/diff_new_pack.qwnFYl/_old 2019-03-26 15:40:56.964288127 +0100 +++ /var/tmp/diff_new_pack.qwnFYl/_new 2019-03-26 15:40:56.964288127 +0100 @@ -9,10 +9,10 @@ $Self->{'DefaultLanguage'} = 'de'; $Self->{'LogModule'} = 'Kernel::System::Log::File'; $Self->{'Package::RepositoryList'} = { - 'file://@OTRS_ROOT@/itsm/packages4/' => '[--OTRS::ITSM 4 local repo]', - 'http://ftp.otrs.org/pub/otrs/itsm/packages4/' => '[--OTRS::ITSM 4 Master--] http://ftp.otrs.org/', 'file://@OTRS_ROOT@/itsm/packages5/' => '[--OTRS::ITSM 5 local repo]', - 'http://ftp.otrs.org/pub/otrs/itsm/packages5/' => '[--OTRS::ITSM 5 Master--] http://ftp.otrs.org/' + 'http://ftp.otrs.org/pub/otrs/itsm/packages5/' => '[--OTRS::ITSM 5 Master--] http://ftp.otrs.org/', + 'file://@OTRS_ROOT@/itsm/packages6/' => '[--OTRS::ITSM 6 local repo]', + 'http://ftp.otrs.org/pub/otrs/itsm/packages6/' => '[--OTRS::ITSM 6 Master--] http://ftp.otrs.org/' }; $Self->{'Package::RepositoryAccessRegExp'} = '127\\.0\\.0\\.1'; } ++++++ itsm-5.0.32.tar.bz2 -> itsm-6.0.16.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/otrs/itsm-5.0.32.tar.bz2 /work/SRC/openSUSE:Factory/.otrs.new.25356/itsm-6.0.16.tar.bz2 differ: char 11, line 1 ++++++ itsm-update.sh ++++++ --- /var/tmp/diff_new_pack.qwnFYl/_old 2019-03-26 15:40:56.988288117 +0100 +++ /var/tmp/diff_new_pack.qwnFYl/_new 2019-03-26 15:40:56.988288117 +0100 @@ -21,7 +21,7 @@ elif [[ ${MAJOR} -ge 6 ]]; then PMINOR=$((${MAJOR} - 1)) PMINOR_PKG=${PMINOR} - PREJECT="*((${PMINOR}-1)).0.9?.opm,*((${MAJOR}-1)).0.?.opm,*((${MAJOR}-1)).0.1?.opm,*((${MAJOR}-1)).0.9?.opm" + PREJECT="*$((PMINOR - 1)).0.9?.opm,*$((MAJOR - 1)).0.?.opm,*$((MAJOR - 1)).0.1?.opm,*$((MAJOR - 1)).0.2?.opm" REJECT="*${PMINOR}.0.9?.opm,*${MAJOR}.0.9?.opm" fi ++++++ otrs-5.0.32.tar.bz2 -> otrs-6.0.16.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/otrs/otrs-5.0.32.tar.bz2 /work/SRC/openSUSE:Factory/.otrs.new.25356/otrs-6.0.16.tar.bz2 differ: char 11, line 1 ++++++ otrs-perm_test.patch ++++++ --- /var/tmp/diff_new_pack.qwnFYl/_old 2019-03-26 15:40:57.040288097 +0100 +++ /var/tmp/diff_new_pack.qwnFYl/_new 2019-03-26 15:40:57.040288097 +0100 @@ -2,12 +2,11 @@ =================================================================== --- Kernel/System/Package.pm.orig +++ Kernel/System/Package.pm -@@ -3738,7 +3738,7 @@ sub _FileSystemCheck { +@@ -4319,7 +4319,6 @@ sub _FileSystemCheck { + } - # create test files in following directories - for my $Filepath ( -- qw(/bin/ /Kernel/ /Kernel/System/ /Kernel/Output/ /Kernel/Output/HTML/ /Kernel/Modules/) -+ qw(/Kernel/ /Kernel/System/ /Kernel/Output/ /Kernel/Output/HTML/ /Kernel/Modules/) - ) - { - my $Location = $Home . $Filepath . "check_permissions.$$"; + my @Filepaths = ( +- '/bin/', + '/Kernel/', + '/Kernel/System/', + '/Kernel/Output/', ++++++ otrs.README.de ++++++ --- /var/tmp/diff_new_pack.qwnFYl/_old 2019-03-26 15:40:57.052288092 +0100 +++ /var/tmp/diff_new_pack.qwnFYl/_new 2019-03-26 15:40:57.052288092 +0100 @@ -3,7 +3,7 @@ hier eine Schnellübersicht, wie Sie das OTRS auf Ihrem SUSE Linux zum Laufen bringen. -Prüfen Sie bitte den "max_allow_packets" Wert in Ihrer MySQL config (my.cnf). +Prüfen Sie bitte den "max_allowed_packet" Wert in Ihrer MySQL config (my.cnf). Dieser sollte auf jeden Fall > 1MB sein. Ich empfehle einen Wert von 20MB. @@ -25,13 +25,11 @@ SLE11: shell> insserv apache2 shell> insserv mysql - shell> insserv otrs-scheduler shell> insserv otrs SLE12 und openSUSE: shell> systemctl enable apache2 shell> systemctl enable mysql - shell> systemctl enable otrs-scheduler shell> systemctl enable otrs ++++++ otrs.README.en ++++++ --- /var/tmp/diff_new_pack.qwnFYl/_old 2019-03-26 15:40:57.072288084 +0100 +++ /var/tmp/diff_new_pack.qwnFYl/_new 2019-03-26 15:40:57.072288084 +0100 @@ -3,7 +3,7 @@ here is a quick overview, what you have to do, to get the OTRS running on SUSE Linux. -Please check settings of "max_allow_packets" in your MySQL config (my.cnf). +Please check settings of "max_allowed_packet" in your MySQL config (my.cnf). The value should be > 1MB in any case. I recommend a value of 20MB. @@ -24,13 +24,11 @@ SLE11: shell> insserv apache2 shell> insserv mysql - shell> insserv otrs-scheduler shell> insserv otrs SLE12 and openSUSE: shell> systemctl enable apache2 shell> systemctl enable mysql - shell> systemctl enable otrs-scheduler shell> systemctl enable otrs ++++++ otrs.permissions ++++++ --- /var/tmp/diff_new_pack.qwnFYl/_old 2019-03-26 15:40:57.092288076 +0100 +++ /var/tmp/diff_new_pack.qwnFYl/_new 2019-03-26 15:40:57.096288074 +0100 @@ -1,4 +1,2 @@ ### DBUpdate-to-y.pl is going to write there -#@OTRS_ROOT@/Kernel/Config/Files wwwrun:www 2775 -#@OTRS_ROOT@/var/log otrs:www 2775 @OTRS_ROOT@/var/tmp/ wwwrun:www 2770 ++++++ otrs.rpmlintrc ++++++ --- /var/tmp/diff_new_pack.qwnFYl/_old 2019-03-26 15:40:57.116288066 +0100 +++ /var/tmp/diff_new_pack.qwnFYl/_new 2019-03-26 15:40:57.116288066 +0100 @@ -13,3 +13,7 @@ addFilter('non-etc-or-var-file-marked-as-conffile') addFilter('non-executable-script') addFilter('zero-length') +addFilter('pem-certificate /srv/otrs/Kernel/cpan-lib/Mozilla/CA/cacert.pem') +addFilter('pem-certificate /srv/otrs/scripts/test/sample/SSL/certificate.pem') +addFilter('pem-certificate /srv/otrs/scripts/test/sample/SSL/ca-certificate.pem') +#setBadness('permissions-unauthorized-file', 333)