Re: why is the build so complex ?

2018-12-17 Thread Ben Hutchings
On Mon, 2018-12-17 at 13:16 +0100, Enrico Weigelt, metux IT consult wrote:
> On 15.12.18 16:37, Ben Hutchings wrote:
> 
> Hi,
> 
> > > while trying to build a debian kernel w/ some minor config changes>> 
> > > (actually, just need the gpio keyboard modules), I've stumpled
> across>> several strange problems and finally found out that the
> patches>> haven't been applied on the main tree (in contrast to rt tree)
> .. this>> ate up a lot of time, as the build takes so long
> (unfortunately, I don't>> have the luxory of possessing a 120 core
> machine ;-)).> > There is a script to do what you want,
> debian/bin/test-patches.
> Shouldn't the patches be automatically applied when calling the 'binary'
> rule (./debian/rules) ? If not, this doesn't seem to make much sense :o

If you build from git, the patches are applied by "debian/rules orig",
or if you build from a source package they are applied by
"dpkg-source -x" (by default).

debian/bin/test-patches is a simplified way to add more patches and
build a single kernel flavour, for testing purposes.

> I'm still in the middle of hacking, what I did so far is changing the
> build tree for 'none' to a separate directory, just like for 'rt', using
> the same rules. (essentially dropping special rules for
> $(STAMPS_DIR)/source_none, etc) - now the patches are applied.
> 
> The only downside of this change I see so far is that I get yet another
> temporary copy of the full source tree. OTOH, I'm thinking about
> dropping the initial unpack (in the root dir) and change these rules
> to directly unpack from tarball (or optionally pull a git repo).

What would be the benefit of this?

> > > When I look at the build rules, I really wonder why it's all so 
> > > complex. Some things that IMHO contribute to that complexity: * 
> > > several
> source trees - rt vs none:>>   --> can't we do this with one tree ?>>
> --> if necessary, fixup the rt patches, so they don't do anything in>>
>  non-rt build (eg. proper #ifdef's) ?> > That would be a huge amount
> of work to maintain.
> Initial work or permanent maintenance ?
> I agree that this takes some initial effort, and I'd like to volounteer
> for that.
> 
> BTW: On a quick look, I've seen that patches from
> 'debian/patches/series' are not included in in series-rt. Are they
> supposed to be
> already applied, before the rt tree copy is made ?

Correct.  The "$(STAMPS_DIR)/source" target in debian/rules.real has a
check for this.

> > > * auxillary tools>>   --> can't we build them completely separately ?>>   
> > > (IMHO,
> shouldn't have an hard dependency on currently running>>   kernel)>
> > They can be disabled with the "pkg.linux.notools" profile.
> Yes, but then they aren't built at all. Fine for my current local case,
> but the distro still needs them. So, my proposal is making them
> completely own source packages - then we wouldn't need play around w/
> profiles anymore and therefore reduce complexity.

We used to do this (linux-tools source package).  It required more work
to maintain.

> > > If it's just a matter of resources, I'd like to join in and do the job.> 
> > > > If you want to help simplify - and I'm sure some simplification is>
> possible - you have to start by understanding why the complexity is>
> there in the first place.
> Yes, that's why I've started this thread: to ask you guys what that's
> really all about :)

OK.  Many of your questions are likely to be answered in
debian/README.source or in the debian-kernel-handbook, so you should at
least browse through those.

Ben.

-- 
Ben Hutchings
Anthony's Law of Force: Don't force it, get a larger hammer.




signature.asc
Description: This is a digitally signed message part


Re: why is the build so complex ?

2018-12-17 Thread Enrico Weigelt, metux IT consult
On 15.12.18 16:37, Ben Hutchings wrote:

Hi,

>> while trying to build a debian kernel w/ some minor config changes>> 
>> (actually, just need the gpio keyboard modules), I've stumpled
across>> several strange problems and finally found out that the
patches>> haven't been applied on the main tree (in contrast to rt tree)
.. this>> ate up a lot of time, as the build takes so long
(unfortunately, I don't>> have the luxory of possessing a 120 core
machine ;-)).> > There is a script to do what you want,
debian/bin/test-patches.
Shouldn't the patches be automatically applied when calling the 'binary'
rule (./debian/rules) ? If not, this doesn't seem to make much sense :o

I'm still in the middle of hacking, what I did so far is changing the
build tree for 'none' to a separate directory, just like for 'rt', using
the same rules. (essentially dropping special rules for
$(STAMPS_DIR)/source_none, etc) - now the patches are applied.

