omnibus-software 22.11.239

Sign up to get free protection for your applications and to get access to all the features.
Files changed (241) hide show
  1. checksums.yaml +7 -0
  2. data/.expeditor/Version_inspector/README.md +21 -0
  3. data/.expeditor/Version_inspector/SW-Version-update.py +243 -0
  4. data/.expeditor/Version_inspector/manual_prod_list.json +29 -0
  5. data/.expeditor/Version_inspector/prod_default_version.json +103 -0
  6. data/.expeditor/Version_inspector/prod_list.json +194 -0
  7. data/.expeditor/Version_inspector/requirements.txt +4 -0
  8. data/.expeditor/Version_inspector/update_prod_default_version.sh +24 -0
  9. data/.expeditor/Version_inspector/update_prod_list.sh +35 -0
  10. data/.expeditor/config.yml +33 -0
  11. data/.expeditor/determine_version.sh +15 -0
  12. data/.expeditor/push_git_tag.sh +12 -0
  13. data/.expeditor/run_linux_tests.sh +16 -0
  14. data/.expeditor/verify.pipeline.yml +52 -0
  15. data/.github/CODEOWNERS +5 -0
  16. data/.github/ISSUE_TEMPLATE/BUG_TEMPLATE.md +29 -0
  17. data/.github/ISSUE_TEMPLATE/DESIGN_PROPOSAL.md +40 -0
  18. data/.github/ISSUE_TEMPLATE/ENHANCEMENT_REQUEST_TEMPLATE.md +17 -0
  19. data/.github/ISSUE_TEMPLATE/SUPPORT_QUESTION.md +11 -0
  20. data/.github/dependabot.yml +9 -0
  21. data/.github/lock.yml +1 -0
  22. data/.gitignore +17 -0
  23. data/CODE_OF_CONDUCT.md +1 -0
  24. data/CONTRIBUTING.md +1 -0
  25. data/Dockerfile +21 -0
  26. data/Gemfile +10 -0
  27. data/LICENSE +201 -0
  28. data/README.md +99 -0
  29. data/Rakefile +56 -0
  30. data/VERSION +1 -0
  31. data/config/patches/bash/race-condition.patch +15 -0
  32. data/config/patches/bzip2/aix_makefile.patch +11 -0
  33. data/config/patches/bzip2/makefile_no_bins.patch +77 -0
  34. data/config/patches/bzip2/makefile_take_env_vars.patch +31 -0
  35. data/config/patches/bzip2/soname_install_dir.patch +11 -0
  36. data/config/patches/curl/curl-aix-disable-alpn.patch +22 -0
  37. data/config/patches/curl/curl-freebsd-hostcheck.patch +10 -0
  38. data/config/patches/erlang/epmd-require-explicitly-adding-loopback-address.patch +84 -0
  39. data/config/patches/erlang/updated-epmd-require-explicitly-adding-loopback-address.patch +75 -0
  40. data/config/patches/expat/configure_xlc_visibility.patch +58 -0
  41. data/config/patches/expat/configure_xlc_visibility_2.4.7.patch +59 -0
  42. data/config/patches/figlet/aix-figlet-cdefs.patch +48 -0
  43. data/config/patches/gdbm/v1.8.3-Makefile.in.patch +32 -0
  44. data/config/patches/git/aix-endian-fix.patch +20 -0
  45. data/config/patches/gtar/aix_extra_case.patch +13 -0
  46. data/config/patches/keepalived/keepalived-1.2.9_opscode_centos_5.patch +15 -0
  47. data/config/patches/libedit/freebsd-vi-fix.patch +24 -0
  48. data/config/patches/libedit/openbsd-weak-alias-fix.patch +48 -0
  49. data/config/patches/libedit/solaris.patch +36 -0
  50. data/config/patches/libffi/libffi-3.2.1-disable-multi-os-directory.patch +83 -0
  51. data/config/patches/libffi/libffi-3.3-arm64.patch +9608 -0
  52. data/config/patches/libxslt/libxslt-solaris-configure.patch +19 -0
  53. data/config/patches/libxslt/libxslt-windows-relocate.patch +12 -0
  54. data/config/patches/libyaml/windows-configure.patch +26 -0
  55. data/config/patches/libzmq/zeromq-4.0.11_mingw_inet_pton.patch +37 -0
  56. data/config/patches/libzmq/zeromq-aix-4.2.2-LARGE_FILES.patch +56 -0
  57. data/config/patches/libzmq/zeromq-aix-4.2.2-atomic-counter-fetch_and_add.patch +59 -0
  58. data/config/patches/logrotate/logrotate_basedir_override.patch +17 -0
  59. data/config/patches/m4/m4-1.4.18-glibc-change-work-around.patch +115 -0
  60. data/config/patches/make/deb-make-glob.patch +31 -0
  61. data/config/patches/ncurses/ncurses-5.9-gcc-5.patch +46 -0
  62. data/config/patches/ncurses/ncurses-5.9-solaris-xopen_source_extended-detection.patch +11 -0
  63. data/config/patches/ncurses/ncurses-clang.patch +43 -0
  64. data/config/patches/ncurses/patch-aa +23 -0
  65. data/config/patches/ncurses/patch-ab +44 -0
  66. data/config/patches/ncurses/patch-ac +40 -0
  67. data/config/patches/ncurses/patch-ad +13 -0
  68. data/config/patches/ncurses/patch-cxx_cursesf.h +22 -0
  69. data/config/patches/ncurses/patch-cxx_cursesm.h +22 -0
  70. data/config/patches/ncurses/patch-ncurses_tinfo_lib__baudrate.c +24 -0
  71. data/config/patches/openssl/openssl-1.0.1f-do-not-build-docs.patch +28 -0
  72. data/config/patches/openssl/openssl-1.0.1j-windows-relocate-dll.patch +20 -0
  73. data/config/patches/openssl/openssl-1.0.1q-fix-compiler-flags-table-for-msys.patch +20 -0
  74. data/config/patches/openssl/openssl-1.0.2x-darwin-arm64.patch +54 -0
  75. data/config/patches/openssl/openssl-1.1.0f-do-not-install-docs.patch +11 -0
  76. data/config/patches/openssl/openssl-3.0.1-do-not-install-docs.patch +22 -0
  77. data/config/patches/openssl-fips/openssl-fips-fix-compiler-flags-table-for-msys.patch +11 -0
  78. data/config/patches/perl/perl-5.18.1-remove_lnsl.patch +441 -0
  79. data/config/patches/perl/perl-5.22.1-remove_lnsl.patch +512 -0
  80. data/config/patches/perl/perl-5.30.0-remove_lnsl.patch +518 -0
  81. data/config/patches/perl/perl-5.32.1-remove_lnsl.patch +456 -0
  82. data/config/patches/perl/perl-5.34.0-remove_lnsl.patch +516 -0
  83. data/config/patches/pkg-config/openbsd-charset.patch +19 -0
  84. data/config/patches/popt/v1.16.ppc64le-configure.patch +18 -0
  85. data/config/patches/redis/password-from-environment.patch +19 -0
  86. data/config/patches/ruby/patch-configure +103 -0
  87. data/config/patches/ruby/remove_nano.patch +10 -0
  88. data/config/patches/ruby/ruby-2.6.7_c99.patch +12 -0
  89. data/config/patches/ruby/ruby-3.0.1-configure.patch +281 -0
  90. data/config/patches/ruby/ruby-3.0.2-configure.patch +251 -0
  91. data/config/patches/ruby/ruby-aix-atomic.patch +11 -0
  92. data/config/patches/ruby/ruby-aix-configure_26_and_later.patch +19 -0
  93. data/config/patches/ruby/ruby-aix-vm-core.patch +14 -0
  94. data/config/patches/ruby/ruby-fast-load_26.patch +16 -0
  95. data/config/patches/ruby/ruby-fast-load_31.patch +16 -0
  96. data/config/patches/ruby/ruby-faster-load_26.patch +11 -0
  97. data/config/patches/ruby/ruby-faster-load_27.patch +11 -0
  98. data/config/patches/ruby/ruby-mkmf.patch +29 -0
  99. data/config/patches/ruby/ruby-no-stack-protector-strong.patch +11 -0
  100. data/config/patches/ruby/ruby-no-stack-protector.patch +13 -0
  101. data/config/patches/ruby/ruby-win32_warning_removal.patch +12 -0
  102. data/config/patches/ruby/ruby_aix_openssl.patch +10 -0
  103. data/config/patches/ruby/ruby_aix_ssl_EAGAIN.patch +19 -0
  104. data/config/patches/ruby/rvm-cflags.patch +27 -0
  105. data/config/patches/stunnel/stunnel-on-windows.patch +42 -0
  106. data/config/patches/zlib/zlib-windows-relocate.patch +20 -0
  107. data/config/software/autoconf.rb +46 -0
  108. data/config/software/automake.rb +49 -0
  109. data/config/software/bash.rb +72 -0
  110. data/config/software/berkshelf-no-depselector.rb +46 -0
  111. data/config/software/berkshelf.rb +34 -0
  112. data/config/software/binutils.rb +47 -0
  113. data/config/software/bundler.rb +38 -0
  114. data/config/software/bzip2.rb +55 -0
  115. data/config/software/cacerts.rb +50 -0
  116. data/config/software/chef-gem.rb +35 -0
  117. data/config/software/chef.rb +112 -0
  118. data/config/software/cmake.rb +94 -0
  119. data/config/software/config_guess.rb +37 -0
  120. data/config/software/cpanminus.rb +49 -0
  121. data/config/software/curl.rb +103 -0
  122. data/config/software/delivery-cli.rb +89 -0
  123. data/config/software/dep-selector-libgecode.rb +48 -0
  124. data/config/software/elasticsearch.rb +61 -0
  125. data/config/software/elixir.rb +35 -0
  126. data/config/software/erlang.rb +134 -0
  127. data/config/software/expat.rb +63 -0
  128. data/config/software/fakeroot.rb +41 -0
  129. data/config/software/ffi-yajl.rb +46 -0
  130. data/config/software/figlet-fonts.rb +31 -0
  131. data/config/software/figlet.rb +44 -0
  132. data/config/software/gcc.rb +60 -0
  133. data/config/software/gdbm.rb +54 -0
  134. data/config/software/gecode.rb +62 -0
  135. data/config/software/gem-permissions.rb +43 -0
  136. data/config/software/git-windows.rb +96 -0
  137. data/config/software/git.rb +138 -0
  138. data/config/software/gmp.rb +48 -0
  139. data/config/software/go-uninstall.rb +33 -0
  140. data/config/software/go.rb +116 -0
  141. data/config/software/google-protobuf.rb +45 -0
  142. data/config/software/gtar.rb +62 -0
  143. data/config/software/help2man.rb +40 -0
  144. data/config/software/highline-gem.rb +37 -0
  145. data/config/software/ibm-jre.rb +59 -0
  146. data/config/software/inspec.rb +43 -0
  147. data/config/software/jre-from-jdk.rb +67 -0
  148. data/config/software/keepalived.rb +68 -0
  149. data/config/software/libarchive.rb +71 -0
  150. data/config/software/libedit.rb +73 -0
  151. data/config/software/libffi.rb +68 -0
  152. data/config/software/libgcc.rb +52 -0
  153. data/config/software/libiconv.rb +55 -0
  154. data/config/software/libintl-perl.rb +56 -0
  155. data/config/software/liblzma.rb +59 -0
  156. data/config/software/libossp-uuid.rb +45 -0
  157. data/config/software/libsodium.rb +40 -0
  158. data/config/software/libtool.rb +56 -0
  159. data/config/software/libuuid.rb +45 -0
  160. data/config/software/libxml2.rb +63 -0
  161. data/config/software/libxslt.rb +64 -0
  162. data/config/software/libyajl2-gem.rb +44 -0
  163. data/config/software/libyaml.rb +50 -0
  164. data/config/software/libzmq.rb +93 -0
  165. data/config/software/logrotate.rb +61 -0
  166. data/config/software/lua.rb +46 -0
  167. data/config/software/m4.rb +40 -0
  168. data/config/software/make.rb +43 -0
  169. data/config/software/makedepend.rb +44 -0
  170. data/config/software/mpc.rb +44 -0
  171. data/config/software/mpfr.rb +45 -0
  172. data/config/software/musl.rb +107 -0
  173. data/config/software/mysql2.rb +50 -0
  174. data/config/software/ncurses.rb +159 -0
  175. data/config/software/nginx.rb +55 -0
  176. data/config/software/nodejs-binary.rb +90 -0
  177. data/config/software/nodejs.rb +58 -0
  178. data/config/software/nokogiri.rb +92 -0
  179. data/config/software/omnibus-ctl.rb +42 -0
  180. data/config/software/openresty.rb +94 -0
  181. data/config/software/opensearch.rb +54 -0
  182. data/config/software/openssl-customization.rb +81 -0
  183. data/config/software/openssl-fips.rb +81 -0
  184. data/config/software/openssl.rb +185 -0
  185. data/config/software/patch.rb +46 -0
  186. data/config/software/patchelf.rb +66 -0
  187. data/config/software/pcre.rb +53 -0
  188. data/config/software/perl-extutils-embed.rb +37 -0
  189. data/config/software/perl-extutils-makemaker.rb +46 -0
  190. data/config/software/perl-thread-queue.rb +40 -0
  191. data/config/software/perl.rb +78 -0
  192. data/config/software/perl_pg_driver.rb +45 -0
  193. data/config/software/pg-gem.rb +36 -0
  194. data/config/software/pkg-config-lite.rb +46 -0
  195. data/config/software/pkg-config.rb +66 -0
  196. data/config/software/popt.rb +54 -0
  197. data/config/software/postgresql.rb +70 -0
  198. data/config/software/preparation.rb +31 -0
  199. data/config/software/python.rb +79 -0
  200. data/config/software/rabbitmq.rb +58 -0
  201. data/config/software/rb-readline.rb +33 -0
  202. data/config/software/rbnacl-libsodium.rb +42 -0
  203. data/config/software/rbzmq.rb +44 -0
  204. data/config/software/rebar.rb +42 -0
  205. data/config/software/redis-gem.rb +36 -0
  206. data/config/software/redis.rb +51 -0
  207. data/config/software/relx.rb +39 -0
  208. data/config/software/rsync.rb +55 -0
  209. data/config/software/ruby-cleanup.rb +254 -0
  210. data/config/software/ruby-msys2-devkit.rb +77 -0
  211. data/config/software/ruby-windows-devkit-bash.rb +41 -0
  212. data/config/software/ruby-windows-devkit.rb +84 -0
  213. data/config/software/ruby.rb +306 -0
  214. data/config/software/rubygems.rb +73 -0
  215. data/config/software/runit.rb +67 -0
  216. data/config/software/rust-uninstall.rb +32 -0
  217. data/config/software/rust.rb +97 -0
  218. data/config/software/sequel-gem.rb +36 -0
  219. data/config/software/server-jre.rb +125 -0
  220. data/config/software/server-open-jre.rb +112 -0
  221. data/config/software/setuptools.rb +48 -0
  222. data/config/software/shebang-cleanup.rb +101 -0
  223. data/config/software/sqitch.rb +87 -0
  224. data/config/software/stunnel.rb +86 -0
  225. data/config/software/util-macros.rb +42 -0
  226. data/config/software/version-manifest.rb +33 -0
  227. data/config/software/xproto.rb +42 -0
  228. data/config/software/zlib.rb +85 -0
  229. data/config/templates/git/config.mak.erb +31 -0
  230. data/config/templates/rubygems/register_devtools.rb.erb +33 -0
  231. data/config/templates/runit/runsvdir-start.erb +42 -0
  232. data/docker-compose.yml +15 -0
  233. data/lib/omnibus-software/version.rb +3 -0
  234. data/lib/omnibus-software.rb +115 -0
  235. data/omnibus-software.gemspec +20 -0
  236. data/test/Gemfile +10 -0
  237. data/test/config/projects/test.rb +14 -0
  238. data/test/generate_steps.rb +55 -0
  239. data/test/omnibus-build.sh +50 -0
  240. data/test/omnibus.rb +55 -0
  241. metadata +296 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 60ec9e6967fd491bb2bda5cb6d4fdf1d58b2ce28d6c2577f616fd83858eec3ba
