View Single Post
free's Avatar
Posts: 739 | Thanked: 159 times | Joined on Sep 2007 @ Germany - Munich
#11
Creating a repo...

One way of doing:

Local:
mkdir pool
mv *.deb pool/

In pool, create this file (genlist.sh)

PHP Code:
#!/bin/sh
cd .. ; dpkg-scanpackages pool /dev/null gzip -9c pool/Packages.gz ; ) 
Modify /scratchbox/devkits/debian-etch/bin/dpkg-scanpackages so that the icon is included:

my @fieldpri= ('Package',
'Source',
'Version',
'Priority',
'Section',
'Essential',
'Maintainer',
'Pre-Depends',
'Depends',
'Recommends',
'Suggests',
'Conflicts',
'Provides',
'Replaces',
'Enhances',
'Architecture',
'Filename',
'Size',
'Installed-Size',
'MD5sum',
'Description',
'Origin',
'Bugs',
'Maemo-Icon-26'
);


Server:
Create two directories:
/pool
/dists/chinook/user/binary-armel/ ( your repo will be reference like mine: chinook, user, only binary-armel and dists are mandatory afaik)


When you want to upload a new deb:
cd pool
./genlist.sh
Upload the new deb to remote pool/
Upload packages.gz to remote /dists/chinook/user/binary-armel/

That's it! no more excuse ;p

More dirty way:
Put the pool in binary-armel

A bit cleaner when you have too many packages, you can create a trivial subdirectory structure:
pool/lib -> libs
pool/a -> packages beginning with a
pool/b -> packages beginning with b
[..]


For this, use this script (that you can also put in directory pool, local)
PHP Code:
#!/bin/bash
mv lib*.deb lib2> /dev/null
ls 
-*.deb 2> /dev/null | while read i 
do
        
l=${i:0:1}
        
mkdir -p $l
        mv $i $l
done 
When you have your new deb, put it in pool/ , launch the above script, launch genlist, upload packages.gz to the same place as mentionned before and upload the package to pool/a or pool/b ,..

If you want your application to be seen in app manager, it needs the user/ prefix on the section line in debian/control (take the binary package, not the source one)
Section: user/admin
If it's not there, people will need to dl it using apt-get or use red-pill.

If you want an icon in app manager:
Create a 26x26 png image and uuencode it:
cat icon.png | uuencode -m -

add a line in debian/control:
XB-Maemo-Icon-26: <here put the result of uuencode, no space, no end of line>

That was for creating a repo. Packaging for debian/fedora/.. on the other side is a vast subject... highly depends on the upstream sources.

Last edited by free; 2008-02-04 at 19:14.