[arch-dev-public] Divide and Konquer - Splitting KDE packages

Allan McRae allan at archlinux.org
Thu Jan 22 21:03:38 EST 2009


Allan McRae wrote:
> Aaron Griffin wrote:
>> On Thu, Jan 22, 2009 at 7:35 PM, Aaron Griffin 
>> <aaronmgriffin at gmail.com> wrote:
>>  
>>> On Thu, Jan 22, 2009 at 7:00 PM, Aaron Griffin 
>>> <aaronmgriffin at gmail.com> wrote:
>>>    
>>>> On Thu, Jan 22, 2009 at 6:21 PM, Pierre Schmitz 
>>>> <pierre at archlinux.de> wrote:
>>>>      
>>>>> In addition to this we'll need to update our devtools and 
>>>>> db-scripts to handle
>>>>> those packages right. extrapkg should be quite simple; archrelease 
>>>>> and repo-
>>>>> add should work just fine; only the db-scripts will really fail 
>>>>> because they
>>>>> cannot guess the svn-dir just from the package name anymore.
>>>>>         
>>>> Hmmm, this one I will have to think about. The devtools changes should
>>>> be straightforward, but the db-scripts changes will not. Any ideas as
>>>> to how we can convert a packagename to an svn-dir name? I'd rather not
>>>> scan the whole repo...
>>>>       
>>> Best I can do after some initial hacking. Are there any assumptions we
>>> can make based on package name to trim the list so we don't have to
>>> check all PKGBUILDs?
>>>
>>> This is done without a checkout of the full repo, using svn list and 
>>> svn cat...
>>>
>>> $ ./pkgfind 3ddesktop #first package in the repos
>>> Repo scan complete in 51ms
>>> Package -> 3ddesktop/
>>>
>>> $ ./pkgfind bash
>>> Repo scan complete in 3809ms
>>> Package -> bash/
>>>
>>> $ ./pkgfind libpano13 #median package in the repos
>>> Repo scan complete in 44170ms
>>> Package -> libpano13/
>>>
>>> $ ./pkgfind zsync #2nd to last package in the repos
>>> Repo scan complete in 90997ms
>>> Package -> zsync/
>>>
>>> These numbers are just going to grow...
>>>
>>>     
>>
>> Optimization: If we assume the first letters match...
>>
>> $ ./pkgfind libpano13
>> Repo scan complete in 5555ms
>> Package -> libpano13/
>>
>> $ ./pkgfind zvbi
>> Repo scan complete in 599ms
>> Package -> zvbi/
>>
>> $ ./pkgfind zsync
>> Repo scan complete in 539ms
>> Package -> zsync/
>>
>> $ ./pkgfind yasm
>> Repo scan complete in 235ms
>> Package -> yasm/
>>
>> $ ./pkgfind perlxml
>> Repo scan complete in 3473ms
>> Package -> perlxml/
>>   
>
> Thomas suggested using symlinks in the svn directory?
> From his email: e.g. mysql/trunk
> mysql/repos/mysql/extra-{i686,x86_64}
> mysql/repos/mysql-clients/extra-{i686,x86_64}
> mysql/repos/mysql-libs/extra-{i686,x86_64}
> mysql-clients -> mysql
> mysql-libs -> mysql
>
> That should solve most of the trouble here.
>

I suppose I should clarify how I thought this would work.   The extrapkg 
etc. scripts just loop over ${pkgname[*]}, and commit it to the "main" 
directory, being whatever the package puts it in.  The packager would 
need to make the symlinks for their other packages, much like we 
currently have to set up pkgname/{trunk,repo} for any new package.  Then 
there should not need to be any changes in the db-scripts (I think...).

Allan





More information about the arch-dev-public mailing list