Libheif1 version for TW snapshot 20240104

Hello everyone,

when I try to update to TW snapshot 20240104, I get the following warning:

> su - -c 'zypper dup -d'
Password: 
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...
4 Problems:
Problem: the to be installed libheif-aom-1.17.6-1.1.x86_64 requires 'libheif1 = 1.17.6-1.1', but this requirement cannot be provided
Problem: the to be installed libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
Problem: the to be installed gdk-pixbuf-loader-libheif-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
Problem: the to be installed libheif-rav1e-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided

Problem: the to be installed libheif-aom-1.17.6-1.1.x86_64 requires 'libheif1 = 1.17.6-1.1', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1.1.x86_64[download.opensuse.org-oss]
 Solution 1: install libheif-aom-1.17.6-1699.4.pm.2.x86_64 from vendor http://packman.links2linux.de
  replacing libheif-aom-1.17.5-3.1.x86_64 from vendor openSUSE
 Solution 2: install libheif1-1.17.6-1.1.x86_64 from vendor openSUSE
  replacing libheif1-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
 Solution 3: keep obsolete libheif-aom-1.17.5-3.1.x86_64
 Solution 4: break libheif-aom-1.17.6-1.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c/d/?] (c): c

Iā€™m new to linux and openSUSE and Iā€™m unsure whether solution 1 or 2 is better. (I suspect that solutions 3 and 4 are not recommendable.)

Thank you for your help!

In this case, I would go with solution 1.

1 Like

Thank you very much for your answer. Can you help me understand why you would choose solution 1?
That would help me make an informed choice for the similar warnings I get for other packages.

When I choose solution 1 as you recommend, I get similar warnings for other packages:

su - -c 'zypper dup -d'
Password: 
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...
4 Problems:
Problem: the to be installed libheif-aom-1.17.6-1.1.x86_64 requires 'libheif1 = 1.17.6-1.1', but this requirement cannot be provided
Problem: the to be installed libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
Problem: the to be installed gdk-pixbuf-loader-libheif-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
Problem: the to be installed libheif-rav1e-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided

Problem: the to be installed libheif-aom-1.17.6-1.1.x86_64 requires 'libheif1 = 1.17.6-1.1', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1.1.x86_64[download.opensuse.org-oss]
 Solution 1: install libheif-aom-1.17.6-1699.4.pm.2.x86_64 from vendor http://packman.links2linux.de
  replacing libheif-aom-1.17.5-3.1.x86_64 from vendor openSUSE
 Solution 2: install libheif1-1.17.6-1.1.x86_64 from vendor openSUSE
  replacing libheif1-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
 Solution 3: keep obsolete libheif-aom-1.17.5-3.1.x86_64
 Solution 4: break libheif-aom-1.17.6-1.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c/d/?] (c): 1

Problem: the to be installed libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1699.4.pm.2.i586[packman]
                   libheif1-1.17.6-1699.4.pm.2.x86_64[packman]
 Solution 1: install libheif-dav1d-1.17.6-1699.4.pm.2.x86_64 from vendor http://packman.links2linux.de
  replacing libheif-dav1d-1.17.5-3.1.x86_64 from vendor openSUSE
 Solution 2: install libheif-svtenc-1.17.6-1.1.x86_64 from vendor openSUSE
  replacing libheif-svtenc-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
 Solution 3: keep obsolete libheif-dav1d-1.17.5-3.1.x86_64
 Solution 4: break libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c/d/?] (c): 1

Problem: the to be installed gdk-pixbuf-loader-libheif-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1699.4.pm.2.i586[packman]
                   libheif1-1.17.6-1699.4.pm.2.x86_64[packman]
 Solution 1: install gdk-pixbuf-loader-libheif-1.17.6-1.1.x86_64 from vendor openSUSE
  replacing gdk-pixbuf-loader-libheif-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
 Solution 2: install libheif-ffmpeg-1.17.6-1699.4.pm.2.x86_64 from vendor http://packman.links2linux.de
  replacing libheif-ffmpeg-1.17.5-3.1.x86_64 from vendor openSUSE
 Solution 3: keep obsolete libheif-ffmpeg-1.17.5-3.1.x86_64
 Solution 4: break gdk-pixbuf-loader-libheif-1.17.6-1699.4.pm.2.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c/d/?] (c): 1

Problem: the to be installed libheif-rav1e-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1699.4.pm.2.i586[packman]
                   libheif1-1.17.6-1699.4.pm.2.x86_64[packman]
 Solution 1: install libheif-jpeg-1.17.6-1699.4.pm.2.x86_64 from vendor http://packman.links2linux.de
  replacing libheif-jpeg-1.17.5-3.1.x86_64 from vendor openSUSE
 Solution 2: install libheif-rav1e-1.17.6-1.1.x86_64 from vendor openSUSE
  replacing libheif-rav1e-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
 Solution 3: keep obsolete libheif-jpeg-1.17.5-3.1.x86_64
 Solution 4: break libheif-rav1e-1.17.6-1699.4.pm.2.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c/d/?] (c): 1
