Notices


Reply
Thread Tools
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.
 
pipeline's Avatar
Posts: 693 | Thanked: 502 times | Joined on Jul 2007
#12
Ok nevermind, 2008 is calling and i need to get back
 
Benson's Avatar
Posts: 4,930 | Thanked: 2,272 times | Joined on Oct 2007
#13
Originally Posted by Tak View Post
Both debian and maemo disagree with you. Dependency management is much of the point of a package system to begin with.
No, that's the point of overly-complicated package systems. The point of a package system is to take the several files belonging to this project and dump them all in the appropriate places, and run any scripts necessary for installation. Dependencies and how to satisfy them are not part of packaging in general. They can be handled either automatically or manually outside the package system.

Since Debian, and hence Maemo, has integrated dependency into their packaging system, you should do it when packaging for them. But it's important to realize that that's only a particular choice made in this distro, and not some universal truth, nor necessarily even a good idea.
 
Khertan's Avatar
Posts: 1,012 | Thanked: 817 times | Joined on Jul 2007 @ France
#14
There is no reason for any developer to set up his own repo; we have garage extras, of which we should make as much use as possible.
There is some ... We can't upload deb easily to the extra repos ... could you do it from the tablett ? no ....
 
pipeline's Avatar
Posts: 693 | Thanked: 502 times | Joined on Jul 2007
#15
Well thanks to khertan i figured out why my packages werent repo friendly (or repo tolerant). Thanks to others for help also, especially genlist scripts.

Reason it wouldnt work though is that most of my packages dont need extra libs other than whats on firmware so i left blank. dpkg-scanpackages doesnt like this, so i set dependency to libc6 and that works... the repo accepts it.

So putting aside the 'best way to do things', would adding a depency to libc6 (no version just existence) keep the package compatible with bora as well as chinook? what about gregale? If not can anyone suggest the most basic library to depend on for each platform, just so that this field is not totally random?

Also i noticed that one of my packages installs fine but the package name is lowercase once installed. So i uninstall and reinstall from repo... same thing the package name is capitalized in repo but not once installed... this means its still listed in 'available applications' as well as installed applications. Is there some leftover data i could delete to rid of this of should i use lowercase for package names.

thx-

Last edited by pipeline; 2008-02-07 at 23:35.
 
free's Avatar
Posts: 739 | Thanked: 159 times | Joined on Sep 2007 @ Germany - Munich
#16
If it doesn't depend on anything, why don't you remove the _complete_ dependency line? ("Dependency:" is not accepted by dpkg). There are some packages that depend on nothing, they simply have no dep line.

And libc6 is usually there, at least running dpkg or apt without libc6 is quite tricky
 
pipeline's Avatar
Posts: 693 | Thanked: 502 times | Joined on Jul 2007
#17
Thanks, free... sounds like thats what i want to do. Good to know they allow this.
 
Benson's Avatar
Posts: 4,930 | Thanked: 2,272 times | Joined on Oct 2007
#18
Originally Posted by free View Post
And libc6 is usually there, at least running dpkg or apt without libc6 is quite tricky
OK, then, shouldn't they depend on dpkg, which then depends on libc6? In case someone rewrites dpkg in python...
 
pipeline's Avatar
Posts: 693 | Thanked: 502 times | Joined on Jul 2007
#19
Thanks Tak, any idea if lib6 dependency will work for all maemo os versions? A few of my packages target cpu (at compile time) for vfp or not and i would like a 770 quake pkg to install on gregale or bora, possibly even future 2008he.

Most are c based though.

I've got a few bora packages too that i'd want to verify that dependency works with (i dont have an os2007 to check anymore... nor 2006)
 
aflegg's Avatar
Posts: 1,463 | Thanked: 81 times | Joined on Oct 2005 @ UK
#20
Or, if you really don't have any dependencies (which, of course, you do), use osso-software-version or some other meta-package.
__________________
Andrew Flegg -- mailto:andrew@bleb.org | http://www.bleb.org
Now known as
Jaffa
 
Reply


 
Forum Jump


All times are GMT. The time now is 02:38.