Bug 1188684 - [rpm] dosemu needs 67+ times its installed size more freespace than available on / to be able to upgrade, an additional 1.1GiB
[rpm] dosemu needs 67+ times its installed size more freespace than available...
Status: NEW
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Basesystem
Current
32bit Other
: P5 - None : Normal (vote)
: ---
Assigned To: Steffen Winterfeldt
E-mail List
:
Depends on: 720150
Blocks:
  Show dependency treegraph
 
Reported: 2021-07-24 20:21 UTC by Felix Miata
Modified: 2021-07-26 11:12 UTC (History)
7 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Miata 2021-07-24 20:21:33 UTC
original summary:
dosemu needs 67+ times its installed size more freespace than available on / to be able to upgrade, an additional 1.1GiB

# grep ION= /etc/os-release
# VERSION="20210723"
# df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda17      4.7G  3.6G  866M  81% /
# zypper up
...
The following package is going to be upgraded:
dosemu

1 package to upgrade.
Overall download size: 0 B. Already cached: 2.2 MiB. After the operation, additional 1.1 GiB will be used.
Continue? [y/n/v/...? shows all options] (y): y

Checking for file conflicts: ............................................[done]
In cache dosemu-1.4.0.1.r2065-86.8.i586.rpm (1/1), 2.2 MiB ( 1.13 GiB unpacked)
(1/1) Installing: dosemu-1.4.0.1.r2065-86.8.i586........................[error]
Installation of dosemu-1.4.0.1.r2065-86.8.i586 failed:
Error: Subprocess failed. Error: RPM failed:    installing package dosemu-1.4.0.1.r2065-86.8.i586 needs 351MB more space on the / filesystem

