Bug 1238 - Man pages (and other documentation) are not compressed
Summary: Man pages (and other documentation) are not compressed
Status: RESOLVED FIXED
Alias: None
Product: Meta-yocto
Classification: Build System, Metadata & Runtime
Component: meta-yocto (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Low enhancement
Target Milestone: 1.7 M3
Assignee: Hongxu Jia
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2011-07-13 08:37 UTC by Mark Hatle
Modified: 2014-09-03 10:21 UTC (History)
7 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Yes (doc changes required)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Hatle 2011-07-13 08:37:19 UTC
Looking through various -doc packages some man pages are compressed, but many are not.

A distribution compression policy should be established, and used by all packages.  This likely should affect all documentation, not just man pages.
Comment 1 Mark Hatle 2011-07-13 08:44:34 UTC
When compressing man pages and/or other documentation the gzip option "--no-name" needs to be passed in order to avoid embedding a date stamp and filename into the compressed archive.  This embedded information will cause a different md5sum for multiple builds.
Comment 2 Hongxu Jia 2014-09-03 10:21:59 UTC
Merged into master:

http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=5c833e188bbf25c35c24f78eaa761a191d6b5801

Test Steps:

1. vim local.conf
...
IMAGE_INSTALL_append = " man info man-doc e2fsprogs-doc vim-doc"
INHERIT += "compress_doc"
DOC_COMPRESS = "xz"
...

2. bitbake core-image-minimal

3. Identify already compressed items, verify they conform to
compression policy. Take man for example ('gz' --> 'xz')

$ cd tmp/work/armv5te-poky-linux-gnueabi/man/1.6g-r1
$ find image/usr/share/man/
image/usr/share/man/
image/usr/share/man/man7
image/usr/share/man/man7/man.7.gz
image/usr/share/man/man1
image/usr/share/man/man1/man2html.1
image/usr/share/man/man1/man.1.gz
image/usr/share/man/man5
image/usr/share/man/man5/manpath.5.gz

$ find package/usr/share/man/
package/usr/share/man/
package/usr/share/man/man7
package/usr/share/man/man7/man.7.xz
package/usr/share/man/man1
package/usr/share/man/man1/man.1.xz
package/usr/share/man/man1/man2html.1.xz
package/usr/share/man/man5
package/usr/share/man/man5/manpath.5.xz

4. The hardlink files could be compressed and re-hardlink correctly.
Take e2fsprogs for example:

$ cd tmp/work/armv5te-poky-linux-gnueabi/e2fsprogs/1.42.9-r0
$ ls -al image/usr/share/man/man8/mk*
-rw-r--r-- 5 jiahongxu jiahongxu 20221 Aug 14 18:17 image/usr/share/man/man8/mke2fs.8
-rw-r--r-- 5 jiahongxu jiahongxu 20221 Aug 14 18:17 image/usr/share/man/man8/mkfs.ext2.8
-rw-r--r-- 5 jiahongxu jiahongxu 20221 Aug 14 18:17 image/usr/share/man/man8/mkfs.ext3.8
-rw-r--r-- 5 jiahongxu jiahongxu 20221 Aug 14 18:17 image/usr/share/man/man8/mkfs.ext4.8
-rw-r--r-- 5 jiahongxu jiahongxu 20221 Aug 14 18:17 image/usr/share/man/man8/mkfs.ext4dev.8

$ ls -al package/usr/share/man/man8/mk*
-rw-r--r-- 10 jiahongxu jiahongxu 6828 Aug 14 18:17 package/usr/share/man/man8/mke2fs.8.xz
-rw-r--r-- 10 jiahongxu jiahongxu 6828 Aug 14 18:17 package/usr/share/man/man8/mkfs.ext2.8.xz
-rw-r--r-- 10 jiahongxu jiahongxu 6828 Aug 14 18:17 package/usr/share/man/man8/mkfs.ext3.8.xz
-rw-r--r-- 10 jiahongxu jiahongxu 6828 Aug 14 18:17 package/usr/share/man/man8/mkfs.ext4.8.xz
-rw-r--r-- 10 jiahongxu jiahongxu 6828 Aug 14 18:17 package/usr/share/man/man8/mkfs.ext4dev.8.xz

5. The symlink files could be compressed and re-symlink correctly.
Take 'vim' for example:

$ cd tmp/work/armv5te-poky-linux-gnueabi/vim/7.4.373-r0
$ ls -al `find image/usr/share/man/man1/ -type l`
lrwxrwxrwx 1 jiahongxu jiahongxu 5 Aug 15 17:17 image/usr/share/man/man1/ex.1 -> vim.1
lrwxrwxrwx 1 jiahongxu jiahongxu 5 Aug 15 17:17 image/usr/share/man/man1/rview.1 -> vim.1
lrwxrwxrwx 1 jiahongxu jiahongxu 5 Aug 15 17:17 image/usr/share/man/man1/rvim.1 -> vim.1
lrwxrwxrwx 1 jiahongxu jiahongxu 5 Aug 15 17:17 image/usr/share/man/man1/view.1 -> vim.1

$ ls -al `find package/usr/share/man/man1/ -type l`
lrwxrwxrwx 1 jiahongxu jiahongxu 8 Aug 15 17:31 package/usr/share/man/man1/ex.1.xz -> vim.1.xz
lrwxrwxrwx 1 jiahongxu jiahongxu 8 Aug 15 17:31 package/usr/share/man/man1/rview.1.xz -> vim.1.xz
lrwxrwxrwx 1 jiahongxu jiahongxu 8 Aug 15 17:31 package/usr/share/man/man1/rvim.1.xz -> vim.1.xz
lrwxrwxrwx 1 jiahongxu jiahongxu 8 Aug 15 17:31 package/usr/share/man/man1/view.1.xz -> vim.1.xz

6. Start qemu

7. On target, check the compressed man/info files could work. Currently only gz could work.

8. Change DOC_COMPRESS = "xz" to DOC_COMPRESS = "bz2" and repeat steps 2-7.

//Hongxu