How to run your own package repository?


I am soon going to start rolling my own. But I'd like to compile most of things as installable modules. For that I need to run a package repository. Are there instructions for that somewhere?

Also, what is an exact definition of a package feed? Is there a glossary somewhere?

Found it here:

I am still stuck with it. I'd like to compile all the packages as packages and then have the gateway fetch them from my own server. Is there anywhere any instruction on how to go on about this?

Especially it seems that there are no OpenFlow-related packages readily available in the public package feeds. But I see them in the menuconfig. And I'd like to be able to compile everything and then install as I go. I dislike the idea of having to compile everything into the image.

Also, how do I do that?

I have compiled linux kernels since the 90's, so I know what is <M> and <*>, but does that have similar meaning with packages, i.e. <M> builds as a package, and <*> builds into the image?

But you never go beyond this ...
Because LEDE and OpenWRT are using git you can simple add/use (whatever you like) as "remote origin" for git
Please read common git documentation (on I think) to do this.

Some advice here :
don't use the "master" branch to work on, use some other name (create/choose one)
It is also common that "master" is your branch follows origin, in the case LEDE or OpenWRT.

I don't quite understand what you are trying to say.

Why would I want to add whatever I like as remote origin?

Why should I not use the master branch? What should I use instead?

LEDE Project as I said uses git as version control system aka VCS
So you can create your own repository and add this to LEDE with
git remote add $name $url
and/or create a local branch
git checkout -b $name
This should also work for the feeds i.e. in

So normally if you work alone and on one machine, you need only to create a branch.

Because it's common and you will/want follow the development of LEDE.
And with this approach it's very easy to rebase (*) your changes.

Maybe it takes a (very) long time to write your stuff and you want to upstream this, but in between this time someone other than you changes some lines of code you worked on. This patch will crash and the maintainer gets annoyed.

Did you read ??

Make your bin/ directory available via HTTP and add it as repository source to /etc/opkg/customfeeds.conf.

Thanks. I did figure this out and started setting nginx onto my Ubuntu development machine. Then changed plans and installed a dedicated virtual machine for all the LEDE fun, but am not done with it yet.

It is a good thing to have this on record here. Maybe this could be added to the wiki somehow somewhere.

No. I know the basic idea of git. There is too much to read for solving this simple problem. Also, I am not trying to develop anything for now. My idea is just to be able to compile images and packages to my liking.

OpenWRT Chaos Calmer had some miscompiled packages that I needed (i.e. kernel version in image and in packages had a mismatch for some reason). To avoid this, and the long long delay that made to my hobbies, I decided to learn to roll my own.

Can anyone clarify this? How should I interpret the choice with packages?

Yes. M just compiles it and creates the .ipk package (to be installed woth opkg), while "*" includes the compiled package in the firmware.

That is naturally also explained in the wiki...