diff --git a/bake_debian_files.sh b/bake_debian_files.sh deleted file mode 100755 index 39645a7d..00000000 --- a/bake_debian_files.sh +++ /dev/null @@ -1,354 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2014 Free Software Foundation, Inc. -# -# Author: Ivan Vucica -# -# This file is part of the GNUstep Makefile Package. -# -# This library 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. -# -# You should have received a copy of the GNU General Public -# License along with this library; see the file COPYING. -# If not, write to the Free Software Foundation, -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -if [ -z "${1}" ] ; then - echo "usage: "$(basename "${0}")" [source_code_directory]" - exit 1 -fi - -cd ${1} && destination="$(pwd)" && cd - -destination="${destination}"/debian -if mkdir -p "${destination}" ; then : else exit 1 ; fi -rm "${destination}"/control 2> /dev/null -rm "${destination}"/changelog 2> /dev/null - -deb_lowercase_package_name=$(echo ${PACKAGE_NAME} | sed -e 's/\(.*\)/\L\1/') -if [ ! -z "${SVNPREFIX}" ] ; then - svn_path="${SVNPREFIX}" -fi -if [ ! -z "${SVN_BASE_URL}" ] && [ ! -z "${SVN_MODULE_NAME}" ] ; then - svn_path=${SVN_BASE_URL}/${SVN_MODULE_NAME} -fi -default_distribution="unstable" -distrib_id="$(grep DISTRIB_ID /etc/lsb-release | sed 's/DISTRIB_ID=\(.*\)$/\1/')" -if [[ "${distrib_id}" == "Ubuntu" ]] ; then - default_distribution=$(grep DISTRIB_CODENAME /etc/lsb-release | sed 's/DISTRIB_CODENAME=//') -fi - -if true ; then - # Forcing 'any' as we'd like Launchpad to build packages for all architectures. - # DEB_ARCHITECTURE can still be overridden. - target_arch=any -else - target_arch=${GNUSTEP_TARGET_CPU:-any} - if [[ "${target_arch}" == "i686" ]] ; then - target_arch=i386 - elif [[ "${target_arch}" == "x86_64" ]] ; then - target_arch=amd64 - fi -fi - -PACKAGE_VERSION=${PACKAGE_VERSION:-${VERSION}} -DEB_SOURCE=${DEB_SOURCE:-${deb_lowercase_package_name}} -DEB_PACKAGE=${DEB_PACKAGE:-${deb_lowercase_package_name}} -DEB_ARCHITECTURE=${DEB_ARCHITECTURE:-${target_arch}} #$(shell (/bin/bash -c "$(CC) -dumpmachine | sed -e 's,\\([^-]*\\).*,\\1,g'"))} -DEB_SECTION=${DEB_SECTION:-gnustep} -DEB_PRIORITY=${DEB_PRIORITY:-optional} -DEB_VCS_SVN=${DEB_VCS_SVN:-${svn_path}} -DEB_VERSION=${DEB_VERSION:-${TARBALL_VERSION:-${PACKAGE_VERSION}}} -if [ -z "${DEB_BUILD_DEPENDS}" ] ; then -DEB_BUILD_DEPENDS="debhelper (>= 9), cdbs" -else -DEB_BUILD_DEPENDS="${DEB_BUILD_DEPENDS}, debhelper (>= 9), cdbs" -fi -if [ ! -z "${DEB_DEPENDS}" ]; then -DEB_DEPENDS=", ${DEB_DEPENDS}" -fi -DEB_DEPENDS='${shlibs:Depends}, ${misc:Depends}'" ${DEB_DEPENDS}" - -DEB_DISTRIBUTION=${DEB_DISTRIBUTION:-${default_distribution}} - -# DEB_VERSION_SUFFIX intentionally unset. - -# Attempt to extract information from a .spec or a .spec.in file. -if which python > /dev/null ; then -FN=$(python - << _EOF - -import tempfile -import sys - -def process_specfile(specfilename): - description_mode=False - with open(specfilename) as specfile: - with tempfile.NamedTemporaryFile(delete=False) as tf: - - print tf.name - vars={} - - for line in specfile.readlines(): - line=line.rstrip() - for var in vars: - line=line.replace('%{' + var + '}', vars[var]) - - if description_mode: - if len(line.lstrip()) > 0 and line.lstrip()[0] == '#': - continue - if len(line.lstrip()) > 0 and line.lstrip()[0] == '%': - description_mode=False - continue - tf.write("RPM_DESCRIPTION=\"\${RPM_DESCRIPTION}%s\\n\"\n" % line.replace('\\'', '\\\\\\'').replace('\\"', '\\\\\\"').replace('(', '\\(').replace(')', '\\)')) - continue - - if not len(line): - continue - components=line.split(':') - if len(components)>=2: - key=components[0] - value=':'.join(components[1:]).lstrip() - if key=="Name": - tf.write("DEB_PACKAGE=\${DEB_PACKAGE:-%s}\n" % value) - tf.write("DEB_SOURCE=\${DEB_SOURCE:-%s}\n" % value) - elif key=="Release": - tf.write("DEB_VERSION_SUFFIX=\${DEB_VERSION_SUFFIX:-%s}\n" % value) - elif key=="Source": - # Source URL is not mappable to anything useful. - # Possibly only includable in README.Debian. - pass - elif key=="License": - tf.write("DEB_LICENSE=\${DEB_LICENSE:-%s}\n" % value) - elif key=="Copyright": - # Seems to do the same as License? - pass - elif key=="Group": - # Ignore; not easily mappable, plus Debian has separate - # 'gnustep' section. - pass - elif key=="Summary": - # First line of 'Description' field - tf.write("RPM_DESCRIPTION=\"%s\n\"\n" % value) - elif key=="Packager": - tf.write("DEB_MAINTAINER=\${DEB_MAINTAINER:-\"%s\"}\n" % value) - elif key=="Vendor": - # Ignore; not useful anywhere in .deb - pass - elif key=="URL": - tf.write("DEB_HOMEPAGE=\${DEB_HOMEPAGE:-%s}\n" % value) - elif key=="Requires": - # We support only comma separated dependencies (to simplify version handling). - # Also, version mapping is very trivial. - rpmdeps = value.split(',') - debdeps = [] - for rpmdep in rpmdeps: - rpmdepcomponents = rpmdep.split(' ') - debdep = rpmdepcomponents[0] - if len(rpmdepcomponents) > 1: - debdep += ' (%s)' % ' '.join(rpmdepcomponents[1:]) - debdeps.append(debdep) - tf.write("if [ -z \\"\${DEB_DEPENDS}\\" ] ; then\n") - tf.write(" DEB_DEPENDS=\"%s\"\n" % ', '.join(debdeps)) - tf.write("else\n") - tf.write(" DEB_DEPENDS=\"\${DEB_DEPENDS}, %s\"\n" % ', '.join(debdeps)) - tf.write("fi\n") - elif key=="Provides": - tf.write("if [ -z \\"\${DEB_PROVIDES}\\" ] ; then\n") - tf.write(" DEB_PROVIDES=\"%s\"\n" % value) - tf.write("else\n") - tf.write(" DEB_PROVIDES=\"\${DEB_PROVIDES}, %s\"\n" % value) - elif key=="Version": - tf.write("DEB_VERSION=\${DEB_VERSION:-%s}\n" % value) - else: - if line == "%description": - description_mode = True - elif line.startswith('%define'): - segs=line[len('%define')+1:].lstrip().replace('\\t', ' ').split(' ') - segs=[seg.rstrip().lstrip() for seg in segs] - vars[segs[0]] = ' '.join(segs[1:]) - - -try: - process_specfile('${DEB_PACKAGE}.spec') -except: - try: - process_specfile('${DEB_PACKAGE}.spec.in') - except Exception as e: - sys.stderr.write('could not process either ${DEB_PACKAGE}.spec or ${DEB_PACKAGE}.spec.in\n') - raise -_EOF -) -if [ ! -z "${FN}" ] ; then - . $FN - DEB_DESCRIPTION="${DEB_DESCRIPTION:-${RPM_DESCRIPTION}}" -fi -fi - -DEB_DESCRIPTION="${DEB_DESCRIPTION:-$(printf "Debian packaging for GNUstep based software ${PACKAGE_NAME}.\nThis package was built using gnustep-make.\n")}" - -# Check that maintainer and package builder are set. -if [ -z "${DEB_MAINTAINER}" ] ; then - echo "error: You must set DEB_MAINTAINER in GNUmakefile, in .spec file, or on command line." - exit 1 -fi -if [ -z "${DEB_PACKAGE_BUILDER}" ] ; then - echo "error: You must set DEB_PACKAGE_BUILDER in GNUmakefile or on command line." - echo "(It's recommended you set it on the command line, so other people" - echo "don't accidentally claim you built their package.)" - exit 1 -fi - -# Check some other fields -if [ -z "${DEB_PACKAGE}" ] ; then - echo "error: Package name was not properly set in GNUmakefile." - exit 1 -fi -if [ -z "${DEB_VERSION}" ] ; then - echo "error: Package version was not properly set in GNUmakefile." - exit 1 -fi -if [ ! -z "${DEB_VERSION_SUFFIX}" ] ; then - DEB_VERSION=${DEB_VERSION}-${DEB_VERSION_SUFFIX} - #ln -s ${destination}/../../${PACKAGE_NAME}-${VERSION}.orig.tar.gz ${destination}/../../${PACKAGE_NAME}-${DEB_VERSION}.orig.tar.gz -fi - -echo ${destination} -# For documentation, see: -# https://www.debian.org/doc/debian-policy/ch-controlfields.html -echo "Source: " ${DEB_SOURCE} >> "${destination}"/control -echo "Maintainer:" ${DEB_MAINTAINER} >> "${destination}"/control -echo "Section:" ${DEB_SECTION} >> "${destination}"/control -echo "Priority:" ${DEB_PRIORITY} >> "${destination}"/control -if [ ! -z "${DEB_BUILD_DEPENDS}" ] ; then - echo "Build-Depends:" ${DEB_BUILD_DEPENDS} >> "${destination}"/control -fi -echo "Standards-Version: 3.9.4" >> "${destination}"/control -if [ ! -z "${DEB_HOMEPAGE}" ] ; then - echo "Homepage:" ${DEB_HOMEPAGE} >> "${destination}"/control -fi -if [ ! -z "${DEB_VCS_BROWSER}" ] ; then - echo "Vcs-Browser:" ${DEB_VCS_BROWSER} >> "${destination}"/control -fi -if [ ! -z "${DEB_VCS_ARCH}" ] ; then - echo "Vcs-Arch:" ${DEB_VCS_ARCH} >> "${destination}"/control -fi -if [ ! -z "${DEB_VCS_BZR}" ] ; then - echo "Vcs-Bzr:" ${DEB_VCS_BZR} >> "${destination}"/control -fi -if [ ! -z "${DEB_VCS_CVS}" ] ; then - echo "Vcs-Cvs:" ${DEB_VCS_CVS} >> "${destination}"/control -fi -if [ ! -z "${DEB_VCS_DARCS}" ] ; then - echo "Vcs-Darcs:" ${DEB_VCS_DARCS} >> "${destination}"/control -fi -if [ ! -z "${DEB_VCS_GIT}" ] ; then - echo "Vcs-Git:" ${DEB_VCS_GIT} >> "${destination}"/control -fi -if [ ! -z "${DEB_VCS_HG}" ] ; then - echo "Vcs-Hg:" ${DEB_VCS_HG} >> "${destination}"/control -fi -if [ ! -z "${DEB_VCS_MTN}" ] ; then - echo "Vcs-Mtn:" ${DEB_VCS_MTN} >> "${destination}"/control -fi -if [ ! -z "${DEB_VCS_SVN}" ] ; then - echo "Vcs-Svn:" ${DEB_VCS_SVN} >> "${destination}"/control -fi - -echo "" >> "${destination}"/control - -echo "Package:" ${DEB_PACKAGE} >> "${destination}"/control -echo "Architecture:" ${DEB_ARCHITECTURE} >> "${destination}"/control - -# Comma-separated lists of packages -if [ ! -z "${DEB_PRE_DEPENDS}" ] ; then - echo "Pre-Depends:" ${DEB_PRE_DEPENDS} >> "${destination}"/control -fi -if [ ! -z "${DEB_DEPENDS}" ] ; then - echo "Depends:" ${DEB_DEPENDS} >> "${destination}"/control -fi -if [ ! -z "${DEB_RECOMMENDS}" ] ; then - echo "Recommends:" ${DEB_RECOMMENDS} >> "${destination}"/control -fi -if [ ! -z "${DEB_SUGGESTS}" ] ; then - echo "Suggests:" ${DEB_SUGGESTS} >> "${destination}"/control -fi -if [ ! -z "${DEB_PROVIDES}" ] ; then - echo "Provides:" ${DEB_PROVIDES} >> "${destination}"/control -fi -if [ ! -z "${DEB_REPLACES}" ] ; then - echo "Replaces:" ${DEB_REPLACES} >> "${destination}"/control -fi - -if [ ! -z "${DEB_ESSENTIAL}" ] ; then - echo "Essential:" ${DEB_ESSENTIAL} >> "${destination}"/control -fi - -echo "Description:" "$(echo "${DEB_DESCRIPTION}" | sed 's/^[\s]*$/./' | sed 's/\(.*\)/ \1/' | tail -c+2)" >> "${destination}"/control - -########### - -echo "${DEB_SOURCE} (${DEB_VERSION}) ${DEB_DISTRIBUTION}; urgency=low" >> "${destination}"/changelog -echo "" >> "${destination}"/changelog -echo " * New build." >> "${destination}"/changelog -echo "" >> "${destination}"/changelog -echo "" >> "${destination}"/changelog -echo " -- ${DEB_PACKAGE_BUILDER} $(date -R)" >> "${destination}"/changelog - -########## - -# Intentionally overwriting. -echo "9" > "${destination}"/compat -mkdir -p "${destination}"/source -echo "3.0 (quilt)" > "${destination}"/source/format - -########### - -# Intentionally overwriting. -cat > "${destination}"/rules << _EOF -#!/usr/bin/make -f -include /usr/share/cdbs/1/rules/debhelper.mk -ifneq (\$(wildcard configure),) -include /usr/share/cdbs/1/class/autotools.mk -else -include /usr/share/cdbs/1/class/makefile.mk -DEB_MAKE_INSTALL_TARGET := install DESTDIR=\$(CURDIR)/debian/${deb_lowercase_package_name} -endif - -DEB_BUILD_PARALLEL = 1 - -DEB_CONFIGURE_EXTRA_FLAGS += ${DEB_CONFIGURE_EXTRA_FLAGS} -DEB_CONFIGURE_SCRIPT_ENV += ${DEB_CONFIGURE_SCRIPT_ENV} -DEB_DH_LINK_ARGS += ${DEB_DH_LINK_ARGS} - -DEB_SHLIBS_ARGS_ALL += ${DEB_SHLIBS_ARGS_ALL} -DEB_SHLIBS_ARGS += ${DEB_SHLIBS_ARGS} -DEB_SHLIBS_INCLUDE += ${DEB_SHLIBS_INCLUDE} - -DEB_MAKE_ENVVARS += BUILDING_DEB=1 - -export build : -ifneq (${PACKAGE_NAME}, gnustep-make) - GNUSTEP_MAKEFILES = \$(shell gnustep-config --variable=GNUSTEP_MAKEFILES) - ifneq (\$(GNUSTEP_MAKEFILES), ) - DEB_MAKE_ENVVARS += \$(shell sh -c ". \$(GNUSTEP_MAKEFILES)/GNUstep.sh && env |grep GNUSTEP") - else - \$(error Failed to get GNUSTEP_MAKEFILES variable. Is gnustep-config properly installed?) - exit 1 - endif -endif - -_EOF - -chmod 755 "${destination}"/rules - -########## - -if [ -e COPYING ] ; then - cp COPYING ${destination}/copyright -fi -if [ -e LICENSE ] ; then - cp LICENSE ${destination}/copyright -fi -