Complete revamp from old repo

- Added 9 support
- Ported over all code from personal Gitlab
- html/ folder with files for easy content display
- Updated README (more readme updates and setup guide coming soon)

-Skip G.
This commit is contained in:
root 2022-06-15 21:26:21 +00:00
parent 57fd7c1fc8
commit 6b1db03296
27 changed files with 2096 additions and 21 deletions

View File

@ -9,3 +9,37 @@ Example call: ```./repo_compare_html.sh RHEL8_BaseOS Rocky8_BaseOS```
WARNING: only compares default modules right now! Non-default module comparisons coming soon(tm) WARNING: only compares default modules right now! Non-default module comparisons coming soon(tm)
WARNING: The order of the arguments VERY MUCH MATTERS! For Rocky 8 comparisons, RHEL repos should ALWAYS come first, they are the source to compare against! WARNING: The order of the arguments VERY MUCH MATTERS! For Rocky 8 comparisons, RHEL repos should ALWAYS come first, they are the source to compare against!
<br />
<br />
# ModuleCompare
This is a similar script to the above RepoCompare, but will analyze all the module versions against each other from one distro to the next.
It's called like the above script, except with a comma separated list of repositories that include modules.
For example, a typical usage looks like this: ```./module_compare_html.sh RHEL8_AppStream,RHEL8_CodeReady Rocky8_AppStream,Rocky8_PowerTools```
The example compares all modules found in RHEL AppStream and CodeReady against their Rocky equivalents.
Note that only the packages contained in a module are compared. No other metadata (module version strings, etc.) is considered, as it is likely unique and not meant to be copied.
WARNING: As with the above script, the order of the arguments absolutely matters. Generally RHEL repos should be listed first, as the source to compare against.
<br />
<br />
# Support Scripts
A couple support scripts are also in the repository:
**mkrepofile.sh :** Create repo files for Rocky and duplicate ones with friendly names for the RHEL repos
<br />
**repo_compare_launcher.sh :** Run all combinations of repocompare RHEL8 <---> Rocky8. Compares production, staging, source, modules, RHEL Beta, etc.

View File

@ -0,0 +1,56 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 8 Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_BaseOS.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_AppStream.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_CodeReady.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_ResilientStorage.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_HighAvailability.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,56 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 8 Beta SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_BaseOS_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream 8 Beta SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_AppStream_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady 8 Beta SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_CodeReady_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage 8 Beta SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_ResilientStorage_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability 8 Beta SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_HighAvailability_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,56 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 8 Beta Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_BaseOS_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream 8 Beta Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_AppStream_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady 8 Beta Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_CodeReady_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage 8 Beta Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_ResilientStorage_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability 8 Beta Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_HighAvailability_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,58 @@
<html>
<meta http-equiv="Cache-Control" content="private, no-store" />
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 8 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_BaseOS_Source.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream 8 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_AppStream_Source.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady 8 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_CodeReady_Source.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage 8 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_ResilientStorage_Source.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability 8 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_HighAvailability_Source.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,55 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 8 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_BaseOS_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream 8 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_AppStream_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady 8 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_CodeReady_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage 8 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_ResilientStorage_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability 8 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_HighAvailability_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,55 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_BaseOS_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_AppStream_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_CodeReady_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_ResilientStorage_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_HighAvailability_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,29 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>AppStream + CodeReady/PowerTools 8 Modules:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_Modules.html" width="90%" height="100%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,28 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>AppStream + CodeReady/PowerTools 8 Beta/Staging Modules: </h2>
<iframe src = "repocompare_results/RHEL8_Beta_Rocky8_Modules_stg.html" width="90%" height="100%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,28 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>AppStream + CodeReady/PowerTools 8 Modules: (Staging)</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_Modules_stg.html" width="90%" height="100%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,56 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 9 Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_BaseOS.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream 9 Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_AppStream.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady 9 Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_CodeReady.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage 9 Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_ResilientStorage.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability 9 Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_HighAvailability.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,56 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 9 Beta SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_BaseOS_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream 9 Beta SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_AppStream_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady 9 Beta SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_CodeReady_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage 9 Beta SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_ResilientStorage_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability 9 Beta SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_HighAvailability_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,56 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 9 Beta Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_BaseOS_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream 9 Beta Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_AppStream_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady 9 Beta Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_CodeReady_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage 9 Beta Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_ResilientStorage_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability 9 Beta Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_HighAvailability_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,56 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 9 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_BaseOS_Source.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream 9 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_AppStream_Source.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady 9 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_CodeReady_Source.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage 9 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_ResilientStorage_Source.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability 9 SRPM Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_HighAvailability_Source.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,55 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 9 Source Staging Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_BaseOS_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream 9 Source Staging Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_AppStream_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady 9 Source Staging Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_CodeReady_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage 9 Source Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_ResilientStorage_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability 9 Source Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_HighAvailability_Source_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,56 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_BaseOS_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_AppStream_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_CodeReady_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_ResilientStorage_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability Repositories:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_HighAvailability_stg.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,29 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>AppStream + CodeReady/PowerTools 9 Modules:</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_Modules.html" width="90%" height="100%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,28 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>AppStream + CodeReady/PowerTools 9 Beta/Staging Modules: </h2>
<iframe src = "repocompare_results/RHEL9_Beta_Rocky9_Modules_stg.html" width="90%" height="100%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

View File

@ -0,0 +1,29 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>AppStream + CodeReady/PowerTools 9 Modules: (Staging)</h2>
<iframe src = "repocompare_results/RHEL9_Rocky9_Modules_stg.html" width="90%" height="100%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

56
html/index.html Normal file
View File

