Setting up a software repositoryHaving the official repository, HaikuPorts, is nice, but not all software fits there. Some software is not open source. Some is made with the yab buildfactory and the author does not want to distribute it in source code, even if it is open source. Some is just easier to package using the package command and not haikuporter. This does not prevent the software from being listed in HaikuDepot. What is required
Getting readyThe first step in accomplishing this goal should be to get haikuporter and the haikuports repository. Follow the steps described at the haikuports wiki. Since this repository is not going to be associated with the Haiku Project, do a TextSearch for "vendor" in the haikuporter directory and replace "Haiku Project" with an appropriate vendor string. You'll have to edit two files: DependencAnalyzer.py and Package.py. This will make all .hpkg files built with haikuporter have a vendor string that matches the new repository. Now make some packages to add to your repository, see the two articles "A gentle introduction to Haikuporter" (Part 1 and Part 2). Or use the "package" command if the requirements for the app are simple and it can be run within a read-only file system. Creating the repositoryThanks to KapiX for providing a script that makes creating a working repository extremely easy. Get this archive from http://fatelk.com/repo/reposetup.zip and then:
Note: All of the .hpkg files must have a vendor field in their ".PackageInfo" file that matches the information in your "example.info" file or the repository will not be built. Open a Terminal in the "my-repo" directory and type: chmod +x ./build.sh ./build.sh The "chmod" line is only needed the first time to make sure the script is executable. If all went as planned, you now have a "repo" directory that contains all the files for your repository. Final stepsAdd an index.html page to the "repo" folder with instructions on how to add/remove the repository to/from HaikuDepot. In my case: To add: To remove: It's also a nice touch to add links to other known repositories on the index.html page. Finally, upload all the files and folders to the URL specified in your "example.info" file. In my case, I upload the "repo" folder and all its contents to http://fatelk.com. Now, let everyone know your repository exists! |