Code Monkey home page Code Monkey logo

convert2rhel's People

Contributors

abadger avatar andrew-ang9 avatar bocekm avatar bookwar avatar danmyway avatar dependabot[bot] avatar fellipeh avatar fernflower avatar hosekadam avatar jochapma avatar jonathan-sturges avatar kokesak avatar lachmanfrantisek avatar lgtm-com[bot] avatar mkluson avatar mportman12 avatar nwerker avatar pirat89 avatar pr-watson avatar pre-commit-ci[bot] avatar psss avatar ptoscano avatar pvoborni avatar r0x0d avatar renovate[bot] avatar spytec avatar sturivny avatar tabowling avatar tomastomecek avatar zhukovgreen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

convert2rhel's Issues

Convert2RHEL fails with package from PowerTools like libedit-devel nkf are installed to CentOS 8

  1. On CentOS system enable the PowerTools and install libedit-devel nkf
    - dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    - dnf config-manager --set-enabled PowerTools
    - yum -y install   libedit-devel nkf
    
  2. Follow the Covert2rhel for CentOS 8.5 to get RHEL 8.5
  3. It will fails at some error as below after installing most of the Red Hat packages
('[%s] %s - %s', '11/26/2021 11:59:06', 'DEBUG', "Calling command 'yum distro-sync -y --disablerepo=* --releasever=8.5 --setopt=module_platform_id=platform:el8 --enablerepo=rhel-8-for-x86_64-baseos-rpms --enablerepo=rhel-8-for-x86_64-appstream-rpms libedit-devel nkf'")
Updating Subscription Management repositories.
Last metadata expiration check: 0:06:32 ago on Fri Nov 26 11:52:36 2021.
No package libedit-devel installed.
No package nkf installed.
Error: No packages marked for distribution synchronization.
Received return code: 1

Resolving dependency errors ... 
Checking for problematic packages



No other package to try to downgrade in order to resolve yum dependency errors.
Checking for problematic packages



CRITICAL - Could not resolve yum errors.
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 104, in main
    post_ponr_conversion()
  File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 220, in post_ponr_conversion
    pkghandler.replace_non_red_hat_packages()
  File "/usr/lib/python3.6/site-packages/convert2rhel/pkghandler.py", line 582, in replace_non_red_hat_packages
    call_yum_cmd_w_downgrades(cmd, orig_os_pkgs + submgr_pkgs)
  File "/usr/lib/python3.6/site-packages/convert2rhel/pkghandler.py", line 79, in call_yum_cmd_w_downgrades
    return call_yum_cmd_w_downgrades(cmd, pkgs, retries - 1)
  File "/usr/lib/python3.6/site-packages/convert2rhel/pkghandler.py", line 79, in call_yum_cmd_w_downgrades
    return call_yum_cmd_w_downgrades(cmd, pkgs, retries - 1)
  File "/usr/lib/python3.6/site-packages/convert2rhel/pkghandler.py", line 79, in call_yum_cmd_w_downgrades
    return call_yum_cmd_w_downgrades(cmd, pkgs, retries - 1)
  File "/usr/lib/python3.6/site-packages/convert2rhel/pkghandler.py", line 55, in call_yum_cmd_w_downgrades
    loggerinst.critical("Could not resolve yum errors.")
  File "/usr/lib/python3.6/site-packages/convert2rhel/logger.py", line 104, in _critical
    sys.exit(msg)
SystemExit: Could not resolve yum errors.

WARNING - Conversion process interrupted and manual user intervention will be necessary.

Now, it can be seen the packages libedit-devel nkf are part of "codeready-builder-for-rhel-8-x86_64-rpms" repository whereas the convert2rhel enables the appstream and BaseOs repos only.

Reboot goes fine and system is still bootable after doing something like this,

#rpm -e  libedit-devel nkf

#yum install --enablerepo=codeready-builder-for-rhel-8-x86_64-rpms libedit-devel nkf ; yum distro-sync -y --disablerepo=* --releasever=8.5 --setopt=module_platform_id=platform:el8 --enablerepo=rhel-8-for-x86_64-baseos-rpms --enablerepo=rhel-8-for-x86_64-appstream-rpms --enablerepo=codeready-builder-for-rhel-8-x86_64-rpms libedit-devel nkf

System failure as a result of running convert2rhel

I recently tried to convert a CentOS 8 Linux x86_64 VM to RHEL x86_64. After running the script the install was broken. Here is a report of the incident:

- The tool started execution, and moved things arround too quickly before failing cause of tainted kernel.
- The script entered rollback state.
- The rollback operation forgot to restore some files such as /etc/os-release and left some of the new RHEL tools still available. At this point the system is in a mixed-transition state and cannot properly reboot.
- The next reboot obviously leads to emergency shell due to /etc/os-release not restored.

After some research it appears the file /etc/os-release is provided by a package named redhat-release on RHEL and centos-release on CentOS. My guess is the script started to uninstall the centos-release package but the rollback operation forgot or failed to re-install the missing package.

After these findings the process to restore the system at this point is to mount /dev, /sys and /proc in the damaged system root and chroot into it. Then you can apply these commands one after the other:

- echo "stock" > /etc/yum/vars/infra
- dhclient
- dnf install centos-release --releasever 8
- dnf update

And don't forget to disable SELinux as some of it's base policies might have not been restored.

centos-release was not replaced (Converting CentOS8.3 to RHEL8)

I’ve tried to convert from CentOS8 to RHEL8 using convert2rhel, and I’ve gotten unexpected result ,although the convert process completed normally.
I expected that centos-release file is replaced to redhat-release, but the result is not. Following is result after convert.

# cat /etc/redhat-release 
CentOS Linux release 8.3.2011

# ls -l /etc/*release
-rw-r--r--. 1 root root 30 11月 10 10:49 /etc/centos-release
lrwxrwxrwx. 1 root root 21 11月 10 10:49 /etc/os-release -> ../usr/lib/os-release
lrwxrwxrwx. 1 root root 14 11月 10 10:49 /etc/redhat-release -> centos-release

Remained unchanged are

# yum list extras --disablerepo="*" --enablerepo=rhel-8-baseos --enablerepo=rhel-8-appstream
centos-gpg-keys.noarch                                                     1:8-2.el8                                                     @anaconda    
centos-linux-release.noarch                                                8.3-1.2011.el8                                                @anaconda    
centos-linux-repos.noarch                                                  8-2.el8                                                       @anaconda    
convert2rhel.noarch                                                        0.14-1.el8                                                    @@commandline

I could see following message in convert2rhel.log

:
[01/21/2021 23:46:54] TASK - [Convert: Remove excluded packages] ********************************
Searching for the following excluded packages:

centos-logos .................................... 0
centos-indexhtml ................................ 0
centos-release* ................................. 0
redhat-release* ................................. 0
rhn* ............................................ 0
python3-rhn* .................................... 0

Nothing to do.

[01/21/2021 23:46:54] TASK - [Convert: Install Red Hat release package] *************************
Installing redhat-release package
WARNING - Removing /etc/system-release saved during previous run of convert2rhel
No package to install

[01/22/2021 00:06:46] TASK - [Convert: List remaining non-Red Hat packages] *********************
Listing packages not signed by Red Hat
The following packages were left unchanged.
Package                                     Packager         Repository
-------                                     --------         ----------
centos-gpg-keys-8-2.el8.noarch              CentOS Buildsys  @anaconda
centos-linux-release-8.3-1.2011.el8.noarch  CentOS Buildsys  @anaconda
centos-linux-repos-8-2.el8.noarch           CentOS Buildsys  @anaconda
convert2rhel-0.14-1.el8.noarch              N/A              @@commandline
:

Is this result expected? If no, What am I doing wrong?

Procedure

  • convert from CentOS8
# cat redhat-release 
CentOS Linux release 8.3.2011
  • convert to RHEL8 using RHEL ISO image as RHEL repository
cat /etc/yum.repos.d/rhel-media.repo
[rhel-8-baseos]
name=Red Hat Enterprise Linux 8.3.0 - BaseOS
baseurl=file:///mnt/media/BaseOS
mediaid=None
metadata_expire=-1
gpgcheck=0
cost=500

[rhel-8-appstream]
name=Red Hat Enterprise Linux 8.3.0 - AppStream
baseurl=file:///mnt/media/AppStream
mediaid=None
metadata_expire=-1
gpgcheck=0
cost=500
  • used this convert2rhel
# yum install -y https://github.com/oamg/convert2rhel/releases/download/v0.14/convert2rhel-0.14-1.el8.noarch.rpm
  • executed command line
# convert2rhel --disable-submgr --enablerepo rhel-8-baseos --enablerepo rhel-8-appstream --debug
:
[01/22/2021 00:06:46] TASK - [Final: rpm files modified by the conversion] **********************
Running the 'rpm -Va' command which can take several minutes. It can be disabled by using the --no-rpm-va option.
[01/22/2021 00:06:46] DEBUG - Calling command 'rpm -Va'
The 'rpm -Va' output has been stored in the /var/log/convert2rhel/rpm_va_after_conversion.log file
Comparison of modified rpm files from before and after the conversion:
--- /var/log/convert2rhel/rpm_va.log
+++ /var/log/convert2rhel/rpm_va_after_conversion.log
@@ -0,0 +1,10 @@
+..5....T.    /var/lib/selinux/targeted/active/commit_num
+.......T.    /var/lib/selinux/targeted/active/file_contexts
+.......T.    /var/lib/selinux/targeted/active/homedir_template
+S.5....T.    /var/lib/selinux/targeted/active/policy.kern
+.......T.    /var/lib/selinux/targeted/active/seusers
+.......T.    /var/lib/selinux/targeted/active/users_extra
+missing     /etc/system-release
+S.5....T.  c /var/lib/unbound/root.key
+S.5....T.  c /etc/dnf/dnf.conf
+.M.......  g /var/lib/plymouth/boot-duration
@@ -3 +12,0 @@
-.M.......  g /var/lib/plymouth/boot-duration

[01/22/2021 00:06:58] TASK - [Final: Non-interactive mode] **************************************
For the non-interactive use of the tool, run the following command:
convert2rhel --disable-submgr  --disablerepo=*  --enablerepo=rhel-8-baseos  --enablerepo=rhel-8-appstream  -v Server -y


WARNING - In order to boot the RHEL kernel, restart of the system is needed.
# echo $?
0

System BootOrder not found (UEFI)

I had centos 8 using lvm and i ran the convert2rhel on a physical machine and now my system doesnt boot have an error on boot

"System BootOrder not found. Initializing defaults"
Creating boot entry Boot003 with label "Red Hat Enterprise Linux£ for file '\EFI\REDHAT\shimx64.efi"

Any ideas ???

Conversion process ends prematurely if convert2rhel is run inside tmux

As I learned the hard way, if you run convert2rhel inside tmux, at one point, tmux will segfault, leaving the system in a partially-converted state:

