<div dir="ltr">Hi,<br><br>I&#39;m just aware of one type of data to be set in ALPM. I&#39;m currently in talks with the ALPM / Pacman devs to find out if more is required.<br><br>ALPM at least needs:<br>1.) Which repositories to sync (core, extra, community, unstable, testing etc). I couldn&#39;t find a similar configuration option in PackageKit.<br>
2.) The Mirror URL for the specific repository (probably possible with RepoSetData).<br><br>Can SetRepoData be used for somethin like:<br><pre class="programlisting">RepoSetData (&quot;core&quot;, &quot;set-download-url&quot;, &quot;<a href="http://ftp.gigabit.nu/core/os/i686/">http://ftp.gigabit.nu/core/os/i686/</a>&quot;);<br>
</pre><br>In example:<br>Step one, setting a ALPM repository to use: &quot;core&quot;: <br>Function to use: pmdb_t *alpm_db_register_sync(const char* treename);<br>Example: pmdb_t* coredb = alpm_db_register_sync(&#39;core&#39;);<br>
<br>Step two, setting the repository server:<br>Function to use: int alpm_db_setserver(pmdb_t *db, const char *url);<br>Example: alpm_db_setserver(coredb, &#39;<a href="http://ftp.gigabit.nu/core/os/i686&#39;">http://ftp.gigabit.nu/core/os/i686&#39;</a>);<br>
<br>So basically, I need a way to supply the database name, as well as the database mirror url (you probably name it download-url) from PackageKit to the ALPM backend.<br><br>Now, I&#39;ll have to look closer at the RepoSetData method, and what&#39;s called with which options in the backend, if the frontend calls RepoSetData.<br>
<br>An other way:<br>I&#39;m not quite sure if this will work out.<br>ALPM has the option, to set additional cache directories<br>alpm_option_add_cachedir(const char* cachedir);<br><br>Means, that this directory will be used as an additional cache directory.<br>
I don&#39;t know how ALPM will react if i just add a cachedir, and call the sysupgrade function like<br>alpm_sync_sysupgrade (pmdb_t *db_local, alpm_list_t *dbs_sync, alpm_list_t **syncpkgs);<br><br>I don&#39;t think ALPM has ever been used in this way. The pacman devs will be able to answer this (hopefully).<br>
<br>Kind regards,<br>Georg<br><br><div class="gmail_quote">On Tue, Sep 2, 2008 at 10:51 AM, Richard Hughes <span dir="ltr">&lt;<a href="mailto:hughsient@gmail.com">hughsient@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On Mon, 2008-09-01 at 20:57 +0200, Georg Grabler wrote:<br>
&gt; Now, to clarify the &quot;arch&quot; point of view:<br>
&gt; The Lib (libalpm) shall not care about any configuration or<br>
&gt; configuration file handling. Therefore, the packagemanagers are<br>
&gt; intended to read the configuraiton (basically the mirrors, temp dirs,<br>
&gt; etc), and provide ALPM with the necessary information.<br>
<br>
</div>Right.<br>
<div class="Ih2E3d"><br>
&gt; Now, PackageKit does not support any interface, to apply mirror<br>
&gt; settings to the backend (at least I didn&#39;t find any similar<br>
&gt; functionality - I have confess that I&#39;m quite new to the code of<br>
&gt; packagekit though). I see two options for this:<br>
&gt; 1.) Reading the configuration of the &quot;main&quot; packagemanager &quot;pacman&quot; in<br>
&gt; arch linux (/etc/pacman.conf, /etc/pacman.d/mirrorlist).<br>
&gt; 2.) Giving PackageKit the possibility to set mirrors, and to care<br>
&gt; about this configuration.<br>
<br>
</div>Right, so you are reading and writing repo configuration.<br>
<div class="Ih2E3d"><br>
&gt; For #1, I&#39;m not sure if this would apply for forks of Arch Linux as<br>
&gt; well - probably not.<br>
&gt; For #2, quite a lot of configuration can be done. I&#39;m not sure right<br>
&gt; now, how many interfaces it would actually need.<br>
<br>
</div>Indeed, making abstract methods for this would be a giant waste of time<br>
-- and there&#39;s no need to.<br>
<div class="Ih2E3d"><br>
&gt; What would be the perefered way?<br>
<br>
</div>Well, at the moment there is RepoSetData [1] which allows you to set<br>
backend specific strings using the PackageKit API. There&#39;s currently no<br>
RepoGetData function, as I figured it wouldn&#39;t be needed.<br>
<br>
What exact data are you trying to get and set?<br>
<div class="Ih2E3d"><br>
&gt; We&#39;re generally interested in a packagekit backend, since the<br>
&gt; developers of the GUI Shaman will be using PackageKit in version 2 of<br>
&gt; their package manager GUI (basically the first QT/KDE gui which did<br>
&gt; exist for arch linux), to archive the goal of having a KDE package<br>
&gt; manager supporting multiple distributions.<br>
<br>
</div>You&#39;ve seen KPackageKit[2], right?<br>
<br>
Richard.<br>
<br>
[1] <a href="http://www.packagekit.org/gtk-doc/Transaction.html#Transaction.RepoSetData" target="_blank">http://www.packagekit.org/gtk-doc/Transaction.html#Transaction.RepoSetData</a><br>
[2] <a href="http://www.packagekit.org/pk-screenshots.html#kde" target="_blank">http://www.packagekit.org/pk-screenshots.html#kde</a><br>
<br>
<br>
_______________________________________________<br>
PackageKit mailing list<br>
<a href="mailto:PackageKit@lists.freedesktop.org">PackageKit@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/packagekit" target="_blank">http://lists.freedesktop.org/mailman/listinfo/packagekit</a><br>
</blockquote></div><br></div>