diff --git a/.dockerignore b/.dockerignore
deleted file mode 100644
index 0a0efeed1c..0000000000
--- a/.dockerignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*
-!stage/photon-rootfs.tar.bz2
-
diff --git a/AUTHORS.md b/AUTHORS.md
deleted file mode 100644
index 0094dacde9..0000000000
--- a/AUTHORS.md
+++ /dev/null
@@ -1,38 +0,0 @@
-### Project Manager
-* [Vasavi Sirnapalli, @Vasavisirnapalli](/~https://github.com/Vasavisirnapalli)
-
-### Project Architect
-* [Alexey Makhalov, @YustasSwamp](/~https://github.com/YustasSwamp)
-
-### Developers
-* [Ajay Kaher, @akaher](/~https://github.com/akaher)
-* [Alexey Makhalov, @YustasSwamp](/~https://github.com/YustasSwamp)
-* [Anish Swaminathan, @suezzelur](/~https://github.com/suezzelur)
-* [Ankit Jain, @jaankit](/~https://github.com/jaankit)
-* [Anmol Jain, @anmolja](/~https://github.com/anmolja)
-* [Ashwin Dayanand Kamat, @kashwindayan](/~https://github.com/kashwindayan)
-* [Bo Gan, @ganboing](/~https://github.com/ganboing)
-* [Brennan Lamoreaux, @bhllamoreaux](/~https://github.com/bhllamoreaux)
-* [Dheeraj Shetty, @DheerajSShetty](/~https://github.com/DheerajSShetty)
-* [Dweep Advani, @dweepadvani](/~https://github.com/dweepadvani)
-* [Harinadh Dommaraju, @HarinadhD](/~https://github.com/HarinadhD)
-* [Him Bordoloi, @bordoloih](/~https://github.com/bordoloih)
-* [Keerthana K, @keerthanakalyan](/~https://github.com/keerthanakalyan)
-* [Michelle Wang, @michellew-vmware](/~https://github.com/michellew-vmware)
-* [Mukul Sikka, @sikkamukul](/~https://github.com/sikkamukul)
-* [Nitesh Kumar, @ntsbtz](/~https://github.com/ntsbtz)
-* [Oliver Kurth, @oliverkurth](/~https://github.com/oliverkurth)
-* [Piyush Gupta, @gpiyush-dev](/~https://github.com/gpiyush-dev)
-* [Prashant Singh Chauhan, @prashant1221](/~https://github.com/prashant1221)
-* [Roye Eshed, @reshed](/~https://github.com/reshed)
-* [Sharath George, @sharathjg](/~https://github.com/sharathjg)
-* [Shivani Agarwal, @shivania2](/~https://github.com/shivania2)
-* [Shreenidhi Shedi, @sshedi](/~https://github.com/sshedi)
-* [Siju Maliakkal, @smaliakkal](/~https://github.com/smaliakkal)
-* [Srinidhi Rao, @srinidhira0](/~https://github.com/srinidhira0)
-* [Sriram Nambakam, @snambakam](/~https://github.com/snambakam)
-* [Srish Srinivasan, @ssrish17](/~https://github.com/ssrish17)
-* [Srivatsa Bhat, @srivatsabhat](/~https://github.com/srivatsabhat)
-* [Susant Sahani, @ssahani](/~https://github.com/ssahani)
-* [Tapas Kundu, @tapakund](/~https://github.com/tapakund)
-* [Vamsi Krishna Brahmajosyula, @vbrahmajosyula1](/~https://github.com/vbrahmajosyula1)
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index d5322a8092..0000000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,78 +0,0 @@
-- [Updated OVAs for CVE-2016-5333](#updated-ovas-for-CVE20165333)
-
-- [v3.0rev2](#v3.0rev2)
- - [Downloads](#downloads)
- - [Highlights](#highlights)
- - [Known Issues](#known-issues)
-
-## Updated OVAs for CVE-2016-5333
-
-A public ssh key used in the Photon OS build environment was inadvertently left in the original Photon OS 3.0 OVAs.
-This issue would have allowed the corresponding private key to access any Photon OS system built from the original 3.0 OVAs.
-
-The issue was discovered internally and the original OVAs have been replaced by updated OVAs. All instances of this private key have been deleted within VMware.
-
-Customers that have downloaded the PhotonOS 3.0 OVAs before August 14, 2016 should take either of the following procedures to ensure the security of their systems:
-
-- Remove the left-over public key from all Photon OS 3.0 systems built from the original PhotonOS 3.0 OVAs by executing the following command:
- - On a freshly installed Photon OS system:
-
- ```rm –f /root/.ssh/authorized_keys```
- - On a Photon OS system which contains user-installed ssh keys:
-
- ```sed –i '/photon-jenkins/d' /root/.ssh/authorized_keys```
-- Alternatively, download the new OVA and replace all existing instances with new instances built from the updated Photon OS 3.0 OVAs.
-
-To confirm that the left-over public key is not present and that the issue is resolved, the following command should not produce any output:
-
- ```cat /root/.ssh/authorized_keys | grep photon-jenkins```
-
-This issue is only present in the original Photon OS 3.0 OVAs and is not present in other Photon OS deliverables.
-
-The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned the identifier CVE-2016-5333 to this issue.
-
-# v 3.0rev2
-
-## Downloads
-| Download | Size | sha1 checksum | md5 checksum |
-| --- | --- | --- | --- |
-| [Full ISO x86_64](https://packages.vmware.com/photon/3.0/Rev2/iso/photon-3.0-58f9c74.iso) | 5.2G | 545a9d0d53cb2109381bd9ae9eb837579f2ef1ee | 2ece2dfcdcdf098e36100a2085937dca |
-| [Minimal ISO x86_64](https://packages.vmware.com/photon/3.0/Rev2/iso/photon-minimal-3.0-58f9c74.iso) | 280M | ae28558e57f5d8aefb8b479c9fac7473079156e1 | 187dfb1e6bc5e47606c667e9042f86a4 |
-| [Full ISO arm64](https://packages.vmware.com/photon/3.0/Rev2/iso/photon-3.0-58f9c743-aarch64.iso) | 3.5G | 16848687d4d7cf393a413f3a24728b2cf042191d | 46d929c644debd27ee9fd37d35046921 |
-| [OVA with virtual hardware v11](https://packages.vmware.com/photon/3.0/Rev2/ova/photon-hw11-3.0-9355405.ova) | 169M | f4c22463e4567e6cd9becdbb2a178b4b916ffff9 | 514e9d9597eea5f1694df9717cffb80b |
-| [OVA with virtual hardware v13 (UEFI Secure Boot)](https://packages.vmware.com/photon/3.0/Rev2/ova/photon-hw13_uefi-3.0-9355405.ova) | 165M | 7cea6b552c66a6ceb6e8023938f9788179d8f697 | 6a24a68b1e56ee35c4a20$
-| [Amazon AMI](https://packages.vmware.com/photon/3.0/Rev2/ami/photon-ami-3.0-9355405.tar.gz ) | 172M | 85949657c857fee6a4417ca72ec010da81ed09e9 | e80bd2f0991a5091d83b3b3ae6e100df |
-| [Google GCE](https://packages.vmware.com/photon/3.0/Rev2/gce/photon-gce-3.0-9355405.tar.gz) | 456M | a97425523518a54a6e20114419cb6fb0e5900039 | c5cffb418372b72bb48a66549ee25fbf |
-| [Azure VHD](https://packages.vmware.com/photon/3.0/Rev2/azure/photon-azure-3.0-9355405.vhd.tar.gz) | 180M | c2a5438574f0b8b62d792042c7edfb655f61acdf | 24b70b81f7e3cb026e4e43bcb0650a5f |
-| [Raspberry Pi3 Image](https://packages.vmware.com/photon/3.0/Rev2/rpi3/photon-rpi3-3.0-9355405.tar.xz) | 61M | 9f44bde819862eeb0c6cbfcd06fab6a48ba36594| 2ca56e575e37fc7b911dd934e5089432 |
-
-## Highlights
-- tdnf adds support for "distro-sync" - giving a single operation to apply updates to all installed packages that have updates in the Photon OS repos.
-- Many new packages available for Photon OS!
-- Photon OS 3.0 contains the 4.4 LTS kernel
-
-## Known Issues
-
-- Photon OS 3.0 does not respond immediately to the new FQDN after changing the hostname. This issue will occur when there is no valid DNS system configured. This is being investigated.
- - Workaround: To resolve this issue, restart systemd-resolved.
-
-- Photon OS 3.0 requires at least 512MB of RAM when installing from ISO on ESXi.
- - Workaround: While on VMware Workstation and VMware Fusion, Photon OS 3.0 can install ISO and run in as little as 384MB of RAM (default). assign at least 512MB of RAM when installing from ISO on ESXi, as installer may fail in less memory. The default for ESXi is 2GB and most users will not be affected by this issue. The root cause is being investigated.
-
-- When using a combination of different network cards in Photon OS 3.0, the interfaces may be swapped after a reboot.
- - Workaround: Use the same type of virtual NIC for all interfaces. This happens because the devices are probed in increasing PCI slot address order upon boot. E1000 devices reside in 02:00.0 and above, while VMXNET3 devices will be placed into 03:00.0 and above. Upon reboot, the E1000 device(s) will always be assigned eth numbers than VMXNET3, regardless of configuration. Users might encounter this issue because VMXNET3 is the default adapter type within Photon OS, but older versions of VMware products might offer only E1000 devices when adding a secondary interface.
-
-- When using multiple network cards without a valid DNS configuration and functional DNS server, initiating a ping might take 7-8 seconds to start. This happens because of multiple DNS timeouts on the interfaces.
- - Workaround: To avoid this issue, ensure that you've got a valid DNS configuration and a functioning DNS server that is capable of resolving the hostname(s) that are being pinged.
-
-- When using vSphere Guest Customization to set the hostname of a Photon OS 3.0 instance, the hostname may revert to the randomly-generated hostname after a reboot.
- - Workaround: We are testing an update to our open-vm-tools rpm to resolve this issue. In the meantime, you can manually resolve this issue by deleting /var/lib/cloud/seed folder after applying guest customization.
-
-- Ordering within /etc/hosts makes IPv6 preferred, which impacts connectivity for applications that are not configured for IPv6.
- - Workaround: To make IPv4 the preferred connection, edit /etc/hosts and ensure that an IPv4 address is first on the list. Alternatively, configuring the application within Photon OS to use IPv6 will work.
-
-- The default umask permissions are 0027 and may cause some permissions issues with operations executed as root or through sudo.
- - Workaround: Change the umask settings to 022 by entering, "umask 022" within a Photon OS instance. To make the umask change persistent across reboots, edit /etc/profile and change the umask setting to 0022.
-
-- In the 3.0 release, Photon OS firewall settings have been changed to a default of DROP, which might cause services installed in Photon OS to be unreachable externally.
- - Workaround: To address this, administrators must configure their firewall rules appropriately to expose service ports as required for installed applications or containers.
diff --git a/COPYING b/COPYING
deleted file mode 100644
index f288702d2f..0000000000
--- a/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. 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
-them 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 prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. 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.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey 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;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If 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 convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU 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 that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- 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.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-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.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- 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
-state 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 3 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, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program 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, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU 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. But first, please read
-.
diff --git a/CREDITS b/CREDITS
deleted file mode 100644
index 92eb879111..0000000000
--- a/CREDITS
+++ /dev/null
@@ -1,29 +0,0 @@
-CREDITS
-
-VMware Photon Linux materialized in an instant and is moving at light speed. Any Linux distribution (including Photon) benefits from the thousands of contributions from the free software and open software community. A full listing of the third party components in the Photon distribution can be found at the third party licenses file.
-
-The Photon Project gratefully acknowledge these contributions. This file calls out specific contributions from the community that deserve special mention.
-
-1) GNU and the Free Software Foundation
-
-Free software as we know it today would probably not exist but for the pioneering work of the FSF. Keeping with the tradition of GNU/Linux, VMware’s Photon distribution and build system will be released under the GPL 2.0 License.
-
-2) Linux from Scratch - http://www.linuxfromscratch.org
-
-Photon is built from scratch – it’s not a fork of any existing Linux distribution. In building Photon, the team has benefited greatly from the Linux From Scratch (LFS) approach. We acknowledge the simplicity, elegance and clarity of Linux From Scratch.
-
-3) LFS-RPM - Baho Utot /~https://github.com/baho-utot/LFS-RPM
-
-Photon automates the LFS model of constructing a Linux system through the RPM build process.
-
-When we began Photon, we found Baho Utot's LFS-RPM project and we considered using it as the
-
-basis of bootstrapping our build system. We requested Baho to clarify the license terms of
-
-LFS-RPM and Baho very graciously released all of LFS-RPM into the public domain. Thank you!
-
-As a result, Photon was bootstrapped with Baho's LFS-RPM project.
-
-4) RPM Spec files
-
-Photon maintains its own spec files. The initial release of Photon comprises over 200 Linux packages. Of these, around 30 spec files come from the Fedora project. We gratefully acknowledge this. As we evolve our spec files moving forward, we will document their lineage.
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 77f5d1abea..0000000000
--- a/Dockerfile
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Photon Linux Dockerfile
-#
-
-FROM scratch
-LABEL maintainer tliaqat@vmware.com
-
-ADD stage/photon-rootfs-$PHOTON_RELEASE_VERSION-$PHOTON_BUILD_NUMBER.tar.bz2 /
-
-VOLUME /var/lib/docker
-
-CMD ["bash", "--login"]
-
diff --git a/EULA.txt b/EULA.txt
deleted file mode 100644
index 6a41e5fc41..0000000000
--- a/EULA.txt
+++ /dev/null
@@ -1,109 +0,0 @@
-VMWARE GENERAL TERMS
-Last updated:16 June 2022
-By downloading or using an Offering, Customer agrees to be bound by the terms of the Agreement.
-1. OFFERINGS.
-1.1. Applicable Terms. The terms of the Order and these General Terms, including applicable Exhibits and Offering-specific Notes (collectively, the "Agreement") govern Customer's use of the Offerings. The following descending order of precedence applies: (a) the Order; (b) the General Terms; (c) the Exhibits; and (d) the Offering-specific Notes.
-1.2. Users. Customer is responsible for its Users' compliance with the Agreement.
-1.3. Restrictions. Customer may use the Offerings only for its internal use and for the benefit of its Affiliates. Affiliates may not use the Offerings. Customer may not resell or sublicense its rights to the Offerings. Customer may not use the Offerings in an application service provider, service bureau, hosted IT service, or similar capacity for third parties.
-1.4. Benchmarking. Customer may use the Offerings to conduct internal performance testing and benchmarking studies. Customer may only publish or distribute study results with VMware's approval. Customer may submit requests to VMware by emailing benchmark@vmware.com.
-1.5. Evaluations. Evaluations are for 30 days (unless VMware specifies otherwise in writing). Customer may not have access to data in the Evaluation after it ends. Evaluations are provided "AS IS" without indemnification, support, service level commitment, or warranty of any kind, express or implied.
-2. ORDERS AND PAYMENTS.
-2.1. Orders. Orders are binding when VMware accepts them, which is deemed to occur on Delivery.
-2.2. Purchase Orders. Purchase orders do not have to be signed to be valid. Terms contained in any purchase order or other business form do not apply.
-2.3. No Refunds. All Orders are non-refundable and non-cancellable except as expressly provided in the Agreement.
-2.4. Overages. Customer must pay all fees for use of the Offerings, including amounts for add-on features and fees incurred based on usage. VMware may bill Customer directly for metered or overage fees, even if Customer originally purchased the Offerings through a VMware authorized reseller.
-2.5. Direct Orders. This section 2.5 (Direct Orders) applies only to Orders placed directly with VMware. If Customer purchases entitlements to the Offerings through a VMware authorized reseller, different terms regarding invoicing, payment, and taxes may apply.
-2.5.1. Payments. Except as listed in an Order, fees for the Offerings will be governed by the applicable price list at the time of invoicing. Customer must pay all undisputed fees and approved expenses within 30 days from the date of invoice. After 30 days, interest will accrue at the lesser of 1.5% per month or the highest lawful rate.
-2.5.2. Disputes. To dispute any fees in good faith, Customer must notify VMware in writing of the reasons for the dispute before the payment due date. The parties must negotiate in good faith to resolve the dispute as soon as reasonably practicable. VMware will not suspend or terminate Customer's access to any Offering because of any unpaid, disputed fees while Customer and VMware are negotiating to resolve the dispute.
-2.5.3. Taxes. Fees are exclusive of Taxes. Customer must pay or reimburse VMware for all Taxes. If Customer is required to withhold any Tax, Customer must gross up its payments so that VMware receives all sums due in full. If Customer's address is outside of the United States, VMware will treat the Customer's "bill to" address as the place of supply for VAT purposes.
-3. TERM.
-3.1. Term. The Agreement applies to the Offerings from the effective date of the Order until the expiration or termination of Customer's entitlement to the Offerings as set forth in this Agreement.
-3.2. Temporary Suspension. In the event of a security risk to a Service or its users, VMware may suspend Customer's use of that Service.
-3.3. Termination for Cause. Either party may terminate the Agreement (in whole or in part) or Customer's entitlement to an Offering under the Agreement effective immediately upon written notice if the other party: (a) materially breaches any provision of the Agreement and fails to cure within 30 days after receiving written notice; or (b) becomes insolvent or subject to any form of bankruptcy proceeding.
-3.4. Effect of Termination. Upon termination of the Agreement or part of it: (a) all entitlements to the applicable Offerings immediately end; (b) Customer must stop using, and destroy any copies of, those Offerings; and (c) each party must return or destroy any Confidential Information of the other party in its control (other than information that must be retained by law). Any provision that is intended by the parties to survive termination of the Agreement will survive.
-4. CONFIDENTIAL INFORMATION.
-4.1. Protection. Recipient must protect Discloser's Confidential Information with at least the same care as it protects its own Confidential Information but not less than reasonable care. Recipient may not use Discloser's Confidential Information except to exercise its rights and perform its obligations under the Agreement. Recipient may disclose Confidential Information only to Recipient's Affiliates, employees and contractors who need to know the Confidential Information for purposes of the Agreement and who have a duty of confidentiality no less restrictive than this section 4 (Confidential Information).
-4.2. Exceptions. Recipient's obligations under section 4.1 (Protection) do not apply if the information: (a) is rightfully known by Recipient at the time of disclosure without any obligation of confidentiality; (b) is lawfully disclosed to Recipient by a third party without confidentiality restrictions; (c) becomes publicly available through no fault of Recipient; or (d) is independently developed by Recipient without access to or use of Discloser's Confidential Information.
-4.3. Injunctive Relief. Nothing in the Agreement limits a party's right to seek equitable relief for breach of this section 4 (Confidential Information).
-5. OWNERSHIP.
-5.1. Customer Content. Customer retains all Intellectual Property Rights in and to Customer Content.
-5.2. VMware IP. VMware retains all Intellectual Property Rights in and to the Offerings, including any improvements, enhancements, modifications, and derivative works. If Customer provides any feedback about the Offerings, VMware may use that feedback without restriction.
-5.3. Reservation of Rights. Except as expressly stated in the Agreement, the Agreement does not grant either party any rights, implied or otherwise, to the other party's content or intellectual property.
-6. LIMITED WARRANTIES.
-6.1. Software and Cloud Services. VMware warrants that Software and Cloud Services will substantially conform with the Documentation: (a) for Software, for 90 days following Delivery; or (b) for Cloud Services, for the Subscription Term. Customer must properly install and use the Offerings without modification and in accordance with the Documentation. Customer must notify VMware of an alleged breach of this warranty within the applicable warranty period. As Customer's sole remedy for a breach of this warranty, VMware must either: (1) correct any reproducible error in the Software or Cloud Service; or (2) terminate the Software or Cloud Service and refund applicable license fees (for Software) or unused, prepaid fees (for Cloud Services).
-6.2. Professional Services and Support Services. VMware warrants that Professional Services and Support Services will be performed in a professional manner following industry standards. Customer must notify VMware within 30 days of an alleged breach of this warranty. As Customer's sole remedy for a breach of this warranty, VMware must either: (a) rectify the breach; or (b) terminate the applicable Service and refund any unused, prepaid fees for that Service.
-6.3. Disclaimer of Warranties. Except for the limited warranties in this section 6 (Limited Warranties), to the maximum extent permitted by law, VMware, for itself and on behalf of its suppliers, disclaims all warranties and conditions whether express, implied, or statutory, including any warranties of merchantability, satisfactory quality, fitness for a particular purpose, title, non-infringement, and any warranty arising from course of dealing or course of performance, relating to the Offerings. Neither VMware nor its suppliers warrant that the Offerings will operate uninterrupted, that Offerings will be free from defects or errors, or that the Offerings will meet (or are designed to meet) Customer's requirements.
-7. INDEMNIFICATION.
-7.1. Defense and Indemnification. Subject to the remainder of this section 7 (Indemnification), VMware will: (a) defend Customer against any Infringement Claim; and (b) indemnify Customer from amounts finally awarded against Customer by a court of competent jurisdiction or a government agency, or agreed to in a settlement, for the Infringement Claim.
-7.2. Requirements. Customer must provide VMware with prompt notice of any Infringement Claim and reasonably cooperate with VMware's requests for assistance. VMware will have sole control of the defense and settlement of the Infringement Claim.
-7.3. Exclusions. VMware has no obligation under this section 7 (Indemnification) with respect to an Infringement Claim based on: (a) combination of Indemnified Materials with non-VMware materials; (b) use of an older version of Indemnified Materials when use of a newer version would have avoided the infringement; (c) any modification to Indemnified Materials other than those made by VMware; (d) any Deliverable provided by VMware in accordance with Customer's specifications; (e) any claim relating to open source software or freeware technology that is not embedded by VMware into the Offerings; or (f) any Indemnified Material provided on a no-charge, beta, or evaluation basis.
-7.4. Remedies. If Indemnified Materials become, or in VMware's reasonable opinion are likely to become, the subject of an Infringement Claim, VMware must, at its option and expense, either: (a) procure the necessary rights for Customer to keep using the Indemnified Materials; or (b) modify or replace the Indemnified Materials to make them non-infringing. If those remedies are not commercially feasible, VMware may terminate Customer's entitlement to the Indemnified Materials and refund any applicable:
-(1) prepaid fees for Cloud Services or Subscription Software, prorated for the remaining portion of the then-current Subscription Term;
-(2) fees paid for Perpetual Licenses or Deliverables, less straight-line depreciation over a three-year useful life; and
-(3) unused, prepaid fees for discontinued Support Services.
-7.5. Sole Remedy. This section 7 (Indemnification) states Customer's sole remedy and VMware's entire liability for Infringement Claims.
-8. LIMITATION OF LIABILITY.
-8.1. Disclaimer. To the maximum extent permitted by law, neither party will be liable for lost profits or business opportunities, loss of use, loss of data, loss of goodwill, business interruption, or any indirect, special, incidental, or consequential damages under any theory of liability. This limitation will apply regardless of whether a party has been advised of the possibility of those damages and regardless of whether any remedy fails of its essential purpose.
-8.2. Cap on Monetary Liability. Each party's aggregate liability under this Agreement will not exceed amounts paid or payable by Customer for the Offering giving rise to the claim in the 12 months prior to the event giving rise to the claim, except for Perpetual Licenses, where each party's aggregate liability will not exceed the license fees paid for the Software giving rise to the claim. VMware's aggregate liability for an Evaluation will not exceed $5,000 USD.
-8.3. Exclusions. The limitations of liability in sections 8.1 (Disclaimer) and 8.2 (Cap on Monetary Liability) will not apply to: (a) VMware's indemnification obligations under section 7 (Indemnification); (b) either party's infringement of the other party's Intellectual Property Rights; (c) Customer's violation of section 2 of the Cloud Services Exhibit (Acceptable Use); or (d) any liability that may not be limited by law.
-8.4. Further Limitations.VMware's liability for any third-party software embedded into the Software or Cloud Services is subject to this section 8 (Limitation of Liability). VMware's suppliers have no liability under the Agreement, and Customer may not bring claims directly against them. VMware has no liability with respect to any Third-Party Content.
-9. DATA USE AND PRIVACY.
-9.1. Personal Data. If VMware acts as a processor of Personal Data, VMware will process Personal Data in accordance with the Data Processing Addendum.
-9.2. Account, Operations, and Usage Data. VMware collects Customer contact and purchase information to manage Customer's account and to fulfill Orders. VMware also processes: (a) information necessary to facilitate delivery and operation of the Offerings, verify compliance with the terms of the Agreement, invoice, and provide Support Services; and (b) configuration, performance, and usage data to improve VMware products and services, and other analytics purposes as detailed in the Offering-specific Notes. To the extent any of that data includes information that identifies an individual, VMware will process that information in accordance with VMware's Products & Services Privacy Notice available at www.vmware.com/help/privacy.html.
-9.3. Support Requests and Professional Services. Customer is responsible for taking steps necessary to protect any sensitive information or Personal Data that it provides to VMware while receiving Support Services or Professional Services. Those steps may include obfuscating or removing such information or working with VMware at the time of submission to limit disclosure.
-9.4. Required Disclosures. VMware may disclose Customer Content or Confidential Information if VMware is required by law or by order of a judicial or administrative body of competent jurisdiction (a "Demand"). Unless legally prohibited from doing so, VMware must provide Customer with notice and a copy of the Demand. If the Demand relates to Cloud Services, VMware must (i) inform the relevant authority that VMware is a service provider acting on Customer's behalf and all requests for access to Customer Content should be directed in writing to the contact Customer identifies (or if no contact is timely provided, to Customer's legal department) and (ii) only provide access to Customer Content with Customer's authorization. If Customer requests and at Customer's expense, VMware must take reasonable steps to contest the Demand. If VMware is legally prohibited from notifying Customer of the Demand, VMware must evaluate the validity of the Demand, and, if VMware does not believe the Demand is legal, VMware must challenge the Demand. VMware must limit the scope of any disclosure to the minimum information required to comply with the Demand.
-10. OPEN SOURCE SOFTWARE. Open source software is licensed to Customer under the open source software's own applicable license terms, which can be found in either the open source_licenses.txt file accompanying the Offerings, the Documentation, or at www.vmware.com/download/open_source.html. These license terms are consistent with the license granted in the Agreement and may contain additional rights benefiting Customer. The open source license terms take precedence over the Agreement to the extent that the Agreement imposes greater restrictions on Customer than the applicable open source license terms. To the extent the license for any open source software requires VMware to make the corresponding source code and/or modifications (the "Source Files") available to Customer, Customer may obtain a copy of the applicable Source Files at www.vmware.com/download/open_source.html or by sending a written request, with name and address, to: VMware, Inc., 3401 Hillview Avenue, Palo Alto, CA 94304, United States of America. All requests should clearly specify: Open Source Files Request, Attention: General Counsel. This offer to obtain a copy of the Source Files is valid for three years from the date Customer acquires its entitlement to the Offering.
-11. MISCELLANEOUS.
-11.1. Transfer and Assignment. Customer may not assign the Agreement or any Order without VMware's consent. Once validly assigned, the Agreement will bind and inure to the benefit of the parties and their respective successors and assigns.
-11.2. Notice. All notices must be in writing. Notices to Customer will be given: (a) by email to the email address associated with Customer's account, if Customer has subscribed to email notices; or (b) by posting in the VMware customer portal. Legal notices to VMware will be given to VMware, Inc., 3401 Hillview Avenue, Palo Alto, California 94304, United States of America, Attention: Legal Department.
-11.3. Waiver. Waiver of a breach of the Agreement will not constitute a waiver of any later breach.
-11.4. Severability. If any part of the Agreement is held to be invalid or unenforceable, all remaining provisions will remain in force to the extent feasible to effectuate the intent of the parties.
-11.5. Insurance. VMware will carry insurance for the term of the Agreement. VMware's Memorandum of Insurance may be viewed at www.vmware.com/agreements.
-11.6. Compliance with Laws. Each party must comply with all applicable laws.
-11.7. Export Control. The Offerings are subject to the U.S. Export Administration Regulations (including "deemed export" and "deemed re-export" regulations), and may be subject to the export control laws of other countries. Customer represents and warrants that: (a) Customer and any User, are not, and are not acting on behalf of: (1) any person who is a citizen, national, or resident of, or who is controlled by, the government of any country to which the United States has prohibited export transactions; or (2) any person or entity listed on the U.S. Treasury Department list of Specially Designated Nationals and Blocked Persons, or the U.S. Commerce Department Denied Persons List or Entity List, or any similar applicable designated persons list; (b) Customer, and any User, will not permit the Offerings to be used for any purposes prohibited by law, including any prohibited development, design, manufacture, or production of missiles or nuclear, chemical, or biological weapons; and (c) Customer, and any User, are not subject, either directly or indirectly, to any order issued by any agency of the United States government revoking or denying, in whole or in part, Customer's United States export privileges. Customer must notify VMware promptly if Customer or any User becomes subject to any order of that type.
-11.8. Governing Law. The Agreement is governed by the laws of the State of California and U.S. federal laws, if the billing address for Customer's Order is in the United States, and by the laws of Ireland if the billing address for Customer's Order is outside the United States. Conflict of law rules are expressly disclaimed. The United Nations Convention on Contracts for the International Sale of Goods does not apply.
-11.9. U.S. Public Sector End User. If Customer is a U.S. Public Sector End User, the U.S. Public Sector Exhibit available at www.vmware.com/agreements supersedes or modifies the referenced provisions of the Agreement.
-11.10. Third Party Rights. Other than as expressly stated, the Agreement does not create any rights for any person who is not a party to it. Only persons who are parties to the Agreement may enforce or rely on any of its terms.
-11.11. Force Majeure. Except for Customer's payment obligations, neither party will be liable for any delay or failure to perform due to any cause beyond the party's reasonable control, including labor disputes, industrial disturbances, systemic utility failures, acts of nature, pandemics, embargoes, riots, government orders, acts of terrorism, or war.
-11.12. No Agency. Nothing in the Agreement is intended to constitute a fiduciary relationship, agency, joint venture, partnership, or trust between the parties. No party has authority to bind the other party.
-11.13. Translation. This non-English version of these General Terms is provided only as a courtesy, and Customer's use of the Offerings is governed by the English version of these General Terms, published at www.vmware.com/agreements.
-11.14. Counterparts. The Agreement may be signed electronically or in counterparts, in which case each signed copy will be deemed an original as though both signatures appeared on the same document.
-11.15. Entire Agreement. The Agreement contains the entire agreement of the parties and supersedes all previous or contemporaneous communications, representations, proposals, commitments, understandings, and agreements, whether written or oral, between the parties regarding its subject matter. The Agreement may be amended only in writing and signed by both parties.
-12. DEFINITIONS.
-Affiliate means an entity that is directly or indirectly controlled by, is under common control with, or controls that party, where "control" means an ownership, voting, or similar interest representing more than 50% of the total interests outstanding of that entity at that time.
-Cloud Service means the VMware cloud service specified in Customer's Order.
-Cloud Services Guide means the then-current VMware Cloud Services Guide, available at www.vmware.com/agreements.
-Confidential Information means information or materials provided by a party ("Discloser") to the other party ("Recipient") that: (a) is in tangible form and labelled "confidential" or similar; or (b) information which a reasonable person knew or should have known to be confidential. Confidential Information includes: (1) license keys; (2) VMware pricing, product roadmaps or strategic marketing plans; (3) non-public materials relating to the Offerings; and (4) Customer Login Credentials.
-Customer means the entity identified in the Order as "Customer".
-Customer Content means content uploaded by Customer or any User into the Cloud Service or provided to VMware as a part of Support Services, but does not include Third-Party Content or account information. For purposes of this definition, "content" means any data, including all text, sound, video, or image files, and software (including machine images).
-Data Processing Addendum means the then-current VMware Data Processing Addendum, available at www.vmware.com/agreements.
-Deliverables means any reports, analyses, scripts, templates, code, or other work results delivered by VMware as specified in the applicable SOW for Professional Services.
-Delivery means: (a) for Cloud Services, when VMware emails the Login Credentials to the email address associated with Customer's account; (b) for Software, when VMware notifies Customer of availability of Software for download; (c) for Support Services, upon VMware's issuance of an invoice for those Support Services; (d) for Professional Services, as specified in the applicable SOW; (e) for purchasing program credits, when VMware makes the fund balance available in the applicable portal; and (f) for shipping and delivery of physical objects, Ex Works VMware's regional fulfillment facility (INCOTERMS 2020(TM)).
-Documentation means the product documentation describing the features, functionality, and use of the Offerings published and updated by VMware from time to time at docs.vmware.com.
-Evaluation means an Offering (or part of an Offering) made available free of charge, for evaluation, trial, proof of concept, or similar purpose.
-Exhibits means the exhibits to these General Terms (Software, Cloud Services, Professional Services, U.S. Federal, and VMware Entities) available at www.vmware.com/agreements.
-Indemnified Materials means the Cloud Services, Software, and Deliverables.
-Infringement Claim means any claim by a third party that the Indemnified Materials infringe any patent, trademark, or copyright of that third party, or misappropriate a trade secret (only to the extent that misappropriation is not a result of Customer's actions).
-Intellectual Property Rights means all worldwide intellectual property rights, including copyrights, trademarks, service marks, trade secrets, know-how, inventions, patents, patent applications, moral rights, and all other proprietary rights, whether registered or unregistered.
-Login Credentials means any passwords, authentication keys, or security credentials that enable Customer's access to and management of the Cloud Service.
-Offering(s) means, collectively, Services or Software.
-Offering-specific Notes means the applicable license notes or services notes found in the Product Guide, the Cloud Services Guide, and the Support Services Guide.
-Order means an enterprise order, SOW, quote, or other ordering document for Offerings, issued by Customer to VMware or to Customer's VMware authorized reseller and accepted by VMware described in section 2 of these General Terms (Orders and Payments).
-Perpetual License means a license to the Software with a perpetual term.
-Personal Data is defined in the Data Processing Addendum.
-Product Guide means VMware's then-current Product Guide available at www.vmware.com/agreements.
-Professional Services means those services described in the applicable SOW.
-Service Level Agreement means the then-current version of the applicable service level agreement for a Cloud Service, available at www.vmware.com/agreements.
-Service(s) means Cloud Services, Support Services, or Professional Services.
-Software means the VMware computer programs that Customer licenses under an Order, together with any related software code VMware provides as part of Support Services and that is not subject to a separate license agreement.
-SOW means a written agreement between Customer and VMware containing project-specific details of the Professional Services or VMware online datasheet.
-Subscription Software means Software that is licensed for a specific term.
-Subscription Term means the period Customer is permitted to use a Cloud Service or Subscription Software, stated in the applicable Order. For any on-demand Cloud Services, Subscription Term means the period during which Customer uses the Cloud Service.
-Support Services means VMware support and subscription services that are purchased under an Order or included with purchase of Subscription Software or Cloud Services.
-Support Services Guide means VMware's then-current Support Services Guide, available at www.vmware.com/agreements.
-Tax means any sales, consumption, VAT, GST, use, gross receipts, business and occupation, withholding, and other taxes (other than taxes on VMware income), export and import fees, customs duties, and similar fees imposed by any government or other authority.
-Third-Party Agent means a third party delivering information technology services to Customer under a contract with Customer.
-Third-Party Content means content provided by a third party that interoperates with a Cloud Service, but that is not part of the Cloud Service. Third-Party Content is optional and is subject to the third-party terms accompanying the Third-Party Content.
-U.S. Public Sector End User means a U.S. Federal End User or a U.S. State or Local Government End User, as those terms are defined in the U.S. Public Sector Exhibit.
-User means an employee, contractor, or Third-Party Agent that Customer authorizes to use the Offerings as permitted under the Agreement or under Customer's Login Credentials.
-VMware means VMware, Inc., a Delaware corporation, if the billing address for the Order is in the United States, or VMware International Unlimited Company, a company organized and existing under the laws of Ireland, if the billing address for the Order is outside the United States, except if the billing address for the Order is in the United Kingdom, Australia, or New Zealand or the Pacific Islands, in which case VMware means the applicable entity identified in the VMware Entities Exhibit found at www.vmware.com/agreements.
diff --git a/LICENSE.md b/LICENSE.md
deleted file mode 100644
index 788f41d922..0000000000
--- a/LICENSE.md
+++ /dev/null
@@ -1,162 +0,0 @@
-PhotonOS v3.0 (and greater versions) Copyright © VMware, Inc. 2014-2018
-
-The files of PhotonOS version 3.0 (and greater versions) are licensed under the terms of the Apache License v2.0 or alternatively under the terms of the GNU General Public License (GPL) v2 UNLESS otherwise noted at the beginning of the file or a LICENSE file present in a directory subtree declares a separate license.
-
-The terms of the Apache License v2.0 and GPL v2 licenses are set forth below.
-
-Apache License v2.0
-
-## **Apache License, Version 2.0**
-
-## January 2004
-
-[http://www.apache.org/licenses/](http://www.apache.org/licenses/)LICENSE-2.0
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-**1. Definitions**.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"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.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"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.
-
-"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).
-
-"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.
-
-"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."
-
-"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.
-
-**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.
-
-**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.
-
-**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:
-
-1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
-2. You must cause any modified files to carry prominent notices stating that You changed the files; and
-3. 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
-4. 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.
-
-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.
-
-**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.
-
-**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.
-
-**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.
-
-**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.
-
-**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.
-
-END OF TERMS AND CONDITIONS
-
-# **APPENDIX: How to apply the Apache License to your work**
-
-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.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- 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.
-
-GPL v2
-
-### **GNU GENERAL PUBLIC LICENSE**
-
-Version 2, June 1991
-
-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.
-
-### **TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION**
-
-1. **1.** 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. **2.** 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.
-
-1. **3.** 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 chargeto 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.
-
-1. **4.** 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:
-
-1. **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,
-
-1. **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,
-
-1. **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.
-
-1. **5.** 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.
-
-1. **6.** 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.
-
-1. **7.** 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.
-
-1. **8.** 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.
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 872f1d3c4f..0000000000
--- a/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-ifndef CONF
- CONF := build-config.json
-endif
-
-%:
- @if [ -n "$(shell echo $(BUILD_EXTRA_PKGS) | grep -Ew "enable|yes|True")" ]; then\
- python3 build.py -c $(CONF) -t extra-packages;\
- else\
- python3 build.py -c $(CONF) -t $@;\
- fi
diff --git a/NOTICE-Apachev2 b/NOTICE-Apachev2
deleted file mode 100644
index 47ae8bdc32..0000000000
--- a/NOTICE-Apachev2
+++ /dev/null
@@ -1,7 +0,0 @@
-Photon
-Copyright 2015-2020 VMware, Inc. All Rights Reserved.
-
-This product is licensed to you under the Apache 2.0 license (the "License"). You may not use this product except in compliance with the Apache 2.0 License.
-
-This product may include a number of subcomponents with separate copyright notices and license terms. Your use of these subcomponents is subject to the terms and conditions of the subcomponent's license, as noted in the LICENSE file.
-
diff --git a/NOTICE-GPL2.0 b/NOTICE-GPL2.0
deleted file mode 100644
index dbacf90be4..0000000000
--- a/NOTICE-GPL2.0
+++ /dev/null
@@ -1,6 +0,0 @@
-Photon
-Copyright 2015-2020 VMware, Inc. All Rights Reserved.
-
-This product is licensed to you under the GNU GENERAL PUBLIC LICENSE Version 2 license (the "License"). You may not use this product except in compliance with the GPL 2.0 License.
-
-This product may include a number of subcomponents with separate copyright notices and license terms. Your use of these subcomponents is subject to the terms and conditions of the subcomponent's license, as noted in the LICENSE file.
diff --git a/PUBLISHRPMS_SPECS/gcc/PLUGIN_TYPE_CAST.patch b/PUBLISHRPMS_SPECS/gcc/PLUGIN_TYPE_CAST.patch
deleted file mode 100644
index 15ddeec09c..0000000000
--- a/PUBLISHRPMS_SPECS/gcc/PLUGIN_TYPE_CAST.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -Naurp gcc-7.3.0-orig/gcc/c/c-typeck.c gcc-7.3.0/gcc/c/c-typeck.c
---- gcc-7.3.0-orig/gcc/c/c-typeck.c 2017-06-08 12:12:38.381833000 -0700
-+++ gcc-7.3.0/gcc/c/c-typeck.c 2018-04-24 14:44:50.222592671 -0700
-@@ -48,6 +48,8 @@ along with GCC; see the file COPYING3.
- #include "c-family/c-ubsan.h"
- #include "cilk.h"
- #include "gomp-constants.h"
-+#include "plugin-api.h"
-+#include "plugin.h"
- #include "spellcheck-tree.h"
- #include "gcc-rich-location.h"
-
-@@ -5452,6 +5454,12 @@ build_c_cast (location_t loc, tree type,
- return error_mark_node;
- }
-
-+ {
-+ tree cast_info[] {type, TREE_TYPE(value)};
-+ invoke_plugin_callbacks (PLUGIN_TYPE_CAST, cast_info);
-+ }
-+
-+
- if (type == TYPE_MAIN_VARIANT (TREE_TYPE (value)))
- {
- if (RECORD_OR_UNION_TYPE_P (type))
-diff -Naurp gcc-7.3.0-orig/gcc/plugin.c gcc-7.3.0/gcc/plugin.c
---- gcc-7.3.0-orig/gcc/plugin.c 2017-03-21 04:50:18.693898000 -0700
-+++ gcc-7.3.0/gcc/plugin.c 2018-04-24 14:46:13.956372418 -0700
-@@ -471,6 +471,7 @@ register_callback (const char *plugin_na
- case PLUGIN_EARLY_GIMPLE_PASSES_END:
- case PLUGIN_NEW_PASS:
- case PLUGIN_INCLUDE_FILE:
-+ case PLUGIN_TYPE_CAST:
- {
- struct callback_info *new_callback;
- if (!callback)
-@@ -551,6 +552,7 @@ invoke_plugin_callbacks_full (int event,
- case PLUGIN_EARLY_GIMPLE_PASSES_END:
- case PLUGIN_NEW_PASS:
- case PLUGIN_INCLUDE_FILE:
-+ case PLUGIN_TYPE_CAST:
- {
- /* Iterate over every callback registered with this event and
- call it. */
-diff -Naurp gcc-7.3.0-orig/gcc/plugin.def gcc-7.3.0/gcc/plugin.def
---- gcc-7.3.0-orig/gcc/plugin.def 2017-01-01 04:07:43.905435000 -0800
-+++ gcc-7.3.0/gcc/plugin.def 2018-04-24 14:47:02.209408557 -0700
-@@ -99,6 +99,9 @@ DEFEVENT (PLUGIN_NEW_PASS)
- as a const char* pointer. */
- DEFEVENT (PLUGIN_INCLUDE_FILE)
-
-+/* Called when expression is casted to some type. */
-+DEFEVENT (PLUGIN_TYPE_CAST)
-+
- /* When adding a new hard-coded plugin event, don't forget to edit in
- file plugin.c the functions register_callback and
- invoke_plugin_callbacks_full accordingly! */
diff --git a/PUBLISHRPMS_SPECS/gcc/gcc.spec b/PUBLISHRPMS_SPECS/gcc/gcc.spec
deleted file mode 100644
index e8b78b5c3b..0000000000
--- a/PUBLISHRPMS_SPECS/gcc/gcc.spec
+++ /dev/null
@@ -1,270 +0,0 @@
-%define _use_internal_dependency_generator 0
-Summary: Contains the GNU compiler collection
-Name: gcc
-Version: 7.3.0
-Release: 2%{?dist}
-License: GPLv2+
-URL: http://gcc.gnu.org
-Group: Development/Tools
-Vendor: VMware, Inc.
-Distribution: Photon
-Source0: http://ftp.gnu.org/gnu/gcc/%{name}-%{version}/%{name}-%{version}.tar.xz
-%define sha1 gcc=9689b9cae7b2886fdaa08449a26701f095c04e48
-Patch0: PLUGIN_TYPE_CAST.patch
-
-BuildRequires: wget
-BuildRequires: curl
-Requires: libstdc++-devel = %{version}-%{release}
-Requires: libgcc-devel = %{version}-%{release}
-Requires: libgomp-devel = %{version}-%{release}
-Requires: libgcc-atomic = %{version}-%{release}
-Requires: gmp
-%if %{with_check}
-BuildRequires: autogen
-BuildRequires: dejagnu
-%endif
-
-%description
-The GCC package contains the GNU compiler collection,
-which includes the C and C++ compilers.
-
-%package -n gfortran
-Summary: GNU Fortran compiler.
-Group: Development/Tools
-%description -n gfortran
-The gfortran package contains GNU Fortran compiler.
-
-%package -n libgcc
-Summary: GNU C Library
-Group: System Environment/Libraries
-%description -n libgcc
-The libgcc package contains GCC shared libraries for gcc.
-
-%package -n libgcc-atomic
-Summary: GNU C Library for atomic counter updates
-Group: System Environment/Libraries
-Requires: libgcc = %{version}-%{release}
-%description -n libgcc-atomic
-The libgcc package contains GCC shared libraries for atomic counter updates.
-
-%package -n libgcc-devel
-Summary: GNU C Library
-Group: Development/Libraries
-Requires: libgcc = %{version}-%{release}
-%description -n libgcc-devel
-The libgcc package contains GCC shared libraries for gcc .
-This package contains development headers and static library for libgcc.
-
-%package -n libstdc++
-Summary: GNU C Library
-Group: System Environment/Libraries
-Requires: libgcc = %{version}-%{release}
-%description -n libstdc++
-This package contains the GCC Standard C++ Library v3, an ongoing project to implement the ISO/IEC 14882:1998 Standard C++ library.
-
-%package -n libstdc++-devel
-Summary: GNU C Library
-Group: Development/Libraries
-Requires: libstdc++ = %{version}-%{release}
-%description -n libstdc++-devel
-This is the GNU implementation of the standard C++ libraries.
-This package includes the headers files and libraries needed for C++ development.
-
-%package -n libgomp
-Summary: GNU C Library
-Group: System Environment/Libraries
-%description -n libgomp
-An implementation of OpenMP for the C, C++, and Fortran 95 compilers in the GNU Compiler Collection.
-
-%package -n libgomp-devel
-Summary: Development headers and static library for libgomp
-Group: Development/Libraries
-Requires: libgomp = %{version}-%{release}
-%description -n libgomp-devel
-An implementation of OpenMP for the C, C++, and Fortran 95 compilers in the GNU Compiler Collection.
-This package contains development headers and static library for libgomp
-
-%prep
-%setup -q
-%patch0 -p1
-
-# deactivate FORTIFY_SOURCE=2 from hardening
-sed -i '/*cpp:/s/^/# /' `dirname $(gcc --print-libgcc-file-name)`/../specs
-sed -i '/Ofast:-D_FORTIFY_SOURCE=2/s/^/# /' `dirname $(gcc --print-libgcc-file-name)`/../specs
-# deactivate no-pie for gcc binaries
-sed -i '/^NO_PIE_CFLAGS = /s/@NO_PIE_CFLAGS@//' gcc/Makefile.in
-
-install -vdm 755 ../gcc-build
-%build
-
-export glibcxx_cv_c99_math_cxx98=yes glibcxx_cv_c99_math_cxx11=yes
-
-./contrib/download_prerequisites
-cd ../gcc-build
-SED=sed \
-../%{name}-%{version}/configure \
- --prefix=%{_prefix} \
- --enable-shared \
- --enable-threads=posix \
- --enable-__cxa_atexit \
- --enable-clocale=gnu \
- --enable-languages=c,c++,fortran\
- --disable-multilib \
- --disable-bootstrap \
- --enable-linker-build-id \
- --enable-plugin \
- --with-system-zlib
-# --disable-silent-rules
-make %{?_smp_mflags}
-%install
-pushd ../gcc-build
-make %{?_smp_mflags} DESTDIR=%{buildroot} install
-install -vdm 755 %{buildroot}/%_lib
-ln -sv %{_bindir}/cpp %{buildroot}/%{_lib}
-ln -sv gcc %{buildroot}%{_bindir}/cc
-install -vdm 755 %{buildroot}%{_datarootdir}/gdb/auto-load%{_lib}
-mv -v %{buildroot}%{_lib64dir}/*gdb.py %{buildroot}%{_datarootdir}/gdb/auto-load%{_lib}
-chmod 755 %{buildroot}/%{_lib64dir}/libgcc_s.so.1
-rm -rf %{buildroot}%{_infodir}
-popd
-%find_lang %{name} --all-name
-
-%check
-ulimit -s 32768
-# deactivate PCH tests is ASLR is on (due to bug in pch)
-test `cat /proc/sys/kernel/randomize_va_space` -ne 0 && rm gcc/testsuite/gcc.dg/pch/pch.exp
-# deactivate security hardening for tests
-rm -f $(dirname $(gcc -print-libgcc-file-name))/../specs
-# run only gcc tests
-cd ../gcc-build/gcc
-make %{?_smp_mflags} check-gcc
-# Only 1 FAIL is OK
-[ `grep ^FAIL testsuite/gcc/gcc.sum | wc -l` -ne 1 -o `grep ^XPASS testsuite/gcc/gcc.sum | wc -l` -ne 0 ] && exit 1 ||:
-[ `grep "^FAIL: gcc.dg/cpp/trad/include.c (test for excess errors)" testsuite/gcc/gcc.sum | wc -l` -ne 1 ] && exit 1 ||:
-
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
-
-%files -f %{name}.lang
-%defattr(-,root,root)
-%{_lib}/cpp
-# Executables
-%exclude %{_bindir}/*gfortran
-%{_bindir}/*
-# Libraries
-%{_lib64dir}/*
-%ifarch x86_64
-%exclude %{_libexecdir}/gcc/x86_64-pc-linux-gnu/%{version}/f951
-%endif
-%ifarch aarch64
-%exclude %{_libexecdir}/gcc/aarch64-unknown-linux-gnu/%{version}/f951
-%endif
-%{_libdir}/gcc/*
-# Library executables
-%{_libexecdir}/gcc/*
-# Man pages
-%{_mandir}/man1/gcov.1.gz
-%{_mandir}/man1/gcov-dump.1.gz
-%{_mandir}/man1/gcov-tool.1.gz
-%{_mandir}/man1/gcc.1.gz
-%{_mandir}/man1/g++.1.gz
-%{_mandir}/man1/cpp.1.gz
-%{_mandir}/man7/*.gz
-%{_datadir}/gdb/*
-
-%exclude %{_lib64dir}/libgcc*
-%exclude %{_lib64dir}/libstdc++*
-%exclude %{_lib64dir}/libgomp*
-
-%files -n gfortran
-%defattr(-,root,root)
-%{_bindir}/*gfortran
-%{_mandir}/man1/gfortran.1.gz
-%ifarch x86_64
-%{_libexecdir}/gcc/x86_64-pc-linux-gnu/%{version}/f951
-%endif
-%ifarch aarch64
-%{_libexecdir}/gcc/aarch64-unknown-linux-gnu/%{version}/f951
-%endif
-
-%files -n libgcc
-%defattr(-,root,root)
-%{_lib64dir}/libgcc_s.so.*
-
-%files -n libgcc-atomic
-%defattr(-,root,root)
-%{_lib64dir}/libatomic.so*
-
-%files -n libgcc-devel
-%defattr(-,root,root)
-%{_lib64dir}/libgcc_s.so
-
-
-%files -n libstdc++
-%defattr(-,root,root)
-%{_lib64dir}/libstdc++.so.*
-%dir %{_datarootdir}/gcc-%{version}/python/libstdcxx
-%{_datarootdir}/gcc-%{version}/python/libstdcxx/*
-
-%files -n libstdc++-devel
-%defattr(-,root,root)
-%{_lib64dir}/libstdc++.so
-%{_lib64dir}/libstdc++.la
-
-%{_includedir}/c++/*
-
-%files -n libgomp
-%defattr(-,root,root)
-%{_lib64dir}/libgomp*.so.*
-
-%files -n libgomp-devel
-%defattr(-,root,root)
-%{_lib64dir}/libgomp.a
-%{_lib64dir}/libgomp.la
-%{_lib64dir}/libgomp.so
-%{_lib64dir}/libgomp.spec
-
-%changelog
-* Fri Sep 14 2018 Srivatsa S. Bhat 7.3.0-2
-- Use download_prerequisites script to statically link gcc with
-- specific versions of dependent libraries.
-* Wed Aug 01 2018 Srivatsa S. Bhat 7.3.0-1
-- Update to version 7.3.0 to get retpoline support.
-* Tue Nov 14 2017 Alexey Makhalov 6.3.0-7
-- Aarch64 support
-* Mon Oct 02 2017 Alexey Makhalov 6.3.0-6
-- Added smp_mflags for parallel build
-* Mon Sep 25 2017 Alexey Makhalov 6.3.0-5
-- Enable elfdeps for libgcc_s to generate libgcc_s.so.1(*)(64bit) provides
-* Mon Aug 28 2017 Alexey Makhalov 6.3.0-4
-- Fix makecheck
-* Tue Aug 15 2017 Alexey Makhalov 6.3.0-3
-- Fix compilation issue for glibc-2.26
-* Tue Aug 15 2017 Alexey Makhalov 6.3.0-2
-- Improve make check
-* Thu Mar 9 2017 Alexey Makhalov 6.3.0-1
-- Update version to 6.3
-* Thu Mar 02 2017 Xiaolin Li 5.3.0-6
-- Enabled fortran.
-* Wed Feb 22 2017 Alexey Makhalov 5.3.0-5
-- Added new plugin entry point: PLUGIN_TYPE_CAST (.patch)
-* Thu Sep 8 2016 Alexey Makhalov 5.3.0-4
-- Enable plugins and linker build id.
-* Tue May 24 2016 Priyesh Padmavilasom 5.3.0-3
-- GA - Bump release of all rpms
-* Tue May 17 2016 Anish Swaminathan 5.3.0-2
-- Change package dependencies
-* Mon Mar 28 2016 Alexey Makhalov 5.3.0-1
-- Update version to 5.3
-* Tue Nov 10 2015 Xiaolin Li 4.8.2-6
-- Handled locale files with macro find_lang
-* Mon Nov 02 2015 Vinay Kulkarni 4.8.2-5
-- Put libatomic.so into its own package.
-* Wed May 20 2015 Touseef Liaqat 4.8.2-4
-- Updated group.
-* Mon May 18 2015 Touseef Liaqat 4.8.2-3
-- Update according to UsrMove.
-* Fri May 15 2015 Divya Thaluru 4.8.2-2
-- Packaging .la files
-* Tue Apr 01 2014 baho-utot 4.8.2-1
-- Initial build. First version
diff --git a/PUBLISHRPMS_SPECS/openjdk10/build-with-latest-make.patch b/PUBLISHRPMS_SPECS/openjdk10/build-with-latest-make.patch
deleted file mode 100644
index 9618cefd32..0000000000
--- a/PUBLISHRPMS_SPECS/openjdk10/build-with-latest-make.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From af5c725b8109ce83fc04ef0f8bf6aaf0b50c0441 Mon Sep 17 00:00:00 2001
-From: Magnus Ihse Bursie
-Date: Thu, 30 Jan 2020 11:08:30 +0100
-Subject: [PATCH] 8237879: make 4.3 breaks build
-
-Reviewed-by: erikj, tbell
----
- make/common/MakeBase.gmk | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/make/common/MakeBase.gmk b/make/common/MakeBase.gmk
-index 8de519fc606..221e9455960 100644
---- a/make/common/MakeBase.gmk
-+++ b/make/common/MakeBase.gmk
-@@ -525,15 +525,16 @@ DependOnVariableFileName = \
- # Param 2 - (optional) name of file to store value in
- DependOnVariableHelper = \
- $(strip \
-- $(eval -include $(call DependOnVariableFileName, $1, $2)) \
-+ $(eval $1_filename := $(call DependOnVariableFileName, $1, $2)) \
-+ $(if $(wildcard $($1_filename)), $(eval include $($1_filename))) \
- $(if $(call equals, $(strip $($1)), $(strip $($1_old))),,\
-- $(call MakeDir, $(dir $(call DependOnVariableFileName, $1, $2))) \
-+ $(call MakeDir, $(dir $($1_filename))) \
- $(if $(findstring $(LOG_LEVEL), trace), \
- $(info NewVariable $1: >$(strip $($1))<) \
- $(info OldVariable $1: >$(strip $($1_old))<)) \
- $(call WriteFile, $1_old:=$(call DoubleDollar,$(call EscapeHash,$($1))), \
-- $(call DependOnVariableFileName, $1, $2))) \
-- $(call DependOnVariableFileName, $1, $2) \
-+ $($1_filename))) \
-+ $($1_filename) \
- )
-
- # Main macro
diff --git a/PUBLISHRPMS_SPECS/openjdk10/openjdk10.spec b/PUBLISHRPMS_SPECS/openjdk10/openjdk10.spec
deleted file mode 100644
index 157f451eaa..0000000000
--- a/PUBLISHRPMS_SPECS/openjdk10/openjdk10.spec
+++ /dev/null
@@ -1,253 +0,0 @@
-%define _use_internal_dependency_generator 0
-%global security_hardening none
-%define jdk_major_version 1.10.0
-%define subversion 23
-Summary: OpenJDK
-Name: openjdk10
-Version: 1.10.0.23
-Release: 7%{?dist}
-License: GNU GPL
-URL: https://openjdk.java.net
-Group: Development/Tools
-Vendor: VMware, Inc.
-Distribution: Photon
-Source0: http://www.java.net/download/openjdk/jdk10/jdk10/openjdk-%{version}.tar.gz
-%define sha1 openjdk-1.10.0=d0b6193fd1687b23fb7553b62d32f0e7e0527ea8
-Patch0: build-with-latest-make.patch
-BuildArch: x86_64
-BuildRequires: pcre-devel
-BuildRequires: which
-BuildRequires: zip
-BuildRequires: unzip
-BuildRequires: zlib-devel
-BuildRequires: ca-certificates
-BuildRequires: chkconfig
-BuildRequires: fontconfig-devel freetype2-devel glib-devel harfbuzz-devel
-Requires: openjre10 = %{version}-%{release}
-Requires: chkconfig
-Obsoletes: openjdk <= %{version}
-AutoReqProv: no
-%define ExtraBuildRequires icu-devel, cups, cups-devel, xorg-proto-devel, libXtst, libXtst-devel, libXfixes, libXfixes-devel, libXi, libXi-devel, openjdk, openjre, icu, alsa-lib, alsa-lib-devel, xcb-proto, libXdmcp-devel, libXau-devel, util-macros, xtrans, libxcb-devel, proto, libXdmcp, libxcb, libXau, xtrans-devel, libX11, libX11-devel, libXext, libXext-devel, libICE-devel, libSM, libICE, libSM-devel, libXt, libXmu, libXt-devel, libXmu-devel, libXrender, libXrender-devel
-%define bootstrapjdkversion 1.8.0.112
-
-%description
-The OpenJDK package installs java class library and javac java compiler.
-
-%package -n openjre10
-Summary: Java runtime environment
-AutoReqProv: no
-Obsoletes: openjre <= %{version}
-Requires: chkconfig
-Requires: libstdc++
-%description -n openjre10
-It contains the libraries files for Java runtime environment
-
-%package doc
-Summary: Documentation and demo applications for openjdk
-Group: Development/Languages/Java
-Obsoletes: openjdk-doc <= %{version}
-Requires: %{name} = %{version}-%{release}
-%description doc
-It contains the documentation and demo applications for openjdk
-
-%package src
-Summary: OpenJDK Java classes for developers
-Group: Development/Languages/Java
-Obsoletes: openjdk-src <= %{version}
-Requires: %{name} = %{version}-%{release}
-%description src
-This package provides the runtime library class sources.
-
-%prep -p exit
-# Using autosetup is not feasible
-%setup -qn openjdk-%{version}
-%patch0 -p1
-
-%build
-unset JAVA_HOME &&
-ENABLE_HEADLESS_ONLY="true" &&
-sh configure \
- --with-target-bits=64 \
- --with-boot-jdk=/var/opt/OpenJDK-%bootstrapjdkversion-bin \
- --enable-headless-only \
- --with-extra-cxxflags="-Wno-error -std=gnu++98 -fno-delete-null-pointer-checks -fno-lifetime-dse" \
- --with-extra-cflags="-fno-delete-null-pointer-checks -Wno-error -fno-lifetime-dse -fcommon" \
- --with-freetype-include=/usr/include/freetype2 \
- --with-freetype-lib=/usr/lib \
- --with-stdc++lib=dynamic \
- --disable-warnings-as-errors
-
-mkdir /usr/share/java -p
-make \
- DISABLE_HOTSPOT_OS_VERSION_CHECK=ok \
- SCTP_WERROR= \
- BUILD_HEADLESS_ONLY=1 \
- OPENJDK_TARGET_OS=linux \
- STRIP_POLICY=no_strip \
- POST_STRIP_CMD="" \
- LOG=trace
-
-%install
-unset JAVA_HOME &&
-# make doesn't support _smp_mflags
-make install
-
-install -vdm755 %{buildroot}%{_libdir}/jvm/OpenJDK-%{jdk_major_version}
-chown -R root:root %{buildroot}%{_libdir}/jvm/OpenJDK-%{jdk_major_version}
-install -vdm755 %{buildroot}%{_bindir}
-mv /usr/local/jvm/openjdk-10-internal/* %{buildroot}%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/
-mv build/linux-x86_64-normal-server-release/images/jre %{buildroot}%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/
-cp README LICENSE ASSEMBLY_EXCEPTION %{buildroot}%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/
-
-%post
-alternatives --install %{_bindir}/javac javac %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javac 2000 \
- --slave %{_bindir}/appletviewer appletviewer %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/appletviewer \
- --slave %{_bindir}/idlj idlj %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/idlj \
- --slave %{_bindir}/jaotc jaotc %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jaotc \
- --slave %{_bindir}/jar jar %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jar \
- --slave %{_bindir}/jarsigner jarsigner %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jarsigner \
- --slave %{_bindir}/jhsdb jhsdb %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jhsdb \
- --slave %{_bindir}/jimage jimage %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jimage \
- --slave %{_bindir}/jlink jlink %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jlink \
- --slave %{_bindir}/jmod jmod %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jmod \
- --slave %{_bindir}/javadoc javadoc %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javadoc \
- --slave %{_bindir}/javah javah %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javah \
- --slave %{_bindir}/javap javap %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javap \
- --slave %{_bindir}/jcmd jcmd %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jcmd \
- --slave %{_bindir}/jdeprscan jdeprscan %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdeprscan \
- --slave %{_bindir}/jconsole jconsole %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jconsole \
- --slave %{_bindir}/jdb jdb %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdb \
- --slave %{_bindir}/jdeps jdeps %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdeps \
- --slave %{_bindir}/jinfo jinfo %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jinfo \
- --slave %{_bindir}/jmap jmap %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jmap \
- --slave %{_bindir}/jps jps %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jps \
- --slave %{_bindir}/jrunscript jrunscript %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jrunscript \
- --slave %{_bindir}/jstack jstack %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstack \
- --slave %{_bindir}/jstat jstat %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstat \
- --slave %{_bindir}/jstatd jstatd %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstatd \
- --slave %{_bindir}/rmic rmic %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/rmic \
- --slave %{_bindir}/schemagen schemagen %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/schemagen \
- --slave %{_bindir}/serialver serialver %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/serialver \
- --slave %{_bindir}/wsgen wsgen %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/wsgen \
- --slave %{_bindir}/wsimport wsimport %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/wsimport \
- --slave %{_bindir}/xjc xjc %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/xjc
-/sbin/ldconfig
-
-%post -n openjre10
-alternatives --install %{_bindir}/java java %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/java 2000 \
- --slave %{_libdir}/jvm/jre jre %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre \
- --slave %{_bindir}/jjs jjs %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/jjs \
- --slave %{_bindir}/keytool keytool %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/keytool \
- --slave %{_bindir}/orbd orbd %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/orbd \
- --slave %{_bindir}/pack200 pack200 %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/pack200 \
- --slave %{_bindir}/rmid rmid %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/rmid \
- --slave %{_bindir}/rmiregistry rmiregistry %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/rmiregistry \
- --slave %{_bindir}/servertool servertool %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/servertool \
- --slave %{_bindir}/tnameserv tnameserv %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/tnameserv \
- --slave %{_bindir}/unpack200 unpack200 %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/unpack200
-/sbin/ldconfig
-
-%postun
-# Do alternative remove only in case of uninstall
-if [ $1 -eq 0 ]
-then
- alternatives --remove javac %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javac
-fi
-/sbin/ldconfig
-
-%postun -n openjre10
-# Do alternative remove only in case of uninstall
-if [ $1 -eq 0 ]
-then
- alternatives --remove java %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/bin/java
-fi
-/sbin/ldconfig
-
-%clean
-rm -rf %{buildroot}/*
-
-%files
-%defattr(-,root,root)
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/ASSEMBLY_EXCEPTION
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/LICENSE
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/README
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/release
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/lib
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/include/
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/idlj
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jaotc
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jar
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jhsdb
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jimage
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jarsigner
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdeprscan
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javac
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javadoc
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javah
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javap
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jcmd
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jconsole
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdb
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdeps
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jinfo
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jlink
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jmod
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jmap
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jps
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jshell
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jrunscript
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstack
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstat
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstatd
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/rmic
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/schemagen
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/serialver
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/wsgen
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/wsimport
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/xjc
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/conf
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jmods
-
-%files -n openjre10
-%defattr(-,root,root)
-%dir %{_libdir}/jvm/OpenJDK-%{jdk_major_version}
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jre/
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/java
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/keytool
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/orbd
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/pack200
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jjs
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/rmid
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/rmiregistry
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/servertool
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/tnameserv
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/unpack200
-
-%files doc
-%defattr(-,root,root)
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/man/
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/legal/
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/demo
-
-%files src
-%defattr(-,root,root)
-%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/lib/src.zip
-
-%changelog
-* Thu Jan 14 2021 Alexey Makhalov 1.10.0.23-7
-- GCC-10 support.
-* Mon Sep 14 2020 Prashant S Chauhan 1.10.0.23-6
-- Fix build issue with make-4.3
-* Tue Aug 11 2020 Ankit Jain 1.10.0.23-5
-- Added a check in %postun to avoid alternatives --remove
-- after new version is installed.
-- Do alternative remove only in case of uninstall
-* Thu Sep 05 2019 Ankit Jain 1.10.0.23-4
-- Divided version:majorversion+subversion to remove specific
-- version java dependency from other packages
-* Mon Nov 19 2018 Ajay Kaher 1.10.0.23-3
-- Add BuildArch
-* Mon Oct 29 2018 Alexey Makhalov 1.10.0.23-2
-- Use ExtraBuildRequires
-* Mon Apr 23 2018 Harish Udaiya Kumar 1.10.0.23-1
-- Initial build. First version
diff --git a/PUBLISHRPMS_SPECS/python2/CVE-2019-17514.patch b/PUBLISHRPMS_SPECS/python2/CVE-2019-17514.patch
deleted file mode 100644
index 84bb07017b..0000000000
--- a/PUBLISHRPMS_SPECS/python2/CVE-2019-17514.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From 5cffb1ed6a7f5afe74e4384d59f1670be29a7930 Mon Sep 17 00:00:00 2001
-From: elena
-Date: Tue, 24 Apr 2018 13:44:30 +0300
-Subject: [PATCH] Explain that the orderness of the result is system-dependant
-
-
-
---- a/Doc/library/glob.rst_org 2019-10-31 10:11:19.177511543 +0000
-+++ b/Doc/library/glob.rst 2019-10-31 10:12:07.145513846 +0000
-@@ -31,7 +31,8 @@ For example, ``'[?]'`` matches the chara
- a string containing a path specification. *pathname* can be either absolute
- (like :file:`/usr/src/Python-1.5/Makefile`) or relative (like
- :file:`../../Tools/\*/\*.gif`), and can contain shell-style wildcards. Broken
-- symlinks are included in the results (as in the shell).
-+ symlinks are included in the results (as in the shell). Whether or not the
-+ results are sorted depends on the file system.
-
-
- .. function:: iglob(pathname)
-
diff --git a/PUBLISHRPMS_SPECS/python2/added-pyopenssl-ipaddress-certificate-validation.patch b/PUBLISHRPMS_SPECS/python2/added-pyopenssl-ipaddress-certificate-validation.patch
deleted file mode 100644
index e1eb13cb9f..0000000000
--- a/PUBLISHRPMS_SPECS/python2/added-pyopenssl-ipaddress-certificate-validation.patch
+++ /dev/null
@@ -1,55 +0,0 @@
---- a/Lib/ssl.py 2018-04-30 04:17:33.000000000 +0530
-+++ b/Lib/ssl.py 2018-08-17 05:48:06.389881269 +0530
-@@ -146,6 +146,11 @@ from socket import SOL_SOCKET, SO_TYPE
- import base64 # for DER-to-PEM translation
- import errno
- import warnings
-+try:
-+ from ipaddr import IPAddress
-+except ImportError:
-+ # ipaddr is missing. Make ip address cert match functionality to behave as before.
-+ def IPAddress(*_args): raise ValueError("Not supported")
-
- if _ssl.HAS_TLS_UNIQUE:
- CHANNEL_BINDING_TYPES = ['tls-unique']
-@@ -251,7 +250,15 @@ def _dnsname_match(dn, hostname, max_wil
- pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE)
- return pat.match(hostname)
-
-+def _ipaddress_match(ipname, host_ip):
-+ """Exact matching of IP addresses.
-
-+ RFC 6125 explicitly doesn't define an algorithm for this
-+ (section 1.7.2 - "Out of Scope").
-+ """
-+ # OpenSSL may add a trailing newline to a subjectAltName's IP address
-+ ip = IPAddress(ipname.rstrip())
-+ return ip == host_ip
- def match_hostname(cert, hostname):
- """Verify that *cert* (in decoded format as returned by
- SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125
-@@ -264,6 +271,13 @@ def match_hostname(cert, hostname):
- raise ValueError("empty or no certificate, match_hostname needs a "
- "SSL socket or SSL context with either "
- "CERT_OPTIONAL or CERT_REQUIRED")
-+
-+ try:
-+ host_ip = IPAddress(hostname)
-+ except ValueError:
-+ # Not an IP address (common case)
-+ host_ip = None
-+
- dnsnames = []
- san = cert.get('subjectAltName', ())
- for key, value in san:
-@@ -271,6 +285,10 @@ def match_hostname(cert, hostname):
- if _dnsname_match(value, hostname):
- return
- dnsnames.append(value)
-+ elif key == 'IP Address':
-+ if host_ip is not None and _ipaddress_match(value, host_ip):
-+ return
-+ dnsnames.append(value)
- if not dnsnames:
- # The subject is only checked when there is no dNSName entry
- # in subjectAltName
diff --git a/PUBLISHRPMS_SPECS/python2/cgi.patch b/PUBLISHRPMS_SPECS/python2/cgi.patch
deleted file mode 100644
index f0a4ee50b3..0000000000
--- a/PUBLISHRPMS_SPECS/python2/cgi.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/Lib/cgi.py 2014-06-29 19:05:24.000000000 -0700
-+++ b/Lib/cgi.py 2015-02-05 18:03:52.273922307 -0800
-@@ -1,13 +1,5 @@
--#! /usr/local/bin/python
-+#! /usr/bin/python
-
--# NOTE: the above "/usr/local/bin/python" is NOT a mistake. It is
--# intentionally NOT "/usr/bin/env python". On many systems
--# (e.g. Solaris), /usr/local/bin is not in $PATH as passed to CGI
--# scripts, and /usr/local/bin is the default directory where Python is
--# installed, so /usr/bin/env would be unable to find python. Granted,
--# binary installations by Linux vendors often install Python in
--# /usr/bin. So let those vendors patch cgi.py to match their choice
--# of installation.
-
- """Support module for CGI (Common Gateway Interface) scripts.
-
diff --git a/PUBLISHRPMS_SPECS/python2/python2-support-photon-platform.patch b/PUBLISHRPMS_SPECS/python2/python2-support-photon-platform.patch
deleted file mode 100644
index 7378e119c4..0000000000
--- a/PUBLISHRPMS_SPECS/python2/python2-support-photon-platform.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -rupr a/Lib/platform.py b/Lib/platform.py
---- a/Lib/platform.py 2015-12-05 11:47:01.000000000 -0800
-+++ b/Lib/platform.py 2017-01-20 16:39:55.628824665 -0800
-@@ -261,7 +261,7 @@ _release_version = re.compile(r'([^0-9]+
- _supported_dists = (
- 'SuSE', 'debian', 'fedora', 'redhat', 'centos',
- 'mandrake', 'mandriva', 'rocks', 'slackware', 'yellowdog', 'gentoo',
-- 'UnitedLinux', 'turbolinux')
-+ 'UnitedLinux', 'turbolinux', 'photon')
-
- def _parse_release_file(firstline):
-
diff --git a/PUBLISHRPMS_SPECS/python2/python2.spec b/PUBLISHRPMS_SPECS/python2/python2.spec
deleted file mode 100644
index 8c51b0a5e7..0000000000
--- a/PUBLISHRPMS_SPECS/python2/python2.spec
+++ /dev/null
@@ -1,370 +0,0 @@
-Summary: A high-level scripting language
-Name: python2
-Version: 2.7.18
-Release: 1%{?dist}
-License: PSF
-URL: http://www.python.org/
-Group: System Environment/Programming
-Vendor: VMware, Inc.
-Distribution: Photon
-Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
-%define sha1 Python=678d4cf483a1c92efd347ee8e1e79326dc82810b
-Patch0: cgi.patch
-Patch1: added-pyopenssl-ipaddress-certificate-validation.patch
-Patch2: python2-support-photon-platform.patch
-Patch3: CVE-2019-17514.patch
-BuildRequires: pkg-config >= 0.28
-BuildRequires: bzip2-devel
-BuildRequires: openssl-devel
-BuildRequires: expat-devel >= 2.1.0
-BuildRequires: libffi-devel >= 3.0.13
-BuildRequires: sqlite-devel
-BuildRequires: ncurses-devel
-BuildRequires: readline-devel
-# cross compilation requires native python2 installed
-%define BuildRequiresNative python2
-Requires: openssl
-Requires: python2-libs = %{version}-%{release}
-Provides: python-sqlite
-Provides: python(abi)
-Provides: /bin/python
-Provides: /bin/python2
-%if %{with_check}
-BuildRequires: iana-etc
-%endif
-
-%description
-The Python 2 package contains the Python development environment. It
-is useful for object-oriented programming, writing scripts,
-prototyping large programs or developing entire applications. This
-version is for backward compatibility with other dependent packages.
-
-%package libs
-Summary: The libraries for python runtime
-Group: Applications/System
-Requires: sqlite-libs
-Requires: expat >= 2.1.0
-Requires: libffi >= 3.0.13
-Requires: ncurses
-Requires: (coreutils or toybox)
-Requires: gdbm
-Requires: bzip2-libs
-%global __requires_exclude ^(/usr/bin/python|python\\(abi\\) = 2\\.7)$
-
-# Needed for ctypes, to load libraries, worked around for Live CDs size
-# Requires: binutils
-
-%description libs
-The python interpreter can be embedded into applications wanting to
-use python as an embedded scripting language. The python-libs package
-provides the libraries needed for this.
-
-%package -n python-xml
-Summary: XML libraries for python runtime
-Group: Applications/System
-Requires: python2-libs = %{version}-%{release}
-
-%description -n python-xml
-The python-xml package provides the libraries needed for XML manipulation.
-
-%package -n python-curses
-Summary: Python module interface for NCurses Library
-Group: Applications/System
-Requires: python2-libs = %{version}-%{release}
-Requires: ncurses
-
-%description -n python-curses
-The python-curses package provides interface for ncurses library.
-
-%package devel
-Summary: The libraries and header files needed for Python development.
-Group: Development/Libraries
-Requires: python2 = %{version}-%{release}
-Requires: expat-devel >= 2.1.0
-# Needed here because of the migration of Makefile from -devel to the main
-# package
-Conflicts: python2 < %{version}-%{release}
-
-%description devel
-The Python programming language's interpreter can be extended with
-dynamically loaded extensions and can be embedded in other programs.
-This package contains the header files and libraries needed to do
-these types of tasks.
-
-Install python-devel if you want to develop Python extensions. The
-python package will also need to be installed. You'll probably also
-want to install the python-docs package, which contains Python
-documentation.
-
-%package tools
-Summary: A collection of development tools included with Python.
-Group: Development/Tools
-Requires: python2 = %{version}-%{release}
-
-%description tools
-The Python package includes several development tools that are used
-to build python programs.
-
-%package test
-Summary: Regression tests package for Python.
-Group: Development/Tools
-Requires: python2 = %{version}-%{release}
-
-%description test
-The test package contains all regression tests for Python as well as the modules test.support and test.regrtest. test.support is used to enhance your tests while test.regrtest drives the testing suite.
-
-%prep
-%setup -q -n Python-%{version}
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-
-%build
-export OPT="${CFLAGS}"
-if [ %{_host} != %{_build} ]; then
- sed -i 's/\tPYTHONPATH/\t-PYTHONPATH/' Makefile.pre.in
- export ac_cv_buggy_getaddrinfo=no
- export ac_cv_file__dev_ptmx=yes
- export ac_cv_file__dev_ptc=no
-fi
-%configure \
- CFLAGS="%{optflags}" \
- CXXFLAGS="%{optflags}" \
- --enable-shared \
- --with-ssl \
- --with-system-expat \
- --with-system-ffi \
- --enable-unicode=ucs4 \
- --with-dbmliborder=gdbm:ndbm
-make %{?_smp_mflags}
-%install
-[ %{buildroot} != "/"] && rm -rf %{buildroot}/*
-make DESTDIR=%{buildroot} install
-chmod -v 755 %{buildroot}%{_libdir}/libpython2.7.so.1.0
-%{_fixperms} %{buildroot}/*
-
-# Remove unused stuff
-find $RPM_BUILD_ROOT/ -name "*~"|xargs rm -f
-find $RPM_BUILD_ROOT/ -name ".cvsignore"|xargs rm -f
-find . -name "*~"|xargs rm -f
-find . -name ".cvsignore"|xargs rm -f
-#zero length
-rm -f $RPM_BUILD_ROOT%{_libdir}/python2.7/site-packages/modulator/Templates/copyright
-rm -f $RPM_BUILD_ROOT%{_libdir}/python2.7/LICENSE.txt
-
-find %{buildroot}%{_libdir} -name '*.pyc' -delete
-find %{buildroot}%{_libdir} -name '*.pyo' -delete
-
-%post
-if [ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ]; then
-#if we are in chroot
- ln -sf /usr/bin/python2 /usr/bin/python
-elif [ ! -f "/usr/bin/python3" ]; then
- ln -sf /usr/bin/python2 /usr/bin/python
-else
-#if we are updating only python2, then
-#we should set python link to python3
-#as previously python was link to python2
- ln -sf /usr/bin/python3 /usr/bin/python
-fi
-/sbin/ldconfig
-
-%postun
-#if python3 is not present and we uninstall python2
-#we will delete the symlink
-if [ ! -f "/usr/bin/python3" ]; then
- if [ $1 -eq 0 ] ; then
- rm /usr/bin/python
- fi
-else
-#if we are downgrading/uninstalling python2,
-#and python3 is present. then
-#we should set python link to python3
- ln -sf /usr/bin/python3 /usr/bin/python
-fi
-/sbin/ldconfig
-
-%clean
-rm -rf %{buildroot}/*
-
-%check
-LANG=en_US.UTF-8 make %{?_smp_mflags} test
-
-%files
-%defattr(-, root, root)
-%doc LICENSE README
-%{_bindir}/pydoc*
-%{_bindir}/python*
-%{_mandir}/*/*
-
-%dir %{_libdir}/python2.7
-%dir %{_libdir}/python2.7/site-packages
-
-%exclude %{_libdir}/python2.7/bsddb/test
-%exclude %{_libdir}/python2.7/ctypes/test
-%exclude %{_libdir}/python2.7/distutils/tests
-%exclude %{_libdir}/python2.7/email/test
-%exclude %{_libdir}/python2.7/json/tests
-%exclude %{_libdir}/python2.7/sqlite3/test
-%exclude %{_libdir}/python2.7/idlelib/idle_test
-%exclude %{_libdir}/python2.7/test
-#%exclude %{_libdir}/python2.7/unittest
-%exclude %{_libdir}/python2.7/lib-dynload/_ctypes_test.so
-%ghost %{_bindir}/python
-
-%files libs
-%defattr(-,root,root)
-%doc LICENSE README
-/usr/lib/python2.7
-%{_libdir}/libpython2.7.so.*
-%exclude %{_libdir}/python2.7/bsddb/test
-%exclude %{_libdir}/python2.7/ctypes/test
-%exclude %{_libdir}/python2.7/distutils/tests
-%exclude %{_libdir}/python2.7/distutils/command/wininst*exe
-%exclude %{_libdir}/python2.7/email/test
-%exclude %{_libdir}/python2.7/json/tests
-%exclude %{_libdir}/python2.7/sqlite3/test
-%exclude %{_libdir}/python2.7/idlelib/idle_test
-%exclude %{_libdir}/python2.7/test
-%exclude %{_libdir}/python2.7/lib-dynload/_ctypes_test.so
-%exclude %{_libdir}/python2.7/config
-%exclude %{_libdir}/python2.7/config/*
-%exclude %{_libdir}/libpython2.7.so
-%exclude %{_libdir}/python2.7/xml
-%exclude %{_libdir}/python2.7/lib-dynload/pyexpat.so
-
-%files -n python-xml
-%{_libdir}/python2.7/xml
-%{_libdir}/python2.7/lib-dynload/pyexpat.so
-
-%files -n python-curses
-%{_libdir}/python2.7/curses
-%{_libdir}/python2.7/lib-dynload/_curses*.so
-
-%files devel
-%defattr(-,root,root)
-/usr/include/*
-%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
-%dir %{_libdir}/python2.7/config
-%{_libdir}/python2.7/config/*
-%exclude %{_libdir}/python2.7/config/python.o
-%{_libdir}/libpython2.7.so
-%{_libdir}/pkgconfig/python-2.7.pc
-%{_libdir}/pkgconfig/python.pc
-%{_libdir}/pkgconfig/python2.pc
-%exclude %{_bindir}/smtpd*.py*
-%exclude %{_bindir}/2to3*
-%exclude %{_bindir}/idle*
-
-%files tools
-%defattr(-,root,root,755)
-#%doc Tools/modulator/README.modulator
-#%{_libdir}/python2.7/lib2to3
-#%{_libdir}/python2.7/site-packages/modulator
-%{_bindir}/2to3*
-%exclude %{_bindir}/smtpd.py
-%exclude %{_bindir}/idle*
-
-%files test
-%{_libdir}/python2.7/test/*
-
-%changelog
-* Fri Jul 24 2020 Gerrit Photon 2.7.18-1
-- Automatic Version Bump
-* Sat Dec 07 2019 Tapas Kundu 2.7.17-1
-- Update to 2.7.17
-- Exclude /usr/bin/python
-- Link python to python2 if python3 doesnt exists
-- Fix make check
-* Tue Nov 26 2019 Alexey Makhalov 2.7.16-3
-- Cross compilation support
-* Tue Nov 05 2019 Tapas Kundu 2.7.16-2
-- Fix for CVE-2019-17514
-* Sun Oct 20 2019 Tapas Kundu 2.7.16-1
-- Updated to 2.7.16
-- Fix for CVE-2019-16935
-- Fix for CVE-2018-20852
-* Mon Sep 16 2019 Tapas Kundu 2.7.15-8
-- Fix for CVE-2019-16056
-* Wed May 22 2019 Tapas Kundu 2.7.15-7
-- Patched reworked changes for CVE-2019-9948
-- Patch for CVE-2019-9740
-- Fix for CVE-2019-10160
-* Thu Mar 28 2019 Tapas Kundu 2.7.15-6
-- Fix for CVE-2019-9948
-* Tue Mar 12 2019 Tapas Kundu 2.7.15-5
-- Added fix for CVE-2019-9636
-* Thu Jan 10 2019 Alexey Makhalov 2.7.15-4
-- Mode libpython2.7.so to python2-libs
-- Mass removal python2 dependency from python2-libs
-* Fri Dec 21 2018 Tapas Kundu 2.7.15-3
-- Fix for CVE-2018-14647
-* Mon Sep 17 2018 Dweep Advani 2.7.15-2
-- Remove vulnerable Windows installers from python-libs rpm
-* Mon Aug 20 2018 Dweep Advani 2.7.15-1
-- Update to version 2.7.15
-* Mon Dec 04 2017 Xiaolin Li 2.7.13-12
-- Fix CVE-2017-1000030
-* Mon Dec 04 2017 Xiaolin Li 2.7.13-11
-- Fix CVE-2017-1000158
-* Mon Sep 18 2017 Alexey Makhalov 2.7.13-10
-- Requires coreutils or toybox
-- Requires bzip2-libs
-* Fri Sep 15 2017 Bo Gan 2.7.13-9
-- Remove devpts mount in check
-* Mon Aug 28 2017 Chang Lee 2.7.13-8
-- Add %check with pty
-* Wed Jul 12 2017 Xiaolin Li 2.7.13-7
-- Add python2-test package.
-* Sun Jun 04 2017 Bo Gan 2.7.13-6
-- Fix dependency for libs
-* Tue May 16 2017 Kumar Kaushik 2.7.13-5
-- Fixing python issue 29188, backport random.c from 3.5 to 2.7.
-* Fri Apr 28 2017 Harish Udaiya 2.7.13-4
-- Excluded unwanted binaries from python2-tools.
-* Fri Apr 14 2017 Alexey Makhalov 2.7.13-3
-- Python2-devel requires expat-devel.
-* Fri Mar 24 2017 Xiaolin Li 2.7.13-2
-- Provides /bin/python2.
-* Wed Mar 22 2017 Divya Thaluru 2.7.13-1
-- Updated to version 2.7.13
-* Fri Jan 20 2017 Dheeraj Shetty 2.7.11-11
-- Added patch to support Photon OS
-* Wed Nov 16 2016 Alexey Makhalov 2.7.11-10
-- Use sqlite-{devel,libs}
-* Thu Oct 27 2016 Anish Swaminathan 2.7.11-9
-- Patch for CVE-2016-5636
-* Mon Oct 10 2016 ChangLee 2.7.11-8
-- Modified %check
-* Wed Sep 14 2016 Divya Thaluru 2.7.11-7
-- Improvised pyopenssl patch
-* Wed Sep 7 2016 Divya Thaluru 2.7.11-6
-- Added patch to python openssl to validate certificates by ipaddress
-* Mon Jun 20 2016 Divya Thaluru 2.7.11-5
-- Added stack-protector flag for ncurses module
-* Tue May 24 2016 Priyesh Padmavilasom 2.7.11-4
-- GA - Bump release of all rpms
-* Tue Apr 26 2016 Nick Shi 2.7.11-3
-- Adding readline module into python2-libs
-
-* Wed Apr 13 2016 Priyesh Padmavilasom 2.7.11-2
-- update python to require python-libs
-
-* Thu Jan 28 2016 Anish Swaminathan 2.7.11-1
-- Upgrade version
-
-* Fri Jan 22 2016 Divya Thaluru 2.7.9-5
-- Seperate python-curses package from python-libs package
-
-* Thu Oct 29 2015 Mahmoud Bassiouny 2.7.9-4
-- Seperate python-xml package from python-libs package
-
-* Fri Jun 19 2015 Alexey Makhalov 2.7.9-3
-- Provide /bin/python
-
-* Wed Jun 3 2015 Divya Thaluru 2.7.9-2
-- Adding coreutils package to run time required package
-
-* Mon Apr 6 2015 Divya Thaluru 2.7.9-1
-- Initial build. First version
diff --git a/README.md b/README.md
deleted file mode 100644
index 0efa5a91b1..0000000000
--- a/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-![Photon](http://storage.googleapis.com/project-photon/vmw-logo-photon.svg "VMware Photon")
-
-# Photon OS: Linux Container Host
-
-### Contents
-- [What is Photon OS](#what-is-photon-os)
-- [Getting Photon OS](#getting-photon-os)
-- [Getting Started](#getting-started)
-- [Contributing](#contributing)
-- [License](#license)
-- [Photon OS Resources](#photon-os-resources)
-
-## What is Photon OS?
-Photon OS™ is an open source Linux container host optimized for cloud-native applications, cloud platforms, and VMware infrastructure. Photon OS provides a secure run-time environment for efficiently running containers. Some of the key highlights of Photon OS are:
-
-- **Optimized for VMware hypervisor:** The Linux kernel is tuned for performance when Photon OS runs on VMware ESXi.
-
-- **Support for containers:** Photon OS includes the Docker daemon and works with container orchestration frameworks, such as Mesos and Kubernetes.
-
-- **Efficient lifecycle management:** Photon OS is easy to manage, patch, and update, using the [tdnf package manager](/~https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md#tiny-dnf-for-package-management) and the [Photon Management Daemon Next Gen (pmd-next-gen)](/~https://github.com/vmware/pmd-next-gen).
-
-- **Security hardened:** Photon OS provides secure and up-to-date kernel and other packages, and its policies are designed to govern the system securely.
-
-For an overview of Photon OS, see [https://vmware.github.io/photon/](https://vmware.github.io/photon/)
-
-## Getting Photon OS
-
-Photon OS binaries are available in a number of formats, including ISO, OVA and cloud images such as Amazon AMI, Google Cloud GCE image and Azure VHD.
-
-For download instructions and links to Photon OS binaries, go to the [Download Guide](/~https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
-
-*Photon OS 4.0 GA is here!*
---------------------------
-Photon OS 4.0 provides support for the Real Time flavor of kernel linux-rt, SELinux , installer improvements, PMD role management improvements and critical updates to OSS packages including linux kernel, systemd, and glibc.
-
-For an overview of changes, see [What's New in Photon OS 4.0](/~https://github.com/vmware/photon/wiki/What-is-New-in-Photon-OS-4.0).
-
-## Getting Started
-Begin your Photon OS journey by browsing our extensive guides on getting started in the [Photon OS Wiki](/~https://github.com/vmware/photon/wiki).
-
-## Contributing
-The Photon OS project team welcomes contributions from the community.
-
-If you wish to contribute code and you have not signed our Contributor License Agreement (CLA), our CLA-bot will take you through the process and update the issue when you open a [Pull Request](https://help.github.com/articles/creating-a-pull-request). If you have questions about the CLA process, see our CLA [FAQ](https://cla.vmware.com/faq) or contact us through the GitHub issue tracker.
-
-To help you get started making contributions to Photon OS, we have collected some helpful best practices in the [Contributing guidelines](/~https://github.com/vmware/photon/blob/master/contributing.md).
-
-Before you start to code, we recommend discussing your plans through a GitHub issue or discuss it first with the official project [maintainers](/~https://github.com/vmware/photon/blob/dev/AUTHORS.md) via the [#photon Slack Channel](https://vmwarecode.slack.com/messages/photon/), especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.
-
-## License
-The Photon OS ISO and OVA images are distributed under the [Photon OS EULA](/~https://github.com/vmware/photon/blob/master/EULA.txt).
-
-With the exception of the 'libtdnf' source code, Photon OS source code is distributed under GNU GPL v2. The 'libtdnf' source code is distributed under GNU LGPL v2.1. For more details, please refer to the [Photon OS Open Source License file](/~https://github.com/vmware/photon/blob/master/LICENSE.md).
-
-## Photon OS Resources
-
-- **Documentation**: The Photon OS [Documentation](https://vmware.github.io/photon/docs/) provides information about how to install, configure, and use VMware Photon OS™.
-- **Security Updates**: Visit [Security-Advisories](/~https://github.com/vmware/photon/wiki/Security-Advisories).
-- **Vagrant box**: An official Vagrant box is available on Hashicorp Atlas, to get started: `vagrant init vmware/photon`. A plugin to support Photon OS guests in Vagrant is available at [/~https://github.com/vmware/vagrant-guests-photon](/~https://github.com/vmware/vagrant-guests-photon). Some users have found that our Vagrant box requires VirtualBox 4.3 or later. If you have issues, please check your version.
diff --git a/SPECS/GConf/GConf.spec b/SPECS/GConf/GConf.spec
deleted file mode 100644
index 0f876eda4b..0000000000
--- a/SPECS/GConf/GConf.spec
+++ /dev/null
@@ -1,99 +0,0 @@
-Summary: configuration database system used by many GNOME applications
-Name: GConf
-Version: 3.2.6
-Release: 2%{?dist}
-License: LGPLv2+
-URL: http://gnome.org
-Group: System Environment/Libraries
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: http://ftp.gnome.org/pub/gnome/sources/%{name}/3.2/%{name}-%{version}.tar.xz
-%define sha512 %{name}=35f5f659f9d03f7531a7102adacbda0eb310d8a55a831c768c91a82e07dae21247726e00e0e411f63b1de9ade0f042ded572a3ea4a4b2ad3135231f344540b58
-
-BuildRequires: intltool
-BuildRequires: shadow
-BuildRequires: libxml2-devel
-BuildRequires: dbus-glib-devel
-BuildRequires: polkit-devel
-
-Requires: libxml2
-Requires: dbus-glib
-Requires: polkit
-
-Requires(post): grep
-
-%description
-The GConf package contains a configuration database system used by many GNOME applications.
-
-%package devel
-Summary: Header and development files
-Requires: %{name} = %{version}-%{release}
-Requires: libxml2-devel
-Requires: dbus-glib-devel
-Requires: polkit-devel
-
-%description devel
-It contains the libraries and header files to create applications
-
-%prep
-%autosetup -p1
-
-%build
-%configure \
- --disable-orbit \
- --enable-defaults-service \
- --disable-static
-
-%make_build
-
-%install
-%make_install %{?_smp_mflags}
-ln -s gconf.xml.defaults %{buildroot}%{_sysconfdir}/gconf/gconf.xml.system
-
-%post
-/sbin/ldconfig
-if [ $1 -gt 1 ]; then
- if ! fgrep -q gconf.xml.system %{_sysconfdir}/gconf/2/path; then
- sed -i -e 's@xml:readwrite:$(HOME)/.gconf@&\n\n# Location for system-wide settings.\nxml:readonly:/etc/gconf/gconf.xml.system@' %{_sysconfdir}/gconf/2/path
- fi
-fi
-
-%postun -p /sbin/ldconfig
-
-%check
-cd tests
-make %{?_smp_mflags}
-fns=$(find -name 'test*' -executable -maxdepth 1)
-for fn in $fns; do
- $fn || :
-done
-
-%clean
-rm -rf %{buildroot}/*
-
-%files
-%defattr(-,root,root)
-%{_bindir}
-%{_sysconfdir}/
-%{_libexecdir}/
-%{_libdir}/*.so.*
-%{_libdir}/GConf
-%{_libdir}/gio
-
-%files devel
-%defattr(-,root,root)
-%{_includedir}/*
-%{_libdir}/*.so
-%{_libdir}/pkgconfig/
-%{_datadir}
-
-%changelog
-* Wed Apr 19 2023 Ashwin Dayanand Kamat 3.2.6-2
-- Bump version as a part of libxml2 upgrade
-* Thu Dec 15 2022 Gerrit Photon 3.2.6-1
-- Automatic Version Bump
-* Wed Nov 15 2017 Harish Udaiya Kumar 3.2.5-2
-- Updated build requires
-* Thu Jun 4 2015 Alexey Makhalov 3.2.5-1
-- initial version
diff --git a/SPECS/ImageMagick/ImageMagick.spec b/SPECS/ImageMagick/ImageMagick.spec
deleted file mode 100644
index 261a51ff3e..0000000000
--- a/SPECS/ImageMagick/ImageMagick.spec
+++ /dev/null
@@ -1,189 +0,0 @@
-%global VER 7.1.0
-%global Patchlevel 47
-%global major_version 7
-
-Name: ImageMagick
-Version: 7.1.0.47
-Release: 4%{?dist}
-Summary: An X application for displaying and manipulating images
-Group: Development/Libraries
-Vendor: VMware, Inc.
-Distribution: Photon
-License: ImageMagick
-Url: http://www.imagemagick.org
-
-Source0: https://www.imagemagick.org/download/%{name}-%{VER}-%{Patchlevel}.tar.gz
-%define sha512 %{name}=dae53c80b1fec69e8a570e82553197e2a9f3b1d0dd9b7cdf30e2731e044a83bef82912a5d339c0470d1e41bdf343f2cbd97376d2ef986d33c05bc6c87a705d0d
-
-Requires: %{name}-libs = %{version}-%{release}
-Requires: libgomp
-Requires: bzip2-libs
-Requires: glibc
-Requires: zlib
-
-%description
-ImageMagick is an image display and manipulation tool for the X
-Window System. ImageMagick can read and write JPEG, TIFF, PNM, GIF,
-and Photo CD image formats. It can resize, rotate, sharpen, color
-reduce, or add special effects to an image, and when finished you can
-either save the completed work in the original format or a different
-one. ImageMagick also includes command line programs for creating
-animated or transparent .gifs, creating composite images, creating
-thumbnail images, and more.
-
-ImageMagick is one of your choices if you need a program to manipulate
-and display images. If you want to develop your own applications
-which use ImageMagick code or APIs, you need to install
-ImageMagick-devel as well.
-
-%package devel
-Summary: Library links and header files for ImageMagick app development
-Requires: pkg-config
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-ImageMagick-devel contains the library links and header files you'll
-need to develop ImageMagick applications. ImageMagick is an image
-manipulation program.
-
-If you want to create applications that will use ImageMagick code or
-APIs, you need to install ImageMagick-devel as well as ImageMagick.
-You do not need to install it if you just want to use ImageMagick,
-however.
-
-%package libs
-Summary: ImageMagick libraries to link with
-
-%description libs
-This packages contains a shared libraries to use within other applications.
-
-%package doc
-Summary: ImageMagick html documentation
-
-%description doc
-ImageMagick documentation, this package contains usage (for the
-commandline tools) and API (for the libraries) documentation in html format.
-Note this documentation can also be found on the ImageMagick website:
-http://www.imagemagick.org/
-
-%package c++
-Summary: ImageMagick Magick++ library (C++ bindings)
-Requires: %{name}-libs = %{version}-%{release}
-Requires: libstdc++
-Requires: libgomp
-Requires: bzip2-libs
-Requires: glibc
-Requires: zlib
-
-%description c++
-This package contains the Magick++ library, a C++ binding to the ImageMagick
-graphics manipulation library.
-
-Install ImageMagick-c++ if you want to use any applications that use Magick++.
-
-%package c++-devel
-Summary: C++ bindings for the ImageMagick library
-Requires: %{name}-libs = %{version}-%{release}
-Requires: %{name}-devel = %{version}-%{release}
-Requires: pkg-config
-
-%description c++-devel
-ImageMagick-devel contains the static libraries and header files you'll
-need to develop ImageMagick applications using the Magick++ C++ bindings.
-ImageMagick is an image manipulation program.
-
-If you want to create applications that will use Magick++ code
-or APIs, you'll need to install ImageMagick-c++-devel, ImageMagick-devel and
-ImageMagick.
-You don't need to install it if you just want to use ImageMagick, or if you
-want to develop/compile applications using the ImageMagick C interface,
-however.
-
-%prep
-%autosetup -p1 -n %{name}-%{VER}-%{Patchlevel}
-
-%build
-%configure
-%make_build
-
-%install
-%make_install %{?_smp_mflags}
-
-rm %{buildroot}%{_libdir}/*.a
-
-%if 0%{?with_check}
-%check
-export LD_LIBRARY_PATH=%{buildroot}/%{_libdir}
-%make_build check
-rm PerlMagick/demo/Generic.ttf
-%endif
-
-%post libs -p /sbin/ldconfig
-%postun libs -p /sbin/ldconfig
-
-%files
-%defattr(-,root,root)
-%{_bindir}/[a-z]*
-%{_mandir}/man[145]/[a-z]*
-%{_mandir}/man1/%{name}.*
-
-%files doc
-%defattr(-,root,root)
-%doc %{_datadir}/doc/%{name}-%{major_version}/*
-
-%files libs
-%defattr(-,root,root)
-%{_libdir}/libMagickCore-%{major_version}.Q16HDRI.so.10*
-%{_libdir}/libMagickWand-%{major_version}.Q16HDRI.so.10*
-%{_libdir}/%{name}-%{VER}
-%{_datadir}/%{name}-%{major_version}
-%dir %{_sysconfdir}/%{name}-%{major_version}
-%config(noreplace) %{_sysconfdir}/%{name}-%{major_version}/*.xml
-
-%files c++-devel
-%defattr(-,root,root)
-%{_bindir}/Magick++-config
-%{_includedir}/%{name}-%{major_version}/Magick++
-%{_includedir}/%{name}-%{major_version}/Magick++.h
-%{_libdir}/libMagick++-%{major_version}.Q16HDRI.so
-%{_libdir}/pkgconfig/Magick++.pc
-%{_libdir}/pkgconfig/Magick++-%{major_version}.Q16HDRI.pc
-%{_mandir}/man1/Magick++-config.*
-
-%files devel
-%defattr(-,root,root)
-%{_bindir}/MagickCore-config
-%{_bindir}/MagickWand-config
-%{_libdir}/libMagickCore-%{major_version}.Q16HDRI.so
-%{_libdir}/libMagickWand-%{major_version}.Q16HDRI.so
-%{_libdir}/pkgconfig/MagickCore.pc
-%{_libdir}/pkgconfig/MagickCore-%{major_version}.Q16HDRI.pc
-%{_libdir}/pkgconfig/ImageMagick.pc
-%{_libdir}/pkgconfig/ImageMagick-%{major_version}.Q16HDRI.pc
-%{_libdir}/pkgconfig/MagickWand.pc
-%{_libdir}/pkgconfig/MagickWand-%{major_version}.Q16HDRI.pc
-%dir %{_includedir}/%{name}-%{major_version}
-%{_includedir}/%{name}-%{major_version}/MagickCore/*
-%{_includedir}/%{name}-%{major_version}/MagickWand/*
-%{_mandir}/man1/MagickCore-config.*
-%{_mandir}/man1/MagickWand-config.*
-
-%files c++
-%defattr(-,root,root)
-%{_libdir}/libMagick++-%{major_version}.Q16HDRI.so.5*
-
-%changelog
-* Tue Jun 06 2023 Shreenidhi Shedi 7.1.0.47-4
-- Fix spec issues
-* Fri May 05 2023 Shreenidhi Shedi 7.1.0.47-3
-- Remove _isa entries
-* Fri Apr 14 2023 Shreenidhi Shedi 7.1.0.47-2
-- Bump version as a part of zlib upgrade
-* Mon Aug 29 2022 Shivani Agarwal 7.1.0.47-1
-- Upgrade version to 7.1.0.47
-* Thu May 26 2022 Gerrit Photon 7.1.0.35-1
-- Automatic Version Bump
-* Tue May 17 2022 Shivani Agarwal 7.1.0.19-1
-- Fix for CVE-2022-1114
-* Tue Jun 22 2021 Piyush Gupta 7.1.0.1-1
-- Initial build for Photon.
diff --git a/SPECS/LICENSE.EXCEPTIONS b/SPECS/LICENSE.EXCEPTIONS
deleted file mode 100644
index 4d090275fc..0000000000
--- a/SPECS/LICENSE.EXCEPTIONS
+++ /dev/null
@@ -1,60 +0,0 @@
-SPEC files that are derived from LFS sources:
-ca-certificates
-bash
-filesystem
-vim
-tzdata
-shadow
-ntp
-unzip
-docbook-xml
-docbook-xsl
-
-SPEC files that are derived from LFS-RPM sources:
-ncurses
-readline
-
-SPEC files that are derived from package sources:
-haveged
-wavefront-proxy
-openipmi
-xinted
-python-iniparse
-
-SPEC files that are derived from Fedora SPEC files:
-c-ares
-chkconfig :
-initscripts :
-openvswitch :
-oniguruma :
-elfutils :
-zsh
-perl-DBI
-perl-DBIx
-perl-exporter-tiny :
-perl-json-xs
-perl-libintl
-perl-list-moreutils
-perl-module-build
-perl-module-install
-perl-module-scandeps
-perl-object-accessor
-perl-types-serializer
-perl-www-curl
-perl-yaml
-perl-yaml-tiny
-tcsh
-tcl
-python-pbr
-pypam
-pyyaml
-mariadb
-lvm2
-systemtap
-
-SPEC files that are derived from OpenSuse SPEC files:
-python-jinja2
-acl
-
-SPEC files that are derived from Centos SPEC files:
-libaio
diff --git a/SPECS/LICENSE.md b/SPECS/LICENSE.md
deleted file mode 100644
index 8131f448c5..0000000000
--- a/SPECS/LICENSE.md
+++ /dev/null
@@ -1,162 +0,0 @@
-PhotonOS v3.0 (and greater versions) Copyright © VMware, Inc. 2014-2018
-
-The files of PhotonOS version 3.0 (and greater versions) are licensed under the terms of the Apache License v2.0 or alternatively under the terms of the GNU General Public License (GPL) v2 UNLESS otherwise noted at the beginning of the file or in an EXCEPTIONS file present in a directory subtree declares a separate license.
-
-The terms of the Apache License v2.0 and GPL v2 licenses are set forth below.
-
-Apache License v2.0
-
-## **Apache License, Version 2.0**
-
-## January 2004
-
-[http://www.apache.org/licenses/](http://www.apache.org/licenses/)LICENSE-2.0
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-**1. Definitions**.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"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.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"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.
-
-"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).
-
-"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.
-
-"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."
-
-"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.
-
-**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.
-
-**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.
-
-**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:
-
-1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
-2. You must cause any modified files to carry prominent notices stating that You changed the files; and
-3. 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
-4. 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.
-
-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.
-
-**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.
-
-**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.
-
-**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.
-
-**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.
-
-**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.
-
-END OF TERMS AND CONDITIONS
-
-# **APPENDIX: How to apply the Apache License to your work**
-
-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.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- 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.
-
-GPL v2
-
-### **GNU GENERAL PUBLIC LICENSE**
-
-Version 2, June 1991
-
-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.
-
-### **TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION**
-
-1. **1.** 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. **2.** 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.
-
-1. **3.** 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 chargeto 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.
-
-1. **4.** 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:
-
-1. **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,
-
-1. **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,
-
-1. **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.
-
-1. **5.** 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.
-
-1. **6.** 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.
-
-1. **7.** 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.
-
-1. **8.** 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.
diff --git a/SPECS/Linux-PAM/Linux-PAM.spec b/SPECS/Linux-PAM/Linux-PAM.spec
deleted file mode 100644
index 411a938129..0000000000
--- a/SPECS/Linux-PAM/Linux-PAM.spec
+++ /dev/null
@@ -1,176 +0,0 @@
-Summary: Linux Pluggable Authentication Modules
-Name: Linux-PAM
-Version: 1.5.3
-Release: 1%{?dist}
-License: BSD and GPLv2+
-URL: /~https://github.com/linux-pam/linux-pam
-Group: System Environment/Security
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: /~https://github.com/linux-pam/linux-pam/releases/download/v%{version}/%{name}-%{version}.tar.xz
-%define sha512 %{name}=af88e8c1b6a9b737ffaffff7dd9ed8eec996d1fbb5804fb76f590bed66d8a1c2c6024a534d7a7b6d18496b300f3d6571a08874cf406cd2e8cea1d5eff49c136a
-
-Source1: pamtmp.conf
-Source2: default-faillock.conf
-
-Patch0: faillock-add-support-to-print-login-failures.patch
-
-BuildRequires: libselinux-devel
-BuildRequires: gdbm-devel
-
-Requires: libselinux
-Requires: gdbm
-
-%define ExtraBuildRequires systemd-rpm-macros
-
-%description
-The Linux PAM package contains Pluggable Authentication Modules used to
-enable the local system administrator to choose how applications authenticate users.
-
-%package lang
-Summary: Additional language files for Linux-PAM
-Group: System Environment/Base
-Requires: %{name} = %{version}-%{release}
-%description lang
-These are the additional language files of Linux-PAM.
-
-%package devel
-Summary: Development files for Linux-PAM
-Group: System Environment/Base
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-The Linux-PAM-devel package contains libraries, header files and documentation
-for developing applications that use Linux-PAM.
-
-%prep
-%autosetup -p1
-
-%build
-sh ./configure --host=%{_host} --build=%{_build} \
- $(test %{_host} != %{_build} && echo "--with-sysroot=/target-%{_arch}") \
- CFLAGS="%{optflags}" \
- CXXFLAGS="%{optflags}" \
- --disable-dependency-tracking \
- --prefix=%{_prefix} \
- --exec-prefix=%{_prefix} \
- --bindir=%{_bindir} \
- --sbindir=%{_sbindir} \
- --sysconfdir=%{_sysconfdir} \
- --datadir=%{_datadir} \
- --includedir=%{_includedir}/security \
- --libdir=%{_libdir} \
- --libexecdir=%{_libexecdir} \
- --localstatedir=%{_localstatedir} \
- --sharedstatedir=%{_sharedstatedir} \
- --mandir=%{_mandir} \
- --infodir=%{_infodir} \
- --enable-selinux \
- --docdir=%{_docdir}/%{name}-%{version} \
- --enable-securedir=%{_libdir}/security \
- --enable-db=ndbm
-
-%make_build
-
-%install
-%make_install %{?_smp_mflags}
-chmod -v 4755 %{buildroot}%{_sbindir}/unix_chkpwd
-install -v -dm755 %{buildroot}%{_docdir}/%{name}-%{version}
-ln -sfv pam_unix.so %{buildroot}%{_libdir}/security/pam_unix_auth.so
-ln -sfv pam_unix.so %{buildroot}%{_libdir}/security/pam_unix_acct.so
-ln -sfv pam_unix.so %{buildroot}%{_libdir}/security/pam_unix_passwd.so
-ln -sfv pam_unix.so %{buildroot}%{_libdir}/security/pam_unix_session.so
-
-cp %{SOURCE2} %{buildroot}%{_sysconfdir}/security/faillock.conf
-
-install -d -m 755 %{buildroot}/run/faillock
-install -m644 -D %{SOURCE1} %{buildroot}%{_tmpfilesdir}/pam.conf
-
-%{find_lang} %{name}
-
-%{_fixperms} %{buildroot}/*
-
-%if 0%{?with_check}
-%check
-install -v -m755 -d %{_sysconfdir}/pam.d
-cat > %{_sysconfdir}/pam.d/other << "EOF"
-auth required pam_deny.so
-account required pam_deny.so
-password required pam_deny.so
-session required pam_deny.so
-EOF
-make %{?_smp_mflags} check
-%endif
-
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
-
-%clean
-rm -rf %{buildroot}/*
-
-%files
-%defattr(-,root,root)
-%config(noreplace) %{_sysconfdir}/security/*.conf
-%attr(755,root,root) %config(noreplace) %{_sysconfdir}/security/namespace.init
-%dir %{_sysconfdir}/security
-%{_sysconfdir}/environment
-%{_sbindir}/*
-%{_libdir}/security/*
-%{_libdir}/*.so.*
-%{_mandir}/man5/*
-%{_mandir}/man8/*
-%{_tmpfilesdir}/pam.conf
-%{_unitdir}/pam_namespace.service
-%dir /run/faillock
-
-%files lang -f Linux-PAM.lang
-%defattr(-,root,root)
-
-%files devel
-%defattr(-,root,root)
-%{_includedir}/*
-%{_libdir}/*.so
-%{_mandir}/man3/*
-%{_docdir}/%{name}-%{version}/*
-%{_libdir}/pkgconfig/*.pc
-
-%changelog
-* Wed May 17 2023 Shreenidhi Shedi 1.5.3-1
-- Upgrade to v1.5.3
-* Mon Nov 07 2022 Shreenidhi Shedi 1.5.2-3
-- Add a default faillock.conf
-* Wed Jul 06 2022 Shreenidhi Shedi 1.5.2-2
-- Remove libdb support from pam
-* Thu Jun 30 2022 Shreenidhi Shedi 1.5.2-1
-- Further fixes to faillock patch
-- Upgrade to v1.5.2
-* Tue Mar 08 2022 Shreenidhi Shedi 1.5.1-2
-- create /var/run/faillock during install
-* Mon Apr 12 2021 Gerrit Photon 1.5.1-1
-- Automatic Version Bump
-* Fri Sep 25 2020 Ankit Jain 1.4.0-2
-- pam_cracklib has been deprecated.
-* Fri Aug 07 2020 Vikash Bansal 1.4.0-1
-- Version bump up to 1.4.0
-* Mon Apr 20 2020 Alexey Makhalov 1.3.0-3
-- Enable SELinux support
-* Thu Nov 15 2018 Alexey Makhalov 1.3.0-2
-- Cross compilation support
-* Fri Apr 14 2017 Alexey Makhalov 1.3.0-1
-- Version update.
-* Fri Feb 10 2017 Xiaolin Li 1.2.1-5
-- Added pam_unix_auth.so, pam_unix_acct.so, pam_unix_passwd.so,
-- and pam_unix_session.so.
-* Wed Dec 07 2016 Xiaolin Li 1.2.1-4
-- Added devel subpackage.
-* Thu May 26 2016 Divya Thaluru 1.2.1-3
-- Packaging pam cracklib module
-* Tue May 24 2016 Priyesh Padmavilasom 1.2.1-2
-- GA - Bump release of all rpms
-* Fri Jan 15 2016 Xiaolin Li 1.2.1-1
-- Updated to version 1.2.1
-* Mon May 18 2015 Touseef Liaqat 1.1.8-2
-- Update according to UsrMove.
-* Thu Oct 09 2014 Divya Thaluru 1.1.8-1
-- Initial build. First version
diff --git a/SPECS/Linux-PAM/default-faillock.conf b/SPECS/Linux-PAM/default-faillock.conf
deleted file mode 100644
index 12db77d112..0000000000
--- a/SPECS/Linux-PAM/default-faillock.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-dir = /run/faillock
-deny = 3
-unlock_time = 600
-even_deny_root
-root_unlock_time = 600
diff --git a/SPECS/Linux-PAM/faillock-add-support-to-print-login-failures.patch b/SPECS/Linux-PAM/faillock-add-support-to-print-login-failures.patch
deleted file mode 100644
index baebb42ab2..0000000000
--- a/SPECS/Linux-PAM/faillock-add-support-to-print-login-failures.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From bbd259716a1dbc35a8ec282d7d5d287483997ce0 Mon Sep 17 00:00:00 2001
-From: Shreenidhi Shedi
-Date: Wed, 29 Jun 2022 20:47:47 +0530
-Subject: [PATCH] faillock: add support to print login failures in legacy
- pam_tally2 style
-
-This is enabled by default.
-
-"--no-legacy-output" flag will print failures in newer format.
-
-Signed-off-by: Shreenidhi Shedi
----
- modules/pam_faillock/main.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/modules/pam_faillock/main.c b/modules/pam_faillock/main.c
-index 136be83..b21b6a1 100644
---- a/modules/pam_faillock/main.c
-+++ b/modules/pam_faillock/main.c
-@@ -66,6 +66,7 @@ args_parse(int argc, char **argv, struct options *opts)
- memset(opts, 0, sizeof(*opts));
-
- opts->progname = argv[0];
-+ opts->legacy_output = 1;
-
- for (i = 1; i < argc; ++i) {
- if (strcmp(argv[i], "--conf") == 0) {
-@@ -97,8 +98,8 @@ args_parse(int argc, char **argv, struct options *opts)
- else if (strcmp(argv[i], "--reset") == 0) {
- opts->reset = 1;
- }
-- else if (!strcmp(argv[i], "--legacy-output")) {
-- opts->legacy_output = 1;
-+ else if (!strcmp(argv[i], "--no-legacy-output")) {
-+ opts->legacy_output = 0;
- }
- else {
- fprintf(stderr, "%s: Unknown option: %s\n", argv[0], argv[i]);
-@@ -128,7 +129,7 @@ usage(const char *progname)
- {
- fprintf(stderr,
- _("Usage: %s [--dir /path/to/tally-directory]"
-- " [--user username] [--reset] [--legacy-output]\n"), progname);
-+ " [--user username] [--reset] [--no-legacy-output]\n"), progname);
-
- }
-
---
-2.40.1
-
diff --git a/SPECS/Linux-PAM/pamtmp.conf b/SPECS/Linux-PAM/pamtmp.conf
deleted file mode 100644
index f6e490ba7c..0000000000
--- a/SPECS/Linux-PAM/pamtmp.conf
+++ /dev/null
@@ -1 +0,0 @@
-d /run/faillock 0755 root root -
diff --git a/SPECS/ModemManager/ModemManager.spec b/SPECS/ModemManager/ModemManager.spec
deleted file mode 100644
index 764737360a..0000000000
--- a/SPECS/ModemManager/ModemManager.spec
+++ /dev/null
@@ -1,135 +0,0 @@
-Summary: Mobile broadband modem manager
-Name: ModemManager
-Version: 1.18.12
-Release: 2%{?dist}
-URL: https://www.freedesktop.org
-License: GPLv2
-Group: Applications/System
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: https://www.freedesktop.org/software/ModemManager/%{name}-%{version}.tar.xz
-%define sha512 %{name}=7ee3b091ca2350a1d52f1ff0c0657c9f279594ffbff5ea57be59ca024331cafbac34901ca9ed4ef2b71e8c51b594526f921d3aeee6e8748cd0532a16218c5d6c
-
-BuildRequires: libqmi-devel
-BuildRequires: gobject-introspection-devel
-BuildRequires: libgudev-devel
-BuildRequires: systemd-devel
-BuildRequires: gcc
-BuildRequires: pkg-config
-BuildRequires: automake
-BuildRequires: autoconf
-BuildRequires: libtool
-BuildRequires: libxslt-devel
-
-%if 0%{?with_check}
-BuildRequires: dbus-devel
-%endif
-
-Requires: systemd
-Requires: glib
-Requires: libgudev
-Requires: libqmi
-Requires: gobject-introspection
-
-%description
-%{name} provides a unified high level API for communicating
-with mobile broadband modems, regardless of the protocol used to
-communicate with the actual device.
-
-%package devel
-Summary: Header and development files for %{name}
-Requires: %{name} = %{version}-%{release}
-Requires: libqmi-devel
-Requires: gobject-introspection-devel
-
-%description devel
-It contains the libraries and header files for %{name}
-
-%prep
-%autosetup -p1
-
-%build
-%configure \
- --disable-static \
- --enable-more-warnings=no \
- --without-qmi \
- --without-mbim
-
-%make_build
-
-%install
-%make_install UDEV_BASE_DIR=%{_libdir}/udev %{?_smp_mflags}
-
-%if 0%{?with_check}
-%check
-make %{?_smp_mflags} check
-%endif
-
-%clean
-rm -rf %{buildroot}/*
-
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
-
-%files
-%defattr(-,root,root)
-%{_datadir}/%{name}/*.conf
-%{_sysconfdir}/dbus-1/system.d/org.freedesktop.ModemManager1.conf
-%{_bindir}/mmcli
-%{_sbindir}/%{name}
-%{_libdir}/*.so.*
-%{_libdir}/girepository-1.0/%{name}-1.0.typelib
-%{_libdir}/%{name}/*
-%{_unitdir}/%{name}.service
-%{_mandir}/man1/mmcli.1.gz
-%{_mandir}/man8/%{name}.8.gz
-%{_datadir}/dbus-1/*
-%{_datadir}/locale/*
-%{_datadir}/bash-completion/*
-%{_datadir}/gir-1.0/%{name}-1.0.gir
-%{_udevrulesdir}/*
-%exclude %{_datadir}/icons
-%exclude %dir %{_libdir}/debug
-
-%files devel
-%defattr(-,root,root)
-%{_libdir}/*.so
-%{_includedir}/%{name}/*
-%{_includedir}/libmm-glib/*
-%{_libdir}/pkgconfig/%{name}.pc
-%{_libdir}/pkgconfig/mm-glib.pc
-%{_datadir}/%{name}/fcc-unlock.available.d/*
-%{_datadir}/%{name}/connection.available.d/*
-
-%changelog
-* Tue Jan 03 2023 Guruswamy Basavaiah 1.18.12-2
-- Bump release as a part of libgudev upgrade to 237-1
-* Fri Dec 23 2022 Ashwin Dayanand Kamat 1.18.12-1
-- Update to v1.18.12
-* Fri Oct 07 2022 Shreenidhi Shedi 1.18.10-3
-- Bump version as a part of libxslt upgrade
-* Sun Aug 07 2022 Shreenidhi Shedi 1.18.10-2
-- Remove .la files
-* Mon Jul 11 2022 Gerrit Photon 1.18.10-1
-- Automatic Version Bump
-* Wed Jun 22 2022 Shreenidhi Shedi 1.18.6-3
-- Fix binary path
-* Thu Jun 16 2022 Ashwin Dayanand Kamat 1.18.6-2
-- Bump version as a part of libxslt upgrade
-* Mon Apr 18 2022 Gerrit Photon 1.18.6-1
-- Automatic Version Bump
-* Wed Apr 21 2021 Gerrit Photon 1.16.4-1
-- Automatic Version Bump
-* Mon Apr 12 2021 Gerrit Photon 1.16.2-1
-- Automatic Version Bump
-* Mon Dec 14 2020 Susant Sahani 1.14.2-3
-- Add build requires
-* Wed Nov 18 2020 Satya Naga Vasamsetty 1.14.2-2
-- Fix make check
-* Mon Aug 24 2020 Gerrit Photon 1.14.2-1
-- Automatic Version Bump
-* Wed Jul 22 2020 Gerrit Photon 1.14.0-1
-- Automatic Version Bump
-* Mon Dec 10 2018 Alexey Makhalov 1.8.2-1
-- Initial build. First version
diff --git a/SPECS/WALinuxAgent/WALinuxAgent.spec b/SPECS/WALinuxAgent/WALinuxAgent.spec
deleted file mode 100644
index 95f2c9dc36..0000000000
--- a/SPECS/WALinuxAgent/WALinuxAgent.spec
+++ /dev/null
@@ -1,141 +0,0 @@
-Name: WALinuxAgent
-Summary: The Windows Azure Linux Agent
-Version: 2.9.1.1
-Release: 2%{?dist}
-License: Apache License Version 2.0
-Group: System/Daemons
-Url: /~https://github.com/Azure/WALinuxAgent
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: /~https://github.com/Azure/WALinuxAgent/archive/refs/tags/%{name}-%{version}.tar.gz
-%define sha512 %{name}=3f44aecc16ac545db4b550586f168dbbdef34289aad6775973517bf645e5a1d486864c01e974f03a71b3e946c14e1ca140673a75c1cd602aac28725eaa68e83d
-
-BuildRequires: python3-devel
-BuildRequires: python3-setuptools
-BuildRequires: python3-xml
-BuildRequires: systemd-devel
-BuildRequires: python3-distro
-BuildRequires: python3-macros
-
-Requires: python3
-Requires: python3-xml
-Requires: python3-pyasn1
-Requires: openssh
-Requires: openssl
-Requires: util-linux
-Requires: /bin/sed
-Requires: /bin/grep
-Requires: sudo
-Requires: iptables
-Requires: systemd
-Requires: python3-distro
-
-BuildArch: noarch
-
-%description
-The Windows Azure Linux Agent supports the provisioning and running of Linux
-VMs in the Windows Azure cloud. This package should be installed on Linux disk
-images that are built to run in the Windows Azure environment.
-
-%prep
-%autosetup -p1
-
-%build
-%py3_build
-
-%install
-%{python3} setup.py install --skip-build install -O1 --lnx-distro='photonos' --root=%{buildroot}
-
-mkdir -p %{buildroot}%{_var}/log \
- %{buildroot}%{_var}/opt/waagent/log \
- %{buildroot}%{_var}/log
-
-mkdir -p -m 0700 %{buildroot}%{_sharedstatedir}/waagent
-touch %{buildroot}%{_var}/opt/waagent/log/waagent.log
-ln -sfv /opt/waagent/log/waagent.log %{buildroot}%{_var}/log/waagent.log
-
-%post
-%systemd_post waagent.service
-
-%preun
-%systemd_preun waagent.service
-
-%postun
-%systemd_postun_with_restart waagent.service
-
-%clean
-rm -rf %{buildroot}
-
-%files
-%defattr(-,root,root)
-%{_unitdir}/*
-%defattr(0644,root,root,0755)
-%attr(0755,root,root) %{_bindir}/waagent
-%attr(0755,root,root) %{_bindir}/waagent2.0
-%config(noreplace) %{_sysconfdir}/waagent.conf
-%dir %{_var}/opt/waagent/log
-%{_var}/log/waagent.log
-%ghost %{_var}/opt/waagent/log/waagent.log
-%dir %attr(0700, root, root) %{_sharedstatedir}/waagent
-%{python3_sitelib}/*
-
-%changelog
-* Sun Nov 19 2023 Shreenidhi Shedi 2.9.1.1-2
-- Bump version as a part of openssl upgrade
-* Thu Sep 14 2023 Shreenidhi Shedi 2.9.1.1-1
-- Upgrade to v2.9.1.1
-* Tue Apr 18 2023 Shreenidhi Shedi 2.7.3.0-4
-- Add python3-distro to requires
-* Sun Feb 12 2023 Shreenidhi Shedi 2.7.3.0-3
-- FIx requires
-* Tue Dec 06 2022 Prashant S Chauhan 2.7.3.0-2
-- Update release to compile with python 3.11
-* Fri Aug 26 2022 Shreenidhi Shedi 2.7.3.0-1
-- Upgrade to v2.7.3.0
-* Thu May 26 2022 Gerrit Photon 2.7.1.0-1
-- Automatic Version Bump
-* Sat Nov 13 2021 Shreenidhi Shedi 2.4.0.2-1
-- Upgrade to version 2.4.0.2
-* Thu Apr 29 2021 Gerrit Photon 2.2.53.1-1
-- Automatic Version Bump
-* Mon Jan 11 2021 Tapas Kundu 2.2.51-1
-- Version Bump
-* Tue Oct 13 2020 Tapas Kundu 2.2.49.2-3
-- Build with python 3.9
-* Tue Sep 29 2020 Satya Naga Vasamsetty 2.2.49.2-2
-- openssl 1.1.1
-* Fri Aug 28 2020 Gerrit Photon 2.2.49.2-1
-- Automatic Version Bump
-* Sun Jul 26 2020 Tapas Kundu 2.2.49-2
-- Use python3.8
-* Fri Jul 24 2020 Gerrit Photon 2.2.49-1
-- Automatic Version Bump
-* Thu Jun 18 2020 Tapas Kundu 2.2.35-3
-- Use python3
-* Wed Apr 29 2020 Anisha Kumari 2.2.35-2
-- Added patch to fix CVE-2019-0804
-* Tue Feb 12 2019 Tapas Kundu 2.2.35-1
-- Update to 2.2.35
-* Tue Oct 23 2018 Anish Swaminathan 2.2.22-1
-- Update to 2.2.22
-* Thu Dec 28 2017 Divya Thaluru 2.2.14-3
-- Fixed the log file directory structure
-* Mon Sep 18 2017 Alexey Makhalov 2.2.14-2
-- Requires /bin/grep, /bin/sed and util-linux or toybox
-* Thu Jul 13 2017 Anish Swaminathan 2.2.14-1
-- Update to 2.2.14
-* Thu Jun 01 2017 Dheeraj Shetty 2.0.18-4
-- Use python2 explicitly to build
-* Tue May 24 2016 Priyesh Padmavilasom 2.0.18-3
-- GA - Bump release of all rpms
-* Tue May 10 2016 Anish Swaminathan 2.0.18-2
-- Edit post scripts
-* Thu Apr 28 2016 Anish Swaminathan 2.0.18-1
-- Update to 2.0.18
-* Thu Jan 28 2016 Anish Swaminathan 2.0.14-3
-- Removed redundant requires
-* Thu Aug 6 2015 Anish Swaminathan
-- Added sha512sum
-* Fri Mar 13 2015 - mbassiouny@vmware.com
-- Initial packaging
diff --git a/SPECS/XML-Parser/XML-Parser.spec b/SPECS/XML-Parser/XML-Parser.spec
deleted file mode 100644
index f0c06230fd..0000000000
--- a/SPECS/XML-Parser/XML-Parser.spec
+++ /dev/null
@@ -1,76 +0,0 @@
-Summary: XML-Parser perl module
-Name: XML-Parser
-Version: 2.46
-Release: 3%{?dist}
-License: GPL+
-URL: http://search.cpan.org/~toddr/%{name}-%{version}/
-Source0: http://search.cpan.org/CPAN/authors/id/T/TO/TODDR/%{name}-%{version}.tar.gz
-%define sha512 XML-Parser=c4609495cc5ca34952f61876a690ef76d42eee6689d1bedb8036c9eab918525ec5213f1639c7178c029ee0f8765a2ca5eb0197f6e39b8be6d5dbc3f3c1d0b389
-Group: Development/Tools
-Vendor: VMware, Inc.
-Distribution: Photon
-BuildRequires: expat-devel
-BuildRequires: perl
-Requires: expat
-Requires: perl
-
-%description
-The XML::Parser module is a Perl extension interface to James Clark's XML parser, expat
-
-%prep
-%autosetup
-
-%build
-perl Makefile.PL
-if [ %{_host} != %{_build} ]; then
- ln -s /target-%{_arch}%{perl_privlib}/%{_arch}-linux %{perl_privlib}/%{_arch}-linux
- mkdir -p %{perl_vendorlib}
- ln -s /target-%{_arch}%{perl_vendorlib}/%{_arch}-linux %{perl_vendorlib}/%{_arch}-linux
-
- # ugly hack again, similarly to cmake:
- ln -sf %{_arch}-linux-gnu-gcc /usr/bin/gcc
- ln -sf %{_arch}-linux-gnu-g++ /usr/bin/g++
- ln -sf %{_arch}-linux-gnu-ld /usr/bin/ld
- ln -sf %{_arch}-linux-gnu-ar /usr/bin/ar
-fi
-make %{?_smp_mflags}
-
-%install
-make %{?_smp_mflags} DESTDIR=%{buildroot} install
-
-%define __perl_version 5.36.0
-rm %{buildroot}/%{_libdir}/perl5/%{__perl_version}/*/perllocal.pod
-
-%check
-make %{?_smp_mflags} test
-
-%files
-%defattr(-,root,root)
-%{_libdir}/perl5/*
-%{_mandir}/man3/*
-
-%changelog
-* Thu Dec 08 2022 Dweep Advani 2.46-3
-- Perl version upgrade to 5.36.0
-* Thu Aug 20 2020 Dweep Advani 2.46-2
-- Rebuild for perl version upgrade to 5.30.1
-* Thu Jun 25 2020 Gerrit Photon 2.46-1
-- Automatic Version Bump
-* Thu Nov 15 2018 Alexey Makhalov 2.44-6
-- Cross compilation support
-* Fri Sep 21 2018 Dweep Advani 2.44-5
-- Consuming perl version upgrade of 5.28.0
-* Tue Nov 14 2017 Alexey Makhalov 2.44-4
-- Aarch64 support
-* Tue Apr 4 2017 Robert Qi 2.44-3
-- Update to version 2.44-3 since perl version updated.
-* Tue May 24 2016 Priyesh Padmavilasom 2.44-2
-- GA - Bump release of all rpms
-* Tue Feb 23 2016 Harish Udaiya Kumar 2.44-1
-- Upgraded to version 2.44
-* Mon Feb 01 2016 Anish Swaminathan 2.41-3
-- Fix for multithreaded perl
-* Wed Jan 13 2016 Anish Swaminathan 2.41-2
-- Fix for new perl
-* Thu Oct 23 2014 Divya Thaluru 2.41-1
-- Initial build. First version
diff --git a/SPECS/abupdate/README b/SPECS/abupdate/README
deleted file mode 100644
index e66e8a0353..0000000000
--- a/SPECS/abupdate/README
+++ /dev/null
@@ -1,102 +0,0 @@
-A/B Update
-
-Package to perform update/rollback with A/B partition sets.
-
-Design:
- In this design, we have A and B sets of partitions, hence the name A/B upgrade. There is also support for shared/persistent partitions that are not part of
- other set. To update/modify the system, the idea is that the system on the B partition set can be modified freely while the active system is running. Once
- an update is desired, it can be achieved atomically by booting into the B partition set and running the newly updated/modified system. Importantly, a simple switch
- doesn't modify the bootloader so any subsequent reboots will be back into the unmodified A set. This allows for safe updates, as if anything goes wrong
- in the B system, we can roll back to the A version of the system.
-
- We only modify the bootloader when it is specifically requested, but after that point subsequent reboots will now be into the modified/updated system.
- This is done through the "finish" command.
-
- This tool allows for various utilities to support this design:
- - mounting/unmounting shadow partitions, so that they can be easily modified
- - updating/installing packages on B set
- - check for capabilities
- - clean out the shadow partitions
- - deploy an OS image from a tarball into the B set
- - sync the A and B partition sets (mirror)
- - switch from A to B partition sets
- - finalize update/switch by modifying bootloader
-
-Requirements:
- Requires two sets of partitions, A and B. Each partition set can be comprised of multiple individual partitions.
- - If booting with BIOS, only a root filesystem pair is needed.
- - If booting with UEFI, an EFI partition pair is also needed.
-
- Optionally, other partition pairs can be added as well.
-
-Config File:
- Configuration options can be set in /etc/abupdate.conf. These options are read in as a bash script, so they must be formatted in bash syntax.
- The "init" command can, in some situations, auto-populate this file.
-
- Available options:
- BOOT_TYPE (either UEFI, BIOS, or BOTH if applicable)
- PLATFORM (for grub-install, if BIOS)
- AUTO_SWITCH (automatically switch to B partition set after update)
- AUTO_FINISH (automatically finalize a switch)
- PACKAGE_MANAGER (either tdnf or rpm)
-
- Partition pairs:
- Some partitions have a corresponding shadow partition, so we should specify the mapping here as partition pairs. Persistent/shared partitions
- do not need to be specified in this config file.
- Partition pairs are added as a bash array, with the A and B partition uuids given, along with the mount point.
- To specify the ROOT partition pair, use the name ROOT (all caps). EFI is the same. Other set names can any mixture of characters.
-
- Example:
- =("partition uuid A" "partition uuid B" "mount point")
-
- Once a partition set has been added in the config file, you must also update the SETS array to include the name of the set.
- Otherwise, the script will not know that it exists.
-
- Example:
- SETS=("ROOT" "EFI" "")
-
- Excluding files/folders:
- To exclude a file/folder from being synced across A->B partition sets, you can set an exclude array for that partition set.
- Syntax - _EXCLUDE=("file name" "/folder/file" "/folder1/folder2")
-
- Example:
- HOME_EXCLUDE=("/myfolder")
-
-Script usage:
- ./abupdate
-
- Available options:
- init
- Initializes /etc/abupdate.conf. Attempts to auto detect A and B partitions and boot type.
- sync
- Mirrors the active (A) partition set to the inactive (B) partition set. Syncs all data between the two partition sets
- This is done efficiently using rsync, which transfers only the delta between the two sets.
- deploy
- Accepts an OS image as a tar file. Cleans the B partition set and then deploys the OS image into the B partition set
- mount
- Mounts B partition set, and pseudo filesystems, at /mnt/abupdate
- unmount
- Unmounts B partition set and pseudo filesystems from /mnt/abupdate
- clean
- Cleans the B partition set. Removes all files from all specified shadow partitions. Does not touch any shared/persistent partitions.
- update
- Accepts a list of packages to update.
- If PACKAGE_MANAGER is set to rpm, the list must be a list of .rpm files
- If no args, updates all packages on the B partition set.
- If AUTO_SWITCH is set, automatically switches into B partition set
- To specify a custom tdnf config file, use -c /path/to/config or set TDNF_CONFIG in /etc/abupdate.conf.
- install
- Accepts a list of packages to install to the shadow (B) partition set
- If PACKAGE_MANAGER is set to rpm, the list must be a list of .rpm files
- To specify a custom tdnf config file, use -c /path/to/config or set TDNF_CONFIG in /etc/abupdate.conf.
- uninstall
- Accepts a list of packages to uninstall from the shadow (B) partition set.
- To specify a custom tdnf config file, use -c /path/to/config or set TDNF_CONFIG in /etc/abupdate.conf.
- switch
- Executes a kexec boot into the B partition set.
- If AUTO_FINISH is set, automatically finalizes the switch with the finish command
- Otherwise, the next boot will be back into the original A partition set
- finish
- Finalizes the switch by updating the bootloader. Ensures that the next reboot will be into the current partition set.
- check
- Runs various checks to verify A/B partition sets are good to go.
diff --git a/SPECS/abupdate/abupdate b/SPECS/abupdate/abupdate
deleted file mode 100644
index 3a34df3c97..0000000000
--- a/SPECS/abupdate/abupdate
+++ /dev/null
@@ -1,1106 +0,0 @@
-#!/bin/bash
-
-set -o pipefail
-
-if [[ "$EUID" -ne 0 ]]; then
- echo "Please run as root user"
- exit 1
-fi
-
-_ROOT=()
-EFI=()
-SETS=()
-
-A_UUID_ROOT=""
-B_UUID_ROOT=""
-
-FSTAB="etc/fstab"
-GRUB_CFG="boot/grub2/grub.cfg"
-
-MNTPT_ROOT="/mnt/abupdate" # mount all shadow partitions as subdirectories of this dir
-MNTPT_CLEAN="/mnt/ab-clean"
-MNTPT_EFI="$MNTPT_ROOT/boot/efi"
-
-BOOT_TYPE="" # e.g BIOS, EFI, BOTH
-CONFIG_BOOT_TYPE="" # used to preserve config file value of BOOT_TYPE
-
-CONFIG_FILE="/etc/abupdate.conf"
-PHOTON_CFG="/boot/photon.cfg"
-
-TDNF_CONFIG=""
-PKG_LIST=""
-
-ARCH=$(uname -m) # e.g aarch64, x86_64
-
-# wrapper for umount
-# arg 1 - directory/device/partition to unmount
-unmount() {
- if ! umount "$1"; then
- echo "Failed to unmount shadow $1 partition, attempting lazy unmount"
- if ! umount -l "$1"; then
- echo "ERROR: Failed to lazily unmount $1"
- exit 1
- else
- echo "Lazy unmount of $1 successful"
- fi
- fi
-}
-
-# prints error message and then exits
-error() {
- if [[ -z "$1" ]]; then
- echo "Error! Exiting." 1>&2
- else
- echo "ERROR: $1" 1>&2
- fi
-
- # unmount B filesystem
- local fs
- local elem
- local psuedo_filesystems=("proc" "dev" "sys" "tmp" "run")
- for fs in "${psuedo_filesystems[@]}"; do
- check_if_mntpt "${MNTPT_ROOT}/$fs" && unmount "$MNTPT_ROOT/$fs"
- done
-
- for elem in "${SETS[@]}"; do
- local mnt_pt="${elem}[2]"
- if [[ ! "$elem" == "_ROOT" ]] && check_if_mntpt "${MNTPT_ROOT}/${!mnt_pt}"; then
- local mnt_pt="${elem}[2]"
- unmount "${MNTPT_ROOT}/${!mnt_pt}"
- fi
- done
-
- if check_if_mntpt "$MNTPT_ROOT"; then
- unmount "$MNTPT_ROOT"
- fi
-
- exit 1
-}
-
-# parse the command line arguments, flow control
-parse_cmdline_args() {
- case "$1" in
- # auto initialize /etc/abupdate.conf
- init)
- init_cfg
- ;;
- # deploy image into shadow set with a tarball
- deploy)
- read_cfg 1
- shift
- deploy_image "$1"
- ;;
- # mount shadow partition set
- mount)
- read_cfg 1
- mount_b_partition
- ;;
- # unmount shadow partition set
- unmount)
- read_cfg 1
- unmount_b_partition
- ;;
- # sync a and b partition sets
- sync)
- read_cfg 1
- mirror_partitions
- ;;
- # clear out shadow partition sets
- clean)
- read_cfg 1
- shift
- if [[ -z "$1" ]]; then
- clean_shadow_partitions "${SETS[@]}"
- else
- clean_shadow_partitions "$@"
- fi
- ;;
- # copies partition a to b, and updates the packages
- update)
- read_cfg 1
- shift
- update "$@"
- ;;
- # install/uninstall specific package into shadow partition
- install|uninstall)
- read_cfg 1
- package_wrapper "$@"
- ;;
- # switches to B partition and kexec boots from there
- switch)
- read_cfg 1
- switch
- ;;
- finish)
- read_cfg 1
- # if booted properly into the new kernel, finalize it by editing bootloader
- finish_cap_check
- finalize
-
- # only need to run this once
- # make sure it is disabled, otherwise this will run on every boot
- systemctl disable abupdate.service
- ;;
- check)
- read_cfg 1
- # run sanity checks
- check
- ;;
- help)
- help_menu 0
- ;;
- *)
- help_menu 1
- ;;
- esac
-}
-
-# Parse package list given to update/(un)install commands, and
-# extract the TDNF config file if it is included (with a -c flag)
-# arg 1 - package list passed to install/uninstall/update commands
-parse_pkg_list() {
- if [[ $PACKAGE_MANAGER == "RPM" ]]; then
- PKG_LIST="$@"
- return
- fi
-
- # remove references to -c /path/to/config if TDNF_CONFIG is specified
- if [[ -n "$TDNF_CONFIG" ]]; then
- while (( "$#" )); do
- if [[ "$1" == "-c" ]]; then
- TDNF_CONFIG="$2"
- shift
- else
- PKG_LIST="$PKG_LIST $1"
- fi
- shift
- done
- else
- PKG_LIST="$@"
- fi
-}
-
-# wrapper function to handle update/remove/install of packages to shadow partition set
-# arg 1: base command given to abupdate - install/uninstall/update
-# arg 2: rest of arguments passed to abupdate
-package_wrapper() {
- # first opt should be the base command - ex) install, remove, update
- local pkg_manager_opts=$1
- [[ "$1" == "uninstall" ]] && pkg_manager_opts="remove"
- shift
-
- mount_b_partition
-
- echo "Running update/install sanity checks..."
- update_sanity_checks
- echo "Looks good."
-
- parse_pkg_list "$@"
-
- if [[ "$PACKAGE_MANAGER" == "TDNF" ]]; then
- pkg_manager_opts="$pkg_manager_opts -y --installroot $MNTPT_ROOT"
- [[ -n "$TDNF_CONFIG" ]] && pkg_manager_opts="$pkg_manager_opts -c $TDNF_CONFIG"
- tdnf $pkg_manager_opts $PKG_LIST || error
- else
- case "$pkg_manager_opts" in
- install|update)
- pkg_manager_opts="-Uv"
- ;;
- uninstall|remove)
- pkg_manager_opts="-ev"
- ;;
- esac
- pkg_manager_opts="$pkg_manager_opts --root=$MNTPT_ROOT"
- rpm $pkg_manager_opts $PKG_LIST || error
- fi
-
- echo "Package operation completed successfully"
-}
-
-# deploy whole OS image to shadow partition set
-# arg 1 - image filename (tarball)
-deploy_image() {
- local tar_name
- clean_shadow_partitions "${SETS[@]}"
-
- #TODO: Add a flag to keep b partition mounted if it was mounted previously
-
- # mount all shadow partitions to correct relative locations
- mount_b_partition "no_pseudo"
-
- cp -p "$1" "$MNTPT_ROOT"
- pushd "$MNTPT_ROOT" || error
- tar_name=$(basename "$1")
- tar -xf "$tar_name" || error "Failed to unpack tarball"
- popd || error
-
- echo "Successfully deployed tarball image to shadow partition set"
- unmount_b_partition
-}
-
-# merge any empty files from /etc dir
-merge_etc() {
- # delete empty files, so we can transfer them with rsync
- for file in "$MNTPT_ROOT"/etc/*; do
- if [[ -f $file ]] && [[ -s $MNTPT_ROOT/$file ]]; then
- rm "$file"
- fi
- done
- rsync -aHx --ignore-existing /etc/ "$MNTPT_ROOT"/etc/
-}
-
-# clear out all specified partitions
-# take in a list of set names to clear out
-# or clears out all if none specified
-clean_shadow_partitions() {
- unmount_b_partition
- mkdir -p "$MNTPT_CLEAN"
- while [[ -n "$1" ]]; do
- local B_partuuid="${1^^}[1]"
- if [[ -n "${!B_partuuid}" ]]; then
- echo "Cleaning $1 - partuuid = ${!B_partuuid}"
- mount PARTUUID="${!B_partuuid}" "$MNTPT_CLEAN" || error "Failed to mount shadow $1 partition"
- rm -rf "${MNTPT_CLEAN:?}"/* || error "Failed to clean all files in shadow $1 partition"
- unmount "$MNTPT_CLEAN"
- else
- echo "Partition set $1 not found, skipping"
- fi
- shift
- done
-
- echo "All partitions cleaned successfully"
-}
-
-check() {
- echo "Running checks..."
-
- mount_b_partition
-
- echo "Checking filesystem types match"
- fs_type_check
- echo "Filesystem types match."
-
- echo "Checking that B partition is bootable"
- bootable_check
- echo "B partition is bootable"
-
- echo "Checking that B partition is big enough"
- size_check
- echo "B partition has sufficient space"
-
- echo "checking required tools are installed"
- capability_check
- echo "all required tools are installed"
-
- echo "Checks passed. Everything looks good."
-
- unmount_b_partition
-}
-
-# check for tools to finalize
-finish_cap_check() {
- if [[ $BOOT_TYPE == "EFI" ]] || [[ $BOOT_TYPE == "BOTH" ]]; then
- command -v efibootmgr &> /dev/null || error "efibootmgr not found. Can be installed with \"tdnf install efibootmgr\""
- fi
- if [[ "$BOOT_TYPE" == "BIOS" ]] || [[ $BOOT_TYPE == "BOTH" ]]; then
- command -v grub2-install &> /dev/null || error "grub2-install not found. Can be installed with \"tdnf install grub2-pc\""
- fi
-}
-
-# check if we have tools for switching
-switch_cap_check() {
- command -v rsync &> /dev/null || error "rsync not found. Can be installed with \"tdnf install rsync\""
- command -v kexec &> /dev/null || error "kexec not found. Can be installed with \"tdnf install kexec-tools\""
- if [[ "$AUTO_FINISH" == "YES" ]] || [[ "$AUTO_FINISH" == "Y" ]]; then
- mount_b_partition
- export BOOT_TYPE=$BOOT_TYPE
- export MNTPT_ROOT=$MNTPT_ROOT
- export SETS=( "${SETS[@]}" )
- export -f finish_cap_check
- export -f error
- export -f check_if_mntpt
- chroot $MNTPT_ROOT /bin/bash -c finish_cap_check || error "Missing tool(s) in $MNTPT_ROOT (shadow partition set)"
- fi
-}
-
-# check required tools for updating/installing packages
-update_cap_check() {
- if [[ "$PACKAGE_MANAGER" == "TDNF" ]]; then
- command -v tdnf &> /dev/null || error "Package manager is set to tdnf but tdnf is not found"
- elif [[ "$PACKAGE_MANAGER" == "RPM" ]]; then
- command -v rpm &> /dev/null || error "Package manager is set to rpm, but rpm is not found"
- fi
-
- if [[ "$AUTO_SWITCH" == "YES" ]] || [[ "$AUTO_SWITCH" == "Y" ]]; then
- switch_cap_check
- fi
-}
-
-# check to verify required software is installed
-capability_check() {
- update_cap_check
- switch_cap_check
- finish_cap_check
-}
-
-# takes in a list of packages to update
-# otherwise, just updates all packages
-update() {
- echo -e "Upgrading B partition to latest kernel/packages"
-
- # have to mount first, otherwise sanity checks will be wacky
- mount_b_partition
-
- echo "Running sanity checks..."
- update_sanity_checks
- echo "Looks good."
-
- # update packages in partition B
- package_wrapper "update" "$@"
-
- unmount_b_partition
-
- echo "Updated successfully"
-
- if [[ "$AUTO_SWITCH" == "YES" ]] || [[ "$AUTO_SWITCH" == "Y" ]]; then
- echo ""
- echo "AutoSwitch=yes, automatically switching to B partition set"
- echo ""
- switch
- fi
-}
-
-switch() {
- mount_b_partition
-
- echo "Updating config files"
- update_config_files
- echo "Config files updated (fstab, grub.cfg)"
-
- # update config file in B partition to be the opposite
- # since after we switch, the B partition is now the current A partition
- update_b_config
-
- switch_sanity_checks
-
- if [[ "$AUTO_FINISH" == "YES" ]] || [[ "$AUTO_FINISH" == "Y" ]]; then
- chroot $MNTPT_ROOT /bin/bash -c "systemctl enable abupdate.service" || error "Failed to enable auto finish service"
- else
- chroot $MNTPT_ROOT /bin/bash -c "systemctl disable abupdate.service" || error "Failed to disable auto finish service"
- fi
-
- merge_etc
-
- # boot into new kernel version
- kexec_reboot
-}
-
-help_menu() {
- local retval="$1"
-cat << EOF >&2
- Usage: ./abupdate
- Available options:
- init
- Initializes /etc/abupdate.conf. Attempts to auto detect A and B partitions and boot type.
- sync
- Mirrors the active (A) partition set to the inactive (B) partition set. Syncs all data between the two partition sets
- deploy
- Accepts an OS image as a tar file. Cleans the B partition set and then deploys the OS image into the B partition set
- mount
- Mounts B partition set, and pseudo filesystems, at /mnt/abupdate
- unmount
- Unmounts B partition set and pseudo filesystems from /mnt/abupdate
- clean
- Cleans the B partition set. Removes all files
- update
- Accepts a list of packages to update.
- If PACKAGE_MANAGER is set to rpm, the list must be a list of .rpm files
- If no args, updates all packages on the B partition set.
- If AUTO_SWITCH is set, automatically switches into B partition set
- To specify a custom tdnf config file, use -c /path/to/config or set TDNF_CONFIG in /etc/abupdate.conf.
- install
- Accepts a list of packages to install to the shadow (B) partition set
- If PACKAGE_MANAGER is set to rpm, the list must be a list of .rpm files
- To specify a custom tdnf config file, use -c /path/to/config or set TDNF_CONFIG in /etc/abupdate.conf.
- uninstall
- Accepts a list of packages to uninstall from the shadow (B) partition set.
- To specify a custom tdnf config file, use -c /path/to/config or set TDNF_CONFIG in /etc/abupdate.conf.
- switch
- Executes a kexec boot into the B partition set.
- If AUTO_FINISH is set, automatically finalizes the switch with the finish command
- Otherwise, the next boot will be back into the original A partition set
- finish
- Finalizes the switch by updating the bootloader. Ensures that the next reboot will be into the current partition set.
- help
- Print help menu
-EOF
-
- exit $retval
-}
-
-# check to ensure that the partition is functioning properly before we boot into it
-# need partuuids for both sanity check types
-switch_sanity_checks() {
- fs_type_check
- bootable_check
- switch_cap_check
-}
-
-update_sanity_checks() {
- fs_type_check
-}
-
-bootable_check() {
- # verify that other partition is bootable - check for initrd and vmlinuz
- [[ -f ${MNTPT_ROOT}/${PHOTON_CFG} ]] || error "photon.cfg not found in B partition! unbootable"
- local vmlinuz_version
- local initrd_version
- local linux_version
- vmlinuz_version=$(grep photon_linux ${MNTPT_ROOT}/${PHOTON_CFG} | cut -d "=" -f 2-) || error
- initrd_version=$(grep photon_initrd $MNTPT_ROOT/${PHOTON_CFG} | cut -d "=" -f 2-) || error
- if [[ ! -f "$MNTPT_ROOT/boot/$vmlinuz_version" ]]; then
- error "vmlinuz not found in B partition! unbootable."
- fi
-
- if [[ -n "$initrd_version" ]] && [[ ! -f "$MNTPT_ROOT/boot/$initrd_version" ]]; then
- error "initrd not found in B partition! unbootable"
- fi
-
- # check for correct installation of kernel modules
- linux_version=$(cut -d '-' -f 2- <<< "$MNTPT_ROOT/lib/modules/$vmlinuz_version") || error
- if [[ -d "$MNTPT_ROOT/lib/modules/$linux_version" ]]; then
- # check to make sure it's not empty
- [[ $(find $MNTPT_ROOT/lib/modules/"$linux_version" -name "*" | wc -l) -eq 0 ]] && error "Kernel modules directory found but empty. Are modules installed?"
- else
- error "Failed to find kernel modules directory! /lib/modules/$linux_version not found or not a directory"
- fi
-
- if [[ "$BOOT_TYPE" == "EFI" ]] || [[ $BOOT_TYPE == "BOTH" ]]; then
- # just check to make sure that the efi files are present
- # if not, probably it is not bootable
- # filesystem type check should also occur previously
- if [[ "$ARCH" == "x86_64" ]]; then
- [[ -f "$MNTPT_EFI/EFI/BOOT/bootx64.efi" ]] || error "EFI/BOOT/bootx64.efi not found in EFI partition B"
- [[ -f "$MNTPT_EFI/EFI/BOOT/grubx64.efi" ]] || error "EFI/BOOT/grubx64.efi not found in EFI partition B"
- [[ -f "$MNTPT_EFI/boot/grub2/grub.cfg" ]] || error "/boot/grub2/grub.cfg not found in ROOT partition B"
- elif [[ "$ARCH" == "aarch64" ]]; then
- [[ -f "$MNTPT_EFI/EFI/BOOT/BOOTAA64.efi" ]] || error "EFI/BOOT/BOOTAA64.efi not found in EFI partition B"
- [[ -f "$MNTPT_EFI/boot/grub2/grub.cfg" ]] || error "/boot/grub2/grub.cfg not found in ROOT partition B"
- fi
- fi
-}
-
-# check to make sure fs is formatted the same in both partitions
-fs_type_check() {
- # findmnt will return 1 if output is none, so this will also serve as a null check
- local fstype_a
- local fstype_b
- fstype_a=$(blkid -t PARTUUID="${_ROOT[0]}" -o value -s TYPE) || error "Error getting filesystem types"
- fstype_b=$(blkid -t PARTUUID="${_ROOT[1]}" -o value -s TYPE) || error "Error getting filesystem types"
-
- if [[ $BOOT_TYPE == "EFI" ]] || [[ $BOOT_TYPE == "BOTH" ]]; then
- local efi_type_a
- local efi_type_b
- efi_type_a=$(blkid -t PARTUUID="${EFI[0]}" -o value -s TYPE) || error "Error getting filesystem types"
- efi_type_b=$(blkid -t PARTUUID="${EFI[1]}" -o value -s TYPE) || error "Error getting filesystem types"
- [[ $efi_type_a == "vfat" ]] || error "A EFI format is $efi_type_a, not vfat/fat32"
- [[ $efi_type_b == "vfat" ]] || error "B EFI format is $efi_type_b, not vfat/fat32"
- fi
-
- if [[ "$fstype_b" != "$fstype_a" ]]; then
- echo "Root file system formatting does not match! Exiting"
- echo "A = \"$fstype_a\", B = \"$fstype_b\""
- exit 1
- fi
-}
-
-# update the abupdate.conf file in the B partition to swap the A-B labels for partitions
-update_b_config() {
- # copy to b partition if it exists
- if [[ -f "$CONFIG_FILE" ]]; then
- cp -p "$CONFIG_FILE" "$MNTPT_ROOT/$CONFIG_FILE" || error
- fi
-
- if [[ ! -d /boot/efi/$GRUB_CFG ]] || [[ ! -f "/boot/efi/$GRUB_CFG" ]]; then
- echo "Copying $MNTPT_EFI/$GRUB_CFG as it is not present"
- mkdir -p $MNTPT_EFI/boot/grub2
- cp -p /boot/efi/$GRUB_CFG $MNTPT_EFI/$GRUB_CFG || error "Failed to copy grub.cfg from A to B partition"
- fi
-
- # for each partition set, swap the partuuids for A and B
- local elem
- for elem in "${SETS[@]}"; do
- local A_partuuid="${elem}[0]"
- local B_partuuid="${elem}[1]"
- local mnt_pt="${elem}[2]"
- sed -i -E "s/(\"?${!A_partuuid}\"?\,?) (\"?${!B_partuuid}\"?\,?)/\2 \1/" "$MNTPT_ROOT/$CONFIG_FILE" || error "Failed to update $CONFIG_FILE in B partition set"
- done
-}
-
-# check to make sure the values read in from the config file are valid
-valid_config_check() {
- [[ "$AUTO_FINISH" != "YES" ]] && [[ "$AUTO_FINISH" != "Y" ]] && [[ "$AUTO_FINISH" != "NO" ]] && [[ "$AUTO_FINISH" != "N" ]] && error "Invalid value for AUTO_FINISH. Valid options: YES, Y, NO, N"
- [[ "$AUTO_SWITCH" != "YES" ]] && [[ "$AUTO_SWITCH" != "Y" ]] && [[ "$AUTO_SWITCH" != "NO" ]] && [[ "$AUTO_SWITCH" != "N" ]] && error "Invalid value for AUTO_SWITCH. Valid options: YES, Y, yes, y"
- [[ "$BOOT_TYPE" != "BIOS" ]] && [[ "$BOOT_TYPE" != "EFI" ]] && [[ "$BOOT_TYPE" != "BOTH" ]] && error "Invalid value for BOOT_TYPE. Valid options: BIOS, EFI, BOTH"
- [[ "$PACKAGE_MANAGER" != "TDNF" ]] && [[ "$PACKAGE_MANAGER" != "RPM" ]] && error "Invalid value for PACKAGE_MANAGER. Valid options: TDNF, RPM"
-
- [[ "${#SETS[@]}" -eq 0 ]] && error "No partition sets found in config file!"
- check_for_dup_partuuids
-
- [[ -n "$A_UUID_ROOT" ]] || error "Unable to get UUID from PARTUUID for root A partition"
- [[ -n "$B_UUID_ROOT" ]] || error "Unable to get UUID from PARTUUID for root B partition"
-}
-
-# just read cfg file
-# args:
-# 1. run config check - pass in 0 to skip valid_config_check, any other number otherwise
-read_cfg() {
- #get config options
- if [[ -f "$CONFIG_FILE" ]]; then
- source "$CONFIG_FILE"
- else
- echo "No config file found at $CONFIG_FILE"
- [[ "$1" -eq 0 ]] || help_menu 1
- fi
-
- [[ -z "$PACKAGE_MANAGER" ]] && PACKAGE_MANAGER="TDNF"
- [[ -z "$AUTO_FINISH" ]] && AUTO_FINISH="NO"
- [[ -z "$AUTO_SWITCH" ]] && AUTO_SWITCH="NO"
-
- # make sure all options are all caps (except platform)
- AUTO_FINISH="${AUTO_FINISH^^}"
- BOOT_TYPE="${BOOT_TYPE^^}"
- AUTO_SWITCH="${AUTO_SWITCH^^}"
- PACKAGE_MANAGER="${PACKAGE_MANAGER^^}"
-
- # remove any trailing commas from sets (easy mistake to make)
- for usr_set in "${SETS[@]}"; do
- local A_partuuid="${usr_set}[0]"
- local B_partuuid="${usr_set}[1]"
- local mnt_pt="${usr_set}[2]"
- # new_set can't be local, otherwise doesn't work
- declare -n new_set=$usr_set
- new_set=( "${!A_partuuid%,}" "${!B_partuuid%,}" "${!mnt_pt%,}" )
- done
-
- # get UUIDs from PARTUUIDs
- if [[ -n "${_ROOT[0]}" ]]; then
- A_UUID_ROOT=$(blkid -t PARTUUID="${_ROOT[0]}" -o value -s UUID) || error
- fi
-
- if [[ -n "${_ROOT[1]}" ]]; then
- B_UUID_ROOT=$(blkid -t PARTUUID="${_ROOT[1]}" -o value -s UUID) || error
- fi
-
- [[ "$1" -eq 0 ]] || valid_config_check
-
-}
-
-# autodetect needed variables and write out configuration
-init_cfg() {
-
- read_cfg 0
-
- if [[ -z "$BOOT_TYPE" ]]; then
- echo "Attempting to guess boot type..."
- if fdisk -l | grep -q "BIOS" && [[ -d "/sys/firmware/efi" ]]; then
- BOOT_TYPE="BOTH"
- elif [[ -d "/sys/firmware/efi" ]]; then
- BOOT_TYPE="EFI"
- else
- BOOT_TYPE="BIOS"
- fi
- echo "Detected $BOOT_TYPE boot type"
- fi
-
- CONFIG_BOOT_TYPE="$BOOT_TYPE"
-
- # if the partition UUIDs are not set in the config file, try to auto detect them.
- if { [[ "$BOOT_TYPE" == "EFI" ]] || [[ $BOOT_TYPE == "BOTH" ]]; } && { [[ -z "${EFI[0]}" ]] || [[ -z "${EFI[1]}" ]]; }; then
- echo "detecting efi partition uuids"
- auto_detect_flag=1
- detect_efi_partitions
- SETS+=("EFI")
- fi
-
- if [[ -z "${_ROOT[0]}" ]] || [[ -z "${_ROOT[1]}" ]]; then
- echo "detecting rootfs partition uuids"
- auto_detect_flag=1
- detect_rootfs_partitions
- SETS+=("_ROOT")
- fi
-
- if [[ ${#SETS[@]} -eq 0 ]]; then
- SETS+=("_ROOT")
- [[ $BOOT_TYPE == "EFI" ]] && SETS+=("EFI")
- fi
-
- A_UUID_ROOT=$(blkid -t PARTUUID="${_ROOT[0]}" -o value -s UUID) || error
- B_UUID_ROOT=$(blkid -t PARTUUID="${_ROOT[1]}" -o value -s UUID) || error
-
- echo "CONFIGURED SETTINGS:"
- local elem
- for elem in "${SETS[@]}"; do
- local A_partuuid="${elem}[0]"
- local B_partuuid="${elem}[1]"
- echo " PARTUUID for $elem (A) = ${!A_partuuid}"
- echo " PARTUUID for $elem (B) = ${!B_partuuid}"
- done
-
-cat <&2
- A_UUID_ROOT=$A_UUID_ROOT
- B_UUID_ROOT=$B_UUID_ROOT
- BOOT_TYPE=$BOOT_TYPE
- PACKAGE_MANAGER=$PACKAGE_MANAGER
- AUTO_SWITCH=$AUTO_SWITCH
- AUTO_FINISH=$AUTO_FINISH
-EOF
-
- # make sure user confirms auto detected settings
- # assume that config file is correct, if we didnt have to auto detect anything
- if [[ $auto_detect_flag == 1 ]]; then
- echo "CONFIRM: Are these settings correct? Please enter y/n: "
- local confirm
- read -r confirm
- [[ $confirm != "y" && "$confirm" != "yes" ]] && error "User declined settings. Please update /etc/abupdate.conf to the correct settings"
- fi
-
- # write detected values to the config file, so we don't have to do it again later
- update_a_config
-}
-
-# checks the partition UUIDs to ensure there are no duplicates
-check_for_dup_partuuids() {
- # check for duplicate partuuids
- # add each partuuid to a list, then just check the list for repetition
- # maybe not the most efficient, but the number of partuuids to check is minimal
- local list=()
- local names=() # e.g ROOT, EFI
- local elem
- for elem in "${SETS[@]}"; do
- local A_partuuid="${elem}[0]"
- local B_partuuid="${elem}[1]"
- [[ -z "${!A_partuuid}" ]] && error "No partuuid specified for active partition $elem"
- [[ -z "${!B_partuuid}" ]] && error "No partuuid specified for shadow partition $elem"
- [[ "${!A_partuuid}" == "${!B_partuuid}" ]] && error "Duplicate PARTUUID detected"
- local i=0
- local puuid
- for puuid in "${list[@]}"; do
- if [[ "$puuid" == "${!A_partuuid}" && "${names[$i]}" != "$elem" ]]; then
- error "Duplicated partuuid detected! $puuid matches ${!A_partuuid}"
- elif [[ "$puuid" == "${!B_partuuid}" && "${names[$i]}" != "$elem" ]]; then
- error "Duplicated partuuid detected! $puuid matches ${!B_partuuid}"
- fi
- i=$i+1
- done
- list+=("${!A_partuuid}" "${!B_partuuid}")
- # match every entry in list with the correct name
- names+=("$elem" "$elem")
- done
-}
-
-# update config file in this partition with current variables
-update_a_config() {
- [[ -f "$CONFIG_FILE" ]] || touch $CONFIG_FILE
-
- local temp="$BOOT_TYPE"
- BOOT_TYPE="$CONFIG_BOOT_TYPE"
-
- declare variables=( "BOOT_TYPE" "AUTO_FINISH" "AUTO_SWITCH" )
- for var in "${variables[@]}"; do
- # either create new or update existing. Want to avoid changing things if possible, so probably best to find and replace
- # instead of just echo-ing all the existing values, which might erase some info in the file
- sed -i "s/$var=.*/$var=${!var}/g" "$CONFIG_FILE"
-
- # uncomment line if commented
- sed -i "/$var=${!var}/s/^#//g" "$CONFIG_FILE"
-
- # remove any leading whitespace
- sed -i "/$var=${!var}/s/^[ \t]*//g" "$CONFIG_FILE"
-
- # check if sed performed the substitution, if not then just add a new line
- grep "$var=${!var}" "$CONFIG_FILE" &> /dev/null || echo "$var=${!var}" >> "$CONFIG_FILE"
- done
-
- BOOT_TYPE="$temp"
-
- local sets_str="SETS=("
- local elem
- for elem in "${SETS[@]}"; do
- local A_partuuid="${elem}[0]"
- local B_partuuid="${elem}[1]"
- local mnt_pt="${elem}[2]"
- local str="$elem=(\"${!A_partuuid}\" \"${!B_partuuid}\" \"${!mnt_pt}\")"
-
- sed -i "s#$elem=.*#$str#g" "$CONFIG_FILE"
- sed -i "/$elem=.*/s/^#//g" "$CONFIG_FILE"
- sed -i "/$elem=.*/s/^[ \t]*//g" "$CONFIG_FILE"
- grep "$str" "$CONFIG_FILE" &> /dev/null || echo "$str" >> "$CONFIG_FILE"
-
- sets_str="$sets_str \"$elem\" "
- done
-
- # update sets
- sets_str="$sets_str)"
- sed -i "s/SETS=.*/$sets_str/g" "$CONFIG_FILE"
- sed -i "/SETS=.*/s/^#//g" "$CONFIG_FILE"
- sed -i "/SETS=.*/s/^[ \t]*//g" "$CONFIG_FILE"
- grep "$sets_str" "$CONFIG_FILE" &> /dev/null || echo "$sets_str" >> "$CONFIG_FILE"
-
- valid_config_check
-}
-
-check_if_mntpt() {
- mountpoint "$1" &> /dev/null
-}
-
-# mount the shadow partition set as subfolders of mntpt_root
-# pass in "no_pseudo" if pseudo fs are not needed
-mount_b_partition() {
- local elem
- local fs
-
- # mount root and efi first, then others as subdirs
- [[ -d "$MNTPT_ROOT" ]] || mkdir -p "$MNTPT_ROOT"
- if ! check_if_mntpt "$MNTPT_ROOT"; then
- mount PARTUUID="${_ROOT[1]}" "$MNTPT_ROOT" || error "Failed to mount shadow root partition"
- fi
-
- [[ -d "$MNTPT_EFI" ]] || mkdir -p "$MNTPT_EFI"
- if [[ -n "$EFI" ]] && ! check_if_mntpt "$MNTPT_EFI"; then
- mount PARTUUID="${EFI[1]}" "$MNTPT_EFI" || error "Failed to mount shadow EFI partition"
- fi
-
- # mount pseudo filesystems if required
- if [[ ! "$1" == "no_pseudo" ]]; then
- local pseudo_filesystems=("proc" "dev" "sys" "tmp" "run")
- for fs in "${pseudo_filesystems[@]}"; do
- [[ -d $MNTPT_ROOT/"$fs" ]] || mkdir -p $MNTPT_ROOT/"$fs"
- check_if_mntpt "$MNTPT_ROOT/$fs" || ( mount --bind /"$fs" $MNTPT_ROOT/"$fs" || error "Failed to bind /$fs to $MNTPT_ROOT/$fs" )
- done
- fi
-
- for elem in "${SETS[@]}"; do
- local B_partuuid="${elem}[1]"
- local mnt_pt="${elem}[2]"
- if [[ ! "$elem" == "_ROOT" ]] && [[ ! "$elem" == "EFI" ]] && ! check_if_mntpt "${MNTPT_ROOT}/${!mnt_pt}"; then
- mkdir -p "${MNTPT_ROOT}/${!mnt_pt}"
- mount PARTUUID="${!B_partuuid}" "${MNTPT_ROOT}/${!mnt_pt}" || error "Failed to mount shadow ${!mnt_pt} partition (partuuid = ${!B_partuuid})"
- fi
- done
-
- echo "Mounted B partitions at $MNTPT_ROOT"
-}
-
-unmount_b_partition() {
- # unmount B filesystem
- local fs
- local elem
- local psuedo_filesystems=("proc" "dev" "sys" "tmp" "run")
- for fs in "${psuedo_filesystems[@]}"; do
- check_if_mntpt "${MNTPT_ROOT}/$fs" && unmount "$MNTPT_ROOT/$fs"
- done
-
- for elem in "${SETS[@]}"; do
- local mnt_pt="${elem}[2]"
- if [[ ! "$elem" == "_ROOT" ]] && check_if_mntpt "${MNTPT_ROOT}/${!mnt_pt}"; then
- local mnt_pt="${elem}[2]"
- unmount "${MNTPT_ROOT}/${!mnt_pt}"
- fi
- done
-
- if check_if_mntpt "$MNTPT_ROOT"; then
- unmount "$MNTPT_ROOT"
- fi
-
- echo "Unmounted B partitions from $MNTPT_ROOT"
-}
-
-# check to make sure there is enough space in the b partition
-size_check() {
- local a_name
- local b_name
- local elem
- for elem in "${SETS[@]}"; do
- local A_partuuid="${elem}[0]"
- local B_partuuid="${elem}[1]"
- a_name=$(blkid -t PARTUUID="${!A_partuuid}" | cut -d ":" -f 1) || error
- b_name=$(blkid -t PARTUUID="${!B_partuuid}" | cut -d ":" -f 1) || error
-
- # verify size matches - check to see if B has enough space to store used amount in A
- local used_a
- local capacity_b
- used_a=$(df "$a_name" | awk -F ' ' 'NR>1 {print $3}') || error
- capacity_b=$(df "$b_name" | awk -F ' ' 'NR>1 {print $2}') || error
-
- if [[ $used_a -gt $capacity_b ]]; then
- error "Partion A $elem has used $used_a 1k-blocks, Partition B has only $capacity_b 1k-blocks. There is not enough space."
- fi
- done
-}
-
-mirror_partitions() {
- # rsync specified partitions
-
- mount_b_partition
- local elem
- for elem in "${SETS[@]}"; do
- local exclude_dirs="$elem"_EXCLUDE\[\@\]
- local exclude_str=""
- exclude_dirs=( ${!exclude_dirs} )
- for dir in "${exclude_dirs[@]}"; do
- # strip leading slash, if present
- dir=${dir#/}
- exclude_str="${exclude_str} --exclude=/${dir%/}"
- done
- done
- echo "Syncing A and B partitions"
-
- # sync contents of root A filesystem to B (need /run/systemd, otherwise tdnf will complain)
- rsync -aHX --delete --include={"/proc/1/","/proc/self/","/run/systemd/"} $exclude_str --exclude={"/mnt/*","/sys/*","/proc/*","/run/*","/tmp/*","/media/*","lost+found/*","/$GRUB_CFG"} / "$MNTPT_ROOT" > /dev/null || error "Failed to sync A and B partitions"
- # only copy this the first time. don't overwrite existing
- if [[ ! -f "$MNTPT_EFI/$GRUB_CFG" ]]; then
- cp -p "/boot/efi/$GRUB_CFG" "$MNTPT_EFI/$GRUB_CFG"
- fi
-
- echo "Successfully synced A and B partitions"
-
- unmount_b_partition
-}
-
-update_config_files() {
- # update rootfs/etc/fstab to switch from A to B
- # this will be in partition B
- local elem
-
- if [[ -f "$MNTPT_ROOT/$FSTAB" ]] || [[ ! -s "$MNTPT_ROOT/$FSTAB" ]]; then
- cp -p /$FSTAB $MNTPT_ROOT/$FSTAB
- fi
-
- for elem in "${SETS[@]}"; do
- local A_partuuid="${elem}[0]"
- local B_partuuid="${elem}[1]"
- sed -i "s/${!A_partuuid}/${!B_partuuid}/g" "$MNTPT_ROOT/$FSTAB" || error "Failed to update fstab"
- done
-
- # verify that fstab is looking good
- chroot $MNTPT_ROOT /bin/bash -c "findmnt --verify" || error "/etc/fstab is invalid! Aborting"
-
- # update grub.cfg in B rootfs partition
- if [[ -f "$MNTPT_ROOT/$GRUB_CFG" ]] || [[ ! -s "$MNTPT_ROOT/$GRUB_CFG" ]]; then
- cp -p /$GRUB_CFG $MNTPT_ROOT/$GRUB_CFG
- fi
- sed -i "s/${_ROOT[0]}/${_ROOT[1]}/g" "$MNTPT_ROOT/$GRUB_CFG" || error "Failed to update grub.cfg in rootfs partition"
- sed -i "s/$A_UUID_ROOT/$B_UUID_ROOT/g" "$MNTPT_ROOT/$GRUB_CFG" || error "Failed to update grub.cfg in rootfs partition"
-}
-
-# uses kexec -l to load the new kernel into memory
-load_kernel() {
- # detect linux version
- local linux_version
- local initrd_version
- vmlinuz_version=$(grep photon_linux $MNTPT_ROOT/$PHOTON_CFG | cut -d "=" -f 2)
- initrd_version=$(grep photon_initrd $MNTPT_ROOT/$PHOTON_CFG | cut -d "=" -f 2)
-
- # maybe there is a better way to figure out the command line parameters in the shadow partition set?
- local opts
- local file
- local line
- local cmdline_var
- grep "\ $.*cmdline" < "$MNTPT_ROOT/boot/grub2/grub.cfg" | while IFS= read -r cmdline_var; do
- if grep -q "cmdline" <<< "$cmdline_var"; then
- file=$(cut -d '_' -f 1 <<< "$cmdline_var")
- file=${file#*$}
- line=$(cut -d '$' -f 2 <<< "$cmdline_var")
- opts="$opts $(grep "$line" $MNTPT_ROOT/boot/"${file}".cfg | cut -d '=' -f 2-)"
- fi
- done
-
- linux_version=$(cut -d '-' -f 2- <<< "$vmlinuz_version")
- if [[ -n "$initrd_version" ]]; then
- kexec -l $MNTPT_ROOT/boot/"$vmlinuz_version" --initrd=$MNTPT_ROOT/boot/"$initrd_version" --append=root=PARTUUID="${_ROOT[1]} $opts" || error "Failed to load kernel in partition B"
- else
- kexec -l $MNTPT_ROOT/boot/"$vmlinuz_version" --append=root=PARTUUID="${_ROOT[1]} $opts" || error "Failed to load kernel in partition B"
- fi
-}
-
-# boot into the newly loaded kernel
-kexec_reboot() {
- load_kernel
-
- # ensure that correct partitions are unmounted
- unmount_b_partition
-
- echo "Booting into B partition set"
- kexec -e || error
-}
-
-# attempt to detect the partition names for A and B rootfs partitions
-detect_rootfs_partitions() {
- # make sure it's empty - could possibly have something read in from config file
- _ROOT=()
- _ROOT+=("$(findmnt / -n -o PARTUUID)")
-
- if [ -z "${_ROOT[0]}" ]; then
- error "Unable to detect currently mounted rootfs partition"
- fi
-
- # array to store all of the root fs partition uuids
- local rootfs_partitions
- mapfile -t rootfs_partitions < <(fdisk -l | grep "Linux" | awk '{print $1}') || error
- local i=0
- local part
- for part in "${rootfs_partitions[@]}"; do
- rootfs_partitions[$i]=$(blkid "$part" -o value -s PARTUUID)
- i=$i+1
- done
-
- if [ "${#rootfs_partitions[@]}" -eq 1 ]; then
- error "Only one root filesystem partition found! A/B update requires a secondary partition."
- elif [ "${#rootfs_partitions[@]}" -gt 2 ]; then
- error "Unable to detect which Linux filesystem partition to use as secondary. There are more than two! Please specify in abupdate.conf"
- fi
-
- # pick the one that's different than A
- if [[ "${rootfs_partitions[1]}" != "${_ROOT[0]}" ]]; then
- _ROOT+=("${rootfs_partitions[1]}")
- else
- _ROOT+=("${rootfs_partitions[0]}")
- fi
-
- #mnt point
- _ROOT+=("/")
-}
-
-# attempt to detect the partition names for A and B EFI partitions
-detect_efi_partitions() {
- # make sure it's empty before we populate it
- EFI=()
- EFI+=("$(findmnt /boot/efi -n -o PARTUUID)")
-
- # array to store all of the efi partitions (should be two, otherwise this is BIOS boot)
- local efi_partitions
- mapfile -t efi_partitions < <(fdisk -l | grep EFI | awk '{print $1}') || error
- local i=0
- local part
- for part in "${efi_partitions[@]}"; do
- efi_partitions[$i]=$(blkid "$part" -o value -s PARTUUID) || error
- i=$i+1
- done
-
- if [ "${#efi_partitions[@]}" -eq 1 ]; then
- error "Only one efi filesystem partition found! AB update requires a secondary partition."
- elif [ "${#efi_partitions[@]}" -gt 2 ]; then
- error "Unable to detect which EFI partition to use as secondary. There are more than two! Please specify in abupdate.conf"
- fi
-
- # pick the different partition
- if [[ "${efi_partitions[1]}" != "${EFI[0]}" ]]; then
- EFI+=("${efi_partitions[1]}")
- else
- EFI+=("${efi_partitions[0]}" )
- fi
-
- EFI+=("/boot/efi")
-}
-
-# finalize the switch
-finalize() {
- local disk_name
- local bootloader_efi
- local grub_bootloader_efi
-
- if [[ "$ARCH" == "aarch64" ]]; then
- grub_bootloader_efi="\EFI\grub\grubaa64.efi"
- bootloader_efi="\EFI\BOOT\BOOTAA64.EFI"
- elif [[ "$ARCH" == "x86_64" ]]; then
- grub_bootloader_efi="\EFI\grub\grubx64.efi"
- bootloader_efi="\EFI\BOOT\grubx64.efi"
- else
- error "$ARCH not supported"
- fi
-
- # if BIOS, update MBR by installing grub
- # if EFI, update efi boot entries
- # if both, update both
-
- if [[ ! $BOOT_TYPE == "BIOS" ]] && [[ ! $BOOT_TYPE == "EFI" ]] && [[ ! $BOOT_TYPE == "BOTH" ]]; then
- error "unknown boot type"
- fi
-
- if [[ $BOOT_TYPE == "BIOS" ]] || [[ $BOOT_TYPE == "BOTH" ]]; then
- disk_name=$(blkid -t PARTUUID="${_ROOT[0]}" | cut -d ":" -f 1) || error
- disk_name=${disk_name//[0-9]/}
-
- rpm -q grub2-pc &> /dev/null || error "grub2-pc not installed. Install with \"tdnf install grub2-pc\""
-
- # try to get platform type, if wrong this could brick at least this partition, but potentially the whole machine by messing up the MBR
- if [[ -z "$PLATFORM" && $(find /usr/lib/grub/* -prune -name "*" | wc -l) -gt 1 ]]; then
- error "Multiple platforms detected in /usr/lib/grub. Please specify correct platform for grub by setting PLATFORM in /etc/abupdate.conf"
- elif [[ -z "$PLATFORM" ]]; then
- PLATFORM=$(ls /usr/lib/grub) || error
- fi
-
- # overwrite MBR by grub2-install
- grub2-install "$disk_name" --target="$PLATFORM" || error "Failed to update MBR. Is grub2-pc package installed?"
-
- elif [[ $BOOT_TYPE == "EFI" ]]; then
- # install grub into this partition, otherwise it will use same bootloader as other partition set
- # and that will just boot into the other partition set (in some situations)
- disk_name=$(blkid -t PARTUUID="${EFI[0]}" | cut -d ":" -f 1) || error
- disk_name=${disk_name//[0-9]/}
-
- rpm -q --quiet grub2-efi || error "grub2-efi not installed. Install with \"tdnf install grub2-efi\""
-
- if [[ -z "$PLATFORM" && $(find /usr/lib/grub/* -prune -name "*" | wc -l) -gt 1 ]]; then
- error "Multiple platforms detected in /usr/lib/grub. Please specify correct platform for grub by setting PLATFORM in /etc/abupdate.conf"
- elif [[ -z "$PLATFORM" ]]; then
- PLATFORM=$(ls /usr/lib/grub) || error
- fi
-
- # install new grub bootloader for this partition set
- grub2-install "$disk_name" --target="$PLATFORM" || error "Failed to install new grub bootloader. Is grub2-efi package installed?"
- fi
-
- if [[ $BOOT_TYPE == "EFI" ]] || [[ $BOOT_TYPE == "BOTH" ]]; then
- # update efi grub cfg in current partition to point to this partition (after switch, it will still point to previous)
- sed -i "s/$B_UUID_ROOT/$A_UUID_ROOT/g" "/boot/efi/$GRUB_CFG" || error "Failed to update grub.cfg in EFI partition"
-
- # find which entry is the grub entry
- local bootnum
- bootnum=$(efibootmgr | grep -E "(^|\s)grub(\s|$)")
-
- # if no grub entry, then we have to do this a bit differently
- # probably, grub is not installed
- if [[ -n "$bootnum" ]]; then
- bootnum="${bootnum//[!0-9]/}"
-
- # get the partition number for the A partition
- local partition_num
- partition_num=$(blkid | grep "${EFI[0]}" | cut -d ":" -f 1) || error
- partition_num="${partition_num//[!0-9]/}"
-
- # create new efi boot entry
- efibootmgr -c -d "$disk_name" -p "$partition_num" -L grub -l "$grub_bootloader_efi" &> /dev/null || error "Failed to create new efi boot entry (Grub)"
-
- # delete existing entry for grub
- # modifying existing doesn't seem to work
- efibootmgr -b "$bootnum" -B &> /dev/null || error "Failed to edit efi boot entry. Is efibootmgr package installed?"
- else
- # get the partition number for the A partition
- local partition_num
- partition_num=$(blkid | grep "${EFI[0]}" | cut -d ":" -f 1) || error
- partition_num="${partition_num//[!0-9]/}"
-
- # create new Photon boot entry
- bootnum=$(efibootmgr | grep -E "(^|\s)Photon(\s|$)")
- bootnum="${bootnum//[!0-9]/}"
- efibootmgr -c -d "$disk_name" -p "$partition_num" -L Photon -l "$bootloader_efi" &> /dev/null || error "Failed to create new efi boot entry (Photon)"
- [[ -n $bootnum ]] && (efibootmgr -b "$bootnum" -B &> /dev/null || error "Failed to delete existing Photon boot entry")
- fi
- fi
- echo "Successfully finalized update. Next (re)boot will be into this partition set."
-}
-
-# flow control function
-parse_cmdline_args "$@"
diff --git a/SPECS/abupdate/abupdate.conf b/SPECS/abupdate/abupdate.conf
deleted file mode 100644
index 6944b9d80f..0000000000
--- a/SPECS/abupdate/abupdate.conf
+++ /dev/null
@@ -1,41 +0,0 @@
-# either EFI, BIOS, or BOTH
-# BOOT_TYPE=
-
-# automatically switch to other partition set after update?
-# AUTO_SWITCH=NO
-
-# automatically finalize the update after a switch?
-# AUTO_FINISH=no
-
-# can choose to either use tdnf or rpm as a package manager
-# if not specified, tdnf is used
-# PACKAGE_MANAGER=tdnf
-
-# for update/install/uninstall commands (with tdnf)
-# use a custom tdnf config file for a/b update
-# TDNF_CONFIG=/path/to/config
-
-# Provide information about partition sets
-# PARTUUID info can be found with the "blkid" command
-# ex) blkid /dev/sdb1
-# /dev/sdb1: UUID="d99e366e-3dd5-445e-906f-900fc927d4f4" BLOCK_SIZE="1024" TYPE="ext4" PARTUUID="febbf1a8-01"
-#
-# EFI is needed if booting with EFI
-# Format: PARTUUID A, PARTUUID B, mount point
-#
-# Example: HOME=("PARTUUID A" "PARTUUID B" "/home")
-#
-# Note that the / partition is labeled as _ROOT to avoid conflicts with /root (which can be labeled ROOT)
-# EFI=("PARTUUID A" "PARTUUID B" "/boot/efi")
-# _ROOT=("PARTUUID A" "PARTUUID B" "/")
-
-# List of all partition sets
-# SETS=( "_ROOT" )
-
-# exclude the following directories/files from being synced
-# note that these directory paths are absolute, not relative to current working directory
-#
-# Format: _EXCLUDE=( "/dir1/" "/dir2" "/dir3/subdir/file" ... "/dirN/" )
-#
-# Example:
-# HOME_EXCLUDE=( "/mnt" "lost+found" )
diff --git a/SPECS/abupdate/abupdate.service b/SPECS/abupdate/abupdate.service
deleted file mode 100644
index 64febd7a34..0000000000
--- a/SPECS/abupdate/abupdate.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Finalizes partition switch on boot, if enabled.
-
-[Service]
-Type=simple
-ExecStart=/usr/sbin/abupdate finish
-
-[Install]
-WantedBy=multi-user.target
diff --git a/SPECS/abupdate/abupdate.spec b/SPECS/abupdate/abupdate.spec
deleted file mode 100644
index 8da9501697..0000000000
--- a/SPECS/abupdate/abupdate.spec
+++ /dev/null
@@ -1,60 +0,0 @@
-%global debug_package %{nil}
-
-Name: abupdate
-Summary: A/B partition set update and rollback
-Version: 1.0
-Release: 3%{?dist}
-License: GPLv2
-Group: System Environment/Kernel
-Vendor: VMware, Inc.
-Distribution: Photon
-BuildArch: noarch
-
-Source0: abupdate
-Source1: abupdate.conf
-Source2: abupdate.service
-Source3: README
-
-BuildRequires: systemd-rpm-macros
-
-Requires: bash
-Requires: systemd
-Requires: kexec-tools
-Requires: util-linux
-Requires: rsync
-Requires: grub2
-Requires: tar
-
-# Also requires grub2-pc if BIOS, efibootmgr if UEFI
-# That will have to be installed by the user based on their system
-Recommends: grub2-pc
-Recommends: efibootmgr
-
-%description
-Contains the abupdate utility, which provides capabilities in conjunction with an A/B set of partitions,
-to atomically update packages/kernel versions, and safely rollback if something goes wrong.
-abupdate has the ability to mirror data and update packages/kernel between partition sets,
-as well as switch between sets, and rollback from A to B.
-
-%install
-mkdir -p %{buildroot}{%{_sbindir},%{_sysconfdir},%{_unitdir},%{_docdir}}
-cp %{SOURCE0} %{buildroot}%{_sbindir}
-cp %{SOURCE1} %{buildroot}%{_sysconfdir}
-cp %{SOURCE2} %{buildroot}%{_unitdir}
-cp %{SOURCE3} %{buildroot}%{_docdir}
-
-%files
-%defattr(-,root,root,-)
-%doc %{_docdir}/README
-%{_sbindir}/abupdate
-%config(noreplace) %{_sysconfdir}/abupdate.conf
-%{_unitdir}/abupdate.service
-
-%changelog
-* Thu Feb 23 2023 Brennan Lamoreaux 1.0-3
-- Enable kexec for ARM, don't replace abupdate.conf. Edit abupdate
-- to support aarch64.
-* Thu Feb 23 2023 Shreenidhi Shedi 1.0-2
-- Requires kexec-tools only in x86_64
-* Thu Oct 20 2022 Brennan Lamoreaux 1.0-1
-- Initial addition to Photon.
diff --git a/SPECS/acl/acl.spec b/SPECS/acl/acl.spec
deleted file mode 100644
index 468fb746a4..0000000000
--- a/SPECS/acl/acl.spec
+++ /dev/null
@@ -1,111 +0,0 @@
-Summary: Access control list utilities
-Name: acl
-Version: 2.3.1
-Release: 2%{?dist}
-License: GPLv2+
-Group: System Environment/Base
-URL: https://savannah.nongnu.org/projects/%{name}
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.gz
-%define sha512 %{name}=f101e27058c959f4c412f475c3fc77a90d1ead8728701e4ce04ff08b34139d35e0e72278c9ac7622ba6054e81c0aeca066e09491b5f5666462e3866705a0e892
-
-Requires: libacl = %{version}-%{release}
-
-BuildRequires: attr-devel
-
-%description
-This package contains the getfacl and setfacl utilities needed for
-manipulating access control lists.
-
-%package -n libacl
-Summary: Dynamic library for access control list support
-License: LGPLv2+
-Group: System Environment/Libraries
-Requires: attr
-
-%description -n libacl
-This package contains the libacl.so dynamic library which contains
-the POSIX 1003.1e draft standard 17 functions for manipulating access
-control lists.
-
-%package -n libacl-devel
-Summary: Files needed for building programs with libacl
-License: LGPLv2+
-Group: Development/Libraries
-Requires: libacl = %{version}-%{release}
-Requires: attr-devel
-
-%description -n libacl-devel
-This package contains header files and documentation needed to develop
-programs which make use of the access control list programming interface
-defined in POSIX 1003.1e draft standard 17.
-
-%prep
-%autosetup -p1
-
-%build
-%configure \
- --disable-static
-
-%make_build
-
-%install
-%make_install %{?_smp_mflags}
-
-%find_lang %{name}
-
-%check
-if ./setfacl -m u:$(id -u):rwx .; then
- %make_build check
-else
- echo '*** The chroot file system does not support all ACL options ***'
-fi
-
-%post -n libacl
-/sbin/ldconfig
-
-%postun -n libacl
-/sbin/ldconfig
-
-%files -f %{name}.lang
-%defattr(-,root,root)
-%{_bindir}/chacl
-%{_bindir}/getfacl
-%{_bindir}/setfacl
-%{_mandir}/man1/chacl.1*
-%{_mandir}/man1/getfacl.1*
-%{_mandir}/man1/setfacl.1*
-%{_mandir}/man5/acl.5*
-
-%files -n libacl-devel
-%defattr(-,root,root)
-%{_libdir}/libacl.so
-%{_includedir}/%{name}
-%{_includedir}/sys/acl.h
-%{_mandir}/man3/acl_*
-%{_docdir}/acl/*
-%{_libdir}/pkgconfig/libacl.pc
-
-%files -n libacl
-%defattr(-,root,root)
-%{_libdir}/libacl.so.*
-
-%changelog
-* Mon Jul 24 2023 Shreenidhi Shedi 2.3.1-2
-- Fix spec issues
-* Mon Apr 12 2021 Gerrit Photon 2.3.1-1
-- Automatic Version Bump
-* Mon Sep 17 2018 Ankit Jain 2.2.53-1
-- Updated to version 2.2.53
-* Fri Jul 28 2017 Chang Lee 2.2.52-5
-- Fixed %check for filtering unsupported check env
-* Thu Nov 24 2016 Alexey Makhalov 2.2.52-4
-- BuildRequired attr-devel.
-* Wed Oct 05 2016 ChangLee 2.2.52-3
-- Modified %check
-* Tue May 24 2016 Priyesh Padmavilasom 2.2.52-2
-- GA - Bump release of all rpms
-* Thu Feb 26 2015 Divya Thaluru 2.2.52-1
-- Initial version
diff --git a/SPECS/aide/aide.conf b/SPECS/aide/aide.conf
deleted file mode 100644
index 9374f606a8..0000000000
--- a/SPECS/aide/aide.conf
+++ /dev/null
@@ -1,82 +0,0 @@
-# Example configuration file for AIDE.
-
-@@define DBDIR /var/lib/aide
-
-# The location of the database to be read.
-database_in=file:@@{DBDIR}/aide.db.gz
-
-# The location of the database to be written.
-#database_out=sql:host:port:database:login_name:passwd:table
-#database_out=file:aide.db.new
-database_out=file:@@{DBDIR}/aide.db.new.gz
-
-# Whether to gzip the output to database
-gzip_dbout=yes
-
-log_level=info
-
-report_url=file:/var/log/aide/aide.log
-report_url=stdout
-#report_url=stderr
-#NOT IMPLEMENTED report_url=mailto:root@foo.com
-#NOT IMPLEMENTED report_url=syslog:LOG_AUTH
-
-# These are the default rules.
-#
-#p: permissions
-#i: inode:
-#n: number of links
-#u: user
-#g: group
-#s: size
-#b: block count
-#m: mtime
-#a: atime
-#c: ctime
-#S: check for growing size
-#md5: md5 checksum
-#sha1: sha1 checksum
-#rmd160: rmd160 checksum
-#tiger: tiger checksum
-#haval: haval checksum
-#gost: gost checksum
-#crc32: crc32 checksum
-#R: p+i+n+u+g+s+m+c+md5
-#L: p+i+n+u+g
-#E: Empty group
-#>: Growing logfile p+u+g+i+n+S
-
-# You can create custom rules like this.
-
-NORMAL = R+b+sha512
-
-DIR = p+i+n+u+g
-
-# Next decide what directories/files you want in the database.
-
-/boot NORMAL
-/bin NORMAL
-/sbin NORMAL
-/lib NORMAL
-/opt NORMAL
-/usr NORMAL
-/root NORMAL
-
-# Check only permissions, inode, user and group for /etc, but
-# cover some important files closely.
-/etc p+i+u+g
-!/etc/mtab
-/etc/exports NORMAL
-/etc/fstab NORMAL
-/etc/passwd NORMAL
-/etc/group NORMAL
-/etc/gshadow NORMAL
-/etc/shadow NORMAL
-
-/var/log p+n+u+g
-
-# With AIDE's default verbosity level of 5, these would give lots of
-# warnings upon tree traversal. It might change with future version.
-#
-#=/lost\+found DIR
-#=/home DIR
diff --git a/SPECS/aide/aide.spec b/SPECS/aide/aide.spec
deleted file mode 100644
index df61092384..0000000000
--- a/SPECS/aide/aide.spec
+++ /dev/null
@@ -1,114 +0,0 @@
-Summary: Intrusion detection environment
-Name: aide
-Version: 0.17.4
-Release: 6%{?dist}
-URL: /~https://github.com/aide/aide
-License: GPLv2+
-Group: System Environment/Base
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: /~https://github.com/aide/aide/releases/download/%{version}/%{name}-%{version}.tar.gz
-%define sha512 %{name}=b6dba54fd204e1899d47b0b4139786cbeaa51c388027e2cfc1bb839297a70ae8ad6f37429594a730fac8007d62b4ba5b61a4aa22edbc55cbe986ccfaf5197f31
-
-Source1: %{name}.conf
-
-BuildRequires: build-essential
-BuildRequires: pcre-devel
-BuildRequires: libgpg-error-devel
-BuildRequires: openssl-devel
-BuildRequires: zlib-devel
-BuildRequires: curl-devel
-BuildRequires: libgcrypt-devel
-BuildRequires: audit-devel
-BuildRequires: libacl-devel
-BuildRequires: attr-devel
-BuildRequires: libselinux-devel
-BuildRequires: e2fsprogs-devel
-
-%if 0%{?with_check}
-BuildRequires: check-devel
-%endif
-
-Requires: pcre
-Requires: libgpg-error
-Requires: openssl
-Requires: libgcrypt
-Requires: audit
-Requires: libacl
-Requires: attr
-Requires: libselinux
-Requires: curl-libs
-Requires: e2fsprogs
-
-%description
-AIDE (Advanced Intrusion Detection Environment) is a file integrity
-checker and intrusion detection program.
-
-%prep
-%autosetup -p1 -n %{name}-%{version}
-
-%build
-export HAVE_CHECK=1
-autoreconf -ivf
-%configure \
- --disable-static \
- --with-config_file=%{_sysconfdir}/%{name}.conf \
- --with-gcrypt \
- --with-zlib \
- --with-curl \
- --with-posix-acl \
- --with-selinux \
- --with-xattr \
- --with-e2fsattrs \
- --with-audit
-
-%make_build
-
-%install
-%make_install %{?_smp_mflags}
-
-mkdir -p %{buildroot}%{_sysconfdir} \
- %{buildroot}%{_sharedstatedir}/%{name} \
- %{buildroot}%{_var}/log/%{name} \
-
-cp %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}.conf
-
-chmod 600 %{buildroot}%{_sysconfdir}/%{name}.conf
-
-chmod 700 %{buildroot}%{_sharedstatedir}/%{name} \
- %{buildroot}%{_var}/log/%{name}
-
-%if 0%{?with_check}
-%check
-make check %{?_smp_mflags}
-%endif
-
-%clean
-rm -rf %{buildroot}/*
-
-%files
-%defattr(-,root,root)
-%{_bindir}/%{name}
-%{_mandir}/*
-%config(noreplace) %{_sysconfdir}/%{name}.conf
-%dir %{_sharedstatedir}/%{name}
-%{_var}/log/%{name}
-
-%changelog
-* Sun Nov 19 2023 Shreenidhi Shedi 0.17.4-6
-- Bump version as a part of openssl upgrade
-* Wed Aug 23 2023 Shreenidhi Shedi 0.17.4-5
-- Use database_in inplace of database in aide.conf
-* Fri Apr 14 2023 Shreenidhi Shedi 0.17.4-4
-- Bump version as a part of zlib upgrade
-* Sat Mar 25 2023 Guruswamy Basavaiah 0.17.4-3
-- In aide.conf removed verbose option and introduced log_level option
-* Thu Dec 22 2022 Guruswamy Basavaiah 0.17.4-2
-- Bump release as a part of libgpg-error upgrade to 1.46
-* Thu Sep 15 2022 Shreenidhi Shedi 0.17.4-1
-- Upgrade to v0.17.4
-* Tue Sep 29 2020 Satya Naga Vasamsetty 0.16.2-2
-- openssl 1.1.1
-* Wed Aug 14 2019 Tapas Kundu 0.16.2-1
-- Initial build for Photon
diff --git a/SPECS/alsa-lib/alsa-lib.spec b/SPECS/alsa-lib/alsa-lib.spec
deleted file mode 100644
index a5c1406295..0000000000
--- a/SPECS/alsa-lib/alsa-lib.spec
+++ /dev/null
@@ -1,69 +0,0 @@
-Summary: ALSA library
-Name: alsa-lib
-Version: 1.2.8
-Release: 1%{?dist}
-License: LGPLv2+
-URL: http://alsa-project.org
-Group: Applications/Internet
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: https://www.alsa-project.org/files/pub/lib/%{name}-%{version}.tar.bz2
-%define sha512 %{name}=865ff05a8f589996f8d63d43a91c961f1b64144f3e1d17c7074b7ac16f25b3fd1c371d46ed63a8cc20fa01e63c76b75f1a9802b56889ae1073854dd050d27688
-
-BuildRequires: python3-devel
-
-Requires: python3
-
-%description
-The ALSA Library package contains the ALSA library used by programs
-(including ALSA Utilities) requiring access to the ALSA sound interface.
-
-%package devel
-Summary: Header and development files
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-It contains the libraries and header files to create applications
-
-%prep
-%autosetup -p1
-
-%build
-%configure
-%make_build
-
-%install
-%make_install %{?_smp_mflags}
-rm -f %{buildroot}%{_libdir}/*.la
-
-%files
-%defattr(-,root,root)
-%{_bindir}/*
-%{_libdir}/*.so*
-%{_libdir}/pkgconfig/*
-%exclude %dir %{_libdir}/debug
-%{_datadir}/*
-
-%files devel
-%defattr(-,root,root)
-%{_includedir}/*
-
-%changelog
-* Fri Oct 28 2022 Gerrit Photon 1.2.8-1
-- Automatic Version Bump
-* Mon Jul 11 2022 Gerrit Photon 1.2.7.2-1
-- Automatic Version Bump
-* Sun May 29 2022 Shreenidhi Shedi 1.2.6.1-2
-- Fix binary path
-* Mon Apr 18 2022 Gerrit Photon 1.2.6.1-1
-- Automatic Version Bump
-* Mon Apr 12 2021 Gerrit Photon 1.2.4-1
-- Automatic Version Bump
-* Mon Jul 20 2020 Tapas Kundu 1.2.3.2-2
-- Build with python3
-- Mass removal python2
-* Wed Jul 08 2020 Gerrit Photon 1.2.3.2-1
-- Automatic Version Bump
-* Mon Dec 10 2018 Alexey Makhalov 1.1.7-1
-- initial version, moved from Vivace.
diff --git a/SPECS/alsa-utils/alsa-utils.spec b/SPECS/alsa-utils/alsa-utils.spec
deleted file mode 100644
index ad791967be..0000000000
--- a/SPECS/alsa-utils/alsa-utils.spec
+++ /dev/null
@@ -1,71 +0,0 @@
-Summary: ALSA Utilities
-Name: alsa-utils
-Version: 1.2.8
-Release: 2%{?dist}
-License: LGPLv2+
-URL: http://alsa-project.org
-Group: Applications/Internet
-Vendor: VMware, Inc.
-Distribution: Photon
-Source0: https://www.alsa-project.org/files/pub/utils/%{name}-%{version}.tar.bz2
-%define sha512 %{name}=882e6f67467596ed273bf554fcce87d8ef287806bbdabd6c103de4980981f9e2102fb3800c6e8628ee8e86ffb165c1c92f9370c8145f28a6cb7cca563942330b
-
-Patch0: ens1371.patch
-
-BuildRequires: alsa-lib-devel
-BuildRequires: ncurses-devel
-BuildRequires: systemd-devel
-
-Requires: linux-drivers-sound
-Requires: alsa-lib
-Requires: ncurses
-
-%description
-The ALSA Utilities package contains various utilities which are useful for controlling your sound card.
-
-%prep
-%autosetup -p1
-
-%build
-%configure --disable-alsaconf \
- --disable-xmlto \
- --with-udev-rules-dir=%{_udevrulesdir} \
- --with-systemdsystemunitdir=%{_unitdir}
-
-%make_build
-
-%install
-%make_install %{?_smp_mflags}
-install -dm 755 %{buildroot}%{_sharedstatedir}/alsa
-find %{buildroot} -name \*.la -delete
-
-%post
-alsactl init
-alsactl -L store
-
-%files
-%defattr(-,root,root)
-%{_bindir}/*
-%{_sbindir}/*
-%{_datadir}/*
-%{_localstatedir}/*
-%{_unitdir}/*
-%{_udevrulesdir}/*
-%{_libdir}/alsa-topology/libalsatplg_module_nhlt.so
-%exclude %dir %{_libdir}/debug
-
-%changelog
-* Fri Jun 09 2023 Nitesh Kumar 1.2.8-2
-- Bump version as a part of ncurses upgrade to v6.4
-* Fri Oct 28 2022 Gerrit Photon 1.2.8-1
-- Automatic Version Bump
-* Mon Jul 11 2022 Gerrit Photon 1.2.7-1
-- Automatic Version Bump
-* Mon Feb 28 2022 Shreenidhi Shedi 1.2.4-2
-- Fix binary path
-* Mon Apr 12 2021 Gerrit Photon 1.2.4-1
-- Automatic Version Bump
-* Wed Jul 08 2020 Gerrit Photon 1.2.3-1
-- Automatic Version Bump
-* Mon Dec 10 2018 Alexey Makhalov 1.1.7-1
-- initial version, moved from Vivace
diff --git a/SPECS/alsa-utils/ens1371.patch b/SPECS/alsa-utils/ens1371.patch
deleted file mode 100644
index f11c55ba16..0000000000
--- a/SPECS/alsa-utils/ens1371.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -Naur alsa-utils-1.0.29/alsactl/init/00main alsa-utils-1.0.29_/alsactl/init/00main
---- alsa-utils-1.0.29/alsactl/init/00main 2015-02-26 06:49:40.000000000 -0800
-+++ alsa-utils-1.0.29_/alsactl/init/00main 2015-06-02 09:57:23.342226526 -0700
-@@ -32,6 +32,7 @@
- # real ALSA configuration database
- CARDINFO{driver}=="HDA-Intel", INCLUDE="hda", GOTO="init_end"
- CARDINFO{driver}=="CA0106", INCLUDE="ca0106", GOTO="init_end"
-+CARDINFO{driver}=="ENS1371", INCLUDE="ens1371", GOTO="init_end"
- CARDINFO{driver}=="Test", INCLUDE="test", GOTO="init_end"
-
- LABEL="init_end"
-diff -Naur alsa-utils-1.0.29/alsactl/init/ens1371 alsa-utils-1.0.29_/alsactl/init/ens1371
---- alsa-utils-1.0.29/alsactl/init/ens1371 1969-12-31 16:00:00.000000000 -0800
-+++ alsa-utils-1.0.29_/alsactl/init/ens1371 2014-01-16 20:20:09.000000000 -0800
-@@ -0,0 +1,15 @@
-+# Configuration for ensoniq based cards
-+
-+CARDINFO{mixername}=="Cirrus Logic CS4297A rev 3", \
-+ ATTR{subsystem_vendor}=="0x1274", ATTR{subsystem_device}=="0x1371", \
-+ GOTO="vmware-ac97"
-+RESULT="false", EXIT="return"
-+
-+LABEL="vmware-ac97"
-+# playback
-+CTL{reset}="mixer"
-+CTL{name}="Master Playback Volume", CTL{value}="0dB,0dB"
-+CTL{name}="Master Playback Switch", CTL{value}="on"
-+CTL{name}="PCM Playback Volume", CTL{value}="51dB,51dB"
-+CTL{name}="PCM Playback Switch", CTL{value}="on"
-+RESULT="true", EXIT="return"
-diff -Naur alsa-utils-1.0.29/alsactl/init/Makefile.am alsa-utils-1.0.29_/alsactl/init/Makefile.am
---- alsa-utils-1.0.29/alsactl/init/Makefile.am 2015-02-26 06:49:40.000000000 -0800
-+++ alsa-utils-1.0.29_/alsactl/init/Makefile.am 2015-06-02 10:50:52.732086372 -0700
-@@ -1,7 +1,7 @@
-
- init_files = \
- 00main default help info test \
-- hda ca0106
-+ hda ca0106 ens1371
- EXTRA_DIST = $(init_files)
- alsainitdir = $(datadir)/alsa/init
- alsainit_DATA = $(init_files)
-diff -Naur alsa-utils-1.0.29/alsactl/init/Makefile.in alsa-utils-1.0.29_/alsactl/init/Makefile.in
---- alsa-utils-1.0.29/alsactl/init/Makefile.in 2015-02-26 06:50:21.000000000 -0800
-+++ alsa-utils-1.0.29_/alsactl/init/Makefile.in 2015-06-02 10:50:45.164213531 -0700
-@@ -246,7 +246,7 @@
- xmlto_available = @xmlto_available@
- init_files = \
- 00main default help info test \
-- hda ca0106
-+ hda ca0106 ens1371
-
- EXTRA_DIST = $(init_files)
- alsainitdir = $(datadir)/alsa/init
diff --git a/SPECS/amdvlk/amdvlk.spec b/SPECS/amdvlk/amdvlk.spec
deleted file mode 100644
index f6446162c5..0000000000
--- a/SPECS/amdvlk/amdvlk.spec
+++ /dev/null
@@ -1,69 +0,0 @@
-Summary: AMD Open Source Driver for Vulkan
-Name: amdvlk
-Version: 2023.Q1.3
-Release: 3%{?dist}
-License: MIT
-URL: /~https://github.com/GPUOpen-Drivers/AMDVLK
-Group: System Environment/Libraries
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: /~https://github.com/GPUOpen-Drivers/AMDVLK/archive/refs/tags/%{name}-%{version}.tar.xz
-%define sha512 %{name}=118c960c1a737f48095667283278d901284bdd5d6e9853759026781600decb59a81436683545063316661a11300dbc1be2b6e71cecf9968be91a31d83d09ae34
-
-BuildRequires: cmake
-BuildRequires: ninja-build
-BuildRequires: proto
-BuildRequires: libxcb-devel
-BuildRequires: libX11-devel
-BuildRequires: wayland-devel
-BuildRequires: libwayland-client
-BuildRequires: libxml2-devel
-BuildRequires: libffi-devel
-BuildRequires: libXrandr-devel
-BuildRequires: libXrender-devel
-BuildRequires: libxshmfence-devel
-
-%description
-AMD Open Source Driver for Vulkan
-
-%prep
-%autosetup -p1
-
-%build
-cmake -B %{_target_platform} \
- -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \
- -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
- -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \
- -DLIB_INSTALL_DIR:PATH=%{_libdir} \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \
- -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \
- -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -S xgl -DLLVM_PARALLEL_LINK_JOBS=1 \
- -DVKI_RAY_TRACING=OFF -Wno-dev
-cmake --build %{_target_platform} %{?_smp_mflags} --verbose
-
-%install
-DESTDIR=%{buildroot} cmake --install %{_target_platform} --component icd
-chmod +x %{buildroot}%{_libdir}/amdvlk64.so
-
-%clean
-rm -rf %{buildroot}/*
-
-%ldconfig_scriptlets
-
-%files
-%defattr(-,root,root)
-%{_sysconfdir}/vulkan/icd.d/amd_icd64.json
-%{_sysconfdir}/vulkan/implicit_layer.d/amd_icd64.json
-%{_libdir}/amdvlk64.so
-%license %{_datadir}/doc/%{name}/LICENSE.txt
-
-%changelog
-* Wed Jun 14 2023 Shivani Agarwal 2023.Q1.3-3
-- Bump version as a part of libX11 upgrade
-* Wed Apr 19 2023 Ashwin Dayanand Kamat 2023.Q1.3-2
-- Bump version as a part of libxml2 upgrade
-* Thu Feb 23 2023 Shivani Agarwal - 2023.Q1.3-1
-- Initial version
diff --git a/SPECS/ansible-community-general/ansible-community-general.spec b/SPECS/ansible-community-general/ansible-community-general.spec
deleted file mode 100644
index bca9fa37c0..0000000000
--- a/SPECS/ansible-community-general/ansible-community-general.spec
+++ /dev/null
@@ -1,59 +0,0 @@
-%global collection_namespace community
-%global collection_name general
-
-Summary: Modules and plugins supported by Ansible community
-Name: ansible-community-general
-Version: 6.3.0
-Release: 1%{?dist}
-License: GPL-3.0-or-later AND BSD-2-Clause AND MIT AND PSF-2.0
-URL: /~https://github.com/ansible-collections/community.general
-Group: Development/Libraries
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: /~https://github.com/ansible-collections/community.general/archive/refs/tags/%{name}-%{version}.tar.gz
-%define sha512 %{name}-%{version}=33881ae519e6378152cf5ef9d9dcc209bc7e5e218190ba48b61a7635890c6abf5089b8d199e78518d1a06a3e8e0e8c25b5da1d03fc6cbb8929c3bd07cd0798f4
-
-BuildArch: noarch
-
-BuildRequires: ansible-devel
-
-Requires: ansible
-
-%description
-This repository contains the community.general Ansible Collection. The collection is a part of the
-Ansible package and includes many modules and plugins supported by Ansible community which are not
-part of more specialized community collections.
-
-%prep
-%autosetup -p1 -n community.general-%{version}
-rm -vr .github .azure-pipelines
-find -type f ! -executable -name '*.py' -print -exec sed -i -e '1{\@^#!.*@d}' '{}' +
-find -type f -name '.gitignore' -print -delete
-
-%build
-export LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"
-%{ansible_collection_build}
-
-%install
-export LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"
-%{ansible_collection_install}
-rm -vr %{buildroot}%{ansible_collection_files}/%{collection_name}/tests
-
-%files
-%defattr(-, root, root)
-%{ansible_collection_files}
-
-%changelog
-* Wed Feb 22 2023 Nitesh Kumar 6.3.0-1
-- Version upgrade to v6.3.0
-* Tue Dec 13 2022 Gerrit Photon 6.1.0-1
-- Automatic Version Bump
-* Fri Nov 25 2022 Shreenidhi Shedi 6.0.1-1
-- Upgrade to v6.0.1
-* Tue Oct 25 2022 Gerrit Photon 5.8.0-1
-- Automatic Version Bump
-* Thu Oct 06 2022 Gerrit Photon 5.7.0-1
-- Automatic Version Bump
-* Wed Sep 28 2022 Nitesh Kumar 5.6.0-1
-- Initial version
diff --git a/SPECS/ansible-posix/ansible-posix.spec b/SPECS/ansible-posix/ansible-posix.spec
deleted file mode 100644
index 63852893d3..0000000000
--- a/SPECS/ansible-posix/ansible-posix.spec
+++ /dev/null
@@ -1,56 +0,0 @@
-%global collection_namespace ansible
-%global collection_name posix
-
-Summary: Ansible Collection targeting POSIX and POSIX-ish platforms
-Name: ansible-posix
-Version: 1.5.1
-Release: 1%{?dist}
-License: GPLv3+ and Python
-URL: /~https://github.com/ansible-collections/ansible.posix
-Group: Development/Libraries
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: /~https://github.com/ansible-collections/ansible.posix/archive/refs/tags/%{name}-%{version}.tar.gz
-%define sha512 %{name}-%{version}=5132d792b75c2b6d3779e95c28c1141807286b6f77370a5fa95325a74f723409393eb2d2585aa1b99f92b390925b6b76e208f0b25367397db7ccb5de869c252f
-
-BuildArch: noarch
-
-BuildRequires: ansible-devel
-
-Requires: ansible
-
-%description
-An Ansible Collection of modules and plugins that target POSIX UNIX/Linux and derivative Operating Systems.
-
-%prep
-%autosetup -n ansible.posix-%{version}
-rm -vr tests/{integration,utils} \
- .github \
- changelogs/fragments/.keep \
- {test-,}requirements.txt \
- shippable.yml \
- .azure-pipelines
-
-find -type f ! -executable -name '*.py' -print -exec sed -i -e '1{\@^#!.*@d}' '{}' +
-find -type f -name '.gitignore' -print -delete
-
-%build
-export LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"
-%{ansible_collection_build}
-
-%install
-export LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"
-%{ansible_collection_install}
-
-%files
-%defattr(-, root, root)
-%{ansible_collection_files}
-
-%changelog
-* Wed Feb 22 2023 Nitesh Kumar 1.5.1-1
-- Version upgrade to v1.5.1
-* Fri Nov 25 2022 Shreenidhi Shedi 1.4.0-2
-- Bump version as a part of ansible upgrade
-* Wed Sep 28 2022 Nitesh Kumar 1.4.0-1
-- Initial version
diff --git a/SPECS/ansible/ansible.spec b/SPECS/ansible/ansible.spec
deleted file mode 100644
index d12a9f5f90..0000000000
--- a/SPECS/ansible/ansible.spec
+++ /dev/null
@@ -1,126 +0,0 @@
-Summary: Configuration-management, application deployment, cloud provisioning system
-Name: ansible
-Version: 2.14.2
-Release: 2%{?dist}
-License: GPLv3+
-URL: https://www.ansible.com
-Group: Development/Libraries
-Vendor: VMware, Inc.
-Distribution: Photon
-
-Source0: http://releases.ansible.com/ansible/%{name}-%{version}.tar.gz
-%define sha512 %{name}=46ad59c694bf2aa1fc42d2f3b3074244c8d1d3acb61eb5787bd18d1efe3cc534459fc9c0628a0f60c67bd82c998f8cbbac80babf24258c37ff5ce95c8cf7900d
-
-Source1: tdnf.py
-Source2: macros.ansible
-Source3: ansible_collection.py
-
-BuildArch: noarch
-
-BuildRequires: python3-devel
-BuildRequires: python3-setuptools
-BuildRequires: python3-resolvelib
-
-%if 0%{?with_check}
-BuildRequires: python3-pip
-BuildRequires: python3-jinja2 >= 3.1.2
-BuildRequires: python3-PyYAML
-BuildRequires: python3-pytest
-BuildRequires: python3-cryptography
-%endif
-
-Requires: python3
-Requires: python3-jinja2 >= 3.1.2
-Requires: python3-PyYAML
-Requires: python3-xml
-Requires: python3-paramiko
-Requires: python3-resolvelib
-Requires: python3-curses
-
-%description
-Ansible is a radically simple IT automation system. It handles configuration-management, application deployment, cloud provisioning, ad-hoc task-execution, and multinode orchestration - including trivializing things like zero downtime rolling updates with load balancers.
-
-%package devel
-Summary: Development files for ansible packages
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-Development files for ansible packages
-
-%prep
-%autosetup -p1
-cp -vp %{SOURCE1} lib/%{name}/modules/
-
-%build
-%py3_build
-
-%install
-%py3_install
-install -Dpm0644 %{SOURCE2} %{buildroot}%{_rpmmacrodir}/macros.%{name}
-touch -r %{SOURCE2} %{buildroot}%{_rpmmacrodir}/macros.%{name}
-install -Dpm0744 %{SOURCE3} %{buildroot}%{_rpmconfigdir}/%{name}_collection.py
-touch -r %{SOURCE3} %{buildroot}%{_rpmconfigdir}/%{name}_collection.py
-
-%files
-%defattr(-, root, root)
-%{_bindir}/*
-%{python3_sitelib}/*
-
-%files devel
-%defattr(-, root, root)
-%{_rpmmacrodir}/macros.%{name}
-%{_rpmconfigdir}/%{name}_collection.py
-
-%changelog
-* Mon Nov 13 2023 Shreenidhi Shedi 2.14.2-2
-- Fix requires
-- Fix an issue in upgrade using playbook.
-* Wed Feb 22 2023 Nitesh Kumar 2.14.2-1
-- Version upgrade to v2.14.2
-* Fri Dec 16 2022 Nitesh Kumar 2.14.1-1
-- Version upgrade to v2.14.1
-* Tue Dec 06 2022 Prashant S Chauhan 2.14.0-2
-- Update release to compile with python 3.11
-* Fri Nov 25 2022 Shreenidhi Shedi 2.14.0-1
-- Upgrade to v2.14.0
-* Fri Oct 28 2022 Gerrit Photon 2.13.5-1
-- Automatic Version Bump
-* Wed Sep 28 2022 Nitesh Kumar 2.13.3-2
-- Adding devel sub package
-* Sat Sep 03 2022 Shreenidhi Shedi 2.13.3-1
-- Upgrade to v2.13.3
-* Mon Apr 18 2022 Gerrit Photon 2.9.27-1
-- Automatic Version Bump
-* Fri Dec 10 2021 Shreenidhi Shedi 2.12.1-1
-- Upgrade to v2.12.1 & fix tdnf module packaging
-* Wed Jun 02 2021 Shreenidhi Shedi 2.11.1-1
-- Bump version to 2.11.1
-* Mon Apr 12 2021 Gerrit Photon 2.9.20-1
-- Automatic Version Bump
-* Fri Jul 03 2020 Shreendihi Shedi 2.9.10-1
-- Upgrade to version 2.9.10
-- Removed python2 dependancy
-* Mon Apr 20 2020 Shreenidhi Shedi 2.8.10-2
-- Fix CVE-2020-1733, CVE-2020-1739
-* Fri Apr 03 2020 Shreenidhi Shedi 2.8.10-1
-- Upgrade version to 2.8.10 & various CVEs fixed
-* Sun Feb 16 2020 Shreenidhi Shedi 2.8.3-3
-- Fix 'make check'
-* Thu Feb 06 2020 Shreenidhi Shedi 2.8.3-2
-- Fix for CVE-2019-14864
-- Fix dependencies
-- Patch to support tdnf operations
-* Mon Aug 12 2019 Shreenidhi Shedi 2.8.3-1
-- Upgraded to version 2.8.3
-* Tue Jan 22 2019 Anish Swaminathan 2.7.6-1
-- Version update to 2.7.6, fix CVE-2018-16876
-* Mon Sep 17 2018 Ankit Jain 2.6.4-1
-- Version update to 2.6.4
-* Thu Oct 12 2017 Anish Swaminathan 2.4.0.0-1
-- Version update to 2.4.0.0
-* Thu Jun 01 2017 Dheeraj Shetty 2.2.2.0-2
-- Use python2 explicitly
-* Thu Apr 6 2017 Alexey Makhalov 2.2.2.0-1
-- Version update
-* Wed Sep 21 2016 Xiaolin Li 2.1.1.0-1
-- Initial build. First version
diff --git a/SPECS/ansible/ansible_collection.py b/SPECS/ansible/ansible_collection.py
deleted file mode 100644
index 70093bedb7..0000000000
--- a/SPECS/ansible/ansible_collection.py
+++ /dev/null
@@ -1,153 +0,0 @@
-#!/usr/bin/python3
-# SPDX-License-Identifier: GPL-3.0-or-later
-# SPDX-FileCopyrightText 2022 Maxwell G
-
-"""
-This script uses Ansible Collection metadata from galaxy.yml to figure out the
-namespace, name, and version of the collection being packaged.
-
-``ansible_collection.py install`` (used by %ansible_collecton_install) uses
-this information to find and install the collection artifact that was just
-built with %ansible_collection_build. It also generates a files list for use
-with `%files -f`.
-
-``ansible_collection.py test`` (used by %ansible_test_unit) parses galaxy.yml
-to determine the collection namespace and name that's needed to create the
-directory structure that ansible-test expects. After creating a temporary build
-directory with the needed structure, the script runs ansible-test units with
-the provided arguments.
-"""
-
-import argparse
-import shutil
-import subprocess
-import sys
-from pathlib import Path
-from tempfile import TemporaryDirectory
-from typing import Any, Dict, Optional, Sequence, Union
-
-from yaml import CSafeLoader, load
-
-
-class CollectionError(Exception):
- pass
-
-
-class AnsibleCollection:
- def __init__(self, collection_srcdir: Optional[Path] = None) -> None:
- self.collection_srcdir = collection_srcdir or Path.cwd()
- self.data = self._load_data()
- self.namespace = self.data["namespace"]
- self.name = self.data["name"]
- self.version = self.data["version"]
-
- def _load_data(self) -> Dict[str, Any]:
- path = self.collection_srcdir / "galaxy.yml"
- if not path.exists():
- raise CollectionError(f"{path} does not exist!")
- print(f"Loading collection metadata from {path}")
-
- with open(path, encoding="utf-8") as file:
- return load(file, Loader=CSafeLoader)
-
- def install(self, destdir: Union[str, Path]) -> None:
- artifact = self.collection_srcdir / Path(
- f"{self.namespace}-{self.name}-{self.version}.tar.gz"
- )
- if not artifact.exists() and not artifact.is_file():
- raise CollectionError(
- f"{artifact} does not exist! Did you run %ansible_collection_build?"
- )
-
- args = (
- "ansible-galaxy",
- "collection",
- "install",
- "-n",
- "-p",
- str(destdir),
- str(artifact),
- )
- print(f"Running: {args}")
- print()
- # Without this, the print statements are shown after the command
- # output when building in mock.
- sys.stdout.flush()
- subprocess.run(args, check=True, cwd=self.collection_srcdir)
- print()
-
- def write_filelist(self, filelist: Path) -> None:
- filelist.parent.mkdir(parents=True, exist_ok=True)
- contents = "%{ansible_collections_dir}/" + self.namespace
- print(f"Writing filelist to {filelist}")
- with open(filelist, "w", encoding="utf-8") as file:
- file.write(contents)
-
- def unit_test(self, extra_args: Sequence) -> None:
- with TemporaryDirectory() as temp:
- temppath = Path(temp) / "ansible_collections" / self.namespace / self.name
- shutil.copytree(
- self.collection_srcdir,
- temppath,
- )
- args = ("ansible-test", "units", *extra_args)
- print(f"Running: {args}")
- print()
- # Without this, the print statements are shown after the command
- # output when building in mock.
- sys.stdout.flush()
- subprocess.run(args, cwd=temppath, check=True)
-
-
-def parseargs() -> argparse.Namespace:
- parser = argparse.ArgumentParser(
- "Install and test Ansible Collections in an rpmbuild environment"
- )
- subparsers = parser.add_subparsers(dest="action")
- install_parser = subparsers.add_parser(
- "install",
- help="Run ansible-galaxy collection install and write filelist",
- )
- install_parser.add_argument(
- "--collections-dir",
- required=True,
- help="Collection destination directory",
- type=Path,
- )
- install_parser.add_argument(
- "--filelist",
- type=Path,
- required=True,
- help="%%{ansible_collection_filelist}",
- )
-
- test_parser = subparsers.add_parser(
- "test",
- help="Run ansible-test unit after creating the necessary directory structure",
- )
- test_parser.add_argument(
- "extra_args", nargs="*", help="Extra arguments to pass to ansible-test"
- )
- args = parser.parse_args()
- # add_subparsers does not support required on Python 3.6
- if not args.action:
- parser.print_usage()
- sys.exit(2)
- return args
-
-
-def main():
- args = parseargs()
- collection = AnsibleCollection()
- if args.action == "install":
- collection.install(args.collections_dir)
- collection.write_filelist(args.filelist)
- elif args.action == "test":
- collection.unit_test(args.extra_args)
-
-
-if __name__ == "__main__":
- try:
- main()
- except (CollectionError, subprocess.CalledProcessError) as err:
- sys.exit(err)
diff --git a/SPECS/ansible/macros.ansible b/SPECS/ansible/macros.ansible
deleted file mode 100644
index 64e9cf9377..0000000000
--- a/SPECS/ansible/macros.ansible
+++ /dev/null
@@ -1,32 +0,0 @@
-# Stores ephemeral data that's created by %%ansible_collection_install
-# and used by other macros.
-%__ansible_builddir %{_builddir}/%{?buildsubdir:%{buildsubdir}/}.ansible-packaging
-
-%ansible_roles_dir %{_datadir}/ansible/roles
-%ansible_collections_dir %{_datadir}/ansible/collections/ansible_collections
-
-%ansible_collection_build() ansible-galaxy collection build
-
-# On F36, package-notes-srpm-macros inserts a package note file into
-# %%{buildsubdir} that ends up getting included in the collection builds.
-%ansible_collection_install() %{shrink:
-%undefine _package_note_file
-%{_rpmconfigdir}/ansible_collection.py install
---collections-dir %{buildroot}%{ansible_collections_dir}
---filelist %{ansible_collection_filelist}
-}
-
-%ansible_test_unit() %{shrink:
-%{_rpmconfigdir}/ansible_collection.py test --
---python-interpreter %{__python3} --local %{?*}
-}
-
-# TODO: Officially deprecate this macro and add the following line to the macro
-# def after the new approach has gotten more testing and adoption:
-# %%{warn: %%{ansible_collection_files} is deprecated. Use %%files -f %%{ansible_collection_filelist} instead.}
-%ansible_collection_files %{shrink:
-%{ansible_collections_dir}/%{collection_namespace}/
-}
-
-%ansible_collection_filelist %{__ansible_builddir}/ansible_collection_files
-
diff --git a/SPECS/ansible/tdnf.py b/SPECS/ansible/tdnf.py
deleted file mode 100644
index b49273295f..0000000000
--- a/SPECS/ansible/tdnf.py
+++ /dev/null
@@ -1,371 +0,0 @@
-#!/usr/bin/python3
-# -*- coding: utf-8 -*-
-
-# Copyright (C) 2021 VMware, Inc. All Rights Reserved.
-#
-# GNU General Public License v3.0+ (https://www.gnu.org/licenses/gpl-3.0.txt)
-#
-
-""" tdnf ansible module for Photon OS """
-
-from __future__ import absolute_import, division, print_function
-
-__metaclass__ = type
-
-
-DOCUMENTATION = """
----
-module: tdnf
-short_description: Tiny DNF package manager
-description:
- - Manages rpm packages in VMware Photon OS.
-version_added: "2.12.1"
-options:
- name:
- description:
- - A package name, like C(foo), or multiple packages, like C(foo, bar).
- aliases:
- - pkg
- type: list
- elements: str
-
- state:
- description:
- - Indicates the desired package(s) state.
- - C(present) ensures the package(s) is/are present.
- - C(absent) ensures the package(s) is/are absent.
- - C(latest) ensures the package(s) is/are present and the latest version(s).
- - C(removed) ensures the package(s) is/are removed.
- - C(installed) ensures the package(s) is/are installed.
- type: str
- default: present
- choices: ['present', 'installed', 'absent', 'removed', 'latest']
-
- update_cache:
- description:
- - Update repo metadata cache. Can be run with other steps or on it's own.
- type: bool
- default: 'no'
-
- upgrade:
- description:
- - Upgrade all installed packages to their latest version.
- type: bool
- default: 'no'
-
- enablerepo:
- description:
- - I(Repoid) of repositories to enable for the install/update operation.
- When specifying multiple repos, separate them with a ",".
- type: list
- elements: str
-
- disablerepo:
- description:
- - I(Repoid) of repositories to disable for the install/update operation.
- When specifying multiple repos, separate them with a ",".
- type: list
- elements: str
-
- conf_file:
- description:
- - The tdnf configuration file to use for the transaction.
- type: str
-
- disable_gpg_check:
- description:
- - Whether to disable the GPG checking of signatures of packages being
- installed. Has an effect only if state is I(present) or I(latest).
- type: bool
- default: 'no'
-
- installroot:
- description:
- - Specifies an alternative installroot, relative to which all packages
- will be installed.
- type: str
- default: '/'
-
- security_severity:
- description:
- - Specifies the CVSS v3 score above which to install updates for packages
- type: str
-
- releasever:
- description:
- - Specifies an alternative release from which all packages will be
- installed.
- type: str
-
- exclude:
- description:
- - Package name(s) to exclude when state=present, or latest. This can be a
- list or a comma separated string.
- type: list
- elements: str
-
-author:
- - Anish Swaminathan (@suezzelur)
- - Shreenidhi Shedi (@sshedi)
-
-notes:
- - '"name" and "upgrade" are mutually exclusive.'
- - When used with a `loop:` each package will be processed individually, it is much more efficient to pass the list directly to the `name` option.
-"""
-
-EXAMPLES = """
-# Update repositories and install "foo" package
-- tdnf:
- name: ['foo']
- update_cache: yes
-
-# Update repositories and install "foo" and "bar" packages
-- tdnf:
- name: ['foo', 'bar']
- update_cache: yes
-
-# Remove "foo" package
-- tdnf:
- name: ['foo']
- state: absent
-
-# Remove "foo" and "bar" packages
-- tdnf:
- name: ['foo', 'bar']
- state: absent
-
-# Install the package "foo"
-- tdnf:
- name: ['foo']
- state: present
-
-# Install the packages "foo" and "bar"
-- tdnf:
- name: ['foo', 'bar']
- state: present
-
-# Update repositories and update package "foo" to latest version
-- tdnf:
- name: ['foo']
- state: latest
- update_cache: yes
-
-# Update repositories and update packages "foo" and "bar" to latest versions
-- tdnf:
- name: ['foo', 'bar']
- state: latest
- update_cache: yes
-
-# Update all installed packages to the latest versions
-- tdnf:
- upgrade: yes
-
-# Update repositories as a separate step
-- tdnf:
- update_cache: yes
-"""
-
-RETURN = """
-stdout:
- description: output from tdnf
- returned: success, when needed
- type: str
-stderr:
- description: error output from tdnf
- returned: success, when needed
- type: str
-rc:
- description: tdnf command return value
- returned: 0 on success
- type: int
-"""
-
-from ansible.module_utils.basic import AnsibleModule
-
-
-def prep_tdnf_cmd(cmd, p_dict):
- """Prepare tdnf command based on given configs"""
- if p_dict["excludelist"]:
- cmd = "%s --exclude %s" % (cmd, ",".join(p_dict["excludelist"]))
-
- if p_dict["disable_gpg_check"]:
- cmd = "%s --nogpgcheck" % cmd
-
- if p_dict["releasever"]:
- cmd = "%s --releasever %s" % (cmd, p_dict["releasever"])
-
- if p_dict["conf_file"]:
- cmd = "%s -c %s" % (cmd, p_dict["conf_file"])
-
- if p_dict["installroot"] != "/":
- cmd = "%s --installroot %s" % (cmd, p_dict["installroot"])
-
- for repo in p_dict["enablerepolist"]:
- cmd = "%s --enablerepo=%s" % (cmd, repo)
-
- for repo in p_dict["disablerepolist"]:
- cmd = "%s --disablerepo=%s" % (cmd, repo)
-
- if p_dict["security_severity"]:
- cmd = "%s --sec-severity %s" % (cmd, p_dict["security_severity"])
-
- return cmd
-
-
-def exec_cmd(module, params):
- """
- Run the final command
- get_out is a special value from update_package_db
- if it's set, we just update the db cache and exit
- """
- get_out = params.get("get_out", False)
- check_rc = params.get("check_rc", False)
-
- rc, out, err = module.run_command(params["cmd"], check_rc=check_rc)
- if rc:
- module.fail_json(msg=params["msg_f"], stdout=out, stderr=err)
- elif ("get_out" not in params and rc == 0) or get_out:
- module.exit_json(changed=True, msg=params["msg_s"], stdout=out, stderr=err)
-
-
-def update_package_db(module, get_out, p_dict):
- """Update tdnf cache metadata"""
- cmd = "%s makecache --refresh -q" % (p_dict["tdnf"])
- cmd = prep_tdnf_cmd(cmd, p_dict)
-
- params = {
- "cmd": cmd,
- "msg_s": "Updated package db",
- "msg_f": "Could not update package db",
- "get_out": get_out,
- }
- exec_cmd(module, params)
-
-
-def upgrade_packages(module, p_dict):
- """Upgrade all packages"""
- cmd = "%s upgrade -y" % (p_dict["tdnf"])
- cmd = prep_tdnf_cmd(cmd, p_dict)
- params = {
- "cmd": cmd,
- "msg_s": "Upgraded packages",
- "msg_f": "Failed to upgrade packages",
- }
-
- exec_cmd(module, params)
-
-
-def install_packages(module, p_dict):
- """Install given packages"""
- packages = " ".join(p_dict["pkglist"])
- cmd = "%s install -y" % (p_dict["tdnf"])
- cmd = prep_tdnf_cmd(cmd, p_dict)
- cmd = "%s %s" % (cmd, packages)
-
- params = {
- "cmd": cmd,
- "msg_s": "Installed %s package(s)" % (packages),
- "msg_f": "Failed to install %s" % (packages),
- }
-
- exec_cmd(module, params)
-
-
-def remove_packages(module, p_dict):
- """Erase/Uninstall packages"""
- packages = " ".join(p_dict["pkglist"])
- cmd = "%s erase -y %s" % (p_dict["tdnf"], packages)
-
- params = {
- "cmd": cmd,
- "msg_s": "Removed %s package(s)" % (packages),
- "msg_f": "Failed to remove %s package(s)" % (packages),
- }
-
- exec_cmd(module, params)
-
-
-def convert_to_list(input_list):
- """Convert nested list into flat list"""
- flat_list = []
-
- if not input_list:
- return flat_list
-
- for sublist in input_list:
- if not isinstance(sublist, list):
- flat_list.append(sublist)
- continue
- for item in sublist:
- flat_list.append(item)
-
- return flat_list
-
-
-def main():
- """Trigger point function"""
- choices = ["present", "installed", "absent", "removed", "latest"]
- module = AnsibleModule(
- argument_spec=dict(
- state=dict(default="present", choices=choices),
- name=dict(type="list", elements="str", aliases=["pkg"]),
- update_cache=dict(default=False, type="bool"),
- upgrade=dict(default=False, type="bool"),
- enablerepo=dict(type="list", default=[], elements="str"),
- disablerepo=dict(type="list", default=[], elements="str"),
- disable_gpg_check=dict(type="bool", default=False),
- exclude=dict(type="list", default=[], elements="str"),
- installroot=dict(type="str", default="/"),
- security_severity=dict(type="str", default=None),
- releasever=dict(default=None),
- conf_file=dict(type="str", default=None),
- ),
- required_one_of=[["name", "update_cache", "upgrade", "security_severity"]],
- mutually_exclusive=[["name", "upgrade"], ["name", "security_severity"]],
- supports_check_mode=True,
- )
-
- # Set LANG env since we parse stdout
- module.run_command_environ_update = dict(
- LANG="C", LC_ALL="C", LC_MESSAGES="C", LC_CTYPE="C"
- )
-
- p_dict = module.params
-
- pkglist = convert_to_list(p_dict["name"])
- enablerepolist = convert_to_list(p_dict["enablerepo"])
- disablerepolist = convert_to_list(p_dict["disablerepo"])
- excludelist = convert_to_list(p_dict["exclude"])
-
- p_dict["tdnf"] = module.get_bin_path("tdnf", required=True)
- p_dict["pkglist"] = pkglist
- p_dict["enablerepolist"] = enablerepolist
- p_dict["disablerepolist"] = disablerepolist
- p_dict["excludelist"] = excludelist
-
- # normalize the state parameter
- if p_dict["state"] in ["present", "installed", "latest"]:
- p_dict["state"] = "present"
-
- if p_dict["state"] in ["absent", "removed"]:
- p_dict["state"] = "absent"
-
- if p_dict["update_cache"]:
- get_out = True
- for key in ["name", "upgrade", "security_severity"]:
- if p_dict[key]:
- get_out = False
- break
- update_package_db(module, get_out, p_dict)
-
- if p_dict["upgrade"]:
- upgrade_packages(module, p_dict)
-
- if p_dict["state"] == "present":
- install_packages(module, p_dict)
- else:
- remove_packages(module, p_dict)
-
-
-if __name__ == "__main__":
- main()
diff --git a/SPECS/ant-contrib/ant-contrib-java-8.patch b/SPECS/ant-contrib/ant-contrib-java-8.patch
deleted file mode 100644
index 7f47501888..0000000000
--- a/SPECS/ant-contrib/ant-contrib-java-8.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/build.xml b/build.xml
-index eb6a80b..dcf3522 100644
---- a/build.xml
-+++ b/build.xml
-@@ -58,8 +58,8 @@
- destdir="${target.classes.dir}"
- debug="true"
- classpathref="compile.classpath"
-- source="${jdk.source}"
-- target="${jdk.target}"
-+ source="1.8"
-+ target="1.8"
- />
-
-
-@@ -73,8 +73,8 @@
-