Re: Missing binaries / build system
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
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
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
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
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
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
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
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
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