Abort, retry, ignore? [a/r/i] (a): i
...
# rpm -qi dosemu | grep ize
Size        : 5451598
# rpm -q --changelog dosemu | head -n12 | grep @
* Wed Jan 22 2020 Jiri Slaby <jslaby@
* Wed Oct 30 2019 Martin Liška <mliska@
* Fri Jul 13 2018 bwiedemann@
* Tue Dec 05 2017 crrodriguez@
Comment 1 Cristian Rodríguez 2021-07-24 23:04:39 UTC
the dosemu rpm must contain a big zero filled or highly compressible  file to compress to  2.2 MiB..if that is the case there must be a bug in the toolchain...(which will be of no surprise because youa re using the 586 arch..please just don't ;)

Cannot reproduce on x86_64.
Comment 2 Felix Miata 2021-07-26 06:23:30 UTC
32bit Mageia 8's rpm doesn't report dosemu needs 1.1GiB of disk space:
# inxi -S
System:    Host: gx27c Kernel: 5.10.52-desktop-1.mga8 i686 bits: 32 Desktop: Trinity Distro: Mageia 8 mga8
# df /
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda11       5655815 2601935   2767123  49% /
# urpmi dosemu
To satisfy dependencies, the following packages are going to be installed:
  Package                        Version      Release       Arch
(medium "Core Release")
  dosemu                         1.4.0.8      14.mga8       i586
  dosemu-freedos                 1.4.0.8      14.mga8       i586
  libSDL1.2_0                    1.2.15       26.mga8       i586
  libaa1                         1.4.0        0.rc5.34.mga8 i586
  libggi                         2.2.2        28.mga8       i586
  libggi2                        2.2.2        28.mga8       i586
  libgii                         1.0.2        26.mga8       i586
  libgii1                        1.0.2        26.mga8       i586
8.4MB of additional disk space will be used.
3.3MB of packages will be retrieved.
Proceed with the installation of the 8 packages? (Y/n) y
    http://mirrors.mageia.org/api/mageia.8.i586.list: media/core/release/libaa1-1.4.0-0.rc5.34.mga8.i586.rpm
...
    http://mirrors.mageia.org/api/mageia.8.i586.list: media/core/release/libSDL1.2_0-1.2.15-26.mga8.i586.rpm
installing libaa1-1.4.0-0.rc5.34.mga8.i586.rpm dosemu-freedos-1.4.0.8-14.mga8.i586.rpm libggi2-2.2.2-28.mga8.i586.rpm libggi-2.2.2-2                                                   8.mga8.i586.rpm dosemu-1.4.0.8-14.mga8.i586.rpm libgii-1.0.2-26.mga8.i586.rpm libgii1-1.0.2-26.mga8.i586.rpm libSDL1.2_0-1.2.15-26.m                                                   ga8.i586.rpm from /var/cache/urpmi/rpms
Preparing...                     #############################################
      1/8: libaa1                #############################################
...
      8/8: dosemu                #############################################
# df /
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda11       5655815 2609961   2759097  49% /
# rpm -qi dosemu | grep ize
Size        : 3498352
#
Comment 3 Michael Schröder 2021-07-26 08:23:08 UTC
Well, zypper says:

In cache dosemu-1.4.0.1.r2065-86.8.i586.rpm (1/1), 2.2 MiB ( 1.13 GiB unpacked)

Note the 1.13 GiB unpacked. So it's no wonder it doesn't fit on disk. Also:

$ rpm2cpio dosemu-1.4.0.1.r2065-86.8.i586.rpm | wc -c
1216140388
$ rpm2cpio dosemu-1.4.0.1.r2065-86.8.i586.rpm | cpio --list -v | sort -k 5n
...
-rw-r--r--   1 root     root     134512424 May 27 17:32 ./usr/share/dosemu/drive_z/dosemu/fossil.com
-rw-r--r--   1 root     root     134512424 May 27 17:32 ./usr/share/dosemu/drive_z/dosemu/generic.com
-rw-r--r--   1 root     root     134512424 May 27 17:32 ./usr/share/dosemu/drive_z/dosemu/isemu.com
-rw-r--r--   1 root     root     134512424 May 27 17:32 ./usr/share/dosemu/drive_z/dosemu/mgarrot.com
-rw-r--r--   1 root     root     134512680 May 27 17:32 ./usr/share/dosemu/drive_z/dosemu/aspi.sys
-rw-r--r--   1 root     root     134512680 May 27 17:32 ./usr/share/dosemu/drive_z/dosemu/cdrom.sys
-rw-r--r--   1 root     root     134512680 May 27 17:32 ./usr/share/dosemu/drive_z/dosemu/dumpconf.sys
-rw-r--r--   1 root     root     134512680 May 27 17:32 ./usr/share/dosemu/drive_z/dosemu/ems.sys
-rw-r--r--   1 root     root     134512680 May 27 17:32 ./usr/share/dosemu/drive_z/dosemu/emufs.sys

Anyway, not a bug in rpm. Reassigning to dosemu maintainer. Those files seem way too big on i586.
Comment 4 Jan Engelhardt 2021-07-26 08:44:54 UTC
This sounds familiar, we had this before.
It has to do with an ELF input file that specifies "map some bytes at ~128M", and an invocation of objcopy that is tasked to produce a flat raw headerless binary (for ROMs and the like), which leads to a large file. (Bugzilla search is slow, I'll get back if I find the original ticket again.)
Comment 5 Jan Engelhardt 2021-07-26 09:58:10 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=468017
(not the SUSE ticket I wanted to find, but anyway, reading material.)

It may have been grub2, ipxe, memtest, qemu or syslinux. They use `objcopy -O binary` in similar fashion and may have had to deal with the same issue in the past.
Comment 6 Fabian Vogt 2021-07-26 11:12:08 UTC
(In reply to Jan Engelhardt from comment #5)
> https://bugzilla.redhat.com/show_bug.cgi?id=468017
> (not the SUSE ticket I wanted to find, but anyway, reading material.)
> 
> It may have been grub2, ipxe, memtest, qemu or syslinux. They use `objcopy
> -O binary` in similar fashion and may have had to deal with the same issue
> in the past.

Probably the same as boo#1125307, not taking the .note.gnu.property section into account.