Re: Missing binaries / build system

2024-04-19 Thread anatoly techtonik
On Fri, Apr 19, 2024 at 8:05 PM Tim Tassonis  wrote:
>
> > Yep, looks like there is no way to select configuration
> > non-interactively. The "menu randconfig" is somehow able to click
> > different options, so I guess it is just a matter of patching the build
> > system to support "make enable httpd". Not sure if it is C, shell or
> > make code that does the config management.
>
> Do you really think it is necessary to "fix" the build system in order
> to automatically support this special case?

The build system is CI/CD that is supposed to upload the binaries
automatically, but as I understandt, there is no such thing. Otherwise
there would be no bugs like https://bugs.busybox.net/show_bug.cgi?id=14286

> If you once have selected your desired stuff with everything unneeded,
> just keep your .config file and then re-use it.

The config needs to be regenerated for each new release, and it is
hard to memorize what was selected, but yes, it looks like that's
just what everybody is doing.

> I don't want to stop you, but maybe everybody's precious time is better
> spent elsewhere than in automating esoteric special cases.

With GitLab CI/CD there would be no problem automating binary
releases. I don't think it is esoteric nowadays.
-- 
anatoly t.
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: Missing binaries / build system

2024-04-19 Thread Tim Tassonis



On 4/19/24 14:29, anatoly techtonik wrote:

On Fri, Apr 19, 2024 at 1:02 PM Jeff Pohlmeyer  wrote:


That is probably because "defconfig" enables a lot of features in the
httpd applet that are disabled when you build with "allnoconfig"

Things like: Date header, Last-Modified header, Range requests, HTTP
authentication, custom error pages, reverse proxying, GZIP encoding,
and CGI scripting.


I've built it with allnoconfig+menuconfig, set "httpd" and all these features
were seIected automatically, so they were present in 34K binary too. Looks
like the binary size is affected by other default options.


That's a lot of extra functionality for a 16K increase in size. You
can of course go back in either config and enable/disable just the
features you need, but I don't know how you would do that
non-interactively.


Yep, looks like there is no way to select configuration
non-interactively. The "menu randconfig" is somehow able to click
different options, so I guess it is just a matter of patching the build
system to support "make enable httpd". Not sure if it is C, shell or
make code that does the config management.


Do you really think it is necessary to "fix" the build system in order 
to automatically support this special case?


If you once have selected your desired stuff with everything unneeded, 
just keep your .config file and then re-use it.


I don't want to stop you, but maybe everybody's precious time is better 
spent elsewhere than in automating esoteric special cases.



Bye
Tim
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: Missing binaries / build system

2024-04-19 Thread anatoly techtonik
On Fri, Apr 19, 2024 at 1:02 PM Jeff Pohlmeyer  wrote:
>
> That is probably because "defconfig" enables a lot of features in the
> httpd applet that are disabled when you build with "allnoconfig"
>
> Things like: Date header, Last-Modified header, Range requests, HTTP
> authentication, custom error pages, reverse proxying, GZIP encoding,
> and CGI scripting.

I've built it with allnoconfig+menuconfig, set "httpd" and all these features
were seIected automatically, so they were present in 34K binary too. Looks
like the binary size is affected by other default options.

> That's a lot of extra functionality for a 16K increase in size. You
> can of course go back in either config and enable/disable just the
> features you need, but I don't know how you would do that
> non-interactively.

Yep, looks like there is no way to select configuration
non-interactively. The "menu randconfig" is somehow able to click
different options, so I guess it is just a matter of patching the build
system to support "make enable httpd". Not sure if it is C, shell or
make code that does the config management.
-- 
anatoly t.
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: Missing binaries / build system

2024-04-19 Thread tito
On Fri, 19 Apr 2024 05:01:45 -0500
Jeff Pohlmeyer  wrote:

