From e206c6620ac6c3f2fd01dd2d1b1390e6e262cd8f Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Tue, 06 Mar 2012 13:39:44 -0500 Subject: Rename all source files. --- (limited to 'src/opkbuild') diff --git a/src/opkbuild b/src/opkbuild deleted file mode 100644 index faa72ef..0000000 --- a/src/opkbuild +++ /dev/null @@ -1,258 +0,0 @@ -#! /bin/sh -# -# opkhelper -# src/opkbuild -# Build opkg packages. -# -# Copyright (C) 2012 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 . - -. @@LIBDIR@@/opkhelper/controlfields -. @@LIBDIR@@/opkhelper/architecture -. @@LIBDIR@@/opkhelper/archive - -print_usage() -{ - printf 'Usage: %s [-r assume-uid0-cmd] [-p target-platform] [-d]\n' "${1}" -} - -error() -{ - [ ${#} -eq 1 ] && printf 'opkbuild: [%s] Error\n' "${1}" >&2 - if ${dbg}; then - printf 'opkbuild: Starting debugging shell...\n' >&2 - /bin/sh - fi - cd .. - rm -Rf tmp 2> /dev/null - exit 1 -} - -opts=$(getopt -n "${0}" -o 'r:p:d' -- "${@}") -if [ ${?} -ne 0 ]; then - print_usage "${0}" >&2 - exit 1; -fi -eval set -- "${opts}" -while true; do - case "${1}" in - -r) - uid0_cmd=${2} - shift 2 - ;; - -p) - platform=${2} - shift 2 - ;; - -d) - dbg=true - shift - ;; - --) - shift - break - ;; - *) - print_usage "${0}" >&2 - exit 1 - ;; - esac -done - -if [ -z "${uid0_cmd}" ]; then - uid0_cmd=fakeroot -fi -${uid0_cmd} true -if [ ${?} -ne 0 ]; then - printf 'opkbuild: Error running command to gain UID 0\n' >&2 - exit 1 -fi -if [ -z "${dbg}" ]; then - dbg=false -fi - -# Sanity checks. -printf 'opkbuild: Checking for sanity...\n' -if [ ! -f format -o ! -f build -o ! -f control ]; then - printf 'Error: Current working directory is not a source package.\n' >&2 - exit 1 -fi -if [ "$(cat format)" != '1.0' ]; then - printf 'Error: Source package is of an incompatible version.\n' >&2 - exit 1 -fi - -# Attempt to detect the target platform. -# If there no config files to copy, build platform-independent packages. -if [ ! -f config ]; then - platform='' -# If a target platform was not specified ... -elif [ -z "${platform}" ]; then - platform=$(opkg print-architecture | \ - sed -n 's/^arch \([^ -][^ -]*\) [0-9][0-9]*$/\1/p' | \ - grep -v 'all') - # ... and there are config files and zero installable platforms, fail. - if [ -z "${platform}" ]; then - printf 'opkbuild: Error: %s\n' \ - 'Building platform-dependent package and no platforms detected' >&2 - exit 1 - # ... and there are config files and multiple installable platforms, request - # explicit selection. - elif [ $(echo "${platform}" | wc -l) -gt 1 ]; then - printf 'opkbuild: Error: %s\n' \ - 'Multiple platforms found while detecting target' >&2 - exit 1 - fi - # ... and there are config files and one installable platform, build for it. -fi - -# Attempt to detect the target architecture tuple. -# NB: Currently cross-compiling is not supported. -arch=$(opkg print-architecture | sed -n \ - 's/^arch \([^ -][^ -]*-[^ -][^ -]*-[^ -][^ -]*\) [0-9][0-9]*$/\1/p') -if [ -z "${arch}" ]; then - printf 'opkbuild: Error: No installable architecture found\n' >&2 -elif [ $(echo "${arch}" | wc -l) -gt 1 ]; then - printf 'opkbuild: Error: Multiple installable architectures found\n' >&2 -fi - -# Make work area. -printf 'opkbuild: Making work area...\n' -mkdir tmp -cd tmp - -# Get source package name and version. -printf 'opkbuild: Reading source package control fields...\n' -srcpkg=$(oh_get_field Source) -version=$(oh_get_field Version) - -# Set environment variables for the build configuration. -export OH_PLATFORM="${platform}" -export OH_ARCH="${arch}" -IFS=- read OH_ARCH_CPU OH_ARCH_KERNEL OH_ARCH_LIBS <&2 - error - ;; - 2) - printf 'opkbuild: Error: Multiple source archives found\n' \ - >&2 - error - ;; - 3) - printf 'opkbuild: Error: %s\n' \ - 'Unsupported archive compression format detected' >&2 - error - ;; - 4) - printf 'opkbuild: Error: %s\n' \ - 'No directories found in source archive' >&2 - error - ;; - 5) - printf 'opkbuild: Error: %s\n' \ - 'Multiple top-level directories found in source archive' >&2 - error - ;; - 6) - printf 'opkbuild: Error: %s\n' \ - 'Failed to extract source archive' >&2 - error - ;; - 7) - printf 'opkbuild: Error: %s\n' \ - 'Failed to move extracted sources' >&2 - error - ;; - esac - fi - # Make installation directory. - # TODO: Maybe this should be an FHS-compliant filesystem hierarchy. - mkdir dest || error "${binpkg}" - # Apply patches. - oh-applypatches - # Copy platform config files. - oh-copyconfig || error "${binpkg}" - # Build the package. - ${uid0_cmd} ../build ${binpkg} || error "${binpkg}" - printf 'opkbuild: Package "%s" complete!\n\n' "${binpkg}" - # Clean up everything except the build stamps. - for file in *; do - case ${file} in - *.buildstamp) - ;; - *) - ${uid0_cmd} rm -Rf ${file} || error "${binpkg}" - ;; - esac - done - fi -done - -# Clean up tmp. -cd .. -rm -Rf tmp -- cgit v0.9.1