2002-07-06 08:33:20

by Keith Owens

[permalink] [raw]
Subject: [Bug] 2.5.25 build as one user and install as root

2.5.25 existing build system has a nasty bug. Build as one user then
make install as root. It does supurious recompiles of some files and
leaves them owned as root. All of these files are now owned by root
and cause problems when the build user wants to rebuild.

arch/i386/boot/compressed/vmlinux.bin
arch/i386/boot/compressed/piggy.o
arch/i386/boot/compressed/vmlinux
arch/i386/boot/.setup.o.cmd
arch/i386/boot/setup.o
arch/i386/boot/setup
arch/i386/boot/vmlinux.bin
include/linux/compile.h
init/.version.o.cmd
init/version.o
init/init.o
.version
vmlinux

Not a problem for kbuild 2.5 of course, it checks and aborts if
installing as root would require recompiles.


2002-07-06 11:31:53

by Alessandro Suardi

[permalink] [raw]
Subject: Re: [Bug] 2.5.25 build as one user and install as root

Keith Owens wrote:
> 2.5.25 existing build system has a nasty bug. Build as one user then
> make install as root. It does supurious recompiles of some files and
> leaves them owned as root. All of these files are now owned by root
> and cause problems when the build user wants to rebuild.
>
> arch/i386/boot/compressed/vmlinux.bin
> arch/i386/boot/compressed/piggy.o
> arch/i386/boot/compressed/vmlinux
> arch/i386/boot/.setup.o.cmd
> arch/i386/boot/setup.o
> arch/i386/boot/setup
> arch/i386/boot/vmlinux.bin
> include/linux/compile.h
> init/.version.o.cmd
> init/version.o
> init/init.o
> .version
> vmlinux

Doesn't happen for me.

[asuardi@dolphin asuardi]$ cd /usr/src/linux-2.5.25/arch/i386/boot/compressed/
[asuardi@dolphin compressed]$ ls -l
total 5492
-rw-r--r-- 1 asuardi asuardi 904 Jul 6 02:27 head.o
-rw-r--r-- 1 asuardi asuardi 2880 May 2 23:24 head.S
-rw-r--r-- 1 asuardi asuardi 669 Jul 6 02:13 Makefile
-rw-r--r-- 1 asuardi asuardi 9220 Jun 28 11:52 misc.c
-rw-r--r-- 1 asuardi asuardi 14896 Jul 6 02:27 misc.o
-rw-r--r-- 1 asuardi asuardi 1065041 Jul 6 02:27 piggy.o
-rwxr-xr-x 1 asuardi asuardi 1081033 Jul 6 02:27 vmlinux
-rwxr-xr-x 1 asuardi asuardi 2344608 Jul 6 02:27 vmlinux.bin
-rw-r--r-- 1 asuardi asuardi 1064452 Jul 6 02:27 vmlinux.bin.gz
-rw-r--r-- 1 asuardi asuardi 130 Jul 6 02:13 vmlinux.scr

(My keyboard and mouse ceased to work, but that's another subject
and I'll post details in another email).

--alessandro

"my actions make me beautiful / and dignify the flesh"
(R.E.M., "Falls to Climb")

2002-07-06 11:58:26

by Keith Owens

[permalink] [raw]
Subject: Re: [Bug] 2.5.25 build as one user and install as root

On Sat, 06 Jul 2002 13:28:06 +0200,
Alessandro Suardi <[email protected]> wrote:
>Keith Owens wrote:
>> 2.5.25 existing build system has a nasty bug. Build as one user then
>> make install as root. It does supurious recompiles of some files and
>> leaves them owned as root. All of these files are now owned by root
>> and cause problems when the build user wants to rebuild.
>
>Doesn't happen for me.

Check include/linux/compile.h after building as yourself and after
installing as root. make install goes

bzImage -> setup.o -> compile.h -> scripts/mkcompile_h ->
#define LINUX_COMPILE_BY \"`whoami`\"

whoami is different when you compile as one user then install as
another.

2002-07-07 21:32:01

by Alessandro Suardi

[permalink] [raw]
Subject: Re: [Bug] 2.5.25 build as one user and install as root

Keith Owens wrote:
> On Sat, 06 Jul 2002 13:28:06 +0200,
> Alessandro Suardi <[email protected]> wrote:
>
>>Keith Owens wrote:
>>
>>>2.5.25 existing build system has a nasty bug. Build as one user then
>>>make install as root. It does supurious recompiles of some files and
>>>leaves them owned as root. All of these files are now owned by root
>>>and cause problems when the build user wants to rebuild.
>>
>>Doesn't happen for me.
>
>
> Check include/linux/compile.h after building as yourself and after
> installing as root. make install goes
>
> bzImage -> setup.o -> compile.h -> scripts/mkcompile_h ->
> #define LINUX_COMPILE_BY \"`whoami`\"

Keith Owens wrote:
> On Sat, 06 Jul 2002 13:28:06 +0200,
> Alessandro Suardi <[email protected]> wrote:
>
>>Keith Owens wrote:
>>
>>>2.5.25 existing build system has a nasty bug. Build as one user then
>>>make install as root. It does supurious recompiles of some files and
>>>leaves them owned as root. All of these files are now owned by root
>>>and cause problems when the build user wants to rebuild.
>>
>>Doesn't happen for me.
>
>
> Check include/linux/compile.h after building as yourself and after
> installing as root. make install goes
>
> bzImage -> setup.o -> compile.h -> scripts/mkcompile_h ->
> #define LINUX_COMPILE_BY \"`whoami`\"
>
> whoami is different when you compile as one user then install as
> another.
>

Hey, give me some credit :)