@ -0,0 +1,56 @@
<html>
<head> <title>Rocky Linux Live Package Difference Status</title></head>
<style>
menu {
height: 40%;
width: 90%;
}
</style>
<div id="topMenu" class="menu">
</div>
<script src="repocompare_menu.js"></script>
<p><br /><br /><br /><br />
<h2>BaseOS 8 Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_BaseOS.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>AppStream Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_AppStream.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>PowerTools/CodeReady Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_CodeReady.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>Resilient Storage Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_ResilientStorage.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
<h2>High Availability Repositories:</h2>
<iframe src = "repocompare_results/RHEL8_Rocky8_HighAvailability.html" width="75%" height="65%">
Sorry your browser does not support inline frames.
</iframe>
<p><br /> <br />
</html>

76
html/repocompare_menu.js Normal file
View File

@ -0,0 +1,76 @@
document.getElementById('topMenu').innerHTML = `
<h1>Live RHEL <----> Rocky Linux Package Comparison</h1>
<p><br />
This is a simple page to keep live track of the package differences/drift between RHEL and Rocky Linux.
<br /><br />
This page compares the RHEL repository package version(s) against the current Rocky public repos.
<br /><br />
The data on this page should be updated <b>every 4 hours.</b>
<br /><br />
Historical data can be found in this subdirectory: <b><a href="repocompare_results/">repocompare_results/</a></b>
<br /><br />
<b>Important Note:</b> This comparison <b>only includes default modules and non-modular packages</b>.
<br />
<p><br />
<h3>Other Package comparisons between RHEL <--> Rocky Linux:</h3>
<table border=1 cellpadding=10>
<tr>
<th>RHEL/Rocky 8</th>
<th>RHEL/Rocky 9</th>
<th>RHEL 8 Beta / Rocky 8 Staging</th>
<th>RHEL 9 Beta / Rocky 9 Staging</th>
</tr>
<tr>
<td><a href="RHEL_Rocky8_Compare.html">Package Repo Comparison (8)</a></td>
<td><a href="RHEL_Rocky9_Compare.html">Package Repo Comparison (9)</a></td>
<td><a href="RHEL_Rocky8_Compare_Beta_stg.html">Package Repo Comparison (8 Beta)</a></td>
<td><a href="RHEL_Rocky9_Compare_Beta_stg.html">Package Repo Comparison (9 Beta)</a></td>
</tr>
<tr>
<td><a href="RHEL_Rocky8_Compare_src.html">SRPM Repo Comparison (8)</a></td>
<td><a href="RHEL_Rocky9_Compare_src.html">SRPM Repo Comparison (9)</a></td>
<td><a href="RHEL_Rocky8_Compare_Beta_src_stg.html">SRPM Repo Comparison (8 Beta)</a></td>
<td><a href="RHEL_Rocky9_Compare_Beta_src_stg.html">SRPM Repo Comparison (9 Beta)</a></td>
</tr>
<tr>
<td><a href="RHEL_Rocky8_Module_Compare.html">Modules Repo Comparison (8)</a></td>
<td><a href="RHEL_Rocky9_Module_Compare.html">Modules Repo Comparison (9)</a></td>
<td><a href="RHEL_Rocky8_Module_Compare_Beta_stg.html">Modules Repo Comparison (8 Beta)</a></td>
<td><a href="RHEL_Rocky9_Module_Compare_Beta_stg.html">Modules Repo Comparison (9 Beta)</a></td>
</tr>
<tr>
<td><a href="RHEL_Rocky8_Compare_stg.html">Package Repo Comparison (8 staging)</a></td>
<td><a href="RHEL_Rocky9_Compare_stg.html">Package Repo Comparison (9 staging)</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="RHEL_Rocky8_Compare_src_stg.html">SRPM Repo Comparison (8 staging)</a></td>
<td><a href="RHEL_Rocky9_Compare_src_stg.html">SRPM Repo Comparison (9 staging)</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="RHEL_Rocky8_Module_Compare_stg.html">Modules Repo Comparison (8 staging)</a></td>
<td><a href="RHEL_Rocky9_Module_Compare_stg.html">Modules Repo Comparison (9 staging)</a></td>
<td></td>
<td></td>
</tr>
</table>
`;

View File

@ -0,0 +1,6 @@
Results from the repocompare launcher script should be written to this directory.
You can then symlink or clone all of html/ (and this folder) to a web directory of your choice for browsing.
All html content should be static, no special server configs or code are needed.

715
mkrepofile.sh Executable file
View File

