# ProteanOS Development Kit # lib/profiles/proteanos.sh # ProteanOS architecture detection and feeds lists. # # Copyright (C) 2013 Patrick "P. J." McDermott # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # TODO: This should be replaced with a prof_proteanos_validate_archplat() # function that gets valid architectures and platforms from the package archive # (which pro-archman needs to list in the distribution). prof_proteanos_archplats=' amd64-linux-glibc dev i686-linux-glibc dev i686-linux-glibc ao751h i686-linux-glibc dimension2400 i686-linux-glibc x60 ' prof_proteanos_normalize_suite() { local suite="${1}" case "${suite}" in */*) printf '%s\n' "${suite}";; *) printf 'dev/%s\n' "${suite}";; esac return 0 } prof_proteanos_detect_arch() { local uname_m= local uname_s= local arch= uname_m="$( (uname -m) 2>/dev/null)" || uname_m='unknown' uname_s="$( (uname -s) 2>/dev/null)" || uname_s='unknown' case "${uname_m}:${uname_s}" in 'x86_64:Linux') arch='amd64-linux-glibc' ;; 'i686:Linux') arch='i686-linux-glibc' ;; *) arch='' esac printf '%s\n' "${arch}" } prof_proteanos_default_plat() { printf 'dev\n' } prof_proteanos_select_mirror() { local rand= local mirror= rand=$(date '+%S') rand=$(($rand % 2)) case ${rand} in 0) mirror='http://mirror.gnu.dk/pub/proteanos' ;; 1) mirror='http://mirror.oss.maxcdn.com/proteanos' ;; esac printf '%s\n' "${mirror}" } prof_proteanos_feeds() { local arch="${1}" local plat="${2}" local suite="${3}" local archive= local a= local p= local s= archive='http://files.proteanos.com/pub/proteanos' for a in "${arch}" 'all'; do for p in "${plat}" 'all'; do for s in 'base'; do printf 'proteanos_%s_%s_%s_%s_%s ' \ "${suite%/*}" "${suite#*/}" \ "${a}" "${p}" "${s}" printf '%s/feeds/%s/%s/%s/%s/Packages\n' \ "${archive}" "${suite}" \ "${a}" "${p}" "${s}" done done done } prof_proteanos_dep_fields() { printf 'Depends Pre-Depends' } prof_proteanos_include_pkg() { local name="${1}" local value="${2}" if [ "x${name}" = 'xPackage' ] && [ "x${value}" = 'xbase' ]; then return 0 else return 1 fi }