0

I'm in the process of designing a high level revision control system that is going to update users when an update is available for various software on our systems.

But i need more of a low level understanding of how updates are implemented by Apache typically for its products. Is Apache Server, for example, typically patched like Windows therefore needing multiple updates or are patches lumped together and a new version is released?

if more information is needed please let me know.

thanks

1 Answers1

2

The Apache Software Foundation, as far as I know, does not use any binary patching system. Each time a new release is done, the relevant files are packaged, the obtained package is signed, uploaded to release mirrors, and is ready to be downloaded by users.

Apache httpd (the web Apache server) does not usually provide a binary distribution at all, but only source distribution. Binary distributions (compiled files, like .exe ready to run) are provided by others, for example Linux distributions compile them for various Linux platforms. I don't know if any of these distributions provide progressive binary patches.

Apache Tomcat instead do provide binary distributions, since being written in Java it is (usually) cross platform compatible. However, being the source available, many distributions provide Tomcat packaged in different ways, for example most Linux distributions separate the core server, the documentation, the "manager" webapp etc..

Also keep in mind the versioning system used inside the Apache Software Foundation. It is usually based on major.minor.revision . For example, version 1.2.3 means major version 1, minor version 2, revision 3.

Revision updates are (should be) both binary and compile compatible, so updating from a lower revision to a higher revision should pose no problem.

Minors are usually source compatible (your custom code using Apache Httpd or Apache Tomcat internals will still compile and probably behave correctly), but not binary compatible (your custom code needs to be recompiled). So an update may be dangerous, http modules and tomcat customization may need to be recompiled.

However, given that Apache Tomcat is developed in Java which uses late binding, this is usually less frequent than for Apache Httpd modules .. but it also depends how it was linked.

Major versions are usually totally incompatible with previous ones. Everything may change, including configuration file formats, core internals etc.. So, updating automatically a major version is usually a bad move if not properly tested.

If you want to setup an automatic update of Apache Httpd and Apache Tomcat on your customer's system, it heavily depend on the platform you are targeting, since commonly both servers can run as services, are started by the root (Administrator) user, and similar complications make it not always a trivial task.

Most Linux distributions already have package managers that handle updates correctly most of the time. On windows there are some packaged Apache Httpd, commonly also bundled with PHP, MySql and other software used for web development, that perform self updates.