Opened 17 years ago

Closed 15 years ago

#1929 closed enhancement (wontfix)

Use 'make install', when it can work, instead of 'cp', when installing single files.

Reported by: robert@… Owned by: bdubbs@…
Priority: lowest Milestone: 6.5
Component: Book Version: SVN
Severity: trivial Keywords:
Cc:

Description

I noticed Binutils hides the ld-new program in 'ld/.libs/ld-new' if the --enable-shared option is used, and 'ld/ld-new' is a script. This isn't a concern with LFS because the --enable-shared option does not get used until chapter 6, however I believe it is more educational to use:

make -C ld EXEEXT=-new install-exec-local

This command will install /tools/bin/ld-new and a hardlink to /tools/i686-pc-linux-gnu/bin/ld-new, and nothing else (no man pages, etc). Not many users know about the EXEEXT variable, or install-exec-local. I think using this new command would help shed a glimpse into the control available with the GNU make system, as well as being a more robust command.

Change History (7)

comment:1 by gerard@…, 15 years ago

Milestone: Future7.0

Need to check if this still holds true nowadays. The general idea behind using a new form of installing has merit in principle.

comment:2 by robert@…, 15 years ago

I still believe that this command would be a value to the LFS book, as long as it works. I understand that it complicates our situation, but it is also more sophisticated.

comment:3 by Trent Shea, 15 years ago

Hi,

I'd like to assist with this ticket. I also propose that this ticket include the removal of any mv commands, as they are quite similar to cp.

I've generated a rough list of packages that include cp or mv commands.

Chapter 5:

  • binutils
  • coreutils
  • gettext
  • linux-headers
  • perl
  • util-linux-ng

Chapter 6:

  • binutils
  • bzip
  • coreutils
  • glibc
  • findutils
  • flex
  • gawk
  • gmp
  • grub
  • gzip
  • inetutils
  • iproute2
  • kbd
  • linux-headers
  • mpfr
  • ncurses
  • psmisc
  • readline
  • shadow

I'm currently working on linux-headers and chapter six's binutils.

comment:4 by bdubbs@…, 15 years ago

Milestone: 7.06.5
Owner: changed from lfs-book@… to bdubbs@…
Status: newassigned

comment:5 by bdubbs@…, 15 years ago

I've been working with this ticket and have found that using:

make -C ld EXEEXT=-new LIB_PATH=/usr/lib:/lib install-exec-local

does indeed take the place of

make -C ld LIB_PATH=/usr/lib:/lib
cp -v ld/ld-new /tools/bin

However, I'm not sure this is a good approach. Although it does show a different way of installing the program, it's not as clear as instructions we currently use.

As far as using install instead of cp goes, I don't think that is a good idea unless we are changing some parameter such as permissions or owner/group at the same time. In addition, install does not handle recursive directories, so it really isn't appropriate in those conditions.

Using more complex syntax where simple syntax works well detracts from the clarity of the instructions.

I'm inclined to mark this as won't fix unless there is a better rationale than "It shows a different way."

in reply to:  5 comment:6 by Trent Shea, 15 years ago

Replying to bdubbs@…:

I'm inclined to mark this as won't fix unless there is a better rationale than "It shows a different way."

I have no problem with my suggestion to add the other packages to this ticket to be marked as won't fix too. For the packages that I managed to look at (binutils, linux headers, flex, glibc) I found no alternatives to the book's instructions. I'd be happy trusting the review that the instructions receive with each package's upgrade.

comment:7 by bdubbs@…, 15 years ago

Resolution: wontfix
Status: assignedclosed
Note: See TracTickets for help on using tickets.