This file is indexed.

/usr/bin/pkgos-bb is in openstack-pkg-tools 54.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  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
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/sh

set -e
set -x

if ! [ -r /etc/pkgos/pkgos.conf ] ; then
	echo "Could not read /etc/pkgos/pkgos.conf"
	exit 1
else
	. /etc/pkgos/pkgos.conf
fi

# Manage parameters of this script
usage () {
	echo "Usage: $0 [-u] [-d <DISTRO>]"
	echo "          -u: Upload to the defined Debian repository"
	echo " -d <DISTRO>: Define from which distro to backport"
	exit 1
}

UPLOAD=no
SRC_DISTRO=sid
for i in $@ ; do
	case ${1} in
	"-u")
		UPLOAD=yes
		shift
	;;
	"-d")
		if [ -z "${2}" ] || [ -z "${3}" ] ; then usage ; fi
		SRC_DISTRO=${2}
		shift
		shift
	;;
	*)
	;;
	esac
done

if [ -z "${1}" ] ; then usage ; fi

PKG_NAME=${1}

# Double-guessing some stuffs
if [ `whoami` = "jenkins" ] ; then
        BUILD_ROOT=/var/lib/jenkins/backports/${BUILD_NUMBER}
else
        BUILD_ROOT=~/src/os-bpo
fi


# Get info from packages.debian.org
PKG_INFO_FILE=`mktemp -t pkg_info_file.XXXXXX`
wget --no-check-certificate -O ${PKG_INFO_FILE} http://packages.debian.org/${SRC_DISTRO}/${PKG_NAME}
if [ `lsb_release -i -s` = "Ubuntu" ] ; then
	RMADURL="--url=http://qa.debian.org/madison.php"
else
	RMADURL=""
fi
DEB_VERSION=`rmadison $RMADURL --suite=${SRC_DISTRO} ${PKG_NAME} | grep -E 'amd64|all' | awk '{print $3}'`
UPSTREAM_VERSION=`echo ${DEB_VERSION} | sed 's/-[^-]*$//' | cut -d":" -f2`
DSC_URL=`cat ${PKG_INFO_FILE} | grep dsc | cut -d'"' -f2`
rm ${PKG_INFO_FILE}

# Prepare build folder and go in it
MY_CWD=`pwd`
rm -rf ${BUILD_ROOT}/$PKG_NAME
mkdir -p ${BUILD_ROOT}/$PKG_NAME
cd ${BUILD_ROOT}/$PKG_NAME

# Download the .dsc and extract it
dget -d -u ${DSC_URL}
PKG_SRC_NAME=`ls *.dsc | cut -d_ -f1`
PKG_NAME_FIRST_CHAR=`echo ${PKG_SRC_NAME} | awk '{print substr($0,1,1)}'`

# Guess source package name using an ls of the downloaded .dsc file
DSC_FILE=`ls *.dsc`
DSC_FILE=`basename $DSC_FILE`
SOURCE_NAME=`echo $DSC_FILE | cut -d_ -f1`

# Rename the build folder if the source package name is different from binary
if ! [ "${PKG_NAME}" = "${SOURCE_NAME}" ] ; then
	cd ..
	rm -rf $SOURCE_NAME
	mv $PKG_NAME $SOURCE_NAME
	cd $SOURCE_NAME
fi

# Extract the source and make it a backport
dpkg-source -x *.dsc
cd ${SOURCE_NAME}-${UPSTREAM_VERSION}
dch --newversion ${DEB_VERSION}~${BPO_POSTFIX} -b --allow-lower-version --distribution ${TARGET_DISTRO}-backports -m  "Rebuilt for ${TARGET_DISTRO}."

# Chech changelog
pkgos-check-changelog || true

# Build the package
sbuild

# Copy in the FTP repo
cd ..
rm ${SOURCE_NAME}_${DEB_VERSION}~${BPO_POSTFIX}_amd64.build
TARGET_FTP_FOLDER=${REPO_ROOT}/debian/pool/${REPO_NOCHANGE_BACKPORT_DEST}/main/${PKG_NAME_FIRST_CHAR}/$SOURCE_NAME
rm -rf ${TARGET_FTP_FOLDER}
mkdir -p ${TARGET_FTP_FOLDER}
cp *bpo* *.orig.tar.* ${TARGET_FTP_FOLDER}

# Update the archive and the sbuild chroot
pkgos-scan-repo ${REPO_NOCHANGE_BACKPORT_DEST}

# Uploading to FTP
if [ "${UPLOAD}" = "yes" ] ; then
	REMOTE_FOLDER=/home/ftp/debian/pool/${SCP_DEST_SUITE}/main/${PKG_NAME_FIRST_CHAR}/$SOURCE_NAME
	ssh ${SCP_DEST_HOST} "mkdir -p ${REMOTE_FOLDER}"
	scp *bpo* *.orig.tar.* ${SCP_DEST_HOST}:${REMOTE_FOLDER}
fi