
#
# This file is not needed for review, and is only used for the
# shell API plugin. No need to modify it or anything.
#

unset $(env | sed -n 's/=.*//p')
PATH=/bin:/usr/bin:/sbin/:/usr/sbin

declare -A FR_FLAGS
FR_FLAGS[EPEL5]=''

declare -A FR_SETTINGS 
FR_SETTINGS[resultdir]=""
FR_SETTINGS[verbose]="True"
FR_SETTINGS[no_report]=""
FR_SETTINGS[session_log]="/home/w0rm/.cache/fedora-review.log"
FR_SETTINGS[list_flags]=""
FR_SETTINGS[list_checks]=""
FR_SETTINGS[single]=""
FR_SETTINGS[rpm_spec]="True"
FR_SETTINGS[exclude]="CheckRpmlintInstalled,CheckApprovedLicense,CheckContainsLicenseText,CheckLicenseField,CheckLicenseUpstream,CheckReqPkgConfig,CheckBuildCompleted,CheckPackageInstalls,CheckNoNameConflict,CheckBuild,CheckBuildRequires"
FR_SETTINGS[configdir]=""
FR_SETTINGS[log_level]="10"
FR_SETTINGS[log]="<logging.RootLogger object at 0x7ffb37ff7a90>"
FR_SETTINGS[init_done]="True"
FR_SETTINGS[cache]=""
FR_SETTINGS[mock_config]="fedora-rawhide-x86_64"
FR_SETTINGS[version]=""
FR_SETTINGS[uniqueext]=""
FR_SETTINGS[flags]=""
FR_SETTINGS[bz_url]="https://bugzilla.redhat.com"
FR_SETTINGS[mock_options]="--no-cleanup-after --no-clean"
FR_SETTINGS[other_bz]=""
FR_SETTINGS[repo]=""
FR_SETTINGS[use_colors]="True"
FR_SETTINGS[bug]=""
FR_SETTINGS[prebuilt]="True"
FR_SETTINGS[name]="pidgin"
FR_SETTINGS[url]=""
FR_SETTINGS[checksum]="sha256"
FR_SETTINGS[nobuild]=""

export FR_REVIEWDIR='/data/temp/rhel-reviews/pidgin-2.10.6-4.fc19/pidgin'
export HOME=$FR_REVIEWDIR
cd $HOME

export FR_NAME='pidgin'
export FR_VERSION='2.10.6'
export FR_RELEASE='4.fc18'
export FR_GROUP='Applications/Internet'
export FR_LICENSE='GPLv2+ and GPLv2 and MIT'
export FR_URL='http://pidgin.im/'

export Source0="http://downloads.sourceforge.net/pidgin/pidgin-2.10.6.tar.bz2"
export Source1="purple-fedora-prefs.xml"

export Patch0="pidgin-NOT-UPSTREAM-2.5.2-rhel4-sound-migration.patch"
export Patch100="pidgin-2.10.1-fix-msn-ft-crashes.patch"


