--- rpms/smeserver-phpvirtualbox/contribs10/smeserver-phpvirtualbox-5.2.1-multiple_changes.patch 2023/03/07 04:38:48 1.1 +++ rpms/smeserver-phpvirtualbox/contribs10/smeserver-phpvirtualbox-5.2.1-multiple_changes.patch 2023/03/10 01:23:20 1.5 @@ -1,691 +1,426 @@ -diff -urN smeserver-phpvirtualbox-5.2.1.old/COPYING.orig smeserver-phpvirtualbox-5.2.1/COPYING.orig ---- smeserver-phpvirtualbox-5.2.1.old/COPYING.orig 1970-01-01 10:00:00.000000000 +1000 -+++ smeserver-phpvirtualbox-5.2.1/COPYING.orig 2023-03-07 15:11:25.604647501 +1100 -@@ -0,0 +1,340 @@ -+ GNU GENERAL PUBLIC LICENSE -+ Version 2, June 1991 -+ -+ Copyright (C) 1989, 1991 Free Software Foundation, Inc. -+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ Everyone is permitted to copy and distribute verbatim copies -+ of this license document, but changing it is not allowed. -+ -+ Preamble -+ -+ 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 Library General Public License instead.) You can apply it to -+your programs, too. -+ -+ 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. -+ -+ 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. -+ -+ 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. -+ -+ 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. -+ -+ 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. -+ -+ 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. -+ -+ The precise terms and conditions for copying, distribution and -+modification follow. -+ -+ GNU GENERAL PUBLIC LICENSE -+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -+ -+ 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". -+ -+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. -+ -+ 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. -+ -+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. -+ -+ 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: -+ -+ a) You must cause the modified files to carry prominent notices -+ stating that you changed the files and the date of any change. -+ -+ 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. -+ -+ 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.) -+ -+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. -+ -+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. -+ -+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. -+ -+ 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: -+ -+ 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, -+ -+ 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, -+ -+ 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.) -+ -+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. -+ -+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. -+ -+ 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. -+ -+ 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. -+ -+ 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. -+ -+ 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) 19yy -+ -+ 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 -+ -+ -+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) 19yy 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 Library General -+Public License instead of this License. -diff -urN smeserver-phpvirtualbox-5.2.1.old/COPYING.rej smeserver-phpvirtualbox-5.2.1/COPYING.rej ---- smeserver-phpvirtualbox-5.2.1.old/COPYING.rej 1970-01-01 10:00:00.000000000 +1000 -+++ smeserver-phpvirtualbox-5.2.1/COPYING.rej 2023-03-07 15:11:25.604647501 +1100 -@@ -0,0 +1,343 @@ -+--- COPYING 1970-01-01 10:00:00.000000000 +1000 -++++ COPYING 2023-02-25 16:29:54.000000000 +1100 -+@@ -0,0 +1,340 @@ -++ GNU GENERAL PUBLIC LICENSE -++ Version 2, June 1991 -++ -++ Copyright (C) 1989, 1991 Free Software Foundation, Inc. -++ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -++ Everyone is permitted to copy and distribute verbatim copies -++ of this license document, but changing it is not allowed. -++ -++ Preamble -++ -++ 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 Library General Public License instead.) You can apply it to -++your programs, too. -++ -++ 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. -++ -++ 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. -++ -++ 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. -++ -++ 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. -++ -++ 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. -++ -++ 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. -++ -++ The precise terms and conditions for copying, distribution and -++modification follow. -++ -++ GNU GENERAL PUBLIC LICENSE -++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -++ -++ 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". -++ -++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. -++ -++ 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. -++ -++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. -++ -++ 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: -++ -++ a) You must cause the modified files to carry prominent notices -++ stating that you changed the files and the date of any change. -++ -++ 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. -++ -++ 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.) -++ -++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. -++ -++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. -++ -++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. -++ -++ 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: -++ -++ 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, -++ -++ 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, -++ -++ 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.) -++ -++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. -++ -++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. -++ -++ 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. -++ -++ 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. -++ -++ 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. -++ -++ 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) 19yy -++ -++ 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 -++ -++ -++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) 19yy 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 Library General -++Public License instead of this License. \ No newline at end of file +diff -urN smeserver-phpvirtualbox-5.2.1.old/createlinks smeserver-phpvirtualbox-5.2.1/createlinks +--- smeserver-phpvirtualbox-5.2.1.old/createlinks 2022-10-18 09:49:44.000000000 +1100 ++++ smeserver-phpvirtualbox-5.2.1/createlinks 2023-03-01 16:58:09.000000000 +1100 +@@ -9,17 +9,22 @@ + #see the /etc/systemd/system-preset/49-koozali.preset should be present for systemd integration on all you yum update event + + foreach my $file (qw( +- /etc/php-fpm.d/phpvirtualbox.conf +- /opt/phpvirtualbox/config.php ++ /etc/httpd/conf/httpd.conf ++ /etc/opt/remi/php74/php-fpm.d/www.conf ++ /etc/samba/smb.conf ++ /opt/phpvirtualbox/config.php + )) + { + templates2events( $file, $event ); + }; ++#we need to expand /opt/phpvirtualbox/config.php when changing the vboxweb runtime user passwd ++templates2events( '/opt/phpvirtualbox/config.php', 'smeserver-virtualbox-update'); ++ + #action needed in case we have a systemd unit + #event_link('systemd-default', $event, '10'); + #event_link('systemd-reload', $event, '50'); + #services we need to restart +-#event_services($event, 'vboxdrv' => 'restart', 'vboxweb-service' => 'restart'); ++event_services($event, 'httpd-e-smith' => 'restart', 'php74-php-fpm' => 'restart', 'smbd' => 'restart'); + + #backup_includes("smeserver-virtualbox", qw( + #/home/e-smith/files/users/vbox +diff -urN smeserver-phpvirtualbox-5.2.1.old/README.md smeserver-phpvirtualbox-5.2.1/README.md +--- smeserver-phpvirtualbox-5.2.1.old/README.md 2015-08-08 21:37:59.000000000 +1000 ++++ smeserver-phpvirtualbox-5.2.1/README.md 1970-01-01 10:00:00.000000000 +1000 +@@ -1,2 +0,0 @@ +-smeserver-phpvirtualbox +-======================= +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/adminUser smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/adminUser +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/adminUser 1970-01-01 10:00:00.000000000 +1000 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/adminUser 2023-02-25 16:29:54.000000000 +1100 +@@ -0,0 +1 @@ ++admin +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/authtype smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/authtype +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/authtype 2022-10-17 09:14:35.000000000 +1100 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/authtype 2023-02-25 16:29:54.000000000 +1100 +@@ -1 +1 @@ +-disabled ++WebAuth +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/type smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/type +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/type 2015-08-08 21:37:59.000000000 +1000 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/type 2023-02-25 16:29:54.000000000 +1100 +@@ -1 +1 @@ +-service ++configuration +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/userGroups smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/userGroups +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/userGroups 1970-01-01 10:00:00.000000000 +1000 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/defaults/phpvirtualbox/userGroups 2023-02-28 17:37:52.000000000 +1100 +@@ -0,0 +1 @@ ++vboxusers +\ No newline at end of file +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/migrate/40phpvirtualbox-change-webauth-to-enabled smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/migrate/40phpvirtualbox-change-webauth-to-enabled +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/migrate/40phpvirtualbox-change-webauth-to-enabled 2015-08-08 21:37:59.000000000 +1000 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/migrate/40phpvirtualbox-change-webauth-to-enabled 1970-01-01 10:00:00.000000000 +1000 +@@ -1,8 +0,0 @@ +-{ +- my $PVBwebauth = $DB->get_prop('phpvirtualbox', 'webauth') or return; +- if ($PVBwebauth eq 'disabled') +- { +- $DB->set_prop('phpvirtualbox',"webauth", "enabled" ); +- } +-} +- +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/migrate/phpvirtualbox smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/migrate/phpvirtualbox +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/db/configuration/migrate/phpvirtualbox 1970-01-01 10:00:00.000000000 +1000 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/db/configuration/migrate/phpvirtualbox 2023-02-25 16:29:54.000000000 +1100 +@@ -0,0 +1,23 @@ ++{ ++ my $rec = $DB->get('phpvirtualbox') ++ || $DB->new_record('phpvirtualbox', {type => 'configuration'}); ++ ++ # webauth replaced by authType, which can have multiple values ++ if ($rec->prop('webauth')) { ++ $rec->set_prop('authType', 'WebAuth'); ++ $rec->del_prop('webauth'); ++ } ++ ++ # Group has been replaced with userGroups, which already allowed for multiple groups ++ if ($rec->prop('Group')) { ++ $rec->set_prop('userGroups', $rec->prop('Group')); ++ $rec->del_prop('Group'); ++ } ++ ++ # User replaced by Users, because it already allows for multiple users ++ if ($rec->prop('User')) { ++ $rec->set_prop('Users', $rec->prop('User')); ++ $rec->del_prop('User'); ++ } ++ ++} +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35ExternalUnixGroup smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35ExternalUnixGroup +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35ExternalUnixGroup 1970-01-01 10:00:00.000000000 +1000 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35ExternalUnixGroup 2023-03-07 12:10:50.000000000 +1100 +@@ -0,0 +1 @@ ++DefineExternalGroup ugroup environment /usr/bin/unixgroup +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35-group-auth smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35-group-auth +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35-group-auth 2015-08-08 21:37:59.000000000 +1000 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/35-group-auth 1970-01-01 10:00:00.000000000 +1000 +@@ -1,5 +0,0 @@ +-{ +- $OUT .= " AddExternalGroup ugroup /usr/bin/unixgroup\n"; +- $OUT .= " SetExternalGroupMethod ugroup environment\n"; +-} +- +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92phpvirtualhost smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92phpvirtualhost +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92phpvirtualhost 2022-10-18 08:09:34.000000000 +1100 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92phpvirtualhost 2023-03-07 12:09:59.000000000 +1100 +@@ -6,8 +6,8 @@ + $OUT = ""; + my $satisfy = 'all'; + my $name = $phpvirtualbox{'Name'} || 'phpvirtualbox'; +- my @phpvuser = split(",", ($phpvirtualbox{'User'} || "") ); +- my @phpvgroup = split(",", ($phpvirtualbox{'Group'} || "") ); ++ my @phpvboxusers = split(",", ($phpvirtualbox{'Users'} || "") ); ++ my @phpvboxgroups = split(",", ($phpvirtualbox{'userGroups'} || "") ); + my $alias = ($phpvirtualbox{'URL'} || 'phpvirtualbox'); + + $OUT .= "#------------------------------------------------------------\n"; +@@ -18,20 +18,23 @@ + $OUT .= "\n"; + if ($phpvirtualbox{'authtype'} ne 'disabled') { + $OUT .= "\n"; +- if ($phpvirtualbox{'authtype'} eq 'httpd_webauth') { ++ if ($phpvirtualbox{'authtype'} eq 'WebAuth') { + $OUT .= " AuthName \"$name\"\n"; +- $OUT .= " AuthType Basic\n"; +- $OUT .= " AuthBasicProvider \n"; +- $OUT .= " AuthExternal webauth\n"; +- $OUT .= " GroupExternal ugroup\n"; +- $OUT .= " Require user admin @phpvuser\n"; +- $OUT .= " Require group @phpvgroup\n"; ++ $OUT .= " AuthType Basic\n"; ++ $OUT .= " AuthBasicProvider external\n"; ++ $OUT .= " AuthExternal pwauth\n"; ++ $OUT .= " GroupExternal ugroup\n"; ++ $OUT .= " Require user admin @phpvboxusers\n"; ++ $OUT .= " Require external-group @phpvboxgroups\n"; + } elsif ($phpvirtualbox{'authtype'} eq 'httpd_LDAP') { +- $OUT .= " AuthName \"$name\"\n"; +- $OUT .= " AuthType Basic\n"; +- $OUT .= " AuthBasicProvider ldap\n"; +- $OUT .= " Require ldap-user admin @phpvuser\n"; +- $OUT .= " Require ldap-group cn=@phpvgroup, o=*\n"; ++ $OUT .= " AuthName \"$name\"\n"; ++ $OUT .= " AuthType Basic\n"; ++ $OUT .= " AuthBasicProvider ldap\n"; ++ $OUT .= " AuthLDAPURL = ldap://localhost/0=$smb{'Workgroup'},%uid\n"; ++ $OUT .= " Require ldap-user admin @phpvboxusers\n"; ++ foreach my $group (@phpvboxgroups) { ++ $OUT .= " Require ldap-group cn=@group, o=*\n"; ++ } + } + $OUT .= "\n"; + $OUT .= "\n"; +@@ -46,4 +49,3 @@ + $OUT .= " AddType application/x-httpd-php .php\n"; + $OUT .= "\n"; + } +- +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/php-fpm.d/phpvirtualbox.conf/50phpvirtualbox smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/php-fpm.d/phpvirtualbox.conf/50phpvirtualbox +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/php-fpm.d/phpvirtualbox.conf/50phpvirtualbox 2022-10-12 14:58:16.000000000 +1100 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/php-fpm.d/phpvirtualbox.conf/50phpvirtualbox 1970-01-01 10:00:00.000000000 +1000 +@@ -1,32 +0,0 @@ +-[php74-phpvirtualbox] +-user = www +-group = www +-listen.owner = root +-listen.group = www +-listen.mode = 0660 +-listen = /var/run/php-fpm/php74-phpvirtualbox.sock +-pm = dynamic +-pm.max_children = 15 +-pm.start_servers = 3 +-pm.min_spare_servers = 3 +-pm.max_spare_servers = 4 +-pm.max_requests = 1000 +-slowlog = /var/log/php/phpvirtualbox/slow.log +-php_admin_value[session.save_path] = /var/lib/php/php74/phpvirtualbox/session +-php_admin_value[opcache.file_cache] = /var/lib/php/php74/phpvirtualbox/opcache +-php_admin_value[upload_tmp_dir] = /var/lib/php/php74/phpvirtualbox/tmp +-php_admin_value[sys_temp_dir] = /var/lib/php/php74/phpvirtualbox/tmp +-php_admin_flag[display_errors] = on +-php_admin_flag[log_errors] = on +-php_admin_value[error_log] = /var/log/php/phpvirtualbox/error.log +-php_admin_value[memory_limit] = 128M +-php_admin_value[max_execution_time] = 30 +-php_admin_value[upload_max_filesize] = 10M +-php_admin_value[max_input_time] = 60 +-php_admin_flag[allow_url_fopen] = 1 +-php_admin_flag[file_upload] = on +-php_admin_flag[session.cookie_httponly] = on +-php_admin_flag[allow_url_include] = off +-php_admin_value[session.save_handler] = files +-php_admin_value[open_basedir] = /opt/phpvirtualbox/:/var/lib/php/php74/phpvirtualbox/:/var/log/php/phpvirtualbox/:/var/run/php-fpm/ +-php_admin_value[eaccelerator.enable] = 1 +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpvirtualbox smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpvirtualbox +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpvirtualbox 1970-01-01 10:00:00.000000000 +1000 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpvirtualbox 2023-02-25 16:29:54.000000000 +1100 +@@ -0,0 +1,65 @@ ++{ ++ ++ my $phpversion = ($phpvirtulabox{Version} || '74'); ++ if ($PHP_VERSION eq $phpversion) { ++ if (($phpvirtualbox{'status'} || 'disabled') eq 'enabled') { ++ my $max_upload_size = ($phpvirtualbox{MaxUploadSize} || '4096'); ++ $max_upload_size .= 'M' if ($max_upload_size =~ m/^\d+$/); ++ my $memory_limit = ($phpvirtualbox{MemoryLimit} || '500M'); ++ $memory_limit .= 'M' if ($memory_limit =~ m/^\d+$/); ++ my $open_basedir= $phpvirtualbox{PHPBaseDir} || ''; ++ my $id = 'phpvirtualbox'; ++ $open_basedir = "/opt/phpvirtualbox/:/var/log/php/$id/:/var/lib/php/$id/:$open_basedir"; ++ my $max_children = $phpvirtualbox{'PHPmaxChildren'} || 20; ++ my $min_spare_servers = $phpvirtualbox{'PHPminServers'} || 4; ++ my $start_servers = $phpvirtualbox{'PHPstartServers'} || 6; ++ my $max_spare_servers = $phpvirtualbox{'PHPmaxServers'} || 8; ++ my $max_requests = $phpvirtualbox{'PHPmaxRequests'} || 1000; ++ $min_spare_servers = ( $min_spare_servers > $max_spare_servers ) ? printf("%.0f",$max_spare_servers/2) : $min_spare_servers; ++ $start_servers = ( $start_servers > $max_spare_servers ) ? printf("%.0f", $max_spare_servers /2 + $min_spare_servers/2 ) : $start_servers; ++ ++ $OUT .=<<_EOF; ++ ++[php$PHP_VERSION-$id] ++user = www ++group = www ++listen.owner = root ++listen.group = www ++listen.mode = 0660 ++listen = /var/run/php-fpm/php$PHP_VERSION-$id.sock ++pm = dynamic ++pm.max_children = $max_children ++pm.start_servers = $start_servers ++pm.min_spare_servers = $min_spare_servers ++pm.max_spare_servers = $max_spare_servers ++pm.max_requests = $max_requests ++php_admin_value[session.save_path] = /var/lib/php/$id/session ++php_admin_value[session.gc_maxlifetime] = 86400 ++php_admin_value[opcache.file_cache] = /var/lib/php/$id/opcache ++php_admin_value[upload_tmp_dir] = /var/lib/php/$id/tmp ++php_admin_value[error_log] = /var/log/php/$id/error.log ++slowlog = /var/log/php/$id/slow.log ++php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f php@{ $DomainName } ++php_admin_flag[display_errors] = off ++php_admin_flag[log_errors] = on ++php_admin_value[memory_limit] = $memory_limit ++php_admin_value[max_execution_time] = 3600 ++php_admin_value[post_max_size] = $max_upload_size ++php_admin_value[upload_max_filesize] = $max_upload_size ++php_admin_value[disable_functions] = system, show_source, symlink, dl, passthru, phpinfo, escapeshellarg, escapeshellcmd ++php_admin_value[open_basedir] = $open_basedir ++php_admin_flag[allow_url_fopen] = on ++php_admin_flag[file_uploads] = on ++php_admin_flag[session.cookie_httponly] = on ++php_admin_flag[allow_url_include] = off ++php_admin_value[session.save_handler] = files ++php_admin_flag[output_buffering] = off ++php_admin_flag[eaccelerator.enable] = on ++ ++_EOF ++ ++ } else { ++ $OUT .= '; phpvirtualbox is disabled'; ++ } ++ } ++} +\ No newline at end of file +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/smb.conf/60phpvirtualbox smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/smb.conf/60phpvirtualbox +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/etc/smb.conf/60phpvirtualbox 1970-01-01 10:00:00.000000000 +1000 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/etc/smb.conf/60phpvirtualbox 2023-03-07 13:11:47.000000000 +1100 +@@ -0,0 +1,33 @@ ++{ ++ my $validusers = ''; ++ if ($phpvirtualbox{'adminUser'} || $phpvirtualbox{'userGroups'}) { ++ if ($phpvirtualbox{'adminUser'}) { ++ $validusers = "$phpvirtualbox{'adminUser'}"; ++ if ($phpvirtualbox{'userGroups'}) { ++ $validusers .= ",+$phpvirtualbox{'userGroups'}"; ++ } ++ } else { ++ if ($phpvirtualbox{'userGroups'}) { ++ $validusers = "+$phpvirtualbox{'userGroups'}"; ++ } ++ } ++ } ++ ++ $OUT .=<<_VBOX; ++ ++[virtualbox] ++comment = virtualbox ISO directory ++path = /opt/vbox/ISOs ++read only = no ++writable = yes ++printable = no ++inherit permissions = yes ++create mode = 0640 ++ ++_VBOX ++ ++ if ($validusers) { ++ $OUT .= "valid users = $validusers\n"; ++ } ++ ++} +\ No newline at end of file +diff -urN smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/opt/phpvirtualbox/config.php/config.php smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/opt/phpvirtualbox/config.php/config.php +--- smeserver-phpvirtualbox-5.2.1.old/root/etc/e-smith/templates/opt/phpvirtualbox/config.php/config.php 2023-03-07 16:07:55.309653000 +1100 ++++ smeserver-phpvirtualbox-5.2.1/root/etc/e-smith/templates/opt/phpvirtualbox/config.php/config.php 2023-03-07 12:07:39.000000000 +1100 +@@ -1,38 +1,90 @@ + { ++# domain stuff ++ my $baseDN = esmith::util::ldapBase($DomainName); ++ my $workgroup = $smb{'Workgroup'}; ++# vboxweb parameters ++ my $username = (${'vboxweb-service'}{'user'} || 'vbox'); ++ my $password = ${'vboxweb-service'}{'password'}; ++ my $location = ("http://${'vboxweb-service'}{'access'}:${'vboxweb-service'}{'TCPPort'}/" || "http://127.0.0.1:18083/"); ++# phpvirtualbox parameters for users ++ my $adminUser = ($phpvirtualbox{'adminUser'} || 'admin'); ++ my $adminGroup = ($phpvirtualbox{'adminGroup'} || 'admin'); ++ my $userGroups = $phpvirtualbox{'userGroups'}; ++# phpvirtualbox config parameters ++ my $language = ($phpvirtualbox{'language'} || 'en'); ++ my $vrdeports = ($phpvirtualbox{'vrdeports'} || '19000-19100'); ++ my $maxProgressList = ($phpvirtualbox{'maxProgressList'} || 5); ++ my $deleteOnRemove = ($phpvirtualbox{'deleteOnRemove'} || true); ++ my $browserRestrictFiles = ($phpvirtualbox{'browserRestrictFiles'} || "'.iso','.vdi','.vmdk','.img','.bin','.vhd','.hdd','.ovf','.ova','.xml','.vbox','.cdr','.dmg','.ima','.dsk','.vfd'"); ++ my $browserRestrictFolders = ($phpvirtualbox{'browserRestrictFolders'} || "'/opt/vbox/ISOs','/opt/vbox/VMs'"); ++ my $hostMemInfoRefreshInterval = ($phpvirtualbox{'hostMemInfoRefreshInterval'} || 5); ++ my $consoleResolutions = ($phpvirtualbox{'consoleResolutions'} || "'640x480','800x600','1024x768','1280x720','1440x900'"); ++ my $consoleKeyboardLayout = ($phpvirtualbox{'consoleKeyboardLayout'} || 'EN'); ++ my $nicMax = ($phpvirtualbox{'nicMax'} || 4); ++# working ++ my @phpvboxusers = split(",", ($phpvirtualbox{'Users'} || "") ); ++ my @phpvboxgroups = split(",", ($phpvirtualbox{'userGroups'} || "") ); + + $OUT .=<<_PARMS; +- ++ + class phpVBoxConfig { +-var \$username = 'vbox'; +-var \$location = 'http://127.0.0.1:18083/'; +-var \$language = 'en'; +-var \$vrdeports = '9000-9100'; +-var \$maxProgressList = 5; +-var \$deleteOnRemove = true; +-var \$browserRestrictFiles = array('.iso','.vdi','.vmdk','.img','.bin','.vhd','.hdd','.ovf','.ova','.xml','.vbox','.cdr','.dmg','.ima','.dsk','.vfd'); +-var \$hostMemInfoRefreshInterval = 5; +-var \$consoleResolutions = array('640x480','800x600','1024x768','1280x720','1440x900'); +-var \$consoleKeyboardLayout = 'EN'; +-var \$nicMax = 4; ++# default paramaters ++var \$username = '$username'; ++var \$password = '$password'; ++var \$location = '$location'; ++var \$language = '$language'; ++var \$vrdeports = '$vrdeports'; ++var \$maxProgressList = $maxProgressList; ++var \$deleteOnRemove = $deleteOnRemove; ++var \$browserRestrictFiles = array($browserRestrictFiles); ++var \$browserRestrictFolders = array($browserRestrictFolders); ++var \$hostMemInfoRefreshInterval = $hostMemInfoRefreshInterval; ++var \$consoleResolutions = array($consoleResolutions); ++var \$consoleKeyboardLayout = '$consoleKeyboardLayout'; ++var \$nicMax = $nicMax; ++ ++# authentication parameters + _PARMS + +- my $authtype = $phpvirtualbox{'authtype'} || 'disabled'; +- if ($authtype eq 'webauth') { +- $OUT .= "var \$authLib = 'WebAuth';\n"; +- $OUT .= "var \$authConfig = array('adminUser' => 'admin');\n"; +- } elsif ($authtype eq 'Builtin') { ++# authentication stuff ++ my $authtype = ($phpvirtualbox{'authType'} || 'WebAuth'); ++ if ($authtype eq 'Builtin') { + $OUT .= "var \$authLib = 'Builtin';\n"; ++ } elsif ($authtype eq 'WebAuth') { ++ $OUT .= "var \$authLib = 'WebAuth';\n"; ++ $OUT .= "var \$authConfig = array('adminUser' => '$adminUser');\n"; + } elsif ($authtype eq 'LDAP') { + $OUT .= "var \$authLib = 'LDAP';\n"; + $OUT .= "var \$authConfig = array(\n"; +- $OUT .= " 'host' => '127.0.0.1',\n"; +- $OUT .= " 'bind_dn' => 'uid=%s, ou=Users, dc=mycompany, dc=local',\n"; +- $OUT .= " 'adminUser' => 'admin');\n"; ++ $OUT .= " 'host' => '127.0.0.1',\n"; ++ $OUT .= " 'bind_dn' => 'uid=%s, ou=Users, $baseDN',\n"; ++ $OUT .= " 'adminUser' => $adminUser);\n"; ++ } elsif ($authtype eq 'AD' && $workgroup ) { ++ $OUT .= "var \$authLib = 'ActiveDirectory';\n"; ++ $OUT .= "var \$authConfig = array(\n"; ++ $OUT .= " 'host' => '127.0.0.1',\n"; ++ $OUT .= " 'domain' => '$workgroup',\n"; ++ $OUT .= " 'admin_group' => '$adminGroup'"; ++ if ($userGroups) { ++ foreach my $group (@phpvboxgroups) { ++ $OUT .= ",\n"; ++ $OUT .= " 'user_group' => '$group'"; ++ } ++ }; ++ $OUT .= ");\n"; + } else { + $OUT .= "var \$noAuth=true;\n"; + } +- ++ ++# allow inclusion of any generic parameter stored in config db for phpvirtualbox ++ $OUT .= "# additional parameters defined in configuration DB\n"; ++ my @stdparms = qw(type status Name Users userGroups adminUser adminGroup authtype language vrdeports maxProgressList deleteOnRemove browserRestrictFiles browserRestrictFolders consolresolutions hostMemInfoRefreshInterval consoleKeyboardLayout nicMax); ++ while (my ($param, $value) = each (%phpvirtualbox)) { ++ next if ( $param ~~ @stdparms ); ++ $OUT .= "var \$$param = $value;\n"; ++ } ++ + $OUT .= "}\n"; +- ++ + } + \ No newline at end of file