Ravenports / ravensource

The sources to compile Ravenports buildsheets
http://www.ravenports.com
15 stars 7 forks source link

Think about compressing man pages as a post-extract package operation #294

Closed jrmarino closed 3 weeks ago

jrmarino commented 1 year ago

Compressing gzipped file can actually take additional space. For package size, it's best to leave man pages uncompressed. We could add a new KEYWORD to compress packages after install and decompress them prior to removal (to maintain checksum) The framework would have to set the keyword based on mandirs (replacing the code that compresses the man pages.

obviously this requires gzip on the system but the KEYWORD could could figure that out.

jrmarino commented 1 month ago

you know, triggers can easily handle this. specifically post-install and pre-deinstall triggers would slickly do it.

jrmarino commented 1 month ago

I guess rvn needs to host such triggers.

jrmarino commented 1 month ago

the problem with using triggers for man pages is that every man package will show as corrupt because the checksums won't match.

We might consider just removing compression completely. if anyone is worried about disk space, they probably won't install the man page package anyway.

mneumann commented 4 weeks ago

@jrmarino keep in mind that FreeBSD (ZFS) and DragonFly (HAMMER2) feature compression by the file system

In addition, I doubt that man-pages in general take up much space.

du -ch /usr/share/man # 12 MB

With a compression rate of ~2.5x, that would be uncompressed just 30 MB. Nothing these days.

Compare that against librustc_driver.so, which alone has 150 MB...

jrmarino commented 4 weeks ago

@mneumann so I take it you agree that we should remove the man page compression completely (in other words install uncompressed man pages).

mneumann commented 4 weeks ago

@jrmarino yes, I'd go with uncompressed man pages if this makes things simpler. Moore's Law and the fact, that man pages are in general very tiny, helps.

Another (IMHO non-viable) option to even save more space would be to split man pages into their own variant, so users can decide if they want man pages or not. Please don't :)

jrmarino commented 4 weeks ago

Most man pages are in their own subpackage (man). The new rvn package manager has a setting to skip installing man pages by default. This is what I was referring to earlier where I said if the installation is concerned about this disk space, they would probably not install the man pages at all. (e.g. embedded systems). So no need for a variant - having optional subpackages takes care of this.

There are still some ports where the man pages are not split into their own subpackage but we are converting these over slowly, usually when the port is updated for other reasons.

mneumann commented 3 weeks ago

that's even better! so, if the user can decide if he wants man pages or not, I don't see the need for man page compression. embedded, space-conscious systems will just not install man-pages at all.

jrmarino commented 3 weeks ago

Requires ravenadm 3.12 (which is part of the commit)