> On Fri, Apr 19, 2024 at 4:29 AM anatoly techtonik  wrote:
> 
> > ./make defconfig
> > ./make_single_applets.sh HTTPD
> >
> > This works, but produces 50K binary instead of 34K when selecting
> > httpd in menuconfig interactively.
> 
> That is probably because "defconfig" enables a lot of features in the
> httpd applet that are disabled when you build with "allnoconfig"
> 
> Things like: Date header, Last-Modified header, Range requests, HTTP
> authentication, custom error pages, reverse proxying, GZIP encoding,
> and CGI scripting.
> 
> That's a lot of extra functionality for a 16K increase in size. You
> can of course go back in either config and enable/disable just the
> features you need, but I don't know how you would do that
> non-interactively.

Hi,
you can just copy the .config file to the build directory.
This will work as long as there are no new config options.

Ciao,
Tito

>  -- Jeff
> ___
> busybox mailing list
> busybox@busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox

___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: Missing binaries / build system

2024-04-19 Thread Jeff Pohlmeyer
On Fri, Apr 19, 2024 at 4:29 AM anatoly techtonik  wrote:

> ./make defconfig
> ./make_single_applets.sh HTTPD
>
> This works, but produces 50K binary instead of 34K when selecting
> httpd in menuconfig interactively.

That is probably because "defconfig" enables a lot of features in the
httpd applet that are disabled when you build with "allnoconfig"

Things like: Date header, Last-Modified header, Range requests, HTTP
authentication, custom error pages, reverse proxying, GZIP encoding,
and CGI scripting.

That's a lot of extra functionality for a 16K increase in size. You
can of course go back in either config and enable/disable just the
features you need, but I don't know how you would do that
non-interactively.

 -- Jeff
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: Missing binaries / build system

2024-04-19 Thread anatoly techtonik
On Thu, Apr 18, 2024 at 11:05 AM Jeff Pohlmeyer
 wrote:
>
> > Is there a way to select applets non-interactively
> > for build automation?
>
> Maybe like this?
>
> ./make_single_applets.sh HTTPD

It doesn't work without configuration. Says "No include/applets.h file".

./make defconfig
./make_single_applets.sh HTTPD

This works, but produces 50K binary instead of 34K when selecting
httpd in menuconfig interactively.
-- 
anatoly t.
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: Missing binaries / build system

2024-04-18 Thread Jeff Pohlmeyer
On Thu, Apr 18, 2024 at 12:09 AM anatoly techtonik  wrote:

> Is there a way to select applets non-interactively
> for build automation?

Maybe like this?

./make_single_applets.sh HTTPD

( You can use more than one UPPERCASE applet name
to build several standalone applets at once  )

-- Jeff
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: Missing binaries / build system

2024-04-17 Thread anatoly techtonik
On Tue, Apr 16, 2024 at 10:02 PM  wrote:
>
>
> To build a busybox with just one applet
>  make allnoconfig
>  make menuconfig
>  # select the applet(s) you need
>  make
>
> ./busybox will then support the selected applets.
>
> HTH

Thanks. That helps. Got 84K busybox, then run
make_single_applets.sh
and got busybox_HTTPD 34K. Pretty awesome. =)

Is there a way to select applets non-interactively
for build automation?

-- 
anatoly t.
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: Missing binaries / build system

2024-04-16 Thread rep . dot . nop
On 16 April 2024 20:13:15 CEST, anatoly techtonik  wrote:
>Hi,
>
>I want to use busybox_HTTPD as a minimal web server for serving
>static files in a container.
>
>busybox_HTTPD   2022-01-17 18:54   97K
>
>Unfortunately, the binaries https://busybox.net/downloads/binaries/
>are only available for unstable 1.35.0
>
>I tried to see what it takes to compile it (and make it really minimal)
>for the latest stable 1.36.1 release, but my knowledge of Makefile
>compilation toolchain is insufficient for the task.
>
>If there is a description of build automation that is used to make
>binary releases, maybe I can send some patches to fix it,


To build a busybox with just one applet
 make allnoconfig
 make menuconfig
 # select the applet(s) you need
 make

./busybox will then support the selected applets.

HTH
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox