Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Oracle Linux 8 #1421

Closed
3 tasks done
mfeit-internet2 opened this issue Mar 19, 2024 · 2 comments
Closed
3 tasks done

Add support for Oracle Linux 8 #1421

mfeit-internet2 opened this issue Mar 19, 2024 · 2 comments
Assignees

Comments

@mfeit-internet2
Copy link
Member

mfeit-internet2 commented Mar 19, 2024

Title says it all.

Known needed:

  • Restore the %{_pscheduler_python} macro in pscheduler-rpm
  • Change all references to python in Requires and BuildRequires to use the macro
  • Re-add packages required for OL8 that were stripped out.
@github-project-automation github-project-automation bot moved this to Ready in perfSONAR Mar 19, 2024
cs1867 pushed a commit that referenced this issue Mar 19, 2024
cs1867 pushed a commit that referenced this issue Mar 19, 2024
cs1867 pushed a commit that referenced this issue Mar 19, 2024
cs1867 pushed a commit that referenced this issue Mar 19, 2024
@mfeit-internet2 mfeit-internet2 moved this from Ready to In Progress in perfSONAR Mar 20, 2024
@mfeit-internet2
Copy link
Member Author

These were the remaining references to Python in RPM specs resolved in ec82458:

./postgresql-init/unibuild-packaging/rpm/postgresql-init.spec:Requires:	postgresql-plpython3 >= %{_pscheduler_postgresql_version}
	OK; Worry about this if there's ever a Python 4.

./pscheduler-server/pscheduler-server/unibuild-packaging/rpm/pscheduler-server.spec:     "PYTHON=%(command -v python)" \
	FIXED: Python by name

./pscheduler-server/pscheduler-server/unibuild-packaging/rpm/pscheduler-server.spec:%triggerin -- python-pscheduler
	FIXED:  Needs to refer to the package by its full name

./pscheduler-server/pscheduler-server/unibuild-packaging/rpm/pscheduler-server.spec:API_ROOT="$(python -c 'import pscheduler ; print(pscheduler.api_root())')"
	FIXED:  Needs to refer to the package by its full name

./pscheduler-server/pscheduler-server/unibuild-packaging/rpm/pscheduler-server.spec:BuildRequires:	postgresql-plpython3 >= %{_pscheduler_postgresql_version}
	OK; Worry about this if there's ever a Python 4.
 
./python-daemon/unibuild-packaging/rpm/python-daemon.spec:%setup -q -n python-%{short}-%{version}
./python-daemon/unibuild-packaging/rpm/python-daemon.spec:Source:		python-%{short}-%{version}.tar.gz
	Both OK; This is the tarball the source is packaged in.

./python-jsonschema/unibuild-packaging/rpm/python-jsonschema.spec:Provides:	python-%{short} = %{version}-%{release}
./python-jsonschema/unibuild-packaging/rpm/python-jsonschema.spec:Provides:	python-%{short} = %{version}-%{release}
	FIXED:  Redundant; dependent RPMs refer to it by its full (python3-xxx) name.

./python-kafka/unibuild-packaging/rpm/python-kafka.spec:%setup -q -n %{short}-python-%{version}
./python-kafka/unibuild-packaging/rpm/python-kafka.spec:Source:         %{short}-python-%{version}.tar.gz
	Both OK; This is the tarball that the source is packaged in.

./python-nmap3/unibuild-packaging/rpm/python-nmap3.spec:%define actual  python3-nmap
	OK; we fixed this.

./python-pscheduler/pscheduler/unibuild-packaging/rpm/python-pscheduler.spec:OLD_LOGROTATE="%{logrotate_d}/python-pscheduler"
	OK; this is a generic name

./python-pyasn1-modules/unibuild-packaging/rpm/python-pyasn1-modules.spec:Provides:	python-%{short} = %{version}-%{release}
	FIXED:  Redundant; dependent RPMs refer to it by its full (python3-xxx) name.

./python-pyasn1/unibuild-packaging/rpm/python-pyasn1.spec:Provides:	python-%{short} = %{version}-%{release}
	FIXED:  Redundant; dependent RPMs refer to it by its full (python3-xxx) name.

./python-pyjq/unibuild-packaging/rpm/python-pyjq.spec:Patch0:		python-%{short}-%{version}-00-nodownloads.patch
./python-pyjq/unibuild-packaging/rpm/python-pyjq.spec:Patch1:		python-%{short}-%{version}-01-integer.patch
	Both OK; these are the name of the package directory, not the installed module.

./python-pyrsistent/unibuild-packaging/rpm/python-pyrsistent.spec:Provides:	python-%{short} = %{version}-%{release}
	FIX:  Redundant; dependent RPMs refer to it by its full (python3-xxx) name.