Resolving dependencies...
Computing distribution upgrade...
3 Problems:
Problem: the to be installed libheif-jpeg-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
Problem: the to be installed libheif-ffmpeg-1.17.6-1.1.x86_64 requires 'libheif1 = 1.17.6-1.1', but this requirement cannot be provided
Problem: the to be installed libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided

Problem: the to be installed libheif-jpeg-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1699.4.pm.2.i586[packman]
                   libheif1-1.17.6-1699.4.pm.2.x86_64[packman]
 Solution 1: Following actions will be done:
  do not install libheif-jpeg-1.17.6-1699.4.pm.2.x86_64
  do not install libheif-dav1d-1.17.6-1699.4.pm.2.x86_64
  do not install libheif-aom-1.17.6-1699.4.pm.2.x86_64
 Solution 2: do not install gdk-pixbuf-loader-libheif-1.17.6-1.1.x86_64
 Solution 3: break libheif-jpeg-1.17.6-1699.4.pm.2.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/s/r/c/d/?] (c): 1

Problem: the to be installed libheif-ffmpeg-1.17.6-1.1.x86_64 requires 'libheif1 = 1.17.6-1.1', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1.1.x86_64[download.opensuse.org-oss]
 Solution 1: Following actions will be done:
  install libheif1-1.17.6-1.1.x86_64 from vendor openSUSE
    replacing libheif1-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
  do not install libheif-dav1d-1.17.6-1699.4.pm.2.x86_64
 Solution 2: install libheif-ffmpeg-1.17.6-1699.4.pm.2.x86_64 from vendor http://packman.links2linux.de
  replacing libheif-ffmpeg-1.17.5-3.1.x86_64 from vendor openSUSE
 Solution 3: keep obsolete libheif-ffmpeg-1.17.5-3.1.x86_64
 Solution 4: break libheif-ffmpeg-1.17.6-1.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c/d/?] (c): 1

Problem: the to be installed libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1699.4.pm.2.i586[packman]
                   libheif1-1.17.6-1699.4.pm.2.x86_64[packman]
 Solution 1: Following actions will be done:
  install libheif-svtenc-1.17.6-1.1.x86_64 from vendor openSUSE
    replacing libheif-svtenc-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
  do not install libheif-dav1d-1.17.6-1699.4.pm.2.x86_64
 Solution 2: install libheif-openjpeg-1.17.6-1699.4.pm.2.x86_64 from vendor http://packman.links2linux.de
  replacing libheif-openjpeg-1.17.5-3.1.x86_64 from vendor openSUSE
 Solution 3: keep obsolete libheif-openjpeg-1.17.5-3.1.x86_64
 Solution 4: break libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c/d/?] (c): 1
Resolving dependencies...
Computing distribution upgrade...

Problem: the to be installed libheif-rav1e-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1699.4.pm.2.i586[packman]
                   libheif1-1.17.6-1699.4.pm.2.x86_64[packman]
 Solution 1: Following actions will be done:
  do not install libheif1-1.17.6-1.1.x86_64
  do not install libheif-svtenc-1.17.6-1.1.x86_64
 Solution 2: Following actions will be done:
  keep obsolete libheif-rav1e-1.17.6-1699.4.pm.1.x86_64
  do not install libheif1-1.17.6-1.1.x86_64
  do not install libheif-svtenc-1.17.6-1.1.x86_64
 Solution 3: install libheif-rav1e-1.17.6-1.1.x86_64 from vendor openSUSE
  replacing libheif-rav1e-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
 Solution 4: do not install gdk-pixbuf-loader-libheif-1.17.6-1.1.x86_64
 Solution 5: break libheif-rav1e-1.17.6-1699.4.pm.2.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/4/5/c/d/?] (c): 1
Resolving dependencies...
Computing distribution upgrade...
3 Problems:
Problem: the to be installed gdk-pixbuf-loader-libheif-1.17.6-1.1.x86_64 requires 'libheif1 = 1.17.6-1.1', but this requirement cannot be provided
Problem: the to be installed libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
Problem: the to be installed libheif-rav1e-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided

Problem: the to be installed gdk-pixbuf-loader-libheif-1.17.6-1.1.x86_64 requires 'libheif1 = 1.17.6-1.1', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1.1.x86_64[download.opensuse.org-oss]
 Solution 1: install libheif1-1.17.6-1.1.x86_64 from vendor openSUSE
  replacing libheif1-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
 Solution 2: do not install gdk-pixbuf-loader-libheif-1.17.6-1.1.x86_64
 Solution 3: break gdk-pixbuf-loader-libheif-1.17.6-1.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/s/r/c/d/?] (c): 1