export FR_PREP='echo "FEDORA=19 RHEL=0"
cd '\''/data/temp/rhel-reviews/pidgin-2.10.6-4.fc19/pidgin/BUILD'\''
rm -rf '\''pidgin-2.10.6'\''
/usr/bin/tar -xf /data/temp/rhel-reviews/pidgin-2.10.6-4.fc19/pidgin/pidgin-2.10.6.tar.bz2
cd '\''pidgin-2.10.6'\''
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
## Patches 0-99: Fedora specific or upstream wont accept
## Patches 100+: To be Included in Future Upstream
# http://pidgin.im/pipermail/devel/2011-November/010477.html
# Our preferences
cp /data/temp/rhel-reviews/pidgin-2.10.6-4.fc19/pidgin/purple-fedora-prefs.xml prefs.xml
# RHEL5 and earlier did not have xdg-open, so use gnome-open instead
if [ "0" == "1" ]; then
sed -i "s/value='\''xdg-open'\''/value='\''gnome-open'\''/" prefs.xml
fi
# Bug #528796: Get rid of #!/usr/bin/env python
# Upstream refuses to use ./configure --python-path= in these scripts.
for file in finch/plugins/pietray.py libpurple/purple-remote libpurple/plugins/dbus-buddyicons-example.py \
libpurple/plugins/startup.py libpurple/purple-url-handler libpurple/purple-notifications-example; do
sed -i '\''s/env python/python/'\'' $file
done'
export FR_BUILD='SWITCHES="--with-extraversion=4.fc18"
SWITCHES="$SWITCHES --enable-perl"
SWITCHES="$SWITCHES --disable-gevolution"
SWITCHES="$SWITCHES --enable-dbus"
SWITCHES="$SWITCHES --enable-nm"
SWITCHES="$SWITCHES --enable-gstreamer"
SWITCHES="$SWITCHES --with-system-ssl-certs=/etc/pki/tls/certs"
# FC5+ automatic -fstack-protector-all switch
export RPM_OPT_FLAGS=${RPM_OPT_FLAGS//-fstack-protector/-fstack-protector-all}
export CFLAGS="$RPM_OPT_FLAGS"
# gnutls is buggy so use mozilla-nss on all distributions
CFLAGS="${CFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4  -m64 -mtune=generic}" ; export CFLAGS ;
CXXFLAGS="${CXXFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4  -m64 -mtune=generic}" ; export CXXFLAGS ;
FFLAGS="${FFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4  -m64 -mtune=generic -I/usr/lib64/gfortran/modules}" ; export FFLAGS ;
LDFLAGS="${LDFLAGS:--Wl,-z,relro }"; export LDFLAGS;
./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu \
--program-prefix= \
--disable-dependency-tracking \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib64 \
--libexecdir=/usr/libexec \
--localstatedir=/var \
--sharedstatedir=/var/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info --enable-gnutls=no --enable-nss=yes --enable-cyrus-sasl \
--enable-tcl --enable-tk \
--disable-schemas-install $SWITCHES
make -j2 LIBTOOL=/usr/bin/libtool
# one_time_password plugin, included upstream but not built by default
cd libpurple/plugins/
make one_time_password.so LIBTOOL=/usr/bin/libtool
cd -
make docs
find doc/html -empty -delete'
export FR_INSTALL='rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install LIBTOOL=/usr/bin/libtool
install -m 0755 libpurple/plugins/one_time_password.so $RPM_BUILD_ROOT/usr/lib64/purple-2/
desktop-file-install --vendor pidgin --delete-original              \
--add-category X-Red-Hat-Base                  \
--dir $RPM_BUILD_ROOT/usr/share/applications  \
$RPM_BUILD_ROOT/usr/share/applications/pidgin.desktop
# remove libtool libraries and static libraries
find $RPM_BUILD_ROOT \( -name "*.la" -o -name "*.a" \) -exec rm -f {} '\'';'\''
# remove the perllocal.pod file and other unrequired perl bits
find $RPM_BUILD_ROOT -type f -name perllocal.pod -exec rm -f {} '\'';'\''
find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} '\'';'\''
find $RPM_BUILD_ROOT -type f -name '\''*.bs'\'' -empty -exec rm -f {} '\'';'\''
# remove relnot.so plugin since it is unusable for our package
rm -f $RPM_BUILD_ROOT/usr/lib64/pidgin/relnot.so
# remove dummy nullclient
rm -f $RPM_BUILD_ROOT/usr/bin/nullclient
# install Fedora pidgin default prefs.xml
mkdir -p $RPM_BUILD_ROOT/etc/purple/
install -m 644 prefs.xml $RPM_BUILD_ROOT/etc/purple/prefs.xml
# remove non-plugin unrequired library symlinks
rm -f $RPM_BUILD_ROOT/usr/lib64/purple-2/liboscar.so
rm -f $RPM_BUILD_ROOT/usr/lib64/purple-2/libjabber.so
rm -f $RPM_BUILD_ROOT/usr/lib64/purple-2/libymsg.so
# make sure that we can write to all the files we'\''ve installed
# so that they are properly stripped
chmod -R u+w $RPM_BUILD_ROOT/*
/usr/lib/rpm/find-lang.sh /data/temp/rhel-reviews/pidgin-2.10.6-4.fc19/pidgin/BUILDROOT/pidgin-2.10.6-4.fc18.x86_64 pidgin
# symlink /usr/bin/gaim to new pidgin name
ln -sf pidgin $RPM_BUILD_ROOT/usr/bin/gaim
rm -rf html
rm -f doc/html/installdox
mv doc/html/ html/
mkdir -p $RPM_BUILD_ROOT/usr/share/gtk-doc/html/
ln -sf ../../doc/pidgin-docs-2.10.6/html/ \
$RPM_BUILD_ROOT/usr/share/gtk-doc/html/pidgin'

declare -A FR_FILES
FR_FILES[pidgin]='%defattr(-,root,root,-)
%doc NEWS COPYING AUTHORS README ChangeLog doc/PERL-HOWTO.dox
/usr/bin/pidgin
/usr/bin/gaim
/usr/lib64/pidgin/'
FR_FILES[pidgin-devel]='%defattr(-,root,root,-)
/usr/include/pidgin/
/usr/lib64/pkgconfig/pidgin.pc'
FR_FILES[pidgin-perl]='%defattr(-,root,root,-)
/usr/share/man/man3/Pidgin*
/usr/lib64/pidgin/perl/'
FR_FILES[libpurple]='%defattr(-,root,root,-)
%doc COPYING
/usr/lib64/purple-2/'
FR_FILES[libpurple-devel]='%defattr(-,root,root,-)
/usr/share/aclocal/purple.m4
/usr/lib64/libpurple.so
/usr/include/libpurple/
/usr/lib64/pkgconfig/purple.pc'
FR_FILES[libpurple-perl]='%defattr(-,root,root,-)
/usr/share/man/man3/Purple*
/usr/lib64/purple-2/perl.so
/usr/lib64/purple-2/perl/'
FR_FILES[libpurple-tcl]='%defattr(-,root,root,-)
/usr/lib64/purple-2/tcl.so'
FR_FILES[finch]='%defattr(-,root,root,-)
/usr/bin/finch
/usr/lib64/finch/
/usr/lib64/gnt/
/usr/lib64/libgnt.so.*
/usr/share/man/man1/finch.*'
FR_FILES[finch-devel]='%defattr(-,root,root,-)
/usr/include/finch/
/usr/include/gnt/
/usr/lib64/libgnt.so
/usr/lib64/pkgconfig/gnt.pc
/usr/lib64/pkgconfig/finch.pc'
FR_FILES[pidgin-docs]='%defattr(-,root,root,-)
%doc html
/usr/share/gtk-doc/html/*'

declare -A FR_DESCRIPTION


export FR_FILES FR_DESCRIPTION

export FR_PASS=80
export FR_FAIL=81
export FR_PENDING=82
export FR_NOT_APPLICABLE=83


function get_used_rpms()
# returns (stdout) list of used rpms if found, else returns 1
{
    cd $FR_REVIEWDIR
    if test  "${FR_SETTINGS[prebuilt]}" = True
    then
        files=( $(ls ../*.rpm 2>/dev/null | grep -v .src.rpm) )                || files=( '@@' )
    else
        files=( $(ls results/*.rpm 2>/dev/null | grep -v .src.rpm) )                || files=( '@@' )
    fi
    test -e ${files[0]} || return 1
    echo "${files[@]}"
    cd $OLDPWD
}

function unpack_rpms()
# Unpack all non-src rpms in results into rpms-unpacked, one dir per rpm.
{
    [ -d rpms-unpacked ] && return 0
    rpms=( $( get_used_rpms ) ) || return 1
    mkdir rpms-unpacked
    cd rpms-unpacked
    retval=0
    for rpm_path in ${rpms[@]};  do
        rpm=$( basename $rpm_path)
        mkdir $rpm
        cd $rpm
        rpm2cpio ../../$rpm_path | cpio -id &>/dev/null
        cd ..
    done
    cd ..
}

function unpack_sources()
# Unpack sources in upstream into upstream-unpacked
# Ignores (reuses) already unpacked items.
{
    sources=( $(cd upstream; ls) ) || sources=(  )
    if [[ ${#sources[@]} -eq 0 || ! -e "upstream/${sources[0]}" ]]; then
       return $FR_NOT_APPLICABLE
    fi
    for source in "${sources[@]}"; do
        mkdir upstream-unpacked/$source 2>/dev/null || continue
        rpmdev-extract -qfC  upstream-unpacked/$source upstream/$source ||            cp upstream/$source upstream-unpacked/$source
    done
}

function attach()
# Usage: attach <sorting hint> <header>
# Reads attachment from stdin
{
    startdir=$(pwd)
    cd $FR_REVIEWDIR
    for (( i = 0; i < 10; i++ )); do
        test -e $FR_REVIEWDIR/.attachments/*$i || break
    done
    if [ $i -eq 10 ]; then
        echo "More than 10 attachments! Giving up" >&2
        exit 1
    fi
    sort_hint=$1
    shift
    title=${*//\/ }
    file="$sort_hint;${title/;/:};$i"
    cat > .attachments/"$file"
    cd $startdir
}

