Creating the repositories

  1. sudo mkdir -p /srv/repo/private/{debian,ubuntu}/conf

  2. <VirtualHost *:80>
    
    ServerName cname.mydomain.com
    ServerAdmin webmaster@localhost
    
    DocumentRoot /srv/repo/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    
    Alias "/rug/" "/srv/repo/private/"
    <Directory "/srv/repo/rug/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128 # localhost
        <snip>
    </Directory>
    
    </VirtualHost>
    	  

    sudo /etc/init.d/apache2 reload

  3. Put this in conf/distributions:

    Label: Karmic Koala
    Codename: karmic
    Suite: oldstable
    Components: main mirrored
    Architectures: i386 amd64 source
    Origin: LWP-karmic
    Version: 9.10
    Description: LWP private repository
    Contents:
    SignWith: yes
    
    Label: Karmic Koala Experimental Packages
    Codename: karmic-experimental
    Suite: oldstable-experimental
    Components: main mirrored
    Architectures: i386 amd64 source
    Origin: LWP-karmic-experimental
    Version: 9.10
    Description: LWP private repository
    Contents:
    SignWith: yes
    
    Label: Lucid Lynx
    Codename: lucid
    Suite: stable
    Components: main mirrored
    Architectures: i386 amd64 source
    Origin: LWP-lucid
    Version: 10.04
    Description: LWP private repository
    Contents:
    Update: opera
    # google tilburg colorado medibuntu
    SignWith: yes
    
    Label: Lucid Lynx Experimental Packages
    Codename: lucid-experimental
    Suite: stable-experimental
    Components: main mirrored
    Architectures: i386 amd64 source
    Origin: LWP-lucid
    Version: 10.04
    Description: LWP private repository
    Contents:
    #Update:
    SignWith: yes
    	  

    ... and do:

    user@server:~$ cd /srv/repo/private/ubuntu
    user@server:~$ sudo reprepro export
    user@server:~$ find -type f
    ./conf/updates
    ./conf/distributions~
    ./conf/distributions
    ./dists/lucid-experimental/Contents-i386.gz
    ./dists/lucid-experimental/Release.gpg
    ./dists/lucid-experimental/Contents-amd64.gz
    ./dists/lucid-experimental/mirrored/source/Release
    ./dists/lucid-experimental/mirrored/source/Sources.gz
    ./dists/lucid-experimental/mirrored/binary-i386/Packages.gz
    ./dists/lucid-experimental/mirrored/binary-i386/Release
    ./dists/lucid-experimental/mirrored/binary-i386/Packages
    ./dists/lucid-experimental/mirrored/binary-amd64/Packages.gz
    ./dists/lucid-experimental/mirrored/binary-amd64/Release
    ./dists/lucid-experimental/mirrored/binary-amd64/Packages
    ./dists/lucid-experimental/main/source/Release
    ./dists/lucid-experimental/main/source/Sources.gz
    ./dists/lucid-experimental/main/binary-i386/Packages.gz
    ./dists/lucid-experimental/main/binary-i386/Release
    ./dists/lucid-experimental/main/binary-i386/Packages
    ./dists/lucid-experimental/main/binary-amd64/Packages.gz
    ./dists/lucid-experimental/main/binary-amd64/Release
    ./dists/lucid-experimental/main/binary-amd64/Packages
    ./dists/lucid-experimental/Release
    ./dists/karmic/Contents-i386.gz
    ./dists/karmic/Release.gpg
    ./dists/karmic/Contents-amd64.gz
    ./dists/karmic/mirrored/source/Release
    ./dists/karmic/mirrored/source/Sources.gz
    ./dists/karmic/mirrored/binary-i386/Packages.gz
    ./dists/karmic/mirrored/binary-i386/Release
    ./dists/karmic/mirrored/binary-i386/Packages
    ./dists/karmic/mirrored/binary-amd64/Packages.gz
    ./dists/karmic/mirrored/binary-amd64/Release
    ./dists/karmic/mirrored/binary-amd64/Packages
    ./dists/karmic/main/source/Release
    ./dists/karmic/main/source/Sources.gz
    ./dists/karmic/main/binary-i386/Packages.gz
    ./dists/karmic/main/binary-i386/Release
    ./dists/karmic/main/binary-i386/Packages
    ./dists/karmic/main/binary-amd64/Packages.gz
    ./dists/karmic/main/binary-amd64/Release
    ./dists/karmic/main/binary-amd64/Packages
    ./dists/karmic/Release
    ./dists/karmic-experimental/Contents-i386.gz
    ./dists/karmic-experimental/Release.gpg
    ./dists/karmic-experimental/Contents-amd64.gz
    ./dists/karmic-experimental/mirrored/source/Release
    ./dists/karmic-experimental/mirrored/source/Sources.gz
    ./dists/karmic-experimental/mirrored/binary-i386/Packages.gz
    ./dists/karmic-experimental/mirrored/binary-i386/Release
    ./dists/karmic-experimental/mirrored/binary-i386/Packages
    ./dists/karmic-experimental/mirrored/binary-amd64/Packages.gz
    ./dists/karmic-experimental/mirrored/binary-amd64/Release
    ./dists/karmic-experimental/mirrored/binary-amd64/Packages
    <snip>                

  4. Put this in conf/updates:

    Name: opera
    Method: http://deb.opera.com/opera
    #Fallback: ftp://klecker.debian.org/debian-security
    Suite: stable
    #VerifyRelease: A99951DAF9BB569BDB50AD90A70DAF536070D3A1|7EA391D72477203B58C04FBCB5D0C804ADB11277
    Architectures: amd64 i386
    Components: non-free>mirrored
    #UDebComponents: none
    	  

    ... then do:

    user@server:~$ sudo reprepro update
    Calculating packages to get...
    nothing new for 'lucid|mirrored|source' (use --noskipold to process anyway)
    nothing new for 'lucid|main|source' (use --noskipold to process anyway)
    nothing new for 'lucid|main|amd64' (use --noskipold to process anyway)
    nothing new for 'lucid|main|i386' (use --noskipold to process anyway)
    Getting packages...
    Installing (and possibly deleting) packages...
    Exporting indices...
    user@server:~$ find -type f|grep pool
    ./pool/mirrored/o/opera/opera_10.10.4742.gcc4.qt3_i386.deb
    ./pool/mirrored/o/opera/opera_10.10.4742.gcc4.qt3_amd64.deb

  5. user@server:~$ sudo groupadd packagers
    user@server:~$ sudo addgroup user packagers
    Adding user `user' to group `packagers' ...
    Adding user user to group packagers
    Done.

    user@server:~$ sudo chgrp -R packagers /srv/upload
    user@server:~$ sudo chmod -R g+wrx /srv/upload

  6. user@server:~$ sudo reprepro -b /srv/repo/rug/ubuntu --waitforlock 100 processincoming lucid-upload

  7. user@server:~$ sudo inoticoming --logfile /srv/repo/rug/ubuntu/logs/lucid-upload.log /srv/upload/repo/lucid/lwp-experimental/ --stderr-to-log --stdout-to-log --suffix '.changes' --chdir /srv/repo/rug/ubuntu reprepro -b /srv/repo/rug/ubuntu --waitforlock 100 processincoming lucid-upload {} \;

    [Note]Note

    use --debbuildopts -sa to include .orig.tar.gz.

  8. /etc/cron.d/inoticoming:

    MAILTO=j.bokma@rug.nl
    
    @reboot root /usr/bin/inoticoming --logfile /srv/repo/rug/ubuntu/logs/lucid-upload.log /srv/upload/repo/lucid/lwp-experimental/ --stderr-to-log --stdout-to-log --suffix '.changes' --chdir /srv/repo/rug/ubuntu reprepro -b /srv/repo/rug/ubuntu --waitforlock 100 processincoming lucid-upload {} \;
    	  

  9. jurjen@server:~$ sudo reprepro -b /srv/repo/rug/ubuntu remove lucid atfirstboot
    Exporting indices...
    Not removed as not found: atfirstboot
    jurjen@server:~$ sudo reprepro -b /srv/repo/rug/ubuntu remove lucid-experimental atfirstboot
    Exporting indices...
    Deleting files no longer referenced...
    jurjen@server:~$ find /srv/repo/rug/ubuntu/ -iname atfirst\*
    jurjen@server:~$