4
+ data.tar.gz: 3dd3831cb9e1a1711eb8b298494bb64ef77fb9e86d070ce67604ec23e19d417a
5
+ SHA512:
6
+ metadata.gz: 856b4698826344e85e78141ab7f22d12f9e1946232cb27baf1830370cee776f365fea1526cc916547da9286b98cf5aad4be90f66c535d6b625967f7c0bb9e9ab
7
+ data.tar.gz: 8bbf5741fb3b014bc4308d28ad0d65d5a3ca28965075f85ec94aff5d27f366cad3041ce962b9d3e47cd60cbc9a92a5cf7aafdce60a9062d92941deceb16ea587
@@ -0,0 +1,21 @@
1
+ # Version Inspector
2
+ python based utility software that can be used to find the latest version information for the omnibus-software packages .
3
+
4
+ ## Execute the below command to install the dependencies.
5
+ $pip3 install -r requirements.txt
6
+
7
+ ## SW-Version-update.py
8
+ python script to get the latest version of products.
9
+ command to run the script
10
+ $python3 SW-Version-update.py [json]
11
+ Pass 'json' as CLA for json o/p
12
+ 1. checks latest version for all the products and lists the product, default version and latest version with url
13
+ 2. checks for latset version for a particular product
14
+ 3. List the products that needs to be checked for latest version manually
15
+
16
+ ## update_prod_default_version.sh
17
+ rebase your branch with main to get the latest updated version updates and execute this script, which generates update_prod_default_version.json
18
+ ## update_prod_list.sh
19
+ Not necessary to run all the time. ALl the product are upto date. Dont run this script until unless it is required. This script generates prod_list.json.
20
+ ## manual_prod_list.json
21
+ contains the list of products that needs to be checked for latest version manually.
@@ -0,0 +1,243 @@
1
+ from math import prod
2
+ import requests
3
+ from bs4 import BeautifulSoup
4
+ import re
5
+ from packaging import version
6
+ import json
7
+ import smtplib
8
+ from email.mime.multipart import MIMEMultipart
9
+ from email.mime.text import MIMEText
10
+ import sys
11
+
12
+ json_flag = ""
13
+ try:
14
+ json_flag = sys.argv[1]
15
+ except:
16
+ print("No args passed")
17
+
18
+ pf = open('prod_list.json')
19
+ mf = open('manual_prod_list.json')
20
+ pvf = open('prod_default_version.json')
21
+
22
+ file_data_pf = json.load(pf)
23
+ file_data_mf = json.load(mf)
24
+ file_data_pvf = json.load(pvf)
25
+
26
+ prod_lst=list(file_data_pf.keys()) # to validate the product
27
+ manual_prod_list=list(file_data_mf.keys())
28
+ prod_def_ver_list=list(file_data_pvf.keys())
29
+
30
+ choice = int(input("Enter \n1 - Check Latest version for all products.\n2 - Check Latest Version for a particular product \n3 - List all S/W & URL that needs to be handled manually \n"))
31
+
32
+ def get_latest_version(url,expr,product):
33
+ response = requests.get(url)
34
+ soup = BeautifulSoup(response.content, 'html.parser')
35
+
36
+ for data in soup(['style', 'script']):
37
+ data.decompose()
38
+
39
+ list_of_contents = ' '.join(soup.stripped_strings).split(" ")
40
+
41
+
42
+ r = re.compile(expr)
43
+ filtered_list = list(filter(r.match, list_of_contents)) # Read Note
44
+
45
+ versions_string = " ".join(filtered_list)
46
+
47
+ if product in ["server-open-jre"]:
48
+ extracted_versions = re.findall(r"\d[\.\d]*\d_\d+", versions_string)
49
+ elif(product in ["libedit"]):
50
+ extracted_versions = re.findall(r"\d+-[\.\d]*\d", versions_string)
51
+ else:
52
+ extracted_versions = re.findall(r"\d[\.\d]*\d", versions_string)
53
+
54
+ product_error = []
55
+ try:
56
+ highest_version = extracted_versions[0]
57
+ for i in range(1,len(extracted_versions)):
58
+ #print("Comparing ",extracted_versions[i]," and ",highest_version)
59
+ if(version.parse(extracted_versions[i]) > version.parse(highest_version)):
60
+ highest_version = extracted_versions[i]
61
+ return highest_version
62
+ except:
63
+ product_error.append(prod)
64
+
65
+ print(product_error)
66
+
67
+ def mail_sender(mail_content):
68
+ sender_address = 'poorndm@progress.com'
69
+ sender_pass = ''
70
+ receiver_address = 'poorndm@progress.com'
71
+ #Setup the MIME
72
+ message = MIMEMultipart()
73
+ message['From'] = sender_address
74
+ message['To'] = receiver_address
75
+ message['Subject'] = 'Omnibus-S/W version Updates!' #The subject line
76
+ #The body and the attachments for the mail
77
+ message.attach(MIMEText(mail_content, 'plain'))
78
+ #Create SMTP session for sending the mail
79
+ session = smtplib.SMTP('smtp.progress.com',465) #use gmail with port
80
+ session.starttls() #enable security
81
+ session.login(sender_address, sender_pass) #login with mail_id and password
82
+ text = message.as_string()
83
+ session.sendmail(sender_address, receiver_address, text)
84
+ session.quit()
85
+ print('Mail Sent')
86
+
87
+ def create_github_issue(product,ticket_title,product_url):
88
+
89
+ github_token = ""
90
+ repo_owner = ""
91
+ repo_name = ""
92
+
93
+ title = ticket_title
94
+ body = product_url
95
+
96
+ url = "https://api.github.com/repos/%s/%s/import/issues"%(repo_owner,repo_name)
97
+ headers={
98
+ "Authorization":"token %s"%(github_token),
99
+ "Accept": "application/vnd.github.golden-comet-preview+json"
100
+ }
101
+
102
+ data = {
103
+ "issue":{
104
+ "title":title,
105
+ "body":body
106
+ }
107
+ }
108
+ payload = json.dumps(data)
109
+
110
+ response = requests.request("POST",url,data=payload,headers=headers)
111
+
112
+ return(response)
113
+
114
+ if(choice == 1):
115
+ print("Checking for all products........")
116
+ mail_content = ""
117
+ json_output={}
118
+ for i in file_data_pf:
119
+
120
+ product_details = file_data_pf[i]
121
+ #print (product_details)
122
+ highest_version = get_latest_version(product_details["url"],product_details["expr"],i)
123
+ default_version = file_data_pvf[i]
124
+
125
+ if(json_flag=="json"):
126
+ if(default_version==highest_version):
127
+ json_output[i] = {"Default_Version":default_version,"Latest_Version":highest_version, "Product_URL":product_details["url"],"Manual_Check":"No","Update_Required":"No"}
128
+ else:
129
+ json_output[i] = {"Default_Version":default_version,"Latest_Version":highest_version, "Product_URL":product_details["url"],"Manual_Check":"No","Update_Required":"Yes"}
130
+
131
+ else:
132
+ print("======================================================")
133
+ print("PRODUCT : ",i)
134
+ print("Latest software version available :",highest_version)
135
+ print("Default version :",default_version)
136
+ if(default_version == highest_version):
137
+ print("No version updates on the product")
138
+ else :
139
+ print("URL :",product_details["url"] )
140
+ print("------------------------------------------------------")
141
+ prod=i+".rb"
142
+ print("Check if",highest_version,"is stable version and already updated in version list in ",prod)
143
+ print("------------------------------------------------------")
144
+ print("======================================================")
145
+
146
+ if(json_flag=="json"):
147
+ print(json_output)
148
+ mail_content += "======================================================\n"+"PRODUCT : "+str(i)+"\nDefault version :"+str(default_version)+"\nLatest software version available :"+str(highest_version)+"\n======================================================"
149
+ #print(mail_content)
150
+ #mail_sender(mail_content)
151
+
152
+ elif(choice == 2 ):
153
+ product = input("Enter the product name\n")
154
+ if product in manual_prod_list :
155
+ if product in prod_def_ver_list :
156
+ manual_product_details=file_data_mf[product]
157
+ manual_product_url = manual_product_details["url"]
158
+ default_version = file_data_pvf[product]
159
+
160
+ json_output = {"Product":product, "Default_Version":default_version, "Product_URL":manual_product_url,"Manual_Check":"Yes"}
161
+ if(json_flag=="json"):
162
+ print(json_output)
163
+ else:
164
+ print("\n======================================================")
165
+ print("NOTE :",product, " Package -latest version has to be checked manually,Check below URL for Latest-version ")
166
+ print("\n======================================================")
167
+ print(" PRODUCT :",product)
168
+ print("------------------------------------------------------")
169
+ print(" Default version :",default_version)
170
+ print(" URL :",manual_product_url)
171
+ print("======================================================")
172
+
173
+ else :
174
+ print("ERROR : Invalid Product")
175
+
176
+ elif product in prod_lst :
177
+ if product in prod_def_ver_list :
178
+ product_details = file_data_pf[product]
179
+ url = product_details["url"]
180
+ expr = product_details["expr"]
181
+ default_version = file_data_pvf[product]
182
+ highest_version = get_latest_version(product_details["url"],product_details["expr"],product)
183
+
184
+ if(default_version==highest_version):
185
+ json_output = {"Product":product, "Default_Version":default_version,"Latest_Version":highest_version, "Product_URL":url,"Manual_Check":"No","Update_Required":"No", "Comment": ""}
186
+ else:
187
+ json_output = {"Product":product, "Default_Version":default_version,"Latest_Version":highest_version, "Product_URL":url,"Manual_Check":"No","Update_Required":"Yes", "Comment":"Verify if Latest version is present in Version list"}
188
+
189
+ if(json_flag=="json"):
190
+ print(json_output)
191
+ else:
192
+ print("======================================================")
193
+ print("PRODUCT : ",product)
194
+ print("======================================================")
195
+ print("Default version :",default_version)
196
+ print("Latest software version available :",highest_version)
197
+ #ticket_title = product+" version update from "+default_version+" to "+highest_version
198
+ print("======================================================")
199
+ if(default_version==highest_version):
200
+ print("No version updates on the product")
201
+ print("======================================================")
202
+ else :
203
+ print("URL :",product_details["url"] )
204
+ print("------------------------------------------------------")
205
+ prod=product+".rb"
206
+ print("Check if",highest_version," is stable version and already present in version list in ",prod)
207
+ print("------------------------------------------------------")
208
+
209
+ #else :
210
+ # ch=input("Would you like to create a ticket for this version-update track ? y/n :").lower()
211
+ # if(ch == 'y'):
212
+ # response = create_github_issue(product,ticket_title,url)
213
+ #print(response.content)
214
+ else :
215
+ print("ERROR : Invalid Product")
216
+ else :
217
+ print ("ERROR : Product / Package Name does'nt exists in the check_list ")
218
+
219
+ elif( choice == 3 ):
220
+
221
+ json_output={}
222
+
223
+ for product in manual_prod_list:
224
+ manual_product_details=file_data_mf[product]
225
+ manual_product_url=manual_product_details["url"]
226
+ default_version=file_data_pvf[product]
227
+
228
+ if(json_flag=="json"):
229
+ json_output[product]={"Default_Version":default_version,"Product_URL":manual_product_url}
230
+ else:
231
+ print("\n======================================================")
232
+ print(" PRODUCT :",product)
233
+ print("------------------------------------------------------")
234
+ print(" Default version :",default_version)
235
+ print(" URL :",manual_product_url)
236
+ print("======================================================")
237
+ if(json_flag=="json"):
238
+ print(json_output)
239
+ else:
240
+ print("List of product needs to be verified manually ")
241
+ print("prod_list",manual_prod_list)
242
+ else:
243
+ print("Invalid choice")
@@ -0,0 +1,29 @@
1
+ {
2
+ "cacerts": {
3
+ "url": "https://curl.se/ca/"
4
+ },
5
+ "cpanminus": {
6
+ "url": "https://metacpan.org/pod/App::cpanminus#Downloading-the-standalone-executable"
7
+ },
8
+ "elasticsearch": {
9
+ "url": "https://www.elastic.co/downloads/"
10
+ },
11
+ "go": {
12
+ "url": "https://go.dev/dl/"
13
+ },
14
+ "ruby": {
15
+ "url": "https://cache.ruby-lang.org/pub/ruby/"
16
+ },
17
+ "opensearch": {
18
+
19
+ "url": "https://opensearch.org/docs/latest/version-history/"
20
+ },
21
+ "popt": {
22
+ "url": "https://github.com/rpm-software-management/popt/releases/"
23
+ },
24
+ "sqitch": {
25
+
26
+ "url": "https://github.com/sqitchers/sqitch/releases"
27
+ }
28
+ }
29
+
@@ -0,0 +1,103 @@
1
+ {
2
+ "autoconf": "2.69" ,
3
+ "automake": "1.16" ,
4
+ "bash": "5.1.16" ,
5
+ "binutils": "2.26" ,
6
+ "bzip2": "1.0.8" ,
7
+ "cacerts": "2022-07-19" ,
8
+ "chef-gem": "11.12.2" ,
9
+ "cmake": "3.19.7" ,
10
+ "cpanminus": "1.7046" ,
11
+ "curl": "7.85.0" ,
12
+ "dep-selector-libgecode": "1.3.1" ,
13
+ "elasticsearch": "5.6.16" ,
14
+ "elixir": "1.4.2" ,
15
+ "erlang": "24.3.2" ,
16
+ "expat": "2.4.8" ,
17
+ "fakeroot": "1.20.2" ,
18
+ "figlet": "2.2.5" ,
19
+ "gcc": "4.9.2" ,
20
+ "gdbm": "1.8.3" ,
21
+ "gecode": "3.7.3" ,
22
+ "gem-permissions": "0.0.1" ,
23
+ "git-windows": "2.33.0" ,
24
+ "git": "2.37.3" ,
25
+ "gmp": "6.0.0a" ,
26
+ "go-uninstall": "0.0.1" ,
27
+ "go": "1.19" ,
28
+ "google-protobuf": "v3.21.4" ,
29
+ "gtar": "1.34" ,
30
+ "help2man": "1.40.5" ,
31
+ "highline-gem": "1.6.21" ,
32
+ "keepalived": "1.2.9" ,
33
+ "libarchive": "3.6.1" ,
34
+ "libedit": "20120601-3.0" ,
35
+ "libffi": "3.4.2" ,
36
+ "libgcc": "0.0.1" ,
37
+ "libiconv": "1.17" ,
38
+ "libintl-perl": "1.23" ,
39
+ "liblzma": "5.2.6" ,
40
+ "libossp-uuid": "1.6.2" ,
41
+ "libsodium": "1.0.18" ,
42
+ "libtool": "2.4.7" ,
43
+ "libuuid": "2.21" ,
44
+ "libxml2": "2.9.14" ,
45
+ "libxslt": "1.1.35" ,
46
+ "libyaml": "0.2.5" ,
47
+ "libzmq": "4.0.7" ,
48
+ "logrotate": "3.20.1" ,
49
+ "lua": "5.4.4" ,
50
+ "m4": "1.4.18" ,
51
+ "make": "4.3" ,
52
+ "makedepend": "1.0.6" ,
53
+ "mpc": "1.2.1" ,
54
+ "mpfr": "4.1.0" ,
55
+ "musl": "1.2.2" ,
56
+ "ncurses": "6.3" ,
57
+ "nginx": "1.21.4" ,
58
+ "nodejs-binary": "6.7.0" ,
59
+ "nodejs": "0.10.48" ,
60
+ "omnibus-ctl": "v0.6.0" ,
61
+ "openresty": "1.21.4.1" ,
62
+ "opensearch": "2.2.0" ,
63
+ "openssl-fips": "2.0.16" ,
64
+ "openssl": "1.0.2zb" ,
65
+ "patch": "2.7.6" ,
66
+ "patchelf": "0.13.1" ,
67
+ "pcre": "8.45" ,
68
+ "perl-extutils-embed": "1.14" ,
69
+ "perl-extutils-makemaker": "6.78" ,
70
+ "perl-thread-queue": "3.13" ,
71
+ "perl": "5.36.0" ,
72
+ "perl_pg_driver": "3.16.0" ,
73
+ "pg-gem": "0.17.1" ,
74
+ "pkg-config-lite": "0.28-1" ,
75
+ "pkg-config": "0.28" ,
76
+ "popt": "1.18" ,
77
+ "postgresql": "14.5" ,
78
+ "preparation": "1.0.0" ,
79
+ "python": "3.10.5" ,
80
+ "rabbitmq": "3.6.6" ,
81
+ "rbnacl-libsodium": "1.0.11" ,
82
+ "redis-gem": "3.3.3" ,
83
+ "redis": "7.0.4" ,
84
+ "rsync": "3.1.1" ,
85
+ "ruby-cleanup": "1.0.0" ,
86
+ "ruby-msys2-devkit": "3.0.3-1" ,
87
+ "ruby-windows-devkit-bash": "3.1.23-4-msys-1.0.18" ,
88
+ "ruby-windows-devkit": "4.7.2-20130224" ,
89
+ "ruby": "3.1.2" ,
90
+ "runit": "2.1.2" ,
91
+ "rust-uninstall": "0.0.1" ,
92
+ "rust": "1.37.0" ,
93
+ "sequel-gem": "4.47.0" ,
94
+ "server-open-jre": "11.0.16.1+1" ,
95
+ "setuptools": "0.7.7" ,
96
+ "shebang-cleanup": "0.0.2" ,
97
+ "sqitch": "1.3.0" ,
98
+ "stunnel": "5.49" ,
99
+ "util-macros": "1.19.3" ,
100
+ "version-manifest": "0.0.1" ,
101
+ "xproto": "7.0.31" ,
102
+ "zlib": "1.2.12"
103
+ }
@@ -0,0 +1,194 @@
1
+ {
2
+ "bash": {
3
+ "url": "https://ftp.gnu.org/gnu/bash",
4
+ "expr": "^(bash-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
5
+ },
6
+ "bzip2": {
7
+ "url": "https://sourceware.org/pub/bzip2/",
8
+ "expr": "^(bzip2-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
9
+ },
10
+ "curl": {
11
+ "url": "https://curl.se/download/",
12
+ "expr": "\\d[\\.\\d]*\\d$"
13
+ },
14
+ "erlang": {
15
+ "url": "https://github.com/erlang/otp/tags",
16
+ "expr": "^(OTP-)\\d[\\.\\d]*\\d$"
17
+ },
18
+ "expat": {
19
+ "url": "https://github.com/libexpat/libexpat/releases/",
20
+ "expr": "^(expat-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
21
+ },
22
+ "git": {
23
+ "url": "https://www.kernel.org/pub/software/scm/git",
24
+ "expr": "^(git-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
25
+ },
26
+ "gmp": {
27
+ "url": "https://ftp.gnu.org/gnu/gmp",
28
+ "expr": "^(gmp-)\\d[\\.\\d]*\\d(\\.tar\\.bz2)$"
29
+ },
30
+ "gtar": {
31
+ "default_version": "1.34",
32
+ "url": "https://ftp.gnu.org/gnu/tar",
33
+ "expr": "^(tar-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
34
+ },
35
+ "google-protobuf": {
36
+ "url": "https://github.com/protocolbuffers/protobuf/tags",
37
+ "expr": "^(v)\\d[\\.\\d]*\\d$"
38
+ },
39
+ "libarchive": {
40
+ "url": "https://github.com/libarchive/libarchive/releases/",
41
+ "expr": "^(libarchive-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
42
+ },
43
+ "libiconv": {
44
+ "url": "https://ftp.gnu.org/pub/gnu/libiconv",
45
+ "expr": "^(libiconv-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
46
+ },
47
+ "libedit": {
48
+ "url": "http://thrysoee.dk/editline/",
49
+ "expr": "(libedit-)\\d*-[\\.\\d]*\\d(\\.tar\\.gz)$"
50
+ },
51
+ "libffi": {
52
+ "url": "https://github.com/libffi/libffi/releases/",
53
+ "expr": "^(libffi-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
54
+ },
55
+ "libintl-perl": {
56
+ "url": "https://cpan.metacpan.org/authors/id/G/GU/GUIDO/",
57
+ "expr": "^(libintl-perl-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
58
+ },
59
+ "libsodium": {
60
+ "url": "https://download.libsodium.org/libsodium/releases",
61
+ "expr": "^(libsodium-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
62
+ },
63
+ "libtool": {
64
+ "url": "https://ftp.gnu.org/gnu/libtool",
65
+ "expr": "^(libtool-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
66
+ },
67
+ "libxml2": {
68
+ "url": "https://download.gnome.org/sources/libxml2/2.9/",
69
+ "expr": "^(libxml2-)\\d[\\.\\d]*\\d(\\.tar\\.xz)$"
70
+ },
71
+ "libxslt": {
72
+ "url": "https://download.gnome.org/sources/libxslt/1.1/",
73
+ "expr": "^(libxslt-)\\d[\\.\\d]*\\d(\\.tar\\.xz)$"
74
+ },
75
+ "libyaml": {
76
+ "url": "https://pyyaml.org/download/libyaml",
77
+ "expr": "^(yaml-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
78
+ },
79
+ "liblzma": {
80
+ "url": "http://tukaani.org/xz/",
81
+ "expr": "^(xz-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
82
+ },
83
+ "libossp-uuid": {
84
+ "url": "https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid",
85
+ "expr": "^(uuid-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
86
+ },
87
+ "logrotate": {
88
+ "url": "https://github.com/logrotate/logrotate",
89
+ "expr": "^(logrotate-)\\d[\\.\\d]*\\d$"
90
+ },
91
+ "lua": {
92
+ "url": "https://www.lua.org/ftp",
93
+ "expr": "^(lua-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
94
+ },
95
+ "makedepend": {
96
+ "url": "https://www.x.org/releases/individual/util",
97
+ "expr": "^(makedepend-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
98
+ },
99
+ "make": {
100
+
101
+ "url": "https://ftp.gnu.org/gnu/make",
102
+ "expr": "^(make-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
103
+ },
104
+ "mpc": {
105
+
106
+ "url": "https://ftp.gnu.org/gnu/mpc",
107
+ "expr": "^(mpc-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
108
+ },
109
+ "mpfr": {
110
+
111
+ "url": "https://ftp.gnu.org/gnu/mpfr",
112
+ "expr": "^(mpfr-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
113
+ },
114
+ "ncurses": {
115
+
116
+ "url": "https://ftp.gnu.org/gnu/ncurses",
117
+ "expr": "^(ncurses-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
118
+ },
119
+ "openresty": {
120
+
121
+ "url": "https://openresty.org/en/download.html",
122
+ "expr": "^(openresty-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
123
+ },
124
+ "openssl-fips": {
125
+
126
+ "url": "https://www.openssl.org/docs/fips.html",
127
+ "expr": "^v\\d[\\.\\d]*\\d"
128
+ },
129
+ "patch": {
130
+
131
+ "url": "https://ftp.gnu.org/gnu/patch",
132
+ "expr": "^(patch-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
133
+ },
134
+ "patchelf": {
135
+
136
+ "url": "https://github.com/NixOS/patchelf/releases/",
137
+ "expr": "^(patchelf-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
138
+ },
139
+ "pcre": {
140
+
141
+ "url": "https://sourceforge.net/projects/pcre/files/pcre",
142
+ "expr": "^\\d\\.[\\.\\d]*\\d$"
143
+ },
144
+ "perl": {
145
+
146
+ "url": "http://www.cpan.org/src/",
147
+ "expr": "^(perl-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
148
+ },
149
+ "perl_pg_driver": {
150
+
151
+ "url": "https://cpan.metacpan.org/authors/id/T/TU/TURNSTEP/",
152
+ "expr": "^(DBD-Pg-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
153
+ },
154
+ "postgresql": {
155
+
156
+ "url": "https://ftp.postgresql.org/pub/source/",
157
+ "expr": "^v\\d[\\.\\d]*\\d"
158
+ },
159
+ "python": {
160
+
161
+ "url": "https://www.python.org/ftp/python/",
162
+ "expr": "\\d[\\.\\d]*\\d\/"
163
+ },
164
+ "redis": {
165
+
166
+ "url": "http://download.redis.io/releases/",
167
+ "expr": "^(redis-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
168
+ },
169
+ "runit": {
170
+
171
+ "url": "http://smarden.org/runit/install.html",
172
+ "expr": "^(runit-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
173
+ },
174
+ "server-open-jre": {
175
+ "url": "https://github.com/adoptium/temurin11-binaries/releases/",
176
+ "expr": ".*(jdk).*\\d[\\.\\d]*_\\d*(\\.tar\\.gz)$"
177
+ },
178
+ "stunnel": {
179
+ "url": "https://www.stunnel.org/downloads.html",
180
+ "expr": "^(stunnel-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
181
+ },
182
+ "xproto": {
183
+ "url": "https://www.x.org/releases/individual/proto/",
184
+ "expr": "^(xproto-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
185
+ },
186
+ "util-macros": {
187
+ "url": "https://www.x.org/releases/individual/util",
188
+ "expr": "^(util-macros-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
189
+ },
190
+ "zlib": {
191
+ "url": "https://zlib.net/fossils",
192
+ "expr": "^(zlib-)\\d[\\.\\d]*\\d(\\.tar\\.gz)$"
193
+ }
194
+ }
@@ -0,0 +1,4 @@
1
+ requests
2
+ bs4
3
+ packaging
4
+ email
@@ -0,0 +1,24 @@
1
+ #!/bin/bash
2
+
3
+ #To update the product_default_version
4
+ #cd omnibus-software/config/software
5
+ #sh update_prod_default_version.sh
6
+
7
+ Prod_file="prod_default_version.json"
8
+ cd ../../config/software/
9
+ rm -rf $Prod_file
10
+ echo "{" >> $Prod_file
11
+ for FILE in *.rb; do
12
+ prod=$(echo "$FILE" |cut -d "." -f1);
13
+ dv=$( grep "default_version" $FILE| cut -d " " -f2)
14
+ if [ "$prod" = "cacerts" ]; then
15
+ echo "\"$prod\": $dv ,">> $Prod_file;
16
+ else
17
+ if echo $dv | grep -qE '[0-9]\.[0-9]+' ;then
18
+ echo "\"$prod\": $dv ,">> $Prod_file;
19
+ fi
20
+ fi
21
+ done;
22
+ $(printf '%s\n' '$' 's/.$//' wq | ex $Prod_file)
23
+ echo "}" >> $Prod_file
24
+ mv $Prod_file ../../.expeditor/Version_Inspector/
@@ -0,0 +1,35 @@
1
+ #to update the prod_list.json
2
+ #cd omnibus-software/config/software
3
+ #sh update_prod_list.sh
4
+
5
+ prod_file="prod_list.json"
6
+ cd ../../config/software/
7
+ rm $prod_file
8
+ echo "{" >>$prod_file
9
+ for FILE in *.rb; do
10
+ if ! grep -q deprecated $FILE ; then
11
+ echo "File name is :$FILE"
12
+ prod=$(echo "$FILE" |cut -d "." -f1);
13
+ dv=$( grep "default_version" $FILE| cut -d " " -f2)
14
+ if echo $dv | grep -qE '[0-9]\.[0-9]+' ;then
15
+ url=$(grep "https" $FILE | grep tar | tail -1 | cut -d ":" -f2 -f3 | cut -d "-" -f1)
16
+ if [ ! -z "$url" ];then
17
+ echo "\"$prod\": {" >> $prod_file;
18
+ url1=$(dirname $url)
19
+ echo "\"url\": $url1\"," >> $prod_file ;
20
+ if [ $prod == "openssl-fips" ] || [ $prod == "postgresql" ] ;then
21
+ expr1="^v\\\\\d[\\\\\.\\\\\d]*\\\\\d"
22
+ echo $expr1
23
+ else
24
+ expr1="^($prod-)\\\\\d[\\\\\.\\\\\d]*\\\\\d(\\\\\.tar\\\\\.gz)$"
25
+ echo "EXPR=$expr1"
26
+ fi
27
+ echo "\"expr\": \"$expr1\"">>$prod_file
28
+ echo "},">>$prod_file
29
+ fi
30
+ fi
31
+ fi
32
+ done;
33
+ $(printf '%s\n' '$' 's/.$//' wq | ex $prod_file)
34
+ echo "}" >>$prod_file
35
+ #mv $prod_file ../../.expeditor/Version_Inspector/