Recently I was assigned to work on a streaming server. Working from the original development platform, we applied patches via shell scripts to transform source files — using patches on the original source code to generate modified files, then compiling those into the required libraries or executables.
At first I didn’t think much about why this approach was used, but I’ve recently started to appreciate its advantages.
The original source files we need are open-source packages downloadable from the internet. To track our modifications, we use the diff command to create patch files. When we combine multiple application components together, we end up with a collection of tarballs and patch files. We then manage them with shell scripts organized into three types:
- EXTRACT — extract tarballs
- MAKE — build all applications
- BUILD — move output to the target directory
This approach makes the overall project structure clear and easy to understand. Currently, I’m trying to use this method to reconstruct the same setup with upgraded versions of the component applications. If it builds cleanly, future upgrades should be much easier.
Of course, this isn’t about the active development process — it’s about tidying up the project at a certain maturity point. The goal is to hand off the project to someone else in a state where they can quickly understand the system architecture.
Comments & Feedback