[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

creating a simple private repository with reprepro



Hi,
I must first apologize for the somewhat lengthy post, but you'll see most of it is just directory structures which you can probably skip.

Here goes:
I have a private debian package which I want publish in binary format.
I want to supply 2 binary versions:
1. precise/amd64
2. trusty/amd64

My packages are created with debuild and pbuilder and seem to be setup correctly (I tested).

The problem happens when I'm trying to create my repository - more precisely, when I'm trying to add the second package to the repository.

This is my raw directory structure (the output of debuild and pbuilder):

ubuntu@ubuntu-build:~/dev/git/foo/_tmp$ ll -R
.:
total 16
drwxrwxr-x 4 ubuntu ubuntu 4096 Mar  1 08:18 ./
drwxrwxr-x 9 ubuntu ubuntu 4096 Feb 26 11:41 ../
drwxrwxr-x 4 ubuntu ubuntu 4096 Feb 26 10:02 precise/
drwxr-xr-x 4 root   root   4096 Feb 26 10:12 trusty/

./precise:
total 16
drwxrwxr-x 4 ubuntu ubuntu 4096 Feb 26 10:02 ./
drwxrwxr-x 4 ubuntu ubuntu 4096 Mar  1 08:18 ../
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 26 09:04 amd64/

./precise/amd64:
total 412
drwxrwxr-x 2 ubuntu ubuntu   4096 Feb 26 09:04 ./
drwxrwxr-x 4 ubuntu ubuntu   4096 Feb 26 10:02 ../
-rw-r--r-- 1 ubuntu ubuntu  19173 Feb 26 09:04 foo_1.0.1_amd64.build
-rw-r--r-- 1 ubuntu ubuntu   1415 Feb 26 09:04 foo_1.0.1_amd64.changes
-rw-r--r-- 1 ubuntu ubuntu  20174 Feb 26 09:04 foo_1.0.1_amd64.deb
-rw-r--r-- 1 ubuntu ubuntu    677 Feb 26 09:03 foo_1.0.1.debian.tar.gz
-rw-r--r-- 1 ubuntu ubuntu    794 Feb 26 09:03 foo_1.0.1.dsc
-rw-rw-r-- 1 ubuntu ubuntu 359985 Feb 26 09:03 foo_1.0.1.orig.tar.gz

./trusty:
total 16
drwxr-xr-x 4 root   root   4096 Feb 26 10:12 ./
drwxrwxr-x 4 ubuntu ubuntu 4096 Mar  1 08:18 ../
drwxr-xr-x 2 root   root   4096 Feb 26 10:08 amd64/

./trusty/amd64:
total 392
drwxr-xr-x 2 root   root     4096 Feb 26 10:08 ./
drwxr-xr-x 4 root   root     4096 Feb 26 10:12 ../
-rw-rw-r-- 1 ubuntu ubuntu   1415 Feb 26 10:08 foo_1.0.1_amd64.changes
-rw-r--r-- 1 ubuntu ubuntu  20160 Feb 26 10:08 foo_1.0.1_amd64.deb
-rw-r--r-- 1 ubuntu ubuntu    677 Feb 26 10:08 foo_1.0.1.debian.tar.gz
-rw-r--r-- 1 ubuntu ubuntu    794 Feb 26 10:08 foo_1.0.1.dsc
-rw-rw-r-- 1 ubuntu ubuntu 359985 Feb 26 09:03 foo_1.0.1.orig.tar.gz



Now, when I run:
reprepro includedeb precise ~/dev/git/foo/_tmp/precise/amd64/foo_1.0.1_amd64.deb

I get this nice repository structure:
drwxrwxr-x 6 ubuntu ubuntu 4096 Feb 26 12:13 ./
drwxrwxr-x 9 ubuntu ubuntu 4096 Feb 26 11:41 ../
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 26 12:11 conf/
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar  1 08:08 db/
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 dists/
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 pool/

./conf:
total 16
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 26 12:11 ./
drwxrwxr-x 6 ubuntu ubuntu 4096 Feb 26 12:13 ../
-rw-rw-r-- 1 ubuntu ubuntu  286 Feb 26 12:11 distributions
-rw-rw-r-- 1 ubuntu ubuntu   41 Feb 26 11:41 options

./db:
total 120
drwxrwxr-x 2 ubuntu ubuntu  4096 Mar  1 08:08 ./
drwxrwxr-x 6 ubuntu ubuntu  4096 Feb 26 12:13 ../
-rw-rw-r-- 1 ubuntu ubuntu 16384 Feb 26 12:13 checksums.db
-rw-rw-r-- 1 ubuntu ubuntu 16384 Feb 26 12:13 contents.cache.db
-rw-rw-r-- 1 ubuntu ubuntu 40960 Feb 26 12:13 packages.db
-rw-rw-r-- 1 ubuntu ubuntu 16384 Feb 26 12:13 references.db
-rw-rw-r-- 1 ubuntu ubuntu 20480 Feb 26 12:13 release.caches.db
-rw-rw-r-- 1 ubuntu ubuntu    32 Mar  1 08:08 version

./dists:
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 ./
drwxrwxr-x 6 ubuntu ubuntu 4096 Feb 26 12:13 ../
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 precise/

./dists/precise:
total 16
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 ../
drwxrwxr-x 4 ubuntu ubuntu 4096 Feb 26 12:13 main/
-rw-rw-r-- 1 ubuntu ubuntu 1605 Feb 26 12:13 Release

./dists/precise/main:
total 16
drwxrwxr-x 4 ubuntu ubuntu 4096 Feb 26 12:13 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 ../
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 26 12:13 binary-amd64/

./dists/precise/main/binary-amd64:
total 16
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 26 12:13 ./
drwxrwxr-x 4 ubuntu ubuntu 4096 Feb 26 12:13 ../
-rw-rw-r-- 1 ubuntu ubuntu    0 Feb 26 12:13 Packages
-rw-rw-r-- 1 ubuntu ubuntu   20 Feb 26 12:13 Packages.gz
-rw-rw-r-- 1 ubuntu ubuntu  120 Feb 26 12:13 Release

./pool:
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 ./
drwxrwxr-x 6 ubuntu ubuntu 4096 Feb 26 12:13 ../
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 main/

./pool/main:
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 ../
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 p/

./pool/main/p:
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb 26 12:13 ../
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 26 12:13 foo/

./pool/main/p/foo:
total 44
drwxrwxr-x 2 ubuntu ubuntu  4096 Feb 26 12:13 ./
drwxrwxr-x 3 ubuntu ubuntu  4096 Feb 26 12:13 ../
-rw-rw-r-- 1 ubuntu ubuntu 34618 Feb 26 12:13 foo_1.0.1_amd64.deb



But when I run:
reprepro includedeb trusty ~/dev/git/foo/_tmp/trusty/amd64/foo_1.0.1_amd64.deb

I get this error:
~/dev/git/foo/_tmp/trusty/amd64/foo_1.0.1_amd64.deb: component guessed as 'main'
ERROR: '~/dev/git/foo/_tmp/trusty/amd64/foo_1.0.1_amd64.deb' cannot be included as 'pool/main/p/foo/foo_1.0.1_amd64.deb'.
Already existing files can only be included again, if they are the same, but:
md5 expected: f2d147640c6784c869fb10e1cdb5b579, got: fa4f535e0bf8a68464b6f276bf3c7c5e
sha1 expected: cec0a5544de71820e05d469f8de21eaed7e1c2ca, got: 335b27c4873f3766973a27ed103cd0a99dfb98ff
sha256 expected: 51f2e9a722c5fc265592d51c1c7c4f6ad9acf1454cbfa90c12873c53c0e8bba4, got: 42842f86dd2e256c781af00c26c5cd73de6636be9200a8359d3fd33f2e47ef6d
size expected: 34618, got: 20194
There have been errors!



I read somewhere that reprepro does not support having 2 files with the same name in a repo. is it true? even when the files are in different directories (for different distors)? No way to create pool subdirectories under pool?

I briefly inspected mini-dinstaller and mini-dak, but they seem a little overqualified for my simple scenario.
I like reprepro for its simplicity and the fact that it does the signing for me, but I really don't want to change package names for it to work.

So, my questiona are eventually:
1. is there a way for me to use reprepro without changing my .deb file names?
2. if not, what's the simplest alternative?


Thanks,
Asaf
 

Reply to: