CustomBuild missing applications - bug or expected behavior?

sparek

Verified User
Joined
Jun 27, 2019
Messages
476
It seems that Custombuild doesn't appear to function nicely if DA_SKIP_CUSTOMBUILD=true environment is passed during DirectAdmin setup.

Or perhaps this is the expected behavior?

Installing DirectAdmin and skipping CustomBuild in the install process, fails to install things like Apache, Exim, Dovecot, Pure-FTPd (not necessarily an exhaustive list) - which that's the expected behavior, I would think.

But after the DirectAdmin setup is finished, running

/usr/local/directadmin/custombuild/build versions

Doesn't mention anything about Apache, Exim, Dovecot, Pure-FTPd needing to be installed. Despite those options being defined in /usr/local/directadmin/custombuild/options.conf

webserver=apache
exim=yes
dovecot=yes
ftpd=pureftpd


Perhaps this is the intended behavior, but seems a miscue to me - but would certainly entertain others thoughts.

The argument can definitely be made that since DirectAdmin was installed with DA_SKIP_CUSTOMBUILD=true that the installer should know that they have to install Apache (or whatever webserver they want to use), Exim, Dovecot, and Pure-FTPd (if so desired). But it's puzzling to me that if those options are in /usr/local/directadmin/custombuild/options.conf then why isn't CustomBuild picking up that they aren't installed and would thus need an update?

This can be worked around just by installing the individual softwares themselves - I would need to compile an exhaustive list of software that needs to be installed. This is doable. But begs the question, what if a new core piece of software gets added that needs to be installed and I forget to add it to this exhaustive list of post DirectAdmin to-be-installed softwares?

Kind of curious as to what the rest of the community thinks about this.
 
Kind of curious as to what the rest of the community thinks about this.
Well... since you ask the community. I think it's working as designed because....

But it's puzzling to me that if those options are in /usr/local/directadmin/custombuild/options.conf then why isn't CustomBuild picking up that they aren't installed and would thus need an update?
Because you don't want to have CB pick that up, since you choose the DA_SKIP_CUSTOMBUILD=true which takes care that custombuild is not used.
That's also in the docs:
DA_SKIP_CUSTOMBUILD : skip all the CustomBuild actions

I think this option is specifically made for people who want to install DA quickly and then use SSH to be able to set in options.conf what they do and don't want to have installed or different version/application. This is mostly something advanced users do, so then you don't expect a reminder that nothing is installed, as you yourself chose not to install it.

So the question is rather why you should use the option to -not- install stuff, while you want to have stuff installed. :)

FYI:
 
I think this option is specifically made for people who want to install DA quickly and then use SSH to be able to set in options.conf what they do and don't want to have installed or different version/application.
This is the exact reason I'm using DA_SKIP_CUSTOMBUILD=true during install.

But... all of the options for Apache, Exim, Dovecot, PureFTPd, and MariaDB are then set in the /usr/local/directadmin/custombuild/options.conf file after DirectAdmin is installed.

The point is - that even with those options set in /usr/local/directadmin/custombuild/options.conf running /usr/local/directadmin/custombuild/build versions doesn't show any of those applications as needing to be installed.

Unless I'm missing something.

I'm more of the thinking that this is a miscue with Custombuild - but that may just be me.

If the intention of Custombuild is to keep software up to date and show software that has available updates. Then what is Custombuild doing when it reads the /usr/local/directadmin/custombuild/options.conf finds that webserver=apache and finding that /usr/sbin/httpd is not there. Does it just give up and assume that Apache isn't wanting to be installed? Is there other software defined in /usr/local/directadmin/custombuild/options.conf that is not being reported as having an update candidate because its binary is missing?

To me, if Custombuild is finding webserver=apache and /usr/sbin/httpd does not exist, then that's a tell-tale sign that Apache needs to be compiled.

That's the reasoning for my line of thinking. But that doesn't mean that my line of thinking is worth the effort to resolve. Perhaps this just needs to be understood that if you use DA_SKIP_CUSTOMBUILD=true when installing DirectAdmin - then you need to force an explicit call to Custombuild for each of those softwares, i.e. /usr/local/directadmin/custombuild/build apache - it's not really an issue for me to employ this workaround, aside from the potential that there may be other software that is missed.
 
But... all of the options for Apache, Exim, Dovecot, PureFTPd, and MariaDB are then set in the /usr/local/directadmin/custombuild/options.conf file after DirectAdmin is installed.
Correct, probably because you must have some setup so one can know what to change or use, right? If there is no options.conf or all is empty, one wouldn't know what to fill in there, especially people who have a bit less knowledge.

The ./build versions command only displayes which versions are installed, not which versions should be installed. If nothing is installed, it can't be shown which version is installed.
Also there is no need. DA is the panel, the rest is extra. If one just wants to use the panel to learn or see the contents of the panel, you don't need to install all the other stuff.
I still don't understand why there should be a need to display that certain applications need to be installed if one chooses himself to just not install any applications to begin with.
So to me this sounds logical as it is working now, but that may only just be me.

If the intention of Custombuild is to keep software up to date and show software that has available updates.
Yes if you use it, not if you choose not to. :)

To me, if Custombuild is finding webserver=apache and /usr/sbin/httpd does not exist, then that's a tell-tale sign that Apache needs to be compiled.
Not to me. Because you specifically choose not to. If this presence would override your specific choice not to use it, then it the skip option would be obsolete.
And if one still wants to install everyting, only thing to do is to use the ./build all d command.

then you need to force an explicit call to Custombuild for each of those softwares, i.e. /usr/local/directadmin/custombuild/build apache
No you can use the ./build all d and then you won't miss anything.
The skip option is just intended so you can do things manually. You might not want to miss something, so use that ./build all d command, but others might only want to install FTP or maybe only apache with mysql and not exim and other things. So it would not be logic to have custombuild do things, which before you made the choice of custombuild to skip it's work.
That is just choosing to wanting to do things manually. And in manual cases, you need to know what you are doing or want to install or not.

I wouldn't want a message like "mysql needs to be installed" while maybe I just used the skip option because I only want DNS and Exim and Apache for example.

Anyway, that's my point of view of it, to me this is logical and working as designed and intended.

But maybe others see it a different way.
 
The ./build versions command only displayes which versions are installed, not which versions should be installed. If nothing is installed, it can't be shown which version is installed.

I think I could actually get behind this explanation. EXCEPT... /usr/local/directadmin/custombuild/build versions was telling me that ModSecurity was out of date and ModSecurity wasn't installed (yet). It can't be installed without Apache (or maybe another webserver, can't really speak to that). That's actually what keyed me in on that Apache wasn't installed.

Just seems like there's some wires that are crossed.

If /usr/local/directadmin/custombuild/options.conf has modsecurity=yes then /usr/local/directadmin/custombuild/build versions is going to report that ModSecurity is out of date even if ModSecurity isn't currently installed.

But if /usr/local/directadmin/custombuild/options.conf has dovecot=yes and Dovecot is not installed then /usr/local/directadmin/custombuild/build versions provides no mention that Dovecot is out of date.

Hoping this isn't coming across as confrontational. My aim is more constructive conversation. I think for my particular case (I'm working on compiling a checklist/procedure for setting up DirectAdmin servers for our hosting company) I think I just need to include explicit compiles of Apache, Exim, Dovecot, PureFTPd, and MariaDB. Perhaps someone else later down the line runs into this question and maybe this thread will help them.
 
If /usr/local/directadmin/custombuild/options.conf has modsecurity=yes then /usr/local/directadmin/custombuild/build versions is going to report that ModSecurity is out of date even if ModSecurity isn't currently installed.
Yes you are right. It should not mention that either in that case. Agreed. It's either mentioning or not mentioning. I was say not to mention it so then there should be no mentioning of ModSecurity being out of date either.

Hoping this isn't coming across as confrontational.
Ofcourse not! At least not on my side, no worries! I hope my reply isn't either.
I'm just explaining my point of view as why I see it's working as designed, as you asked. And you are bringing up why you see differently or that there might be changes needed, asking for points of view from others. Nothing wrong with that. No worries. :)

To me the conversation is interesting and constructive, because one can always learn from other viewpoints. And with the ModSecurity statement we surely agree that this is something which might need fixing in either way.
I think conversations like this are very good for people trying to do what you do, setting up checklists and procedures. Things (also setup) need to be consistend for that, and the build versions command does not seem consistent now.

Perhaps someone else later down the line runs into this question and maybe this thread will help them.
We are in fullly agreement of that too.
 
Back
Top