diff --git a/.gitignore b/.gitignore index 968d967..e594810 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.rpm *.log -*spec-20* \ No newline at end of file +*spec-20* +*.tar.xz diff --git a/LICENSE b/LICENSE index 137069b..d159169 100644 --- a/LICENSE +++ b/LICENSE @@ -1,73 +1,339 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. -1. Definitions. + Preamble -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + The precise terms and conditions for copying, distribution and +modification follow. -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. - (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: - (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. - (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. - (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) - You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, -END OF TERMS AND CONDITIONS + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) -APPENDIX: How to apply the Apache License to your work. +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. -To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. -Copyright [yyyy] [name of copyright owner] + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. -http://www.apache.org/licenses/LICENSE-2.0 + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/README.md b/README.md index 22ba4cc..ede6af3 100644 --- a/README.md +++ b/README.md @@ -11,4 +11,4 @@ Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?compo ## Description SME 11 new updater - +This package replace the former smeserver-yum package which was based on yum. With SME11 based on el8, yum has been replaced by dnf. This brings some breaking change with plugins, and some new features like modularity. diff --git a/change-this-to-the-package-name.spec b/change-this-to-the-package-name.spec deleted file mode 100644 index ea46b19..0000000 --- a/change-this-to-the-package-name.spec +++ /dev/null @@ -1,55 +0,0 @@ -%define name smeserver-update -%define version 1.0 -%define release 1 -Summary: This is what smeserver-update does. -Name: %{name} -Version: %{version} -Release: %{release}%{?dist} -Source: %{name}-%{version}.tar.gz -License: GNU GPL version 2 -Group: SMEserver/addon -BuildRoot: %{_tmppath}/%{name}-buildroot -Prefix: %{_prefix} -BuildArchitectures: noarch -BuildRequires: e-smith-devtools -Requires: e-smith-release >= 10.0 -AutoReqProv: no - -%description -SME 11 new updater - -%changelog -* Day MMMM DD YYYY 1.0-1.sme -- Initial code - create RPM [SME:99999] - -%prep - -%setup -q - -%build -perl createlinks - -%install -rm -rf $RPM_BUILD_ROOT -(cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT) -rm -f %{name}-%{version}-filelist -/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ -> %{name}-%{version}-filelist -#echo "%doc COPYING" >> %{name}-%{version}-filelist -#--dir 'attr(755,user,grp)' \ -#--file 'attr(755,root,root)' \ - -%clean -cd .. -rm -rf %{name}-%{version} - -%pre - -%preun - -%post - -%postun -#uninstall -%files -f %{name}-%{version}-filelist -%defattr(-,root,root) diff --git a/createlinks b/createlinks old mode 100644 new mode 100755 index e02e061..0a95d5d --- a/createlinks +++ b/createlinks @@ -1,43 +1,37 @@ #!/usr/bin/perl -w use esmith::Build::CreateLinks qw(:all); -use esmith::Build::Backup qw(:all); +use File::Basename; +use File::Path; -# our event specific for updating with yum without reboot -$event = 'smeserver-update-update'; -#add here the path to your templates needed to expand -#see the /etc/systemd/system-preset/49-koozali.preset should be present for systemd integration on all you yum update event - -# Maybe need ths in here as well: -# /etc/dar/DailyBackup.dcf - if backup requested - -foreach my $file (qw( - /etc/systemd/system-preset/49-koozali.preset -)) +foreach my $file (qw(/etc/dnf/dnf.conf /etc/dnf/protected.d/smeserver.conf + /etc/yum.smerepos.d/sme-base.repo /etc/dnf/automatic.conf)) { - templates2events( $file, $event ); -}; -#action needed in case we have a systemd unit -event_link('systemd-default', $event, '10'); -event_link('systemd-reload', $event, '50'); + templates2events($file, qw(dnf-modify bootstrap-console-save smeserver-update-update)); +} -#services we might need to restart -#event_services($event, 'xxxx' => 'restart', 'yyyy' => 'restart'); - -#Backup contrib files -# backup_includes("smeserver-update", qw( - # files(s) to be backed up -#)); - -#Other possible entries: -#Server manager entry -#panel_link("smeserver-update", 'manager'); -#Events to smeserver-update -#$event = 'smeserver-update-smeserver-update'; -# safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/smeserver-update"); -# templates2events("/etc/smeserver-update/smeserver-update.conf", $event); +templates2events("/etc/crontab", "dnf-modify"); +for ( qw(install remove update) ) +{ + event_link("dnf-action", "dnf-$_", "20"); +} +safe_symlink("restart", "root/etc/e-smith/events/dnf-modify/services2adjust/yum"); +for ( qw(bootstrap-console-save dnf-update smeserver-update-update) ) +{ + event_link("rpm-import-keys", $_, "10"); +} +my $event= "smeserver-update-update"; +# systemd-specific action mandatory for this package-update event +event_link("systemd-reload", $event, "89"); +event_link("systemd-default", $event, "88"); +templates2events("/etc/rsyslog.conf",$event); +safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/rsyslog"); +#-------------------------------------------------- +# functions for manager panel +#-------------------------------------------------- +panel_link("dnf", "manager"); diff --git a/root/etc/cron.daily/smeserver-update b/root/etc/cron.daily/smeserver-update new file mode 100644 index 0000000..648c86f --- /dev/null +++ b/root/etc/cron.daily/smeserver-update @@ -0,0 +1,27 @@ +#!/bin/sh +#---------------------------------------------------------------------- +# smeserver-update daily tasks +# Copyright (C) 2024 Koozali Foundation, Inc. +# Copyright (C) 2005 Gordon Rowell +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License or more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#---------------------------------------------------------------------- + +dnf_status=$(/sbin/e-smith/db configuration getprop dnf status|| echo "disabled") + +[ $dnf_status = 'enabled' ] || exit 0 + +/usr/bin/systemctl restart dnf.service + diff --git a/root/etc/dnf/plugins/smeserver.conf b/root/etc/dnf/plugins/smeserver.conf new file mode 100644 index 0000000..37d52e2 --- /dev/null +++ b/root/etc/dnf/plugins/smeserver.conf @@ -0,0 +1,3 @@ +[main] +enabled=1 + diff --git a/root/etc/e-smith/db/configuration/defaults/dnf/AutoInstallUpdates b/root/etc/e-smith/db/configuration/defaults/dnf/AutoInstallUpdates new file mode 100644 index 0000000..7a68b11 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/dnf/AutoInstallUpdates @@ -0,0 +1 @@ +disabled diff --git a/root/etc/e-smith/db/configuration/defaults/dnf/CheckContribs b/root/etc/e-smith/db/configuration/defaults/dnf/CheckContribs new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/dnf/CheckContribs @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/configuration/defaults/dnf/DeltaRpmProcess b/root/etc/e-smith/db/configuration/defaults/dnf/DeltaRpmProcess new file mode 100644 index 0000000..7a68b11 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/dnf/DeltaRpmProcess @@ -0,0 +1 @@ +disabled diff --git a/root/etc/e-smith/db/configuration/defaults/dnf/EnableGroups b/root/etc/e-smith/db/configuration/defaults/dnf/EnableGroups new file mode 100644 index 0000000..7ecb56e --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/dnf/EnableGroups @@ -0,0 +1 @@ +no diff --git a/root/etc/e-smith/db/configuration/defaults/dnf/GPGCheck b/root/etc/e-smith/db/configuration/defaults/dnf/GPGCheck new file mode 100644 index 0000000..573541a --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/dnf/GPGCheck @@ -0,0 +1 @@ +0 diff --git a/root/etc/e-smith/db/configuration/defaults/dnf/PackageFunctions b/root/etc/e-smith/db/configuration/defaults/dnf/PackageFunctions new file mode 100644 index 0000000..7a68b11 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/dnf/PackageFunctions @@ -0,0 +1 @@ +disabled diff --git a/root/etc/e-smith/db/configuration/defaults/dnf/RandomDelay b/root/etc/e-smith/db/configuration/defaults/dnf/RandomDelay new file mode 100644 index 0000000..52bd8e4 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/dnf/RandomDelay @@ -0,0 +1 @@ +120 diff --git a/root/etc/e-smith/db/configuration/defaults/dnf/check4updates b/root/etc/e-smith/db/configuration/defaults/dnf/check4updates new file mode 100644 index 0000000..f1931f6 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/dnf/check4updates @@ -0,0 +1 @@ +daily diff --git a/root/etc/e-smith/db/configuration/defaults/dnf/status b/root/etc/e-smith/db/configuration/defaults/dnf/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/dnf/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/configuration/defaults/dnf/type b/root/etc/e-smith/db/configuration/defaults/dnf/type new file mode 100644 index 0000000..24e1098 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/dnf/type @@ -0,0 +1 @@ +service diff --git a/root/etc/e-smith/db/configuration/migrate/smeserver-update b/root/etc/e-smith/db/configuration/migrate/smeserver-update new file mode 100644 index 0000000..94d1ae4 --- /dev/null +++ b/root/etc/e-smith/db/configuration/migrate/smeserver-update @@ -0,0 +1,28 @@ +{ + # migrate from yum to dnf key + my $yum = $DB->get("yum"); + if ($yum){ + my $dnf = $DB->get("dnf") || + $DB->new_record("dnf", { type => "service" }); + $dnf->merge_props($yum->props); + $yum->delete; + } + + # tidy EOL tag + use POSIX qw(strftime); + my $curdate = strftime '%Y%m%d', localtime; + my $curVers = 8; + my $curVersEOL = 20290531; + # we remove the forced value if for a previous release; + # also if not after the eol date + my $dropit = $DB->get_prop_and_delete('dnf','eolversion') if ( (substr($dnf{eolversion},0,1)<$curVers) || ( "$curdate" < "$curVersEOL") ); + + # Added for bug 8855 and bug 8858 + # we want to remove the property check4contribsupdates + my $check4contribsupdates = $DB->get_prop('dnf','check4contribsupdates'); + if ($check4contribsupdates) { + $DB->get('dnf')->delete_prop('check4contribsupdates'); + } + +} + diff --git a/root/etc/e-smith/db/dnf_available/.gitignore b/root/etc/e-smith/db/dnf_available/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/e-smith/db/dnf_installed/.gitignore b/root/etc/e-smith/db/dnf_installed/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/e-smith/db/dnf_updates/.gitignore b/root/etc/e-smith/db/dnf_updates/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/e-smith/db/yum_repositories/defaults/appstream/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/appstream/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/appstream/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/appstream/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/appstream/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/appstream/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/appstream/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/appstream/MirrorList new file mode 100644 index 0000000..f97c983 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/appstream/MirrorList @@ -0,0 +1 @@ +https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStream-$releasever diff --git a/root/etc/e-smith/db/yum_repositories/defaults/appstream/Name b/root/etc/e-smith/db/yum_repositories/defaults/appstream/Name new file mode 100644 index 0000000..6ce65b3 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/appstream/Name @@ -0,0 +1 @@ +Rocky Linux $releasever - AppStream diff --git a/root/etc/e-smith/db/yum_repositories/defaults/appstream/Visible b/root/etc/e-smith/db/yum_repositories/defaults/appstream/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/appstream/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/appstream/status b/root/etc/e-smith/db/yum_repositories/defaults/appstream/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/appstream/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/appstream/type b/root/etc/e-smith/db/yum_repositories/defaults/appstream/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/appstream/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/baseos/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/baseos/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/baseos/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/baseos/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/baseos/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/baseos/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/baseos/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/baseos/MirrorList new file mode 100644 index 0000000..a51a623 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/baseos/MirrorList @@ -0,0 +1 @@ +https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever diff --git a/root/etc/e-smith/db/yum_repositories/defaults/baseos/Name b/root/etc/e-smith/db/yum_repositories/defaults/baseos/Name new file mode 100644 index 0000000..580e76c --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/baseos/Name @@ -0,0 +1 @@ +Rocky Linux $releasever - BaseOS diff --git a/root/etc/e-smith/db/yum_repositories/defaults/baseos/Visible b/root/etc/e-smith/db/yum_repositories/defaults/baseos/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/baseos/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/baseos/status b/root/etc/e-smith/db/yum_repositories/defaults/baseos/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/baseos/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/baseos/type b/root/etc/e-smith/db/yum_repositories/defaults/baseos/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/baseos/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/epel/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/epel/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/epel/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/epel/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/epel/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/epel/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/epel/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/epel/MirrorList new file mode 100644 index 0000000..d6decc5 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/epel/MirrorList @@ -0,0 +1 @@ +https://mirrors.fedoraproject.org/mirrorlist?repo=epel-$releasever&arch=$basearch diff --git a/root/etc/e-smith/db/yum_repositories/defaults/epel/Name b/root/etc/e-smith/db/yum_repositories/defaults/epel/Name new file mode 100644 index 0000000..9f04b3f --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/epel/Name @@ -0,0 +1 @@ +Extra Packages for Enterprise Linux $releasever - $basearch diff --git a/root/etc/e-smith/db/yum_repositories/defaults/epel/Visible b/root/etc/e-smith/db/yum_repositories/defaults/epel/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/epel/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/epel/status b/root/etc/e-smith/db/yum_repositories/defaults/epel/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/epel/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/epel/type b/root/etc/e-smith/db/yum_repositories/defaults/epel/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/epel/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/extras/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/extras/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/extras/MirrorList new file mode 100644 index 0000000..af60e92 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/MirrorList @@ -0,0 +1 @@ +https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=extras-$releasever diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/Name b/root/etc/e-smith/db/yum_repositories/defaults/extras/Name new file mode 100644 index 0000000..594fc8c --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/Name @@ -0,0 +1 @@ +Rocky Linux $releasever - Extras diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/Visible b/root/etc/e-smith/db/yum_repositories/defaults/extras/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/status b/root/etc/e-smith/db/yum_repositories/defaults/extras/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/extras/type b/root/etc/e-smith/db/yum_repositories/defaults/extras/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/extras/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/EnableGroups new file mode 100644 index 0000000..7ecb56e --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/EnableGroups @@ -0,0 +1 @@ +no diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/MirrorList new file mode 100644 index 0000000..085808d --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/MirrorList @@ -0,0 +1 @@ +http://cdn.remirepo.net/enterprise/$releasever/modular/$basearch/mirror diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/Name b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/Name new file mode 100644 index 0000000..ce5ebf6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/Name @@ -0,0 +1 @@ +Remi - modular diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/Visible b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/status b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/type b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-modular/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/EnableGroups new file mode 100644 index 0000000..7ecb56e --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/EnableGroups @@ -0,0 +1 @@ +no diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/MirrorList new file mode 100644 index 0000000..84c5461 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/MirrorList @@ -0,0 +1 @@ +http://cdn.remirepo.net/enterprise/$releasever/safe/$basearch/mirror diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Name b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Name new file mode 100644 index 0000000..118b601 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Name @@ -0,0 +1 @@ +Remi - safe diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Visible b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/status b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/type b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi-safe/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/remi/EnableGroups new file mode 100644 index 0000000..7ecb56e --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi/EnableGroups @@ -0,0 +1 @@ +no diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/remi/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/remi/MirrorList new file mode 100644 index 0000000..1738774 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi/MirrorList @@ -0,0 +1 @@ +http://cdn.remirepo.net/enterprise/$releasever/remi/$basearch/mirror diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi/Name b/root/etc/e-smith/db/yum_repositories/defaults/remi/Name new file mode 100644 index 0000000..2699832 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi/Name @@ -0,0 +1 @@ +Remi - base diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi/Visible b/root/etc/e-smith/db/yum_repositories/defaults/remi/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi/status b/root/etc/e-smith/db/yum_repositories/defaults/remi/status new file mode 100644 index 0000000..7a68b11 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi/status @@ -0,0 +1 @@ +disabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/remi/type b/root/etc/e-smith/db/yum_repositories/defaults/remi/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/remi/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/MirrorList new file mode 100644 index 0000000..3d2b228 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/MirrorList @@ -0,0 +1 @@ +https://mirrorlist.koozali.org/mirrorlist/smeaddons-10 diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Name b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Name new file mode 100644 index 0000000..3ebc076 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Name @@ -0,0 +1 @@ +SME Server - addons diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/status b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/type b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeaddons/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/MirrorList new file mode 100644 index 0000000..329eec2 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/MirrorList @@ -0,0 +1 @@ +https://mirrorlist.koozali.org/mirrorlist/smecontribs-10 diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Name b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Name new file mode 100644 index 0000000..e8f3310 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Name @@ -0,0 +1 @@ +SME Server - contribs diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/status b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/type b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smecontribs/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smedev/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smedev/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smedev/MirrorList new file mode 100644 index 0000000..f704a42 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/MirrorList @@ -0,0 +1 @@ +https://mirrorlist.koozali.org/mirrorlist/smedev-10 diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/Name b/root/etc/e-smith/db/yum_repositories/defaults/smedev/Name new file mode 100644 index 0000000..d8c37d5 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/Name @@ -0,0 +1 @@ +SME Server - dev diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smedev/Visible new file mode 100644 index 0000000..7ecb56e --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/Visible @@ -0,0 +1 @@ +no diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/status b/root/etc/e-smith/db/yum_repositories/defaults/smedev/status new file mode 100644 index 0000000..7a68b11 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/status @@ -0,0 +1 @@ +disabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smedev/type b/root/etc/e-smith/db/yum_repositories/defaults/smedev/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smedev/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/MirrorList new file mode 100644 index 0000000..7336e46 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/MirrorList @@ -0,0 +1 @@ +https://mirrorlist.koozali.org/mirrorlist/smeextras-10 diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Name b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Name new file mode 100644 index 0000000..7e51fb7 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Name @@ -0,0 +1 @@ +SME Server - extras diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/status b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeextras/type b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeextras/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smeos/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smeos/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smeos/MirrorList new file mode 100644 index 0000000..21c578b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/MirrorList @@ -0,0 +1 @@ +https://mirrorlist.koozali.org/mirrorlist/smeos-10 diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/Name b/root/etc/e-smith/db/yum_repositories/defaults/smeos/Name new file mode 100644 index 0000000..1c681f1 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/Name @@ -0,0 +1 @@ +SME Server - os diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smeos/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/status b/root/etc/e-smith/db/yum_repositories/defaults/smeos/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeos/type b/root/etc/e-smith/db/yum_repositories/defaults/smeos/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeos/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smetest/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smetest/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smetest/MirrorList new file mode 100644 index 0000000..a01b987 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/MirrorList @@ -0,0 +1 @@ +https://mirrorlist.koozali.org/mirrorlist/smetest-10 diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/Name b/root/etc/e-smith/db/yum_repositories/defaults/smetest/Name new file mode 100644 index 0000000..b98d5c5 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/Name @@ -0,0 +1 @@ +SME Server - test diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smetest/Visible new file mode 100644 index 0000000..7ecb56e --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/Visible @@ -0,0 +1 @@ +no diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/status b/root/etc/e-smith/db/yum_repositories/defaults/smetest/status new file mode 100644 index 0000000..7a68b11 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/status @@ -0,0 +1 @@ +disabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smetest/type b/root/etc/e-smith/db/yum_repositories/defaults/smetest/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smetest/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/MirrorList new file mode 100644 index 0000000..71ed3fa --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/MirrorList @@ -0,0 +1 @@ +https://mirrorlist.koozali.org/mirrorlist/smeupdates-testing-10 diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Name b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Name new file mode 100644 index 0000000..54b9fa1 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Name @@ -0,0 +1 @@ +SME Server - updates testing diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/status b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/status new file mode 100644 index 0000000..7a68b11 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/status @@ -0,0 +1 @@ +disabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/type b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates-testing/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/EnableGroups b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/EnableGroups new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/EnableGroups @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/GPGCheck b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/GPGCheck new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/GPGCheck @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/MirrorList b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/MirrorList new file mode 100644 index 0000000..24e646d --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/MirrorList @@ -0,0 +1 @@ +https://mirrorlist.koozali.org/mirrorlist/smeupdates-10 diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Name b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Name new file mode 100644 index 0000000..7e885f1 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Name @@ -0,0 +1 @@ +SME Server - updates diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Visible b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Visible new file mode 100644 index 0000000..7cfab5b --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/Visible @@ -0,0 +1 @@ +yes diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/status b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/type b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/type new file mode 100644 index 0000000..09d06c8 --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/defaults/smeupdates/type @@ -0,0 +1 @@ +repository diff --git a/root/etc/e-smith/db/yum_repositories/migrate/00openRW b/root/etc/e-smith/db/yum_repositories/migrate/00openRW new file mode 100644 index 0000000..2c2b16c --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/migrate/00openRW @@ -0,0 +1,3 @@ +{ + $DB = esmith::ConfigDB->open(${DB_FILENAME}); +} diff --git a/root/etc/e-smith/db/yum_repositories/migrate/10GPG_and_Groups b/root/etc/e-smith/db/yum_repositories/migrate/10GPG_and_Groups new file mode 100644 index 0000000..159114e --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/migrate/10GPG_and_Groups @@ -0,0 +1,16 @@ +{ + for my $repo ($DB->get_all_by_prop(type => 'repository')) + { + %props = $repo->props; + + if (defined $props{GPGCheck}) { + $props{GPGCheck} = 'yes' if ($props{GPGCheck} =~ /1/); + $props{GPGCheck} = 'no' if ($props{GPGCheck} =~ /0/); + } + if (defined $props{EnableGroups}) { + $props{EnableGroups} = 'yes' if ($props{EnableGroups} =~ /1/); + $props{EnableGroups} = 'no' if ($props{EnableGroups} =~ /0/); + } + $repo->merge_props(%props); + } +} diff --git a/root/etc/e-smith/db/yum_repositories/migrate/20UpstreamRepos b/root/etc/e-smith/db/yum_repositories/migrate/20UpstreamRepos new file mode 100644 index 0000000..b8c526d --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/migrate/20UpstreamRepos @@ -0,0 +1,8 @@ +{ + for my $name ( qw(appstream baseos extras remi-safe remi-modular) ) + { + my $repo = $DB->get($name) or next; + + $repo->set_prop('Visible', 'yes'); + } +} diff --git a/root/etc/e-smith/db/yum_repositories/migrate/30DeleteDeprecatedRepo b/root/etc/e-smith/db/yum_repositories/migrate/30DeleteDeprecatedRepo new file mode 100644 index 0000000..def908a --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/migrate/30DeleteDeprecatedRepo @@ -0,0 +1,9 @@ +{ + for my $name ( qw(addons contrib dungog fws base centosplus fasttrack updates) ) + { + my $repo = $DB->get($name); + $repo->delete if $repo; + } + +} + diff --git a/root/etc/e-smith/db/yum_repositories/migrate/39VisibleSmeContribs b/root/etc/e-smith/db/yum_repositories/migrate/39VisibleSmeContribs new file mode 100644 index 0000000..deeee9c --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/migrate/39VisibleSmeContribs @@ -0,0 +1,10 @@ +{ + for my $name ( qw(smecontribs) ) + { + my $repo = $DB->get($name) or next; + #only migrate if restore from previous SME version, we do not want to override an admin setting for current version. + return unless $repo->prop('MirrorList') =~ m{/$name-1?[0789]{1}$}; + $repo->set_prop('status', 'enabled') + $repo->set_prop('Visible', 'yes'); + } +} diff --git a/root/etc/e-smith/db/yum_repositories/migrate/40GlobalMirrorList b/root/etc/e-smith/db/yum_repositories/migrate/40GlobalMirrorList new file mode 100644 index 0000000..8fd8bad --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/migrate/40GlobalMirrorList @@ -0,0 +1,30 @@ +{ + for my $name ( qw(smeaddons smecontribs smedev smeextras smeos smetest + smeupdates smeupdates-testing) ) + { + my $repo = $DB->get($name) or next; + + my $mirrorlist = $repo->prop('MirrorList') || ''; + my $baseurl = $repo->prop('BaseURL') || ''; + + if ($mirrorlist =~ m{^file:///etc/yum.repos.d/mirrors-sme|/8/|/sme.*-8$} || $baseurl =~ m{/8/|/sme.*-8$}) + { + $repo->delete_prop('MirrorList'); + $repo->delete_prop('BaseURL'); + unlink "/var/cache/dnf/$name/$_" foreach qw(repomd.xml mirrorlist.txt); + if ($repo->prop('status') eq 'enabled') + { + unlink "/home/e-smith/db/dnf_$_" foreach qw(available updates installed); + } + } + + $repo->set_prop('MirrorList', "https://mirrorlist.koozali.org/mirrorlist/$name-11") + if $repo->prop('MirrorList') =~ m{^http://distro.ibiblio.org/pub/linux/distributions/smeserver}; + + $repo->set_prop('MirrorList', "http://mirrorlist.koozali.org/mirrorlist/$name-11") + if $repo->prop('MirrorList') =~ m{/$name-1?[0789]{1}$}; + + $repo->set_prop('MirrorList', "https://mirrorlist.koozali.org/mirrorlist/$name-11") + if $repo->prop('MirrorList') =~ m{^http://mirrorlist.contribs.org/mirrorlist/$name-11$}; + } +} diff --git a/root/etc/e-smith/db/yum_repositories/migrate/45RockyEOL b/root/etc/e-smith/db/yum_repositories/migrate/45RockyEOL new file mode 100644 index 0000000..93448aa --- /dev/null +++ b/root/etc/e-smith/db/yum_repositories/migrate/45RockyEOL @@ -0,0 +1,53 @@ +{ + use POSIX qw(strftime); + use File::Slurp; + my $curdate = strftime '%Y%m%d', localtime; + my $curVers = 8; + my $curVersEOL = 20290531; + #get Rocky release we are + my $SUBVER = read_file('/etc/rocky-release'); + $SUBVER =~ s/^Rocky Linux release ([0-9\.]+).*?$/$1/; + chomp $SUBVER; + # we ignore the force value if for a previous release; idealy should be deleted from another fragment against configuration db + delete $dnf{eolversion} if ( ( defined $dnf{eolversion} && (substr($dnf{eolversion},0,1)<$curVers) ) || ( "$curdate" < "$curVersEOL") ); + $SUBVER = $dnf{eolversion} || $SUBVER ; + + # we need to remove that from migrated server + for my $name ( qw(appstream baseos extras) ) + { + my $repo = $DB->get($name) or next; + my $baseurl = $repo->prop('BaseURL') or next; + my $mirrorlist = $repo->prop('MirrorList') or next; + if ( $baseurl =~ /^https:\/\/dl\.rockylinux\.org\/vault\/rocky\/([0-9])/ ) + { + # we want to reset this unless vers 8 + next if ($1 == $curVers && "$curdate" >= "$curVersEOL"); + $repo->delete_prop('MirrorList'); + $repo->delete_prop('BaseURL'); + unlink "/var/cache/dnf/$name/$_" foreach qw(repomd.xml mirrorlist.txt); + } + else + { + # no match for a numerical, we probably want to reset that as well + $repo->delete_prop('MirrorList'); + $repo->delete_prop('BaseURL'); + unlink "/var/cache/dnf/$name/$_" foreach qw(repomd.xml mirrorlist.txt); + } + } + + # return unless we have a release version + return unless $SUBVER ne ""; + my $curdate = strftime '%Y%m%d', localtime; + # return unless EOL is reached + return unless ( "$curdate" >= "$curVersEOL"); + my %equiv=(appstream=>'AppStream', baseos=> 'BaseOS', extras=>'extras' ); + for my $name ( qw(appstream baseos extras) ) + { + my $repo = $DB->get($name) or next; + my $rname = $equiv{$name} || $name; + # setprop BaseURL "https://dl.rockylinux.org/vault/rocky/$SUBVER/$rname/\$basearch/" + $repo->set_prop('BaseURL', "https://dl.rockylinux.org/vault/rocky/$SUBVER/$rname/\$basearch/"); + # delprop MirrorList + $repo->set_prop('MirrorList', "disabled"); + } +} diff --git a/root/etc/e-smith/events/actions/dnf-action b/root/etc/e-smith/events/actions/dnf-action new file mode 100644 index 0000000..9bdeecd --- /dev/null +++ b/root/etc/e-smith/events/actions/dnf-action @@ -0,0 +1,67 @@ +#!/usr/bin/perl -w +#---------------------------------------------------------------------- +# Yum actions +# Copyright (C) 2005-2006 Gordon Rowell +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License or more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#---------------------------------------------------------------------- + +use strict; +use warnings; +use esmith::ConfigDB; + +use constant YUM_CMD => qw(/usr/bin/dnf -d 2 -e 2 -y); + +my $db = esmith::ConfigDB->open or die "Couldn't open ConfigDB\n"; + +my $event = $ARGV[0]; + +my $function = $event; +$function =~ s/dnf-//; + +die "Unknown function $function\n" + unless ($function =~ /install|update|remove/); + +my $log_file = "/var/log/dnf/dnf.log." . time(); +$db->set_prop('dnf', 'LogFile', $log_file); + +open STDOUT, '>', "$log_file" or die "Can't redirect STDOUT: $!"; +open STDERR, ">&STDOUT" or die "Can't dup STDOUT: $!"; + +# Make dnf send output immediately, so server-manager sees progress +$ENV{PYTHONUNBUFFERED} = 1; + +# XXX - FIXME - For groupremove, we need to do a grouplist on the group +# and then work out what to do + +my @groups = split(',', + ($db->get_prop_and_delete('dnf', 'SelectedGroups') || '')); + +my @packages = split(',', + ($db->get_prop_and_delete('dnf', 'SelectedPackages') || '')); + +if (@groups) +{ + system(YUM_CMD, "group$function", @groups) == 0 or + die "dnf group$function @groups failed: $?\n"; +} + +if (@packages) +{ + system(YUM_CMD, $function, @packages) == 0 or + die "dnf $function @packages failed: $?\n"; +} + +exit 0; diff --git a/root/etc/e-smith/events/actions/rpm-import-keys b/root/etc/e-smith/events/actions/rpm-import-keys new file mode 100644 index 0000000..2eff89b --- /dev/null +++ b/root/etc/e-smith/events/actions/rpm-import-keys @@ -0,0 +1,81 @@ +#!/usr/bin/perl -w +#---------------------------------------------------------------------- +# Yum import keys +# Copyright (C) 2005 Gordon Rowell +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License or more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#---------------------------------------------------------------------- + +use strict; +use warnings; + +use constant KEYDIR => "/usr/share/rpm-gpg-keys"; + +sub parse_key { + my @lines = @_; + my ($key, $good); + + $good = 0; + foreach (@lines) { + chomp; + next if m#Version:#i; + + if (m#BEGIN PGP PUBLIC KEY BLOCK#) { + $good++; + next; + } + + if (m#END PGP PUBLIC KEY BLOCK#) { + $key .= $1 if (m/^(.+)-----END PGP PUBLIC KEY BLOCK/); + return $key; + } + + + $key .= $_ if m#^\S+$# && $good; + } + return undef; +} + +my %keys; + +if(open (RPMS, '/bin/rpm -q gpg-pubkey 2> /dev/null|')) { + foreach my $rpm (map { chomp; $_ } ) { + if(open (KEY, "/bin/rpm -q --qf \%{DESCRIPTION} $rpm|")) { + my $key = parse_key(); + $keys{$key}++ if $key; + close(KEY); + } + } + close (RPMS); +} + +chdir KEYDIR or die "Couldn't chdir " . KEYDIR . "\n"; + +opendir DIR, '.' or die "Couldn't opendir .\n"; + +for my $file ( grep { m#^RPM-GPG-KEY# } readdir(DIR) ) +{ + if(open(KEY, "$file")) { + my $key = parse_key(); + next if $key && $keys{$key}; + } + + warn "Importing key $file\n"; + + system("rpm", "--import", $file) == 0 or + warn "Couldn't rpm --import $file\n"; +} + +exit 0; diff --git a/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/yum b/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/yum new file mode 100644 index 0000000..d0482cf --- /dev/null +++ b/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/yum @@ -0,0 +1,296 @@ + + + + Software installer + Software installer + + + + SUCCESS + The new settings have been saved. + + + + UPDATE_SUCCESS + The requested changes have been successfully implemented. + + + + LABEL_YUM_STATUS + Check for updates + + + + LABEL_YUM_AUTOINSTALLUPDATES + Automatically install updates + + + LABEL_YUM_AUTOINSTALLUPDATES_DESCRIPTION + If enabled this will take precedence over the simple check for updates notification and predownload features. Instead it will install the available updates from enabled repositories. For more information refer to yum and yum-cron manual page. + + + + LABEL_YUM_PACKAGEFUNCTIONS + Manage individual packages + + + + DESC_YUM_PACKAGEFUNCTIONS + + The software installer can manage groups of + related package or individual packages. By + default, only groups of packages are presented. + If you wish to manage individual packages, + enable this option. This should only be done + by experienced administrators. + + + + + LABEL_ENABLED_REPOSITORIES + Enabled repositories + + + + DESC_ENABLED_REPOSITORIES + + The software installer can install software + from any of enabled repositories. To enable + a repository, select it from the list. + To disable a repository, de-select it from the list. + By default, only stable, tested software is available + for installation. + + + + + DESC_UPTODATE + + +

This system is up to date.

+ + All updates have been installed. + + ]]> +
+
+ + + DESC_UPDATES_AVAILABLE + + +

Updates Available

+ + There are updates available for your system. These updates + should be installed as soon as possible. + + ]]> +
+
+ + + LABEL_AVAILABLE_UPDATES + Updates available + + + + DESC_AVAILABLE_UPDATES + + The following updates are available for your system. + You should normally install all available updates. + If there are updates you do not wish to install, de-select + them from the list below. + + + + + INSTALL_UPDATES + Install selected updates + + + + DESC_BUTTON_INSTALL_UPDATES + + List available updates + ]]> + + + + + HEADER_AVAILABLE_SOFTWARE + + The following software is available to be installed + onto your system. You should only install additional + software onto this system if you are aware + of the consequences of doing so. + + + + + DESC_AVAILABLE_GROUPS + + You can select software groups + to install from the list below. + + + + + LABEL_AVAILABLE_GROUPS + Available groups + + + + DESC_AVAILABLE_PACKAGES + + You can also select individual packages + to install from the list below. + + + + + LABEL_AVAILABLE_PACKAGES + Available packages + + + + INSTALL_SOFTWARE + Install + + + + HEADER_INSTALLED_SOFTWARE + + The following software is installed + on this system. You should only remove + software from this system if you are aware + of the consequences of doing so. + + + + + DESC_INSTALLED_GROUPS + + You can select software groups + to remove from the list below. + + + + + LABEL_INSTALLED_GROUPS + Installed groups + + + + DESC_INSTALLED_PACKAGES + + You can also select individual packages + you wish to remove from the list below. + + + + + LABEL_INSTALLED_PACKAGES + Installed packages + + + + DESC_BUTTON_CONFIGURATION + + Change software installer settings + ]]> + + + + + DESC_BUTTON_INSTALL_AVAILABLE + + Install additional software + ]]> + + + + + DESC_BUTTON_REMOVE + + Remove installed software + ]]> + + + + + HEADER_POSTUPGRADE_REQUIRED + + + Please click on the Reconfigure button at the bottom of + this page to start the reconfiguration process. + An automatic reboot will be + initiated as part of this reconfiguration process +

+ ]]> +
+
+ + + SYSTEM_BEING_RECONFIGURED + + Your system is being automatically rebooted to + complete the reconfiguraton process. + + + + + 1DAILY + Daily + + + + 2WEEKLY + Weekly + + + + 3MONTHLY + Monthly + + + + LABEL_YUM_DELTARPMPROCESS + Delta Rpm Update + + + + LABEL_YUM_DELTARPM + A deltarpm contains the difference between an old and a new version of a rpm, + which can save bandwith. The drawback is that update + operations consume considerably more CPU cycles + + + + LABEL_YUM_DOWNLOADONLY + Predownload updates + + + + LABEL_YUM_DOWNLOADONLY_DESCRIPTION + The rpm updates can be downloaded during the night, + this will ease and give faster the yum update process + (only enabled repositories will be used). + + +
diff --git a/root/etc/e-smith/templates/etc/crontab/check4contribsupdates b/root/etc/e-smith/templates/etc/crontab/check4contribsupdates new file mode 100644 index 0000000..0be7175 --- /dev/null +++ b/root/etc/e-smith/templates/etc/crontab/check4contribsupdates @@ -0,0 +1,30 @@ +{ + use esmith::ConfigDB; + my $ydb = esmith::ConfigDB->open_ro('yum_repositories') + or die "Couldn't open yum_repositories"; + my $smecontribs=$ydb->get_prop('smecontribs','status') || 'disabled'; + + return "\n# dnf check for smecontribs updates is disabled\n" unless ( ($dnf{status} eq 'enabled') && ($dnf{CheckContribs} eq 'enabled') && ($smecontribs eq 'disabled') ); + + my $freq = $dnf{check4updates} || 'daily'; + + my $min; + my $dom; + my $dow; + + if ($freq eq 'weekly') { + $min = 22; + $dom = '*'; + $dow = 0; + } elsif ($freq eq 'monthly') { + $min = 42; + $dom = 1; + $dow = '*'; + } else { + $min = 2; + $dom = '*'; + $dow = '*'; + } + return "$min 4 $dom * $dow root " + . q{sleep $[ $RANDOM \\% 3600 ]; /sbin/e-smith/check4contribsupdates -m }; +} diff --git a/root/etc/e-smith/templates/etc/crontab/check4updates b/root/etc/e-smith/templates/etc/crontab/check4updates new file mode 100644 index 0000000..71941ef --- /dev/null +++ b/root/etc/e-smith/templates/etc/crontab/check4updates @@ -0,0 +1,25 @@ +{ + return "\n# dnf check for updates is disabled\n" unless $dnf{status} eq 'enabled'; + + my $freq = $dnf{check4updates} || 'daily'; + + my $min; + my $dom; + my $dow; + + if ($freq eq 'weekly') { + $min = 22; + $dom = '*'; + $dow = 0; + } elsif ($freq eq 'monthly') { + $min = 42; + $dom = 1; + $dow = '*'; + } else { + $min = 2; + $dom = '*'; + $dow = '*'; + } + return "$min 4 $dom * $dow root " + . q{sleep $[ $RANDOM \\% 3600 ]; /sbin/e-smith/check4updates -m }; +} diff --git a/root/etc/e-smith/templates/etc/dnf/automatic.conf/10commands b/root/etc/e-smith/templates/etc/dnf/automatic.conf/10commands new file mode 100644 index 0000000..f9c772c --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/automatic.conf/10commands @@ -0,0 +1,39 @@ +{ + our $AutoInstallUpdates = $dnf{AutoInstallUpdates} || 'disabled'; + $AutoInstallUpdates = ( $AutoInstallUpdates eq "disabled") ? "no" : "yes"; + our $downloadonly = $dnf{DownloadOnly} || 'disabled'; + $downloadonly = ($downloadonly eq "disabled") ? "no" : "yes"; + our $check = $dnf{check4updates} || 'daily'; + $check = ($check eq "disabled") ? "no" : "yes"; + $check = ($downloadonly eq "yes" || $AutoInstallUpdates eq "yes" ) ? "yes" : $check; + $OUT = ""; +} +[commands] +# What kind of upgrade to perform: +# default = all available upgrades +# security = only the security upgrades +upgrade_type = default + +# Maximum time in seconds to wait until the system is on-line and able to +# connect to remote repositories. +network_online_timeout = 60 + +# Whether updates should be downloaded when they are available, by +# dnf-automatic.timer. notifyonly.timer, download.timer and +# install.timer override this setting. +download_updates = { $downloadonly } + +# Whether updates should be applied when they are available, by +# dnf-automatic.timer. notifyonly.timer, download.timer and +# install.timer override this setting. +apply_updates = { $AutoInstallUpdates } + +# Maximum amout of time to randomly sleep, in minutes. The program +# will sleep for a random amount of time between 0 and random_sleep +# minutes before running. This is useful for e.g. staggering the +# times that multiple systems will access update servers. If +# random_sleep is 0 or negative, the program will run immediately. +# 6*60 = 360 +random_sleep = { $dnf{sleep} || '0' } + + diff --git a/root/etc/e-smith/templates/etc/dnf/automatic.conf/20emiters b/root/etc/e-smith/templates/etc/dnf/automatic.conf/20emiters new file mode 100644 index 0000000..ec0cb7d --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/automatic.conf/20emiters @@ -0,0 +1,13 @@ +[emitters] +# Name to use for this system in messages that are emitted. If +# system_name is None, the hostname will be used. +system_name = { $SystemName . "." . $DomainName || 'None' } + +# How to send messages. Valid options are stdio and email. If +# emit_via includes stdio, messages will be sent to stdout; this is useful +# to have cron send the messages. If emit_via includes email, this +# program will send email itself according to the configured options. +# If emit_via is None or left blank, no messages will be sent. +emit_via = stdio + + diff --git a/root/etc/e-smith/templates/etc/dnf/automatic.conf/30email b/root/etc/e-smith/templates/etc/dnf/automatic.conf/30email new file mode 100644 index 0000000..46e050f --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/automatic.conf/30email @@ -0,0 +1,12 @@ +[email] +# The address to send email messages from. +# NOTE: 'localhost' will be replaced with the value of system_name. +email_from = { 'root@' . $DomainName } + +# List of addresses to send messages to. +email_to = { $dnf{ReportEmail} || 'admin@' . $DomainName } + +# Name of the host to connect to to send email messages. +email_host = localhost + + diff --git a/root/etc/e-smith/templates/etc/dnf/automatic.conf/50base b/root/etc/e-smith/templates/etc/dnf/automatic.conf/50base new file mode 100644 index 0000000..07ce721 --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/automatic.conf/50base @@ -0,0 +1,12 @@ +[base] +# This section overrides dnf.conf + +# Use this to filter dnf core messages +# -4: critical +# -3: critical+errors +# -2: critical+errors+warnings (default) +debuglevel = -{ $dnf{Debug} || '2' } + +# Uncomment to auto-import new gpg keys (dangerous) +# assumeyes = True + diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main new file mode 100644 index 0000000..15685c3 --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main @@ -0,0 +1 @@ +[main] diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_best b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_best new file mode 100644 index 0000000..8a8820c --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_best @@ -0,0 +1 @@ +best=0 diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_cachedir b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_cachedir new file mode 100644 index 0000000..572b0e7 --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_cachedir @@ -0,0 +1,2 @@ +cachedir=/var/cache/dnf/$basearch/$releasever +keepcache=0 diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_debuglevel b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_debuglevel new file mode 100644 index 0000000..a70bacc --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_debuglevel @@ -0,0 +1 @@ +debuglevel={ $yum{Debug} || '2' } diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_deltarpm b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_deltarpm new file mode 100644 index 0000000..6898de9 --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_deltarpm @@ -0,0 +1,6 @@ +{ +my $deltaRpm = $dnf{DeltaRpmProcess} || 'disabled'; +$deltaRpm = '0' if ($deltaRpm eq 'disabled'); +$deltaRpm = '2' if ($deltaRpm eq 'enabled'); +$OUT .= "deltarpm=$deltaRpm"; +} diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_installonly_limit b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_installonly_limit new file mode 100644 index 0000000..8405caf --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_installonly_limit @@ -0,0 +1 @@ +installonly_limit=3 diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_logfile b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_logfile new file mode 100644 index 0000000..41d817e --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_logfile @@ -0,0 +1 @@ +logdir=/var/log/dnf diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_obsoletes b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_obsoletes new file mode 100644 index 0000000..4edd974 --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_obsoletes @@ -0,0 +1 @@ +obsoletes=1 diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_plugins b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_plugins new file mode 100644 index 0000000..a762788 --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_plugins @@ -0,0 +1 @@ +plugins=1 diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_skip b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_skip new file mode 100644 index 0000000..40e50c7 --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/10main_skip @@ -0,0 +1,2 @@ +skip_if_unavailable=0 + diff --git a/root/etc/e-smith/templates/etc/dnf/dnf.conf/20main_reposdir b/root/etc/e-smith/templates/etc/dnf/dnf.conf/20main_reposdir new file mode 100644 index 0000000..52d7fc6 --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/dnf.conf/20main_reposdir @@ -0,0 +1 @@ +reposdir=/etc/yum.smerepos.d diff --git a/root/etc/e-smith/templates/etc/dnf/protected.d/smeserver.conf/template-begin b/root/etc/e-smith/templates/etc/dnf/protected.d/smeserver.conf/template-begin new file mode 100644 index 0000000..7aecc8e --- /dev/null +++ b/root/etc/e-smith/templates/etc/dnf/protected.d/smeserver.conf/template-begin @@ -0,0 +1,4 @@ +{ + $pkgs = $dnf{Protected} || 'smeserver-base,smeserver-support'; + $OUT = join "\n", split /[,;]/, $pkgs; +} diff --git a/root/etc/e-smith/templates/etc/rsyslog.conf/32smeserver-update b/root/etc/e-smith/templates/etc/rsyslog.conf/32smeserver-update new file mode 100644 index 0000000..7a28980 --- /dev/null +++ b/root/etc/e-smith/templates/etc/rsyslog.conf/32smeserver-update @@ -0,0 +1,4 @@ +#dnf Koozali SME Server updater +if $programname startswith "dnf_update_dbs" then /var/log/dnf/dnf-update.log +& stop + diff --git a/root/etc/e-smith/templates/etc/yum.smerepos.d/sme-base.repo/20repositories b/root/etc/e-smith/templates/etc/yum.smerepos.d/sme-base.repo/20repositories new file mode 100644 index 0000000..840c278 --- /dev/null +++ b/root/etc/e-smith/templates/etc/yum.smerepos.d/sme-base.repo/20repositories @@ -0,0 +1,78 @@ +{ + my $ydb = esmith::ConfigDB->open_ro('yum_repositories') + or die "Couldn't open yum_repositories"; + + my $priority = $dnf{priority} || 'enabled'; + + $OUT = "\n"; + + for my $repos ( $ydb->get_all_by_prop('type' => 'repository') ) + { + my %props = ($DB->get('dnf')->props(), $repos->props()); + + $OUT .= "[" . $repos->key . "]\n"; + + $OUT .= "enabled=" . (($repos->prop('status') eq 'enabled') ? 1 : 0) + . "\n"; + + if ( exists $props{MetaLink} ) + { + $OUT .= 'metalink=' . $props{MetaLink} . "\n"; + } + elsif ( ! exists $props{MirrorList} or $props{MirrorList} eq "disabled" ) + { + $OUT .= 'baseurl=' . $props{BaseURL} . "\n"; + } + else + { + $OUT .= 'mirrorlist=' . $props{MirrorList} . "\n"; + } + + for my $prop (qw(Name)) + { + $OUT .= lc($prop) . '=' . $props{$prop} . "\n"; + } + + for my $prop (qw(GPGCheck EnableGroups)) + { + $OUT .= lc($prop) . '=' . ($props{$prop} eq "yes" ? 1 : 0) . "\n"; + } + + if (exists $props{Exclude}) + { + $OUT .= "exclude=" . join(' ', split(/,/, $props{Exclude})) . "\n"; + } + + if (exists $props{IncludePkgs}) + { + $OUT .= "includepkgs=" . join(' ', split(/,/, $props{IncludePkgs})) . "\n"; + } + + if ( exists $props{GPGKey}) + { + $OUT .= "gpgkey" . '=' . $props{GPGKey} . "\n"; + } + + if ($priority eq 'enabled' && exists $props{Priority}) + { + $OUT .= "priority" . '=' . $props{Priority} . "\n"; + } + elsif ($priority eq 'enabled' && $repos->key =~ /^sme.*/) + { + $OUT .= "priority=10\n"; + } + elsif ($priority eq 'enabled' && ( $repos->key eq 'appstream' || $repos->key eq 'baseos' || $repos->key eq 'remi-safe' || $repos->key eq 'remi-modular' )) + { + $OUT .= "priority=10\n"; + } + + if (exists $props{DeltaRpmPercentage}) + { + my $deltarpmpercentage = $props{DeltaRpmPercentage}; + $deltarpmpercentage = '0' if ($deltarpmpercentage eq 'disabled'); + $OUT .= "deltarpm_percentage" . '=' . $deltarpmpercentage . "\n"; + } + + $OUT .= "\n"; + } +} diff --git a/root/etc/e-smith/web/functions/yum b/root/etc/e-smith/web/functions/yum new file mode 100644 index 0000000..73046c7 --- /dev/null +++ b/root/etc/e-smith/web/functions/yum @@ -0,0 +1,321 @@ +#!/usr/bin/perl -wT +# vim: ft=xml: + +#---------------------------------------------------------------------- +# heading : Configuration +# description : Software installer +# navigation : 4000 4200 +# +# copyright (C) 1999-2005 Mitel Networks Corporation +# copyright (C) 2004 Shad L. Lords +# copyright (C) 2005-2006 Gordon Rowell +# Copyright (c) 2003-2004 Darrell May +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Technical support for this program is available from Mitel Networks +# Please visit our web site www.mitel.com/sme/ for details. +#---------------------------------------------------------------------- + +use strict; +use esmith::TestUtils; +use esmith::FormMagick::Panel::yum; +my $f = esmith::FormMagick::Panel::yum->new(); + +if (-e "/var/cache/dnf/metadata_lock.pid") +{ + $f->print_yum_status_page(); + exit(0); +} + +if ($f->get_prop('dnf', 'LogFile')) +{ + $f->skip_to_postupgrade(); +} + +$f->display(); + +=head1 TESTING + +=begin testing + +=end testing + +=cut + +__DATA__ +
+ + + + + DESC_UPTODATE + + + + DESC_UPDATES_AVAILABLE + + + + DESC_BUTTON_INSTALL_UPDATES + + + + DESC_BUTTON_INSTALL_AVAILABLE + + + + DESC_BUTTON_REMOVE + + + + DESC_SECTIONBAR + + + + + + + + + + + + + + + + + + + + + + + DESC_BUTTON_CONFIGURATION + + + + + + + + + DESC_AVAILABLE_UPDATES + + + + + + + + + + + HEADER_AVAILABLE_SOFTWARE + + + + + DESC_AVAILABLE_GROUPS + + + + + DESC_AVAILABLE_PACKAGES + + + + + + + + + + + HEADER_INSTALLED_SOFTWARE + + + + + DESC_INSTALLED_GROUPS + + + + + DESC_INSTALLED_PACKAGES + + + + + + + + + + + + + + + + DESC_YUM_PACKAGEFUNCTIONS + + + + + DESC_ENABLED_REPOSITORIES + + + + + LABEL_YUM_DELTARPM + + + + + LABEL_YUM_DOWNLOADONLY_DESCRIPTION + + + + + LABEL_YUM_AUTOINSTALLUPDATES_DESCRIPTION + + + + + + + + + HEADER_POSTUPGRADE_REQUIRED + + + + + + + + + + + + + + +
diff --git a/root/etc/e-smith/web/panels/manager/cgi-bin/.gitignore b/root/etc/e-smith/web/panels/manager/cgi-bin/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/logrotate.d/smeserver-update b/root/etc/logrotate.d/smeserver-update new file mode 100644 index 0000000..1f77e8f --- /dev/null +++ b/root/etc/logrotate.d/smeserver-update @@ -0,0 +1,15 @@ +/var/log/dnf/dnf.log { + missingok + notifempty + maxsize 1M + yearly + create 0600 root root +} +/var/log/dnf/dnf-update.log { + missingok + notifempty + maxsize 1M + weekly + create 0600 root root +} + diff --git a/root/etc/yum.smerepos.d/.gitignore b/root/etc/yum.smerepos.d/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/root/sbin/e-smith/check4contribsupdates b/root/sbin/e-smith/check4contribsupdates new file mode 100644 index 0000000..74ccaa2 --- /dev/null +++ b/root/sbin/e-smith/check4contribsupdates @@ -0,0 +1,34 @@ +#! /bin/bash + +mkdir -p /tmp/check4contribsupdates.$$ +TMPFILE=`mktemp /tmp/check4contribsupdates.$$/XXXXXXXXXX` || exit 1 +TMP1=`mktemp /tmp/check4contribsupdates.$$/XXXXXXXXXX` || exit 1 + +MAILADDR=admin-dnf + +dnf -e 0 -d 0 check-update --disablerepo=* --enablerepo=smecontribs > $TMP1 +if [ $? = 100 ]; then + echo -e "===\n=== dnf reports available updates for Contribs:\n===" >> $TMPFILE + cat $TMP1 >> $TMPFILE + echo -e "\n=== To apply *all* these updates, log on to your server command line and +=== enter the following command: + # dnf update --enablerepo=smecontribs" >> $TMPFILE + echo -e "\n=== Alternatively you can update packages one at a time using the command: +=== (replace packagename with contrib name eg smeserver-wbl) + # dnf update --enablerepo=smecontribs packagename +=== if needed, you might also be asked to run after dnf: + # signal-event post-upgrade + # signal-event reboot\n" >> $TMPFILE +fi + +if [ -s $TMPFILE ]; then + if [ "$1" = "-m" ]; then + mail -s "SME Server Contribs Updates available for `hostname`" $MAILADDR < $TMPFILE + else + echo "SME Server Contribs Updates available for `hostname`" + cat $TMPFILE + fi +fi + +rm -f $TMPFILE $TMP1 +rm -fr /tmp/check4contribsupdates.* diff --git a/root/sbin/e-smith/check4updates b/root/sbin/e-smith/check4updates new file mode 100644 index 0000000..352a472 --- /dev/null +++ b/root/sbin/e-smith/check4updates @@ -0,0 +1,45 @@ +#! /bin/bash + +mkdir -p /tmp/check4updates.$$ +TMPFILE=`mktemp /tmp/check4updates.$$/XXXXXXXXXX` || exit 1 +TMP1=`mktemp /tmp/check4updates.$$/XXXXXXXXXX` || exit 1 + +MAILADDR=admin-dnf + +# SME 10 EOL message +DATE=$(date +%Y%m%d) +if [ $DATE -ge "20290531" ]; then + echo -e "===\n=== URGENT NOTICE:">> $TMPFILE + echo -e "=== As per June 30th 2024, SME Server 10 is obsolete, and potentially INSECURE.">> $TMPFILE + echo -e "=== Failure to upgrade may lead to the compromise of this server.">> $TMPFILE + echo -e "=== NO support will be offered for any issue found with this installed version.">> $TMPFILE + echo -e "=== Please migrate IMMEDIATELY to Koozali SME Server 11 or higher version." >> $TMPFILE + echo -e "=== Visit https://wiki.koozali.org/SME_Server:Download \n===" >> $TMPFILE +fi + +dnf -e 0 -d 0 check-update > $TMP1 +if [ $? = 100 ]; then + echo -e "===\n=== dnf reports available updates:\n===" >> $TMPFILE + DownloadOnly=$(/sbin/e-smith/config getprop dnf DownloadOnly|| echo "disabled") + AutoInstallUpdates=$(/sbin/e-smith/config getprop dnf AutoInstallUpdates|| echo "disabled") + if [ $DownloadOnly = "disabled" ] && [ $AutoInstallUpdates = "disabled" ]; then + ABRT_IGNORE_PYTHON=1 /usr/bin/dnf-automatic /etc/dnf/automatic.conf --timer --no-installupdates --no-downloadupdates >> $TMPFILE + else + ABRT_IGNORE_PYTHON=1 /usr/bin/dnf-automatic /etc/dnf/automatic.conf --timer >> $TMPFILE + fi + # we have updates, let's inform the server-manager + /usr/bin/systemctl restart dnf.service + +fi + +if [ -s $TMPFILE ]; then + if [ "$1" = "-m" ]; then + mail -s "Updates available for `hostname`" $MAILADDR < $TMPFILE + else + echo "Updates available for `hostname`" + cat $TMPFILE + fi +fi + +rm -f $TMPFILE $TMP1 +rm -fr /tmp/check4updates.* diff --git a/root/sbin/e-smith/dnf_update_dbs b/root/sbin/e-smith/dnf_update_dbs new file mode 100644 index 0000000..215c4c0 --- /dev/null +++ b/root/sbin/e-smith/dnf_update_dbs @@ -0,0 +1,114 @@ +#!/usr/bin/perl -w +#---------------------------------------------------------------------- +# Yum database updates +# Copyright (C) 2005 Gordon Rowell +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License or more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#---------------------------------------------------------------------- + +use strict; +use esmith::ConfigDB; + +my $db = esmith::ConfigDB->open_ro or die "Couldn't open ConfigDB\n"; + +my $pid = fork; +exit 1 unless defined $pid; +# now two processes are executing +if ($pid == 0) { + +# XXX - WARNING - XXX +# +# For speed and to reduce log noise, we don't use +# the esmith::DB routines here + +# We do not use -R xxx to sleep for a while, as we do this at cron level +# this allows faster results when needed or delayed when not + +use constant DNF_CMD => "/usr/bin/dnf -d 0 -e 0 "; + +# dnf check to have fresh metadata +system(DNF_CMD." check-update 1>/dev/null"); + +my $tmp_file; + +END { $tmp_file and -f $tmp_file and unlink $tmp_file; } + +for my $list_option ( qw(available installed updates) ) +{ + my $file = "/home/e-smith/db/dnf_${list_option}"; + $tmp_file = "/home/e-smith/db/dnf_${list_option}.tmp"; + + open DB, ">$tmp_file" or die "Couldn't create $tmp_file\n"; + + print DB "# Generated by $0: " . scalar localtime() . "\n"; + + open YUM, "-|", DNF_CMD . "list $list_option" or + die "Couldn't call dnf list $list_option\n"; + + #strip header, preventing inclusion as package + my $header = ; + while ( ) + { + my ($package, $version, $repo) = split /\s+/; + + next unless $package and $version and $repo; + + if ($list_option eq 'available') + { + my $RestrictRpm = $db->get_prop('dnf', 'RestrictRpm') || ''; + my $RestrictRepo = $db->get_prop('dnf', 'RestrictRepo') || ''; + my @rpms = split(/,/, $RestrictRpm); + my @repos = split(/,/, $RestrictRepo); + + if ( ($#rpms < 0 && $#repos < 0) + || (grep { $package =~ /$_/ } @rpms) + || (grep { $repo =~ /$_/ } @repos) + ) + { + print DB "$package=package|Repo|$repo|Version|$version\n"; + } + } + else + { + print DB "$package=package|Repo|$repo|Version|$version\n"; + } + } + + close YUM or warn "dnf list $list_option status $?\n"; + + open YUM, "-|", DNF_CMD . "grouplist $list_option" or + die "Couldn't call dnf grouplist $list_option\n"; + + while ( ) + { + next if /^\s*$/; + + next unless /^\s+/; + + s/\s+//g; + + print DB "$_=group\n"; + } + + close YUM or warn "dnf grouplist $list_option status $?\n"; + + close DB; + + rename $tmp_file, $file or die "Couldn't rename $tmp_file $file\n"; +} + +exit 0; +} +exit 0; diff --git a/root/usr/lib/systemd/system/dnf.service b/root/usr/lib/systemd/system/dnf.service new file mode 100644 index 0000000..918c0d4 --- /dev/null +++ b/root/usr/lib/systemd/system/dnf.service @@ -0,0 +1,13 @@ +[Unit] +Description=Yum db updater for Koozali SME Server +After=network-pre.target networking.service + +[Service] +Type=forking +ExecStartPre=/sbin/e-smith/service-status dnf +ExecStart=/sbin/e-smith/dnf_update_dbs +TimeoutSec=0 +RemainAfterExit=yes + +[Install] +WantedBy=sme-server.target diff --git a/root/usr/lib/yum-plugins/smeserver.py b/root/usr/lib/yum-plugins/smeserver.py new file mode 100644 index 0000000..925ce70 --- /dev/null +++ b/root/usr/lib/yum-plugins/smeserver.py @@ -0,0 +1,447 @@ +# vim: noexpandtab tabstop=4 + +import os +import shutil +import subprocess +import syslog +from yum.constants import * +from yum.plugins import PluginYumExit +from yum.plugins import TYPE_CORE +from yum.packages import parsePackages +from yum.packages import RpmBase + +requires_api_version = '2.1' +plugin_type = (TYPE_CORE,) + +events_path = '/etc/e-smith/events' +initialize_database = events_path + '/actions/initialize-default-databases' +navigation_conf = events_path + '/actions/navigation-conf' +systemctl = "/usr/bin/systemctl" +dnf_update_dbs = events_path + '/actions/yum-update-dbs' +Conflicts=yum-cron.service dnf-automatic-notifyonly.service dnf-automatic.service +signal_event = '/sbin/e-smith/signal-event' +config_set = '/sbin/e-smith/config' +status_file = '/var/run/yum.status' +expand_template = '/sbin/e-smith/expand-template' +service = '/sbin/e-smith/service' + +eventlist = dict() +actionlist = dict() +templateslist = dict() +serviceslist = dict() + + +# list of packages that need a reboot +# if a package name starts with one these names, a reboot is needed +rebootpkgs = ['daemontools', 'dbus', 'glibc', 'gnutls', 'kernel', 'linux-firmware', 'lvm2', 'mdadm', 'openssl-libs', 'systemd'] +# exclusions : +rebootpkgsexclude = dict() +rebootpkgsexclude['dbus']='-python','-tests','-devel','-doc', +rebootpkgsexclude['glibc']='-devel','-headers','-statics','-utils','-glib', +rebootpkgsexclude['gnutls']='-devel', +rebootpkgsexclude['kernel']='-doc','-debug','-devel','-abi-whitelists','tools', +rebootpkgsexclude['lvm2']='-devel','-python', +rebootpkgsexclude['systemd']='-devel','-python', + + +# list of packages that need a service restart +# if a package name starts with one of these values, a service restart is needed +# since, for example, httpd means httpd-admin and httpd-e-smith, we won't use these names directly but via serviceslist (see below) +restartpkgs = ['dovecot','bglibs','cvm','freeradius','httpd','iptables', 'mariadb' , 'nut', 'openldap', 'openssh', 'php', 'pptpd', 'proftp', 'samba', 'spamassassin', 'squid', 'qmail', 'qpsmtpd'] +servicenames = dict() +servicenames['bglibs']='cvm-unix', +servicenames['cvm']='cvm-unix', +servicenames['dovecot']='dovecot', +servicenames['freeradius']='radiusd', +servicenames['httpd']='httpd-admin','httpd-e-smith', +servicenames['iptables']='masq', +servicenames['mariadb']='mariadb', +servicenames['nut']='nut-server','nut-driver','nut-monitor', +servicenames['openldap']='ldap', +servicenames['openssh']='sshd', +servicenames['php']='httpd-e-smith', 'php-fpm', 'php55-php-fpm', 'php56-php-fpm', 'php70-php-fpm', 'php71-php-fpm', 'php72-php-fpm', 'php73-php-fpm', 'php74-php-fpm', 'php80-php-fpm', 'php81-php-fpm', +servicenames['proftp']='ftp', +servicenames['samba']='smb', +servicenames['spamassassin']='spamassassin', +servicenames['squid']='squid', +servicenames['qmail']='qmail', +servicenames['qpsmtpd']='qpsmtpd', + +smechange = False +smechangelist = dict() +ourfile = False +erasing = False +DEBUG = False +smeEventPretrans = False +removenorebootok = dict() + +def log(s): + if DEBUG : + print s +def createevent(): + if os.path.isdir('/etc/e-smith/events/temp'): + shutil.rmtree('/etc/e-smith/events/temp') + os.makedirs('/etc/e-smith/events/temp/services2adjust', 0o777) + os.makedirs('/etc/e-smith/events/temp/templates2expand', 0o777) + +def addtemplate2expand(template): + #check filename + head_tail = os.path.split(template) + head = head_tail[0]; + filename = head_tail[1]; + # create dir + if not os.path.isdir('/etc/e-smith/events/temp/templates2expand' + head): + os.makedirs('/etc/e-smith/events/temp/templates2expand' + head, 0o777) + #touch file + fname= '/etc/e-smith/events/temp/templates2expand'+ template + fhandle = open(fname, 'a') + try: + os.utime(fname, None) + finally: + fhandle.close() + +def report_yum_status(status): + fileHandle = open(status_file, 'w') + fileHandle.write(status) + fileHandle.close() + +def predownload_hook(conduit): + report_yum_status('predownload') + +def postdownload_hook(conduit): + report_yum_status('postdownload') + +def prereposetup_hook(conduit): + global ourfile + + ourfile = True + report_yum_status('prereposetup') + +def postreposetup_hook(conduit): + report_yum_status('postreposetup') + +def exclude_hook(conduit): + report_yum_status('exclude') + +def preresolve_hook(conduit): + report_yum_status('preresolve') + +def postresolve_hook(conduit): + report_yum_status('postresolve') + +def pretrans_hook(conduit): +# we might need to change the strategy here to make a difference between update and removal. +#transaction set states +#TS_UPDATE = 10 +#TS_INSTALL = 20 +#TS_TRUEINSTALL = 30 +#TS_ERASE = 40 +#TS_OBSOLETED = 50 +#TS_OBSOLETING = 60 +#TS_AVAILABLE = 70 +#TS_UPDATED = 90 +#TS_FAILED = 100 +#TS_INSTALL_STATES = [TS_INSTALL, TS_TRUEINSTALL, TS_UPDATE, TS_OBSOLETING] +#TS_REMOVE_STATES = [TS_ERASE, TS_OBSOLETED, TS_UPDATED] + + report_yum_status('pretrans') + log("*******Pretrans********") + # Prefetch filelist for packages to be removed, + # otherwise for updated packages headers will not be available + ts = conduit.getTsInfo() + removes = ts.getMembersWithState(output_states=TS_REMOVE_STATES) + rpmdb = conduit.getRpmDB() + global smechange + global eventlist + global actionlist + global templateslist + global serviceslist + global erasing + global smeEventPretrans + global removenorebootok + + + # reinstall are not listed there so already skipped + # downgrade are going there + # update are going there, we filter them out + # real removal are the real deal there ; downgrade are played like if they were removal + for tsmem in removes: + erasing = True + (n, a, e, v, r) = tsmem.po.pkgtup + if tsmem.output_state == TS_UPDATED : + # if we are actually updating then we are not removing, and new package will do better... skipping + log('skiping as updating ==> state ' + str(tsmem.po.state) + " RPM current state" + str(tsmem.current_state) + " RPM output state" + str(tsmem.output_state)) + continue + log('**Package: ' + tsmem.name + ' to be removed') + smeevent = tsmem.name + '-update' + if os.path.isdir(events_path + os.sep + smeevent): + tmppath = events_path + os.sep + smeevent + os.sep + eventlist[tsmem.name] = smeevent + + if os.path.isdir(tmppath + "templates2expand" + os.sep): + tmppathtmpl = tmppath + "templates2expand" + os.sep + for subdir, dirs, files in os.walk(tmppathtmpl): + for file in files: + mytmptemplate = os.path.join(subdir, file).replace(tmppathtmpl,os.sep) + if not templateslist.has_key(mytmptemplate): + templateslist[mytmptemplate]=mytmptemplate + log(" template " + mytmptemplate) + + # nothing for actions ??? + tmppathsrv = tmppath + os.sep + files = [f for f in os.listdir(tmppathsrv)] + for f in files: + if os.path.islink(tmppathsrv + f): + mytmpaction = os.path.realpath(os.readlink(tmppath + f).replace("..",events_path)) + log(" link " + f + ": " + mytmpaction) + actionlist[f]=mytmpaction + + # end debug print + if os.path.isdir(tmppath + "services2adjust" + os.sep): + tmppathsrv = tmppath + "services2adjust" + os.sep + files = [f for f in os.listdir(tmppathsrv)] + for f in files: + if os.path.islink(tmppathsrv + f): + log(" service link " + f + ": " + (os.readlink(tmppathsrv + f))) + mytmpserv = os.readlink(tmppathsrv + f) + if not serviceslist.has_key(f): + serviceslist[f]=mytmpserv + else: + if mytmpserv == "restart": + log("overriding all signals, forcing restart " + f ) + serviceslist[f]="restart" + removenorebootok[n]=1; + thispo = rpmdb.searchNevra(name=n, arch=a, epoch=e, ver=v, rel=r)[0] + # thispo.dirlist thispo.ghostlist thispo.filelist + if "/etc/e-smith/web/panels/manager/cgi-bin" in thispo.dirlist: + log(" ==> pannel detected : adding navigation-conf") + actionlist['S80navigation-conf']="/etc/e-smith/events/actions/navigation-conf" + + else: + if (n.startswith('smeserver') or n.startswith('e-smith')) and not n.startswith('smeserver-locale'): + smechange = True + smechangelist[n]=str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state) + log("smechange set to True because of " + n + " with " + str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state) ) + + #only for debug + log('## smechange: '+str(smechange)) + log('## eventlist: '+ str(eventlist)) + log('## templateslist: '+str(templateslist.keys())) + log('## serviceslist: '+str(serviceslist.items())) + log('## actions ALL: ' + str(actionlist.keys())) + log('## smechangelist: ' + str(smechangelist.keys())) + + if len(serviceslist)>0: + # would it be a good idea to do some action/event there to stop service being removed ? + # for the moment we do not, logic : if template still there at posttrans, we expand it after removal + # probably the actions in some situations could be done before... + # create an empty temp event + print "Creating temporary event 'temp' and populating it..." + createevent() + print " Adding services to adjust" + for kservices in serviceslist: + log(" " + kservices + ": " + serviceslist[kservices]) + os.symlink(serviceslist[kservices], '/etc/e-smith/events/temp/services2adjust/' + kservices) + + # execute the event ; should we really wait ?? + print "Executing signal-event temp before uninstalling ..........." + os.spawnl(os.P_WAIT,signal_event,signal_event, 'temp') + smeEventPretrans = True; + +def posttrans_hook(conduit): + report_yum_status('posttrans') + log("*******Postrans********") + ts = conduit.getTsInfo() + rpmdb = conduit.getRpmDB() + + global smechange + global eventlist + global actionlist + global templateslist + global serviceslist + global erasing + global smeEventPretrans + global removenorebootok + + + for tsmem in ts.getMembers(): + (n, a, e, v, r) = tsmem.po.pkgtup + # n: name ; a : arch; e: epoch ; v: version, r: release + #if tsmem.output_state in TS_INSTALL_STATES: + # thispo = rpmdb.searchNevra(name=n, arch=a, epoch=e, ver=v, rel=r)[0] + + # we're upgrading/installing/removing a rebootpkgs package.. a reboot is required + for pkg in rebootpkgs: + if n.startswith(pkg): + log('**Package: ' + tsmem.name + ' triggers reboot') + # we do some exclusions -devel -doc ... + if pkg in rebootpkgsexclude: + cont=False + for name in rebootpkgsexclude[pkg]: + if n.startswith(pkg + name): + cont=True + if cont: + # this is an exception we do not need reboot : -devel, -doc ... + continue + # either no exception or does not fit exceptions: we need reboot + smechange = True + smechangelist[n]=str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state) + log("smechange set to True because of " + n + " with " + str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state)) + #log("smechange set to True because of " + pkg) + + # check if we're upgrading a restartpkgs rpm + for pkg in restartpkgs: + if n.startswith(pkg): + if pkg in servicenames: + for name in servicenames[pkg]: + if not serviceslist.has_key(name): + serviceslist[name] = 'restart' + else: + if not serviceslist.has_key(pkg): + serviceslist[pkg] = 'restart' + + + #if smechange is true we can ignore the following part + # wondering if we reallly do want to ignore that : let's say we want to delay kernel reboot, + # could we at least configure httpd cleanly until next week ? + # also when updating a package the erasing flag was on and prevented to do this .... + # if not smechange and not erasing: + if True: + + smeevent = tsmem.name + '-update' + if os.path.isdir(events_path + os.sep + smeevent): + tmppath = events_path + os.sep + smeevent + os.sep + eventlist[tsmem.name] = smeevent + + files = [f for f in os.listdir(tmppath)] + for f in files: + if os.path.islink(tmppath + f): + + mytmpaction = os.path.realpath(os.readlink(tmppath + f).replace("..",events_path)) + #log(" link " + f + ": " + mytmpaction) + actionlist[f]=mytmpaction + + + if os.path.isdir(tmppath + "templates2expand" + os.sep): + tmppathtmpl = tmppath + "templates2expand" + os.sep + for subdir, dirs, files in os.walk(tmppathtmpl): + for file in files: + mytmptemplate = os.path.join(subdir, file).replace(tmppathtmpl,os.sep) + if not templateslist.has_key(mytmptemplate): + templateslist[mytmptemplate]=mytmptemplate + log(" template " + mytmptemplate) + + if os.path.isdir(tmppath + "services2adjust" + os.sep): + tmppathsrv = tmppath + "services2adjust" + os.sep + files = [f for f in os.listdir(tmppathsrv)] + for f in files: + if os.path.islink(tmppathsrv + f): + log(" service link " + f + ": " + (os.readlink(tmppathsrv + f))) + mytmpserv = os.readlink(tmppathsrv + f) + if not serviceslist.has_key(f): + serviceslist[f]=mytmpserv + else: + if mytmpserv == "restart": + #only for debug + log("overriding all signals, forcing restart " + f) + serviceslist[f]="restart" + if tsmem.output_state in TS_INSTALL_STATES: + thispo = rpmdb.searchNevra(name=n, arch=a, epoch=e, ver=v, rel=r)[0] + # thispo.dirlist thispo.ghostlist thispo.filelist + if "/etc/e-smith/web/panels/manager/cgi-bin" in thispo.dirlist: + log(" ==> pannel detected : adding navigation-conf") + actionlist['S80navigation-conf']="/etc/e-smith/events/actions/navigation-conf" + + else: + if (n.startswith('smeserver') or n.startswith('e-smith')) and not n.startswith('smeserver-locale') and not (n in removenorebootok): + smechange = True + smechangelist[n]=str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state) + log("smechange set to True because of " + n + " with " + str(tsmem.po.state) + " " + str(tsmem.current_state) + " " + str(tsmem.output_state) ) + + #only for debug + log('## smechange: '+str(smechange)) + log('## eventlist: '+ str(eventlist)) + log('## templateslist: '+str(templateslist.keys())) + log('## serviceslist: '+str(serviceslist.items())) + log('## actions ALL: ' + str(actionlist.keys())) + log('## smechangelist: ' + str(smechangelist.keys())) + + # check if smechange is true or if eventlist has items.. in both cases we must initialize databases + if smechange == True or len(eventlist)>0: + print 'Initializing databases' + os.spawnl(os.P_WAIT, initialize_database, initialize_database) + + # just in case we add systemd-default and systemd-reload + if not actionlist.has_key('S88systemd-default'): + actionlist['S88systemd-default'] = '/etc/e-smith/events/actions/systemd-default' + if not actionlist.has_key('S89systemd-reload'): + actionlist['S89systemd-reload'] = '/etc/e-smith/events/actions/systemd-reload' + + # here we would like to remove duplicates + # those are potential : S??navigation-conf S??systemd-reload S??systemd-default + for act in ('navigation-conf','systemd-reload','systemd-default'): + global iter + iter = 0 + for key in actionlist.keys(): + if key.endswith(act): + iter += 1 + if iter>1: + del actionlist[key] + log("removing duplicate action " + key + " iter " + str(iter)) + + + # now, if smechange is false (no reboot needed), we can execute actions, expand templates and adjust services + + # create an empty temp event + print "Creating temporary event 'temp' and populating it..." + createevent() + + # fill it with our list of actions + if len(actionlist)>0: + print " Adding actions to execute" + for kactions in actionlist: + if os.path.isfile(actionlist[kactions]): + log(" " + kactions) + os.symlink(actionlist[kactions],'/etc/e-smith/events/temp/' + kactions) + + # fill it with our list of templates to expand + if len(templateslist)>0: + print " Adding templates to expand" + for ktemplates in templateslist: + mytemplatedir = '/etc/e-smith/templates/' + ktemplates + mytemplatemeta = '/etc/e-smith/templates.metadata/' + ktemplates + if os.path.exists(mytemplatedir) or os.path.exists(mytemplatemeta): + log(" " + ktemplates) + addtemplate2expand(ktemplates) + + if len(serviceslist)>0: + print " Adding services to adjust" + for kservices in serviceslist: + log(" " + kservices + ": " + serviceslist[kservices]) + os.symlink(serviceslist[kservices], '/etc/e-smith/events/temp/services2adjust/' + kservices) + + # execute the event ; should we really wait ?? + print "Executing signal-event temp ..........." + os.spawnl(os.P_WAIT,signal_event,signal_event, 'temp') + + if smechange: + os.spawnl(os.P_WAIT, config_set, config_set, 'set', 'UnsavedChanges', 'yes') + os.spawnl(os.P_WAIT, navigation_conf, navigation_conf) + syslog.syslog('Needs signal-event post-upgrade; signal-event reboot because of: ' + str(smechangelist.keys()) ) + print "Reload yum db for server-manager" + os.spawnl(os.P_WAIT, systemctl, systemctl, 'restart', 'yum') + +def close_hook(conduit): + if ourfile and os.path.isfile('/var/run/yum.status'): + os.unlink('/var/run/yum.status') + + if smechange: + print "\nThe following updates require a server reboot:\n" + str(smechangelist.keys()) + print "\n==============================================================" + print "WARNING: You now need to run BOTH of the following commands" + print "to ensure consistent system state:\n" + print "signal-event post-upgrade; signal-event reboot\n" + print "You should run these commands unless you are certain that" + print "yum made no changes to your system." + print "==============================================================" + diff --git a/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/yum.pm b/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/yum.pm new file mode 100644 index 0000000..52d16f8 --- /dev/null +++ b/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/yum.pm @@ -0,0 +1,416 @@ +#!/usr/bin/perl -w + +#---------------------------------------------------------------------- +# copyright (C) 2004 Shad L. Lords +# Copyright (C) 2005-2006 Gordon Rowell +# Copyright (C) 2005 Darrell May +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#---------------------------------------------------------------------- + +package esmith::FormMagick::Panel::yum; + +use strict; +use esmith::ConfigDB; +use esmith::FormMagick; +use CGI::FormMagick::TagMaker; +use esmith::util; +use esmith::cgi; +use File::Basename; +use File::stat; +use Exporter; +use Carp; + +our @ISA = qw(esmith::FormMagick Exporter); + +our @EXPORT = qw( print_yum_status_page ); + +our $VERSION = sprintf '%d.%03d', q$Revision: 1.0 $ =~ /: (\d+).(\d+)/; +our $db = esmith::ConfigDB->open or + die "Couldn't open configuration database (permissions problems?)"; + +our %dbs; + +for ( qw(available installed updates) ) +{ + $dbs{$_} = esmith::ConfigDB->open_ro("dnf_$_") or + die "Couldn't open dnf_$_ DB\n"; +} + +for ( qw(repositories) ) +{ + $dbs{$_} = esmith::ConfigDB->open("yum_$_") or + die "Couldn't open yum_$_ DB\n"; +} + +=pod + +=head1 NAME + +esmith::FormMagick::Panels::yum - useful panel functions + +=head1 SYNOPSIS + +use esmith::FormMagick::Panels::yum; + +my $panel = esmith::FormMagick::Panel::yum->new(); +$panel->display(); + +=head1 DESCRIPTION + +=cut + +=head2 new(); + +Exactly as for esmith::FormMagick + +=cut + +sub new { + shift; + my $self = esmith::FormMagick->new(csrfdelay=>600); + $self->{calling_package} = (caller)[0]; + bless $self; + return $self; +} + +=head2 get_prop ITEM PROP + +A simple accessor for esmith::ConfigDB::Record::prop + +=cut + +sub get_prop { + my ($fm, $item, $prop, $default) = @_; + warn "You must specify a record key" unless $item; + warn "You must specify a property name" unless $prop; + my $record = $db->get($item) or warn "Couldn't get record for $item"; + my $value = $record ? $record->prop($prop) : undef; + return defined $value ? $value : $default; +} + +=head2 get_value ITEM + +A simple accessor for esmith::ConfigDB::Record::value + +=cut + +sub get_value { + my ($fm,$item,$default) = @_; + my $record = $db->get($item) or warn "Couldn't get record for $item"; + my $value = $record ? $record->value() : undef; + return defined $value ? $value : $default; +} + +sub is_empty +{ + my ($fm, $yumdb) = @_; + + my $groups = $dbs{$yumdb}->get_all_by_prop(type => 'group') || 'none'; + my $packages = $dbs{$yumdb}->get_all_by_prop(type => 'package') || 'none'; + + #Show no updates if both = none + return 1 if ($packages eq $groups); + + #else return here + return; +} + +sub non_empty +{ + my ($fm, $yumdb, $type) = @_; + + $type ||= 'both'; + + return 0 unless (exists $dbs{$yumdb}); + + my $groups = scalar $dbs{$yumdb}->get_all_by_prop(type => 'group'); + return $groups if ($type eq 'group'); + + my $packages = scalar $dbs{$yumdb}->get_all_by_prop(type => 'package'); + if ($type eq 'package') + { + return $fm->package_functions_enabled ? $packages : 0; + } + + return ($fm->package_functions_enabled or $yumdb eq 'updates') ? + ($groups || $packages) : $groups; +} + +sub get_options +{ + my ($fm, $yumdb, $type) = @_; + + my %options; + + for ($dbs{$yumdb}->get_all_by_prop(type => $type)) + { + $options{$_->key} = $_->key . " " . ($_->prop("Version")||"") . " - " . + ($_->prop("Repo")||""); + } + + return \%options; +} + +sub get_names +{ + return [ keys %{get_options(@_)} ]; +} + +sub get_avail +{ + my ($fm, $yumdb, $type) = @_; + + return $fm->get_options("available", "package"); +} + +sub get_status +{ + my ($fm, $prop, $localise) = @_; + + my $status = $db->get_prop("yum", $prop) || 'disabled'; + + return $status unless $localise; + + return $fm->localise($status eq 'enabled' ? 'ENABLED' : 'DISABLED'); +} + +sub change_settings +{ + my ($fm) = @_; + my $q = $fm->{'cgi'}; + + for my $param ( qw( + PackageFunctions + ) ) + { + $db->set_prop('yum', $param, $q->param("yum_$param")); + } + + my $check4updates = $q->param("yum_check4updates"); + my $status = 'disabled'; + + if ($check4updates ne 'disabled') { $status = 'enabled'; } + + $db->set_prop('yum', 'check4updates', $check4updates); + + my $deltarpm = $q->param("yum_DeltaRpmProcess"); + $db->set_prop('yum', 'DeltaRpmProcess', $deltarpm); + + my $downloadonly = $q->param("yum_DownloadOnly"); + if ($downloadonly ne 'disabled') { $status = 'enabled'; } + + $db->set_prop('yum', 'DownloadOnly', $downloadonly); + + my $AutoInstallUpdates = $q->param("yum_AutoInstallUpdates"); + if ($AutoInstallUpdates ne 'disabled') { $status = 'enabled'; } + + $db->set_prop('yum', 'AutoInstallUpdates', $AutoInstallUpdates); + $db->set_prop('yum', 'status', $status); + + my %selected = map {$_ => 1} $q->param('SelectedRepositories'); + + foreach my $repos ( + $dbs{repositories}->get_all_by_prop(type => "repository") ) + { + $repos->set_prop("status", + exists $selected{$repos->key} ? 'enabled' : 'disabled'); + + } + + $dbs{repositories}->reload; + + unless ( system( "/sbin/e-smith/signal-event", "dnf-modify" ) == 0 ) + { + $fm->error('ERROR_UPDATING_CONFIGURATION'); + return undef; + } + + $fm->success('SUCCESS'); +} + +sub do_yum +{ + my ($fm, $function) = @_; + my $q = $fm->{'cgi'}; + + for ( qw(SelectedGroups SelectedPackages) ) + { + $db->set_prop("dnf", $_, join(',', ($q->param($_) ))); + } + + esmith::util::backgroundCommand(0, + "/sbin/e-smith/signal-event", "dnf-$function"); + + $db->reload; + + $fm->print_yum_status_page(); +} + +sub print_skip_header +{ + return "\n"; +} + +sub format_yum_log +{ + my ($fm) = @_; + + my $yum_log = $db->get_prop('dnf', 'LogFile'); + + return '' unless $yum_log and -f $yum_log; + + my @contents; + + open my $log_file, "<", $yum_log or die "Couldn't open $yum_log\n"; + push @contents, "
", <$log_file>, "
"; + close $log_file or die "Failed to close $yum_log\n"; + + return @contents; +} + +sub print_yum_status_page +{ + my ($fm) = @_; + my @yum_status; + + if (open(YUM_STATUS, "; + close(YUM_STATUS); + } + + my @yum_log = $fm->format_yum_log(); + + my $page_output = << "EOF"; +Expires: 0 +Refresh: 10; URL=/server-manager/cgi-bin/yum +Content-type: text/html + + + + + + + server manager + + + +

