<div dir="ltr"><div>the code is as follows and is very sloppy:</div><div>#!/usr/bin/env python3<br>import subprocess as sp<br>import os<br>import pwd<br>os.chdir(os.path.expanduser('~'))<br>pcre2_version="pcre2-10.40"<br>zlib_version="zlib-1.2.13"<br>openssl_version="openssl-1.1.1p"<br>nginx_version="nginx-1.22.1"<br>deps = [<br>   'curl', 'wget', 'tree','perl','perl-devel','perl-ExtUtils-Embed','libxslt','libxslt-devel',<br>   'libxml2','libxml2-devel','gd','gd-devel','GeoIP','GeoIP-devel'<br>]<br>deps_group = ['Development Tools']<br>def set_download_url(array=[]):<br>    if not array or not isinstance(array, list):<br>        return<br>    return '/'.join(array) + '.tar.gz'<br><br>pcre2_download_url=set_download_url([<br>    '<a href="http://github.com/PCRE2Project/pcre2/releases/download/">github.com/PCRE2Project/pcre2/releases/download/</a>', pcre2_version, pcre2_version<br>    ])<br>zlib_download_url=set_download_url([<br>    '<a href="http://zlib.net/">http://zlib.net/</a>', zlib_version<br>    ])<br>openssl_download_url=set_download_url([<br>    '<a href="http://www.openssl.org/source/">http://www.openssl.org/source/</a>', openssl_version<br>    ])<br>nginx_download_url= set_download_url([<br>    '<a href="https://nginx.org/download/">https://nginx.org/download/</a>', nginx_version<br>])<br><br>def download_build_install(url):<br>    tar_file = url.split('/')[-1]<br>    print(f'Downloading {url} and untaring {tar_file}')<br>    sp.run(f'wget -N {url}', shell=True)<br>    sp.run(f'tar xzvf {tar_file}', shell=True)<br><br>def delete_tar_gz(version):<br>    tarfile=version + '.tar.gz'<br>    print(f'deleting {tarfile}')<br>    os.remove(os.path.join(os.path.expanduser('~'), tarfile))<br>    print(f'deleted {tarfile}')<br><br>print('ok, first thin first lets get all the dnf dependencies to compile nginx')<br>print('are you ready for timewasting dnf forever repo loads? [y/n]')<br>answer = input()<br>if not answer or answer.lower().startswith('n'):<br>    print('ok, have a good day')<br>if answer.lower().startswith('y'):<br>    new = ['sudo', 'dnf' ]<br>    groupinstall = new + ['groupinstall', '-y'] + deps_group<br>    depinstall = new + ['install', '-y'] + deps<br>    listed = [groupinstall, depinstall]<br>    for a in listed:<br>        sp.run(a)<br>print(f'Nice, now lets download the sources for:\n\t{openssl_version}, {zlib_version},{pcre2_version}')<br>print('are you ready?[y/n]')<br>answer1 = input()<br>if not answer1 or answer1.lower().startswith('n'):<br>    print('ok, have a good day')<br>if answer.lower().startswith('y'):<br>    for b in [openssl_download_url, zlib_download_url, pcre2_download_url]:<br>        download_build_install(b)<br>    for c in [openssl_version, zlib_version, pcre2_version]:<br>        delete_tar_gz(c)<br>    download_build_install(nginx_download_url)<br>print(f'setting the man page:')<br>if not os.path.exists('/usr/share/man/man8/nginx.8'):<br>    sp.run(['sudo', 'cp', os.path.join(os.path.expanduser('~'),f'{nginx_version}/nginx.8'),  '/usr/share/man/man8'])<br>    sp.run(['sudo', 'gzip', '/usr/share/man/man8/nginx.8'])<br>    sp.run('ls /usr/share/man/man8/ | grep nginx.8.gz', shell=True)<br>print(f'going into {nginx_version} directory')<br>os.chdir(nginx_version)<br>sp.run( ['./configure', '--prefix=/etc/nginx',          '--sbin-path=/usr/sbin/nginx',<br>            '--modules-path=/usr/lib64/nginx/modules',   '--conf-path=/etc/nginx/nginx.conf',<br>            '--error-log-path=/var/log/nginx/error.log', '--pid-path=/var/run/nginx.pid',<br>            '--lock-path=/var/run/nginx.lock',           '--user=nginx',<br>            '--group=nginx', '--build=Fedora',           '--builddir=nginx-1.15.8',<br>            '--with-select_module', '--with-poll_module',<br>            '--with-threads',            '--with-file-aio',<br>            '--with-http_ssl_module',            '--with-http_v2_module',<br>            '--with-http_realip_module',            '--with-http_addition_module',<br>            '--with-http_xslt_module=dynamic',            '--with-http_image_filter_module=dynamic',<br>            '--with-http_geoip_module=dynamic',            '--with-http_sub_module',<br>            '--with-http_dav_module',            '--with-http_flv_module',<br>            '--with-http_mp4_module',            '--with-http_gunzip_module',<br>            '--with-http_gzip_static_module',            '--with-http_auth_request_module',<br>            '--with-http_random_index_module',            '--with-http_secure_link_module',<br>            '--with-http_degradation_module',            '--with-http_slice_module',<br>            '--with-http_stub_status_module',            '--with-http_perl_module=dynamic',<br>            '--with-perl_modules_path=/usr/lib64/perl5', '--with-perl=/usr/bin/perl',<br>            '--http-log-path=/var/log/nginx/access.log', '--http-client-body-temp-path=/var/cache/nginx/client_temp',<br>            '--http-proxy-temp-path=/var/cache/nginx/proxy_temp',<br>            '--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp',<br>            '--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp',<br>            '--http-scgi-temp-path=/var/cache/nginx/scgi_temp',<br>            '--with-mail=dynamic', '--with-mail_ssl_module', '--with-stream=dynamic',<br>            '--with-stream_ssl_module', '--with-stream_realip_module',<br>            '--with-stream_geoip_module=dynamic', '--with-stream_ssl_preread_module',<br>            '--with-compat', f'--with-pcre=../{pcre2_version}',      '--with-pcre-jit',<br>            f'--with-zlib=../{zlib_version}',           f'--with-openssl=../{openssl_version}',<br>            '--with-openssl-opt=no-nextprotoneg',            '--with-debug']<br>)<br>sp.run('make')<br>sp.run(['sudo', 'make', 'install'])<br>if os.path.islink('/etc/nginx/modules'):<br>    sp.run('sudo rm /etc/nginx/modules', shell=True)<br><br>sp.run('sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules', shell=True)<br>try:<br>    pwd.getpwnam('nginx')<br>except KeyError:<br>    sp.run('sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin\<br>        --comment "nginx user" --user-group nginx', shell=True)<br>for x in ['/var/cache/nginx/client_temp','/var/cache/nginx/fastcgi_temp',<br>    '/var/cache/nginx/proxy_temp','/var/cache/nginx/scgi_temp','/var/cache/nginx/uwsgi_temp']:<br>    if not os.path.exists(x):<br>        sp.run(['sudo','mkdir', '-p', x])<br>sp.run('sudo chmod 700 /var/cache/nginx/*', shell=True)<br>sp.run('sudo chown nginx:root /var/cache/nginx/*', shell=True)<br>print('check for errors')<br>sp.run(['sudo', 'nginx', '-t'])</div><div><br></div><div>thank you for your time, that is the attached file<br></div><div><br></div></div>