This got us to a running build of pScheduler. Steps to repeat on a fresh VM with Git and Docker installed:

git clone "[email protected]:perfsonar/docker-devbox.git"
eval $(./docker-devbox/setup)

ddb build ol8u
ddb boot --login tester ol8u

# (Now logged into Docker container "tester")

dnf -y install git

cd /tmp

for REPO in i2util owamp pscheduler
do
    git clone "[email protected]:perfsonar/${REPO}.git"
    git -C "${REPO}" checkout 5.1.0
done

make -C i2util
make -C owamp

# Still working in the branch.
git -C pscheduler checkout issue-1421
make -C pscheduler

pscheduler troubleshoot

@mfeit-internet2
Copy link
Member Author

These references to [eo]l[89] in RPM specs in 5.0.8 may require attention in 5.1.0:

./python-werkzeug/unibuild-packaging/rpm/python-werkzeug.spec:
%if %{?ol8:0}%{!?ol8:1}
# OL8 doesn't have this, but the build succeeds without it.   <-- Seemed OK on OL8.
# TODO: See of we can live without this on CentOS
BuildRequires:  %{_pscheduler_python}-sphinx
%endif

./python-pyjq/unibuild-packaging/rpm/python-pyjq.spec:
%if 0%{?el8}
BuildRequires:  %{_pscheduler_python}-Cython >= 0.19
%endif
%if 0%{?el7}%{?el9}
BuildRequires:  Cython >= 0.19
%endif

./python-nmap3/unibuild-packaging/rpm/python-nmap3.spec:
%if 0%{?el7}
Requires:       %{_pscheduler_python_epel}-simplejson
%endif
%if 0%{?el8}
Requires:       %{_pscheduler_python}-simplejson  <--- Didn't seem to be an issue without it.
%endif

./python-flask/unibuild-packaging/rpm/python-flask.spec:
%if 0%{?el8}%{?el9}
Requires:       %{_pscheduler_python}-click  <--- Permanent in el9.  No action needed.
Requires:       %{_pscheduler_python}-jinja2
%endif
...
%if 0%{?el8}%{?el9}
# EL8/EL9's auto dependency scanner wants /bin/python3, which nothing provides.
AutoReqProv: no     <--- Permanent in el9.  No action needed.
%endif

./pscheduler-tool-powstream/powstream/unibuild-packaging/rpm/pscheduler-tool-powstream.spec:
%if 0%{?el8}
Requires:       %{_pscheduler_python}-pytz  <--- Part of OL8 and EL9.  No action needed.
%endif


./pscheduler-tool-dhclient/dhclient/unibuild-packaging/rpm/pscheduler-tool-dhclient.spec:
%if 0%{?el8}
Requires:       dhcp-client
# Needed so the sudoers file can be built
BuildRequires:  dhcp-client  <--- Made permanent.  No action needed.
%endif


./pscheduler-server/pscheduler-server/unibuild-packaging/rpm/pscheduler-server.spec
%if 0%{?el8}%{?el9}
Requires:       %{_pscheduler_python}-pytz     <--- Made permanent.  No action needed.
%endif


./pscheduler-core/pscheduler-core/unibuild-packaging/rpm/pscheduler-core.spec:
%if 0%{?el8}
Requires:       gnuplot >= 4.6.2     <--- Made permanent.  No action needed.
%endif
...
%if 0%{?el8}
Requires:       %{_pscheduler_python}-pytz     <--- Made permanent.  No action needed.
%endif


./pscheduler-core/pscheduler-core/unibuild-packaging/rpm/pscheduler-core.spec:%if 0%{?el8}
%if 0%{?el8}
Requires:       gnuplot >= 4.6.2     <--- Made permanent.  No action needed.
%endif
...
%if 0%{?el8}
Requires:       %{_pscheduler_python}-pytz     <--- Made permanent.  No action needed.
%endif


./iperf/unibuild-packaging/rpm/iperf.spec:
%if 0%{?el9}
# The macro isn't present on EL9.   <--- Should be ported into 5.1.0
autoconf
%else
%{__autoconf}
%endif

mfeit-internet2 added a commit that referenced this issue Apr 8, 2024
* Clean up for oracle 8 #1421

* Changes for oracle 8 supper #1421

* Oracle 8 build work #1421

* Oracle changes #1421

* Spec fixes for Oracle 8 port.  #1421

* Start Pg even if the database is already initialized.  Fixed a typo.  Found in #1421.

---------

Co-authored-by: Carl Sacco <[email protected]>
Co-authored-by: Mark Feit <[email protected]>
@github-project-automation github-project-automation bot moved this from In Progress to Done in perfSONAR Apr 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

2 participants