@ -0,0 +1,715 @@
#!/bin/bash
# Simple script to produce valid Rocky + RHEL repos with nice names
# (so the repo compare html script can be run against them)
#
# We assume we're running on a RHEL 8 box with a valid entitlement
# (and that /etc/yum.repos.d/redhat.repo exists)
RHREPOFILE='/etc/yum.repos.d/redhat.repo'
# what each RedHat main URL line should start with:
#RH8_URL_LINE="mirrorlist = https://rhui3.REGION.aws.ce.redhat.com/pulp/mirror/content/dist/rhel8/rhui/\$releasever/\$basearch"
RH8_URL_LINE="baseurl = https://cdn.redhat.com/content/dist/rhel8/8/\$basearch"
RH8_BETA_LINE="baseurl = https://cdn.redhat.com/content/beta/rhel8/8/\$basearch"
RH9_URL_LINE="baseurl = https://cdn.redhat.com/content/dist/rhel9/9/\$basearch"
RH9_BETA_LINE="baseurl = https://cdn.redhat.com/content/beta/rhel9/9/\$basearch"
# Get the proper cert/key files - these are rotated regularly, so we need them as variables:
cacert=$(grep 'sslcacert' ${RHREPOFILE} | head -1)
clientkey=$(grep 'sslclientkey' ${RHREPOFILE} | head -1)
clientcert=$(grep 'sslclientcert' ${RHREPOFILE} | head -1)
# Big giant echo to (re)create Rocky/RHEL repo file
cat > /etc/yum.repos.d/rocky_repocompare.repo << EOF
# Test Rocky repos for comparison
# RHEL 8 repos, with alternate names:
[RHEL8_BaseOS]
name = Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
${RH8_URL_LINE}/baseos/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_AppStream]
name = Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
${RH8_URL_LINE}/appstream/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_CodeReady]
name = Red Hat CodeReady Linux Builder for RHEL 8 x86_64 (RPMs)
${RH8_URL_LINE}/codeready-builder/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_ResilientStorage]
name = Red Hat Enterprise Linux 8 for x86_64 - Resilient Storage (RPMs)
${RH8_URL_LINE}/resilientstorage/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 0
[RHEL8_HighAvailability]
name = Red Hat Enterprise Linux 8 for x86_64 - High Availability (RPMs)
${RH8_URL_LINE}/highavailability/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 0
# RHEL 8 Source repos:
[RHEL8_BaseOS_Source]
name = Red Hat Enterprise Linux 8 for x86_64 - BaseOS (Source RPMs)
${RH8_URL_LINE}/baseos/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_AppStream_Source]
name = Red Hat Enterprise Linux 8 for x86_64 - AppStream (Source RPMs)
${RH8_URL_LINE}/appstream/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_CodeReady_Source]
name = Red Hat CodeReady Linux Builder for RHEL 8 x86_64 (Source RPMs)
${RH8_URL_LINE}/codeready-builder/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_ResilientStorage_Source]
name = Red Hat Enterprise Linux 8 for x86_64 - Resilient Storage (Source RPMs)
${RH8_URL_LINE}/resilientstorage/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 0
[RHEL8_HighAvailability_Source]
name = Red Hat Enterprise Linux 8 for x86_64 - High Availability (Source RPMs)
${RH8_URL_LINE}/highavailability/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 0
# RHEL 9 repos, with alternate names:
[RHEL9_BaseOS]
name = Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)
${RH9_URL_LINE}/baseos/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL9_AppStream]
name = Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)
${RH9_URL_LINE}/appstream/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL9_CodeReady]
name = Red Hat CodeReady Linux Builder for RHEL 9 x86_64 (RPMs)
${RH9_URL_LINE}/codeready-builder/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL9_ResilientStorage]
name = Red Hat Enterprise Linux 9 for x86_64 - Resilient Storage (RPMs)
${RH9_URL_LINE}/resilientstorage/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 0
[RHEL9_HighAvailability]
name = Red Hat Enterprise Linux 9 for x86_64 - High Availability (RPMs)
${RH9_URL_LINE}/highavailability/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 0
# RHEL 9 Source repos:
[RHEL9_BaseOS_Source]
name = Red Hat Enterprise Linux 9 for x86_64 - BaseOS (Source RPMs)
${RH9_URL_LINE}/baseos/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL9_AppStream_Source]
name = Red Hat Enterprise Linux 9 for x86_64 - AppStream (Source RPMs)
${RH9_URL_LINE}/appstream/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL9_CodeReady_Source]
name = Red Hat CodeReady Linux Builder for RHEL 9 x86_64 (Source RPMs)
${RH9_URL_LINE}/codeready-builder/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
#########################################
# (end of RHEL Repos)
# Corresponding Rocky Repos:
[Rocky8_BaseOS]
name=Rocky8_BaseOS
baseurl=http://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_AppStream]
name=Rocky8_AppStream
baseurl=http://dl.rockylinux.org/pub/rocky/8/AppStream/x86_64/os/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_CodeReady]
name=Rocky8_CodeReady
baseurl=http://dl.rockylinux.org/pub/rocky/8/PowerTools/x86_64/os/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_ResilientStorage]
name=Rocky8_ResilientStorage
baseurl=https://dl.rockylinux.org/pub/rocky/8/ResilientStorage/x86_64/os/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_HighAvailability]
name=Rocky8_HighAvailability
baseurl=https://dl.rockylinux.org/pub/rocky/8/HighAvailability/x86_64/os/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
# Rocky Staging repos:
[Rocky8_BaseOS_stg]
name=Rocky8_BaseOS_stg
baseurl=http://dl.rockylinux.org/stg/rocky/8/BaseOS/x86_64/os/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_AppStream_stg]
name=Rocky8_AppStream_stg
baseurl=http://dl.rockylinux.org/stg/rocky/8/AppStream/x86_64/os/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_CodeReady_stg]
name=Rocky8_CodeReady_stg
baseurl=http://dl.rockylinux.org/stg/rocky/8/PowerTools/x86_64/os/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_ResilientStorage_stg]
name=Rocky8_ResilientStorage_stg
baseurl=https://dl.rockylinux.org/stg/rocky/8/ResilientStorage/x86_64/os/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_HighAvailability_stg]
name=Rocky8_HighAvailability_stg
baseurl=https://dl.rockylinux.org/stg/rocky/8/HighAvailability/x86_64/os/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
# Rocky 9 Staging repos:
[Rocky9_BaseOS_stg]
name=Rocky9_BaseOS_stg
baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/BaseOS/x86_64/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky9_AppStream_stg]
name=Rocky9_AppStream_stg
baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/AppStream/x86_64/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky9_CodeReady_stg]
name=Rocky9_CodeReady_stg
baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/CRB/x86_64/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky9_ResilientStorage_stg]
name=Rocky9_ResilientStorage_stg
baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/ResilientStorage/x86_64/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky9_HighAvailability_stg]
name=Rocky9_HighAvailability_stg
baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/HighAvailability/x86_64/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
# Rocky Source repos:
[Rocky8_BaseOS_Source]
name=Rocky8_BaseOS_Source
baseurl=http://dl.rockylinux.org/pub/rocky/8/BaseOS/source/tree/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_AppStream_Source]
name=Rocky8_AppStream_Source
baseurl=http://dl.rockylinux.org/pub/rocky/8/AppStream/source/tree/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_CodeReady_Source]
name=Rocky8_CodeReady_Source
baseurl=http://dl.rockylinux.org/pub/rocky/8/PowerTools/source/tree/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_ResilientStorage_Source]
name=Rocky8_ResilientStorage_Source
baseurl=https://dl.rockylinux.org/pub/rocky/8/ResilientStorage/source/tree/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_HighAvailability_Source]
name=Rocky8_HighAvailability_Source
baseurl=https://dl.rockylinux.org/pub/rocky/8/HighAvailability/source/tree/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
# Rocky Staging sources:
[Rocky8_BaseOS_Source_stg]
name=Rocky8_BaseOS_Source_Staging
baseurl=http://dl.rockylinux.org/stg/rocky/8/BaseOS/source/tree/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_AppStream_Source_stg]
name=Rocky8_AppStream_Source_Staging
baseurl=http://dl.rockylinux.org/stg/rocky/8/AppStream/source/tree/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_CodeReady_Source_stg]
name=Rocky8_CodeReady_Source_Staging
baseurl=http://dl.rockylinux.org/stg/rocky/8/PowerTools/source/tree/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_ResilientStorage_Source_stg]
name=Rocky8_ResilientStorage_Source_Staging
baseurl=https://dl.rockylinux.org/stg/rocky/8/ResilientStorage/source/tree/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky8_HighAvailability_Source_stg]
name=Rocky8_HighAvailability_Source_Staging
baseurl=https://dl.rockylinux.org/stg/rocky/8/HighAvailability/source/tree/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
# Rocky 9 Staging sources:
[Rocky9_BaseOS_Source_stg]
name=Rocky9_BaseOS_Source_Staging
baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/BaseOS/src/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky9_AppStream_Source_stg]
name=Rocky9_AppStream_Source_Staging
baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/AppStream/src/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky9_CodeReady_Source_stg]
name=Rocky9_CodeReady_Source_Staging
baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/CRB/src/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky9_ResilientStorage_Source_stg]
name=Rocky9_ResilientStorage_Source_Staging
baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/ResilientStorage/src/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[Rocky9_HighAvailability_Source_stg]
name=Rocky9_HighAvailability_Source_Staging
baseurl=https://yumrepofs.build.resf.org/v1/projects/55b17281-bc54-4929-8aca-a8a11d628738/repo/HighAvailability/src/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
EOF
cat > /etc/yum.repos.d/rhel8_beta.repo << EOF
# RHEL 8 Beta Repos
[RHEL8_Beta_BaseOS]
name = Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) (BETA)
${RH8_BETA_LINE}/baseos/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_Beta_AppStream]
name = Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) (BETA)
${RH8_BETA_LINE}/appstream/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_Beta_CodeReady]
name = Red Hat CodeReady Linux Builder for RHEL 8 x86_64 (RPMs) (BETA)
${RH8_BETA_LINE}/codeready-builder/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_Beta_ResilientStorage]
name = Red Hat Enterprise Linux 8 for x86_64 - Resilient Storage (RPMs) (BETA)
${RH8_BETA_LINE}/resilientstorage/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 0
[RHEL8_Beta_HighAvailability]
name = Red Hat Enterprise Linux 8 for x86_64 - High Availability (RPMs) (BETA)
${RH8_BETA_LINE}/highavailability/os
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 0
# RHEL 8 Source repos:
[RHEL8_Beta_BaseOS_Source]
name = Red Hat Enterprise Linux 8 for x86_64 - BaseOS (Source RPMs) (BETA)
${RH8_BETA_LINE}/baseos/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_Beta_AppStream_Source]
name = Red Hat Enterprise Linux 8 for x86_64 - AppStream (Source RPMs) (BETA)
${RH8_BETA_LINE}/appstream/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_Beta_CodeReady_Source]
name = Red Hat CodeReady Linux Builder for RHEL 8 x86_64 (Source RPMs) (BETA)
${RH8_BETA_LINE}/codeready-builder/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 1
[RHEL8_Beta_ResilientStorage_Source]
name = Red Hat Enterprise Linux 8 for x86_64 - Resilient Storage (Source RPMs) (BETA)
${RH8_BETA_LINE}/resilientstorage/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 0
[RHEL8_Beta_HighAvailability_Source]
name = Red Hat Enterprise Linux 8 for x86_64 - High Availability (Source RPMs) (BETA)
${RH8_BETA_LINE}/highavailability/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
$cacert
$clientkey
$clientcert
metadata_expire = 86400
enabled_metadata = 0
EOF

147
module_compare_html.sh Executable file
View File

@ -0,0 +1,147 @@
#!/bin/bash
# Simple script that takes a list of the modular packages in a group of repositories (like AppStream,CodeReady from RHEL 8) and
# compares them with the modules in another distribution (Like AppStream,PowerTools from Rocky 8)
#
# It uses straight dnf calls for its data, and requires the repos to be defined in repos.d/. Also requires git
#
# All modules and version are iterated over and compared.
#
# Usage takes the pattern : ./module_compare_html.sh REPO_A,REPO_B,REPO_C REPO_X,REPO_Y,REPO_Z
#
# Example: ./modules_compare_html.sh RHEL8_AppStream,RHEL8_CodeReady Rocky8_AppStream,Rocky8_PowerTools
#
REPOS1=$1
REPOS2=$2
# Get a complete list of modules+versions we want to compare against (usually from RHEL 8)
# This includes a list that consists of things like "perl:5.24 , perl:5.26 , python38:3.8" , etc.
MODULE_LIST1=$(dnf --disablerepo '*' --enablerepo "${REPOS1}" module list |
grep -v '^Name' |
grep -v '(RPMs)' |
grep -v 'Hint:' |
grep -vi ' subscription ' |
grep -vi ' metadata ' |
grep -v '^$' |
awk '{print $1":"$2}')
IFS='
'
mkdir -p /tmp/module_compare
rm -f /tmp/module_compare/*
# HTML header:
echo "<html><h3>Module Artifact Comparison for: ${REPOS1} vs. ${REPOS2}</h3>"
echo '
<style>
table {
border-collapse: collapse;
width: 90%;
}
th, td {
text-align: left;
padding: 8px;
}
tr:nth-child(even) {background-color: #d4d4d4;}
</style>
<div style="overflow-x:auto;">
'
echo "
<p>
<i>Generated by Rocky Module Compare Script at: $(date +'%Y-%m-%d %H:%M:%S') </i>
<br />
<p>
<table>
<tr> <th width=\"20%\">Module Name:Version</th> <th width=\"40%\">${REPOS1} Pkg Diffs (-)</th> <th width=\"40%\">${REPOS2} Pkg Diffs (+)</th> </tr>
"
# Big loop where we go through every possible module/version combination:
for module in ${MODULE_LIST1}; do
# MODULE1 == complete module info from the 1st repos, while MODULE2 == complete module info from 2nd repos
# This includes all the different versions/releases, so we want to filter for the latest later
MODULE1=$(dnf --disablerepo '*' --enablerepo "${REPOS1}" module info "${module}" 2> /dev/null)
MODULE2=$(dnf --disablerepo '*' --enablerepo "${REPOS2}" module info "${module}" 2> /dev/null)
# Isolate the latest released version of each module, that's the only one we're intrested in (indicated by the "Version :" line in module info)
latest_version1=$(echo "${MODULE1}" | grep 'Version ' | awk '{print $3}' | sort -n | tail -1)
latest_version2=$(echo "${MODULE2}" | grep 'Version ' | awk '{print $3}' | sort -n | tail -1)
# Isolate individual module artifacts and write them (sorted) to a text file
# order of operations: awk to find version string through blank line,
# awk to find "Requires :" line,
# sed to remove "Artifacts",
# awk to isolate module rpm artifact ($2),
# sed to remove the distro tag after module (module+el8.4.0+xyz)
# sed to remove the git hash after "module+" ONLY IF we have a minor patch release (ie. module ends in a ".1.x86_64" or a ".2.src" or something similar)
# sed to remove everything after .module in the normal case (no minor patch release at the end)
#everything after ".module" (which is unique per-distro), except for ending ".$arch" (src/noarch/x86_64/etc.)
# remove any blank lines,
# and finally sort and write to text file
echo "${MODULE1}" |
awk "/${latest_version1}/ { show=1; next } show; /^$/ { show=0 }" |
awk "/Requires / { show=1; next } show; /^$/ { show=0 }" |
sed 's/Artifacts //' |
awk '{print $2}' |
sed 's/module+.*+/module+/g' |
sed 's/module+.*\.\(.*\)\./module.\1./g' |
sed 's/module+.*\./module./g' |
grep -v '^$' |
sort > "/tmp/module_compare/${module}_1"
# Do the same isolation of module rpms for module 2 and write that to a text file
echo "${MODULE2}" |
awk "/${latest_version2}/ { show=1; next } show; /^$/ { show=0 }" |
awk "/Requires / { show=1; next } show; /^$/ { show=0 }" |
sed 's/Artifacts //' |
awk '{print $2}' |
sed 's/module+.*+/module+/g' |
sed 's/module+.*\.\(.*\)\./module.\1./g' |
sed 's/module+.*\./module./g' |
grep -v '^$' |
sort > "/tmp/module_compare/${module}_2"
# Get list of differences from source repo (the "-" in git diff)
diff1=$(git --no-pager diff "/tmp/module_compare/${module}_1" "/tmp/module_compare/${module}_2" | grep -A1000 '@@' | grep '^\-' | sort)
# and the "+" (repo2):
diff2=$(git --no-pager diff "/tmp/module_compare/${module}_1" "/tmp/module_compare/${module}_2" | grep -A1000 '@@' | grep '^\+' | sort)
# If module artifacts are completely identical, then we will say as much:
if [[ -z "${diff1}" ]] && [[ -z "${diff2}" ]]; then
diff1="Identical Packages"
diff2="Identical Packages"
fi
# If module 2 is empty, then it doesn't exist:
if [ -s "/tmp/module_compare/${module}_1" ] && [ ! -s "/tmp/module_compare/${module}_2" ]; then
diff1="N/A"
diff2="<b>Module packages not found</b>"
fi
# swap line endings for <br /> to make html friendly looking:
diff1=$(echo "${diff1}" | sed 's/$/<br \/>/')
diff2=$(echo "${diff2}" | sed 's/$/<br \/>/')
# Now, write the table row line:
echo "<tr> <td><b>${module}</b></td> <td>${diff1}</td> <td>${diff2}</td> </tr>"
done
echo "</table></html>"

View File

@ -4,38 +4,43 @@
# The arguments must be named dnf/yum repos on the system # The arguments must be named dnf/yum repos on the system
# #
# We will loop through the RPM names from SOURCEREPO, and attempt to find name/version/release matches in TARGETREPO # We will loop through the RPM names from SOURCEREPO, and attempt to find name/version/release matches in TARGETREPO
# An HTML table page will be output showing the differences # An HTML table page will be sent to stdout showing the differences
# #
# -Skip Grube, 2021-06-29
REPO1="$1" REPO1="$1"
REPO2="$2" REPO2="$2"
pkglist1=`dnf repoquery --latest-limit 1 --repo ${REPO1} --queryformat "%{name} %{version} %{release}" | grep -vi " subscription "` #| tr '\n' ','` pkglist1=$(dnf repoquery --latest-limit 1 --repo "${REPO1}" --queryformat "%{name} %{version} %{release}" | grep -vi " subscription ")
pkglist2=`dnf repoquery --latest-limit 1 --repo ${REPO2} --queryformat "%{name} %{version} %{release}" | grep -vi " subscription "` pkglist2=$(dnf repoquery --latest-limit 1 --repo "${REPO2}" --queryformat "%{name} %{version} %{release}" | grep -vi " subscription ")
# Strip ending moduleXYZ and .el8* information away from the release info, as # Strip some ending package info off like this:
# They may not match (or will never match in the module's case) # 1: moduleXYZ info comes off
pkglist1=`echo "${pkglist1}" | sed -e 's/\.module.*$/\.module/g' | sed -e 's/\.el.*$//g'` # 2: If a dotrelease tag is present (like .el8_4.3), then preserve the .3 but remove the el8_* tag
pkglist2=`echo "${pkglist2}" | sed -e 's/\.module.*$/\.module/g' | sed -e 's/\.el.*$//g'` # 3: If a dotrelease tag is not present, then simply take the .el8* off from the end
# 4: Remove any trailing ".rocky" tag as well from the end if a dotrelease is not present
# The moduleXYZ will never match versions, and the el8 tagging may be different (el8 vs. el8_3, el8_4, etc.)
pkglist1=$(echo "${pkglist1}" | sed -e 's/\.module.*$/\.module/g' | sed -e 's/\.el.*\.\(.*\)$/\.\1/g' | sed -e 's/\.el.*$//g' | sed 's/\.rocky$//')
pkglist2=$(echo "${pkglist2}" | sed -e 's/\.module.*$/\.module/g' | sed -e 's/\.el.*\.\(.*\)$/\.\1/g' | sed -e 's/\.el.*$//g' | sed 's/\.rocky$//')
# Turn the first pkg list into a comma-separated list (instead of newline-separated) # Turn the first pkg list into a comma-separated list (instead of newline-separated)
# (makes it easier to use IFS=',' in all of our for loops) # (makes it easier to use IFS=',' in all of our for loops)
pkglist1=`echo "${pkglist1}" | tr '\n' ','` pkglist1=$(echo "${pkglist1}" | tr '\n' ',')
#echo "$pkglist1" > debug1.txt #echo "$pkglist1" > debug1.txt
#echo "$pkglist2" > debug2.txt #echo "$pkglist2" > debug2.txt
# HTML style header for table: # HTML style header for table:
echo "<html><h3>Repo Version Differences for: ${REPO1} vs. ${REPO2}</h3>" echo "<html><h3>Repo Version Differences for: ${REPO1} vs. ${REPO2}</h3>"
echo ' echo '
<style> <style>
table { table {
border-collapse: collapse; border-collapse: collapse;
width: 60%; width: 90%;
} }
th, td { th, td {
@ -50,7 +55,7 @@ tr:nth-child(even) {background-color: #d4d4d4;}
' '
echo " echo "
<i>Generated by Repo Compare Script at: `date +'%Y-%m-%d %H:%M:%S'` </i> <i>Generated by Repo Compare Script at: $(date +'%Y-%m-%d %H:%M:%S') </i>
<br /> <br />
<table> <table>
@ -62,12 +67,12 @@ echo "
IFS=',' IFS=','
# Main loop to check all packages from our "source" repo # Main loop to check all packages from our "source" repo
for pkg in `echo "${pkglist1}"`; do for pkg in ${pkglist1}; do
# Extract name/version/tag info from package (filtering out modular + el8* info from tag) # Extract name/version/tag info from package (filtering out modular + el8* info from tag)
_name=`echo "$pkg" | awk '{print $1}'` _name=$(echo "$pkg" | awk '{print $1}')
_version=`echo "$pkg" | awk '{print $2}'` _version=$(echo "$pkg" | awk '{print $2}')
_tag=`echo "$pkg" | awk '{print $3}'` # | sed -e 's/\.module.*$/\.module/g' | sed -e 's/\.el.*$//g'` _tag=$(echo "$pkg" | awk '{print $3}')
# every package match is false by default, until we match it # every package match is false by default, until we match it
isPkgMatched=0 isPkgMatched=0
@ -76,7 +81,7 @@ for pkg in `echo "${pkglist1}"`; do
# Find any packages in the target repo with the same name as the one we're interested in from the source repo: # Find any packages in the target repo with the same name as the one we're interested in from the source repo:
# (easy to match the exact name if we include a space separator in our grep) # (easy to match the exact name if we include a space separator in our grep)
# (We turn it into a comma separated list as well so we can do another for loop against the result set) # (We turn it into a comma separated list as well so we can do another for loop against the result set)
pkgmatches=`echo "${pkglist2}" | grep "^${_name} "` pkgmatches=$(echo "${pkglist2}" | grep "^${_name} ")
# If there are no matches, we output a DOES NOT EXIST and don't bother with searching the results # If there are no matches, we output a DOES NOT EXIST and don't bother with searching the results
@ -87,10 +92,10 @@ for pkg in `echo "${pkglist1}"`; do
# Loop through each result (name matches) and look for an exact version match: # Loop through each result (name matches) and look for an exact version match:
for match in `echo "${pkgmatches}"`; do for match in ${pkgmatches}; do
_name2=`echo "$match" | awk '{print $1}'` _name2=$(echo "$match" | awk '{print $1}')
_version2=`echo "$match" | awk '{print $2}'` _version2=$(echo "$match" | awk '{print $2}')
_tag2=`echo "$match" | awk '{print $3}'` # | tr -d ',' | sed -e 's/\.module.*$/\.module/g' | sed -e 's/\.el.*$//g'` _tag2=$(echo "$match" | awk '{print $3}')
#echo "DEBUG :: _tag2 == $_tag2" #echo "DEBUG :: _tag2 == $_tag2"
# If we find a match, then exit this loop and set the flag to found: # If we find a match, then exit this loop and set the flag to found:
@ -101,7 +106,7 @@ for pkg in `echo "${pkglist1}"`; do
done done
# Get pkgmatches into name-version-release format: # Get pkgmatches into name-version-release format:
pkgmatches=`echo "${pkgmatches}" | sed 's/ /\-/g' | sed 's/,$//'` pkgmatches=$(echo "${pkgmatches}" | sed 's/ /\-/g' | sed 's/,$//')
# If package is not matched, then we need to output an HTML row: # If package is not matched, then we need to output an HTML row:
if [ "$isPkgMatched" == "0" ]; then if [ "$isPkgMatched" == "0" ]; then

65
repo_compare_launcher.sh Executable file
View File

@ -0,0 +1,65 @@
#!/bin/bash
# Big giant script that launches everything in sequence:
# Where this script is being called from (and we assume our compare scripts are located)
SCRIPTSDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
# Pre-run: Make repo file, clean metadata, make folders
"${SCRIPTSDIR}"/mkrepofile.sh
yum clean all
yum makecache
now=$(date +%Y%m%d_%H)
export now
RESULTSDIR="/opt/repocompare_results"
mkdir -p "${RESULTSDIR}"
for version in "8" "9"; do
for rockyStage in "" "_stg"; do
for rhelBeta in "" "_Beta"; do
for sourceFlag in "" "_Source"; do
for repo in "BaseOS" "AppStream" "CodeReady" "HighAvailability" "ResilientStorage"; do
>&2 echo "Now running compare for: ${RESULTSDIR}/RHEL${version}${rhelBeta}_Rocky${version}_${repo}${sourceFlag}${rockyStage}_${now}.html"
"${SCRIPTSDIR}"/mkrepofile.sh
"${SCRIPTSDIR}"/repo_compare_html.sh "RHEL${version}${rhelBeta}_${repo}${sourceFlag}" "Rocky${version}_${repo}${sourceFlag}${rockyStage}" > "${RESULTSDIR}/RHEL${version}${rhelBeta}_Rocky${version}_${repo}${sourceFlag}${rockyStage}_${now}.html"
# Copy the timestamped html file to the "standard" one - removing the "_$now" timestamp at the end:
cp -f "${RESULTSDIR}/RHEL${version}${rhelBeta}_Rocky${version}_${repo}${sourceFlag}${rockyStage}_${now}.html" "${RESULTSDIR}/RHEL${version}${rhelBeta}_Rocky${version}_${repo}${sourceFlag}${rockyStage}.html"
done
done
done
done
done
# Module Compare 1: RHEL 8 vs. Rocky 8 production:
"${SCRIPTSDIR}"/mkrepofile.sh
"${SCRIPTSDIR}"/module_compare_html.sh RHEL8_AppStream,RHEL8_CodeReady Rocky8_AppStream,Rocky8_PowerTools > "${RESULTSDIR}/RHEL8_Rocky8_Modules_${now}.html"
cp -f "${RESULTSDIR}/RHEL8_Rocky8_Modules_${now}.html" "${RESULTSDIR}/RHEL8_Rocky8_Modules.html"
# Module Compare 2: RHEL 8 vs. Rocky 8 staging:
"${SCRIPTSDIR}"/mkrepofile.sh
"${SCRIPTSDIR}"/module_compare_html.sh RHEL8_AppStream,RHEL8_CodeReady Rocky8_AppStream_stg,Rocky8_PowerTools_stg > "${RESULTSDIR}/RHEL8_Rocky8_Modules_stg_${now}.html"
cp -f "${RESULTSDIR}/RHEL8_Rocky8_Modules_stg_${now}.html" "${RESULTSDIR}/RHEL8_Rocky8_Modules_stg.html"
# Module Compare 3: RHEL 8 Beta vs. Rocky 8 staging:
"${SCRIPTSDIR}"/mkrepofile.sh
"${SCRIPTSDIR}"/module_compare_html.sh RHEL8_Beta_AppStream,RHEL8_Beta_CodeReady Rocky8_AppStream_stg,Rocky8_PowerTools_stg > "${RESULTSDIR}/RHEL8_Beta_Rocky8_Modules_stg_${now}.html"
cp -f "${RESULTSDIR}/RHEL8_Beta_Rocky8_Modules_stg_${now}.html" "${RESULTSDIR}/RHEL8_Beta_Rocky8_Modules_stg_${now}.html"
# Module Compare: RHEL 9 vs. Rocky 9 staging:
"${SCRIPTSDIR}"/module_compare_html.sh RHEL9_AppStream,RHEL9_CodeReady Rocky9_AppStream_stg,Rocky9_CodeReady_stg > "${RESULTSDIR}/RHEL9_Rocky9_Modules_stg_${now}.html"
cp -f "${RESULTSDIR}/RHEL9_Rocky9_Modules_stg_${now}.html" "${RESULTSDIR}/RHEL9_Rocky9_Modules_stg.html"

129
repo_requires_html.sh Executable file
View File

@ -0,0 +1,129 @@
#!/bin/bash
REPO1="$1"
REPO2="$2"
rm -rf /tmp/repocompare
mkdir -p /tmp/repocompare/{${REPO1},${REPO2}}
dnf repoquery --repo ${REPO1} --latest-limit 1 --queryformat '# %{name} %{version} %{release}\n%{requires}|' | grep -v " Subscription " > /tmp/repocompare/${REPO1}.txt
dnf repoquery --repo ${REPO2} --latest-limit 1 --queryformat '# %{name} %{version} %{release}\n%{requires}|' | grep -v " Subscription " > /tmp/repocompare/${REPO2}.txt
IFS='|'
for i in $(echo "${REPO1}|${REPO2}"); do
for pkg in $(cat /tmp/repocompare/${i}.txt); do
# Trim the release tag and module info (.el8*, .module*) off the end of the release and requires info, they are likely never to match
pkg=$(echo "${pkg}" | sed -e 's/\.module.*$/\.module/g' | sed -e 's/\.el.*$//g')
# Get just the requires without the name+version+release line:
requires=$(echo "${pkg}" | grep -v '#' | sort)
# Isolate the line with the package name + version + releasetag on it (starts with a "#")
pkgline=$(echo "${pkg}" | grep '#')
# Get name (no version) of the package - we will make this the name of our file
pkgname=$(echo "${pkgline}" | awk '{print $2}')
# Write the requires + name/version/release combo to its own file:
echo "${pkgline}${requires}" > /tmp/repocompare/${i}/${pkgname}
done
# Hacky: RHEL has all its requires in the rpm-command style, which means lots of "(64bit)" lines that other el repos don't have
# This just removes them
sed -i 's/\(64bit\)//' /tmp/repocompare/${i}/*
done
# HTML Header:
echo "<html><h3>Repo Requires Differences for: ${REPO1} vs. ${REPO2}</h3>"
echo '
<style>
table {
border-collapse: collapse;
width: 90%;
}
th, td {
text-align: left;
padding: 8px;
}
tr:nth-child(even) {background-color: #d4d4d4;}
</style>
<div style="overflow-x:auto;">
'
echo "
<i>Generated by Repo Requires Compare Script at: $(date +'%Y-%m-%d %H:%M:%S') </i>
<br />
<table>
<tr><th width="20%">${REPO1} Package</th> <th width="20%">${REPO2} Package</th> <th width="30%">Diff -${REPO1} </th> <th width="30%">Diff +${REPO2}) </th></tr>
"
# Now that we have our packages, their versions and requires info all in individual files, let's compare them!
# Simple use of git diff program to get "+" and "-" differences and spit them to an HTML table
IFS='
'
for pkgfile in $(ls -1 /tmp/repocompare/${REPO1}/*); do
# Package name - should be same for both repos
pkg=$(basename ${pkgfile})
# Package version - source repo (3rd field in txt file)
version1=$(grep '#' ${pkgfile} | head -1 | awk '{print $3}')
# Package release - sourcerepo (4th / last field in first line of txt file)
release1=$(grep '#' ${pkgfile} | head -1 | awk '{print $4}')
# If package doesn't exist in target repo, we'll stop here: (we can't compare Requires: for a non-existent package!)
if [ ! -f "/tmp/repocompare/${REPO2}/${pkg}" ]; then
echo "<tr> <td>${pkg}-${version1}-${release1} </td> <td>(DOES NOT EXIST) </td> <td> N/A </td> <td> N/A </td> </tr>"
continue
fi
# We confirmed the other package exists, now get the version and release for the destination package/repo (REPO2):
version2=$(grep '#' /tmp/repocompare/${REPO2}/${pkg} | head -1 | awk '{print $3}')
release2=$(grep '#' /tmp/repocompare/${REPO2}/${pkg} | head -1 | awk '{print $4}')
# If a package has different versions, that is also a special case - we don't want to compare Requires:
if [[ "${version1}" != "${version2}" ]] || [[ "${release1}" != "${release2}" ]]; then
echo "<tr> <td>${pkg}-${version1}-${release1} </td> <td>${pkg}-${version2}-${release2} </td> <td>DIFFERENT VERSIONS - Comparison not valid </td> <td> N/A </td> </tr>"
continue
fi
# Do a diff of the requires files, find only the lines that show differences (lines that start with + or -):
pkgdiff1=$(git --no-pager diff /tmp/repocompare/${REPO1}/${pkg} /tmp/repocompare/${REPO2}/${pkg} | grep -A1000 '@@' | grep '^\-' | sort)
pkgdiff1=$(echo "${pkgdiff1}" | grep -v '\-libc\.so\.6(' | grep -v '^\-libc\.so\.6$' )
pkgdiff2=$(git --no-pager diff /tmp/repocompare/${REPO1}/${pkg} /tmp/repocompare/${REPO2}/${pkg} | grep -A1000 '@@' | grep '^+' | sort)
# If our git diff command returned something (is not empty), then we want to display that as a table row:
if [[ ! -z "${pkgdiff1}" ]] || [[ ! -z "${pkgdiff2}" ]]; then
# Swap "\n" for "<br />", to make friendly html output:
pkgdiff1=$(echo "${pkgdiff1}" | sed 's/$/<br \/>/')
pkgdiff2=$(echo "${pkgdiff2}" | sed 's/$/<br \/>/')
# Output table data with differences:
echo "<tr> <td>${pkg}-${version1}-${release1} </td> <td>${pkg}-${version2}-${release2} </td> <td>${pkgdiff1} </td> <td>${pkgdiff2} </tr>"
fi
# No package diff detected == don't print anything, go to the next package
done
echo "</table></html>"