The only downside of this change I see so far is that I get yet another
temporary copy of the full source tree. OTOH, I'm thinking about
dropping the initial unpack (in the root dir) and change these rules
to directly unpack from tarball (or optionally pull a git repo).

>> When I look at the build rules, I really wonder why it's all so complex. 
>> Some things that IMHO contribute to that complexity: * several
source trees - rt vs none:>>   --> can't we do this with one tree ?>>
--> if necessary, fixup the rt patches, so they don't do anything in>>
 non-rt build (eg. proper #ifdef's) ?> > That would be a huge amount
of work to maintain.
Initial work or permanent maintenance ?
I agree that this takes some initial effort, and I'd like to volounteer
for that.

BTW: On a quick look, I've seen that patches from
'debian/patches/series' are not included in in series-rt. Are they
supposed to be
already applied, before the rt tree copy is made ?

>> * auxillary tools>>   --> can't we build them completely separately ?>>  
>>  (IMHO,
shouldn't have an hard dependency on currently running>>   kernel)>
> They can be disabled with the "pkg.linux.notools" profile.
Yes, but then they aren't built at all. Fine for my current local case,
but the distro still needs them. So, my proposal is making them
completely own source packages - then we wouldn't need play around w/
profiles anymore and therefore reduce complexity.

>> If it's just a matter of resources, I'd like to join in and do the job.> > 
>> If you want to help simplify - and I'm sure some simplification is>
possible - you have to start by understanding why the complexity is>
there in the first place.
Yes, that's why I've started this thread: to ask you guys what that's
really all about :)



--mtx

-- 
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
i...@metux.net -- +49-151-27565287



Re: why is the build so complex ?

2018-12-15 Thread Ben Hutchings
On Fri, 2018-12-14 at 14:13 +0100, Enrico Weigelt, metux IT consult wrote:
> Hi folks,
> 
> 
> while trying to build a debian kernel w/ some minor config changes
> (actually, just need the gpio keyboard modules), I've stumpled across
> several strange problems and finally found out that the patches
> haven't been applied on the main tree (in contrast to rt tree) .. this
> ate up a lot of time, as the build takes so long (unfortunately, I don't
> have the luxory of possessing a 120 core machine ;-)).

There is a script to do what you want, debian/bin/test-patches.