Jun 01 19:00:29 lookingglass kernel: tmux: server[275157]: segfault at 7e51 ip 00005634bb5c29fa sp 00007ffe11f7a6f8 error 4 in tmux (deleted)[5634bb597000+86000]
Jun 01 19:00:29 lookingglass kernel: Code: 08 88 4d 00 eb a6 48 8d 3d 33 19 04 00 31 c0 e8 fc c1 00 00 66 90 66 2e 0f 1f 84 00 00 00 00 00 89 f6 48 8d 04 b6 48 03 47 08 <0f> b6 08 f6 c1 08 75 4e 89 ce 83>
Jun 01 19:00:29 lookingglass systemd[1]: Created slice system-systemd-coredump.slice.
Jun 01 19:00:29 lookingglass systemd[1]: Started Process Core Dump (PID 398626/UID 0).
Jun 01 19:00:31 lookingglass systemd-coredump[398627]: Process 275157 (tmux: server) of user 1000 dumped core.
                                                       
                                                       Stack trace of thread 275157:
                                                       #0  0x00005634bb5c29fa grid_get_cell1 (/usr/bin/tmux (deleted))
                                                       #1  0x00005634bb5c3e16 grid_reflow_join (/usr/bin/tmux (deleted))
                                                       #2  0x00005634bb5c4bb9 grid_reflow (/usr/bin/tmux (deleted))
                                                       #3  0x00005634bb5fbf29 window_pane_resize (/usr/bin/tmux (deleted))
                                                       #4  0x00005634bb5cd7f1 layout_fix_panes (/usr/bin/tmux (deleted))
                                                       #5  0x00005634bb5d580a recalculate_sizes (/usr/bin/tmux (deleted))
                                                       #6  0x00005634bb5dc1b3 server_client_dispatch (/usr/bin/tmux (deleted))
                                                       #7  0x00005634bb5d4e71 proc_event_cb (/usr/bin/tmux (deleted))
                                                       #8  0x00007fb37031ad85 n/a (/usr/lib64/libevent-2.1.so.6.0.2 (deleted))

convert2rhel.log is attached.

[packit] Propose update failed for release v0.12

Packit failed on creating pull-requests in dist-git:

dist-git branch error
el6 The distgit repository /tmp/packit-dist-gitrm8kothh is dirty.This is not supported.
epel7 Failed to download file from URL https://github.com/oamg/convert2rhel/archive/vv0.12/convert2rhel-v0.12.tar.gz. Reason: 'Not Found'.

You can re-trigger the update by adding /packit propose-update to the issue comment.

CentOS repos not properly restored after aborted conversion

After an abort in the convert2rhel process, CentOS yum repos are not properly re-installed. It seems that $releasever is not properly being parsed.

When running yum repolist all on a broken system the following will appear:

base/$releasever/x86_64 CentOS-$releasever - Base
...
cr/$releasever/x86_64 CentOS-$releasever - cr

Where on a working system yum repolist all produces the following:

base/7/x86_64 CentOS-7 - Base
...
cr/7/x86_64 CentOS-7 - cr

This leaves the system in an unusable state.

** Found 4 pre-existing rpmdb problem(s), 'yum check' output follows:

Using VMware clones of a newly built "server with GUI" Centos 7 to work out convert2rhel to RHEL7.
Pre update: on one of the clones 'yum check' reveals no issues.

On this particular run I set skip_broken=1 in /etc/yum.conf on the theroy I could just address any issues later - it did not seem to have the effect

In my examples below I'm working 2 clones:
On "Trane" - convert2rhel was executed and failed.
On "dhcp189" - convert2rhel has not been run.

Pre convert2rhel
[root@dhcp189 ~]# yum check
Loaded plugins: fastestmirror, langpacks
check all

Steps followed to run convert2rhel:
On the VM to be converted:
[root@Trane ~]# yum install -y https://github.com/oamg/convert2rhel/releases/download/v0.17/convert2rhel-0.17-1.el7.noarch.rpm
[root@Trane ~]# yum install tmux -y
[root@Trane ~]# tmux new -s convert
[root@Trane ~]# yum update -y
[root@Trane ~]# reboot
[root@Trane ~]# convert2rhel --disable-submgr --enablerepo rhel-7-server-rpms --debug

Here's where it breaks.
Error: Package: abrt-retrace-client-2.1.11-60.el7.centos.x86_64 (@anaconda/7)
Requires: abrt = 2.1.11-60.el7.centos
Removing: abrt-2.1.11-60.el7.centos.x86_64 (@anaconda/7)
abrt = 2.1.11-60.el7.centos
Downgraded By: abrt-2.1.11-60.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-60.el7
Available: abrt-2.1.11-12.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-12.el7
Available: abrt-2.1.11-19.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-19.el7
Available: abrt-2.1.11-22.el7_1.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-22.el7_1
Available: abrt-2.1.11-34.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-34.el7
Available: abrt-2.1.11-35.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-35.el7
Available: abrt-2.1.11-45.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-45.el7
Available: abrt-2.1.11-48.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-48.el7
Available: abrt-2.1.11-50.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-50.el7
Available: abrt-2.1.11-52.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-52.el7
Available: abrt-2.1.11-55.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-55.el7
Available: abrt-2.1.11-57.el7.x86_64 (rhel-7-server-rpms)
abrt = 2.1.11-57.el7
You could try using --skip-broken to work around the problem
** Found 4 pre-existing rpmdb problem(s), 'yum check' output follows:
abrt-cli-2.1.11-60.el7.centos.x86_64 has missing requires of libreport-centos >= ('0', '2.1.11', '46')
abrt-cli-2.1.11-60.el7.centos.x86_64 has missing requires of libreport-plugin-mantisbt >= ('0', '2.1.11', '46')
abrt-desktop-2.1.11-60.el7.centos.x86_64 has missing requires of libreport-centos >= ('0', '2.1.11', '46')
abrt-desktop-2.1.11-60.el7.centos.x86_64 has missing requires of libreport-plugin-mantisbt >= ('0', '2.1.11', '46')

Seems to be a naming or numbering convention issue for libreport-centos and libreport-plugin-mantisbt
[root@Trane ~]# rpm -qa | grep libreport
libreport-python-2.1.11-53.el7.centos.x86_64
libreport-plugin-bugzilla-2.1.11-53.el7.centos.x86_64
libreport-cli-2.1.11-53.el7.centos.x86_64
libreport-filesystem-2.1.11-53.el7.centos.x86_64
libreport-plugin-reportuploader-2.1.11-53.el7.centos.x86_64
libreport-plugin-mailx-2.1.11-53.el7.centos.x86_64
libreport-anaconda-2.1.11-53.el7.centos.x86_64
libreport-2.1.11-53.el7.centos.x86_64
libreport-plugin-ureport-2.1.11-53.el7.centos.x86_64
libreport-web-2.1.11-53.el7.centos.x86_64
libreport-rhel-anaconda-bugzilla-2.1.11-53.el7.centos.x86_64
libreport-gtk-2.1.11-53.el7.centos.x86_64
libreport-plugin-rhtsupport-2.1.11-53.el7.centos.x86_64

On the clone that of this machine pre convert2rhel, the "missing" packages were already installed.

[root@dhcp189 ~]# yum install libreport-plugin-mantisbt
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile

  • base: mirror.net.cen.ct.gov
  • extras: mirror.vcu.edu
  • updates: mirrors.tripadvisor.com
    Package libreport-plugin-mantisbt-2.1.11-53.el7.centos.x86_64 already installed and latest version
    Nothing to do
    [root@dhcp189 ~]# yum install libreport-centos
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
  • base: mirror.net.cen.ct.gov
  • extras: mirror.vcu.edu
  • updates: mirrors.tripadvisor.com
    Package libreport-centos-2.1.11-53.el7.centos.x86_64 already installed and latest version

[root@dhcp189 ~]# rpm -qa | grep libreport-centos
libreport-centos-2.1.11-53.el7.centos.x86_64
[root@dhcp189 ~]# rpm -qa | grep libreport-plugin-mantisbt
libreport-plugin-mantisbt-2.1.11-53.el7.centos.x86_64
Nothing to do
[root@dhcp189 ~]# rpm -qa | grep libreport-centos
libreport-centos-2.1.11-53.el7.centos.x86_64
[root@dhcp189 ~]# rpm -qa | grep libreport-plugin-mantisbt
libreport-plugin-mantisbt-2.1.11-53.el7.centos.x86_64

But on the machine where the covert2rhel failed the packages have been removed?
[root@Trane ~]# rpm -qa | grep libreport-centos
[root@Trane ~]# rpm -qa | grep libreport-plugin-mantisbt
[root@Trane ~]#

I uploaded the log file.

convert2rhel.log

And a question. Suppose I encounter a problem like this and want to fix it, and restart the convert.
(Maybe uninstalling the offending packages to deal with them later?)
What is the magic that lets me restart?

[root@Trane ~]# convert2rhel --disable-submgr --enablerepo rhel-7-server-rpms --debug --restart
[03/06/2021 08:55:38] TASK - [Prepare: Gather system information] *******************************
Name: Red Hat Enterprise Linux Server
OS version: 7.9
[03/06/2021 08:55:38] DEBUG - Calling command 'uname -i'
Architecture: x86_64
Config filename: red-7-x86_64.cfg
CRITICAL - Current combination of system distribution and architecture is not supported for the conversion to RHEL.

And another question.
Is there a "yum check" type command I could run before convert2rhel that wold have alerted me to the issue?

And finally - as I read the logfile, I missed this on screen:

[03/05/2021 14:10:56] TASK - [Prepare: Gather system information] *******************************
Name: CentOS Linux
OS version: 7.9
[03/05/2021 14:10:56] DEBUG - Calling command 'uname -i'
Architecture: x86_64
Config filename: centos-7-x86_64.cfg
Running the 'rpm -Va' command which can take several minutes. It can be disabled by using the --no-rpm-va option.
[03/05/2021 14:10:56] DEBUG - Calling command 'rpm -Va'
[03/05/2021 14:10:59] DEBUG - Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/convert2rhel/main.py", line 65, in main
systeminfo.system_info.resolve_system_info()
File "/usr/lib/python2.7/site-packages/convert2rhel/systeminfo.py", line 88, in resolve_system_info
self.generate_rpm_va()
File "/usr/lib/python2.7/site-packages/convert2rhel/systeminfo.py", line 190, in generate_rpm_va
rpm_va, _ = utils.run_subprocess("rpm -Va", print_output=False)
File "/usr/lib/python2.7/site-packages/convert2rhel/utils.py", line 142, in run_subprocess
for line in iter(process.stdout.readline, b''):
KeyboardInterrupt

No changes were made to the system.

And above - shouldn't I have been warned that a script failed?

Thanks for looking at this,

David

subscription-manager directory does not exist

My conversion is failing after TASK: [Convert: Subscription Manager - Install].

I get a "CRITICAL - The /usr/share/convert2rhel/subscription-manager directory does not exist or is empty." error. The only way I can see there being something in this directory is if I'm using a satellite instance but I'm trying to use RHSM and the docs don't say anything about putting anything in that directory when using that resource. Am I missing something?

Trying this on CentOS 8. Thanks!