[asuardi@dolphin linux]$ /bin/pwd
/usr/local/src/linux-2.5.25/include/linux
[asuardi@dolphin linux]$ cat compile.h
/* This file is auto generated, version 1 */
#define UTS_MACHINE "i386"
#define UTS_VERSION "#1 Sat Jul 6 02:27:10 CEST 2002"
#define LINUX_COMPILE_TIME "02:27:10"
#define LINUX_COMPILE_BY "asuardi"
#define LINUX_COMPILE_HOST "dolphin"
#define LINUX_COMPILE_DOMAIN ""
#define LINUX_COMPILER "gcc version 3.1"

I'm saying "doesn't happen for me" because it doesn't happen.

I've been compiling kernel as non-root (and well, of course
installing as root) since 1996.

I'll admit I checked only the files I cut'n'pasted last mail,
well let's be honest then...

[asuardi@dolphin linux]$ /bin/pwd
/usr/local/src/linux-2.5.25
[asuardi@dolphin linux]$ find . -user root -print
[asuardi@dolphin linux]$

See, *no* root-owned files here. Usual process is

* save previous kernel's .config
* zap previous kernel tree
* untar the previous kernel tree in /usr/local/src
* patch -p1 it with current kernel patch
* create new kernel tarball
* copy over saved .config
* make oldconfig
* make dep; make clean; make bzImage; make modules
* (wait for next kernel patch ;)

Ciao,

--alessandro

"my actions make me beautiful / and dignify the flesh"
(R.E.M., "Falls to Climb")


2002-07-08 01:19:39

by Keith Owens

[permalink] [raw]
Subject: Re: [Bug] 2.5.25 build as one user and install as root

On Sun, 07 Jul 2002 23:25:32 +0200,
Alessandro Suardi <[email protected]> wrote:
>Keith Owens wrote:
>>>>2.5.25 existing build system has a nasty bug. Build as one user then
>>>>make install as root. It does supurious recompiles of some files and
>>>>leaves them owned as root. All of these files are now owned by root
>>>>and cause problems when the build user wants to rebuild.
>
>I'm saying "doesn't happen for me" because it doesn't happen.
>
>I've been compiling kernel as non-root (and well, of course
> installing as root) since 1996.

Apply this patch to fix a bug with CONFIG_NET=n, CONFIG_LLC= which
shows up with allnoconfig.

Index: 25.1/net/core/Makefile
--- 25.1/net/core/Makefile Wed, 19 Jun 2002 14:11:35 +1000 kaos (linux-2.5/p/c/50_Makefile 1.4 444)
+++ 25.1(w)/net/core/Makefile Sat, 06 Jul 2002 18:27:16 +1000 kaos (linux-2.5/p/c/50_Makefile 1.4 444)
@@ -16,7 +16,7 @@ obj-$(CONFIG_FILTER) += filter.o

obj-$(CONFIG_NET) += dev.o dev_mcast.o dst.o neighbour.o rtnetlink.o utils.o

-ifneq ($(CONFIG_LLC),n)
+ifneq ($(subst n,,$(CONFIG_LLC)),)
obj-y += ext8022.o
endif

Then
make allnoconfig
make dep
make bzImage
su
make install

These files are rebuilt for make install, and are now owned by root.
'su' or 'su -' makes no difference.

include/linux/compile.h
arch/i386/boot/compressed/vmlinux.bin
arch/i386/boot/compressed/piggy.o
arch/i386/boot/compressed/vmlinux
arch/i386/boot/.setup.o.cmd
arch/i386/boot/setup.o
arch/i386/boot/setup
arch/i386/boot/vmlinux.bin
init/init.o
init/version.o
init/.version.o.cmd
.version
vmlinux