-cvs_gentoo_url() {
-_cvs_gentoo_url() {
- if [[ -n $2 ]] ; then
- echo "Usage: cvs_gentoo_url <file>[:rev1[:rev2]]"
- return 1
- fi
-
- # spec has the form file:rev1[:rev2]
- # rev2 defaults to rev1-1
- export IFS=:
- set -- $1
- unset IFS
-
- local file=$1
- if [[ ! -e ${file} ]] ; then
- echo "file '${file}' does not exist"
- return 1
- fi
- local dir="."
- [[ ${file} == */* ]] && dir=${file%/*}
- file=${file##*/}
-
- local rev2=$2
- if [[ -z ${rev2} ]] ; then
- rev2=$(
- cd ${dir}
- export IFS=/
- set -- $(grep /${file}/ CVS/Entries)
- unset IFS
- echo $3
- )
- if [[ ${rev2} == "0" ]] ; then
- # new file
- rev2="1.1"
- else
- # existing file, bump rev automatically
- rev2="1.$((${rev2#1.}+1))"
- fi
- fi
- local rev2r=${rev2#1.}
- local rev1=${3:-1.$((rev2r - 1))}
-
- local cvsroot=$(<${dir}/CVS/Repository)
- if [[ ${cvsroot} == gentoo-x86* ]] ; then
- cvsroot=${cvsroot#gentoo-x86}
- cvsroot=${cvsroot#/}
- fi
+alias ebuild-sync='rsync -av ./ /usr/portage/${PWD#/usr/local/src/gentoo/repo/gentoo/} --exclude ChangeLog --exclude CVS --exclude metadata.xml --delete'
+alias ebuild-emerge='sudo emerge -1av $(echo ${PWD} | awk -F/ "{printf \"%s/%s\", \$(NF-1), \$(NF)}")'
+alias ekeyword='ekeyword -v -q'
+alias repoman='repoman -q -q'
+alias rf='/usr/local/src/gentoo/portage/repoman/bin/repoman.git -q full'
- local urirev
- [[ ${rev2} == "1.1" || ${rev1} == "${rev2}" ]] \
- && urirev="?rev=${rev2}" \
- || urirev="?r1=${rev1}&r2=${rev2}"
- echo "http://sources.gentoo.org/${cvsroot}/${file}${urirev}"
-}
- local f
- for f in "$@" ; do
- _cvs_gentoo_url "${f}"
- done
- unset _cvs_gentoo_url
-}
-git_gentoo_url() {
- local repo=$(git config remote.origin.url | sed 's:.*git.overlays.gentoo.org/::')
- git log -n3 ${1:-HEAD} | \
- sed "s,^commit ,http://git.overlays.gentoo.org/gitweb/?p=${repo};a=commitdiff;h=,"
-}
-svn_gentoo_url() {
- if [[ -z $* ]] ; then
- svn info | \
- awk '{
- if ($1 == "URL:") {
- URL = "http://sources.gentoo.org/" gensub(/.*svnroot\/([^/]*).*/,"\\1","");
- } else if ($1 == "Revision:") {
- rev = $2
- URL = URL "?rev=" (rev + 1) "&view=rev"
- }
- }
- END { print URL }'
- return 0
- fi
-
- local f
- for f in "$@" ; do
- svn info "${f}" | \
- awk '{
- if ($1 == "URL:") {
- sub(/.*svnroot/,"")
- URL = "http://sources.gentoo.org" $1 "?"
- } else if ($1 == "Revision:") {
- rev = $2
- URL = URL "r1=" rev "&r2=" (rev + 1)
- }
- }
- END { print URL }'
- done
-}
-
-er() {
+_echangelog() {
[[ ! -e ChangeLog ]] \
&& echo "No ChangeLog" \
&& return 1
echangelog "$@" || return 1
- repoman commit -m "$@" || return 1
}
+er() {
+ repoman commit "${@:1:$#-1}" -m "${@:$#}" || return 1
+}
+ec() {
+ (
+ _echangelog "$@" || exit 1
+ cvs commit -m "$@" || exit 1
+ )
+}
+
att() {
- declare url=$1 tmp=$(mktemp) filename || return 1
- [[ $url == */* ]] || url="http://bugs.gentoo.org/attachment.cgi?id=$url"
- eval $(wget -S -O"$tmp" "$url" 2>&1 | tee /dev/tty | \
- grep 'Content-disposition:' | sed 's/.* //') && \
- mv "$tmp" "$filename" && \
- chmod $(printf "%03o" "$((0666 & ~$(umask)))") "$filename" && \
- ls -l "$filename" && \
- return 0
- rm -f "$tmp"
- return 1
+ while [[ $# -gt 0 ]] ; do
+ declare url=$1 tmp=$(mktemp) filename || return 1
+ [[ ${url} == */* ]] || url="http://bugs.gentoo.org/attachment.cgi?id=${url}"
+ printf '%s -> ' "${url}"
+ if eval $(wget -S -O"${tmp}" "${url}" 2>&1 |
+ grep 'Content-disposition:' | sed 's/.* //') && \
+ mv "${tmp}" "${filename}" && \
+ chmod $(printf "%03o" "$((0666 & ~$(umask)))") "${filename}" ; then
+ du -b "${filename}"
+ else
+ echo "FAIL"
+ rm -f "${tmp}"
+ fi
+ shift
+ done
}
arch_emails() {
- local a ret=""
+ local ret
if [[ $@ == *.ebuild* ]] ; then
local e keys
for e in "$@" ; do
keys=$(sed -n '/^[[:space:]]*KEYWORD/{s:.*=::;s:"::g;p}' ${e})
for a in ${keys} ; do
[[ ${a} != ~* ]] && continue
- ret="${ret} ${a/\~}@gentoo.org"
+ case ${a} in
+ *-*) continue ;;
+ ~arm64|~m68k|~mips|~s390|~sh) continue ;;
+ ~*) ret="${ret} ${a}" ;;
+ esac
done
done
else
- for a in "$@" ; do
- ret="${ret} ${a/\~}@gentoo.org"
- done
+ ret="$*"
fi
- echo ${ret}
+ printf '%s@gentoo.org,' ${ret//\~}
+ echo
+}
+stable_arch_emails() {
+ arch_emails "$@" | sed -r -e 's:([^ ]*-[^ ]*|mips)@[^ ]*::g'
+}
+eget_maintainer() {
+ local f=${1:-metadata.xml}
+ local maintainer=$(xml sel -t -v pkgmetadata/herd $f)
+ if [[ ${maintainer:-no-herd} == "no-herd" ]] ; then
+ maintainer=$(xml sel -t -v pkgmetadata/maintainer/email $f)
+ elif [[ -n ${maintainer} ]] ; then
+ maintainer="${maintainer}@gentoo.org"
+ fi
+ if [[ -z ${maintainer} ]] ; then
+ echo "No maintainer found in $f"
+ return 1
+ fi
+ echo ${maintainer}
+ return 0
}
submit_bug_stable() {
local msg="doit"
echo "Usage: submit_bug_stable <ebuilds>"
return 1
fi
- local maintainer=$(xml sel -t -v pkgmetadata/herd metadata.xml)
- if [[ ${maintainer} == "no-herd" ]] ; then
- maintainer=$(xml sel -t -v pkgmetadata/maintainer/email metadata.xml)
- elif [[ -n ${maintainer} ]] ; then
- maintainer="${maintainer}@gentoo.org"
- fi
- if [[ -z ${maintainer} ]] ; then
- echo "No maintainer found in metadata.xml"
- return 1
- fi
+ local maintainer
+ maintainer=$(eget_maintainer) || return 1
local cat=$(basename $(dirname $(pwd)))
local pkg=${1%.ebuild}
local ebuild=${pkg}.ebuild
- local cc=$(arch_emails ${ebuild} | sed -r -e 's:([^ ]*-fbsd|mips)@[^ ]*::g')
+ local cc=$(stable_arch_emails ${ebuild})
if [[ -z ${cc} ]] ; then
echo "Unable to read ebuild '${ebuild}'"
return 1
fi
- bugz post \
+ if [[ ${maintainer} == *" "* ]] ; then
+ cc+=",${maintainer#* }"
+ maintainer=${maintainer%% *}
+ fi
+ gbugz \
+ post \
--batch \
- -u vapier@gentoo.org \
- -t "Stabilize ${cat}/${pkg}" \
+ -t "${cat}/${pkg}: stabilize" \
-d "${msg}" \
-a "${maintainer}" \
- --cc="${cc}" \
+ --cc="${cc// /,}" \
-k STABLEREQ \
--product='Gentoo Linux' \
--component=Ebuilds \
- --priority=P2 \
+ --priority=Normal \
--severity=enhancement
}
# running in a category rather than package
cat="/"
fi
- [[ -z $* ]] && set -- arm m68k s390 sh
+ [[ -z $* ]] && set -- arm64 m68k s390 sh
for k in "$@" ; do
- local list="$(grep "^KEYWORDS=.*~${k}\>.*[^~]x86" *${cat}*d -l)"
- [[ -z ${list} ]] && continue
- sed -i "1s:.*:# Copyright 1999-$(date +%Y) Gentoo Foundation:" ${list}
- ekeyword ${k} ${list}
+ ekeyword "${k}=x86" $(grep -l "KEYWORDS.*${k}" *${cat}*.ebuild)
done
}
_erit() {
local msg=$1 ; shift
[[ $1 == [[:digit:]]* ]] && msg="$msg #$1" && shift
- echo repoman commit -m "$(echo $@ | sed 's: :/:g') $msg"
- repoman commit -m "$(echo $@ | sed 's: :/:g') $msg"
+ echo git commit -m "$(echo $@ | sed 's: :/:g') $msg"
+ git commit -m "$(echo $@ | sed 's: :/:g') $msg"
}
erstable() { _erit stable "$@" ; }
erlove() { _erit love "$@" ; }
+
+export PORTAGE_INST_UID=${UID}
+export PORTAGE_INST_GID=`id -g`