Problem: the to be installed libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1699.4.pm.2.i586[packman]
                   libheif1-1.17.6-1699.4.pm.2.x86_64[packman]
 Solution 1: install libheif-aom-1.17.6-1699.4.pm.2.x86_64 from vendor http://packman.links2linux.de
  replacing libheif-aom-1.17.5-3.1.x86_64 from vendor openSUSE
 Solution 2: install libheif-svtenc-1.17.6-1.1.x86_64 from vendor openSUSE
  replacing libheif-svtenc-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
 Solution 3: keep obsolete libheif-aom-1.17.5-3.1.x86_64
 Solution 4: break libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c/d/?] (c): 1

Problem: the to be installed libheif-rav1e-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1699.4.pm.2.i586[packman]
                   libheif1-1.17.6-1699.4.pm.2.x86_64[packman]
 Solution 1: install libheif-dav1d-1.17.6-1699.4.pm.2.x86_64 from vendor http://packman.links2linux.de
  replacing libheif-dav1d-1.17.5-3.1.x86_64 from vendor openSUSE
 Solution 2: install libheif-rav1e-1.17.6-1.1.x86_64 from vendor openSUSE
  replacing libheif-rav1e-1.17.6-1699.4.pm.1.x86_64 from vendor http://packman.links2linux.de
 Solution 3: keep obsolete libheif-dav1d-1.17.5-3.1.x86_64
 Solution 4: break libheif-rav1e-1.17.6-1699.4.pm.2.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c/d/?] (c): 1
Resolving dependencies...
Computing distribution upgrade...
4 Problems:
Problem: the to be installed libheif-aom-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
Problem: the to be installed gdk-pixbuf-loader-libheif-1.17.6-1.1.x86_64 requires 'libheif1 = 1.17.6-1.1', but this requirement cannot be provided
Problem: the to be installed libheif-svtenc-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
Problem: the to be installed libheif-dav1d-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided

Problem: the to be installed libheif-aom-1.17.6-1699.4.pm.2.x86_64 requires 'libheif1 = 1.17.6-1699.4.pm.2', but this requirement cannot be provided
  not installable providers: libheif1-1.17.6-1699.4.pm.2.i586[packman]
                   libheif1-1.17.6-1699.4.pm.2.x86_64[packman]
 Solution 1: do not install libheif-aom-1.17.6-1699.4.pm.2.x86_64
 Solution 2: do not install libheif1-1.17.6-1.1.x86_64
 Solution 3: break libheif-aom-1.17.6-1699.4.pm.2.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/s/r/c/d/?] (c):

The last problem could not be solved by installing a version from vendor http://packman.links2linux.de, so I exited the update.

I had the same issue. It seems that this library has been moved to the main repo. This has happened before with other libraries. I choose solutions that suggest replacing the repo from packman to the main repo and everything went fine.

2 Likes

Pacman libheif enables additional functionality (like x265 support) so assuming you had the reasons to install it in the first place you also want to keep it.

4 Likes

Thank you all for your answers. In my previous attempt, I didnā€™t stick to vendor changes to packman in every case. By mistake, I selected a vendor change to openSUSE for one library.

In my second attempt, I selected a vendor change to packman every time and so far it seems to have worked. I had to change vendor for 5 packages:

The following 5 packages are going to change vendor:
  libheif-aom       openSUSE -> http://packman.links2linux.de
  libheif-dav1d     openSUSE -> http://packman.links2linux.de
  libheif-ffmpeg    openSUSE -> http://packman.links2linux.de
  libheif-jpeg      openSUSE -> http://packman.links2linux.de
  libheif-openjpeg  openSUSE -> http://packman.links2linux.de

The alternative @VariableStar suggested would have involved the downgrade of four packages and a vendor change to openSUSE for those, but I decided against it:

The following 4 packages are going to be downgraded:
  gdk-pixbuf-loader-libheif libheif-rav1e libheif-svtenc libheif1

The following 4 packages are going to change vendor:
  gdk-pixbuf-loader-libheif  http://packman.links2linux.de -> openSUSE
  libheif-rav1e              http://packman.links2linux.de -> openSUSE
  libheif-svtenc             http://packman.links2linux.de -> openSUSE
  libheif1                   http://packman.links2linux.de -> openSUSE
1 Like

This is my choice:

keep obsolete libheif

Temporarily and wait for another dup if it will be sorted out.

1 Like

