Getting YaST to read your own community repos

Ever wonder how the community repos in yast works? Well, it works by reading off the control file found in /etc/YaST/control.xml. Now since this is an xml file, it is human readable.

Now what you’re looking for in the control file is


<external_sources_link>
http://download.opensuse.org/YaST/Repos/openSUSE_111_Servers.xml
</external_sources_link>

Which in turn looks like this

<productDefines>
−
<servers config:type="list">
−
<item>
−
<link>
http://download.opensuse.org/YaST/Repos/_openSUSE_111_Default.xml
</link>
<installation_repo config:type="boolean">true</installation_repo>
<official config:type="boolean">true</official>
</item>
−
<item>
−
<link>
http://download.opensuse.org/YaST/Repos/_openSUSE_111_Additional.xml
</link>
<official config:type="boolean">true</official>
</item>
−
<item>
−
<link>
http://opensuse-community.org/openSUSE_111_Community_Additional.xml
</link>
<official config:type="boolean">false</official>
</item>
</servers>
</productDefines>

OK, so what if you wanted to do your own. You can do it locally or on a website. Basically, just follow the rules of xml. Personally, I recommend a website. Put said website into the control file, but make sure that your website conforms to these guidelines.

So if you wanted to add other repos, other than what is listed in the control file, take the

<productDefines>
−
<servers config:type="list">
−
<item>
−
<link>
http://download.opensuse.org/YaST/Repos/_openSUSE_111_Default.xml
</link>
<installation_repo config:type="boolean">true</installation_repo>
<official config:type="boolean">true</official>
</item>
−
<item>
−
<link>
http://download.opensuse.org/YaST/Repos/_openSUSE_111_Additional.xml
</link>
<official config:type="boolean">true</official>
</item>
−
<item>
−
<link>
http://opensuse-community.org/openSUSE_111_Community_Additional.xml
</link>
<official config:type="boolean">false</official>
</item>
</servers>
</productDefines>

and expand on it.

Since it’s xml, I won’t go into detail. If you need help, post back and ask.