For some reason I can't figure out, Drew Ames' post is being marked as
spam when it isn't. This is his post:
-------------------------
Okay, here are more build notes for the packages in chapter 6 of LFS 6.6.
I built Nano (text editor) in chapter 5 and used it to edit the build
script that came with the package user hint attachment. I ended up
splitting the 'configure', 'make', and 'make install' parts of that
script into three scripts so I could run each step separately and do
the 'make check' step when it was called for in the book's
instructions. Nano was invaluable for editing the scripts with the
proper configure switches, but also for reading the various build logs
when more and less weren't available. I also edited the .project files
for each package, and that's where the following notes came from.
These pick up where my previous notes stopped:
Binutils-2.20
Build as a package user, run 'make check' as root, and then install as
a package user. This avoids a problem with not enough pttys, which
happens as a package user for some reason.
GMP-5.0.0
Nothing remarkable when built as a package user.
MPFR-2.4.2
Nothing special when built as a package user.
File-5.04
Nothing special when built as a package user.
GCC-4.4.3
Configure and build gcc as a package user, but run 'make check' and
the test suites as root. The installation failed as a package user, so
I did the following: Before running 'make install', run 'chown -R
root:gcc *' in the gcc-build directory. Then run 'make install' as
root. Changing the ownership to root:gcc "stamps" the installed files
as part of the gcc package so the package user scripts still work.
Perhaps I really need to do the same thing for glibc.
Sed-4.2.1
Installation as a package user went well, except that I messed up and
made /usr/share/locale owned by root:root instead of root:install at
some point in the past when I was trying to troubleshoot glibc. After
I made /usr/share/locale and its subdirectories install directories,
(as originally set by the package users tools) the installation worked
fine.
Pkg-config-0.23
Nothing special as a package user.
Ncurses-5.7
Nothing special as a package user, exept that it is a good idea to run
/sbin/ldconfig after installation because ncurses install libraries.
Util-linux-ng-2.17
I saw the *** errors in the output. The result was that, as the hint
says, Util-linux-ng wants to set write as setgid tty and u/mount as
setuid root. I chose to go back as root and do just that.
E2fsprogs-1.41.10
Some additional directories need to be install directories. When
installing static libs:
chgrp install usr/lib/pkgconfig && chmod g+w,o+t /usr/lib/pkgconfig
When isntalling documentation:
chgrp install /usr/share/info/dir && chmod g+w,o+t /usr/share/info/dir
Coreutils-8.4
Remove the root-owned links in /bin as in the hint (including echo).
Configure and compile as package user then switch to root for the test
tasks. Be sure to change ownership back to coreutils after running the
tests. Make install as a package user creates a few, harmless errors
as the install tries to mkdir directories that already exist in
/usr/share/locale.
Iana-Etc-2.30
Nothing special as a package user.
M4-1.4.13
Nothing special for a package user.
Bison-2.4.1
Make install failed because /usr/share/aclocal was not an install
directory. Installation worked fine after correcting that error.
Procps-3.2.8
Make install fails because package users cannot run /sbin/ldconfig (as
indicated in the hint's build notes). Just run /sbin/ldconfig after
installing.
Grep-2.5.4
Nothing special as a package user.
Readline-6.1
Nothing special as a package user.
Bash-4.1
Exit to the root user to run the tests. Be sure to chown everything
back to the bash:bash after running the tests. Before 'make install',
exit to root, chown bash:bash /tools/bin/bash, then remove the link to
that file in /bin/bash. Relink it with 'ln /tools/bin/bash /bin/bash'
so that the new link is owned by the bash package user. Only then can
the installation replace the symlink with the real file.
Libtool-2.2.6b
Nothing special for a package user.
GDBM-1.8.3
Nothing special for a package user.
Inetutils-1.7
Installation went smoothly. Check make.err for a list of binaries that
want to be setuid root.
Perl-5.10.1
Chown /tools/usr/bin/perl to perl:perl and then relink /usr/bin/perl
(as with bash above) before running 'make install' or the installation
will not be able to remove the link and install perl.
Autoconf-2.65
Nothing special for a package user.
Automake-1.11.1
Nothing special as a package user.
Bzip2-1.0.5
Nothing special for a package user.
Diffutils-2.8.1
Nothing special for package users.
Gawk-3.1.7
Nothing special as a package user.
Findutils-4.4.2
Nothing special for a package user.
Flex-2.5.35
Nothing special as a package user.
Gettext-0.17
Nothing special for a package user.
Groff-1.20.1
Nothing special for a package user.
Gzip-1.4
Nothing special for a package user.
IPRoute2-2.6.31
Nothing special for a package user, but check the book for details on
the ifcfg script.
Kbd-1.15.1
Nothing special for a package user.
Less-436
Nothing special for a package user.
Make-3.81
Nothing special for a package user.
Man-DB-2.5.6
Got error: /bin/mkdir: cannot create directory `/usr/share/man/de':
Permission denied Made /usr/share/man an install directory with 'chgrp
install man && chmod g+w,o+t man' from within /usr/share.
Module-Init-Tools-3.11.1
Nothing special for a package user.
Patch-2.6.1
Nothing special for a package user.
Psmisc-22.10
Nothing special for a package user.
Shadow-4.1.4.2
Installation fails as indicated in the hint because of the
internatiional man pages. I decided to install them. After the
installation failure: Change the foreign language man page directories
to install groups: root:/usr/share/man# chgrp -R install
{de,es,fr,it,ja} && chmod -R g+w,o+t {de,es,fr,it,ja} Then change the
group of the files in those directories back to man-db: chgrp man-db *
in each directory. There's probably a way to use find or grep to do
this more easily than cd-ing into each directory and running chgrp.
Finally, set su, chage, chfn, chsh, expiry, gpasswd, newgrp and passwd
as setuid root.
Sysklogd-1.5
From the hint: "sysklogd's Makefile has /usr/bin/install hardwired as
the install program, which circumvents the install wrapper. The
wrapper is needed for sysklogd because it tries to make its manpages
owned by root (which obviously a package user is not allowed to do).
Therefore, install with 'make INSTALL=install install'."
Sysvinit-2.86
Do not follow the instructions in the package user hint. They are no
longer applicable, probably because the items in /dev are bind
mounted to the host. Nothing special was needed for a package user.
Tar-1.22
Nothing special for a package user.
Texinfo-4.13a
Nothing special for a package user.
Udev-151
Nothing special for a package user. The hint seems to be out of date.
Vim -- I didn't build Vim. Instead I build Nano (which I built in the
/tools directory while doing chapter 5 too), and Emacs.
Nano-2.1.10
Nothing special for a package user.
Emacs-23.2
Installation initially fails because /var/games needs to be created
and made into an install group. I added my customized .emacs to root's
home directory and as a symbolic link to /etc/pkgusr/dot_emacs in
/etc/pkguser/skel-package/.emacs.
Now I'm off to chapter 7.
Regards,
-Drew
--
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page