Wired trace if a user declined system conversion

Preconditions:
CentOs7

Steps:

  • Execute command convert2rhel --disable-submgr --enablerepo "*" --debug
    --> Continue with the system conversion? [y/n]:
  • Enter n

Actual result:
Wired trace

  File "/usr/lib/python2.7/site-packages/convert2rhel/main.py", line 61, in main
    user_to_accept_eula()
  File "/usr/lib/python2.7/site-packages/convert2rhel/main.py", line 134, in user_to_accept_eula
    utils.ask_to_continue()
  File "/usr/lib/python2.7/site-packages/convert2rhel/utils.py", line 185, in ask_to_continue
    loggerinst.critical("User cancelled the conversion\n")
  File "/usr/lib/python2.7/site-packages/convert2rhel/logger.py", line 100, in critical
    sys.exit(1)
SystemExit: 1

Expected result:
Just simple message User canceled the conversion

Fail when convert CentOS 7.9 to RHEL 7.9

Hi Experts,
I installed a centos 7.9 server to test conver2rhel, the server is installed as "server with gui" and has totally 1348 pkgs installed. Below are some original info from the box.

[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

[root@localhost ~]# uname -r
3.10.0-1160.el7.x86_64

[root@localhost ~]# rpm -qa | wc -l
1348

[root@localhost ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile

  • base: mirrors.huaweicloud.com
  • extras: mirrors.ustc.edu.cn
  • updates: mirrors.ustc.edu.cn
    repo id repo name status
    base/7/x86_64 CentOS-7 - Base 10,072
    extras/7/x86_64 CentOS-7 - Extras 448
    updates/7/x86_64 CentOS-7 - Updates 1,216
    repolist: 11,736

As the instruction, I use rhel 7.9 installation media to make a yum.

[root@localhost yum.repos.d]# cat > local.repo << EOF

[rhel-7.9]
name=rhel-7.9
enabled=1
gpgcheck=0
baseurl=file:/media
EOF

[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo local.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-x86_64-kernel.repo

[root@localhost yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile

  • base: mirrors.163.com
  • extras: mirrors.ustc.edu.cn
  • updates: mirrors.ustc.edu.cn
    rhel-7.9 | 2.8 kB 00:00:00
    (1/2): rhel-7.9/group | 628 kB 00:00:00
    (2/2): rhel-7.9/primary | 2.1 MB 00:00:00
    rhel-7.9 5230/5230
    repo id repo name status
    base/7/x86_64 CentOS-7 - Base 10,072
    extras/7/x86_64 CentOS-7 - Extras 448
    rhel-7.9 rhel-7.9 5,230
    updates/7/x86_64 CentOS-7 - Updates 1,216
    repolist: 16,966

Then I installed the convert2rhel tools and run the conversion:
[root@localhost ~]# yum install -y https://github.com/oamg/convert2rhel/releases/download/v0.15/convert2rhel-0.15-1.el7.noarch.rpm

[root@localhost ~]# convert2rhel --disable-submgr --enablerepo rhel-7.9 --debug

Then it will encounter an error in one of the step(replacing the centos kernel ), which complain a dependency error. The whole output is as below:

[01/31/2021 17:24:39] DEBUG - Calling command 'yum install -y --disablerepo=* --enablerepo=rhel-7.9 kernel'
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
Package kernel-3.10.0-1160.el7.x86_64 already installed and latest version
Nothing to do

Conflict of kernels: One of the installed kernels has the same version as the latest RHEL kernel.
[01/31/2021 17:24:40] DEBUG - Calling command 'yum list -y --disablerepo=* --enablerepo=rhel-7.9 --showduplicates kernel'
WARNING - The convert2rhel is going to force-replace the only kernel installed, which has the same NEVRA as the only available RHEL kernel. If anything goes wrong with such replacement, the system will become unbootable. If you want the convert2rhel to install the RHEL kernel in a safer manner, you can install a different version of kernel first and then run convert2rhel again.

Continue with the system conversion? [y/n]: y

[01/31/2021 17:24:48] DEBUG - Downloading the kernel-3.10.0-1160.el7 package.
[01/31/2021 17:24:48] DEBUG - Calling command 'yumdownloader -v --disablerepo=* --enablerepo=rhel-7.9 --destdir="/var/lib/convert2rhel/" kernel-3.10.0-1160.el7'
Loading "fastestmirror" plugin
Loading "langpacks" plugin
Adding en_US.UTF-8 to language list
Config time: 0.006
Loading mirror speeds from cached hostfile
repo time: 0.001
Setting up Package Sacks
pkgsack time: 0.002
rpmdb time: 0.000
kernel-3.10.0-1160.el7.x86_64.rpm | 50 MB 00:00:00
Successfully downloaded the kernel-3.10.0-1160.el7 package.
[01/31/2021 17:24:48] DEBUG - Path of the downloaded package: /var/lib/convert2rhel/kernel-3.10.0-1160.el7.x86_64.rpm
Replacing CentOS Linux kernel-3.10.0-1160.el7 with RHEL kernel with the same NEVRA ...
[01/31/2021 17:24:48] DEBUG - Calling command 'rpm -i --force --replacepkgs /var/lib/convert2rhel/kernel-3.10.0-1160.el7*'
[01/31/2021 17:24:49] CRITICAL - Unable to replace kernel package: error: Failed dependencies:
system-release is needed by kernel-3.10.0-1160.el7.x86_64

[01/31/2021 17:24:49] DEBUG - Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/convert2rhel/main.py", line 89, in main
post_ponr_conversion()
File "/usr/lib/python2.7/site-packages/convert2rhel/main.py", line 190, in post_ponr_conversion
pkghandler.preserve_only_rhel_kernel()
File "/usr/lib/python2.7/site-packages/convert2rhel/pkghandler.py", line 447, in preserve_only_rhel_kernel
kernel_update_needed = install_rhel_kernel()
File "/usr/lib/python2.7/site-packages/convert2rhel/pkghandler.py", line 487, in install_rhel_kernel
handle_no_newer_rhel_kernel_available()
File "/usr/lib/python2.7/site-packages/convert2rhel/pkghandler.py", line 509, in handle_no_newer_rhel_kernel_available
replace_non_rhel_installed_kernel(installed[0])
File "/usr/lib/python2.7/site-packages/convert2rhel/pkghandler.py", line 562, in replace_non_rhel_installed_kernel
loggerinst.critical("Unable to replace kernel package: %s" % output)
File "/usr/lib/python2.7/site-packages/convert2rhel/logger.py", line 105, in critical
sys.exit(msg)
SystemExit: Unable to replace kernel package: error: Failed dependencies:
system-release is needed by kernel-3.10.0-1160.el7.x86_64

WARNING - Conversion process interrupted and manual user intervention will be necessary.

Actually, I can't find a package named "system-release", then I tried manually replace the centos kernel by rhel kernel with the same version:
[root@localhost ~]# rpm -ihv /media/Packages/kernel-3.10.0-1160.el7.x86_64.rpm --force --nodeps

Then run convert2rhel again, this time it will give the error and exit again, it return another error(seems still lack of system-release package).

Continue with the system conversion? [y/n]: y
[01/31/2021 17:39:40] TASK - [Prepare: Gather system information] *******************************
[01/31/2021 17:39:40] CRITICAL - Error: Unable to find the /etc/system-release file containing the OS name and version
[01/31/2021 17:39:40] DEBUG - Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/convert2rhel/main.py", line 65, in main
systeminfo.system_info.resolve_system_info()
File "/usr/lib/python2.7/site-packages/convert2rhel/systeminfo.py", line 72, in resolve_system_info
self.system_release_file_content = self._get_system_release_file_content()
File "/usr/lib/python2.7/site-packages/convert2rhel/systeminfo.py", line 88, in _get_system_release_file_content
return redhatrelease.get_system_release_content()
File "/usr/lib/python2.7/site-packages/convert2rhel/redhatrelease.py", line 82, in get_system_release_content
return utils.get_file_content(filepath)
File "/usr/lib/python2.7/site-packages/convert2rhel/utils.py", line 76, in get_file_content
if not os.path.exists(filename):
File "/usr/lib64/python2.7/genericpath.py", line 18, in exists
os.stat(path)
TypeError: coercing to Unicode: need string or buffer, NoneType found

No changes were made to the system.

But If I manually install redhat-release-server package(which can help to resolve the dependency lack of "system-release"), it complains" Current combination of system distribution and architecture is not supported for the conversion to RHEL" and exit.

Would you pls verify it? Thx!

CentOS 8.5 >> RHEL 8.5 // CRITICAL - Could not resolve yum errors

Hi,

After the new C2R Tool is running for 10 Minutes, even passing the final Tests ect the System is always running into the Same error. Resolving dependency errors. Why the Script tries to install 2 versions of the same package. Unfortunately the Target machine is left behind in a undefined state.

Thanks for Helping!

Problem 1: cannot install both NetworkManager-1:1.32.10-5.el8_5.x86_64 and NetworkManager-1:1.32.10-4.el8.x86_64

  • conflicting requests
    Problem 2: cannot install both cloud-init-21.1-7.el8_5.3.noarch and cloud-init-21.1-7.el8_5.5.noarch
  • conflicting requests
    Problem 3: cannot install both cockpit-ws-251.3-1.el8_5.x86_64 and cockpit-ws-251.1-1.el8.x86_64
  • conflicting requests
    Problem 4: cannot install both gzip-1.9-13.el8_5.x86_64 and gzip-1.9-12.el8.x86_64
  • conflicting requests
    Problem 5: cannot install both microcode_ctl-4:20210608-1.20220207.1.el8_5.x86_64 and microcode_ctl-4:20210608-1.el8.x86_64
  • conflicting requests
    Problem 6: cannot install both polkit-0.115-13.el8_5.2.x86_64 and polkit-0.115-12.el8.x86_64
  • conflicting requests
    Problem 7: cannot install both sssd-client-2.5.2-2.el8_5.3.x86_64 and sssd-client-2.5.2-2.el8_5.4.x86_64
  • conflicting requests
    Problem 8: cannot install both sssd-common-2.5.2-2.el8_5.4.x86_64 and sssd-common-2.5.2-2.el8_5.3.x86_64
  • conflicting requests
    Problem 9: cannot install both sssd-kcm-2.5.2-2.el8_5.4.x86_64 and sssd-kcm-2.5.2-2.el8_5.3.x86_64
  • conflicting requests
    Problem 10: cannot install both systemd-239-51.el8_5.5.x86_64 and systemd-239-51.el8_5.2.x86_64
  • conflicting requests
    (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
    Received return code: 1

Resolving dependency errors ...
Checking for problematic packages

No other package to try to downgrade in order to resolve yum dependency errors.
Checking for problematic packages

RITICAL - Could not resolve yum errors.
WARNING - Conversion process interrupted and manual user intervention will be necessary.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

dockerfile
.devcontainer/alma9/alma9-development.Containerfile
  • almalinux 9
Containerfiles/centos8.Containerfile
  • centos 8
Containerfiles/centos9.Containerfile
Containerfiles/rpmbuild.centos8.Containerfile
  • centos 8
Containerfiles/rpmbuild.centos9.Containerfile
github-actions
.github/workflows/autotag.yml
  • actions/checkout v4
.github/workflows/build_images.yml
  • actions/checkout v4@1d96c772d19495a3b5c517cd2bc0cb401ea0529f
  • docker/login-action v3
  • docker/setup-buildx-action v3
  • docker/build-push-action v5
  • ubuntu 22.04
.github/workflows/codeql.yml
  • actions/checkout v4@1d96c772d19495a3b5c517cd2bc0cb401ea0529f
  • github/codeql-action v3
  • github/codeql-action v3
  • github/codeql-action v3
.github/workflows/coverage.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
  • docker/login-action v3
  • codecov/codecov-action v4
  • codecov/codecov-action v4
.github/workflows/enforce_labels.yml
  • yogevbd/enforce-label-action 2.2.2
.github/workflows/enforce_verification_labels.yml
  • yogevbd/enforce-label-action 2.2.2
.github/workflows/generate_manpage.yml
  • actions/checkout v4
  • actions/setup-python v5
.github/workflows/label-commenter.yml
  • actions/checkout v4@1d96c772d19495a3b5c517cd2bc0cb401ea0529f
  • peaceiris/actions-label-commenter v1.10.0
.github/workflows/release.yml
  • actions/checkout v4
  • shogo82148/actions-upload-release-asset v1
.github/workflows/tests.yml
  • actions/checkout v4@1d96c772d19495a3b5c517cd2bc0cb401ea0529f
  • docker/setup-buildx-action v3
  • docker/login-action v3
  • ubuntu 22.04
pip_requirements
.devcontainer/alma9/requirements.txt
  • pylint ==3.1.0
  • astroid ==3.1.0
  • pre-commit ==3.7.0
  • pytest ==8.1.1
  • pytest-cov ==5.0.0
  • coverage ==7.5.0

  • Check this box to trigger a request for Renovate to run again on this repository

Error: CentOS 8.2 conversion failed

1. mound RHEL8.2 ISO to /cdrom
2. Create local AppStream and BaseOS repo files as below:

myAppStream.repo
[LocalRepo_AppStream]
name=LocalRepository_AppStream
baseurl=file:///cdrom/AppStream
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

myBaseOS.repo
[LocalRepo_BaseOS]
name=LocalRepository_BaseOS
baseurl=file:///cdrom/BaseOS
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

  1. yum updat and reboot
  2. convert2rhel --disable-submgr --enablerepo LocalRepo_BaseOS --enablerepo LocalRepo_AppStream --debug
  3. but failed, the logs in attachment.

`Error:
Problem 1: package mesa-libxatracker-19.3.4-2.el8.x86_64 requires libLLVM-9.so()(64bit), but none of the providers can be installed

  • package mesa-libxatracker-19.3.4-2.el8.x86_64 requires libLLVM-9.so(LLVM_9)(64bit), but none of the providers can be installed
  • cannot install the best update candidate for package mesa-libxatracker-20.1.4-1.el8.x86_64
  • package llvm-libs-9.0.1-4.module+el8.2.0+5887+847e8a86.x86_64 is filtered out by modular filtering
    Problem 2: package mesa-dri-drivers-19.3.4-2.el8.x86_64 requires libLLVM-9.so()(64bit), but none of the providers can be installed
  • package mesa-dri-drivers-19.3.4-2.el8.x86_64 requires libLLVM-9.so(LLVM_9)(64bit), but none of the providers can be installed
  • cannot install the best update candidate for package mesa-dri-drivers-20.1.4-1.el8.x86_64
  • package llvm-libs-9.0.1-4.module+el8.2.0+5887+847e8a86.x86_64 is filtered out by modular filtering
    Problem 3: package crypto-policies-scripts-20200713-1.git51d1222.el8.noarch requires crypto-policies = 20200713-1.git51d1222.el8, but none of the providers can be installed
  • crypto-policies-20200713-1.git51d1222.el8.noarch does not belong to a distupgrade repository
  • problem with installed package crypto-policies-scripts-20200713-1.git51d1222.el8.noarch
    Problem 4: package pipewire0.2-libs-0.2.7-6.el8.x86_64 conflicts with pipewire-libs(x86-64) <= 0.2.7 provided by pipewire-libs-0.2.7-1.el8.x86_64
  • cannot install the best update candidate for package pipewire-libs-0.3.6-1.el8.x86_64
  • problem with installed package pipewire0.2-libs-0.2.7-6.el8.x86_64
    Problem 5: package qemu-kvm-15:4.2.0-34.module_el8.3.0+613+9ec9f184.1.x86_64 requires mesa-dri-drivers, but none of the providers can be installed
  • package mesa-dri-drivers-19.3.4-2.el8.i686 requires libLLVM-9.so, but none of the providers can be installed
  • package mesa-dri-drivers-19.3.4-2.el8.i686 requires libLLVM-9.so(LLVM_9), but none of the providers can be installed
  • package mesa-dri-drivers-19.3.4-2.el8.x86_64 requires libLLVM-9.so()(64bit), but none of the providers can be installed
  • package mesa-dri-drivers-19.3.4-2.el8.x86_64 requires libLLVM-9.so(LLVM_9)(64bit), but none of the providers can be installed
  • mesa-dri-drivers-20.1.4-1.el8.x86_64 does not belong to a distupgrade repository
  • problem with installed package qemu-kvm-15:4.2.0-34.module_el8.3.0+613+9ec9f184.1.x86_64
  • package llvm-libs-9.0.1-4.module+el8.2.0+5887+847e8a86.i686 is filtered out by modular filtering
  • package llvm-libs-9.0.1-4.module+el8.2.0+5887+847e8a86.x86_64 is filtered out by modular filtering
    Problem 6: problem with installed package mesa-libxatracker-20.1.4-1.el8.x86_64
  • package mesa-libxatracker-19.3.4-2.el8.x86_64 requires libLLVM-9.so()(64bit), but none of the providers can be installed
  • package mesa-libxatracker-19.3.4-2.el8.x86_64 requires libLLVM-9.so(LLVM_9)(64bit), but none of the providers can be installed
  • mesa-libxatracker-20.1.4-1.el8.x86_64 does not belong to a distupgrade repository
  • package llvm-libs-9.0.1-4.module+el8.2.0+5887+847e8a86.x86_64 is filtered out by modular filtering
    Problem 7: package tigervnc-server-minimal-1.9.0-13.el8.x86_64 requires mesa-dri-drivers, but none of the providers can be installed
  • package mesa-dri-drivers-20.1.4-1.el8.x86_64 requires mesa-filesystem(x86-64) = 20.1.4-1.el8, but none of the providers can be installed
  • package mesa-dri-drivers-19.3.4-2.el8.i686 requires libLLVM-9.so, but none of the providers can be installed
  • package mesa-dri-drivers-19.3.4-2.el8.i686 requires libLLVM-9.so(LLVM_9), but none of the providers can be installed
  • package mesa-dri-drivers-19.3.4-2.el8.x86_64 requires libLLVM-9.so()(64bit), but none of the providers can be installed
  • package mesa-dri-drivers-19.3.4-2.el8.x86_64 requires libLLVM-9.so(LLVM_9)(64bit), but none of the providers can be installed
  • cannot install the best update candidate for package tigervnc-server-minimal-1.10.1-9.el8_3.x86_64
  • mesa-filesystem-20.1.4-1.el8.x86_64 does not belong to a distupgrade repository
  • package llvm-libs-9.0.1-4.module+el8.2.0+5887+847e8a86.i686 is filtered out by modular filtering
  • package llvm-libs-9.0.1-4.module+el8.2.0+5887+847e8a86.x86_64 is filtered out by modular filtering
    Problem 8: package mesa-dri-drivers-20.1.4-1.el8.x86_64 requires mesa-filesystem(x86-64) = 20.1.4-1.el8, but none of the providers can be installed
  • problem with installed package mesa-dri-drivers-20.1.4-1.el8.x86_64
  • cannot install both mesa-filesystem-19.3.4-2.el8.x86_64 and mesa-filesystem-20.1.4-1.el8.x86_64
  • package mesa-dri-drivers-19.3.4-2.el8.x86_64 requires libLLVM-9.so()(64bit), but none of the providers can be installed
  • package mesa-dri-drivers-19.3.4-2.el8.x86_64 requires libLLVM-9.so(LLVM_9)(64bit), but none of the providers can be installed
  • cannot install the best update candidate for package mesa-filesystem-20.1.4-1.el8.x86_64
  • package llvm-libs-9.0.1-4.module+el8.2.0+5887+847e8a86.x86_64 is filtered out by modular filtering
    (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
    Received return code: 1

Resolving dependency errors ...

Found protected packages: []
Found deps packages: []
Found multilib packages: []
Found req packages: []
No other package to try to downgrade in order to resolve yum dependency errors.
[01/30/2021 15:14:55] CRITICAL - Could not resolve yum errors.
[01/30/2021 15:14:55] DEBUG - Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 89, in main
post_ponr_conversion()
File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 192, in post_ponr_conversion
pkghandler.replace_non_red_hat_packages()
File "/usr/lib/python3.6/site-packages/convert2rhel/pkghandler.py", line 431, in replace_non_red_hat_packages
call_yum_cmd_w_downgrades(cmd, system_info.fingerprints_orig_os)
File "/usr/lib/python3.6/site-packages/convert2rhel/pkghandler.py", line 68, in call_yum_cmd_w_downgrades
loggerinst.critical("Could not resolve yum errors.")
File "/usr/lib/python3.6/site-packages/convert2rhel/logger.py", line 105, in critical
sys.exit(msg)
SystemExit: Could not resolve yum errors.

WARNING - Conversion process interrupted and manual user intervention will be necessary.
log.tar.gz
`

Could you please help a check? Thanks.

Boot fail after cenvert Centos to RHEL using convert2rhel-0.17-1.el8

I started from CENTOS 8.1 :
[root@R5 src]# uname -a
Linux R5 4.18.0-147.el8.x86_64 #1 SMP Wed Dec 4 21:51:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@R5 src]# rpm -qa|grep kernel
kernel-core-4.18.0-193.el8.x86_64
kernel-4.18.0-193.el8.x86_64
kernel-tools-4.18.0-193.el8.x86_64
kernel-modules-4.18.0-193.el8.x86_64
kernel-tools-libs-4.18.0-193.el8.x86_64

And convertion went without problems but system didnt boot again , my system is a virtual machine running on VMware, At booting I can see only next output

Do you have any advise, Thanks

imagen

Invalid data passed to loop in setup-convert2rhel

Error message

TASK [Comment mirrorlist in all repos.] ***************************************************************************
task path: ./setup-convert2rhel.yml.new:37
fatal: [leapp2rhel]: FAILED! => {
    "msg": "Invalid data passed to 'loop', it requires a list, got this instead: centos8_repos. Hint: If you passed a list/dict of just one element, try adding wantlist=True to your lookup invocation or use q/query instead of lookup."
}

Using Ansible 2.9.27 on Fedora 35

Incorrect logic in setup-convert2rhel.yml when skip_os_version_check is true

In the OS Validation section it isn't possible to skip the check due to the current logic

    - name: Validate Release Version (6.10, 7.9, 8.5)
      fail:
        msg: "Distribution version must be 6.10, 7.9, or 8.5"
      when: (ansible_distribution_version != '6.10' and ansible_distribution_version != '7.9'
             and ansible_distribution_version != '8.5') or skip_os_version_check|bool

Should be

    - name: Validate Release Version (6.10, 7.9, 8.5)
      fail:
        msg: "Distribution version must be 6.10, 7.9, or 8.5"
      when: (ansible_distribution_version != '6.10' and ansible_distribution_version != '7.9'
             and ansible_distribution_version != '8.5') and not skip_os_version_check

get_problematic_pkgs() adds packages that it shouldn't

The regular expression for Requires in get_problematic_pkgs() can parse yum output incorrectly and end up adding package names that either don't exist or are different than the package which was actually specified. For instance, python2_hawkey >= 0.7.0 is parsed into python2 I'm unsure how big a problem this is in practice (In the python2-hawkey case, I believe it will just result in downgrading the python2 package unnecessarily, which will add time to the run but won't be an error) but we should look into fixing it.

We can probably call either the yum or rpm apis to do so; at the command line, rpm -q --whatprovides <REQUIRES> will give us the package name of any Requires in a package that is installed. yum whatprovides <REQUIRES> if we need to search the repositories for the provide, not just the installed packages.

Once fixed, we should update the unittest to test that the output of get_problematic_pkgs() is exactly what we expect rather than merely checking that the values we expect to be there are (but not checking whether extra values are present).

problems with centos 8.3 > rhel 8.3 upgrade

I'm not able to upgrade from centos 8.3, seems like the issue is with the centos-release package which was renamed to centos-linux-release in 8.3. it doesn't get removed anymore and then fails to install redhat-release because of yum transaction errors.
convert2rhel completes anyways but system can't boot. trying to create grub.cfg manually shows the problem:

grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
sed: can't read /etc/system-release: No such file or directory

Am I doing something wrong or is 8.3 just not possible yet?
Thanks!

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: .github/renovate.json
Error type: Invalid JSON (parsing failed)
Message: Syntax error near , ],

Error getting repository data for rhel-7-server-optional-rpms, repository not found

Trying to play with convert2rhel.
Got an error on a Centos 7 vm
Linux localhost.localdomain 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Preconditions:

Steps to reproduce:

  • # yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  • # yum install -y convert2rhel
  • # yum update -y
  • # reboot
  • # convert2rhel --disable-submgr --disablerepo "*" --enablerepo rhel-7-server-optional-rpms --debug

Actual result:
Got an error:

  File "/usr/lib/python2.7/site-packages/convert2rhel/main.py", line 76, in main
    pre_ponr_conversion()
  File "/usr/lib/python2.7/site-packages/convert2rhel/main.py", line 167, in pre_ponr_conversion
    repo.check_needed_repos_availability(repos_needed)
  File "/usr/lib/python2.7/site-packages/convert2rhel/repo.py", line 255, in check_needed_repos_availability
    avail_repos = get_avail_repos()
  File "/usr/lib/python2.7/site-packages/convert2rhel/repo.py", line 282, in get_avail_repos
    loggerinst.critical("yum repolist command failed: \n\n" + repos_raw)
  File "/usr/lib/python2.7/site-packages/convert2rhel/logger.py", line 100, in critical
    sys.exit(1)
SystemExit: 1

Full trace:
http://pastebin.test.redhat.com/834166

Expected result:
The script was executed without any errors

Error during unpacking rpm package filesystem-2.4.30-3.el6.x86_64 when converting from CENTOS6 to RHEL6

I am getting the following errors when running convert2rhel on all CENTOS6 systems. Although it does look the package is installed. This causes the convert2rhel script to fail. After it fails what are the possible recovery paths to complete the conversion?

Resolving Dependencies
--> Running transaction check
---> Package filesystem.x86_64 0:2.4.30-3.el6 will be reinstalled
--> Finished Dependency Resolution
Dependencies Resolved

Package Arch Version Repository Size

Reinstalling:
filesystem x86_64 2.4.30-3.el6 rhel-6-server-rpms 1.0 M
Transaction Summary

Reinstall 1 Package(s)
Total download size: 1.0 M
Installed size: 0
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : filesystem-2.4.30-3.el6.x86_64 1/1Error unpacking rpm package filesystem-2.4.30-3.el6.x86_64
error: unpacking of archive failed on file /sys: cpio: chown
Verifying : filesystem-2.4.30-3.el6.x86_64 1/1
Failed:
filesystem.x86_64 0:2.4.30-3.el6
Complete!
Received return code: 1
Resolving dependency errors ...
Found protected packages: []
Found deps packages: []
Found multilib packages: []
Found req packages: []
No other package to try to downgrade in order to resolve yum dependency errors.
[11/19/2020 16:50:51] CRITICAL - Could not resolve yum errors.

[packit] Propose update failed for release v0.10

Packit failed on creating pull-requests in dist-git:

dist-git branch error
master [Errno 2] No such file or directory: '/tmp/packit-dist-gitgyjxx5py/sources'

You can re-trigger the update by adding /packit propose-update to the issue comment.

Trying to convert centos8 fails

Running convert2rhel-0.17-1.el8.noarch on CentOS 8 seems to be failing without using an activation key

After the certificates installation step I'm propmted for the username and password

[02/15/2021 19:38:45] TASK - [Convert: Subscription Manager - Subscribe system] *****************                                        
Building subscription-manager command ... 
    ... activation key not found, username and password required
Username: rhn-engineering-mhulan


Password: 


Registering system by running subscription-manager command ... 
Unregistering from: subscription.rhsm.redhat.com:443/subscription
Network error. Please check the connection details, or see /var/log/rhsm/rhsm.log for more information.
System registration failed with return code = 70
Trying again - provide username and password.
Building subscription-manager command ... 
    ... activation key not found, username and password required

rhsm log

2021-02-15 19:41:21,368 [ERROR] 6:14957:MainThread @connection.py:793 - Response: 400
2021-02-15 19:41:21,368 [ERROR] 6:14957:MainThread @connection.py:794 - JSON parsing error: Expecting value: line 1 column 1 (char 0)
2021-02-15 19:41:21,368 [ERROR] 6:14957:MainThread @managercli.py:218 - Unregister failed
2021-02-15 19:41:21,369 [ERROR] 6:14957:MainThread @managercli.py:219 - HTTP error (400 - Bad Request)
Traceback (most recent call last):
  File "/usr/lib64/python3.6/site-packages/subscription_manager/managercli.py", line 1547, in _do_command
    unregister.UnregisterService(self.cp).unregister()
  File "/usr/lib64/python3.6/site-packages/rhsmlib/services/unregister.py", line 54, in unregister
    self.uep.unregisterConsumer(self.identity.uuid)
  File "/usr/lib64/python3.6/site-packages/rhsm/connection.py", line 1322, in unregisterConsumer
    return self.conn.request_delete(method)
  File "/usr/lib64/python3.6/site-packages/rhsm/connection.py", line 892, in request_delete
    return self._request("DELETE", method, params, headers=headers)
  File "/usr/lib64/python3.6/site-packages/rhsm/connection.py", line 906, in _request
    info=info, headers=headers, cert_key_pairs=cert_key_pairs)
  File "/usr/lib64/python3.6/site-packages/rhsm/connection.py", line 765, in _request
    self.validateResponse(result, request_type, handler)
  File "/usr/lib64/python3.6/site-packages/rhsm/connection.py", line 863, in validateResponse
    raise NetworkException(response['status'])
rhsm.connection.NetworkException: HTTP error (400 - Bad Request)

RHEL 8.5 doesn't work

I tried convert from a centos 8.4 to a rhel 8.4. it looks like he now tries to update to rhel 8.5 (which was released yesterday) and fails with the following error:

`('[%s] %s - %s', '11/10/2021 10:53:00', 'DEBUG', "Calling command 'yum install -y --setopt=module_platform_id=platform:el8 /usr/share/convert2rhel/subscription-manager/subscription-manager-1.28.21-3.el8.x86_64.rpm /usr/share/convert2rhel/subs
cription-manager/subscription-manager-rhsm-certificates-1.28.21-3.el8.x86_64.rpm /usr/share/convert2rhel/subscription-manager/python3-subscription-manager-rhsm-1.28.21-3.el8.x86_64.rpm /usr/share/convert2rhel/subscription-manager/dnf-plugin-s
ubscription-manager-1.28.21-3.el8.x86_64.rpm /usr/share/convert2rhel/subscription-manager/python3-syspurpose-1.28.21-3.el8.x86_64.rpm'")
Failed loading plugin "spacewalk": No module named 'up2date_client'
Last metadata expiration check: 0:34:02 ago on Wed Nov 10 10:18:58 2021.
Error:
Problem 1: conflicting requests

  • nothing provides python3-cloud-what = 1.28.21-3.el8 needed by subscription-manager-1.28.21-3.el8.x86_64
    Problem 2: conflicting requests
  • nothing provides python3-cloud-what = 1.28.21-3.el8 needed by python3-subscription-manager-rhsm-1.28.21-3.el8.x86_64
    (try to add '--skip-broken' to skip uninstallable packages)
    CRITICAL - Failed to install subscription-manager packages. See the above yum output for details.
    Traceback (most recent call last):
    File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 91, in main
    pre_ponr_conversion()
    File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 182, in pre_ponr_conversion
    subscription.replace_subscription_manager()
    File "/usr/lib/python3.6/site-packages/convert2rhel/subscription.py", line 204, in replace_subscription_manager
    install_rhel_subscription_manager()
    File "/usr/lib/python3.6/site-packages/convert2rhel/subscription.py", line 246, in install_rhel_subscription_manager
    loggerinst.critical("Failed to install subscription-manager packages. See the above yum output for details.")
    File "/usr/lib/python3.6/site-packages/convert2rhel/logger.py", line 104, in _critical
    sys.exit(msg)
    SystemExit: Failed to install subscription-manager packages. See the above yum output for details.
    `

According to the documentation he should upgrade from centos 8.4 to rhel 8.4 and not the next higher minor.
Is there anything I can do so he stays on the same minor?

/usr/bin/java alternatives lost

The last two conversions of a centos IPA server ended up loosing the java alternatives symlinks. Recreated by running the scriptlet from java-1.8.0-openjdk-headless.

RFE: centos8 -> rhel8

While centos8 is new, there may still be those who'd like to switch to the real thing.

Support for converting containers

Containers, e.g. using LXC, LXD or a Proxmox CT, do not use either UEFI or BIOS and in fact do not run their own kernel. It would be nice if Convert2RHEL could support converting a CentOS 8 container to RHEL 8.

With RHSM enabled centos-release needs to be backed up before centos repositories are disabled

[02/17/2021 08:57:35] TASK - [Convert: Subscription Manager - Disable all repositories] *********
Repositories disabled.

[02/17/2021 08:58:57] TASK - [Convert: Subscription Manager - Enable RHEL repositories] *********
Repositories enabled through subscription-manager

[02/17/2021 09:00:00] TASK - [Convert: Remove packages containing repofiles] ********************
Searching for packages containing repofiles or affecting variables in the repofiles:

centos-release .................................. 1


WARNING - The following packages will be removed...
Package                                      Vendor/Packager  Repository
-------                                      ---------------  ----------
centos-release-7-9.2009.0.el7.centos.x86_64  CentOS           anaconda


Continue with the system conversion? [y/n]: y


Backing up centos-release-7-9.2009.0.el7.centos.x86_64
WARNING - Couldn't download the centos-release-7-9.2009.0.el7.centos.x86_64 package using yumdownloader.
Output from the yumdownloader call:
Loading "fastestmirror" plugin
Loading "product-id" plugin
Loading "subscription-manager" plugin
Updating Subscription Management repositories.
Config time: 6.363
Loading mirror speeds from cached hostfile
 * base: ftp.fi.muni.cz
 * extras: ftp.fi.muni.cz
 * updates: ftp.fi.muni.cz
https://cdn.redhat.com/content/dist/rhel/server/7/7/x86_64/os/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
To address this issue please refer to the below wiki article

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

failure: repodata/repomd.xml from rhel-7-server-rpms: [Errno 256] No more mirrors to try.
https://cdn.redhat.com/content/dist/rhel/server/7/7/x86_64/os/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found

Note that regardless of the above error the conversion succeeded ok 🎉

yum related warning after conversion

Converted CentOS 8.3 today with version 0.16. Seems to have went well, except any yum-based command now brings this error that wasn't happening in CentOS:

$ sudo dnf repolist
Updating Subscription Management repositories.
/usr/local/lib/python3.6/site-packages/dateutil/parser/_parser.py:70: UnicodeWarning: decode() called on unicode string, see https://bugzilla.redhat.com/show_bug.cgi?id=1693751
  instream = instream.decode()

This bug has apparently been around for a while upstream through the years in previous versions such as 8.1, and I'm not sure if convert2rhel is responsible or simply worked as intended, since I know it does a ton of rpm-related work. Since I only have one machine to work with I figured I'd ask if anyone else can test. But I'll reiterate, the system I converted wasn't doing this before.

CentOS 6.10 with Python 2.6.6 fail at reboot (overwriting env vars)

When I run the script it ends in an error near the end when it tries to restart the server.

Here is the error :

[03/30/2021 10:34:25] TASK - [Final: Non-interactive mode] **************************************
For the non-interactive use of the tool, run the following command:
convert2rhel --disable-submgr --disablerepo=* --enablerepo=redhat -y

('[%s] %s - %s', '03/30/2021 10:34:25', 'DEBUG', "Calling command 'reboot'")
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/convert2rhel/main.py", line 109, in main
utils.restart_system()
File "/usr/lib/python2.6/site-packages/convert2rhel/utils.py", line 117, in restart_system
run_subprocess("reboot")
File "/usr/lib/python2.6/site-packages/convert2rhel/utils.py", line 140, in run_subprocess
env={'LC_ALL': 'C'})
File "/usr/lib64/python2.6/subprocess.py", line 642, in init
errread, errwrite)
File "/usr/lib64/python2.6/subprocess.py", line 1238, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

WARNING - Conversion process interrupted and manual user intervention will be necessary.

I tried with versions 0.20 and 0.19 of the script. I checked that the reboot command existed, but after some testing from a python console I noticed that it worked by removing the "env={'LC_ALL': 'C'}" parameter from the subprocess.popen command.

CentOS 8.3 -> RHEL

Default server image used in an openstack environment. Converting a fully update to date CentOS 8 server to RHEL. It seems the code gets stuck on #143 in that it is not able to fetch the /etc/system-release because the utility relocates it.


rpm -qa | grep convert
convert2rhel-0.15-1.el8.noarch

yum repolist
repo id                                                                                         repo name
appstream                                                                                       CentOS Linux 8 - AppStream
baseos                                                                                          CentOS Linux 8 - BaseOS
extras                                                                                          CentOS Linux 8 - Extras

convert2rhel --disable-submgr --enablerepo appstream --enablerepo baseos --debug

WARNING - By continuing you accept this EULA.



[01/12/2021 09:14:52] TASK - [Prepare: Gather system information] *******************************
Name:                CentOS Release
OS major version:    8
[01/12/2021 09:14:52] DEBUG - Calling command 'uname -i'
Architecture:        x86_64
Config filename:     centos-8-x86_64.cfg
Running the 'rpm -Va' command which can take several minutes. It can be disabled by using the --no-rpm-va option.
[01/12/2021 09:14:52] DEBUG - Calling command 'rpm -Va'
The 'rpm -Va' output has been stored in the /var/log/convert2rhel/rpm_va.log file

[01/12/2021 09:15:04] TASK - [Prepare: Determine RHEL variant] **********************************
Variant: Server

[01/12/2021 09:15:04] TASK - [Prepare: Backup System] *******************************************
Backing up /etc/system-release
Copying /etc/system-release to /var/lib/convert2rhel/
Backing up /etc/yum.conf
Copying /etc/yum.conf to /var/lib/convert2rhel/

[01/12/2021 09:15:04] TASK - [Prepare: Clear YUM/DNF version locks] *****************************
Usage of YUM/DNF versionlock plugin not detected.

[01/12/2021 09:15:04] TASK - [Convert: Remove excluded packages] ********************************
Searching for the following excluded packages:

centos-logos* ................................... 0
centos-indexhtml ................................ 0
centos*-release ................................. 1
centos*-repos ................................... 1
centos-obsolete-packages ........................ 0
redhat-release* ................................. 0
rhn* ............................................ 1
python3-rhn* .................................... 2


WARNING - The following packages will be removed...
Package                                                                Packager         Repository
-------                                                                --------         ----------
centos-linux-release-8.3-1.2011.el8.noarch                             CentOS Buildsys  @@commandline
centos-linux-repos-8-2.el8.noarch                                      CentOS Buildsys  @@commandline
rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64          CentOS Buildsys  @@commandline
python3-rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64  CentOS Buildsys  @@commandline
python3-rhnlib-2.8.6-8.module_el8.1.0+211+ad6c0bc7.noarch              CentOS Buildsys  @@commandline



Backing up centos-linux-release-8.3-1.2011.el8.noarch
[01/12/2021 09:15:09] DEBUG - Downloading the centos-linux-release-8.3-1.2011.el8.noarch package.
[01/12/2021 09:15:09] DEBUG - Calling command 'yumdownloader -v --destdir="/var/lib/convert2rhel/" centos-linux-release-8.3-1.2011.el8.noarch'
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.2.23
cachedir: /var/cache/dnf
User-Agent: constructed: 'libdnf (CentOS Linux 8; generic; Linux.x86_64)'
repo: using cache for: appstream
appstream: using metadata from Thu Jan  7 10:51:09 2021.
repo: using cache for: baseos
baseos: using metadata from Thu Jan  7 10:51:01 2021.
repo: using cache for: extras
extras: using metadata from Thu Nov 12 08:42:22 2020.
Last metadata expiration check: 1:09:56 ago on Tue Jan 12 08:05:14 2021.
Completion plugin: Generating completion cache...
[SKIPPED] centos-linux-release-8.3-1.2011.el8.noarch.rpm: Already downloaded
Successfully downloaded the centos-linux-release-8.3-1.2011.el8.noarch package.
[01/12/2021 09:15:11] DEBUG - Path of the downloaded package: /var/lib/convert2rhel/centos-linux-release-8.3-1.2011.el8.noarch.rpm
Backing up centos-linux-repos-8-2.el8.noarch
[01/12/2021 09:15:11] DEBUG - Downloading the centos-linux-repos-8-2.el8.noarch package.
[01/12/2021 09:15:11] DEBUG - Calling command 'yumdownloader -v --destdir="/var/lib/convert2rhel/" centos-linux-repos-8-2.el8.noarch'
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.2.23
cachedir: /var/cache/dnf
User-Agent: constructed: 'libdnf (CentOS Linux 8; generic; Linux.x86_64)'
repo: using cache for: appstream
appstream: using metadata from Thu Jan  7 10:51:09 2021.
repo: using cache for: baseos
baseos: using metadata from Thu Jan  7 10:51:01 2021.
repo: using cache for: extras
extras: using metadata from Thu Nov 12 08:42:22 2020.
Last metadata expiration check: 1:09:57 ago on Tue Jan 12 08:05:14 2021.
Completion plugin: Generating completion cache...
[SKIPPED] centos-linux-repos-8-2.el8.noarch.rpm: Already downloaded
Successfully downloaded the centos-linux-repos-8-2.el8.noarch package.
[01/12/2021 09:15:12] DEBUG - Path of the downloaded package: /var/lib/convert2rhel/centos-linux-repos-8-2.el8.noarch.rpm
Backing up rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64
[01/12/2021 09:15:12] DEBUG - Downloading the rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64 package.
[01/12/2021 09:15:12] DEBUG - Calling command 'yumdownloader -v --destdir="/var/lib/convert2rhel/" rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64'
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.2.23
cachedir: /var/cache/dnf
User-Agent: constructed: 'libdnf (CentOS Linux 8; generic; Linux.x86_64)'
repo: using cache for: appstream
appstream: using metadata from Thu Jan  7 10:51:09 2021.
repo: using cache for: baseos
baseos: using metadata from Thu Jan  7 10:51:01 2021.
repo: using cache for: extras
extras: using metadata from Thu Nov 12 08:42:22 2020.
Last metadata expiration check: 1:09:58 ago on Tue Jan 12 08:05:14 2021.
Completion plugin: Generating completion cache...
[SKIPPED] rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64.rpm: Already downloaded
Successfully downloaded the rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64 package.
[01/12/2021 09:15:13] DEBUG - Path of the downloaded package: /var/lib/convert2rhel/rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64.rpm
Backing up python3-rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64
[01/12/2021 09:15:13] DEBUG - Downloading the python3-rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64 package.
[01/12/2021 09:15:13] DEBUG - Calling command 'yumdownloader -v --destdir="/var/lib/convert2rhel/" python3-rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64'
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.2.23
cachedir: /var/cache/dnf
User-Agent: constructed: 'libdnf (CentOS Linux 8; generic; Linux.x86_64)'
repo: using cache for: appstream
appstream: using metadata from Thu Jan  7 10:51:09 2021.
repo: using cache for: baseos
baseos: using metadata from Thu Jan  7 10:51:01 2021.
repo: using cache for: extras
extras: using metadata from Thu Nov 12 08:42:22 2020.
Last metadata expiration check: 1:10:00 ago on Tue Jan 12 08:05:14 2021.
Completion plugin: Generating completion cache...
[SKIPPED] python3-rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64.rpm: Already downloaded
Successfully downloaded the python3-rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64 package.
[01/12/2021 09:15:14] DEBUG - Path of the downloaded package: /var/lib/convert2rhel/python3-rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64.rpm
Backing up python3-rhnlib-2.8.6-8.module_el8.1.0+211+ad6c0bc7.noarch
[01/12/2021 09:15:14] DEBUG - Downloading the python3-rhnlib-2.8.6-8.module_el8.1.0+211+ad6c0bc7.noarch package.
[01/12/2021 09:15:14] DEBUG - Calling command 'yumdownloader -v --destdir="/var/lib/convert2rhel/" python3-rhnlib-2.8.6-8.module_el8.1.0+211+ad6c0bc7.noarch'
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.2.23
cachedir: /var/cache/dnf
User-Agent: constructed: 'libdnf (CentOS Linux 8; generic; Linux.x86_64)'
repo: using cache for: appstream
appstream: using metadata from Thu Jan  7 10:51:09 2021.
repo: using cache for: baseos
baseos: using metadata from Thu Jan  7 10:51:01 2021.
repo: using cache for: extras
extras: using metadata from Thu Nov 12 08:42:22 2020.
Last metadata expiration check: 1:10:01 ago on Tue Jan 12 08:05:14 2021.
Completion plugin: Generating completion cache...
[SKIPPED] python3-rhnlib-2.8.6-8.module_el8.1.0+211+ad6c0bc7.noarch.rpm: Already downloaded
Successfully downloaded the python3-rhnlib-2.8.6-8.module_el8.1.0+211+ad6c0bc7.noarch package.
[01/12/2021 09:15:15] DEBUG - Path of the downloaded package: /var/lib/convert2rhel/python3-rhnlib-2.8.6-8.module_el8.1.0+211+ad6c0bc7.noarch.rpm
Removing package: centos-linux-release-8.3-1.2011.el8.noarch
[01/12/2021 09:15:15] DEBUG - Calling command 'rpm -e --nodeps centos-linux-release-8.3-1.2011.el8.noarch'
Removing package: centos-linux-repos-8-2.el8.noarch
[01/12/2021 09:15:16] DEBUG - Calling command 'rpm -e --nodeps centos-linux-repos-8-2.el8.noarch'
Removing package: rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64
[01/12/2021 09:15:16] DEBUG - Calling command 'rpm -e --nodeps rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64'
Removing package: python3-rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64
[01/12/2021 09:15:16] DEBUG - Calling command 'rpm -e --nodeps python3-rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64'
Removing package: python3-rhnlib-2.8.6-8.module_el8.1.0+211+ad6c0bc7.noarch
[01/12/2021 09:15:16] DEBUG - Calling command 'rpm -e --nodeps python3-rhnlib-2.8.6-8.module_el8.1.0+211+ad6c0bc7.noarch'
[01/12/2021 09:15:17] DEBUG - Successfully removed 5 packages

[01/12/2021 09:15:17] TASK - [Convert: Install Red Hat release package] *************************
Installing redhat-release package
No package to install

[01/12/2021 09:15:17] TASK - [Convert: Patch yum configuration file] ****************************
[01/12/2021 09:15:17] DEBUG - /etc/yum.conf patched.

[01/12/2021 09:15:17] TASK - [Convert: List third-party packages] *******************************
WARNING - Only packages signed by CentOS Release are to be reinstalled. Red Hat support won't be provided for the following third party packages:

Package                         Packager  Repository
-------                         --------  ----------
convert2rhel-0.15-1.el8.noarch  N/A       @@commandline



WARNING - The tool allows rollback of any action until this point.
WARNING - By continuing all further changes on the system will need to be reverted manually by the user, if necessary.



[01/12/2021 09:16:00] TASK - [Convert: Import Red Hat GPG keys] *********************************
[01/12/2021 09:16:00] DEBUG - Calling command 'rpm --import /usr/share/convert2rhel/gpg-keys/RPM-GPG-KEY-redhat-legacy-release'
[01/12/2021 09:16:00] DEBUG - Calling command 'rpm --import /usr/share/convert2rhel/gpg-keys/RPM-GPG-KEY-redhat-release'

[01/12/2021 09:16:00] TASK - [Convert: Prepare kernel] ******************************************
Installing RHEL kernel ...
[01/12/2021 09:16:00] DEBUG - Calling command 'yum install -y --disablerepo=* --enablerepo=appstream --enablerepo=baseos kernel'
Unable to detect release version (use '--releasever' to specify release version)
Failed loading plugin "spacewalk": No module named 'up2date_client'
Error: Unknown repo: 'appstream'
[01/12/2021 09:16:00] CRITICAL - Error occured while attempting to install the RHEL kernel
[01/12/2021 09:16:00] DEBUG - Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 89, in main
    post_ponr_conversion()
  File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 190, in post_ponr_conversion
    pkghandler.preserve_only_rhel_kernel()
  File "/usr/lib/python3.6/site-packages/convert2rhel/pkghandler.py", line 447, in preserve_only_rhel_kernel
    kernel_update_needed = install_rhel_kernel()
  File "/usr/lib/python3.6/site-packages/convert2rhel/pkghandler.py", line 468, in install_rhel_kernel
    loggerinst.critical("Error occured while attempting to install the"
  File "/usr/lib/python3.6/site-packages/convert2rhel/logger.py", line 105, in critical
    sys.exit(msg)
SystemExit: Error occured while attempting to install the RHEL kernel

WARNING - Conversion process interrupted and manual user intervention will be necessary.
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 55, in main
    toolopts.CLI()
  File "/usr/lib/python3.6/site-packages/convert2rhel/toolopts.py", line 51, in __init__
    self._process_cli_options()
  File "/usr/lib/python3.6/site-packages/convert2rhel/toolopts.py", line 166, in _process_cli_options
    parsed_opts, _ = self._parser.parse_args()
  File "/usr/lib64/python3.6/optparse.py", line 1387, in parse_args
    stop = self._process_args(largs, rargs, values)
  File "/usr/lib64/python3.6/optparse.py", line 1427, in _process_args
    self._process_long_opt(rargs, values)
  File "/usr/lib64/python3.6/optparse.py", line 1501, in _process_long_opt
    option.process(opt, value, values, self)
  File "/usr/lib64/python3.6/optparse.py", line 785, in process
    self.action, self.dest, opt, value, values, parser)
  File "/usr/lib64/python3.6/optparse.py", line 808, in take_action
    parser.exit()
  File "/usr/lib64/python3.6/optparse.py", line 1559, in exit
    sys.exit(status)
SystemExit: 0

Conversion fails when both CentOS and RHEL repos are behind a Satellite server

Unless I miss something, such a scenario does not seem handled for now.
The process tries to download the centos-release pkg after having disabled all repos from redhat.repo, hence it happens too late in the process.
=> Uninstalling the pkg in question from the RPMDB only (rpm -e --nodeps --justdb centos-release) fixed the issue for the customer.
=> On my side, in using standard/external CentOS repos, I needed to add "7" in /etc/yum/vars/releasever and then hacked the code to remove that file before convert2rhel invokes a repoquery against RHEL7 repos (where $releasever must be "7Server" instead).

Error Converting Oracle Linux 8.3 to RHEL

After the announcement of CentOS 8.x being dropped, I used centos2ol to convert from CentOS 8.3 to Oracle Linux 8.3:

Red Hat Enterprise Linux release 8.3 (Ootpa)

With the new RHEL announcement, I now want to convert to RHEL. Fully updated system, using convert2rhel like so:

convert2rhel --disable-submgr --disablerepo="*" --enablerepo BaseOS --no-rpm-va

And I get the following error:

WARNING - The tool allows rollback of any action until this point.
WARNING - By continuing all further changes on the system will need to be reverted manually by the user, if necessary.

Continue with the system conversion? [y/n]: y



[01/20/2021 22:20:33] TASK - [Convert: Import Red Hat GPG keys] *********************************

[01/20/2021 22:20:33] TASK - [Convert: Prepare kernel] ******************************************
Installing RHEL kernel ...
Unable to detect release version (use '--releasever' to specify release version)
Error: Unknown repo: 'BaseOS'
[01/20/2021 22:20:33] CRITICAL - Error occured while attempting to install the RHEL kernel
WARNING - Conversion process interrupted and manual user intervention will be necessary.

What am I doing wrong? Thanks for any pointers!

[Convert: Subscription Manager - Subscribe system] UnicodeEncodeError

Running convert2rhel on my CentOS 8.4.2105 box stops after registering the subscription:

[11/13/2021 17:04:17] TASK - [Convert: Subscription Manager - Subscribe system] *****************
Building subscription-manager command ...
    ... activation key not found, using given username and password
    ... username detected
    ... password detected
Registering the system using subscription-manager ...
Registrieren bei: subscription.rhsm.redhat.com:443/subscription
Das System wurde mit ID registriert: e740841c-18fd-4736-a475-114fcf16a0fb
Der registrierte Systemname lautet: localhost
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib64/python3.6/logging/__init__.py", line 996, in emit
    stream.write(msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\xfc' in position 205: ordinal not in range(128)
Call stack:
  File "/usr/sbin/subscription-manager", line 11, in <module>
    load_entry_point('subscription-manager==1.28.21', 'console_scripts', 'subscription-manager')()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/scripts/subscription_manager.py", line 87, in main
    return managercli.ManagerCLI().main()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/managercli.py", line 3365, in main
    ret = CLI.main(self)
  File "/usr/lib64/python3.6/site-packages/subscription_manager/cli.py", line 183, in main
    return cmd.main()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/managercli.py", line 564, in main
    return_code = self._do_command()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/managercli.py", line 1741, in _do_command
    self.entcertlib.update()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/certlib.py", line 32, in update
    self.report = self.locker.run(self._do_update)
  File "/usr/lib64/python3.6/site-packages/subscription_manager/certlib.py", line 18, in run
    return action()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/entcertlib.py", line 42, in _do_update
    return action.perform()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/entcertlib.py", line 131, in perform
    log.info('certs updated:\n%s', self.report)
Message: 'certs updated:\n%s'
Arguments: (<subscription_manager.entcertlib.EntCertUpdateReport object at 0x7f0d20f67240>,)
Manually select subscription appropriate for the conversion
CRITICAL - Unable to get list of available subscriptions:
+-------------------------------------------+
'ascii' codec can't encode character '\xfc' in position 8: ordinal not in range(128)

WARNING - Abnormal exit! Performing rollback ...

My CentOS is german, so I tried LC_ALL=C convert2rhel as workaround (https://access.redhat.com/discussions/6462611), same error. Any idea how to fix?

Conversion to RHEL 8.3 / 8.4 stops after finding unsupported kernel modules in CentOS 8.3

I have a CentOS 8.3 minimal instance running on a VMware Fusion to which I have applied all the available updates and rebooted the system.

Installed latest version of convert2rhel (v0.21), mounted RHEL 8.4 beta iso to a local mount dir path and ran the conversion with the following command:

convert2rhel --disable-submgr  --disablerepo=*  --enablerepo=InstallMedia-BaseOS  --enablerepo=InstallMedia-AppStream --debug

As part of the final checks, the conversion throws error with unsupporting kernel modules. Here is the part that was picked out from the full logs:

[05/14/2021 06:30:42] TASK - [Convert: Final system checks before main conversion] **************
[05/14/2021 06:30:42] DEBUG - Calling command 'uname -r'
4.18.0-240.22.1.el8_3.x86_64
[05/14/2021 06:30:42] DEBUG - Calling command 'find /lib/modules/4.18.0-240.22.1.el8_3.x86_64 -name "*.ko*" -type f'
[05/14/2021 06:30:42] DEBUG - Calling command 'repoquery --releasever=8 --setopt=module_platform_id=platform:el8 --repoid InstallMedia-BaseOS --repoid InstallMedia-AppStream -f /lib/modules/*.ko*'
[05/14/2021 06:30:43] DEBUG - Calling command 'repoquery --releasever=8 --setopt=module_platform_id=platform:el8 --repoid InstallMedia-BaseOS --repoid InstallMedia-AppStream -l kernel-core-0:4.18.0-293.el8.x86_64 kernel-debug-core-0:4.18.0-293.el8.x86_64 kernel-debug-modules-0:4.18.0-293.el8.x86_64 kernel-debug-modules-extra-0:4.18.0-293.el8.x86_64 kernel-modules-0:4.18.0-293.el8.x86_64 kernel-modules-extra-0:4.18.0-293.el8.x86_64 kmod-kvdo-0:6.2.4.26-76.el8.x86_64 kmod-redhat-oracleasm-8:2.0.8-11.el8.x86_64'
[05/14/2021 06:30:44] DEBUG - Calling command 'uname -r'
4.18.0-240.22.1.el8_3.x86_64
CRITICAL - The following kernel modules are not supported in RHEL:
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/lib/livepatch/test_klp_state3.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/iommu/amd_iommu_v2.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/lib/livepatch/test_klp_state2.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/arch/x86/events/intel/intel-rapl-perf.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtwpci.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/gpu/drm/cirrus/cirrus.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/firmware/dcdbas.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/dax/dax_hmem.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/acpi/dptf/dptf_power.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/pinctrl/intel/pinctrl-intel.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/lib/livepatch/test_klp_state.ko.xz
Uninstall or disable them and run convert2rhel again to continue with the conversion.
[05/14/2021 06:30:44] DEBUG - Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 87, in main
    pre_ponr_conversion()
  File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 199, in pre_ponr_conversion
    checks.perform_pre_ponr_checks()
  File "/usr/lib/python3.6/site-packages/convert2rhel/checks.py", line 125, in perform_pre_ponr_checks
    ensure_compatibility_of_kmods()
  File "/usr/lib/python3.6/site-packages/convert2rhel/checks.py", line 151, in ensure_compatibility_of_kmods
    ).format(kmods=not_supported_kmods)
  File "/usr/lib/python3.6/site-packages/convert2rhel/logger.py", line 103, in _critical
    sys.exit(msg)
SystemExit: The following kernel modules are not supported in RHEL:
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/lib/livepatch/test_klp_state3.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/iommu/amd_iommu_v2.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/lib/livepatch/test_klp_state2.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/arch/x86/events/intel/intel-rapl-perf.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtw88.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/net/wireless/realtek/rtw88/rtwpci.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/gpu/drm/cirrus/cirrus.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/firmware/dcdbas.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/dax/dax_hmem.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/acpi/dptf/dptf_power.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/drivers/pinctrl/intel/pinctrl-intel.ko.xz
/lib/modules/4.18.0-240.22.1.el8_3.x86_64/kernel/lib/livepatch/test_klp_state.ko.xz
Uninstall or disable them and run convert2rhel again to continue with the conversion.

WARNING - Abnormal exit! Performing rollback ...

Attached the full logs with debug enabled for further information.

I originally tried with mounting the RHEL 8.3 dvd iso as that would be the obvious straight forward conversion from CentOS 8.3 but that also failed with similar error but throwing even bigger list of unsupported kernel modules. My thought was that since I am running the latest kernel version in CentOS 8.3 (4.18.0-240.22.1.el8_3.x86_64) where as RHEL 8.3 includes older version (4.18.0-240.el8_3.x86_64), I was under the impression that the downgrade could be causing the problem, hence I started trying with RHEL 8.4 beta which includes the later version of the kernel. But, in both instances, the result was the same albeit with different sets of unsupported kernel modules.

I am stumped at this point with no further options to try, any directions would be really appreciated.

Thanks much for your help !

convert2rhel.log

[packit] Propose update failed for release v0.13

Packit failed on creating pull-requests in dist-git:

dist-git branch error
el6 Failed to download file from URL https://github.com/oamg/convert2rhel/archive/vv0.13/convert2rhel-v0.13.tar.gz. Reason: 'Not Found'.
epel7 Failed to download file from URL https://github.com/oamg/convert2rhel/archive/vv0.13/convert2rhel-v0.13.tar.gz. Reason: 'Not Found'.
epel8 Ref 'remotes/origin/epel8' did not resolve to an object

You can re-trigger the update by adding /packit propose-update to the issue comment.

error when executing convert2rhel via an Ansible playbook

Hello,
I work about an automotion way to convert 80/100 servers to rhel8 with a playbook.

When I execute convert2rhel locally with this command, it's ok:
convert2rhel --disable-submgr --disablerepo="*" --enablerepo=rhel-BaseOS --enablerepo=rhel-AppStream -v Server -y

But, when I execute this inside the playbook, convertion failed, and log this in /var/log/convert2rhel/convert2rhel.log :
`
01/28/2021 15:18:12] TASK - [Prepare: End user license agreement] ******************************
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 61, in main
user_to_accept_eula()
File "/usr/lib/python3.6/site-packages/convert2rhel/main.py", line 137, in user_to_accept_eula
eula_text = utils.get_file_content(eula_filepath)
File "/usr/lib/python3.6/site-packages/convert2rhel/utils.py", line 82, in get_file_content
lines = file_to_read.readlines()
File "/usr/lib64/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 318: ordinal not in range(128)

No changes were made to the system. `

I try to force locale to en_US.UTF8 before convertion task, but it still fails.

Do you have a tip to succeed ?

I just wanted to say THANK YOU!

no issue here, I just wanted to say thank you all for this amazing tool. It just saved me tons of work and a major headache rebuilding my VMs due to CentOS's carpet-pulling with 8.

Can't get list of kernel modules.

Well, this is an interesting bug I've stumbled on. This is on a CentOS 7 box that's been running for several years. I get to a point where the script checks for kernel modules and then just fails.

From the logs:

[04/23/2021 04:02:05] TASK - [Convert: Final system checks before main conversion] **************
('[%s] %s - %s', '04/23/2021 04:02:05', 'DEBUG', "Calling command 'uname -r'")
5.11.9-x86_64-linode142
('[%s] %s - %s', '04/23/2021 04:02:05', 'DEBUG', 'Calling command \'find /lib/modules/5.11.9-x86_64-linode142 -name "*.ko*" -type f\'')
CRITICAL - Can't get list of kernel modules.
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/convert2rhel/main.py", line 88, in main
    pre_ponr_conversion()
  File "/usr/lib/python2.7/site-packages/convert2rhel/main.py", line 208, in pre_ponr_conversion
    checks.perform_pre_ponr_checks()
  File "/usr/lib/python2.7/site-packages/convert2rhel/checks.py", line 83, in perform_pre_ponr_checks
    ensure_compatibility_of_kmods()
  File "/usr/lib/python2.7/site-packages/convert2rhel/checks.py", line 88, in ensure_compatibility_of_kmods
    host_kmods = get_installed_kmods()
  File "/usr/lib/python2.7/site-packages/convert2rhel/checks.py", line 135, in get_installed_kmods
    logger.critical("Can't get list of kernel modules.")
  File "/usr/lib/python2.7/site-packages/convert2rhel/logger.py", line 103, in _critical
    sys.exit(msg)
SystemExit: Can't get list of kernel modules.

I double-checked that directory and there are no .ko files in there.

After converting from CentOS 8.4 to RHEL 8.4, the java command soft link is missing

Yesterday I converted the CentOS 8.4 to RHEL 8.4 successfully with convert2rhel command. But the java command soft link is missing after the convertion. My command is "convert2rhel --disable-submgr --enablerepo rhes84-baseos --enablerepo rhes84-appstream -y --no-rpm-va --debug". The convert log message doesn't complain about the openjdk. Actually the openjdk package is still there.

# rpm -qa|grep jdk
copy-jdk-configs-3.7-4.el8.noarch
java-1.8.0-openjdk-1.8.0.282.b08-4.el8.x86_64
java-1.8.0-openjdk-headless-1.8.0.282.b08-4.el8.x86_64

The java command exists as well.

# ls -l /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-4.el8.x86_64/jre/bin/java
-rwxr-xr-x. 1 root root 11520 Feb 24  2021 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-4.el8.x86_64/jre/bin/java

But the java soft link is missing.

# which java
/usr/bin/which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/cdfwendy/bin:/cdfwendy/bin:/root/bin)

# alternatives --list
libnssckbi.so.x86_64    auto    /usr/lib64/pkcs11/p11-kit-trust.so
python                  auto    /usr/libexec/no-python
ifup                    auto    /usr/libexec/nm-ifup
ld                      auto    /usr/bin/ld.bfd
mkisofs                 auto    /usr/bin/genisoimage
print                   auto    /usr/bin/lpr.cups
xinputrc                auto    /etc/X11/xinit/xinput.d/ibus.conf
nmap                    auto    /usr/bin/ncat
python3                 auto    /usr/bin/python3.6
cifs-idmap-plugin       auto    /usr/lib64/cifs-utils/cifs_idmap_sss.so
libwbclient.so.0.15-64  auto    /usr/lib64/samba/wbclient/libwbclient.so.0.15

Before the convert, the java is showed in alternatives list as below.

# alternatives --list
libnssckbi.so.x86_64    auto    /usr/lib64/pkcs11/p11-kit-trust.so
python                  auto    /usr/libexec/no-python
ifup                    auto    /usr/libexec/nm-ifup
ld                      auto    /usr/bin/ld.bfd
mkisofs                 auto    /usr/bin/genisoimage
print                   auto    /usr/bin/lpr.cups
xinputrc                auto    /etc/X11/xinit/xinput.d/ibus.conf
nmap                    auto    /usr/bin/ncat
python3                 auto    /usr/bin/python3.6
cifs-idmap-plugin       auto    /usr/lib64/cifs-utils/cifs_idmap_sss.so
libwbclient.so.0.15-64  auto    /usr/lib64/samba/wbclient/libwbclient.so.0.15
java                    auto    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-4.el8.x86_64/jre/bin/java
jre_openjdk             auto    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-4.el8.x86_64/jre
jre_1.8.0               auto    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-4.el8.x86_64/jre
jre_1.8.0_openjdk       auto    /usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.282.b08-4.el8.x86_64

Any suggestions are appreciated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.