aboutsummaryrefslogtreecommitdiff
path: root/xbps-mini-builder
blob: 6316897fd58f8306e8a5b4df6c9e990862eed26c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/sh

# Jump to the directory that owns this script
cd "${0%/*}"

# Do we have keys to sign with?
if [ ! -f id_rsa ] ; then
    rm -rf id_rsa id_rsa.pub
    ssh-keygen -b 4096 -t rsa -N "" -f id_rsa
fi

# Create the void-packages directory if it doesn't exit
mkdir -p void-packages
cd void-packages

# Do we actually have the repo yet?
if [ ! -d srcpkgs ] ; then
    # No, clone a fresh copy
    git clone https://github.com/voidlinux/void-packages .
else
    # Yes, pull in the changes for this run
    git reset --hard HEAD
    git pull
fi

# Does this system use another set of repos
if [ -d /etc/xbps.d ] ; then
    cat /etc/xbps.d/* > etc/repos-remote.conf
    # If this platform is 64 bit, override those as well
    if [ "$(xbps-uhelper arch)"="x86_64" ] ; then
        cat /etc/xbps.d/* > etc/repos-remote-x86_64.conf
    fi

    # The bootstrap config is loaded seperately
    if [ -f /etc/xbps.d/00-repository-main.conf ] ; then
        repo="$(cat /etc/xbps.d/00-repository-main.conf | sed 's/^.*=//')"
        printf 'XBPS_INSTALL_ARGS="--repository=%s --repository=%s/musl"\n' ${repo} ${repo} > etc/conf
    fi
fi

# Do we have a live build environment
if [ ! -d masterdir ] ; then
    # No masterdir, go ahead and bootstrap it
    ./xbps-src binary-bootstrap
fi

# Apply provided config file if it exists
if [ -f ../xbps-src.conf ] ; then
    cat ../xbps-src.conf >> etc/conf
fi

# Main builder section
packages="$(cat ../packages.list)"

xbulk ${packages} "$@"

# Sign built packages
xbps-rindex --sign --signedby "XBPS-mini-builder" --privkey ../id_rsa hostdir/binpkgs
xbps-rindex --sign-pkg --privkey ../id_rsa hostdir/binpkgs/*.xbps

for folder in {multilib multilib/nonfree nonfree}; do
    if [ -d "hostdir/binpkgs/${folder}" ] ; then
        xbps-rindex --sign --signedby "XBPS-mini-builder" --privkey ../id_rsa "hostdir/binpkgs/${folder}"
        xbps-rindex --sign-pkg --privkey "../id_rsa hostdir/binpkgs/${folder}/"*.xbps
    fi
done