Opened 15 years ago

Last modified 15 years ago

#2459 closed defect

Udev rules documentation location — at Version 8

Reported by: chris@… Owned by: lfs-book@…
Priority: normal Milestone: 6.5
Component: Book Version: SVN
Severity: normal Keywords:
Cc:

Description (last modified by bdubbs@…)

It was mentioned earlier that Udev now puts an HTML file about writing Udev rules in /usr/share/doc/udev-[version], but for me it just goes into /usr/share/doc/udev. This is fixed by adding --docdir=/usr/share/doc/udev-&udev-version; to Udev's configure.

Change History (8)

comment:1 by Bryan Kadzban, 15 years ago

Resolution: wontfix
Status: newclosed

It was mentioned earlier that Udev now puts an HTML file about writing Udev rules in /usr/share/doc/udev-[version], but for me it just goes into /usr/share/doc/udev.

Looks like I got that path wrong...

This is fixed by adding --docdir=/usr/share/doc/udev-&udev-version; to Udev's configure.

Please don't. I hadn't checked what --docdir actually was by default when I said what what you quoted above; I was assuming that autofoo added the package version number to the documentation directory. If it does not, that's still the right way to go. (Besides, this was just a comment in a bug (or on lfs-dev, I can't remember which); it's not like this information is in the book...)

comment:2 by chris@…, 15 years ago

I'm confused by your response. I don't know what you mean by "Please don't" - I believe it is generally LFS policy to put all documentation in /usr/share/doc into subdirs with version numbers, and I was just pointing out one package that does not.

in reply to:  2 ; comment:3 by Bryan Kadzban, 15 years ago

Replying to chris@…:

I believe it is generally LFS policy to put all documentation in /usr/share/doc into subdirs with version numbers, and I was just pointing out one package that does not.

I was unaware of any such policy. If it does exist, it goes against at least the autoconf default ${docdir}, and (I think also therefore) the GNU coding standards which autoconf follows. At least autoconf uses the plain old package name, without a version.

If we're overriding that in lots of places (grepping the book finds a couple... :-( ), I think we need to re-think that decision. Using the standard directory makes it a heck of a lot easier to upgrade udev in the future, without leaving lots of different /usr/share/doc/udev-XXX directories hanging around forever.

(The "please don't" was directed more at other editors than at you; sorry if that wasn't clear.)

in reply to:  3 ; comment:4 by bdubbs@…, 15 years ago

Replying to bryan@…:

Replying to chris@…:

I believe it is generally LFS policy to put all documentation in /usr/share/doc into subdirs with version numbers, and I was just pointing out one package that does not.

I was unaware of any such policy. If it does exist, it goes against at least the autoconf default ${docdir}, and (I think also therefore) the GNU coding standards which autoconf follows. At least autoconf uses the plain old package name, without a version.

That's an interesting comment because all the LFS packages except udev are version specific and I know there has been a lot of effort for it to be that way in BLFS for quite a while.

The rationale is that newer packages don't delete obsolete documentation that may still be in /usr/share/doc when upgrading.

in reply to:  4 comment:5 by Bryan Kadzban, 15 years ago

Replying to bdubbs@…:

The rationale is that newer packages don't delete obsolete documentation that may still be in /usr/share/doc when upgrading.

Newer packages also don't delete older shared library versions, or obsolete header files. We don't cater to that...

(To be specific, I'm talking about e.g. /lib/libz.so.1.2.3 not being replaced when upgrading from zlib-1.2.3 to zlib-1.2.<newer>.)

I don't know the rationale behind making ${docdir} be /usr/share/doc/${PACKAGE_TARNAME} in autoconf. I'd assume they don't care about removing obsolete documentation files... :-)

comment:6 by chris@…, 15 years ago

Resolution: wontfix
Status: closedreopened

comment:7 by chris@…, 15 years ago

Type: taskdefect

I just noticed something. The "Device and Module Handling" page - http://www.linuxfromscratch.org/lfs/view/development/chapter07/udev.html - and "Creating Custom Symlinks" - http://www.linuxfromscratch.org/lfs/view/development/chapter07/symlinks.html - both explicitly refer to the HTML file about Udev rules by its full path - including being inside a versioned directory, which of course does not exist with the current Udev instructions. Also, the HTML file is actually inside another subdir - specifically, /usr/share/doc/udev/writing_udev_rules/index.html. So, even if it is decided not to change the installation location, the text on the "Device and Module Handling" and "Creating Custom Symlinks" pages must be updated.

in reply to:  7 comment:8 by bdubbs@…, 15 years ago

Description: modified (diff)

Replying to chris@…:

OK, this is what needs to be done:

  1. In Chapter 6 add --docdir=/usr/share/dov/udev-145 to configure
  2. Add writing_udev_rules/ to the path in Chapter 7, udev.xml and symlinks.xml

I've not actually built the whole package, but I did run ./configure with the switch and the 'make DESTDIR=/tmp/udev install' in the docs/ directory.

What I get is:

/usr/bin/install -c -m 644 $files "/usr/share/doc/udev-145/writing_udev_rules"

/tmp/udev:
usr

/tmp/udev/usr:
share

/tmp/udev/usr/share:
doc

/tmp/udev/usr/share/doc:
udev-145

/tmp/udev/usr/share/doc/udev-145:
writing_udev_rules

/tmp/udev/usr/share/doc/udev-145/writing_udev_rules:
index.html

So those simple changes should be adequate.

Note: See TracTickets for help on using tickets.