> When I look at the build rules, I really wonder why it's all so complex.
> 
> Some things that IMHO contribute to that complexity:
> 
> * several source trees - rt vs none:
>   --> can't we do this with one tree ?
>   --> if necessary, fixup the rt patches, so they don't do anything in
>   non-rt build (eg. proper #ifdef's) ?

That would be a huge amount of work to maintain.

> * arch specific patches - same story like rt

There aren't arch-specific patches - that is, they aren't applied only
when building a particular arch.

> * auxillary tools
>   --> can't we build them completely separately ?
>   (IMHO, shouldn't have an hard dependency on currently running
>   kernel)

They can be disabled with the "pkg.linux.notools" profile.

> If it's just a matter of resources, I'd like to join in and do the job.

If you want to help simplify - and I'm sure some simplification is
possible - you have to start by understanding why the complexity is
there in the first place.

Ben.

-- 
Ben Hutchings
If you seem to know what you are doing, you'll be given more to do.




signature.asc
Description: This is a digitally signed message part


Re: [devuan-dev] why is the build so complex ?

2018-12-14 Thread Nico Schottelius


Hey mtx,

would ungleich providing a beefy(*) VM for kernel builds make your life
easier or more productive for Devuan?

If so, we might be very open for sponsoring.

Best,

Nico

(*) Not sure if this is still politically correct, otherwise read it as
"full of tasty vegetables", please.


Enrico Weigelt, metux IT consult  writes:

> Hi folks,
>
>
> while trying to build a debian kernel w/ some minor config changes
> (actually, just need the gpio keyboard modules), I've stumpled across
> several strange problems and finally found out that the patches
> haven't been applied on the main tree (in contrast to rt tree) .. this
> ate up a lot of time, as the build takes so long (unfortunately, I don't
> have the luxory of possessing a 120 core machine ;-)).
>
> When I look at the build rules, I really wonder why it's all so complex.
>
> Some things that IMHO contribute to that complexity:
>
> * several source trees - rt vs none:
>   --> can't we do this with one tree ?
>   --> if necessary, fixup the rt patches, so they don't do anything in
>   non-rt build (eg. proper #ifdef's) ?
> * arch specific patches - same story like rt
> * auxillary tools
>   --> can't we build them completely separately ?
>   (IMHO, shouldn't have an hard dependency on currently running
>   kernel)
>
> If it's just a matter of resources, I'd like to join in and do the job.
>
>
> --mtx


--
Your Swiss, Open Source and IPv6 Virtual Machine. Now on www.datacenterlight.ch.



Re: why is the build so complex ?

2018-12-14 Thread Yves-Alexis Perez
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On Fri, 2018-12-14 at 14:13 +0100, Enrico Weigelt, metux IT consult wrote:
> When I look at the build rules, I really wonder why it's all so complex.

Hi,

there is no simple answer to that. /Maybe/ the build system could be
simplified a bit, but in the end the src:linux needs to build a lot of complex
stuff, needs to be generic/modular etc.

If you really want a simple way to rebuild one kernel, maybe you can just look
at make bindeb-pkg target of the upstream kernel Makefile?

I don't really think it makes sense for an end-user to maintain a local fork
of src:linux.

Regards,
- -- 
Yves-Alexis
-BEGIN PGP SIGNATURE-

iQEzBAEBCAAdFiEE8vi34Qgfo83x35gF3rYcyPpXRFsFAlwTxTYACgkQ3rYcyPpX
RFs0AggAmltKGCjTf6mFwRHxCpF1pqnMhmWzMkKUMUIL5MBGar3OtJECT2tPtJ3X
u0HkSygxUS8t0V5X5Atz3B1SLLeGe//OlOFKfCn4rdFaF7rPC+nFaZI4X0dg/kja
qmo13wdmeNtlFu92YGr5DEgdaHTGSL3nsuG+PNTmYp6yR/geC+T1sHwyE1gHuumC
t5PJKtOiwFhHhVv4m9bU8q4jbkELjfrt4X07v5jemh+JxMuH4JNgTu/CS03kWzXL
780kVLd4+KcdqbE/yopYYIWMti8Pk1D1LIVlRae9PzxYcXIxTCmmIzJu5ulAlkQb
qjlzupUytAPxC4zQ+DMj0kyu/8j2ww==
=0tR4
-END PGP SIGNATURE-



Re: why is the build so complex ?

2018-12-14 Thread Bjørn Mork
"Enrico Weigelt, metux IT consult"  writes:

> while trying to build a debian kernel w/ some minor config changes
> (actually, just need the gpio keyboard modules),

Can't help with answers to your questions, but i believe I can help with
this task.  It's as simple as

 $ git clone https://github.com/notro/fbtft_tools.git
 Cloning into 'fbtft_tools'...
 remote: Enumerating objects: 95, done.
 remote: Total 95 (delta 0), reused 0 (delta 0), pack-reused 95
 Unpacking objects: 100% (95/95), done.
 $ cd fbtft_tools/gpio_keys_device/
 $ make
 make -C /lib/modules/4.18.0-3-amd64/build 
M=/usr/local/src/git/fbtft_tools/gpio_keys_device modules
 make[1]: Entering directory '/usr/src/linux-headers-4.18.0-3-amd64'
   CC [M]  /usr/local/src/git/fbtft_tools/gpio_keys_device/gpio_keys_device.o
   Building modules, stage 2.
   MODPOST 1 modules
   CC  
/usr/local/src/git/fbtft_tools/gpio_keys_device/gpio_keys_device.mod.o
   LD [M]  /usr/local/src/git/fbtft_tools/gpio_keys_device/gpio_keys_device.ko
 make[1]: Leaving directory '/usr/src/linux-headers-4.18.0-3-amd64'


provided you have installed the linux-headers package matching your
kernel.  No need to care about the Debian kernel patches and build
infrastructure at all.

Or did you mean something else?


Bjørn



why is the build so complex ?

2018-12-14 Thread Enrico Weigelt, metux IT consult
Hi folks,


while trying to build a debian kernel w/ some minor config changes
(actually, just need the gpio keyboard modules), I've stumpled across
several strange problems and finally found out that the patches
haven't been applied on the main tree (in contrast to rt tree) .. this
ate up a lot of time, as the build takes so long (unfortunately, I don't
have the luxory of possessing a 120 core machine ;-)).

When I look at the build rules, I really wonder why it's all so complex.

Some things that IMHO contribute to that complexity:

* several source trees - rt vs none:
  --> can't we do this with one tree ?
  --> if necessary, fixup the rt patches, so they don't do anything in
  non-rt build (eg. proper #ifdef's) ?
* arch specific patches - same story like rt
* auxillary tools
  --> can't we build them completely separately ?
  (IMHO, shouldn't have an hard dependency on currently running
  kernel)

If it's just a matter of resources, I'd like to join in and do the job.


--mtx

-- 
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
i...@metux.net -- +49-151-27565287