Please Wait - Yum Running (@yum_status)

+ @yum_log + + +EOF + + print $page_output; +} + +sub package_functions_enabled +{ + my ($fm) = @_; + + return ($db->get_prop("dnf", "PackageFunctions") eq "enabled"); +} + +sub get_repository_options +{ + my $self = shift; + + my %options; + + foreach my $repos ( + $dbs{repositories}->get_all_by_prop(type => "repository") ) + { + next unless ($repos->prop('Visible') eq 'yes' + or $repos->prop('status') eq 'enabled'); + + $options{$repos->key} = $repos->prop('Name'); + } + + return \%options; +} + +sub get_repository_current_options +{ + my $self = shift; + + my @selected; + + foreach my $repos ( + $dbs{repositories}->get_all_by_prop( type => "repository" ) ) + { + next unless ($repos->prop('Visible') eq 'yes' + or $repos->prop('status') eq 'enabled'); + + push @selected, $repos->key if ($repos->prop('status') eq 'enabled'); + } + + return \@selected; +} + +sub post_upgrade_reboot +{ + my $fm = shift; + + $db->get_prop_and_delete('dnf', 'LogFile'); + + $db->reload; + + if (fork == 0) + { + exec "/sbin/e-smith/signal-event post-upgrade; /sbin/e-smith/signal-event reboot"; + die "Exec failed"; + } + + $fm->success('SYSTEM_BEING_RECONFIGURED'); +} + +sub display_yum_log +{ + my $fm = shift; + + print $fm->format_yum_log(); + + my $yum_log = $db->get_prop_and_delete('dnf', 'LogFile'); + return; +} + +sub skip_to_postupgrade +{ + my $fm = shift; + + my $reconf = get_value($fm,"UnsavedChanges",'yes'); + if ( $reconf eq 'no' ) { + $fm->success('UPDATE_SUCCESS'); + $fm->{cgi}->param(-name => "page", -value => 0); + $fm->{cgi}->param(-name => "page_stack", -value => ''); + $fm->{cgi}->param(-name => "Next", -value => 'Next'); + $fm->{cgi}->param(-name => "wherenext", -value =>'YUM_PAGE_NO_POSTUPGRADE'); + } else { +# effective reconfigure and reboot required + $fm->success('HEADER_POSTUPGRADE_REQUIRED', 'YUM_PAGE_POSTUPGRADE'); + if ($fm->{csrf}) { + # we want to restart CSRF token timer from now + $fm->{cgi}->param(-name => 'csrf_timestamp', -value => time); + $fm->commit_session; + } + $fm->{cgi}->param(-name => "page", -value => 0); + $fm->{cgi}->param(-name => "page_stack", -value => ''); + $fm->{cgi}->param(-name => "Next", -value => 'Next'); + $fm->{cgi}->param(-name => "wherenext", -value =>'YUM_PAGE_POSTUPGRADE'); + } +} + +1; diff --git a/root/usr/share/rpm-gpg-keys/GPG-KEY-elasticsearch b/root/usr/share/rpm-gpg-keys/GPG-KEY-elasticsearch new file mode 100644 index 0000000..1b50dcc --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/GPG-KEY-elasticsearch @@ -0,0 +1,31 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.14 (GNU/Linux) + +mQENBFI3HsoBCADXDtbNJnxbPqB1vDNtCsqhe49vFYsZN9IOZsZXgp7aHjh6CJBD +A+bGFOwyhbd7at35jQjWAw1O3cfYsKAmFy+Ar3LHCMkV3oZspJACTIgCrwnkic/9 +CUliQe324qvObU2QRtP4Fl0zWcfb/S8UYzWXWIFuJqMvE9MaRY1bwUBvzoqavLGZ +j3SF1SPO+TB5QrHkrQHBsmX+Jda6d4Ylt8/t6CvMwgQNlrlzIO9WT+YN6zS+sqHd +1YK/aY5qhoLNhp9G/HxhcSVCkLq8SStj1ZZ1S9juBPoXV1ZWNbxFNGwOh/NYGldD +2kmBf3YgCqeLzHahsAEpvAm8TBa7Q9W21C8vABEBAAG0RUVsYXN0aWNzZWFyY2gg +KEVsYXN0aWNzZWFyY2ggU2lnbmluZyBLZXkpIDxkZXZfb3BzQGVsYXN0aWNzZWFy +Y2gub3JnPokBOAQTAQIAIgUCUjceygIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgEC +F4AACgkQ0n1mbNiOQrRzjAgAlTUQ1mgo3nK6BGXbj4XAJvuZDG0HILiUt+pPnz75 +nsf0NWhqR4yGFlmpuctgCmTD+HzYtV9fp9qW/bwVuJCNtKXk3sdzYABY+Yl0Cez/ +7C2GuGCOlbn0luCNT9BxJnh4mC9h/cKI3y5jvZ7wavwe41teqG14V+EoFSn3NPKm +TxcDTFrV7SmVPxCBcQze00cJhprKxkuZMPPVqpBS+JfDQtzUQD/LSFfhHj9eD+Xe +8d7sw+XvxB2aN4gnTlRzjL1nTRp0h2/IOGkqYfIG9rWmSLNlxhB2t+c0RsjdGM4/ +eRlPWylFbVMc5pmDpItrkWSnzBfkmXL3vO2X3WvwmSFiQbkBDQRSNx7KAQgA5JUl +zcMW5/cuyZR8alSacKqhSbvoSqqbzHKcUQZmlzNMKGTABFG1yRx9r+wa/fvqP6OT +RzRDvVS/cycws8YX7Ddum7x8uI95b9ye1/Xy5noPEm8cD+hplnpU+PBQZJ5XJ2I+ +1l9Nixx47wPGXeClLqcdn0ayd+v+Rwf3/XUJrvccG2YZUiQ4jWZkoxsA07xx7Bj+ +Lt8/FKG7sHRFvePFU0ZS6JFx9GJqjSBbHRRkam+4emW3uWgVfZxuwcUCn1ayNgRt +KiFv9jQrg2TIWEvzYx9tywTCxc+FFMWAlbCzi+m4WD+QUWWfDQ009U/WM0ks0Kww +EwSk/UDuToxGnKU2dQARAQABiQEfBBgBAgAJBQJSNx7KAhsMAAoJENJ9ZmzYjkK0 +c3MIAIE9hAR20mqJWLcsxLtrRs6uNF1VrpB+4n/55QU7oxA1iVBO6IFu4qgsF12J +TavnJ5MLaETlggXY+zDef9syTPXoQctpzcaNVDmedwo1SiL03uMoblOvWpMR/Y0j +6rm7IgrMWUDXDPvoPGjMl2q1iTeyHkMZEyUJ8SKsaHh4jV9wp9KmC8C+9CwMukL7 +vM5w8cgvJoAwsp3Fn59AxWthN3XJYcnMfStkIuWgR7U2r+a210W6vnUxU4oN0PmM +cursYPyeV0NX/KQeUeNMwGTFB6QHS/anRaGQewijkrYYoTNtfllxIu9XYmiBERQ/ +qPDlGRlOgVTd9xUfHFkzB52c70E= +=92oX +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/PGDG-RPM-GPG-KEY-RHEL b/root/usr/share/rpm-gpg-keys/PGDG-RPM-GPG-KEY-RHEL new file mode 100644 index 0000000..0f3d620 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/PGDG-RPM-GPG-KEY-RHEL @@ -0,0 +1,41 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=Elfg +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/PGDG-RPM-GPG-KEY-RHEL-nonfree b/root/usr/share/rpm-gpg-keys/PGDG-RPM-GPG-KEY-RHEL-nonfree new file mode 100644 index 0000000..0f3d620 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/PGDG-RPM-GPG-KEY-RHEL-nonfree @@ -0,0 +1,41 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=Elfg +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-7 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-7 new file mode 100644 index 0000000..f205ede --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-7 @@ -0,0 +1,29 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.11 (GNU/Linux) + +mQINBFKuaIQBEAC1UphXwMqCAarPUH/ZsOFslabeTVO2pDk5YnO96f+rgZB7xArB +OSeQk7B90iqSJ85/c72OAn4OXYvT63gfCeXpJs5M7emXkPsNQWWSju99lW+AqSNm +jYWhmRlLRGl0OO7gIwj776dIXvcMNFlzSPj00N2xAqjMbjlnV2n2abAE5gq6VpqP +vFXVyfrVa/ualogDVmf6h2t4Rdpifq8qTHsHFU3xpCz+T6/dGWKGQ42ZQfTaLnDM +jToAsmY0AyevkIbX6iZVtzGvanYpPcWW4X0RDPcpqfFNZk643xI4lsZ+Y2Er9Yu5 +S/8x0ly+tmmIokaE0wwbdUu740YTZjCesroYWiRg5zuQ2xfKxJoV5E+Eh+tYwGDJ +n6HfWhRgnudRRwvuJ45ztYVtKulKw8QQpd2STWrcQQDJaRWmnMooX/PATTjCBExB +9dkz38Druvk7IkHMtsIqlkAOQMdsX1d3Tov6BE2XDjIG0zFxLduJGbVwc/6rIc95 +T055j36Ez0HrjxdpTGOOHxRqMK5m9flFbaxxtDnS7w77WqzW7HjFrD0VeTx2vnjj +GqchHEQpfDpFOzb8LTFhgYidyRNUflQY35WLOzLNV+pV3eQ3Jg11UFwelSNLqfQf +uFRGc+zcwkNjHh5yPvm9odR1BIfqJ6sKGPGbtPNXo7ERMRypWyRz0zi0twARAQAB +tChGZWRvcmEgRVBFTCAoNykgPGVwZWxAZmVkb3JhcHJvamVjdC5vcmc+iQI4BBMB +AgAiBQJSrmiEAhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBqL66iNSxk +5cfGD/4spqpsTjtDM7qpytKLHKruZtvuWiqt5RfvT9ww9GUUFMZ4ZZGX4nUXg49q +ixDLayWR8ddG/s5kyOi3C0uX/6inzaYyRg+Bh70brqKUK14F1BrrPi29eaKfG+Gu +MFtXdBG2a7OtPmw3yuKmq9Epv6B0mP6E5KSdvSRSqJWtGcA6wRS/wDzXJENHp5re +9Ism3CYydpy0GLRA5wo4fPB5uLdUhLEUDvh2KK//fMjja3o0L+SNz8N0aDZyn5Ax +CU9RB3EHcTecFgoy5umRj99BZrebR1NO+4gBrivIfdvD4fJNfNBHXwhSH9ACGCNv +HnXVjHQF9iHWApKkRIeh8Fr2n5dtfJEF7SEX8GbX7FbsWo29kXMrVgNqHNyDnfAB +VoPubgQdtJZJkVZAkaHrMu8AytwT62Q4eNqmJI1aWbZQNI5jWYqc6RKuCK6/F99q +thFT9gJO17+yRuL6Uv2/vgzVR1RGdwVLKwlUjGPAjYflpCQwWMAASxiv9uPyYPHc +ErSrbRG0wjIfAR3vus1OSOx3xZHZpXFfmQTsDP7zVROLzV98R3JwFAxJ4/xqeON4 +vCPFU6OsT3lWQ8w7il5ohY95wmujfr6lk89kEzJdOTzcn7DBbUru33CQMGKZ3Evt +RjsC7FDbL017qxS+ZVA/HGkyfiu4cpgV8VUnbql5eAZ+1Ll6Dw== +=hdPa +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-8 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-8 new file mode 100644 index 0000000..30b69a6 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-EPEL-8 @@ -0,0 +1,28 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFz3zvsBEADJOIIWllGudxnpvJnkxQz2CtoWI7godVnoclrdl83kVjqSQp+2 +dgxuG5mUiADUfYHaRQzxKw8efuQnwxzU9kZ70ngCxtmbQWGmUmfSThiapOz00018 ++eo5MFabd2vdiGo1y+51m2sRDpN8qdCaqXko65cyMuLXrojJHIuvRA/x7iqOrRfy +a8x3OxC4PEgl5pgDnP8pVK0lLYncDEQCN76D9ubhZQWhISF/zJI+e806V71hzfyL +/Mt3mQm/li+lRKU25Usk9dWaf4NH/wZHMIPAkVJ4uD4H/uS49wqWnyiTYGT7hUbi +ecF7crhLCmlRzvJR8mkRP6/4T/F3tNDPWZeDNEDVFUkTFHNU6/h2+O398MNY/fOh +yKaNK3nnE0g6QJ1dOH31lXHARlpFOtWt3VmZU0JnWLeYdvap4Eff9qTWZJhI7Cq0 +Wm8DgLUpXgNlkmquvE7P2W5EAr2E5AqKQoDbfw/GiWdRvHWKeNGMRLnGI3QuoX3U +pAlXD7v13VdZxNydvpeypbf/AfRyrHRKhkUj3cU1pYkM3DNZE77C5JUe6/0nxbt4 +ETUZBTgLgYJGP8c7PbkVnO6I/KgL1jw+7MW6Az8Ox+RXZLyGMVmbW/TMc8haJfKL +MoUo3TVk8nPiUhoOC0/kI7j9ilFrBxBU5dUtF4ITAWc8xnG6jJs/IsvRpQARAQAB +tChGZWRvcmEgRVBFTCAoOCkgPGVwZWxAZmVkb3JhcHJvamVjdC5vcmc+iQI4BBMB +AgAiBQJc9877AhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAh6kWrL4bW +oWagD/4xnLWws34GByVDQkjprk0fX7Iyhpm/U7BsIHKspHLL+Y46vAAGY/9vMvdE +0fcr9Ek2Zp7zE1RWmSCzzzUgTG6BFoTG1H4Fho/7Z8BXK/jybowXSZfqXnTOfhSF +alwDdwlSJvfYNV9MbyvbxN8qZRU1z7PEWZrIzFDDToFRk0R71zHpnPTNIJ5/YXTw +NqU9OxII8hMQj4ufF11040AJQZ7br3rzerlyBOB+Jd1zSPVrAPpeMyJppWFHSDAI +WK6x+am13VIInXtqB/Cz4GBHLFK5d2/IYspVw47Solj8jiFEtnAq6+1Aq5WH3iB4 +bE2e6z00DSF93frwOyWN7WmPIoc2QsNRJhgfJC+isGQAwwq8xAbHEBeuyMG8GZjz +xohg0H4bOSEujVLTjH1xbAG4DnhWO/1VXLX+LXELycO8ZQTcjj/4AQKuo4wvMPrv +9A169oETG+VwQlNd74VBPGCvhnzwGXNbTK/KH1+WRH0YSb+41flB3NKhMSU6dGI0 +SGtIxDSHhVVNmx2/6XiT9U/znrZsG5Kw8nIbbFz+9MGUUWgJMsd1Zl9R8gz7V9fp +n7L7y5LhJ8HOCMsY/Z7/7HUs+t/A1MI4g7Q5g5UuSZdgi0zxukiWuCkLeAiAP4y7 +zKK4OjJ644NDcWCHa36znwVmkz3ixL8Q0auR15Oqq2BjR/fyog== +=84m8 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-MariaDB b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-MariaDB new file mode 100644 index 0000000..b0d722a --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-MariaDB @@ -0,0 +1,132 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.14 (GNU/Linux) + +mQGiBEtohJARBACxvZpWSIMTp/e7BUzSW+WDL7Pl0JDg6v7ZJFGJk9qo+5JXIiis +497Ul0FmVJ6EoyVzfpqe5FyUvqtLCkM6UP5adyvXTHi1KMiYacu2q5yRhDpMKbpM +LkAg23Yyz1yK/d0TsAkerLJ6K1Bh8NIm44Op+qFrDxeYZDIR5Q8WaCdK8wCg/jc8 +p/4XaKq74ghUHEX+35qk63UD/0YEsgHrsRQZ42wKNeO8ZUJKqCVHXYJrCq7DhRhn +U5aYnuK3op0JusPN5fdIGkKwJy24dWRoRfNIIg0WvM8qUNrC2NvhomnZNudsI0Jb +XapRemrIwbvrZToD6ei1awdVqa5fT6XIxV4MSQEwn47qmUNSz/0TkUmB3VZ2EL/j +zfHUA/91ZfAdWCmRemTLWRrzIYYJKyEInZ0qwZVrkyMY8+T7b2/6RGR0f2oV1dOx +cjbd0+N3vKrUkjuzkcVu/oB8wq9UBfuSHwsxYqub4gvIh0/LW+CsWa955sQ/Hj9H +48j3nUHaXqM9uJyMMgMlCdo3rLpnYCJH8w2kFfLHIDksMs1YtLQ9TWFyaWFEQiBQ +YWNrYWdlIFNpZ25pbmcgS2V5IDxwYWNrYWdlLXNpZ25pbmcta2V5QG1hcmlhZGIu +b3JnPohiBBMRAgAiBQJREUepAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK +CRDLywgqG7lD28y4AJ0aByfYvJWqBm5PZjusZiG0vo9SRwCeM0izj/oryMu0fJi3 +kRbTlojzCd2JAhwEEAECAAYFAlERSAgACgkQQd3AtA2lbyLlsQ/+KbSkMhjnZ73I +9XhndOX7USxIIumuVI2nU829+EiLhxYYcVJHUO5tO9rvRGgmSg0IhPSwEMK3GLC3 +P5v6gipyCKOAnx2T0qF2k8gq9YRVFd7LZqJsM06HuGsFG5SWieVjjjE0s7A/urLb +Uxa067pleZeKFCTTxTnar2eBKQAhwZkRSEBvvcAHkqQQAMwiAHvq2A0IjC3txqUF +iQbMouPCOJYA3Wn3NXKZwCxcyl2WwGSt7EwAs6C6d266QyWVQT+kZ6JFgRibcnfl +sNdniknGue5EKAj0nlhHGf6cyqJZ3AN4h+W40kKfIqnaeWkT0K+MnKp3Tah9y+h0 +u5buKfR5D/tK5ZYLUS0ujQJ0tlO1KpZuvTn13n7OMn7fOb3yqUcthnSTcuB/wpH2 +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 +=bSQ3 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-Rocky-8 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-Rocky-8 new file mode 100644 index 0000000..28ce769 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-Rocky-8 @@ -0,0 +1,29 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBGAofzYBEAC6yS1azw6f3wmaVd//3aSy6O2c9+jeetulRQvg2LvhRRS1eNqp +/x9tbBhfohu/tlDkGpYHV7diePgMml9SZDy1sKlI3tDhx6GZ3xwF0fd1vWBZpmNk +D9gRkUmYBeLotmcXQZ8ZpWLicosFtDpJEYpLUhuIgTKwt4gxJrHvkWsGQiBkJxKD +u3/RlL4IYA3Ot9iuCBflc91EyAw1Yj0gKcDzbOqjvlGtS3ASXgxPqSfU0uLC9USF +uKDnP2tcnlKKGfj0u6VkqISliSuRAzjlKho9Meond+mMIFOTT6qp4xyu+9Dj3IjZ +IC6rBXRU3xi8z0qYptoFZ6hx70NV5u+0XUzDMXdjQ5S859RYJKijiwmfMC7gZQAf +OkdOcicNzen/TwD/slhiCDssHBNEe86Wwu5kmDoCri7GJlYOlWU42Xi0o1JkVltN +D8ZId+EBDIms7ugSwGOVSxyZs43q2IAfFYCRtyKHFlgHBRe9/KTWPUrnsfKxGJgC +Do3Yb63/IYTvfTJptVfhQtL1AhEAeF1I+buVoJRmBEyYKD9BdU4xQN39VrZKziO3 +hDIGng/eK6PaPhUdq6XqvmnsZ2h+KVbyoj4cTo2gKCB2XA7O2HLQsuGduHzYKNjf +QR9j0djjwTrsvGvzfEzchP19723vYf7GdcLvqtPqzpxSX2FNARpCGXBw9wARAQAB +tDNSZWxlYXNlIEVuZ2luZWVyaW5nIDxpbmZyYXN0cnVjdHVyZUByb2NreWxpbnV4 +Lm9yZz6JAk4EEwEIADgWIQRwUcRwqSn0VM6+N7cVr12sbXRaYAUCYCh/NgIbDwUL +CQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRAVr12sbXRaYLFmEACSMvoO1FDdyAbu +1m6xEzDhs7FgnZeQNzLZECv2j+ggFSJXezlNVOZ5I1I8umBan2ywfKQD8M+IjmrW +k9/7h9i54t8RS/RN7KNo7ECGnKXqXDPzBBTs1Gwo1WzltAoaDKUfXqQ4oJ4aCP/q +/XPVWEzgpJO1XEezvCq8VXisutyDiXEjjMIeBczxb1hbamQX+jLTIQ1MDJ4Zo1YP +zlUqrHW434XC2b1/WbSaylq8Wk9cksca5J+g3FqTlgiWozyy0uxygIRjb6iTzKXk +V7SYxeXp3hNTuoUgiFkjh5/0yKWCwx7aQqlHar9GjpxmBDAO0kzOlgtTw//EqTwR +KnYZLig9FW0PhwvZJUigr0cvs/XXTTb77z/i/dfHkrjVTTYenNyXogPtTtSyxqca +61fbPf0B/S3N43PW8URXBRS0sykpX4SxKu+PwKCqf+OJ7hMEVAapqzTt1q9T7zyB +QwvCVx8s7WWvXbs2d6ZUrArklgjHoHQcdxJKdhuRmD34AuXWCLW+gH8rJWZpuNl3 ++WsPZX4PvjKDgMw6YMcV7zhWX6c0SevKtzt7WP3XoKDuPhK1PMGJQqQ7spegGB+5 +DZvsJS48Ip0S45Qfmj82ibXaCBJHTNZE8Zs+rdTjQ9DS5qvzRA1sRA1dBb/7OLYE +JmeWf4VZyebm+gc50szsg6Ut2yT8hw== +=AiP8 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-Rocky-8-Testing b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-Rocky-8-Testing new file mode 100644 index 0000000..d06900d --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-Rocky-8-Testing @@ -0,0 +1,29 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBGAof3sBEAC50QnXSLxhE+n0gZkX5d5zyBO+SyblfEye9KGf/nMFRu0nPnhO +y0WlkP40fg2di9iKlTtvIWJfxs2+7PqA9wcU4vnXJpF5MIGurmDKRhBG07v8zMCg +aU99c9SWQ+76FvomoVzdfj5sSYHfcqD7gRm6VeUlmVv1twqXBm9bfIIF/skXBS9Y +Gld1py9zSzWgjkT2fUukV9P9FaUuWu6Sbz4wD/Gr+zaSbobonH7zcQjAMbNuJgD1 +diRL7kS+K8QPEPN94IrWJyFegjRzed0e6FAAHqx2Qlrd/09/Tvlxi+yr7A+FpkjF +41LWg58MZ78letMqgLJI84Ui5ZqUUNJlOF2likQo85yIUV4shlKSgrVd1xC76pxm +yLWPxcluyS9AdD1tNqW+vIAcQX7V6WY0Pg4A7rAqi+hhXLNwuckPoOGWkkcMIfXH +ykHsNp9S7YFqi5QdNaw5NciVHIJWXfgDTyGHf+IPNe5HKZJHU+HAmdoPAO7dSWyZ +tUDLNog+ssvoIcLz8ZzODS2WO9DsiJ0U7qZen+erto+fri17fHi3mRXGApnAWoBM +1eTWbXk3xV2q4Xcst9buCAWWoX1G7XYtjAKNLJ6w6HoN4nN+yyot6fNdd8nLEXCR +huPM1gtRqUj6qpTxcUqSRsyb7wE34N+XO1OE9WUJMDauJLhllYhZqbRBSwARAQAB +tDNSZWxlYXNlIEVuZ2luZWVyaW5nIDxpbmZyYXN0cnVjdHVyZUByb2NreWxpbnV4 +Lm9yZz6JAk4EEwEIADgWIQQJGkQEfD2LejMfXhhUieQru+LBCAUCYCh/ewIbDwUL +CQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRBUieQru+LBCMVvD/0cJzEtybgN7hPW +ZHwOVmc0ovgHHpsKJJjY6XpmEqTbPhGiq7ZklxMweHh3MBWymcGaJJZH+8HIwGfD +m1DrhllJ4ddSz4y27fqbwfuRLx4BexwanxHN2jfp1q2E8KhAbtJYuZHEsChZHGI7 +JCbKYr3h0wat2GSZ9oM2Bc79hoJ73h73nXKLQrGwkRP52RxJA23sSwJp408tPi++ +3kaScIF9Ji+jkXIgX9yCzrBAxmn4r0qOO8x/F/m1xDmLVwRdvKBNvtA9xOH4tQco +rGu11sDvB6WdlNYyA2yFjbHBPexTBLLovNq45jT7o6DkZyj1ej7D5xXfE7nOA1KF +sGxoT0Xo1GekIkF17A3EPl8ijw3PJcfF99s+NFE5z9PK5V2nRSelv3AfiL89iIZG +wcCqRijg/DxWQPNP952wow1MRWZKd6cSFejS+sKYJueH9IVkxxIPr0YRQQi3BD6I +93Fug8dTLWE6QSIOlrMcvXQZhty57b0WEOzVRLF8j46KOqEN4w3CrrJ3iFKR2ksX +YeK0Lz+Zm6gVmEgADkLHamQxEU8KQLsLhYh42/qbBicBXjQ7Zt6Y4Y48cUzThfaK +p0Iy+QGxbC0LMpmnx8arnOh0QLxGkEnCNggoupQI3ql+QYoUA+k0FUlv3lHC1vY8 +sdkkxYa8srjZAmmaO+RoMqB1P38URg== +=kXX3 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-SMEServer b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-SMEServer new file mode 100644 index 0000000..8e4fe72 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-SMEServer @@ -0,0 +1,19 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.6 (GNU/Linux) + +mQGiBEM84T4RBACMPEsM0PcEqt0hFSOWI4BLLUfBbXZVDekRD24vEq9wGQWWvNxf +tABh53/eLemGxLF28dqipU5TK+6B0FFDkRyaBppmhmtgBD4jDfw9hPoIIw8ufHO6 +F929yBdRuKLPMn+uQ74Bva1JEhUChxMafE+yyrXORXvZWjR5sc2THJWTywCgnfpQ +ENzljYR1TcM451xgYxIQKBkD/jHPXM7jfCUYobUQ2P80GqaPCnNtA5nhR9/jyUmP +KPEgiQCVYQmfXWL6/LnnHEi0IFmZ7bDZc7hLO4JhWQINDgg5WDFNflawCeqZ2KIp +j+SnwbudnXmE4QdGJ66DrS7eNqJkFvLAT/S2Y2A9QIZCWKrg3HfvbrmiR4abRcy0 +kzBVA/sE/6OTLSO5o/kWBIuPQ616800vhXhLdITEPETkkaA3Oj0POKP6AJi7aLKO +KqpZzyLZi80vhCauztiQmY6fJiHQym6b/HsRSKf+DjExxoq4zp3TEojUK8ReSY6P +Mx9nsK5l+T70BX4iJsFdcjJHipnXBcuHOMlQtRlszU0b3NMLE7QvU01FIFNlcnZl +ciA3IHNpZ25pbmcga2V5IDxidWd0ZWFtQGNvbnRyaWJzLm9yZz6IXgQTEQIAHgUC +QzzhPgIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRA9cgUIHpyTCJWFAJ4xgIUK +VQysThX/neAbxWvl2YeqpQCeOOUivZbOSScohei7r8jCa+xUiVWIRgQTEQIABgUC +QzzjFwAKCRC8R3SEoTuRTTJbAJ9auKPxDeQ1hLN43hO5/bmd+TUKggCeIKAFeaR7 +9Pfl09sv0czvNTFSLRM= +=z7FN +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-elrepo.org b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-elrepo.org new file mode 100644 index 0000000..fe0c082 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-elrepo.org @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (GNU/Linux) + +mQGiBEm+/6QRBAC5mbtqOFSQ0FkTLIMdIoqxtraIeUqwbPp3IBYQ/u/EREjyEf1D +qFyBEXII0dD8JDT85vRZ81jhB7nFWa0VbUfY0xfghkbnokiNBVNpiQcvszw3UYDF +aLAaOC8Z98vmlsQaBBTQG6704ZXLr7FJyG3GP5WE6egXIQQbrMcdmCoRBwCg/dwC +HLWjuemoDc5SX7hKHbB4zZ8D/jP+oMbqz+bDn8OZ2UuaGdxr+mHW8tzTdPjnEU8e +hUt1ws8eBqn/gMfKvUBa8xFSILe8Ty99u+VjFbcRsdf0H6dRre9AdDVUz5oxzoPw +gamA8mhPQvFh3wt9smtRUh5IoM2LiM1s5pGMLuYuvSnVUPArEnSfW6K5I6v7OarU +3WfrBACDEGGcaWKjfdkRtmKIQrzu6AnldVC1ISLVAoqxHnKNFTk1BgO0PSZDpfJI +x8fMCnGlusoL6F5+LYEk4K4B0zvlj1ur3JocjxpuBLccl94JTo/+I9ZbS8ptUqLw +LBUkgIQJzzIH4G5NZsQ3FpzSWGRFVa7etqTv9BfUMUmJxhEoobQ/ZWxyZXBvLm9y +ZyAoUlBNIFNpZ25pbmcgS2V5IGZvciBlbHJlcG8ub3JnKSA8c2VjdXJlQGVscmVw +by5vcmc+iGAEExECACAFAkm+/6QCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAK +CRAwm8MFuq2uUlgWAKCGWOpyodbzxS7Xy/0X9m9qVnHq+ACfUHrQzYAtFRpT07Sg +giosE+mvAKu5Ag0ESb7/pxAIALgT0q0HhwugE717a7N+gAtCbFu8pCXOZcrAnJpG +cMA9VWmsODZStPTxXYM2ggCMSzUnNis8pPZOPIP5C+t2IYtVjLshM4C9UiY7u5ET +jErWCxWmF+2QLO50K56E4qxj0wufZt9P+Ih0USUM5L2oyrQG51uj/2v3Qq3igc8Z +NTtmEOfis3losusQbAfZtTBmNQ0570kkhMxiyavgAUxLenXHYrkDJFuL7XdBCmna +kykTn2dzU81rIDZ+QPxII4V/eZ5xGiRY/EDUIAysEV2m0NNZgWi/twUnZICm7zYp +VRviJrBnFTvNEPMhiGRnJgQp/Krv4WIHQ67N8lQg3q5RJX8AAwUH/0UBjBgbsuWR +dB+ZYWjKPBy+bJY/6HefPUuLrt3QDNINMW8kY7VzWRMWyGc4IlPJDW0nwOn/vT5H +Dgc3YmA3tm7cKj5wpFijzff61Db8eq+CUKGscKxDBGzHq6oirM5U7DQLmipCs5Eb +efwHIjE3aOUSnoQmniEnBWI2hm/rftmY9oJSi8xgns4wAokDPiMcucADtbV3fznx +ppuowtBi8bcGB1vJZjTySQcSKWv+IVp5ej06uZ9501BEm6HxUZkuAGPecP65kcQu +5bg7B7LQeI5AWyujqvfuWgAF34xhl9QU/sDWxM3wUog+bw7y8pyWCqnJhp70yx8o +SqzhFygT62eISQQYEQIACQUCSb7/pwIbDAAKCRAwm8MFuq2uUq8PAKC1+E2pSwiS +oHXkKYPYDwApsP1mVACfRe1YnggLYQtG9LMeweVQQC77rK8= +=qyRr +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-fedora-extras b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-fedora-extras new file mode 100644 index 0000000..e89f164 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-fedora-extras @@ -0,0 +1,35 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBEG+vu8RBACyH3cUSp+DXbyIvZ075bGDhjhRCf8m44UW2cCQdO/45CJBkRnC +AA6SHthCrXCVKIuuo1jSwy8kMXt1P/7IpF6Tc8ZMzcHKTyNetuuD/A7oavgnrJNb +QVTScqbD6VrvjUAPpDz5TMPqMMFYwylp+ySKMQpoPOYoqdNE3XwnA5vOywCg44+S +KDWIV0j5xCeIAoa47VmgF2cEAK/FIZRkbb7+i2Fob1mxKsnuLN/xx67aBpU2w7HO +scVnkke08lRestDVk/6xb+lrq+gVLdNBfAANBrOcwRv2heu+Zu3PZGuC166/JWFM +kx5a9TkI0zQAw72LqKeX4VDBRz5fUoIs/C+3aGc5Mh+h8fZYjJGf0kr/90rnd/0e +WqsBA/9ONArdHN44aICt7xku/t98p9Da04A7kRYTHlLrBk5i0U4JJXKei7ZAzNi4 +Or//8ATepQdsBMCJVx1Ss/vJKxupLG9Mw43nbNuA5SmOSPnAoyglYadKyaUXBbVj +mkqf9ZkjOMfD5u9PEWMWMq3f8uf05qxsrBDeiyc7Fk0jBYTvnrQ4RmVkb3JhIFBy +ZSBFeHRyYXMgUmVsZWFzZSA8cHJlLWV4dHJhc0BmZWRvcmFwcm9qZWN0Lm9yZz6I +XgQTEQIAHgUCQb6+7wIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCC7ZUEGscM +5uAMAKC+XaPSCYIpdcmJYEe9rNxYMz/hLwCeOyBYUYA2L0WnbfXuNafRqwta/s2I +RgQSEQIABgUCQgD+/AAKCRC0QmnQTypv0lVYAJoCLolPSuAj873GbV2+m3Bj6sS/ +UACeNcDmIWeruRld83uSQcx4xJyEOUa0KUZlZG9yYSBQcm9qZWN0IDxmZWRvcmEt +ZXh0cmFzQHJlZGhhdC5jb20+iF4EExECAB4FAkIAeFQCGwMGCwkIBwMCAxUCAwMW +AgECHgECF4AACgkQgu2VBBrHDOYu8wCffLm57mvcYApV7eqvHXr29gNAbLwAoJVq +JWvgBIvg8/4MiqwKAQ1MDkIUiEYEEhECAAYFAkIA/wQACgkQtEJp0E8qb9LQJACf +c0LteS513+5O6erQO7RBUxC/NI4AniDHK+Ogf5l5Gs2ciwD+WApsZ4mPtDBGZWRv +cmEgUHJvamVjdCA8ZmVkb3JhLWV4dHJhc0BmZWRvcmFwcm9qZWN0Lm9yZz6IXgQT +EQIAHgUCQgB4iQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCC7ZUEGscM5gZ7 +AJ9n8CYN6nvMqxCbQQZwvs7e/J4//QCeM3nDwC5EfEbEtOHPIYAqTf3IQZaIRgQS +EQIABgUCQgD/BAAKCRC0QmnQTypv0qKuAJ0cnqk9BbbblRSBbn72bK/BAquzywCe +M7S0C6rfrYlfOjQHQdVB5GitT9u5AQ0EQb6+8RAEAJmsZ5apOFz0Fj6RwX0D+nOU +Atdzd3zpTNzu4j8+L750ePutjuwizEmCxKycchuG+gGasLmdxY+xk5AUB7gLt4ms +eKsWyHvQt+H4wG8jjOjHWXlaJkZaYQUxpVPd6/11hkoqpodJ9ckfoIJnpUJWDcd3 +HTW7jdq+ZtBXjQlwvh3HAAMHA/9g50+hqjn23d91SaFTkvaAySZYHEF/xm5sOV1X +Z37XNFdl7JRl6BN7y59PE9Nk6qP4yHqH1G2YNDL3BmejChMF5GmEqluNdnvfFvwk +yqPvE7qCv8BhktPqsnrpFmtfeDFI4vztD08oab9LdkDvQwLHBZpc+wCb4VJzOkaZ +7e7VP4hJBBgRAgAJBQJBvr7xAhsMAAoJEILtlQQaxwzmxdYAn3X4X/ENC3V4yPDR +7X6oVeIVr5fvAJ4n5vY10NpvYKV5arzKd8DSW2m5Bg== +=N/fy +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-koozali b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-koozali new file mode 100644 index 0000000..6d9c555 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-koozali @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (GNU/Linux) + +mQINBFbb5JYBEAC9I+N9hcehQ60cessrpEfyuJhoG4G5hUtF2ri53YzvsW/+in6Y +va5r4OM9/iiX01ie5bO7uj7JIbWkoAmrIFoQ3aKSFPHa8X6QFZ9T1Ho1vKfVnXYW +GzeX2VXavEGC4zRjD74AoKj4Pm0Gsa7Yi8iKOCWuxOU2kwc3+RfEiMi18kdtX6UR +X8KrXZfeG3n8gLrLeK7lqphpk8SUr9BTXnWVGlPUt15qFS5wkcPlhSlnutknFEFI +i7hLSUqYSL+8L3hNcoNMuKvMAL+TS40s4Ei5G4SrAGxXH1z9NVE98msUfAdK3ROi +7xigNZFjCFiaL0D27ropBG0oJQURLtbAdCis5vlgVpz3YKQTadmNYy8iU0j9V5uv +kLlwfXgKOVGrYwrW3c04u64iIRDa638dD0JObAyGQn/H7lCtifH0QNmOr4g20dEl +Yfhd4jyWFOwg8/qYlCDvfvKMy+CHsib8+5p6uUIuDd7Xrm2/lgnsFJSFrazXh9Ly +ieWmY5wpX0Eq26MiSNSDm0AKYEu+yMa7Kifgh5dpjqe1/x0B0SR0mcRN+I2GSunE +xIx/PoZf8wUAKsPq5a9lcTR9PwSu7si7wgfHI187GbuLbIoxobk138TcKiZVcGmJ +9aDNWS68EbfjKP+ftJB8pHRW0ViFi/KOydkA3NQ+zRNGIle/6+nLQ3G/8wARAQAB +tDlLb296YWxpIFNNRSBTZXJ2ZXIgc2lnbmluZyBrZXkgKDEwKSA8YnVndGVhbUBr +b296YWxpLm9yZz6JAjYEEwECACAFAlbb5JYCGwMGCwkIBwMCBBUCCAMEFgIDAQIe +AQIXgAAKCRAaDbzAVocxUWyeEACC+CXtPCeSC8TS+kDzpSJ7+7Q+oJAydQjknmeO +kYOP/8aw0OGLysMQtdErOlJh+Am5oJyLquKH2Fs3NpwjbCy/jvFuFuwxZ0ahM3dd +6nf7Evd0rOoZUO+xeoUzl/ykHgXaEGY2750Tib7/R9lOSHglgrF/QOIelHKOZqOU +y0nT3w+FTyqf3ZNA9IMS/YvfMZGJ0KgxoOx8nV/GMVmt0gKHqz2DL3muHGiXub6D +EXb8aZOH9q6dAGrpixEExBRgtAs3JTYl2M47w4xDb91/yRWoqUHmlv8aV7ZQr20c +sLuxijbqpfR//Vp9OEXFmK6jCd1s0qBKwJu+e8wiRD8UvDLzic0Hki5imBggos1g +TWAec9yjBMUUVKse1opmU14k1b8N+iv2d2MaspHrswVRU3Um/0vDlny0OMtYBnvz +nBPaKSk8FcqDbItFBJCK7Y3Rrx5dsTadAr+Dmli54EM9aYOrhPG7GBLDjML8HI2x +RjxQ4aAOAl0ETZmgC9Ib2YBt2Xza1ogtTHOjie+Am0j5il0FeGohV28UcJluy5Zt +bctEEPeeZq7kzYDvv0lSiXy0S11TsvSXbmhs0Z/Lh7CorMaHUiRjt+Hg17CGe0V9 +jzFRUokUykrDqTDai0R7UYRcEUpKfiA+32yqf11J2kpyqzueJ3z59xPr2n4SkZ6Y +bu7tgg== +=aVLF +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-mysql b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-mysql new file mode 100644 index 0000000..281e134 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-mysql @@ -0,0 +1,432 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3 +RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ +fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3 +BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW +hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV +K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE +kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI +QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep +rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q2TXlTUUwgUmVs +ZWFzZSBFbmdpbmVlcmluZyA8bXlzcWwtYnVpbGRAb3NzLm9yYWNsZS5jb20+iGwE +ExECACwCGyMCHgECF4ACGQEGCwkIBwMCBhUKCQgCAwUWAgMBAAUCXEBY+wUJI87e +5AAKCRCMcY07UHLh9RZPAJ9uvm0zlzfCN+DHxHVaoFLFjdVYTQCfborsC9tmEZYa +whhogjeBkZkorbyIaQQTEQIAKQIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAhkB +BQJTAdRmBQkaZsvLAAoJEIxxjTtQcuH1X4MAoKNLWAbCBUj96637kv6Xa/fJuX5m +AJwPtmgDfjUe2iuhXdTrFEPT19SB6ohmBBMRAgAmAhsjBgsJCAcDAgQVAggDBBYC +AwECHgECF4AFAk53PioFCRP7AhUACgkQjHGNO1By4fUmzACeJdfqgc9gWTUhgmcM +AOmG4RjwuxcAoKfM+U8yMOGELi+TRif7MtKEms6piGkEExECACkCGyMGCwkIBwMC +BBUCCAMEFgIDAQIeAQIXgAIZAQUCUZSROgUJFTchqgAKCRCMcY07UHLh9YtAAJ9X +rA/ymlmozPZn+A9ls8/uwMcTsQCfaQMNq1dNkhH2kyByc3Rx9/W2xfqJARwEEAEC +AAYFAlAS6+UACgkQ8aIC+GoXHivrWwf/dtLk/x+NC2VMDlg+vOeM0qgG1IlhXZfi +NsEisvvGaz4m8fSFRGe+1bvvfDoKRhxiGXU48RusjixzvBb6KTMuY6JpOVfz9Dj3 +H9spYriHa+i6rYySXZIpOhfLiMnTy7NH2OvYCyNzSS/ciIUACIfH/2NH8zNT5CNF +1uPNRs7HsHzzz7pOlTjtTWiF4cq/Ij6Z6CNrmdj+SiMvjYN9u6sdEKGtoNtpycgD +5HGKR+I7Nd/7v56yhaUe4FpuvsNXig86K9tI6MUFS8CUyy7Hj3kVBZOUWVBM053k +nGdALSygQr50DA3jMGKVl4ZnHje2RVWRmFTr5YWoRTMxUSQPMLpBNIkBHAQQAQIA +BgUCU1B+vQAKCRAohbcD0zcc8dWwCACWXXWDXIcAWRUw+j3ph8dr9u3SItljn3wB +c7clpclKWPuLvTz7lGgzlVB0s8hH4xgkSA+zLzl6u56mpUzskFl7f1I3Ac9GGpM4 +0M5vmmR9hwlD1HdZtGfbD+wkjlqgitNLoRcGdRf/+U7x09GhSS7Bf339sunIX6sM +gXSC4L32D3zDjF5icGdb0kj+3lCrRmp853dGyA3ff9yUiBkxcKNawpi7Vz3D2ddU +pOF3BP+8NKPg4P2+srKgkFbd4HidcISQCt3rY4vaTkEkLKg0nNA6U4r0YgOa7wIT +SsxFlntMMzaRg53QtK0+YkH0KuZR3GY8B7pi+tlgycyVR7mIFo7riQEcBBABCAAG +BQJWgVd0AAoJEEZu4b/gk4UKk9MH/Rnt7EccPjSJC5CrB2AU5LY2Dsr+PePI2ubP +WsEdG82qSjjGpbhIH8LSg/PzQoGHiFWMmmZWJktRT+dcgLbs3b2VwCNAwCE8jOHd +UkQhEowgomdNvHiBHKHjP4/lF68KOPiO/2mxYYkmpM7BWf3kB57DJ5CTi3/JLoN7 +zF40qIs/p09ePvnwStpglbbtUn7XPO+1/Ee8VHzimABom52PkQIuxNiVUzLVn3bS +Wqrd5ecuqLk6yzjPXd2XhDHWC9Twpl68GePru6EzQtusi0m6S/sHgEXqh/IxrFZV +JlljF75JvosZq5zeulr0i6kOij+Y1p6MFffihITZ1gTmk+CLvK2JASIEEAECAAwF +Ak53QS4FAwASdQAACgkQlxC4m8pXrXwJ8Qf/be/UO9mqfoc2sMyhwMpN4/fdBWwf +LkA12FXQDOQMvwH9HsmEjnfUgYKXschZRi+DuHXe1P7l8G2aQLubhBsQf9ejKvRF +TzuWMQkdIq+6Koulxv6ofkCcv3d1xtO2W7nb5yxcpVBPrRfGFGebJvZa58DymCNg +yGtAU6AOz4veavNmI2+GIDQsY66+tYDvZ+CxwzdYu+HDV9HmrJfc6deM0mnBn7SR +jqzxJPgoTQhihTav6q/R5/2p5NvQ/H84OgS6GjosfGc2duUDzCP/kheMRKfzuyKC +OHQPtJuIj8++gfpHtEU7IDUX1So3c9n0PdpeBvclsDbpRnCNxQWU4mBot4kBIgQQ +AQIADAUCToi2GQUDABJ1AAAKCRCXELibyletfLZAB/9oRqx+NC98UQD/wlxCRytz +vi/MuPnbgQUPLHEap10tvEi33S/H/xDR/tcGofY4cjAvo5skZXXeWq93Av7PACUb +zkg0X0eSr2oL6wy66xfov72AwSuX+iUK68qtKaLqRLitM02y8aNRV/ggKvt7UMvG +mOvs5yLaYlobyvGaFC2ClfkNOt2MlVnQZCmnYBCwOktPGkExiu2yZMifcYGxQcpH +KVFG59KeF2cM2d4xYM8HJqkSGGW306LFVSyeRwG+wbttgLpD5bM/T2b3fF/J35ra +CSMLZearRTq8aygPl+XM7MM2eR946aw6jmOsgNBErbvvIdQj6LudAZj+8imcXV2K +iQEiBBABAgAMBQJOmdnRBQMAEnUAAAoJEJcQuJvKV618AvIIAIEF1ZJ+Ry7WOdKF +5oeQ/ynaYUigzN92fW/9zB8yuQlngkFJGidYMbci1tR1siziIVJFusR3ZonqAPGK +/SUta9Y6KWLhmc7c5UnEHklq/NfdMZ2WVSIykXlctqw0sbb+z1ecEd4G8u9j5ill +MO1B36rQayYAPoeXLX8dY4VyFLVGaQ00rWQBYFZrpw16ATWbWGJP332NSfCk4zZq +6kXEW07q0st3YBgAAGdNQyEeZCa4d4pBRSX6189Kjg6GDnIcaiOF6HO6PLr9fRlL +r5ObCgU+G9gEhfiVwDEV9E+7/Bq2pYZ9whhkBqWQzdpXTNTM24uaEhE01EPO5zeC +O214q6mJASIEEAECAAwFAk6rpgEFAwASdQAACgkQlxC4m8pXrXzAhwf/f9O99z16 +3Y5FZVIxexyqXQ/Mct9uKHuXEVnRFYbA49dQLD4S73N+zN7gn9jFeQcBo4w8qVUV +94U/ta/VbLkdtNREyplPM4XY8YE5Wfd9bfyg3q1PbEiVjk995sBF+2+To99YYKst +gXPqjlH0jUfEyDmexOj+hsp8Rc63kvkIx36VBa4ONRYFefGAhKDMigL2YAhc1UkG +tkGTuLmlCGwIV6lviDZD3RJf5375VFnaHv7eXfwQxCwE+BxG3CURrjfxjaxMTmMP +yAG2rhDp5oTUEvqDYNbko5UxYOmrSjvF4FzXwqerElXJUkUzSh0pp7RxHB/1lCxD +s7D1F1hlgFQuNIkBIgQQAQIADAUCTrzZHAUDABJ1AAAKCRCXELibyletfMUpB/4s +07dREULIBnA1D6qr3fHsQJNZqbAuyDlvgGGLWzoyEDs+1JMFFlaa+EeLIo1386GU +2DammDC23p3IB79uQhJeD2Z1TcVg4cA64SfF/CHca5coeRSrdAiudzU/cgLGtXIP +/OaFamXgdMxAhloLFbSHPCZkyb00phVa8+xeIVDrK1HByZsNIXy/SSK8U26S2PVZ +2o14fWvKbJ1Aga8N6DuWY/D8P2mi3RAbiuZgfzkmKL5idH/wSKfnFKdTgJzssdCc +1jZEGVk5rFYcWOrJARHeP/tsnb/UxKBEsNtO7e3N2e/rLVnEykVIO066hz7xZK/V +NBSpx3k3qj4XPK41IHy2iQEiBBABAgAMBQJOzqO8BQMAEnUAAAoJEJcQuJvKV618 +2twH/0IzjXLxN45nvIfEjC75a+i9ZSLlqR8lsHL4GpEScFKI0a0lT4IVAIY2RKG+ +MAs2eHm0UfKuwGs5jluRZ9RqKrc61sY0XQV9/7znY9Db16ghX04JjknOKs/fPi87 +rvKkB/QxJWS8qbb/erRmW+cPNjbRxTFPS5JIwFWHA16ieFEpvdAgKV6nfvJVTq1r +jPDcnIA9CJN2SmUFx9Qx3SRc6ITbam1hjFnY6sCh6AUhxLI2f1mq1xH9PqEy42Um +68prRqTyJ7Iox1g/UDDkeeUcAg7T1viTz7uXpS3Wrq4zzo4yOpaJfLDR3pI5g2Zk +SNGTMo6aySE4OABt8i1Pc1Pm6AmJASIEEAECAAwFAk7yPFYFAwASdQAACgkQlxC4 +m8pXrXzXiAf9FrXe0lgcPM+tYOWMLhv5gXJi2VUBaLxpyRXm/kJcmxInKq1GCd3y +D4/FLHNu3ZcCz/uklPAbZXWI0O6ewq0LWsRtklmJjWiedH+hGyaTv95VklojRIBd +8nBaJ6M98rljMBHTFwWvjQFVf4FLRJQZqHlvjcCkq2Dd9BWJpGXvr/gpKkmMJYNK +/ftfZRcChb35NI19WRpOhj9u808OPcqKVvZBcPwFGV5cEBzmAC94J7JcD8+S8Ik8 +iUJMQGGL3QcmZOBozovh86hj7KTSEBHlLXl832z89H1hLeuLbnXoGLv3zeUFSxkv +1h35LhZLqIMDQRXLuUzxGHMBpLhPyGWRJ4kBIgQQAQIADAUCTwQJFwUDABJ1AAAK +CRCXELibyletfABvB/9Cy69cjOqLGywITs3Cpg//40jmdhSAVxilJivP6J5bubFH +DJlVTx541Dv5h4hTG2BQuueQ4q1VCpSGW+rHcdhPyvmZGRz1rxdQQGh1Dv0Bod2c +3PJVSYPSrRSwCZJkJHOtVRBdjK4mkZb5aFTza+Tor9kxzj4FcXVd4KAS+hHQHYHc +Ar8tt2eOLzqdEFTULeGiSoNn+PVzvzdfhndphK+8F2jfQ2UKuc01O7k0Yn9xZVx0 +OG6fE1gStzLv7C5amWLRd8+xh+MN0G8MgNglpBoExsEMMlPBYSUHa6lxpdMNMuib +rIyVncE9X8QOhImt8K0sNn/EdbuldJNGYbDLt7O4iQEiBBABAgAMBQJPFdTcBQMA +EnUAAAoJEJcQuJvKV6184owH+wZ/uLpezXnSxigeH1sig72QEXMrNd5DVHCJdig3 +bo+K5YmmN710/m5z+63XKUEWpd6/knajObgckThzWftNeK1SSFQGPmoYZP9EZnSU +7L+/dSUpExbj842G5LYagrCyMGtlxRywWEmbi72TKS/JOK0jLiOdvVy+PHrZSu0D +TVQ7cJh1BmPsbz7zzxjmcI5l+7B7K7RHZHq45nDLoIabwDacj7BXvBK0Ajqz4QyJ +GQUjXC7q+88I+ptPvOXlE5nI/NbiCJOMI6d/bWN1KwYrC80fZuFaznfQFcPyUaDw +yRaun+K3kEji2wXecq+yMmLUEp01TKsUeOL50HD6hHH07W+JASIEEAECAAwFAk85 +bQsFAwASdQAACgkQlxC4m8pXrXwKPQgAlkbUsTr7nkq+haOk0jKpaHWEbRMEGMrB +I3F7E+RDO6V/8y4Jtn04EYDc8GgZMBah+mOgeINq3y8jRMYV5jVtZXv2MWYFUcjM +kVBKeqhi/pGEjmUdmdt3DlPv3Z+fMTMRmAocI981iY/go8PVPg/+nrR6cFK2xxnO +R8TacikJBFeSfkkORg1tDzjjYv1B5ZIEkpplepl5ahJBBq7cpYhTdY6Yk0Sz0J8w +EdffLSaNxrRuWLrRhWzZU7p9bFzfb/7OHc21dJnB7wKv5VvtgE+jiQw9tOKaf5hc +SgRYuF6heu+B25gc5Uu88lo409mZ7oxQ6hDCn7JHvzh0rhmSN+Kid4kBIgQQAQIA +DAUCT0qQrQUDABJ1AAAKCRCXELibyletfC9UB/4o2ggJYM0CLxEpP0GU8UKOh3+/ +zm1DN7Qe4kY2iCtF1plKHQaTgt5FlgRCFaiXcVv7WzGz/FnmxonR1leLl+kfRlwy +PPnoI/AWPCy/NO4Cl5KnjsSmsdDUpObwZ4KYsdilZR7ViJu2swdAIgnXBUwrlRJR +7CK4TAKrTeonRgVSrVx8Vt//8/cYj73CLq8oY/KK0iHiQrSwo44uyhdiFIAssjyX +n6/2E+w0zgvPexNSNNROHQ8pjbq+NTY6GwKIGsaej3UTRwQ7psvKXz8y7xdzmOAr +/khGvxB5gjkx02pimjeia8v66aH6rbnojJMAovNUS4EHdHnulv4rovC8Kf9iiQEi +BBABAgAMBQJPVdsaBQMAEnUAAAoJEJcQuJvKV618vVEIALFXPBzcAO1SnQarBLzy +YMVZZumPvSXKnUHAO+6kjApXPJ+qFRdUaSNshZxVKY9Zryblu4ol/fLUTt0CliSD +IxD6L4GXEm4VYYCl4lPO3bVsJnGITLFwQGHM27EmjVoTiD8Ch7kPq2EXr3dMRgzj +pdz+6aHGSUfOdLTPXufDvW83bEWGaRVuTJKw+wIrcuRqQ+ucWJgJGwcE4zeHjZad +Jx1XUm1X+BbI73uiQussyjhhQVVNU7QEdrjyuscaZ/H38wjUwNbylxDPB4I8quC1 +knQ0wSHr7gKpM+E9nhiS14poRqU18u78/sJ2MUPXnQA6533IC238/LP8JgqB+BiQ +BTSJASIEEAECAAwFAk9ng3cFAwASdQAACgkQlxC4m8pXrXxQRAf/UZlkkpFJj1om +9hIRz7gS+l7YvTaKSzpo+TBcx3C7aqKJpir6TlMK9cb9HGTHo2Xp1N3FtQL72NvO +6CcJpBURbvSyb4i0hrm/YcbUC4Y3eajWhkRS3iVfGNFbc/rHthViz0r6Y5lhXX16 +aVkDv5CIFWaF3BiUK0FnHrZiy4FPacUXCwEjv3uf8MpxV5oEmo8Vs1h4TL3obyUz +qrImFrEMYE/12lkE8iR5KWCaF8eFyl56HL3PPl90JMQBXzhwsFoWCPuwjfM5w6sW +Ll//zynwxtlJ9CRz9c2vK6aJ8DRu3OfBKN1iiEcNEynksDnNXErn5xXKz3p5pYdq +e9BLzUQCDYkBIgQQAQIADAUCT3inRgUDABJ1AAAKCRCXELibyletfGMKCADJ97qk +geBntQ+tZtKSFyXznAugYQmbzJld8U6eGSQnQkM40Vd62UZLdA8MjlWKS8y4A4L2 +0cI14zs5tKG9Q72BxQOw5xkxlLASw1/8WeYEbw7ZA+sPG//q9v3kIkru3sv64mMA +enZtxsykexRGyCumxLjzlAcL1drWJGUYE2Kl6uzQS7jb+3PNBloQvz6nb3YRZ+Cg +Ly9D41SIK+fpnV8r4iqhu7r4LmAQ7Q1DF9aoGaYvn2+xLGyWHxJAUet4xkMNOLp6 +k9RF1nbNe4I/sqeCB25CZhCTEvHdjSGTD2yJR5jfoWkwO9w8DZG1Q9WrWqki4hSB +l0cmcvO34pC1SJYziQEiBBABAgAMBQJPinQFBQMAEnUAAAoJEJcQuJvKV618CFEI +AJp5BbcV7+JBMRSvkoUcAWDoJSP2ug9zGw5FB8J90PDefKWCKs5Tjayf2TvM5ntq +5DE9SGaXbloIwa74FoZlgqlhMZ4AtY9Br+oyPJ5S844wpAmWMFc6NnEPFaHQkQ+b +dJYpRVNd9lzagJP261P3S+S9T2UeHVdOJBgWIq9Mbs4lnZzWsnZfQ4Lsz0aPqe48 +tkU8hw+nflby994qIwNOlk/u+I/lJbNz5zDY91oscXTRl2jV1qBgKYwwCXxyB3j9 +fyVpRl+7QnqbTWcCICVFL+uuYpP0HjdoKNqhzEguAUQQLOB9msPTXfa2hG+32ZYg +5pzI5V7GCHq0KO6u5Ctj3TGJASIEEAECAAwFAk+cQEEFAwASdQAACgkQlxC4m8pX +rXzi7AgAx8wJzNdD7UlgdKmrAK//YqH7arSssb33Xf45sVHDpUVA454DXeBrZpi+ +zEuo03o5BhAuf38cwfbkV6jN1mC2N0FZfpy4v7RxHKLYr7tr6r+DRn1L1giX5ybx +CgY0fLAxkwscWUKGKABWxkz9b/beEXaO2rMt+7DBUdpAOP5FNRQ8WLRWBcMGQiaT +S4YcNDAiNkrSP8CMLQP+04hQjahxwCgBnksylciqz3Y5/MreybNnTOrdjVDsF0Oe +t0uLOiWXUZV1FfaGIdb/oBQLg+e1B74p5+q3aF8YI97qAZpPa1qiQzWIDX8LX9QX +EFyZ3mvqzGrxkFoocXleNPgWT8fRuokBIgQQAQIADAUCT64N/QUDABJ1AAAKCRCX +ELibyletfDOGCACKfcjQlSxrWlEUrYYZpoBP7DE+YdlIGumt5l6vBmxmt/5OEhqr ++dWwuoiyC5tm9CvJbuZup8anWfFzTTJmPRPsmE4z7Ek+3CNMVM2wIynsLOt1pRFK +4/5RNjRLbwI6EtoCQfpLcZJ//SB56sK4DoFKH28Ok4cplESPnoMqA3QafdSEA/FL +qvZV/iPgtTz7vjQkMgrXAIUM4fvKe3iXkAExGXtmgdXHVFoKmHrxJ2DTSvM7/19z +jGJeu2MhIKHyqEmCk6hLjxyCE5pAH59KlbAQOP1bS28xlRskBApm2wN+LOZWzC62 +HhEReQ50inCGuuubK0PqUQnyYc+lUFxrFpcliQEiBBABAgAMBQJPv9lVBQMAEnUA +AAoJEJcQuJvKV618AzgH/iRFFCi4qjvoqji1fi7yNPZVOMMO2H13Ks+AfcjRtHuV +aa30u50ND7TH+XQe6yerTapLh3aAm/sNP99aTxIuwRSlyKEoDs93+XVSgRqPBgbF +/vxv0ykok3p6L9DxFO/w5cL8JrBhMZoJrEkIBFkwN8tWlcXPRFQvcdBYv3M3DTZU +qY+UHnOxHvSzsl+LJ0S9Xcd9C5bvYfabmYJvG5eRS3pj1L/y3a6yw6hvY+JtnQAk +t05TdeHMIgQH/zb8V9wxDzmE0un8LyoC2Jx5TpikQsJSejwK6b3coxVBlngku6+C +qDAimObZLw6H9xYYIK0FoJs7j5bQZEwUO7OLBgjcMOqJASIEEAECAAwFAk/Rpc8F +AwASdQAACgkQlxC4m8pXrXw49Qf/TdNbun2htQ+cRWarszOx8BLEiW/x6PVyUQpZ +nV/0qvhKzlJUjM9hQPcA0AsOjhqtCN6Cy8KXbK/TvPm9D/Nk6HWwD1PomzrJVFk2 +ywGFIuTR+lluKSp7mzm5ym0wJs5cPq731Im31RUQU8ndjLrq9YOf5FVL8NqmcOAU +4E8d68BbmVCQC5MMr0901FKwKznShfpy7VYN25/BASj8dhnynBYQErqToOJB6Cnd +JhdTlbfR4SirqAYZZg3XeqGhByytEHE1x7FMWWFYhdNtsnAVhYBbWqAzBs8lF9Jd +Mhaf0VQU/4z10gVrRtXLR/ixrCi+P4cM/fOQkqd6pwqWkaXt6okBIgQQAQIADAUC +T+NxIAUDABJ1AAAKCRCXELibyletfFBBCAC6+0TUJDcNaqOxOG1KViY6KYg9NCL8 +pwNK+RKNK/N1V+WGJQH7qDMwRoOn3yogrHax4xIeOWiILrvHK0O6drS1DjsymIhR +Sm2XbE/8pYmEbuJ9vHh3b/FTChmSAO7dDjSKdWD3dvaY8lSsuDDqPdTX8FzOfrXC +M22C/YPg7oUG2A5svE1b+yismP4KmVNWAepEuPZcnEMPFgop3haHg9X2+mj/btDB +Yr6p9kAgIY17nigtNTNjtI0dMLu43aIzedCYHqOlNHiB049jkJs54fMGBjF9qPtc +m0k44xyKd1/JXWMdNUmtwKsChAXJS3YOciMgIx6tqYUTndrP4I6q1rfriQEiBBAB +AgAMBQJP9T1VBQMAEnUAAAoJEJcQuJvKV618J9wIAI1lId9SMbEHF6PKXRe154lE +pap5imMU/lGTj+9ZcXmlf8o2PoMMmb3/E1k+EZUaeSBoOmjS8C2gwd5XFwRrlwAD +RlK/pG5XsL4h5wmN2fj1ororrJXvqH427PLRQK9yzdwG4+9HTBOxjoS8qZT9plyK +AJZzAydAMqyseRHgNo0vMwlgrs4ojo+GcFGQHrF3IaUjvVfUPOmIj7afopFdIZmI +GaSF0TXBzqcZ1chFv/eTBcIuIKRvlaDee5FgV7+nLH2nKOARCLvV/+8uDi2zbr83 +Ip5x2tD3XuUZ0ZWxD0AQWcrLdmGb4lkxbGxvCtsaJHaLXWQ2m760RjIUcwVMEBKJ +ASIEEAECAAwFAlAGYWsFAwASdQAACgkQlxC4m8pXrXwyVAgAvuvEl6yuGkniWOlv +uHEusUv/+2GCBg6qV+IEpVtbTCCgiFjYR5GasSp1gpZ5r4BocOlbGdjdJGHTpyK8 +xD1i+6qZWUYhNRg2POXUVzcNEl2hhouwPLOifcmTwAKU76TEv3L5STviL3hWgUR2 +yEUZ3Ut0IGVV6uPER9jpR3qd6O3PeuFkwf+NaGTye4jioLAy3aYwtZCUXzvYmNLP +90K4y+5yauZteLmNeq26miKC/NQu4snNFClPbGRjHD1ex9KDiAMttOgN4WEq7srT +rYgtT531WY4deHpNgoPlHPuAfC0H+S6YWuMbgfcb6dV+Rrd8Ij6zM3B/PcjmsYUf +OPdPtIkBIgQQAQIADAUCUBgtfQUDABJ1AAAKCRCXELibyletfAm3CACQlw21Lfeg +d8RmIITsfnFG/sfM3MvZcjVfEAtsY3fTK9NiyU0B3yX0PU3ei37qEW+50BzqiStf +5VhNvLfbZR+yPou7o2MAP31mq3Uc6grpTV64BRIkCmRWg40WMjNI1hv7AN/0atgj +ATYQXgnEw7mfFb0XZtMTD6cmrz/A9nTPVgZDxzopOMgCCC1ZK4Vpq9FKdCYUaHpX +3sqnDf+gpVIHkTCMgWLYQOeX5Nl+fgnq6JppaQ3ySZRUDr+uFUs0uvDRvI/cn+ur +ri92wdDnczjFumKvz/cLJAg5TG2Jv1Jx3wecALsVqQ3gL7f7vr1OMaqhI5FEBqdN +29L9cZe/ZmkriQEiBBIBCgAMBQJVoNxyBYMHhh+AAAoJEEoz7NUmyPxLD1EH/2eh +7a4+8A1lPLy2L9xcNt2bifLfFP2pEjcG6ulBoMKpHvuTCgtX6ZPdHpM7uUOje/F1 +CCN0IPB533U1NIoWIKndwNUJjughtoRM+caMUdYyc4kQm29Se6hMPDfyswXE5Bwe +PmoOm4xWPVOH/cVN04zyLuxdlQZNQF/nJg6PMsz4w5z+K6NGGm24NEPcc72iv+6R +Uc/ry/7v5cVu4hO5+r104mmNV5yLecQF13cHy2JlngIHXPSlxTZbeJX7qqxE7TQh +5nviSPgdk89oB5jFSx4g1efXiwtLlP7lbDlxHduomyQuH9yqmPZMbkJt9uZDc8Zz +MYsDDwlc7BIe5bGKfjqJAhwEEAECAAYFAlSanFIACgkQdzHqU52lcqLdvg//cAEP +qdN5VTKWEoDFjDS4I6t8+0KzdDWDacVFwKJ8RAo1M2SklDxnIvnzysZd2VHp5Pq7 +i4LYCZo5lDkertQ6LwaQxc4X6myKY4LTA652ObFqsSfgh9kW+aJBBAyeahPQ8CDD ++Yl23+MY5wTsj4qt7KffNzy78vLbYnVnvRQ3/CboVix0SRzg0I3Oi7n3B0lihvXy +5goy9ikjzZevejMEfjfeRCgoryy9j5RvHH9PF3fJVtUtHCS4f+kxLmbQJ1XqNDVD +hlFzjz8oUzz/8YXy3im5MY7Zuq4P4wWiI7rkIFMjTYSpz/evxkVlkR74qOngT2pY +VHLyJkqwh56i0aXcjMZiuu2cymUt2LB9IsaMyWBNJjXr2doRGMAfjuR5ZaittmML +yZwix9mWVk7tkwlIxmT/IW6Np0qMhDZcWYqPRpf7+MqY3ZYMK4552b8aDMjhXrnO +OwLsz+UI4bZa1r9dguIWIt2C2b5C1RQ9AsQBPwg7h5P+HhRuFAuDKK+vgV8FRuzR +JeKkFqwB4y0Nv7BzKbFKmP+V+/krRv+/Dyz9Bz/jyAQgw02u1tPupH9BGhlRyluN +yCJFTSNj7G+OLU0/l4XNph5OOC7sy+AMZcsL/gsT/TXCizRcCuApNTPDaenACpbv +g8OoIzmNWhh4LXbAUHCKmY//hEw9PvTZA1xKHgyJAhwEEgECAAYFAlJYsKQACgkQ +oirk60MpxUV2XQ//b2/uvThkkbeOegusDC4AZfjnL/V3mgk4iYy4AC9hum0R9oNl +XDR51P1TEw9mC1btHj+7m7Iq1a5ke5wIC7ENZiilr0yPqeWgL5+LC98dz/L85hqA +wIoGeOfMhrlaVbAZEj4yQTAJDA35vZHVsQmp87il0m+fZX04OBLXBzw86EoAAZ7Q +EoH4qFcT9k1T363tvNnIm3mEvkQ5WjE1R9uchJa1g7hdlNQlVkjFmPZrJK9fl4z5 +6Dto89Po4Sge48jDH0pias4HATYHsxW819nz5jZzGcxLnFRRR5iITVZi9qzsHP7N +bUh3qxuWCHS9xziXpOcSZY848xXw63Y5jDJfpzupzu/KHj6CzXYJUEEqp9MluoGb +/BCCEPzdZ0ovyxFutM/BRcc6DvE6sTDF/UES21ROqfuwtJ6qJYWX+lBIgyCJvj4o +RdbzxUleePuzqCzmwrIXtoOKW0Rlj4SCeF9yCwUMBTGW5/nCLmN4dwf1KW2RP2Eg +4ERbuUy7QnwRP5UCl+0ISZJyYUISfg8fmPIdQsetUK9Cj+Q5jpB2GXwELXWnIK6h +K/6jXp+EGEXSqdIE53vAFe7LwfHiP/D5M71D2h62sdIOmUm3lm7xMOnM5tKlBiV+ +4jJSUmriCT62zo710+6iLGqmUUYlEll6Ppvo8yuanXkYRCFJpSSP7VP0bBqIZgQT +EQIAJgUCTnc9dgIbIwUJEPPzpwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEIxx +jTtQcuH1Ut4AoIKjhdf70899d+7JFq3LD7zeeyI0AJ9Z+YyE1HZSnzYi73brScil +bIV6sbQ7TXlTUUwgUGFja2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkg +PGJ1aWxkQG15c3FsLmNvbT6IbwQwEQIALwUCTnc9rSgdIGJ1aWxkQG15c3FsLmNv +bSB3aWxsIHN0b3Agd29ya2luZyBzb29uAAoJEIxxjTtQcuH1tT0An3EMrSjEkUv2 +9OX05JkLiVfQr0DPAJwKtL1ycnLPv15pGMvSzav8JyWN3IhlBBMRAgAdBQJHrJS0 +BQkNMFioBQsHCgMEAxUDAgMWAgECF4AAEgkQjHGNO1By4fUHZUdQRwABAa6SAJ9/ +PgZQSPNeQ6LvVVzCALEBJOBt7QCffgs+vWP18JutdZc7XiawgAN9vmmITAQTEQIA +DAUCPj6j0QWDCWYAuwAKCRBJUOEqsnKR8iThAJ9ZsR4o37dNGyl77nEqP6RAlJqa +YgCeNTPTEVY+VXHR/yjfyo0bVurRxT2ITAQTEQIADAUCPkKCAwWDCWIiiQAKCRC2 +9c1NxrokP5aRAKCIaaegaMyiPKenmmm8xeTJSR+fKQCgrv0TqHyvCRINmi6LPucx +GKwfy7KIRgQQEQIABgUCP6zjrwAKCRCvxSNIeIN0D/aWAKDbUiEgwwAFNh2n8gGJ +Sw/8lAuISgCdHMzLAS26NDP8T2iejsfUOR5sNriIRgQQEQIABgUCP7RDdwAKCRCF +lq+rMHNOZsbDAJ0WoPV+tWILtZG3wYqg5LuHM03faQCeKuVvCmdPtro06xDzeeTX +VrZ14+GIRgQQEQIABgUCQ1uz6gAKCRCL2C5vMLlLXH90AJ0QsqhdAqTAk3SBnO2w +zuSOwiDIUwCdFExsdDtXf1cL3Q4ilo+OTdrTW2CIRgQTEQIABgUCRPEzJgAKCRD2 +ScT0YJNTDApxAKCJtqT9LCHFYfWKNGGBgKjka0zi9wCcCG3MvnvBzDUqDVebudUZ +61Sont+ITAQQEQIADAUCQYHLAQWDBiLZiwAKCRAYWdAfZ3uh7EKNAJwPywk0Nz+Z +Lybw4YNQ7H1UxZycaQCePVhY4P5CHGjeYj9SX2gQCE2SNx+ITAQQEQIADAUCQYHL +NAWDBiLZWAAKCRCBwvfr4hO2kiIjAJ0VU1VQHzF7yYVeg+bh31nng9OOkwCeJI8D +9mx8neg4wspqvgXRA8+t2saITAQQEQIADAUCQYHLYgWDBiLZKgAKCRBrcOzZXcP0 +cwmqAJsFjOvkY9c5eA/zyMrOZ1uPB6pd4QCdGyzgbYb/eoPu6FMvVI9PVIeNZReI +TAQQEQIADAUCQdCTJAWDBdQRaAAKCRB9JcoKwSmnwmJVAKCG9a+Q+qjCzDzDtZKx +5NzDW1+W+QCeL68seX8OoiXLQuRlifmPMrV2m9+ITAQQEQIADAUCQitbugWDBXlI +0gAKCRDmG6SJFeu5q/MTAKCTMvlCQtLKlzD0sYdwVLHXJrRUvgCffmdeS6aDpwIn +U0/yvYjg1xlYiuqITAQSEQIADAUCQCpZOgWDB3pLUgAKCRA8oR80lPr4YSZcAJwP +4DncDk4YzvDvnRbXW6SriJn1yQCdEy+d0CqfdhM7HGUs+PZQ9mJKBKqITAQSEQIA +DAUCQD36ugWDB2ap0gAKCRDy11xj45xlnLLfAKC0NzCVqrbTDRw25cUss14RRoUV +PACeLpEc3zSahJUB0NNGTNlpwlTczlCITAQSEQIADAUCQQ4KhAWDBpaaCAAKCRA5 +yiv0PWqKX/zdAJ4hNn3AijtcAyMLrLhlZQvib551mwCgw6FEhGLjZ+as0W681luc +wZ6PzW+ITAQSEQIADAUCQoClNAWDBSP/WAAKCRAEDcCFfIOfqOMkAJwPUDhS1eTz +gnXclDKgf353LbjvXgCeLCWyyj/2d0gIk6SqzaPl2UcWrqiITAQTEQIADAUCPk1N +hAWDCVdXCAAKCRAtu3a/rdTJMwUMAKCVPkbk1Up/kyPrlsVKU/Nv3bOTZACfW5za +HX38jDCuxsjIr/084n4kw/uITAQTEQIADAUCQdeAdgWDBc0kFgAKCRBm79vIzYL9 +Pj+8AJ9d7rvGJIcHzTCSYVnaStv6jP+AEACeNHa5yltqieRBCCcLcacGqYK81omI +TAQTEQIADAUCQhiBDgWDBYwjfgAKCRB2wQMcojFuoaDuAJ9CLYdysef7IsW42UfW +hI6HjxkzSgCfeEpXS4hEmmGicdpRiJQ/W21aB0GIZQQTEQIAHQULBwoDBAMVAwID +FgIBAheABQJLcC/KBQkQ8/OnABIHZUdQRwABAQkQjHGNO1By4fWw2wCeJilgEarL +8eEyfDdYTyRdqE45HkoAnjFSZY8Zg/iXeErHI0r04BRukNVgiHsEMBECADsFAkJ3 +NfU0HQBPb3BzLi4uIHNob3VsZCBoYXZlIGJlZW4gbG9jYWwhIEknbSAqc28qIHN0 +dXBpZC4uLgAKCRA5yiv0PWqKX+9HAJ0WjTx/rqgouK4QCrOV/2IOU+jMQQCfYSC8 +JgsIIeN8aiyuStTdYrk0VWCIjwQwEQIATwUCRW8Av0gdAFNob3VsZCBoYXZlIGJl +ZW4gYSBsb2NhbCBzaWduYXR1cmUsIG9yIHNvbWV0aGluZyAtIFdURiB3YXMgSSB0 +aGlua2luZz8ACgkQOcor9D1qil+g+wCfcFWoo5qUl4XTE9K8tH3Q+xGWeYYAnjii +KxjtOXc0ls+BlqXxbfZ9uqBsiQIiBBABAgAMBQJBgcuFBYMGItkHAAoJEKrj5s5m +oURoqC8QAIISudocbJRhrTAROOPoMsReyp46Jdp3iL1oFDGcPfkZSBwWh8L+cJjh +dycIwwSeZ1D2h9S5Tc4EnoE0khsS6wBpuAuih5s//coRqIIiLKEdhTmNqulkCH5m +imCzc5zXWZDW0hpLr2InGsZMuh2QCwAkB4RTBM+r18cUXMLV4YHKyjIVaDhsiPP/ +MKUj6rJNsUDmDq1GiJdOjySjtCFjYADlQYSD7zcd1vpqQLThnZBESvEoCqumEfOP +xemNU6xAB0CL+pUpB40pE6Un6Krr5h6yZxYZ/N5vzt0Y3B5UUMkgYDSpjbulNvaU +TFiOxEU3gJvXc1+h0BsxM7FwBZnuMA8LEA+UdQb76YcyuFBcROhmcEUTiducLu84 +E2BZ2NSBdymRQKSinhvXsEWlH6Txm1gtJLynYsvPi4B4JxKbb+awnFPusL8W+gfz +jbygeKdyqzYgKj3M79R3geaY7Q75Kxl1UogiOKcbI5VZvg47OQCWeeERnejqEAdx +EQiwGA/ARhVOP/1l0LQA7jg2P1xTtrBqqC2ufDB+v+jhXaCXxstKSW1lTbv/b0d6 +454UaOUV7RisN39pE2zFvJvY7bwfiwbUJVmYLm4rWJAEOJLIDtDRtt2h8JahDObm +3CWkpadjw57S5v1c/mn+xV9yTgVx5YUfC/788L1HNKXfeVDq8zbAiQIiBBMBAgAM +BQJCnwocBYMFBZpwAAoJENjCCglaJFfPIT4P/25zvPp8ixqV85igs3rRqMBtBsj+ +5EoEW6DJnlGhoi26yf1nasC2frVasWG7i4JIm0U3WfLZERGDjR/nqlOCEqsP5gS3 +43N7r4UpDkBsYh0WxH/ZtST5llFK3zd7XgtxvqKL98l/OSgijH2W2SJ9DGpjtO+T +iegq7igtJzw7Vax9z/LQH2xhRQKZR9yernwMSYaJ72i9SyWbK3k0+e95fGnlR5pF +zlGq320rYHgD7v9yoQ2t1klsAxK6e3b7Z+RiJG6cAU8o8F0kGxjWzF4v8D1op7S+ +IoRdB0Bap01ko0KLyt3+g4/33/2UxsW50BtfqcvYNJvU4bZns1YSqAgDOOanBhg8 +Ip5XPlDxH6J/3997n5JNj/nk5ojfd8nYfe/5TjflWNiput6tZ7frEki1wl6pTNbv +V9C1eLUJMSXfDZyHtUXmiP9DKNpsucCUeBKWRKLqnsHLkLYydsIeUJ8+ciKc+EWh +FxEY+Ml72cXAaz5BuW9L8KHNzZZfez/ZJabiARQpFfjOwAnmhzJ9r++TEKRLEr96 +taUI9/8nVPvT6LnBpcM38Td6dJ639YvuH3ilAqmPPw50YvglIEe4BUYD5r52Seqc +8XQowouGOuBX4vs7zgWFuYA/s9ebfGaIw+uJd/56Xl9ll6q5CghqB/yt1EceFEnF +CAjQc2SeRo6qzx22iEYEEBECAAYFAkSAbycACgkQCywYeUxD5vWDcACfQsVk/XGi +ITFyFVQ3IR/3Wt7zqBMAoNhso/cX8VUfs2BzxPvvGS3y+5Q9iEYEEBECAAYFAkUw +ntcACgkQOI4l6LNBlYkyFgCbBcw5gIii0RTDJsdNiuJDcu/NPqEAniSq9iTaLjgF +HZbaizUU8arsVCB5iEYEEBECAAYFAkWho2sACgkQu9u2hBuwKr6bjwCfa7ZK6O+X +mT08Sysg4DEoZnK4L9UAoLWgHuYg35wbZYx+ZUTh98diGU/miF0EExECAB0FAj4+ +owwFCQlmAYAFCwcKAwQDFQMCAxYCAQIXgAAKCRCMcY07UHLh9XGOAJ4pVME15/DG +rUDohtGv2z8a7yv4AgCeKIp0jWUWE525QocBWms7ezxd6syIXQQTEQIAHQUCR6yU +zwUJDTBYqAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQcuH1dCoAoLC6RtsD9K3N +7NOxcp3PYOzH2oqzAKCFHn0jSqxk7E8by3sh+Ay8yVv0BYhdBBMRAgAdBQsHCgME +AxUDAgMWAgECF4AFAkequSEFCQ0ufRUACgkQjHGNO1By4fUdtwCfRNcueXikBMy7 +tE2BbfwEyTLBTFAAnifQGbkmcARVS7nqauGhe1ED/vdgiF0EExECAB0FCwcKAwQD +FQMCAxYCAQIXgAUCS3AuZQUJEPPyWQAKCRCMcY07UHLh9aA+AKCHDkOBKBrGb8tO +g9BIub3LFhMvHQCeIOOot1hHHUlsTIXAUrD8+ubIeZaJARwEEgECAAYFAkvCIgMA +CgkQ3PTrHsNvDi8eQgf/dSx0R9Klozz8iK79w00NOsdoJY0Na0NTFmTbqHg30XJo +G62cXYgc3+TJnd+pYhYi5gyBixF/L8k/kPVPzX9W0YfwChZDsfTw0iDVmGxOswiN +jzSo0lhWq86/nEL30Khl9AhCC1XFNRw8WZYq9Z1qUXHHJ2rDARaedvpKHOjzRY0N +dx6R2zNyHDx2mlfCQ9wDchWEuJdAv0uHrQ0HV9+xq7lW/Q3L/V5AuU0tiowyAbBL +PPYrB6x9vt2ZcXS7BOy8SfQ1i8W2QDQ/Toork4YwBiv6WCW/ociy7paAoPOWV/Nf +2S6hDispeecbk7wqpbUj5klDmwrlgB/jmoAXWEnbsYkBIgQQAQIADAUCSSpooAUD +ABJ1AAAKCRCXELibyletfFOMCACpP+OVZ7lH/cNY+373c4FnSI0/S5PXS0ABgdd4 +BFWRFWKrWBeXBGc8sZfHOzVEwkzV96iyHbpddeAOAkEA4OVPW1MMFCmlHxi2s9/N +JrSrTPVfQOH5fR9hn7Hbpq/ETw0IoX1FKo7vndMnHZnFEnI+PDXLcdMYQgljYzhT +xER4vYY0UKu8ekSshUy4zOX7XSJxwqPUvps8qs/TvojIF+vDJvgFYHVkgvS+shp8 +Oh/exg9vKETBlgU87Jgsqn/SN2LrR/Jhl0aLd0G0iQ+/wHmVYdQUMFaCZwk/BKNa +XPzmGZEUZ3RNbYa19Mo7hcE3js76nh5YMxFvxbTggVu4kdFkiQEiBBABAgAMBQJK +M06IBQMAEnUAAAoJEJcQuJvKV618F4gH/innejIHffGMk8jYix4ZZT7pW6ApyoI+ +N9Iy85H4L+8rVQrtcTHyq0VkcN3wPSwtfZszUF/0qP6P8sLJNJ1BtrHxLORYjJPm +gveeyHPzA2oJl6imqWUTiW822fyjY/azwhvZFzxmvbFJ+r5N/Z57+Ia4t9LTSqTN +HzMUYaXKDaAqzZeK7P0E6XUaaeygbjWjBLQ1O0ezozAy+Kk/gXApmDCGFuHSFe7Z +mgtFcbXLM2XFQpMUooETD2R8MUsd+xnQsff/k6pQOLxi+jUEsWSr/iqmvlk6gZ4D +pemBjuhcXYlxJYjUaX9Zmn5s+ofF4GFxRqXoY7l9Z+tCM9AX37lm6S+JASIEEAEC +AAwFAkpEcgoFAwASdQAACgkQlxC4m8pXrXz2mgf/RQkpmMM+5r8znx2TpRAGHi5w +ktvdFxlvPaOBWE28NDwTrpcoMqo9kzAiuvEQjVNihbP21wR3kvnQ84rTAH0mlC2I +uyybggpqwzOUl+Wi0o+vk8ZA0A0dStWRN8uqneCsd1XnqDe1rvqC4/9yY223tLmA +kPvz54ka2vX9GdJ3kxMWewhrVQSLCktQpygU0dujGTDqJtnk0WcBhVF9T87lv3W2 +eGdPielzHU5trXezmGFj21d56G5ZFK8co7RrTt4qdznt80glh1BTGmhLlzjMPLTe +dcMusm3D1QB9ITogcG94ghSf9tEKmmRJ6OnnWM5Kn9KcL63E5oj2/lY9H54wSYkB +IgQQAQIADAUCSlY+RwUDABJ1AAAKCRCXELibyletfOOQB/0dyJBiBjgf+8d3yNID +pDktLhZYw8crIjPBVdOgX12xaUYBTGcQITRVHSggzffDA5BQXeUuWhpL4QB0uz1c +EPPwSMiWiXlBtwF5q6RVf3PZGJ9fmFuTkPRO7SruZeVDo9WP8HjbQtOLukYf566e +grzAYR9p74UgWftpDtmrqrRTobiuvsFBxosbeRCvEQCrN0n+p5D9hCVB88tUPHnO +WA4mlduAFZDxQWTApKQ92frHiBqy+M1JFezz2OM3fYN+Dqo/Cb7ZwOAA/2dbwS7o +y4sXEHbfWonjskgPQwFYB23tsFUuM4uZwVEbJg+bveglDsDStbDlfgArXSL/0+ak +lFcHiQEiBBABAgAMBQJKaAqEBQMAEnUAAAoJEJcQuJvKV618rH0H/iCciD4U6YZN +JBj0GN7/Xt851t9FWocmcaC+qtuXnkFhplXkxZVOCU4VBMs4GBoqfIvagbBTyfV4 +Di+W8Uxr+/1jiu3l/HvoFxwdwNkGG6zNBhWSjdwQpGwPvh5ryV1OfLX/mgQgdDmx +vqz5+kFDUj4m7uLaeuU2j1T0lR4zU0yAsbt7J3hwfqJCXHOc9bm5nvJwMrSm+sdC +TP5HjUlwHr9mTe8xuZvj6sO/w0P4AqIMxjC9W7pT9q0ofG2KSTwt7wFbh05sbG4U +QYOJe4+Soh3+KjAa1c0cvmIh4cKX9qfCWwhhdeNfh1A9VTHhnl5zTv/UjvnQtjhl +H/Fq1eBSKcSJASIEEAECAAwFAkp5LgoFAwASdQAACgkQlxC4m8pXrXwY6wgAg3f8 +76L3qDZTYlFAWs3pXBl8GsUr1DEkTlEDZMZKDM3wPmhaWBR1hMA3y6p3aaCUyJIJ +BEneXzgyU9uqCxXpC78d5qc3xs/Jd/SswzNYuvuzLYOw5wN5L31SLmQTQ8KqE0uo +RynBmtDCQ4M2UKifSnv+0+3mPh85LVAS481GNpL+VVfCYtKesWNu40+98Yg6L9NG +WwRTfsQbcdokZo44Jz7Y7f81ObC4r/X1DgPj2+d4AU/plzDcdrbINOyprs+7340e +cnaGO4Lsgd19b1CvcgJgltRquu3kRvd+Ero2RYpDv6GVK8Ea0Lto4+b/Ae8cLXAh +QnaWQCEWmw+AU4Jbz4kBIgQQAQIADAUCSo5fvQUDABJ1AAAKCRCXELibyletfA08 +B/9w8yJdc8K+k07U30wR/RUg3Yb2lBDygmy091mVsyB0RGixBDXEPOXBqGKAXiV1 +QSMAXM2VKRsuKahY2HFkPbyhZtjbdTa7Pr/bSnPvRhAh9GNWvvRg2Kp3qXDdjv9x +ywEghKVxcEIVXtNRvpbqRoKmHzIExvUQck5DM1VwfREeYIoxgs4035WADhVMdngQ +S2Gt8P2WaU/p8EZhFGg6X8KtOlD68zGboaJe0hj2VDc+Jc+KdjRfE3fW5IToid/o +DkUaIW6tB3WkXb0g6D/2hrEJbX3headChHKSB8eQdOR9bcCJDhhU8csd501qmrhC +ctmvlpeWQZdIQdk6sABPWeeCiQEiBBABAgAMBQJKoBJHBQMAEnUAAAoJEJcQuJvK +V618Ml8H/1D88/g/p9fSVor4Wu5WlMbg8zEAik3BIxQruEFWda6nART6M9E7e+P1 +++UHZsWYs6l9ROpWxRLG1Yy9jLec2Y3nUtb20m65p+IVeKR2a9PHW35WZDV9dOYP +GZabKkO1clLeWLVgp9LRjZ+AeRG+ljHqsULXro1dwewLTB/gg9I2vgNv6dKxyKak +nM/GrqZLATAq2KoaE/u/6lzRFZIzZnLtjZh8X7+nS+V8v9IiY4ntrpkrbvFk30U6 +WJp79oBIWwnW/84RbxutRoEwSar/TLwVRkcZyRXeJTapbnLGnQ/lDO1o1d7+Vbjd +q/Sg/cKHHf7NthCwkQNsCnHL0f51gZCJASIEEAECAAwFAkqoEAAFAwASdQAACgkQ +lxC4m8pXrXwE/Af/XD4R/A5R6Ir/nCvKwCTKJmalajssuAcLEa2pMnFZYO/8rzLO ++Gp8p0qFH9C4LFwA0NvR5q6X/swuROf4zxljSvNcdlQVaAfJ2ZDEgJ5GXzsPplrv +SAI9jS3LL7fSWDZgKuUe0a4qx7A0NgyGMUYGhP+QlRFa8vWEBI9fANd/0mMqAeBV +qQyOH0X1FiW1Ca2Jn4NKfuMy9GEvRddVIbB1LvoNVtXPNzeeKMyNb9Jdx1MFWssy +COBP2DayJKTmjvqPEc/YOjOowoN5sJ/jn4mVSTvvlTooLiReSs6GSCAjMVxN7eYS +/Oyq6Iu1JDcJvmB8N2WixAZtAVgF8OA7CWXKVYkBIgQQAQIADAUCSrnHiQUDABJ1 +AAAKCRCXELibyletfPChB/9uECti1dZeNuFsd0/RuGyRUVlrrhJE6WCcOrLO9par +rPbewbKBmjSzB0MygJXGvcC06mPNuquJ7/WpxKsFmfg4vJBPlADFKtgRUy9BLzjC +eotWchPHFBVW9ftPbaQViSUu7d89NLjDDM5xrh80puDIApxoQLDoIrh3T1kpZx56 +jSWv0gelFUMbXAzmqkJSyL4Xdh1aqzgUbREd7Xf2ICzuh0sV6V7c/AwWtjWEGEsA +HZaiQDywZwbC18GwrMLiAzGWb/AScFDQRCZKJDjL+Ql8YT6z+ZMVr8gb7CIU5PKY +dhiIf2UVTQwLAoW7lNRCQQAqcGjK3IMIz7SO/yk4HmVUiQEiBBABAgAMBQJK3gjG +BQMAEnUAAAoJEJcQuJvKV618jkEH+wb0Zv9z7xQgpLMowVuBFQVu8/z7P5ASumyB +PUO3+0JVxSHBhlCKQK7n11m1fhuGt2fCxXhSU6LzXj36rsKRY53lGZ9QhvqFUtQH +3Xb2IQLIJC4UKjG2jSSCdcuA/x98bwp2v7O03rn7ndCS16CwXnRV3geQoNipRKMS +DajKPpZv1RiZm8pMKqEb8WSw352xWoOcxuffjlsOEwvJ85SEGCAZ9tmIlkZOc7Ai +QONDvii9b8AYhQ60RIQC0HP2ASSmK0V92VeFPxHmAygdDQgZNVtbVxgnnt7oTNEu +VRXNY+z4OfBArp7R+cTsvijDRZY4kML1n22hUybwoxUEvjqZV2+JASIEEAECAAwF +AkrvOlQFAwASdQAACgkQlxC4m8pXrXxrPAgArXiNgZirNuBhfNCXlkzkCHLx5wnV +e4SmTpbWzTwWw7+qk7d4l9hlWtdImISORINzo7f4ShSUzJX2GciNaXhaHRo7+y5O +Zbu82jQb09aQQj/nibKYuqxqUrobTEm+DuYz3JUQZm2PsPcHLS8mX9cxvrJUncPG +nXEV0DRaq71SGWDprtkvBbp6i38aY3sIhYgz8wM5m1szKDtjywmBYcFehIdozt9z +hm7wZshzRWQX1+Rf/pIsnk+OzBIa34crSemTnacbV/B7278z2XAyziPNFuqz0xu+ +iltOmYmayfNWAmumuw9NcuwWMlth6Mc2HLrpo0ZBheJ6iuDMPsHnwqdB/4kBIgQQ +AQIADAUCSwBd2gUDABJ1AAAKCRCXELibyletfP6tB/4m1w0BtlkJgtS6E+B/ns14 +z4A4PGors+n+MYm05qzvi+EnDF/sytCmVcKeimrtvDcfoDtKAFFvJjcYXfnJdGWm +Pu0SJMRL5KKCirAKwZmU/saxOgoB5QLNw+DHPteJ3w9GmWlGxIqG1r15WC5duzBC +y3FsnjJYG3jaLnHOO9yXXb5h0kUTORfUKdvAr1gxF2KoatZWqGoaPPnHoqb88rjt +zk8I7gDqoXnzh8wLxa0ZYvfTC/McxdWTrwXLft+krmMQ18iIZEne2hvVLNJVuluU +oiWLeHA8iNCQ4W4WTdLc1mCnCjGTMX/MN41uLH0C9Ka4R6wEaqj4lPDk1B/1TV+Q +iQEiBBABAgAMBQJLEYGrBQMAEnUAAAoJEJcQuJvKV618naIH/2t9aH5mBTKBN6fU +qhrf79vIsjtI/QNS5qisBISZMX3/1/0Gu6WnxkPSfdCUJMWCjMcnVj7KU2wxTHHG +VpAStd9r2afUNxRyqZwzwyytktuZok0XngAEDYDDBS3ssu2R4uWLCsC2ysXEqO/5 +tI5YrTWJZrfeIphTaYP5hxrMujvqy3kEwKKbiMz91cDeiLS+YCBcalj5n/1dMYf7 +8U8C6ieurxAg/L8h6x25VM4Ilx4MmG2T8QGtkkUXd+Fd/KYWmf0LE5LLPknf0Hhw +oVslPXeinp4FsHK/5wzviv4YZpzuTqs9NlKcMsa4IuuPOB0FDf0pn+OFQbEg9QwY +2gCozK+JASIEEAECAAwFAksjTdQFAwASdQAACgkQlxC4m8pXrXwlogf/XBGbXRVX +LMaRN4SczOjwT3/tUCriTkb3v+zKjRG90zFhYAccjn7w+7jKQicjq6quQG1EH2X4 +/Su6ps1lDLqGHHhiJW3ZhxQScLZmhdAYsh2qG4GP/UW3QjXG7c61t+H3olvWg2cr +wqCxxFZAgkAAkr9xcHWFZJEQeXoob6cCZObaUnHSANdmC6s5lUxXYa2bmL7Q3UB4 +4KCzDvAfbPZKJOw9k0qb3lc11zx+vGdyZFbm4R0+3LPp/vT0b3GlSbbF9lU1GOXh +VaphrgFFa76dmjfHCkPplXAkK1VSIU/aPGAefduTFMdlSZpdMtJ5AULjGcszBDlR +pLlPxvqVa0ZpgIkBIgQQAQIADAUCSycmkgUDABJ1AAAKCRCXELibyletfHlNCACp +1YespiHfQt2alcscE5zgfETEHHic8Ai6pNkU9HT4TeWcFHEDe5QqfYcpjLrQvBXS +kSvxEittbyRdv+e+j5Z+HyHjiG8nAQBL6qy9eHqQE4+d7gYs6DTk7sG9ZMYphREb +ltzD+F4hVCQdLT8LNr0eVFN7ehqECScDaCG8/Qyti+l/0M902/Yn+mz0ilOiUdWJ +9x6LPaIINtb1gsYDEylLjwGIZmI0r5Kh9wYoV4vnNezFbxO1uRiW0B7iaPjIEsbt +OOKp7wx2aX+DM3N9F3BtaIY8XnzcnomNm83SNsgmgrZljpQltUnNqIhNM8DupQ+I +WOV5gtl6pTC7CgeVTVyRiQEiBBABAgAMBQJLOGXuBQMAEnUAAAoJEJcQuJvKV618 +ll4IAKJ9mm4jb0c8fe9+uDI8eCJRbzNbVXm8zWzpA8GUtQAakwxoKv332QP1Wa1P +odni/e3EMhsSREOZJJv79YqGxGRBTE9Kb/VjM34nas4XSnXKW28XWhKyIw+XwQAi +nY2swFHh+83Htr/mwTdJfS2aEYl2zboBvd/JZCdhOGU2GH737S/3uEczoKkfVQ/w +OTM8X1xWwlYWqx23k/DsGcuDs9lA2g7Mx7DSqBtVjaTkn9h0zATzXLDkmP4SAUVj +cZ83WDpFre5WnizZjdXlBMM5OCexp5WpmzyHLTnaBFK4jEmnsk5C2Rnoyp8Ivz6g +Ecg1tRbEXijRw++d2TFYlJwLKtiJASIEEAECAAwFAktKMicFAwASdQAACgkQlxC4 +m8pXrXxqHQgAuYY5scKrh0m/GS9EYnyC9494lOlO6iytU0CpE6oBC31M3hfX/Dbj +UbcS5szZNU+2CPYo4ujQLZ7suN7+tTjG6pZFfMevajT9+jsL+NPMF8RLdLOVYmbl +TmSQGNO+XGEYaKYH5oZIeIW5AKCgi2ozkdFlBBLAx7Kqo/FyybhkURFEcvEyVmgf +3KLV7IIiX/fYLfoCMCJ/Lcm9/llSFB1n8Nvg66Xd533DKoHjueD3jyaNAVlo2mq/ +sIAv++kntvOiB3GDK5pfwHZ78WWiCpsWZpE5gzAnzJ1Y0WEigRo0PVLu3cLO0jLG +23d+H/CbfZ8rkajHJeCDQF7YVmP0t0nYpYkBIgQQAQIADAUCS1v+ZgUDABJ1AAAK +CRCXELibyletfNS/CACqt2TkB86mjqM+cJ74+dWBvJ2aFuURuxzm95i9Q/W/hU08 +2iMbC3+0k2oD8CrTOe61P+3oRyLjv/UEDUNzLncNe2YsA9JeV+4hvPwH5Vp3Om13 +089fCKZUbqslXNKkHiWYU+zAaZJXEuGRmRz0HbQIeAMOWF4oa226uo1e4ws1Jhc+ +F3E/ApCRyFBqBUdL05hapQLditYpsBjIdiBGpjzidMLE2wX2W4ZpAdN0U6BIyIqR +mTPjbSkvzS9kSWFmfhQgnBDKEYJpVZgE1sN52rYC1sDeGeiuKxlzjVov9MMhYMWa +Zo3R5o3F2iIM/BK6FbC252lf/Mhu3ICuXujNBZNYiQEiBBABAgAMBQJLbSH4BQMA +EnUAAAoJEJcQuJvKV618kd0IAJLLwDH6gvgAlBFklQJXqQxUdcSOOVMAWtlHgWOy +ozjgomZZBkRL8dtCDr9YBMcj5czcQ3qpmLJdppXhKB+kJV2iUXfDMSFXwJ4wLfIs +8FNnXw8H5U01oBkGH/Ku6ngL9Vwt+MjYHtCWkw9QueUKZnDudX9qIzLAIt+mwSTu +A6+fY4VWIg40AA0v3exaQM55YR/UhlKunpGG9o8Qkq77dMEbTMpOmBoLbOMRB3Dd +MAvVU6G2l6Pcb7KobVCuOBnb6batXARV/G8sw+nzfJ16fr/KobZT2A6m+Jrqk4dl +F14ljLbz16O5JGUPAryN2G2ddBdSAy7dtFSVhWWiWC9n88q5Ag0EPj6jHRAIAO/h +iX8WzHWOMLJT54x/axeDdqn1rBDf5cWmaCWHN2ujNNlgpx5emoU9v7QStsNUCOGB +bXkeO4Ar7YG+jtSR33zqNh3y5kQ0YkY3dQ0wh6nsl+wh4XIIY/3TUZVtmdJeUBRH +JlfVNFYad2hX1guFI37Ny1PoZAFsxO82g+XB/Se8r/+sbmVcONdcdIeFKrE3FjLt +IjNQcxC6l9Q2Oy8KDxG/zvUZG3+H5i3tdRMyGgmuD6gEV0GXOHYUopzLeit1+Aa0 +bCk36Mwbu+BeOw/CJW3+b0mB27hOaf9aCA855IP6fJFvtxcblq8nHIqhU3Dc9tec +sl9/S1xZ5S8ylG/xeRsAAwUH/i8KqmvAhq0X7DgCcYputwh37cuZlHOa1Ep07JRm +BCDgkdQXkGrsj2Wzw7Aw/TGdWWkmn2pxb8BRui5cfcZFO7c6vryi6FpJuLucX975 ++eVY50ndWkPXkJ1HF4i+HJwRqE2zliN/RHMs4LJcwXQvvjD43EE3AO6eiVFbD+qA +AdxUFoOeLblKNBHPG7DPG9xL+Ni5rkE+TXShxsB7F0z7ZdJJZOG0JODmox7IstQT +GoaU9u41oyZTIiXPiFidJoIZCh7fdurP8pn3X+R5HUNXMr7M+ba8lSNxce/F3kmH +0L7rsKqdh9d/aVxhJINJ+inVDnrXWVoXu9GBjT8Nco1iU9SIVAQYEQIADAUCTnc9 +7QUJE/sBuAASB2VHUEcAAQEJEIxxjTtQcuH1FJsAmwWK9vmwRJ/y9gTnJ8PWf0BV +roUTAKClYAhZuX2nUNwH4vlEJQHDqYa5yQ== +=ghXk +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-openfusion b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-openfusion new file mode 100644 index 0000000..f349cd2 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-openfusion @@ -0,0 +1,24 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.0.7 (GNU/Linux) + +mQGiBDps6bkRBACFKoIFqtDXVbzQDfuVhUDbKy1bNTEen8E/0UyqDPfSLgD8uEDU +ZdG9v3e1IAiAKwBRpNNdn7DrvYSP2HnM+5gSL9WwF+Qc7pt6i5Fp8jsnVKHtulF4 +8hoU/0nbJth/1r+uQOCXIn/5yU0gt9ev7y6FovpE4TmvGkZocKs9PGlSnwCg2Fcg +Rw2Z3BlIdwTIH4HdY4A+X9ED/AiCz6AIbTN3No4Pofyd9Ctdb8Wi2+HDFe8o1r5M +BUn2yb04v5/fUgZ32DJHqPxdC/6rwR15PMEO0weIITji8nkGPAUU5Yf1U6WfxaXC +fj5z6dSM1QbMdEXBZ2qXuzGFV+NoHrPpsi5k1LCETNAmiZ1YdK5QsqcBvLTenum0 +S82+A/96vqBlaxf7VsqVQ6f/KwLvegd1ftpncKzX1lDFN3wT9FSJDz2wbN7X93jg +bRaSBbwwgSrISCtjciJLzvg8btInRXvzHpngA+jrY82GBMjJ0g0rO/e8WeK4S3+z +zVAnljQRogFErsxe6AhZFz2Hz9pL12t2Bb1Y/Yj62kIdBs1FTLQkR2F2aW4gQ2Fy +ciA8Z2F2aW5Ab3BlbmZ1c2lvbi5jb20uYXU+iFcEExECABcFAjps6bkFCwcKAwQD +FQMCAxYCAQIXgAAKCRDceqMiKmuRSn7KAJwPv3xGQvZjKneR5aYMr8DR4tGXmgCc +C/YcA9yRa17VcCS8SFTNbrFs9um5AQ0EOmzpwhAEAKYnfhzBJW99bSGWg6826FbC +g7LdQBjUa7lIk/Osvlkd1FjeogRg4jtEqAeUwTo4Nf3nPMRKE/l4Rzv0DOjhWDEG +hOKpx1iIKJUPKGHTToOcNAWXSTvzWOx6Rm/sKbInvVgUZjj36IktS88IEI+LMgdm +nxuPdI46YDcA6+jyUhYnAAMFA/44mjlvBSX8MYaklIMQrps8hPVSVINwTmksRIDb +wuLU6R85g8If9LaRpVG3rPca+EQ2gEDFVlgt2t2A5XrcHFfkLUx3k1UyF1LOmpRt +I78FY5s4IXQE7s/QOrBWQj3+FdOkSjeoOyAor5t8ckkLNEM48WAa1hFChOiqYRfO +vkbYdohGBBgRAgAGBQI6bOnCAAoJENx6oyIqa5FK6QcAn0zeyRrNrt3yHkxoLI36 +XNgiCqE/AJ9AZ+mLPpxeFe8oSM37ZlWQu0yvyQ== +=r1Po +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-remi-el-8 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-remi-el-8 new file mode 100644 index 0000000..e2cc218 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-remi-el-8 @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +qk7agVI= +=sJgk +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-remi.el8 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-remi.el8 new file mode 100644 index 0000000..e2cc218 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-remi.el8 @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +qk7agVI= +=sJgk +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rockyofficial b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rockyofficial new file mode 100644 index 0000000..28ce769 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rockyofficial @@ -0,0 +1,29 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBGAofzYBEAC6yS1azw6f3wmaVd//3aSy6O2c9+jeetulRQvg2LvhRRS1eNqp +/x9tbBhfohu/tlDkGpYHV7diePgMml9SZDy1sKlI3tDhx6GZ3xwF0fd1vWBZpmNk +D9gRkUmYBeLotmcXQZ8ZpWLicosFtDpJEYpLUhuIgTKwt4gxJrHvkWsGQiBkJxKD +u3/RlL4IYA3Ot9iuCBflc91EyAw1Yj0gKcDzbOqjvlGtS3ASXgxPqSfU0uLC9USF +uKDnP2tcnlKKGfj0u6VkqISliSuRAzjlKho9Meond+mMIFOTT6qp4xyu+9Dj3IjZ +IC6rBXRU3xi8z0qYptoFZ6hx70NV5u+0XUzDMXdjQ5S859RYJKijiwmfMC7gZQAf +OkdOcicNzen/TwD/slhiCDssHBNEe86Wwu5kmDoCri7GJlYOlWU42Xi0o1JkVltN +D8ZId+EBDIms7ugSwGOVSxyZs43q2IAfFYCRtyKHFlgHBRe9/KTWPUrnsfKxGJgC +Do3Yb63/IYTvfTJptVfhQtL1AhEAeF1I+buVoJRmBEyYKD9BdU4xQN39VrZKziO3 +hDIGng/eK6PaPhUdq6XqvmnsZ2h+KVbyoj4cTo2gKCB2XA7O2HLQsuGduHzYKNjf +QR9j0djjwTrsvGvzfEzchP19723vYf7GdcLvqtPqzpxSX2FNARpCGXBw9wARAQAB +tDNSZWxlYXNlIEVuZ2luZWVyaW5nIDxpbmZyYXN0cnVjdHVyZUByb2NreWxpbnV4 +Lm9yZz6JAk4EEwEIADgWIQRwUcRwqSn0VM6+N7cVr12sbXRaYAUCYCh/NgIbDwUL +CQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRAVr12sbXRaYLFmEACSMvoO1FDdyAbu +1m6xEzDhs7FgnZeQNzLZECv2j+ggFSJXezlNVOZ5I1I8umBan2ywfKQD8M+IjmrW +k9/7h9i54t8RS/RN7KNo7ECGnKXqXDPzBBTs1Gwo1WzltAoaDKUfXqQ4oJ4aCP/q +/XPVWEzgpJO1XEezvCq8VXisutyDiXEjjMIeBczxb1hbamQX+jLTIQ1MDJ4Zo1YP +zlUqrHW434XC2b1/WbSaylq8Wk9cksca5J+g3FqTlgiWozyy0uxygIRjb6iTzKXk +V7SYxeXp3hNTuoUgiFkjh5/0yKWCwx7aQqlHar9GjpxmBDAO0kzOlgtTw//EqTwR +KnYZLig9FW0PhwvZJUigr0cvs/XXTTb77z/i/dfHkrjVTTYenNyXogPtTtSyxqca +61fbPf0B/S3N43PW8URXBRS0sykpX4SxKu+PwKCqf+OJ7hMEVAapqzTt1q9T7zyB +QwvCVx8s7WWvXbs2d6ZUrArklgjHoHQcdxJKdhuRmD34AuXWCLW+gH8rJWZpuNl3 ++WsPZX4PvjKDgMw6YMcV7zhWX6c0SevKtzt7WP3XoKDuPhK1PMGJQqQ7spegGB+5 +DZvsJS48Ip0S45Qfmj82ibXaCBJHTNZE8Zs+rdTjQ9DS5qvzRA1sRA1dBb/7OLYE +JmeWf4VZyebm+gc50szsg6Ut2yT8hw== +=AiP8 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rpmfusion-free-el-7 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rpmfusion-free-el-7 new file mode 100644 index 0000000..efe2902 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rpmfusion-free-el-7 @@ -0,0 +1,29 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFVE8DcBEACmsFjnapHXm5l0dXbyxXZU8sZVawRIQ/lG9Yc9tSICcY8QuSxu +636wsVHiQHd0sIipk6vvgWfTTV+w0OxyovY8PFciEtOC4JZBJO1cT952sDxRTzcU +Y+DArqPUwqyMqJo86BxwoQi9qdg4eNlp5RNamzbu2yKpPZUk4RWF0QnlEJ5bQ8xY +Q2HyzR6YUsKBuCbNV/OevxxSjSFesWqmE2zIFVDsNvS+FGbH6SwDrKgBeDHCeg35 +KQgHyNkONoe7EjfCVdWwWsOdo9pqEKZKd4U6Sz234d9JqvF7y3+Lc85l/TxU+G/C +uXxRki5XVx3sMH0UgK0nn0fBEv95Dtq5I7EWNYDOesFDbBRjhqo5dh51yOcfn1QO +ATKGwo2WZTGc32kOXwu/zzZaT37HulyOpJ/8jAoOQ6qH5T7RDy2M1vlAvGcdy2dz +GUyD2bNlPSp1exw6CWOXjty/9nOglJBBsr/YwTundSKpZSKPkn3z74ZAD4Pqviwx +yRsk1UjHlCm8sPfahkpRheFKDJT/wIBUhI7tbzyfxMaNwryc1U+yOiAl92sMr8ra +a0CGk48cFa6vulSq/ELdt/qF+I0TywacaTvU3ySSd3Juff54c8ELNBjTGY4MAomk +y1P755q83yBdYaRDU6U1ljKP1GP8Kgilk6QCWu1izFPepPK4Bi7ZGTUEhQARAQAB +tE5SUE0gRnVzaW9uIGZyZWUgcmVwb3NpdG9yeSBmb3IgRUwgKDcpIDxycG1mdXNp +b24tYnVpbGRzeXNAbGlzdHMucnBtZnVzaW9uLm9yZz6JAjIEEwECABwFAlVE8DcC +GwMECwkIBwMVCAoDFgIAAh4BAheAAAoJEHWLPRj1z2weGigQAKO+ULRBzztGDg3m +ev8rDEOfv49x3T4+tTYlMOtvsg8Jvi5okGp+bXO0qZkw8463Ljrs5FAW1/oIGFYA +D9RMDnlgpDAhP6Gho/tGIPc6yfSHOUm2uS5Ve1Q7j3eBHr8IlAvpg/1U9IIS7LDU +WcVNjpsBzog8pGXRBSYx5yi7ddP5GcQPLwn0TT7jkawzrlmfnMz3un6gaxgFIxmS +wzd+lr7CHP3Lptxt3Oe5pliEQ58kuBzt0gkxGkkbeRyolareanJBlIozYIM3TQum +K4UbXIjPWlHr02z+qtrkpkDgM5aO+rEPGctd4W12zT5Gqp5Ij5fuFUHgFKvxf+0F +t7RDWffAiKtk8HX0PoytIBY9fiQtZXjnbPq1rT65brz6bc85HR3sRx2+gn9IN+Cg +OwdV7NoL8Dj7w3J5DMS1yT1KbmwRHHyKD0muL3NUw9RZXPmmUakbIvLZlERKhyca +JZlkakLUOvesXcZg2Zqug36ET0AQO/Af7e6dw8jXBc4BN/R5U8LU0ENaB3apRcdF +NEDqxPo98MGzIxqJUjWkwJfRvdqAPEM8JLeyhcuChsmwIGF0WbLsmVJ90LJxsoZQ +G+iQKiFwF8HO6fBk4APSAtic+j+9uHoLMS9tWsLABmNQCvjtRe6hxz20yud672uo +OEGWGYNPKeu56Dbc18pxBHez9m42 +=buWg +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rpmfusion-free-el-8 b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rpmfusion-free-el-8 new file mode 100644 index 0000000..8327c84 --- /dev/null +++ b/root/usr/share/rpm-gpg-keys/RPM-GPG-KEY-rpmfusion-free-el-8 @@ -0,0 +1,29 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFwzh0wBEADfwWMombl8hSzfzeWwGEyBXs4S+9YYmxgtFjnCzR4aUIXxevvf +tY8YWWEeaIosG/V+XJuw+EjcKCDk0RpFimBIyO6IjwkJTVmFVYuzVc/O3fs64Hbl +Dm1fMpOrnVUJnV59nUhDkcnYdysMPKuBJghw+a85FlhnlDlnVC94XPcD5QyTfjpR +bfvCSCFSTobIHUoOI7SK7r7x+qldQeopnCQILZyhaeXDW+jFC1E50oaUtw2sMvfF +q0d03f8yZsiJm2sVpPJ/zEJG8yXogJyEsfMXDoxn7sA8mP09W3cScci/fE7tIUu+ +3HXzAn8CqZRCxIp2uDvpeom7e8NqwIorWZDiP7IhdQr1sf4bud07buCdovmHRSjE ++IuW9gTFAHVFdL3dEwzOMKkdV3i6ru4VVjPm4K4SEbFHaKDrwJy+RlVmcPdH99HI +aHqj5GU140D4grp814hkciy2EXiJP6qMqi8thAQof3ljr4ZZB3/g9tOl/zE865Xp +RvmKS7qv45Vr6wCYvoquaAvm3wusUgQL3TWlAhfGqys13ijqmJIwz75YbL8J9hma +biwLHl4xrWe5quNXdUsC/ijThKbl8duUWYw4nBN1azcVZHV2bZMgnxOsZp3zN0lU +RB1K7U4kEni8c11PGHsL7uH/OuSy3Wq7WPpX7J5nrMbJMmqL3s5jyUkhVQARAQAB +tE5SUE0gRnVzaW9uIGZyZWUgcmVwb3NpdG9yeSBmb3IgRUwgKDgpIDxycG1mdXNp +b24tYnVpbGRzeXNAbGlzdHMucnBtZnVzaW9uLm9yZz6JAkUEEwEIAC8WIQSDeTXN +GeEjqn+KjmmXnwxpFYs4EQUCXDOHTAIbAwQLCQgHAxUICgIeAQIXgAAKCRCXnwxp +FYs4EVdWEADfHIbm/1o6Pf/KRU4SYLFm45AnDQ4OKCEH8y8SvvPJQMKZYnXfiblt +XYK1ec6F4obgl2eNKZoIrKS6CBwu3NpvjWXCPBn/rkiksB7pbDid6j0veHrZmrnG +6Ngo2VnGIjLcDRPcAn/WjzpevS8X9q6AF9bZoQ8BSoxCAoGueko1R02iWtZPlV1P +IQEW2cF9HQdI1vw0Nh+ohiDO87/mNyVUdjootpncVnArlf5MGj8Ut9zo6yJSlxG0 +7lvMnreH4OeIaJPGYRHhsFtSfe7HbPaCmYAmlCFLmw3AhHuEnYSCAt2kMVxlUrAc +li/FxEyXAKS/C2OYk3jDA215K/G14tBWDkNLwyULiURDH6lvWyRqyOVzr198AJLK +3WK6G5RfngV82VyW0SX4XScnQxuk55HsMC8CKapmPtdjDjqR1qrKDe6umNskwPII +tCU7ZZL+8Do/eMHqJgUBS5II+bSngVSfO4Yz/zeU0WWZhDirh9C3CeZ3kEVSLQq/ +eC9Zt2/x8xykXXKeswg5I0m0+FBAo9w2ChXyi9rQSFEScqCqml+7elQZTF/TrsHC +Os+yoXdCv3hm0wFMdQl4PeXrzmZOB/kMC+XIESoRpRVBod2C6EzHKYCXzoY9iqla +RmIw/1lMM/XnE/x+XQzvkcOQPHSxQ+iJjD5arhoROh2wCvfb3IPnYw== +=Fpo1 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/root/var/log/yum/.gitignore b/root/var/log/yum/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/smeserver-update.spec b/smeserver-update.spec new file mode 100644 index 0000000..397bcad --- /dev/null +++ b/smeserver-update.spec @@ -0,0 +1,1196 @@ +%define name smeserver-update +Summary: Koozali SME Server rpm updater +Name: %{name} +%define version 2.6.2 +%define release 9 +Version: %{version} +Release: %{release}%{?dist} +License: GPL +Group: SMEServer/addon +Source: %{name}-%{version}.tar.xz + +BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot +BuildArchitectures: noarch +Requires: smeserver-formmagick +Requires: smeserver-base +Requires: perl(CGI::FormMagick) >= 0.91-26 +Requires: python3-rpm +Requires: distribution-gpg-keys +Requires: dnf +Requires: dnf-automatic +Requires: python3-dnf-plugins-core +Requires: python3-dnf-plugin-post-transaction-actions +Requires: python3-dnf-plugin-versionlock +#Requires: yum-plugin-fastestmirror +#Requires: yum-plugin-priorities +#Requires: yum-plugin-post-transaction-actions +Requires: mailx +BuildRequires: smeserver-devtools +BuildRequires: python3 +AutoReqProv: no + +# Disable automatic bytecompilation. The python3 binary is not yet be +# available in /usr/bin when Python is built. Also, the bytecompilation fails +# on files that test invalid syntax. +%undefine py_auto_byte_compile + +%description +%name is the Koozali SME Server updater based on dnf. + +%prep +%setup + +%build +perl createlinks +mkdir -p root/etc/yum.smerepos.d + +%install +/bin/rm -rf $RPM_BUILD_ROOT +(cd root ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT) +/bin/rm -f %{name}-%{version}-filelist +/sbin/e-smith/genfilelist \ + --file '/sbin/e-smith/yum_update_dbs' 'attr(0700,root,root)' \ + --file '/sbin/e-smith/yum' 'attr(0755,root,root)' \ + --file '/sbin/e-smith/check4updates' 'attr(0755,root,root)' \ + --file '/sbin/e-smith/check4contribsupdates' 'attr(0755,root,root)' \ + --file '/sbin/e-smith/yumdownloadonly' 'attr(0755,root,root)' \ + --file '/etc/cron.daily/smeserver-yum' 'attr(0700,root,root)' \ + --dir /var/log/yum 'attr(2750,root,root)' \ + $RPM_BUILD_ROOT > %{name}-%{version}-%{release}-filelist + +%clean +/bin/rm -rf $RPM_BUILD_ROOT + +%files -f %{name}-%{version}-%{release}-filelist + +%defattr(-,root,root) + +%pre + + +%changelog +* Mon Mar 25 2024 Jean-Philippe Pialasse 2.6.2-9.sme +- initial release of smeserver-update based on smeserver-yum + updated requirements + TODO tidy centos repos + TODO add rocky repos + TODO tidy reference yo yum + TODO yum-cron alternative for updates list and auto update + TODO rename yum_** esmith db + TODO deltarpm tidy + TODO adapt setting for fastestmirror + TODO adapt settings for post-transaction-actions + TODO adapt setting for priorities + TODO adapt /etc/yum.conf -> /etc/dnf/dnf.conf + TODO rename yum.service ? + +* Fri Mar 15 2024 Jean-Philippe Pialasse 2.6.2-8.sme +- disable brp-python-bytecompile [SME: 12511] + +* Thu Mar 14 2024 Jean-Philippe Pialasse 2.6.2-7.sme +- use python 3 to build and python 2, as needed for brp-python-bytecompile + https://bugzilla.redhat.com/show_bug.cgi?id=1411588 + +* Thu Oct 26 2023 cvs2git.sh aka Brian Read 2.6.2-5.sme +- Roll up patches and move to git repo [SME: 12338] + +* Thu Oct 26 2023 BogusDateBot +- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday, + by assuming the date is correct and changing the weekday. + +* Wed Aug 16 2023 Jean-Philippe Pialasse 2.6.2-4.sme +- remove initialize-default-databases and navigation-conf from yum-* events [SME: 12172] +- fix warning readline() on closed filehandle YUM_STATUS [SME: 12170] +- fix warning on uninitialized value in concatenation [SME: 12173] +- fix CSRF time-out during yum update [SME: 10926] + now 10 minutes for this panel updated on last generation of a page + +* Mon Feb 27 2023 Michel Begue 2.6.2-3.sme +- fix reconfigure asked when not needed [SME: 12171] +- do not show reconfigure button and message if not needed [SME: 12209] + +* Tue Nov 22 2022 Jean-Philippe Pialasse 2.6.2-2.sme +- set smecontribs enabled on new install [SME: 12179] + +* Mon Jul 11 2022 Jean-Philippe Pialasse 2.6.2-1.sme +- bump version number +- no reboot for dbus-glib [SME: 12091] + +* Tue Jun 14 2022 Jean-Philippe Pialasse 2.6.0-64.sme +- rephrase contrib update message [SME: 11543] +- move mysqld to mariadb in smeserver plugin [SME: 11921] + +* Sun Apr 24 2022 Jean-Philippe Pialasse 2.6.0-63.sme +- remove force AutoInstallUpdates to disabled [SME: 11961] + +* Sun Apr 17 2022 Jean-Philippe Pialasse 2.6.0-61.sme +- fix rotate yum.log as not standard location [SME: 11951] +- remove yum_update_dbs from messages log [SME: 11952] + +* Tue Mar 08 2022 Jean-Philippe Pialasse 2.6.0-60.sme +- restart cvm-unix on cvm or bglibs update [SME: 11886] + +* Mon Dec 20 2021 Jean-Philippe Pialasse 2.6.0-59.sme +- remove pop3 and pop3s services from plugin [SME: 11808] + +* Thu Dec 09 2021 Jean-Philippe Pialasse 2.6.0-58.sme +- fix restarting spamd instead of spamassassin [SME: 11803] + +* Fri Dec 03 2021 Brian Read 2.6.0-57.sme +- Re-word-reboot-required-message.patch [SME: 11790] + +* Sun Nov 21 2021 Jean-Philippe Pialasse 2.6.0-56.sme +- fix wrong qpsmtpd handling [SME: 11768] + +* Mon Jun 07 2021 Jean-Philippe Pialasse 2.6.0-55.sme +- add elrepo GPG key [SME: 11625] + +* Mon May 31 2021 Jean-Philippe Pialasse 2.6.0-54.sme +- no reboot needed for systemd-python [SME: 11609] + +* Tue Mar 30 2021 Jean-Philippe Pialasse 2.6.0-53.sme +- fix services stop on removal [SME: 11510] + +* Tue Mar 30 2021 Jean-Philippe Pialasse 2.6.0-52.sme +- run navigation-conf when a panel is installed [SME: 11507] + +* Sun Mar 21 2021 Jean-Philippe Pialasse 2.6.0-51.sme +- migrate back to normal CentOS mirrors after el6 EOL [SME: 11477] +- version 2 with + deleting yum{eolversion} if for previous release or not yet eol + better handling of conditions + +* Wed Mar 17 2021 Jean-Philippe Pialasse 2.6.0-49.sme +- avoid reboot on removal of smeserver-* rpms [SME: 11458] +- navigation-conf when a panel is installed + +* Wed Feb 24 2021 Jean-Philipe Pialasse 2.6.0-47.sme +- fix wrong path for rsyslog.conf [SME: 11364] + +* Sun Feb 21 2021 Jean-Philipe Pialasse 2.6.0-46.sme +- remove noise in yum process "overriding all signals, forcing restart" [SME: 11372] + +* Fri Feb 19 2021 Jean-Philipe Pialasse 2.6.0-45.sme +- packages installed logged both in yum.log and message [SME: 11364] +- set priority to 10 for remi-safe [SME: 11360] + +* Mon Feb 15 2021 Jean-Philipe Pialasse 2.6.0-44.sme +- fix poor handling of service adjusting and action order [SME: 11300] + now a temp event is created + also better logging, better handling of update vs removal + +* Wed Dec 09 2020 Jean-Philipe Pialasse 2.6.0-43.sme +- make yum dbs service fork [SME: 11243] + now smeserver.py plugin call the service + yum-modify can use the service restart + yum.service is its own service, not called by local.service + +* Tue Dec 08 2020 Jean-Philipe Pialasse 2.6.0-42.sme +- move yum upate db service to systemd [SME: 11180] + +* Sun Dec 06 2020 Jean-Philipe Pialasse 2.6.0-41.sme +- fix -update events not runt on package upgrade [SME: 11184] + lower noise on forced restart + +* Thu Dec 03 2020 Jean-Philipe Pialasse 2.6.0-39.sme +- fix switch to vault BaseURL for CentOS [SME: 11227] + +* Mon Nov 16 2020 Jean-Philipe Pialasse 2.6.0-38.sme +- add remi-safe as base repo [SME: 11179] +- smeserver-yum-update event created [SME: 11168] + +* Sun Nov 15 2020 Jean-Philipe Pialasse 2.6.0-37.sme +- fix separate action before template, and after service [SME: 11175] + run all actions with post-upgrade as default event + +* Tue Nov 10 2020 Jean-Philipe Pialasse 2.6.0-36.sme +- fix some templates not expanded [SME: 11121] + +* Tue Oct 20 2020 Jean-Philipe Pialasse 2.6.0-35.sme +- fix smeserver.py not executing action because of wrong path [SME: 11047] + +* Mon Jun 22 2020 Jean-Philipe Pialasse 2.6.0-33.sme +- fix error when key absent of a dict of smeserver plugin at clean stage [SME: 10931] + +* Thu Jan 30 2020 Jean-Philipe Pialasse 2.6.0-32.sme +- avoid missing template error after removal of a rpm [SME: 10846] + +* Thu Jan 30 2020 Jean-Philipe Pialasse 2.6.0-30.sme +- restart php-fpm services when needed [SME: 10873] + +* Mon Dec 09 2019 Jean-Philipe Pialasse 2.6.0-29.sme +- applying patch [SME: 10690] + +* Sun Dec 08 2019 Jean-Philipe Pialasse 2.6.0-27.sme +- fix NameError: global name 'yum_update_dbs' is not defined [SME: 6940] + +* Fri Dec 06 2019 Jean-Philipe Pialasse 2.6.0-26.sme +- use yum-cron with autoupdate feature [SME: 10690] + * use yum-cron for download only or auto update + * yum-cron.conf templates + * update lock path + * settings in server-manager + * remove yumdownloadonly script and crontab template + +* Fri Dec 06 2019 Jean-Philipe Pialasse 2.6.0-25.sme +- fix typo on patch [SME: 10249] + +* Wed Dec 04 2019 Jean-Philipe Pialasse 2.6.0-24.sme +- fix header detected as package [SME: 10843] +- avoid discrepancy between manager, cli and email [SME: 6940] + * force refresh of metadata before db generation + * add regeneration of db during check4updates, after yum update/install/remove +- fix no installed groups file [SME: 118] +- switch to centos vault after EOL [SME: 10249] +- update http://mirrorlist.contribs.org/mirrorlist to https://mirrorlist.koozali.org/mirrorlist [SME: 9697] +- make smecontribs visible [SME: 10716] + +* Mon Feb 18 2019 Jean-Philipe Pialasse 2.6.0-22.sme +- add openfusion gpg key [SME: 10742] + +* Sat Jan 26 2019 Jean-Philipe Pialasse 2.6.0-21.sme +- updated EOL patch [SME: 10170] + +* Wed Jan 23 2019 Jean-Philipe Pialasse 2.6.0-19.sme +- add yum-priority as requirement [SME: 6499] + add support for plugin priority using property priority im yum_repositories db + initial priority to 10 for sme*, base and updates repos. + property yum priority set as enabled as default +- avoid double check updates for contribs if smecontribs is set to enabled [SME: 9388] +- update check4contribs email format to match check4updates [SME: 8782] +- improve yum plugin to avoid reboot [SME: 8705] + add nut support, add exclusions for -doc, -devel... subpackages + +* Tue Jan 22 2019 Jean-Philipe Pialasse 2.6.0-18.sme +- add message to indicate EOL after Jun 30 2024 fix [SME: 10170] + +* Mon Nov 06 2017 Jean-Philipe Pialasse 2.6.0-17.sme +- add yum-plugin-post-transaction-actions as requirement [SME: 1100] + +* Tue May 02 2017 Jean-Philipe Pialasse 2.6.0-16.sme +- add rpmfusion free el7 RPM GPG KEY [SME: 10263] + +* Mon Apr 10 2017 Jean-Philipe Pialasse 2.6.0-15.sme +- avoid reboot for smeserver-locale upgrade [SME: 8705] +- code by stefano zamboni + +* Wed Mar 29 2017 Jean-Philipe Pialasse 2.6.0-14.sme +- correct service names with plugin to avoid reboot [SME: 8705] +- code by stefano zamboni + +* Mon Mar 27 2017 Jean-Philipe Pialasse 2.6.0-13.sme +- fix KeyError with plugin to avoid reboot [SME: 8705] +- code by stefano zamboni + +* Mon Mar 20 2017 Jean-Philipe Pialasse 2.6.0-12.sme +- remove centos contrib repo [SME: 10156] + +* Sat Feb 25 2017 Jean-Philipe Pialasse 2.6.0-11.sme +- added centos SCLo SIG gpg rpm signing key [SME: 10119] +- will allow to install SCL packages directly from smecontribs + +* Sat Feb 18 2017 stephane de Labrusse 2.6.0-10.sme +- Added smeserver-yum-2.6.0.bz8705.avoidReboot.patch [SME: 8705] +- code by stefano zamboni +- Avoid to reboot after the installation of a smeserver-* package + +* Fri Jan 06 2017 Jean-Philipe Pialasse 2.6.0-8.sme +- add Remi Collet RPM GPG KEY [SME: 9903] + +* Thu Aug 04 2016 stephane de Labrusse 2.6.0-7.sme +- Rpm updates can be downloaded during the night [SME: 1502] +- Added smeserver-yum-2.6.0.bz1502.DownloadOnly.patch + +* Mon Aug 1 2016 stephane de Labrusse 2.6.0-6.sme +- Deltarpm is now a setting in the yum panel (disabled by default) +- Added smeserver-yum-2.6.0.bz8834.DeltaRpm.patch [SME: 8834] + +* Fri May 27 2016 Jean-Philipe Pialasse 2.6.0-5.sme +- adding Koozali SME10, EPEL7 and Centos7 gpg keys [SME: 9533] + +* Thu May 12 2016 Daniel Berteaud 2.6.0-4.sme +- Rebuild [SME: 9393] + +* Wed Mar 23 2016 Jean-Philipe Pialasse 2.6.0-3.sme +- yum points now to SME10 mirrors [SME: 9377] +- moved changelog at the end of file +- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday, + by assuming the date is correct and changing the weekday. + Fri May 31 2005 --> Fri May 27 2005 or Tue May 31 2005 or Fri Jun 03 2005 or .... + Fri Nov 16 2006 --> Fri Nov 10 2006 or Thu Nov 16 2006 or Fri Nov 17 2006 or .... + Fri Nov 23 2006 --> Fri Nov 17 2006 or Thu Nov 23 2006 or Fri Nov 24 2006 or .... + + +* Sun Feb 7 2016 Daniel Berteaud 2.6.0-2.sme +- Add python to BuildReq so brp-python-bytecode compiles sme yum plugin + [SME: 9229] + +* Sat Feb 06 2016 stephane de Labrusse 2.6.0-1.sme +- Initial release to sme10 + +* Wed Jan 13 2016 Daniel Berteaud 2.4.0-12.sme +- Example to update contribs 1 by 1 [SME: 8850] + +* Sat Feb 21 2015 Stephane de Labrusse 2.4.0-11.sme +- Set the check update frequency of smecontribs through the server-manager +- [SME: 8855] + +* Sat Jan 10 2015 Stephane de Labrusse 2.4.0-10.sme +- Add a default Yum db property for check4contribsupdates [SME: 8790] + +* Wed Nov 19 2014 Stephane de Labrusse 2.4.0-9.sme +- Added a check-update for the smecontribs repository [SME: 8672] + +* Mon Jun 30 2014 Daniel Berteaud 2.4.0-8.sme +- Move protected package list to the correct location [SME: 8476] + +* Fri Mar 22 2013 Ian Wells 2.4.0-7.sme +- Change order of mail options in check4updates [SME: 7504] + +* Sun Mar 17 2013 Ian Wells 2.4.0-6.sme +- Change wording of Software Update button [SME: 7499] + +* Wed Mar 6 2013 Shad L. Lords 2.4.0-5.sme +- Obsolete el5 yum-protect-packages, provided by yum [SME: 7273] + +* Wed Mar 6 2013 Shad L. Lords 2.4.0-4.sme +- Update GPG keys for sme9 [SME: 7465] + +* Wed Feb 27 2013 Daniel Berteaud 2.4.0-3.sme +- Add fasttrack and remove addons repo [SME: 7385] + +* Tue Feb 5 2013 Shad L. Lords 2.4.0-2.sme +- Add back in missing parts from new stream [SME: 7305] + +* Thu Jan 31 2013 Shad L. Lords 2.4.0-1.sme +- Roll new stream for sme9 + +* Fri Aug 31 2012 Shad L. Lords 2.2.0-20.sme +- Point mirrorlist to mirrorlist.contribs.org [SME: 7087] + +* Tue Mar 1 2011 Jonathan Martens 2.2.0-19.sme +- Add random wait timer for check4updates script to distribute load on ibiblio [SME: 6534] + +* Fri Oct 1 2010 Jonathan Martens 2.2.0-18.sme +- Trigger post-upgrade and reboot on kernel updates [SME: 6166] + +* Sat Jun 12 2010 Shad L. Lords 2.2.0-17.sme +- Fix migrate fragment to not throw warnings [SME: 5705] + +* Wed Jun 02 2010 Shad L. Lords 2.2.0-16.sme +- Fix yum database removal (missing one) [SME: 5705] + +* Wed Jun 02 2010 Shad L. Lords 2.2.0-15.sme +- Migrate MirrorList properties to sme8 repos [SME: 5705] +- Remove BaseURL properties if migrating to sme8 repos [SME: 5949] +- Remove yum databases and repodata if migrating to sme8 repos [SME: 5998] + +* Mon May 17 2010 Jonathan Martens 2.2.0-14.sme +- Revert previous change [SME: 5962] + +* Mon May 17 2010 Jonathan Martens 2.2.0-13.sme +- Migrate CentOS Exclude property default values to smeserver-yum [SME: 5962] + +* Thu Nov 5 2009 Shad L. Lords 2.2.0-12.sme +- only unlink file if we created it [SME: 5476] + +* Wed Oct 14 2009 Filipo Carletti 2.2.0-11.sme +- Import only keys not already imported [SME: 5507] + +* Tue Sep 15 2009 Shad L. Lords 2.2.0-10.sme +- set unsaved changes in yum event [SME: 5475] +- move yum warming to sme yum plugin [SME: 5474] +- ensure file exists before unlinking [SME: 5476] +- remove semicolons from yum plugin + +* Tue Sep 15 2009 Shad L. Lords 2.2.0-9.sme +- Add frequency of updates toggle [SME: 3764] +- remove stray file + +* Sat May 30 2009 Shad L. Lords 2.2.0-8.sme +- Add /etc/yum.smerepos.d to package [SME: 5305] + +* Mon May 18 2009 Shad L. Lords 2.2.0-7.sme +- Change SME mirrorlists to point to ibiblio [SME: 5242] + +* Fri Apr 10 2009 Jonathan Martens 2.2.0-6.sme +- Require mailx [SME: 5131] + +* Mon Nov 24 2008 Shad L. Lords 2.2.0-5.sme +- Add yum-protect-packages support to prevent removal of + needed pacakges [SME: 3133] + +* Tue Oct 28 2008 Shad L. Lords 2.2.0-4.sme +- Make yum update unbuffered for web interface [SME: 4726] + +* Mon Oct 13 2008 Shad L. Lords 2.2.0-3.sme +- Move repos to repodir to fix yum bug [SME: 3676] + +* Sun Oct 12 2008 Shad L. Lords 2.2.0-2.sme +- Fix name for smeextras [SME: 4585] + +* Tue Oct 7 2008 Shad L. Lords 2.2.0-1.sme +- Roll new stream to separate sme7/sme8 trees [SME: 4633] + +* Tue Oct 7 2008 Shad L. Lords 1.2.0-58 +- Fix mirrorlist for sme8 [SME: 4508] + +* Fri Sep 19 2008 Shad L. Lords 1.2.0-57 +- Add smeextras repo database and information [SME: 4585] + +* Sun Aug 10 2008 Shad L. Lords 1.2.0-56 +- Remove links to crontab in bootstrap-console-save [SME: 4494] + +* Sat Jul 5 2008 Jonathan Martens 1.2.0-55 +- Add common tags to e-smith-formmagick's general [SME: 4279] + +* Sun Apr 27 2008 Jonathan Martens 1.2.0-54 +- Add common tags to e-smith-formmagick's general [SME: 4290] + +* Mon Mar 31 2008 Shad L. Lords 1.2.0-53 +- Include installonlyn plugin to manage kernels [SME: 2101] + +* Mon Mar 31 2008 Stephen Noble 1.2.0-52 +- Delete dungog repository, reworked [SME: 4097] + +* Fri Mar 14 2008 Shad L. Lords 1.2.0-51 +- Clean up "rpm -qa" warnings in yum wrapper [SME: 4052] + +* Wed Feb 13 2008 Stephen Noble 1.2.0-50 +- Remove tags now in general [SME: 3914] + +* Sun Feb 10 2008 Stephen Noble 1.2.0-49 +- Remove duplicate entries [SME: 3889] + +* Fri Jan 11 2008 Shad L. Lords 1.2.0-48 +- Put check4updates obsoletes & provides in the right place [SME: 3250] + +* Fri Jan 11 2008 Shad L. Lords 1.2.0-47 +- Add check4update script, make cronjob run same as scheduled dirs [SME: 3250] + +* Wed Jan 09 2008 Stephen Noble 1.2.0-46 +- Add server is up to date message on panel [SME: 2512] + +* Mon Jan 7 2008 Stephen Noble 1.2.0-45 +- remove BaseURL property for repos with mirrorlists [SME: 3275] + +* Mon Jan 7 2008 Stephen Noble 1.2.0-44 +- safesymlink yum into local [SME: 3238] + +* Mon Jan 7 2008 Stephen Noble 1.2.0-43 +- add check4updates cronjob, obsolete check4updates rpm [SME: 3250] + +* Mon Jan 7 2008 Stephen Noble 1.2.0-42 +- yum-import-keys action to yum-update event [SME: 3196] + +* Mon Dec 24 2007 Stephen Noble 1.2.0-41 +- add smecontribs repo [SME: 3551] + +* Tue Dec 11 2007 Gavin Weight 1.2.0-40 +- Remove bad mirror and add two new mirrors. [SME: 3636] + +* Fri Nov 30 2007 Gavin Weight 1.2.0-39 +- Change EnableGroups value to no/yes instead of 0/1. [SME: 3607] + +* Fri Nov 30 2007 Gavin Weight 1.2.0-38 +- Fix use of uninitialized value in migrate 10GPG_and_Groups. [SME: 2491] + +* Sat Jul 14 2007 Shad L. Lords 1.2.0-37 +- Add GPG keys for CentOS 5 [SME: 3160] + +* Sun Jun 10 2007 Stephen Noble 1.2.0-36 +- Refine matching of rpms or repos [SME: 2416] + +* Sun Jun 10 2007 Stephen Noble 1.2.0-35 +- Add db values to restrict available rpms or repos [SME: 2416] + +* Sun Jun 10 2007 Stephen Noble 1.2.0-34 +- remove restrictAvailable patch [SME: 2416] + +* Fri Jun 08 2007 Stephen Noble 1.2.0-33 +- Add db value to restrict available rpms [SME: 2416] + +* Fri May 25 2007 Shad L. Lords 1.2.0-32 +- Add rpm key for epel packages + +* Wed May 9 2007 Shad L. Lords 1.2.0-31 +- Updates to support SME Server 8 + +* Sun Apr 29 2007 Shad L. Lords +- Clean up spec so package can be built by koji/plague + +* Mon Apr 09 2007 Stephen Noble 1.2.0-30 +- remove two of them, leaving pacific.net.au [SME: 2763] + +* Mon Apr 09 2007 Stephen Noble 1.2.0-29 +- add three more repositories to yum.repos.d/mirrors-sme* files [SME: 2763] + +* Fri Feb 16 2007 Shad L. Lords 1.2.0-28 +- Change runsvctrl to sv to support runit v1.7.x [SME: 2486] + +* Wed Jan 17 2007 Shad L. Lords 1.2.0-27 +- Only import keys we don't already have [SME: 1174] + +* Wed Jan 03 2007 Shad L. Lords 1.2.0-26 +- Only allow upstream proxies to cache packages not metadata. + +* Thu Dec 07 2006 Shad L. Lords +- Update to new release naming. No functional changes. +- Make Packager generic + +* Fri Dec 1 2006 Gordon Rowell 1.2.0-25 +- Remove defaults for CentOS testing repository [SME: 2119] + +* Thu Nov 30 2006 Greg Swallow 1.2.0-24 +- Change Includepkgs to IncludePkgs [SME: 2049] + +* Thu Nov 30 2006 Greg Swallow 1.2.0-23 +- Add includepkgs option to repository configuration [SME: 2049] + +* Thu Nov 30 2006 Gordon Rowell 1.2.0-22 +- Correct typos in last patch [SME: 2050] + +* Thu Nov 30 2006 Gordon Rowell 1.2.0-21 +- Create local SME Server mirrorlists during build of package +- Refer to these mirrorlists from yum.conf +- Comment out baseurl if a MirrorList is defined [SME: 2050] + +* Wed Nov 29 2006 Gordon Rowell 1.2.0-20 +- Revert to 10s panel refresh [SME: 2097] + +* Thu Nov 23 2006 Gordon Rowell 1.2.0-19 + Fri Nov 23 2006 --> Fri Nov 17 2006 or Thu Nov 23 2006 or Fri Nov 24 2006 or .... +- Make CentOS base and updates enabled/Visible by default [SME: 1849] +- Migrate CentOS base and updates to Visible, but leave status [SME: 1849] + +* Thu Nov 23 2006 Gordon Rowell 1.2.0-18 + Fri Nov 23 2006 --> Fri Nov 17 2006 or Thu Nov 23 2006 or Fri Nov 24 2006 or .... +- Adjust wording on post-upgrade page [SME: 2076] + +* Tue Nov 21 2006 Gordon Rowell 1.2.0-17 +- Clean up post-upgrade page LogFile display [SME: 2077] + +* Tue Nov 21 2006 Gordon Rowell 1.2.0-16 +- Fix post-upgrade page handling [SME: 2077] +- TODO: Add persistent RebootRequired handling so that the reconfigure + page is displayed from other sessions +- TODO: Re-add display of LogFile prior to reconfigure + +* Thu Nov 16 2006 Gordon Rowell 1.2.0-15 + Fri Nov 16 2006 --> Fri Nov 10 2006 or Thu Nov 16 2006 or Fri Nov 17 2006 or .... +- Add dependency on yum-plugin-fastestmirror [SME: 1163] +- Alpha sort dependencies + +* Thu Nov 16 2006 Gordon Rowell 1.2.0-14 + Fri Nov 16 2006 --> Fri Nov 10 2006 or Thu Nov 16 2006 or Fri Nov 17 2006 or .... +- Add MirrorList options to each of the SME repos [SME: 1163] + +* Thu Nov 16 2006 Gordon Rowell 1.2.0-13 + Fri Nov 16 2006 --> Fri Nov 10 2006 or Thu Nov 16 2006 or Fri Nov 17 2006 or .... +- Put back missed patch for post-upgrade [SME: 2071] + +* Thu Nov 16 2006 Gordon Rowell 1.2.0-12 + Fri Nov 16 2006 --> Fri Nov 10 2006 or Thu Nov 16 2006 or Fri Nov 17 2006 or .... +- Re-add post-upgrade handling [SME: 2071] +- Display yum output +- Lower refresh to 3 seconds from 10 + +* Thu Nov 16 2006 Gordon Rowell 1.2.0-11 +- Add Federico Simoncelli's smeserver plugin for yum [SME: 59] +- TODO: Add post-upgrade page handling + +* Tue Nov 14 2006 Gordon Rowell 1.2.0-10 +- Add distroverpkg to set release version for CentOS packages [SME: 1163] + +* Thu Nov 9 2006 Gordon Rowell 1.2.0-09 +- Allow MirrorList property to be optional [SME: 1163] + +* Thu Nov 9 2006 Gordon Rowell 1.2.0-08 +- Add mirrorlist option to CentOS repos via MirrorList db property [SME: 1163] +- TODO: Create mirrorlist for SME repos. + +* Thu Nov 9 2006 Gordon Rowell 1.2.0-07 +- Explicitly unset reposdir so we ignore the CentOS repo files [SME: 1905] + +* Fri Sep 1 2006 Charlie Brady 1.2.0-06 +- Fix quoting in yum wrapper script. [SME: 1894] + +* Mon May 1 2006 Charlie Brady 1.2.0-05 +- Remove stray yum.pm.orig file. [SME: 1350] + +* Tue Apr 18 2006 Gordon Rowell 1.2.0-04 +- Also display yum output if the yum command fails, e.g. due to an + existing yum lock. [SME: 1110] + +* Tue Apr 18 2006 Gordon Rowell 1.2.0-03 +- Update the yum dbs in yum-modify in case the repos have changed [SME: 1261] + +* Tue Apr 18 2006 Gordon Rowell 1.2.0-02 +- Capture and display yum output [SME: 1269] + +* Wed Mar 15 2006 Charlie Brady 1.2.0-01 +- Roll stable stream version. [SME: 1016] + +* Mon Mar 6 2006 Gordon Rowell 1.1.2-26 +- And migrate old SME repo URLs to new paths [SME: 951] + +* Mon Mar 6 2006 Gordon Rowell 1.1.2-25 +- Change SME Server repo URLs to match repo names so we avoid confusion + with CentOS repos and can remove the symlinks [SME: 951] + +* Mon Mar 6 2006 Gordon Rowell 1.1.2-24 +- Don't force the BaseURL properties - just set defaults [SME: 951] + +* Wed Feb 22 2006 Gordon Rowell 1.1.2-23 +- Default smeupdates-testing repository to Visible, disabled [SME: 846] + +* Thu Feb 16 2006 Charlie Brady 1.1.2-22 +- Do not suggest post-upgrade/reboot if no rpms were installed or + removed. [SME: 676] + +* Thu Feb 16 2006 Gordon Rowell 1.1.2-21 +- Run post-upgrade and reboot in the background so that the front page + can be displayed without the "Your system needs to be rebooted" + warning - it's already getting one by then. [SME: 611] +- Adjust reconfiguration wording [SME: 611] + +* Thu Feb 16 2006 Gordon Rowell 1.1.2-20 +- And add L10N for newly exposed unlocalised message [SME: 611] + +* Thu Feb 16 2006 Gordon Rowell 1.1.2-19 +- Catch error return status from yum commands [SME: 611] + +* Tue Feb 7 2006 Gordon Rowell 1.1.2-18 +- Adjust wording in yum wrapper [SME: 676] + +* Tue Jan 24 2006 Gordon Rowell 1.1.2-17 +- And change "A reboot will be required" to + "A reboot will be initiated" in the post-upgrade panel [SME: 199] + +* Tue Jan 24 2006 Gordon Rowell 1.1.2-16 +- Bring back post-upgrade page after performing updates [SME: 199] +- Force a reboot after the post-upgrade command [SME: 199] + +* Tue Jan 24 2006 Gordon Rowell 1.1.2-15 +- Add wrapper /sbin/e-smith/yum to remind people to + post-upgrade/reboot [SME: 199] + +* Tue Jan 24 2006 Gordon Rowell 1.1.2-14 +- Force yum{AutoInstallUpdates} to disabled and remove toggle from + panel for now [SME: 525] + +* Mon Nov 21 2005 Gordon Rowell 1.1.2-13 +- And make them Visible=no by default [SF: 1362528] + +* Mon Nov 21 2005 Gordon Rowell 1.1.2-12 +- Disable centos base/updates/contrib repos by default [SF: 1362528] + +* Mon Nov 21 2005 Gordon Rowell 1.1.2-11 +- Show repositories which are either Visible or enabled [SF: 1362529] + +* Mon Nov 21 2005 Gordon Rowell 1.1.2-10 +- Disable automatic updates by default [SF: 1362526] + +* Mon Nov 14 2005 Gordon Rowell 1.1.2-09 +- Add Conflicts: centos-yumconf [SF: 1356006] + +* Tue Nov 8 2005 Gordon Rowell 1.1.2-08 +- Don't force a post-upgrade/reboot after changes. We don't need to + do it in most cases [SF: 1304387, 1349946] + +* Fri Oct 28 2005 Gordon Rowell 1.1.2-07 +- Allow optional GPGKey property [SF: 1332624] + +* Fri Oct 28 2005 Gordon Rowell 1.1.2-06 +- Change CentOS BaseURL values back to /centos/4 [SF: 1334861] +- Generate all repositories in /etc/yum.conf with enabled=0/1 [SF: 1332624] +- Only display "Visible" repositories in the server-manager panel [SF: 1332624] + +* Fri Oct 14 2005 Gordon Rowell 1.1.2-05 +- Move all L10Ns to smeserver-locale [SF: 1309520] + +* Mon Oct 10 2005 Gordon Rowell 1.1.2-04 +- Fix up auto-selection of all updates [SF: 1321887] + +* Mon Oct 10 2005 Gordon Rowell 1.1.2-03 +- Remove navigation-conf-hidden [SF: 1315730] + +* Fri Oct 7 2005 Gordon Rowell 1.1.2-02 +- Require GPG signatures on all yum packages + +* Fri Oct 7 2005 Gordon Rowell 1.1.2-01 +- Roll new tarball, patches to 1.1.1-07 + +* Fri Sep 30 2005 Gordon Rowell 1.1.1-07 +- And another [SF: 1301044] + +* Fri Sep 30 2005 Gordon Rowell 1.1.1-06 +- Correction to French L10N - Thanks Didier Rambeau [SF: 1301044] + +* Fri Sep 30 2005 Gordon Rowell 1.1.1-05 +- Added Italian L10N - Thanks Filippo Carletti [SF: 1309266] + +* Fri Sep 30 2005 Gordon Rowell 1.1.1-04 +- Added lots of RPM GPG keys [SF: 1309195] + +* Thu Sep 29 2005 Gordon Rowell 1.1.1-03 +- It's obsoletes=1 [SF: 1306265] + +* Thu Sep 29 2005 Gordon Rowell 1.1.1-02 +- Added obsoletes option to yum.conf [SF: 1306265] + +* Mon Sep 26 2005 Gordon Rowell 1.1.1-01 +- Rolled patches up to 1.1.0-26 +- Added German L10N + +* Sun Sep 25 2005 Gordon Rowell 1.1.0-26 +- Typo fix - add space between 'yum' and options + +* Sun Sep 25 2005 Gordon Rowell 1.1.0-25 +- Increase debug and error level so we at least capture yum output + in the messages log [SF: 1218082] + +* Sun Sep 25 2005 Gordon Rowell 1.1.0-24 +- Need to return a hash, with key equal to package.arch [SF: 1298468] + +* Sun Sep 25 2005 Gordon Rowell 1.1.0-23 +- Display version and repository in picklists [SF: 1298468] + +* Sun Sep 25 2005 Gordon Rowell 1.1.0-22 +- Change 1/0 values for GPGCheck and EnableGroups to yes/no + It's more readable in the DB and also works around a bug [SF: 1303885] + +* Sun Sep 25 2005 Gordon Rowell 1.1.0-21 +- Wrap HTML escapes in Fr lexicon in CDATA blocks [SF: 1302289] + +* Fri Sep 23 2005 Gordon Rowell 1.1.0-20 +- Remove XXX - FIXMEs from French lexicon [SF: 1301044] + +* Fri Sep 23 2005 Gordon Rowell 1.1.0-19 +- French L10N fix [SF: 1266152] + +* Mon Sep 12 2005 chris burnat 1.1.0-18 +- Fix equal greater than (=>) to (>=) in two instances in spec file. + +* Mon Sep 5 2005 Gordon Rowell 1.1.0-17 +- Change centos BaseURL entries from /centos/4/ to /centos/4.1/ as + it appears that some mirrors aren't following the symlinks correctly +- Move BaseURL settings into force fragments as they will need to + change as we update the base [SF: 1272438] + +* Wed Aug 24 2005 Gordon Rowell 1.1.0-16 +- Remove XXX entries from panel text [SF: 1267315] + +* Wed Aug 24 2005 Gordon Rowell 1.1.0-15 +- Fix status check in yum cron job - Thanks Filippo Carletti [SF: 1266967] + +* Wed Aug 17 2005 Charlie Brady 1.1.0-14 +- Change dependency to rpmdb-CentOS + +* Mon Aug 15 2005 Gordon Rowell +- [1.1.0-13] +- Add dependency on rpmdb package + +* Mon Jul 18 2005 Gordon Rowell +- [1.1.0-12] +- And remove now unused action scripts + +* Mon Jul 18 2005 Gordon Rowell +- [1.1.0-11] +- Removed the old pre-FM panels, which we haven't used or displayed for + a while + +* Mon Jul 18 2005 Gordon Rowell +- [1.1.0-10] +- Relocate dbs to /home/e-smith/db. Note yum_update_dbs avoids the + ConfigDB interface for speed and to reduce log noise. Maybe it + shouldn't, which would give a record of nightly changes. + +* Thu Jul 14 2005 Gordon Rowell +- [1.1.0-09] +- French localisation - Merci Didier Rambeau [SF: 1234929] + +* Thu Jul 14 2005 Gordon Rowell +- [1.1.0-08] +- Fix cron.daily ordering so yum_update_dbs gets a chance to fix + the yum flag file before the standard yum cron job runs [SF: 1237639] +- Clean up various old cron jobs which are no longer used +- Change cron job template into a shell script + +* Thu Jul 14 2005 Gordon Rowell +- [1.1.0-07] +- Remove pid file check - yum leaves stale pid files when an action + fails, but cleans up next time. Since we're calling yum, it can + do the work. Death to pid files. + +* Thu Jul 14 2005 Gordon Rowell +- [1.1.0-06] +- Adjusted repository names sme{addons,core,dev,test,updates} -> + addons,os,dev,test,updates +- Added updates-testing +- Changed BaseURL to use mirror.contribs.org/pub/smeserver for consistency + across mirrors +- Drop /7.0alpha/ to /7/ + +* Sat Jul 2 2005 Gordon Rowell +- [1.1.0-05] +- Fix creation of event links + +* Sat Jul 2 2005 Gordon Rowell +- [1.1.0-04] +- Remove all other instances of services2adjust once for yum, and use + the action script instead to avoid an endless run of yum_update_dbs + +* Sat Jul 2 2005 Gordon Rowell +- [1.1.0-03] +- Add exec to yum service run script +- Add action script to update DBs as required, including 'local' event +- TODO: Work out why services2adjust 'once' loops forever on this service + +* Sat Jul 2 2005 Gordon Rowell +- [1.1.0-02] +- Add Provides: yumconf [SF: 1230970] +- Cater for new yum output format, and only pick package lines from + output [SF: 1230971] + +* Thu Jun 30 2005 Gordon Rowell +- [1.1.0-01gr22] +- Change from CentOS 3 to CentOS 4 +- Remove force fragment for stunnel since we now ship the CentOS RPM + +* Fri Jun 10 2005 Gordon Rowell +- [1.1.0-01gr21] +- Import keys in bootstrap-console-save rather than post-{install,upgrade} + +* Fri Jun 10 2005 Gordon Rowell +- [1.1.0-01gr20] +- Populate /usr/share/rpm-gpg-keys with various RPM-GPG-KEY files + we might want to use +- Add script to import keys +- TODO: Clean out duplicate key copies + +* Thu Jun 9 2005 Gordon Rowell +- [1.1.0-01gr19] +- Comment out 'once' invocation in local event - it seems to loop +- Change cron job to do the 'runsvctrl once' invocation + +* Thu Jun 9 2005 Gordon Rowell +- [1.1.0-01gr18] +- Fix up exit status warning. + +* Thu Jun 9 2005 Gordon Rowell +- [1.1.0-01gr17] +- Don't bother checking the exit status of yum, since yum may + return non-zero for failure or for "no matching groups/packages". + TODO: We should probably work out how to tell between these. + +* Thu Jun 9 2005 Gordon Rowell +- [1.1.0-01gr16] +- Make it a supervised service, but one which we only run + "once" when we need it [SF: 1216096] + +* Thu Jun 9 2005 Gordon Rowell +- [1.1.0-01gr15] +- Don't try to grab the yum.pid file with Proc::PID_File as then + we can't actually run yum commands [SF: 1216097] + +* Thu Jun 9 2005 Gordon Rowell +- [1.1.0-01gr14] +- Add yum_update_dbs into a supervised service so we don't have + to wait for it at boot time [SF: 1216096] + +* Thu Jun 9 2005 Gordon Rowell +- [1.1.0-01gr13] +- Unlink tmp files if yum command fails and we exit early + +* Thu Jun 9 2005 Gordon Rowell +- [1.1.0-01gr12] +- Check for another running yum process [SF: 1216097] +- Don't update the databases if the yum command fails [SF: 1216097] + +* Fri Jun 3 2005 Gordon Rowell +- [1.1.0-01gr11] +- Use the dump RPM from CentOS [SF: 1214055] + +* Fri Jun 3 2005 Gordon Rowell +- [1.1.0-01gr10] +- Invert exit status of system() + +* Fri Jun 3 2005 Gordon Rowell +- [1.1.0-01gr09] +- Move management of /var/lock/subsys/yum into yum_updates_dbs action script +- Call yum_update_dbs in local event - after the system is up and running +- Remove commented out panel references + +* Fri Jun 3 2005 Gordon Rowell +- [1.1.0-01gr08] +- Default gpgcheck off, except for base/updates/smecore/smeupdates +- Default yum{AutoInstallUpdates} == enabled +- Add code to manage /var/lock/subsys/yum, which controls daily updates + in /etc/cron.daily/yum + +* Fri Jun 3 2005 Gordon Rowell +- [1.1.0-01gr07] +- Deal with the case when the list of updates is empty +- Put a header on each of the yum_* dbs + +* Fri Jun 3 2005 Gordon Rowell +- [1.1.0-01gr06] +- Rename centos repositories to match the centos-yumcache names +- Remove pkgpolicy=last and repository ordering. +- Add Exclude= properties to CentOS base and updates for packages which + are modified for the SMEServer releases +- INSTALL: Need to manually remove old version of yum_repositories DB + +* Tue May 31 2005 Gordon Rowell + Fri May 31 2005 --> Fri May 27 2005 or Tue May 31 2005 or Fri Jun 03 2005 or .... +- [1.1.0-01gr05] +- Add enable/disable repository support to configuration page + +* Tue May 31 2005 Gordon Rowell + Fri May 31 2005 --> Fri May 27 2005 or Tue May 31 2005 or Fri Jun 03 2005 or .... +- [1.1.0-01gr04] +- Hide empty group/package select boxes + +* Tue May 31 2005 Gordon Rowell +- [1.1.0-01gr03] +- Change BaseURLs for smeserver repositories to ..../7.0alpha/ until we + add FollowSymlinks to httpd.conf + +* Fri May 27 2005 Gordon Rowell +- [1.1.0-01gr02] +- Add post-upgrade configuration page +- Hide Darrell's original panels +- Remove historical event directories +- TODO: Page for adding/deleting repositories +- TODO: yum-arch local repositories + +* Fri May 27 2005 Gordon Rowell +- [1.1.0-01gr01] +- Roll to 1.1.0 + +* Fri May 27 2005 Gordon Rowell +- [1.0.0-04gr30] +- Call yum_update_dbs during the actions so the db state is correct + +* Fri May 27 2005 Gordon Rowell +- [1.0.0-04gr29] +- Create empty yum_{available,installed,updates} dbs in SPEC file +- Display the available repositories, and provide a select box + to allow them to be enabled/disabled. +- Add dependency on recent CGI::FormMagick so that the select options work + +* Thu May 26 2005 Gordon Rowell +- [1.0.0-04gr28] +- Introduce yum_repositories database and convert yum.conf template +- Introduce yum_repositories database and convert yum.conf template +- Set defaults, which can be overridden on a per-repository basis: + yum{EnableGroups}==0 + yum{GPGCheck}==1 + +* Sat May 21 2005 Gordon Rowell +- [1.0.0-04gr27] +- Add contrib group from CentOS and contribs.org repositories + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr26] +- Change configuration event to yum-modify since we need + yum-update for other purposes +- TODO: Need to update yum_* dbs after we perform an action + so the panel status matches reality. For speed, we should + probably delete the entries directly. +- TODO: Some yum comands take a long time, probably too long for + the manager. +- TODO: Capture the yum output + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr25] +- Fix CGI parameter passing + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr24] +- Add actions for install/remove/update +- TODO: groupremove needs to pull apart the group and remove + packages individually + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr23] +- Major cleanup of yum.pm, refactoring lots of code +- Note: Depends on CGI::FormMagick patch from [SF:1205448] + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr22] +- Changed yum{ShowPackages} to yum{PackageFunctions} +- Added enable/disable toggle to panel and fleshed out + change_settings() so that the settings are saved +- TODO: Actually signal-event yum-update + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr21] +- Change button labels for consistency +- TODO: Deal with degenerate case where no groups exist + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr20] +- Show groups in the panel +- Hide the ability to install/remove individual packages by default +- To enable, set yum{ShowPackages}=yes +- Add a tst group, courtesy of Greg Swallow + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr19] +- List available/installed/updates for yum groups as well +- Create yum_installed db and use that instead of /var/log/rpmpkgs + for orthogonality. We also update all three DBs with one action. + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr18] +- enablegroups for smeserver, but disable them for centos + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr17] +- For consistency, sort extras before os as well + +* Fri May 20 2005 Gordon Rowell +- [1.0.0-04gr16] +- Set pkgpolicy=last, put centos groups before smeserver groups, and + ensure that the group labels are sortable + +* Thu May 19 2005 Gordon Rowell +- [1.0.0-04gr15] +- Comment out the smeserver parts of yum.conf for now + +* Thu May 19 2005 Gordon Rowell +- [1.0.0-04gr14] +- Fill in removable packages from /var/log/rpmpkgs, updated nightly + by a cronjob in the rpm package. + TODO: We should probably run the cron job just before displaying + this panel + +* Thu May 19 2005 Gordon Rowell +- [1.0.0-04gr13] +- Rough in install/remove pages + +* Thu May 19 2005 Gordon Rowell +- [1.0.0-04gr12] +- Add configuration page to panel + +* Thu May 19 2005 Gordon Rowell +- [1.0.0-04gr11] +- Fix up conf-yum and /etc/yum.conf links + +* Thu May 19 2005 Gordon Rowell +- [1.0.0-04gr10] +- Clean up daily cronjobs, and check whether yum is enabled in each of them +- Remove /var/service/yum - we don't need to run all the time +- Make use of new templates.metadata to remove conf-yum script entirely + +* Thu May 19 2005 Gordon Rowell +- [1.0.0-04gr09] +- Rewrite yum.conf templates to depend on: + sysconfig{ReleaseVersion} + sysconfig{BaseDistro} + sysconfig{BaseDistroVersion} + +* Fri May 13 2005 Gordon Rowell +- [1.0.0-04gr08] +- Initial FormMagick panel using new databases + +* Fri May 13 2005 Gordon Rowell +- [1.0.0-04gr07] +- And put yum_update_dbs in the right directory... + +* Fri May 13 2005 Gordon Rowell +- [1.0.0-04gr06] +- Add /sbin/e-smith/yum_update_dbs + +* Fri May 13 2005 Gordon Rowell +- [1.0.0-04gr05] +- Change db names and fix yum list updates command + +* Fri May 13 2005 Gordon Rowell +- [1.0.0-04gr04] +- Generate esmith::DB files from the yum output, as it's so much + easier to deal with them later in panels, etc. + +* Fri May 13 2005 Gordon Rowell +- [1.0.0-04gr03] +- Change output path of yum list commands + +* Fri May 13 2005 Gordon Rowell +- [1.0.0-04gr02] +- Fix up init.d/supervise/yum symlink +- Create /service symlink +- Ensure correct permissions on supervise bits and pieces + +* Fri May 13 2005 Gordon Rowell +- [1.0.0-04gr01] +- Change default type for yum to service +- Add yum{status}==enabled +- Create /var/log/yum in build +- Add yum service directory and startup + +* Mon Mar 01 2004 Darrell May +- [1.0.0-03dmay] +- bugfix to yum-config missing db set {Arch,Check}Repository +* Sun Feb 29 2004 Darrell May + +- [1.0.0-02dmay] +- major updates to yum panels, templates +* Sun Feb 08 2004 Darrell May + +- [1.0.0-01_beta] +- initial beta release +- added yum-remove panel +- updated all panels, events, actions +* Sat Feb 07 2004 Darrell May + +- [0.0.1a-09] +- added yum-post panel +- updated yum-{update,available} panels +- updated yum-install-{available,update} events & actions + +* Tue Feb 03 2004 Darrell May +- [0.0.1a-08] +- added pre-alpha yum-{update,available} panels +- renamed all panels yum-panelname + +* Mon Feb 02 2004 Darrell May +- [0.0.1a-07] +- updated yum-check-repository template and action to accept --nomail commandline option +- updated yumcheck panel to issue --nomail commandline option + +* Sun Feb 01 2004 Darrell May +- [0.0.1a-06] +- added yumcheck server-manager panel +- updated cron.daily/yum-check-repository template +- change log file name to yum-check-repository.log + +* Sat Jan 31 2004 Darrell May +- [0.0.1a-05] +- added yumconfig server-manager panel +- added yum-post-{install,remove} events +- added navigation-conf-hidden action + +* Mon Jan 26 2004 Darrell May +- [0.0.1a-04] +- moved cron.hourly actions to cron.daily +- added yum-update event +- added yum-arch-repository yum-check-repository actions +- added yum-install-updates yum-install-available actions +- removed %post entries, created db defaults + +* Sun Jan 25 2004 Darrell May +- [0.0.1a-03] +- yum-check-repository, changed to run 'yum list' +- yum-arch-repository, added support for multiple archive repositories + +* Sat Jan 24 2004 Darrell May +- [0.0.1a-02] +- fix db typo UpdateURL to UpdatesUrl +- added cron.hourly/yum-check-repository & yum-arch-repository +- updated actions/conf-yum + +* Thu Jan 22 2004 Darrell May +- [0.0.1a-01] +- Original version