The soultion pointed out by arvidjaar and LLiebermann is the correct one. You need to switch ALL libheif packages to the same vendor. A mix of openSUSE and packman libheif packages leads to errors as can be seen in the initial post. So if you already prefer to use packman, repeat the vendor switch. If you prefer to use openSUSE packages, switch back to openSUSE.

Keeping obsolete packages is rarely a good ideaā€¦

2 Likes

Thanks it seems to work for me, in my case it was 8 packages that needed a vendor switch.

 gdk-pixbuf-loader-libheif  openSUSE -> http://packman.links2linux.de 
 libheif-aom                openSUSE -> http://packman.links2linux.de 
 libheif-dav1d              openSUSE -> http://packman.links2linux.de 
 libheif-ffmpeg             openSUSE -> http://packman.links2linux.de 
 libheif-jpeg               openSUSE -> http://packman.links2linux.de 
 libheif-openjpeg           openSUSE -> http://packman.links2linux.de 
 libheif-rav1e              openSUSE -> http://packman.links2linux.de 
 libheif-svtenc             openSUSE -> http://packman.links2linux.de
2 Likes

A bit late to the party but i wanted to add my two cents, that I learned from @404_UsernameNotFound

In this case I did zypper se -v libheif1 and i got this result

$ zypper se -v libheif1
Loading repository data...
Reading installed packages...

S  | Name                     | Type    | Version            | Arch   | Repository
---+--------------------------+---------+--------------------+--------+------------------------------
v  | libheif1                 | package | 1.17.6-1.1         | x86_64 | Main Repository (OSS)
    name: libheif1
v  | libheif1                 | package | 1.17.6-1699.4.pm.3 | i586   | Packman Essentials Repository
    name: libheif1
v  | libheif1                 | package | 1.17.6-1699.4.pm.3 | x86_64 | Packman Essentials Repository
    name: libheif1
i+ | libheif1                 | package | 1.17.5-1699.6.pm.4 | x86_64 | (System Packages)
    name: libheif1
   | libheif1-32bit           | package | 1.17.6-1.1         | x86_64 | Main Repository (OSS)
    name: libheif1-32bit
   | libheif1-32bit           | package | 1.17.6-1699.4.pm.3 | x86_64 | Packman Essentials Repository
    name: libheif1-32bit
   | libheif1-32bit-debuginfo | package | 1.17.6-1699.4.pm.3 | x86_64 | Packman Essentials Repository
    name: libheif1-32bit-debuginfo
   | libheif1-debuginfo       | package | 1.17.6-1699.4.pm.3 | i586   | Packman Essentials Repository
    name: libheif1-debuginfo
   | libheif1-debuginfo       | package | 1.17.6-1699.4.pm.3 | x86_64 | Packman Essentials Repository
    name: libheif1-debuginfo

So since there are still Packman versions, it seems that the library hasnā€™t moved to the main repo yet.
No offence @VariableStar

2 Likes

@Bird It works the other way around, Packman in most cases is just a rebuild service with links to the openSUSE Build Service, with everything maintained there. Packages use bcond settings to either enable or disable features. So updates arrive there, then a ā€˜rebuiltā€™ on packmanā€¦

2 Likes

On infamous host erlangen zypper never asks and decides on its own:

erlangen:~ # zypper se -is libheif1
Loading repository data...
Reading installed packages...

S  | Name     | Type    | Version            | Arch   | Repository
---+----------+---------+--------------------+--------+-----------
i+ | libheif1 | package | 1.17.6-1699.4.pm.3 | x86_64 | Packman
erlangen:~ # 
1 Like

No offense taken :slight_smile: I am glad to be corrected if wrong. I just run zypper dup with ā€œā€“allow-vendor-changeā€ and it reverted back to packman:

# zypper se -is libheif1
Loading repository data...
Reading installed packages...

S  | Name     | Type    | Version            | Arch   | Repository
---+----------+---------+--------------------+--------+-----------
i+ | libheif1 | package | 1.17.6-1699.4.pm.3 | x86_64 | packman

@VariableStar There is a delay when it pops into Factory, Packman auto rebuilds, at this point Factory is still being staged for snapshot release, but if you have done a vendor change it should just use thatā€¦

1 Like

Just confirm that I did the same by switching all packages to the OpenSUSE vendor and faced no problem after upgrading.

1 Like

Then packman repository makes no sense for you and you can remove itā€¦
Everybody who actually uses the packman repo, needs to switch packages to it and not the other way aroundā€¦
Donā€™t wonder if you canā€™t play some media anymoreā€¦

@Rasputnik48965 it works, but the thing is the version of the package in the packman repo allows the user to use other codecs that are not possible to pack in the OSS version, thatā€™s why you can possibly not see some videos on the web, for example. I for my part reverted to packman after I understood this