Compare commits
121 Commits
Author | SHA1 | Date | |
---|---|---|---|
bbcfce5260 | |||
db0354041e | |||
c7d8a76d80 | |||
058a0baa7e | |||
38c75eea33 | |||
4cee459385 | |||
f47b80b1cc | |||
092e90e004 | |||
e53a62198a | |||
68bacbc599 | |||
681b2e5ec7 | |||
a6d6fd03e4 | |||
c3cbf7c0e8 | |||
ced497545e | |||
ee1a94af6f | |||
2c09744bbd | |||
7d21e2fa60 | |||
7e78d60c90 | |||
537b80a4c4 | |||
db8fa88b9b | |||
f93a093134 | |||
a49c4ec447 | |||
1c8a7cbbdf | |||
73f032afda | |||
8b9ee4a7b2 | |||
c3c5a9009e | |||
4fba9537b5 | |||
a191ef0eb3 | |||
5f2e54f58a | |||
90a0d85269 | |||
6e6d92d5a2 | |||
8f2eb49563 | |||
4ee59fdbd2 | |||
d1493a2edf | |||
c6db4b05c9 | |||
3f8d3fb9b2 | |||
77ecc7566d | |||
aca1323856 | |||
a6b14a1aa9 | |||
2e6f2dd33e | |||
fe8a60addd | |||
ef649ef1c4 | |||
a044057f9f | |||
8623f8bfd8 | |||
f47f80416d | |||
177629094c | |||
f5a01c61a6 | |||
f492d02d7d | |||
367e2f7dee | |||
144f1b0eb6 | |||
faa153d41e | |||
d435051d50 | |||
9afdb96444 | |||
eaf4e0220c | |||
3b032d1d8c | |||
6032d80cdb | |||
66ce879682 | |||
3b15ee14b7 | |||
949a4c35df | |||
d77d29fd37 | |||
4d8a804eee | |||
60f8e3cff0 | |||
73791f2c58 | |||
8aaf239342 | |||
9ab37c25c2 | |||
491357aebb | |||
bf3085f435 | |||
f6543e78fa | |||
ea098185e1 | |||
52f9b3e9e0 | |||
55224a3ecb | |||
bbcc9460b4 | |||
8e4e790104 | |||
487dbb2824 | |||
f05b31368f | |||
fa602e75e0 | |||
45b347da76 | |||
5927784c85 | |||
59a1ad0317 | |||
3e0f261856 | |||
85e7950c4e | |||
58d61d51e3 | |||
b59c024914 | |||
82c5f79f27 | |||
5241fa7e82 | |||
a89e2b9a13 | |||
f72d0b3663 | |||
56f41ede80 | |||
a59ea180af | |||
e3e4104f4e | |||
4f12cc4969 | |||
1da0a6d971 | |||
a66a8f8029 | |||
2dd4d2632d | |||
6dd2bb37bc | |||
79c00b9f50 | |||
f4dbf4b5c2 | |||
13e52f18d5 | |||
1979751f33 | |||
ed2de4963a | |||
ae9e5c3be5 | |||
457d02194c | |||
7107f7884f | |||
159432b669 | |||
c73ba35d74 | |||
2d950512e4 | |||
30e8c88970 | |||
eff79c5bf8 | |||
e6ee8dbd5b | |||
9643cf4103 | |||
bb64fe0188 | |||
1617e30950 | |||
f0eaac941b | |||
c0b7304aa4 | |||
7a268ce0c8 | |||
49a1ed773b | |||
99ab1fe252 | |||
112abc68c6 | |||
f2bb820de8 | |||
0f96bedecd | |||
70548ea687 |
30
Makefile
30
Makefile
@ -1,5 +1,5 @@
|
||||
# Makefile for autodist
|
||||
# Copyright (C) 2006-2009 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Copyright (C) 2006-2014 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
PACKAGE = autodist
|
||||
|
||||
@ -11,13 +11,13 @@ sysconfdir = /etc
|
||||
sbindir = ${exec_prefix}/sbin
|
||||
bindir = ${exec_prefix}/bin
|
||||
datadir = ${prefix}/share
|
||||
initrddir = ${sysconfdir}/rc.d/init.d
|
||||
unitdir = /lib/systemd/system
|
||||
libexecdir = ${prefix}/libexec
|
||||
mandir = ${prefix}/usr/share/man
|
||||
sysconfigdir= ${sysconfdir}/sysconfig
|
||||
configdir = ${sysconfdir}/autodist
|
||||
localstatedir= /var
|
||||
piddir= ${localstatedir}/run/autodist
|
||||
piddir= /run/autodist
|
||||
cgidir = ${localstatedir}/www/cgi-bin
|
||||
htmldir = ${localstatedir}/www/html
|
||||
|
||||
@ -47,10 +47,12 @@ install-dirs:
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(sysconfdir)/cron.hourly
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(sysconfdir)/cron.daily
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(sysconfdir)/sysconfig
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(sysconfdir)/logrotate.d
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(bindir)
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(sbindir)
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(cgidir)
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(htmldir)
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(unitdir)
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(pck_datadir)
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(pck_statedir)
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(pck_statedir)/template/autoupdate/spec-patches-build/old
|
||||
@ -61,9 +63,9 @@ install-dirs:
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(pck_logdir)/install/{ok,failed}
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(pck_logdir)/send/{ok,failed}
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(pck_statedir)/RPM/{SPECS,SRPMS,BUILD,SOURCES,RPMS/{noarch,i586,ppc,x86_64,arm}}
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(piddir)
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(libexecdir)
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(localstatedir)/webbuild/{cache,home,notes,tmp,users}
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(localstatedir)/webbuild/{cache,home,notes,tmp,users,uploads}
|
||||
@$(INSTALL_DIR) $(DESTDIR)$(prefix)/lib/tmpfiles.d/
|
||||
|
||||
install-programs:
|
||||
@$(INSTALL_SCRIPT) autodist $(DESTDIR)$(bindir)/autodist
|
||||
@ -81,22 +83,11 @@ install-programs:
|
||||
@$(INSTALL_SCRIPT) webbuild/webbuild-checkpassword $(DESTDIR)$(libexecdir)/webbuild-checkpassword
|
||||
@$(INSTALL_SCRIPT) webbuild/webbuild-functions $(DESTDIR)$(pck_datadir)/webbuild-functions
|
||||
@$(INSTALL_SCRIPT) webbuild/webbuild-functions-private $(DESTDIR)$(pck_datadir)/webbuild-functions-private
|
||||
@$(INSTALL_SCRIPT) telegram/openmamba_bot.py $(DESTDIR)$(pck_datadir)/openmamba_bot.py
|
||||
@cp -a webbuild/html/* $(DESTDIR)$(htmldir)
|
||||
|
||||
install-data:
|
||||
@$(INSTALL_DATA) etc/autodist/config $(DESTDIR)$(configdir)/config
|
||||
@$(INSTALL_DATA) etc/autodist/distdb $(DESTDIR)$(configdir)/distdb
|
||||
@$(INSTALL_DATA) etc/autodist/distdb.i586 $(DESTDIR)$(configdir)/distdb.i586
|
||||
@$(INSTALL_DATA) etc/autodist/distdb.arm $(DESTDIR)$(configdir)/distdb.arm
|
||||
@$(INSTALL_DATA) etc/autodist/distdb.x86_64 $(DESTDIR)$(configdir)/distdb.x86_64
|
||||
@$(INSTALL_DATA) etc/autodist/distdb.ppc $(DESTDIR)$(configdir)/distdb.ppc
|
||||
@$(INSTALL_DATA) etc/autodist/legacy $(DESTDIR)$(configdir)/legacy
|
||||
@$(INSTALL_DATA) etc/autodist/unstage $(DESTDIR)$(configdir)/unstage
|
||||
@$(INSTALL_DATA) etc/autodist/unstage.i586 $(DESTDIR)$(configdir)/unstage.i586
|
||||
@$(INSTALL_DATA) etc/autodist/unstage.arm $(DESTDIR)$(configdir)/unstage.arm
|
||||
@$(INSTALL_DATA) etc/autodist/unstage.x86_64 $(DESTDIR)$(configdir)/unstage.x86_64
|
||||
@$(INSTALL_DATA) etc/autodist/unstage.ppc $(DESTDIR)$(configdir)/unstage.ppc
|
||||
@$(INSTALL_DATA) etc/autodist/distdb.d/*.db $(DESTDIR)$(configdir)/distdb.d/
|
||||
@$(INSTALL_DATA) etc/autodist/blacklist $(DESTDIR)$(configdir)/blacklist
|
||||
@$(INSTALL_DATA) etc/autodist/distdb.d/* $(DESTDIR)$(configdir)/distdb.d/
|
||||
@$(INSTALL_DATA) etc/sudoers.d/autoport $(DESTDIR)$(sysconfdir)/sudoers.d/autoport
|
||||
@ -108,7 +99,12 @@ install-data:
|
||||
@$(INSTALL_SCRIPT) etc/cron.hourly/66-autoport-chroot $(DESTDIR)$(sysconfdir)/cron.hourly/
|
||||
@$(INSTALL_SCRIPT) etc/cron.daily/40-autodist-cleanold $(DESTDIR)$(sysconfdir)/cron.daily/
|
||||
@$(INSTALL_SCRIPT) etc/cron.daily/40-autodist-upstream-updates $(DESTDIR)$(sysconfdir)/cron.daily/
|
||||
@$(INSTALL_SCRIPT) etc/logrotate.d/webbuild $(DESTDIR)$(sysconfdir)/logrotate.d/webbuild
|
||||
@$(INSTALL_DATA) autospec-conf $(DESTDIR)$(pck_statedir)/.autospec
|
||||
@$(INSTALL_DATA) autodist-bashrc $(DESTDIR)$(pck_statedir)/.bashrc
|
||||
@$(INSTALL_DATA) autodist-bash_profile $(DESTDIR)$(pck_statedir)/.bash_profile
|
||||
@$(INSTALL_DATA) autodist-tmpfilesd $(DESTDIR)$(prefix)/lib/tmpfiles.d/autodist.conf
|
||||
@$(INSTALL_DATA) telegram/openmambabot.service $(DESTDIR)$(unitdir)/openmambabot.service
|
||||
@touch $(DESTDIR)$(pck_statedir)/template/autoupdate/auto.success
|
||||
@touch $(DESTDIR)$(pck_statedir)/template/autoupdate/auto.skip
|
||||
|
||||
|
215
autodist
215
autodist
@ -1,24 +1,24 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Autodist -- batch build tool for RPM based distributions
|
||||
# Copyright (C) 2006-2013 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Copyright (C) 2006-2016 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
# Released under the terms of the GNU GPL release 3 license
|
||||
#
|
||||
VERSION=0.9.9
|
||||
me=(${0##*/} $VERSION "Sat Aug 20 2010")
|
||||
VERSION=1.0.1
|
||||
me=(${0##*/} $VERSION "Tue Jan 26 2016")
|
||||
exec 3>`readlink /proc/self/fd/0`
|
||||
|
||||
function usage() {
|
||||
echo "\
|
||||
${me[0]} ${me[1]}
|
||||
"$"Copyright (C) 2006-2012 Silvan Calarco <silvan.calarco@mambasoft.it>""
|
||||
"$"Copyright (C) 2006-2016 Silvan Calarco <silvan.calarco@mambasoft.it>""
|
||||
"$"Released under the terms of the GNU GPL v3 license"
|
||||
echo "
|
||||
"$"Batch build tool for bulding a whole distribution and much more.""
|
||||
|
||||
"$"Usage"":
|
||||
$me [operations ...] [options ...] [job ...] [-- autospec_args]
|
||||
$me [operations ...] [options ...] [job ...] [-- autospec_args] [--- script_args]
|
||||
|
||||
"$"Operations"":
|
||||
-a,--autobuild "$"Start batch build operations (implies -p -u -b -s --severity 1)""
|
||||
@ -40,38 +40,37 @@ ${me[0]} ${me[1]}
|
||||
-v,--verbose "$"Be verbose""
|
||||
--force "$"Pass force parameter to autospec""
|
||||
--repository "$"Pass given repository as base for operations""
|
||||
--repository-strict "$"Only prepare packages from base repository specified with --repository""
|
||||
--server num "$"Pass given server number to autospec for send operation""
|
||||
--severity num "$"Error handling level:
|
||||
0: don't stop (default)
|
||||
1: skip current job on error
|
||||
0: don't stop
|
||||
1: skip current job on error (default)
|
||||
2: abort on error""
|
||||
--arch "$"Build packages for specified target architecture""
|
||||
--user user "$"Pass calling user name for Webbuild social messages""
|
||||
--rebuild-srpms "$"Rebuild SRPMs when sending""
|
||||
|
||||
job "$"Job specification in the form pkg#version, job#version, job/pkg#version, examples:
|
||||
glibc#2.11.1
|
||||
kernel-extra
|
||||
kernel-packages/lirc""
|
||||
autospec_args "$"Send specified arguments to autospec""
|
||||
script_args "$"Send specified arguments to update-specfile script""
|
||||
"
|
||||
|
||||
}
|
||||
|
||||
function fetch_repository_list() {
|
||||
local REPOLIST=$1
|
||||
|
||||
if [ -r ${LOCAL_REPS_BASE_DIR}/$REPOLIST ]; then
|
||||
echo ${LOCAL_REPS_BASE_DIR}/$REPOLIST
|
||||
function fetch_repository_file() {
|
||||
local REPOFILE=$1
|
||||
if [ -r ${LOCAL_REPS_BASE_DIR}/$REPOFILE ]; then
|
||||
echo ${LOCAL_REPS_BASE_DIR}/$REPOFILE
|
||||
return 0
|
||||
else
|
||||
if [ ! -r $USERCONFDIR/$REPOLIST -o "`find $USERCONFDIR/$REPOLIST -mmin +60 2>/dev/null`" ]; then
|
||||
mkdir -p `dirname $USERCONFDIR/$REPOLIST`
|
||||
curl -s $REPS_BASE_URL/$REPOLIST -o $USERCONFDIR/$REPOLIST || {
|
||||
echo "Error: unable to fetch $REPS_BASE_DIR/$REPOLIST"
|
||||
exit 1
|
||||
}
|
||||
if [ ! -r $USERCONFDIR/$REPOFILE -o "`find $USERCONFDIR/$REPOFILE -mmin +60 2>/dev/null`" ]; then
|
||||
mkdir -p `dirname $USERCONFDIR/$REPOFILE`
|
||||
curl -f -L -s $REPS_BASE_URL/$REPOFILE -o $USERCONFDIR/$REPOFILE || return 1
|
||||
fi
|
||||
echo $USERCONFDIR/$REPOLIST
|
||||
echo $USERCONFDIR/$REPOFILE
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
@ -95,8 +94,9 @@ BUILDARCH=`rpm --eval %{_build_cpu}`
|
||||
TARGETARCH=$BUILDARCH
|
||||
CONFIGFILE=$SYSCONFDIR/config
|
||||
SCRIPT_UPDATE_SPECFILE=$SCRIPTDIR/update-specfile
|
||||
SCRIPT_UPDATE_SPECFILE_CUSTOM=$SCRIPTDIR/update-specfile-custom
|
||||
AUTOSPEC_CMD="/usr/bin/autospec"
|
||||
PIDFILE="/var/run/autodist/autodist.pid"
|
||||
PIDFILE="/run/autodist/autodist.pid"
|
||||
|
||||
# Configuration defaults normally overriden in configuration file
|
||||
AUTOBUILD_MAXNUM=50
|
||||
@ -171,6 +171,9 @@ for ((i=1; i<=$#; i++)); do
|
||||
}
|
||||
AUTODIST_REPOSITORY="${!i}"
|
||||
;;
|
||||
--repository-strict)
|
||||
REPOSITORY_STRICT=1
|
||||
;;
|
||||
--severity) let i+=1
|
||||
[ "${!i}" ] || {
|
||||
echo "Error: --severity parameter not given, aborting."
|
||||
@ -192,25 +195,42 @@ for ((i=1; i<=$#; i++)); do
|
||||
}
|
||||
WEBBUILD_USER_CMDLINE="${!i}"
|
||||
;;
|
||||
--rebuild-srpms)
|
||||
REBUILD_SRPMS=1
|
||||
;;
|
||||
-*) if [ "${!i}" = "--" ]; then
|
||||
AUTOSPEC_ARGS_MODE=1
|
||||
SCRIPT_ARGS_MODE=
|
||||
elif [ "${!i}" = "---" ]; then
|
||||
SCRIPT_ARGS_MODE=1
|
||||
AUTOSPEC_ARGS_MODE=
|
||||
elif [ "$AUTOSPEC_ARGS_MODE" ]; then
|
||||
AUTOSPEC_ARGS="$AUTOSPEC_ARGS ${!i}"
|
||||
elif [ "$SCRIPT_ARGS_MODE" ]; then
|
||||
SCRIPT_ARGS="$SCRIPT_ARGS ${!i}"
|
||||
else
|
||||
echo "ERROR: invalid option \`${!i}'; aborting."
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*) if [ "$AUTOSPEC_ARGS_MODE" != "1" ]; then
|
||||
JOBNAME[${#JOBNAME[@]}]="${!i/\#*}"
|
||||
[ "${!i/*\#}" != "${!i}" ] && JOBVER[${#JOBNAME[@]}]="+${!i/*\#}"
|
||||
else
|
||||
*) if [ "$AUTOSPEC_ARGS_MODE" ]; then
|
||||
if [ "${!i/ }" != "${!i}" ]; then
|
||||
# pass multiple word arguments inside quotation marks
|
||||
AUTOSPEC_ARGS="$AUTOSPEC_ARGS \"${!i}\""
|
||||
else
|
||||
AUTOSPEC_ARGS="$AUTOSPEC_ARGS ${!i}"
|
||||
fi
|
||||
elif [ "$SCRIPT_ARGS_MODE" ]; then
|
||||
if [ "${!i/ }" != "${!i}" ]; then
|
||||
# pass multiple word arguments inside quotation marks
|
||||
SCRIPT_ARGS="$SCRIPT_ARGS \"${!i}\""
|
||||
else
|
||||
SCRIPT_ARGS="$SCRIPT_ARGS ${!i}"
|
||||
fi
|
||||
else
|
||||
JOBIDX=${#JOBNAME[@]}
|
||||
JOBNAME[$JOBIDX]="${!i/\#*}"
|
||||
[ "${!i/*\#}" != "${!i}" ] && JOBVER[$JOBIDX]="+${!i/*\#}"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@ -220,12 +240,6 @@ done
|
||||
[ "$SEND_SERVER" ] || SEND_SERVER=$AUTODIST_REPOSITORY
|
||||
|
||||
SEND_SERVER_CMD="--server $SEND_SERVER"
|
||||
AUTOUPDATEDIR=${LOCAL_REPS_BASE_DIR}/$AUTODIST_REPOSITORY/autoupdate/
|
||||
|
||||
[ -r $AUTOUPDATEDIR ] || {
|
||||
AUTOUPDATEDIR=$USERCONFDIR/$AUTODIST_REPOSITORY/autoupdate
|
||||
mkdir -p $AUTOUPDATEDIR
|
||||
}
|
||||
|
||||
# perform arch names conversions
|
||||
case $BUILDARCH in
|
||||
@ -236,34 +250,6 @@ case $TARGETARCH in
|
||||
i386|i486|i686) TARGETARCH=i586 ;;
|
||||
esac
|
||||
|
||||
SOURCESDIR=$AUTOUPDATEDIR/sources/
|
||||
SUCCESSLISTDIR=$AUTOUPDATEDIR
|
||||
SKIPPEDLISTDIR=$AUTOUPDATEDIR
|
||||
|
||||
SRCPKGLIST=`fetch_repository_list $AUTODIST_REPOSITORY/srcpkglist`
|
||||
[ "$AUTODIST_DELAYED_REPOSITORY" ] && SRCPKGLIST_DELAYED=`fetch_repository_list $AUTODIST_DELAYED_REPOSITORY/srcpkglist`
|
||||
|
||||
BUILDSLIST=`fetch_repository_list distromatic/$AUTODIST_REPOSITORY/builds-$TARGETARCH`
|
||||
[ "$AUTODIST_DELAYED_REPOSITORY" ] && BUILDSLIST_DELAYED=`fetch_repository_list distromatic/$AUTODIST_DELAYED_REPOSITORY/builds-$TARGETARCH`
|
||||
|
||||
[ -e "$DISTDB" ] || {
|
||||
echo "ERROR: missing distdb file $DISTDB; aborting."
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -e $LOGBASEDIR ] || {
|
||||
mkdir -p $LOGBASEDIR/prepare/{ok,failed}
|
||||
mkdir -p $LOGBASEDIR/update/{ok,failed}
|
||||
mkdir -p $LOGBASEDIR/build/{ok,failed}
|
||||
mkdir -p $LOGBASEDIR/install/{ok,failed}
|
||||
mkdir -p $LOGBASEDIR/send/{ok,failed}
|
||||
}
|
||||
|
||||
#[ "$PACKAGE" ] || {
|
||||
# echo "ERROR: missing target; aborting."
|
||||
# usage
|
||||
# exit 1
|
||||
#}
|
||||
|
||||
# for webbuild message
|
||||
function cgi_encodevar() {
|
||||
@ -532,7 +518,7 @@ function launch_pkgs_loop() {
|
||||
# launch loop for each package
|
||||
for pkg in ${JOB_PKGS[*]}; do
|
||||
|
||||
unset LOGFILE_SUFFIX
|
||||
unset LOGFILE_SUFFIX AUTOUPDATE_SCRIPT_ALREADY_RUN
|
||||
for a in ${JOB_VALUES[*]}; do
|
||||
tr_job=`echo $a | tr / _`
|
||||
LOGFILE_SUFFIX=${LOGFILE_SUFFIX}__$tr_job
|
||||
@ -582,8 +568,31 @@ function launch_pkgs_loop() {
|
||||
[ "$operation" = "update" -o "$operation" = "autoupdate" ] && continue
|
||||
fi
|
||||
fi
|
||||
$SCRIPT_UPDATE_SPECFILE $spec_dir/$pkg.spec
|
||||
;;
|
||||
if [ -x $SCRIPT_UPDATE_SPECFILE ]; then
|
||||
$SCRIPT_UPDATE_SPECFILE $spec_dir/$pkg.spec $SCRIPT_ARGS || {
|
||||
case $SEVERITY in
|
||||
0) ;;
|
||||
1) echo "%! Error: update-specfile script returned $?; skipping $pkg package."
|
||||
ret=1
|
||||
continue ;;
|
||||
*) echo "!! Error: update-specfile script returned $?; aborting."
|
||||
exit 1 ;;
|
||||
esac
|
||||
}
|
||||
fi
|
||||
if [ -x $SCRIPT_UPDATE_SPECFILE_CUSTOM ]; then
|
||||
$SCRIPT_UPDATE_SPECFILE_CUSTOM $spec_dir/$pkg.spec $SCRIPT_ARGS || {
|
||||
case $SEVERITY in
|
||||
0) ;;
|
||||
1) echo "%! Error: update-specfile-custom script returned $?; skipping $pkg package."
|
||||
ret=1
|
||||
continue ;;
|
||||
*) echo "!! Error: update-specfile-custom script returned $?; aborting."
|
||||
exit 1 ;;
|
||||
esac
|
||||
}
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
[ -e $spec_dir/$pkg.spec ] && {
|
||||
@ -626,6 +635,15 @@ function launch_pkgs_loop() {
|
||||
if [ "$PKGLINE" ]; then
|
||||
set -- $PKGLINE
|
||||
[[ $4 =~ "^[0-9]+$" ]] && REPNAME=${AUTODIST_REPOSITORIES[$4]} || REPNAME="$4"
|
||||
if [ "$REPNAME" != "$AUTODIST_REPOSITORY" -a "$REPOSITORY_STRICT" ]; then
|
||||
case $SEVERITY in
|
||||
0) echo "!! Warning: package comes from $REPNAME instead of $AUTODIST_REPOSITORY" ;;
|
||||
1) echo "!! Error: package comes from $REPNAME instead of $AUTODIST_REPOSITORY; skipping $pkg package."
|
||||
continue ;;
|
||||
*) echo "!! Error: package comes from $REPNAME instead of $AUTODIST_REPOSITORY; aborting."
|
||||
exit 1 ;;
|
||||
esac
|
||||
fi
|
||||
if [ "$REPNAME" ]; then
|
||||
command_opts="$command_opts --server ${REPNAME}"
|
||||
else
|
||||
@ -642,7 +660,7 @@ function launch_pkgs_loop() {
|
||||
if [ "$PKGLINE" ]; then
|
||||
set -- $PKGLINE
|
||||
pkglinever=$2
|
||||
# warning: asasuming version is passed first
|
||||
# warning: assuming version is passed first
|
||||
version_find_bigger "${passed_arguments/ *}" "$pkglinever"
|
||||
[ $? -eq 1 ] || {
|
||||
echo "!! Warning: skipping ${pkg} package already up to date ($pkglinever >= ${passed_arguments/ *})."
|
||||
@ -652,6 +670,11 @@ function launch_pkgs_loop() {
|
||||
continue
|
||||
}
|
||||
fi
|
||||
if [ -e $source_dir/$pkg-autoupdate ]; then
|
||||
echo "?= Running $pkg-autoupdate script with version ${passed_arguments/ *}"
|
||||
(cd $source_dir; sh ./$pkg-autoupdate ${passed_arguments/ *} >/dev/null)
|
||||
AUTOUPDATE_SCRIPT_ALREADY_RUN=1
|
||||
fi
|
||||
command_opts="-a3:4" ;;
|
||||
build)
|
||||
# skip package in job if it is in the delayed repository
|
||||
@ -666,6 +689,8 @@ function launch_pkgs_loop() {
|
||||
fi
|
||||
fi
|
||||
command_opts="-a5:6" ;;
|
||||
buildsrpm)
|
||||
command_opts="-a5:6 --norpm" ;;
|
||||
buildinstall)
|
||||
# skip package in job if up to date
|
||||
if [ "$PKGLINE" -a "$BUILDSLINE" ]; then
|
||||
@ -823,6 +848,11 @@ function launch_pkgs_loop() {
|
||||
}
|
||||
fi
|
||||
fi
|
||||
if [ "$2" != "$SPEC_VERSION" -a -e $source_dir/$pkg-autoupdate -a ! "$AUTOUPDATE_SCRIPT_ALREADY_RUN" ]; then
|
||||
echo "?= Running $pkg-autoupdate script with version ${passed_arguments/ *}"
|
||||
(cd $source_dir; sh ./$pkg-autoupdate ${passed_arguments/ *} >/dev/null)
|
||||
AUTOUPDATE_SCRIPT_ALREADY_RUN=1
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
buildinstall|send)
|
||||
@ -880,10 +910,32 @@ function log_date() {
|
||||
echo -n `LANG=C date +%Y%m%d@%H%M%S`
|
||||
}
|
||||
|
||||
DISTDBFILES="$DISTDB"
|
||||
[ -e $DISTDB.$TARGETARCH ] && DISTDBFILES="$DISTDBFILES $DISTDB.$TARGETARCH"
|
||||
[ -e ~/.autodist/distdb ] && DISTDBFILES="$DISTDBFILES ~/.autodist/distdb"
|
||||
[ -e ~/.autodist/distdb.$TARGETARCH ] && DISTDBFILES="$DISTDBFILES ~/.autodist/distdb.$TARGETARCH"
|
||||
[ -e $LOGBASEDIR ] || {
|
||||
mkdir -p $LOGBASEDIR/prepare/{ok,failed}
|
||||
mkdir -p $LOGBASEDIR/update/{ok,failed}
|
||||
mkdir -p $LOGBASEDIR/build/{ok,failed}
|
||||
mkdir -p $LOGBASEDIR/install/{ok,failed}
|
||||
mkdir -p $LOGBASEDIR/send/{ok,failed}
|
||||
}
|
||||
|
||||
#
|
||||
# Main
|
||||
#
|
||||
|
||||
DISTDBFILES=
|
||||
|
||||
DISTDB=`fetch_repository_file ${AUTODIST_REPOSITORY/-*}/distdb`
|
||||
[ "$DISTDB" ] && DISTDBFILES="$DISTDB"
|
||||
|
||||
DISTDBARCH=`fetch_repository_file ${AUTODIST_REPOSITORY/-*}/distdb.$TARGETARCH`
|
||||
if [ "$DISTDBARCH" ]; then
|
||||
DISTDBFILES="$DISTDBFILES $DISTDBARCH"
|
||||
fi
|
||||
|
||||
if [ ! "$DISTDBFILES" ]; then
|
||||
[ -e $SYSCONFDIR/distdb ] && DISTDBFILES="$SYSCONFDIR/distdb"
|
||||
[ -e $SYSCONFDIR/distdb.$TARGETARCH ] && DISTDBFILES="$DISTDBFILES $SYSCONFDIR/distdb.$TARGETARCH"
|
||||
fi
|
||||
|
||||
if [ "$do_listjobs" ]; then
|
||||
for f in $DISTDBFILES; do
|
||||
@ -931,6 +983,30 @@ for a in $LOGBASEDIR/{,prepare/{,ok,failed},update/{,ok,failed},build/{,ok,faile
|
||||
|
||||
done
|
||||
|
||||
AUTOUPDATEDIR=${LOCAL_REPS_BASE_DIR}/$AUTODIST_REPOSITORY/autoupdate/
|
||||
[ -r $AUTOUPDATEDIR ] || {
|
||||
AUTOUPDATEDIR=$USERCONFDIR/$AUTODIST_REPOSITORY/autoupdate
|
||||
mkdir -p $AUTOUPDATEDIR
|
||||
}
|
||||
|
||||
SOURCESDIR=$AUTOUPDATEDIR/sources/
|
||||
SUCCESSLISTDIR=$AUTOUPDATEDIR
|
||||
SKIPPEDLISTDIR=$AUTOUPDATEDIR
|
||||
|
||||
SRCPKGLIST=`fetch_repository_file $AUTODIST_REPOSITORY/srcpkglist`
|
||||
[ $? -eq 0 ] || echo "Warning: unable to fetch $SRCPKGLIST">&2
|
||||
|
||||
[ "$AUTODIST_DELAYED_REPOSITORY" ] && SRCPKGLIST_DELAYED=`fetch_repository_file $AUTODIST_DELAYED_REPOSITORY/srcpkglist`
|
||||
[ $? -eq 0 ] || echo "Warning: unable to fetch $SRCPKGLIST_DELAYED">&2
|
||||
|
||||
BUILDSLIST=`fetch_repository_file distromatic/$AUTODIST_REPOSITORY/builds-$TARGETARCH`
|
||||
[ "$AUTODIST_DELAYED_REPOSITORY" ] && BUILDSLIST_DELAYED=`fetch_repository_file distromatic/$AUTODIST_DELAYED_REPOSITORY/builds-$TARGETARCH`
|
||||
[ $? -eq 0 ] || echo "Warning: unable to fetch $BUILDSLIST">&2
|
||||
|
||||
LEGACYLIST=`fetch_repository_file ${AUTODIST_REPOSITORY/-*}/legacy`
|
||||
[ "$LEGACYLIST" ] || LEGACYLIST=$SYSCONFDIR/legacy
|
||||
[ $? -eq 0 ] || echo "Warning: unable to fetch $LEGACYLIST">&2
|
||||
|
||||
echo "%% Autodist started with PID $$ @ `LANG=C date`"
|
||||
|
||||
# autobuild: add jobs ordered by oldest builds
|
||||
@ -1288,7 +1364,12 @@ for JOB_NUM in `seq 1 ${#JOBNAME[*]}`; do
|
||||
}
|
||||
# avoid calling autospec with --nosrpm --norpm (not working as expected and not useful)
|
||||
if [ "${AUTOSPEC_ARGS/--nosrpm}" = "$AUTOSPEC_ARGS" ]; then
|
||||
echo "== sending source rpms"
|
||||
if [ $REBUILD_SRPMS ]; then
|
||||
echo "== rebuilding and sending source rpms"
|
||||
launch_pkgs_loop buildsrpm "$AUTOSPEC_ARGS --norpm"
|
||||
else
|
||||
echo "== sending source rpms"
|
||||
fi
|
||||
launch_pkgs_loop send "$AUTOSPEC_ARGS --norpm $SEND_SERVER_CMD"
|
||||
if [ $? -gt 0 ]; then
|
||||
case $SEVERITY in
|
||||
|
14
autodist-bash_profile
Normal file
14
autodist-bash_profile
Normal file
@ -0,0 +1,14 @@
|
||||
# .bash_profile
|
||||
|
||||
# Get the aliases and functions
|
||||
if [ -f ~/.bashrc ]; then
|
||||
. ~/.bashrc
|
||||
fi
|
||||
|
||||
# User specific environment and startup programs
|
||||
if [ -d $HOME/bin ]; then
|
||||
PATH=$PATH:$HOME/bin
|
||||
fi
|
||||
export PATH
|
||||
|
||||
unset USERNAME
|
8
autodist-bashrc
Normal file
8
autodist-bashrc
Normal file
@ -0,0 +1,8 @@
|
||||
# .bashrc
|
||||
|
||||
# User specific aliases and functions
|
||||
|
||||
# Source global definitions
|
||||
if [ -f /etc/bashrc ]; then
|
||||
. /etc/bashrc
|
||||
fi
|
20
autodist-cgi
20
autodist-cgi
@ -120,7 +120,7 @@ for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
|
||||
AUTODISTSTATEFILE="$AUTOPORTLOGDIR/autoport-$r-current"
|
||||
elif [ "${AUTOPORT_NATIVE[$i]}" ]; then
|
||||
LOGFILE="/var/autodist/log/autoport-native-$r-${AUTOPORT_ARCH[$i]}.log"
|
||||
LASTLOGFILE="/var/autodist/log/log/autoport-native-$r-${AUTOPORT_ARCH[$i]}-last.log"
|
||||
LASTLOGFILE="/var/autodist/log/autoport-native-$r-${AUTOPORT_ARCH[$i]}-last.log"
|
||||
AUTODISTLOGFILE="$AUTOPORTLOGDIR/${AUTOPORT_ARCH[$i]}/$r-current.log"
|
||||
AUTODISTSTATEFILE="$AUTOPORTLOGDIR/autoport-$r-current"
|
||||
elif [ "${AUTOPORT_CROSS[$i]}" ]; then
|
||||
@ -164,7 +164,7 @@ _EOF
|
||||
if [ "${SHOWLOG/\/ok\/}" != "${SHOWLOG}" -o "${SHOWLOG/\failed\/}" != "${SHOWLOG}" ]; then
|
||||
SHOWLOGPKG=${SHOWLOG/*\/}
|
||||
[ "${SHOWLOGPKG}" ] || continue
|
||||
echo "<table style=\"color:black\"><tr><td colspan=3>Last ${SHOWLOGPKG} logs:</td>"
|
||||
echo "<table style=\"color:black;width:auto;\"><tr><td colspan=3>Last ${SHOWLOGPKG} logs:</td>"
|
||||
for t in prepare update build install send; do
|
||||
echo -n "<tr><td>$t:</td><td>"
|
||||
[ -e ${BUILDLOGDIR}${t}/ok/${SHOWLOGPKG} ] && echo -n "<td><a style=\"color:green;text-decoration:none\" target=_autodist href=\"?NUM=$i&REP=$RNUM$HOST_ADD&SHOWLOG=${t}/ok/${SHOWLOGPKG}\">OK</a></td>" || echo "<td></td>"
|
||||
@ -192,7 +192,7 @@ _EOF
|
||||
fi
|
||||
[ "${AUTOPORT_UPDATE[$i]}" ] && break
|
||||
elif [ ! "$SHOWLOG" ]; then
|
||||
RELOADTIME=60000
|
||||
RELOADTIME=600000
|
||||
[[ "$NUM" && "$NUM" != "$i" ]] && continue
|
||||
[[ "$HOST" = "$AS_HOST" ]] || continue
|
||||
if [ "${AUTOPORT_UPDATE[$i]}" ]; then
|
||||
@ -218,7 +218,7 @@ _EOF
|
||||
<div class=downloadbox align=center>
|
||||
<div align=left style="background-color: white; height: 250px; width: 850px; overflow: auto; font-size: 8pt; border:1px solid #2b6600; margin: 4px; padding:4; background-color: #e0f2d0;">
|
||||
_EOF
|
||||
echo -n "<pre style='margin:1px'>"
|
||||
echo -n "<pre style='margin:1px;word-wrap:normal;white-space:pre;'>"
|
||||
unset BUILDNOWIDX BUILDLOG BUILDNOW BUILDNOWSTATUS SCHEDULED STARTTIME AUTODIST_PID ENDTIME
|
||||
if [ "${AUTOPORT_UPDATE[$i]}" ]; then
|
||||
BUILDNOWIDX=0
|
||||
@ -358,10 +358,14 @@ done
|
||||
# only root host (0) calls other hosts
|
||||
if [ "$AS_HOST" = "0" -a ! "$SHOWLOG" ]; then
|
||||
for h in `seq 1 ${#AUTOPORT_CGI_HOST[*]}`; do
|
||||
if [ "$NUM" -a "$HOST" = "$h" ]; then
|
||||
curl "${AUTOPORT_CGI_HOST[$h]}?AS_HOST=$h&LINES=$LINES&NUM=$NUM&REP=$RNUM&HOST=$HOST" 2>/dev/null
|
||||
elif [ ! "$NUM" ]; then
|
||||
curl "${AUTOPORT_CGI_HOST[$h]}?AS_HOST=$h&LINES=$LINES" 2>/dev/null
|
||||
WBHOSTURL=`echo ${AUTOPORT_CGI_HOST[$h]} | sed "s|^\(http[s]*://[^/]*\).*$|\1|"`
|
||||
if [ "$WBHOSTURL" ]; then
|
||||
curl -m1 -s -I ${WBHOSTURL} >/dev/null || continue
|
||||
if [ "$NUM" -a "$HOST" = "$h" ]; then
|
||||
curl "${AUTOPORT_CGI_HOST[$h]}?AS_HOST=$h&LINES=$LINES&NUM=$NUM&REP=$RNUM&HOST=$HOST" 2>/dev/null
|
||||
elif [ ! "$NUM" ]; then
|
||||
curl "${AUTOPORT_CGI_HOST[$h]}?AS_HOST=$h&LINES=$LINES" 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Copyright (c) 2007-2014 by Silvan Calarco
|
||||
#
|
||||
. /etc/autodist/config
|
||||
#. /sysconfig/openmamba-central
|
||||
[ -r /etc/autodist/config-secret ] && . /etc/autodist/config-secret
|
||||
|
||||
basearch=i586
|
||||
|
||||
@ -15,21 +15,22 @@ function usage() {
|
||||
echo "Copyright (c) 2007-2014 by Silvan Calarco"
|
||||
echo
|
||||
echo "Usage:"
|
||||
echo "$me list"
|
||||
echo "$me import REPOSITORY [PKGS ...] [-d REPOSITORY] [-s] [-y]"
|
||||
echo "$me release REPOSITORY [PKGS ...] [-d REPOSITORY] [-s] [-y]"
|
||||
echo "$me archive REPOSITORY PKGS ..."
|
||||
echo "$me restore REPOSITORY PKGS ..."
|
||||
echo "$me query REPOSITORY PKGS ..."
|
||||
echo "$me search [-i] [-r regexp] STRING"
|
||||
echo "$me verify REPOSITORY [PKGS ...]"
|
||||
echo "$me inspect REPOSITORY {PKGS ...} [-d REPOSITORY]"
|
||||
echo "$me setwarning REPOSITORY {PKG ...} -t \"TEXT\""
|
||||
echo "$me diff REPOSITORY [PKGS ...] [-d REPOSITORY]"
|
||||
echo "$me distromatic REPOSITORY"
|
||||
echo "$me install REPOSITORY [PKGS ...] [-f]"
|
||||
echo "$me import REPOSITORY [PKGS ...] [-d REPOSITORY] [-s] [-y]"
|
||||
echo "$me inspect REPOSITORY {PKGS ...} [-d REPOSITORY]"
|
||||
echo "$me list"
|
||||
echo "$me query REPOSITORY PKGS ..."
|
||||
echo "$me release REPOSITORY [PKGS ...] [-d REPOSITORY] [-s] [-y]"
|
||||
echo "$me restore REPOSITORY PKGS ..."
|
||||
echo "$me search [-i] [-r regexp] STRING"
|
||||
echo "$me setwarning REPOSITORY {PKG ...} -t \"TEXT\""
|
||||
echo "$me verify REPOSITORY [PKGS ...]"
|
||||
echo
|
||||
echo " -d use given repository as destination (default: devel)"
|
||||
echo " -f force import to destination repository"
|
||||
echo " -f force operation"
|
||||
echo " -r match repositories with given regexp"
|
||||
echo " -s simulate operations to see if it would work"
|
||||
echo " -t warning text"
|
||||
@ -40,8 +41,8 @@ function get_packages_from_last_build() {
|
||||
local rep=$1
|
||||
[ "$rep" ] || return
|
||||
[ -r $SRCPKGLIST ] || {
|
||||
echo "Error: srcpkglist file missing for $origrepository repository; aborting."
|
||||
exit 1
|
||||
echo "ERROR: srcpkglist file missing for $origrepository repository; aborting." >&2
|
||||
exit 200
|
||||
}
|
||||
tmpfile=`mktemp`
|
||||
packages=()
|
||||
@ -61,8 +62,8 @@ get_pkg_srcinfo() {
|
||||
|
||||
local rep pkg line
|
||||
|
||||
[ $1 ] && rep=$1 || exit 1
|
||||
[ $2 ] && pkg=$2 || exit 1
|
||||
[ $1 ] && rep=$1 || exit 200
|
||||
[ $2 ] && pkg=$2 || exit 200
|
||||
|
||||
unset pkg_archs pkg_name pkg_version pkg_release
|
||||
|
||||
@ -93,8 +94,8 @@ function get_pkg_buildinfo() {
|
||||
|
||||
local pkg i a
|
||||
|
||||
[ $1 ] && rep=$1 || exit 1
|
||||
[ $2 ] && buildarch=$2 || exit 1
|
||||
[ $1 ] && rep=$1 || exit 200
|
||||
[ $2 ] && buildarch=$2 || exit 200
|
||||
[ $3 ] && pkg=$3
|
||||
|
||||
pkg_archs=();
|
||||
@ -120,7 +121,7 @@ function get_pkg_buildinfo() {
|
||||
pkg_group pkg_license pkg_size pkg_buildtime pkg_altrep pkg_repository
|
||||
|
||||
if [ "$buildarch" = "any" ]; then
|
||||
# echo "Error: package $pkg does not exist in $rep; aborting."
|
||||
# echo "ERROR: package $pkg does not exist in $rep; aborting." >&2
|
||||
return;
|
||||
fi
|
||||
|
||||
@ -152,8 +153,40 @@ function get_pkg_buildinfo() {
|
||||
return 0
|
||||
}
|
||||
|
||||
# get_pkg_info - uses distromatic generated build file to get packages information from the repository
|
||||
#
|
||||
# $1: repository name
|
||||
# $2: architecture
|
||||
# $3: pkg name
|
||||
function get_pkg_info() {
|
||||
|
||||
local pkg buildarch rep line
|
||||
|
||||
[ $1 ] && rep=$1 || exit 200
|
||||
[ $2 ] && buildarch=$2 || exit 200
|
||||
[ $3 ] && pkg=$3 || exit 200
|
||||
|
||||
[ -e ${PKGLIST}.$buildarch ] || {
|
||||
echo "ERROR: get_pkg_info: file ${PKGLIST}.$buildarch missing; aborting."
|
||||
exit 1
|
||||
}
|
||||
|
||||
line=`grep "^$pkg " ${PKGLIST}.$buildarch 2>/dev/null | tail -n1`
|
||||
set -- $line
|
||||
pkg_name=$1
|
||||
pkg_version=$2
|
||||
pkg_size=$3
|
||||
pkg_unknown=$4
|
||||
pkg_repository=$5
|
||||
pkg_unknown2=$6
|
||||
pkg_release=$7
|
||||
pkg_arch=$buildarch
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
function import_file() {
|
||||
[ $1 ] || exit 1
|
||||
[ $1 ] || exit 200
|
||||
|
||||
local f import_mode
|
||||
f=$1
|
||||
@ -168,7 +201,7 @@ function import_file() {
|
||||
|
||||
if [ "$ORIG_MODE" = "remote" ]; then
|
||||
if [ $ORIG_URL_LOCAL_ARCH -a ! -f $ORIG_URL_LOCAL_ARCH/$f ]; then
|
||||
echo "Warning: package missing in local mirror; setting copy from remote repository."
|
||||
echo "WARNING: package missing in local mirror; setting copy from remote repository." >&2
|
||||
fi
|
||||
|
||||
if [ "$DEST_MODE" = "local" ]; then
|
||||
@ -177,8 +210,8 @@ function import_file() {
|
||||
echo -n "(L) "
|
||||
# if file exists in a local mirror use it by preference
|
||||
cp $ORIG_URL_LOCAL_ARCH/$f $DEST_URL_ARCH/ || {
|
||||
echo "Error: cannot move file $ORIG_URL_LOCAL_ARCH/$f to $DEST_URL_ARCH/$f; aborting."
|
||||
exit 1
|
||||
echo "ERROR: cannot move file $ORIG_URL_LOCAL_ARCH/$f to $DEST_URL_ARCH/$f; aborting." >&2
|
||||
exit 200
|
||||
}
|
||||
#chown ftp$DEST_REPOSITORY:users $DEST_URL_ARCH/$f
|
||||
eval curl -s -u${AUTODIST_REPOSITORIES_REMOTE_FTPUSER}:${AUTODIST_REPOSITORIES_REMOTE_FTPPASS} $ORIG_URL_ARCH $curl_delete_add >/dev/null && {
|
||||
@ -186,7 +219,7 @@ function import_file() {
|
||||
touch $ORIG_URL_LOCAL_ARCH
|
||||
} || {
|
||||
echo
|
||||
echo "Warning: cannot delete remote file $ORIG_URL_ARCH/$f; you'll have to delete it."
|
||||
echo "WARNING: cannot delete remote file $ORIG_URL_ARCH/$f; you'll have to delete it." >&2
|
||||
}
|
||||
else
|
||||
echo -n "(R) "
|
||||
@ -194,28 +227,28 @@ function import_file() {
|
||||
--get $ORIG_URL_ARCH/$f \
|
||||
-o $DEST_URL_ARCH/$f $curl_delete_add || {
|
||||
echo
|
||||
echo "Error: cannot get file $ORIG_URL_ARCH/$f; aborting."
|
||||
exit 1
|
||||
echo "ERROR: cannot get file $ORIG_URL_ARCH/$f; aborting." >&2
|
||||
exit 200
|
||||
}
|
||||
fi
|
||||
else
|
||||
# remote -> remote
|
||||
echo "Error: remote to remote file import is not implemented yet; aborting."
|
||||
exit 1
|
||||
echo "ERROR: remote to remote file import is not implemented yet; aborting." >&2
|
||||
exit 200
|
||||
fi
|
||||
else
|
||||
if [ "$DEST_MODE" = "local" ]; then
|
||||
# local -> local
|
||||
cp $ORIG_URL_ARCH/$f $DEST_URL_ARCH/ || {
|
||||
echo "Error: cannot copy file $ORIG_URL_ARCH/$f to $DEST_URL_ARCH/$f; aborting."
|
||||
exit 1
|
||||
echo "ERROR: cannot copy file $ORIG_URL_ARCH/$f to $DEST_URL_ARCH/$f; aborting." >&2
|
||||
exit 200
|
||||
}
|
||||
#chown ftp$DEST_REPOSITORY:users $DEST_URL_ARCH/$f
|
||||
touch $DEST_URL_ARCH
|
||||
if [ "$import_mode" = "backup" ]; then
|
||||
rm -f $ORIG_URL_ARCH/$f || {
|
||||
echo "Error: cannot remove file $ORIG_URL_ARCH/$f; aborting."
|
||||
exit 1
|
||||
echo "ERROR: cannot remove file $ORIG_URL_ARCH/$f; aborting." >&2
|
||||
exit 200
|
||||
}
|
||||
touch $ORIG_URL_ARCH
|
||||
fi
|
||||
@ -226,12 +259,12 @@ function import_file() {
|
||||
-T $ORIG_URL_ARCH/$f \
|
||||
$DEST_URL_ARCH/ || {
|
||||
echo
|
||||
echo "Error: cannot send file $ORIG_URL_ARCH/$f; aborting."
|
||||
exit 1
|
||||
echo "ERROR: cannot send file $ORIG_URL_ARCH/$f; aborting." >&2
|
||||
exit 200
|
||||
}
|
||||
rm -f $ORIG_URL_ARCH/$f || {
|
||||
echo
|
||||
echo "Warning: cannot delete local file $ORIG_URL_ARCH/$f; you'll have to delete it."
|
||||
echo "WARNING: cannot delete local file $ORIG_URL_ARCH/$f; you'll have to delete it." >&2
|
||||
}
|
||||
touch $ORIG_URL_ARCH
|
||||
fi
|
||||
@ -250,8 +283,8 @@ function backup_local_file() {
|
||||
echo "backing up $m"
|
||||
if [ "$simulate" != "1" ]; then
|
||||
mv $m $LOCAL_BACKUP/ || {
|
||||
echo "Error: can't move $m to $LOCAL_BACKUP; aborting."
|
||||
exit 1
|
||||
echo "ERROR: can't move $m to $LOCAL_BACKUP; aborting." >&2
|
||||
exit 200
|
||||
}
|
||||
touch `dirname $m`
|
||||
fi
|
||||
@ -273,7 +306,7 @@ function backup_package() {
|
||||
if [ ! "$pkg_name" ]; then
|
||||
get_pkg_srcinfo $rep $archive_pkg
|
||||
if [ "$pkg_name" ]; then
|
||||
echo "Warning: only source package has been found in repository"
|
||||
echo "WARNING: only source package has been found in repository" >&2
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -284,12 +317,12 @@ function backup_package() {
|
||||
if [ -f $DEST_URL_LOCAL/$rep/SRPMS.base/$PKG_FILENAME ]; then
|
||||
backup_local_file $DEST_URL_LOCAL/$rep/SRPMS.base/$PKG_FILENAME
|
||||
else
|
||||
echo "Warning: package $PKG_FILENAME does not exist in local repository"
|
||||
echo "WARNING: package $PKG_FILENAME does not exist in local repository">&2
|
||||
fi
|
||||
|
||||
if [ "$simulate" != "1" -a "$DEST_MODE" = "remote" ]; then
|
||||
curl -s -u${AUTODIST_REPOSITORIES_REMOTE_FTPUSER}:${AUTODIST_REPOSITORIES_REMOTE_FTPPASS} $DEST_URL/$rep/SRPMS.base/ -Q "-DELE $PKG_FILENAME" >/dev/null || {
|
||||
echo "Warning: cannot delete remote file $DEST_URL/$rep/SRPMS.base/$PKG_FILENAME; you'll have to delete it."
|
||||
echo "WARNING: cannot delete remote file $DEST_URL/$rep/SRPMS.base/$PKG_FILENAME; you'll have to delete it." >&2
|
||||
}
|
||||
fi
|
||||
|
||||
@ -301,12 +334,12 @@ function backup_package() {
|
||||
if [ -f $DEST_URL_LOCAL/$rep/RPMS.$a/$PKG_FILENAME ]; then
|
||||
backup_local_file $DEST_URL_LOCAL/$rep/RPMS.$a/$PKG_FILENAME
|
||||
else
|
||||
echo "Warning: package $PKG_FILENAME does not exist in local repository"
|
||||
echo "WARNING: package $PKG_FILENAME does not exist in local repository" >&2
|
||||
fi
|
||||
|
||||
if [ "$simulate" != "1" -a "$DEST_MODE" = "remote" ]; then
|
||||
curl -s -u${AUTODIST_REPOSITORIES_REMOTE_FTPUSER}:${AUTODIST_REPOSITORIES_REMOTE_FTPPASS} $DEST_URL/$rep/RPMS.$a/ -Q "-DELE $PKG_FILENAME" >/dev/null || {
|
||||
echo "Warning: cannot delete remote file $DEST_URL/$rep/RPMS.$pkg_arch/$PKG_FILENAME; you'll have to delete it."
|
||||
echo "WARNING: cannot delete remote file $DEST_URL/$rep/RPMS.$pkg_arch/$PKG_FILENAME; you'll have to delete it." >&2
|
||||
}
|
||||
fi
|
||||
done
|
||||
@ -320,7 +353,7 @@ function backup_package() {
|
||||
# echo "`date +%Y%m%d%H%M` \"\" \"package $pkg_name ($pkg_version-$pkg_release) archived from $rep\"" >> $reg
|
||||
}
|
||||
else
|
||||
echo "Warning: package $archive_pkg does not exists in $rep; skipping."
|
||||
echo "WARNING: package $archive_pkg does not exists in $rep; skipping." >&2
|
||||
fi
|
||||
}
|
||||
|
||||
@ -340,8 +373,8 @@ function restore_local_file() {
|
||||
echo "restoring $r to $restorerepository"
|
||||
if [ "$simulate" != "1" ]; then
|
||||
cp ${backupprefix}/$r $restoredest || {
|
||||
echo "Error: can't copy $p to $restoredest; aborting."
|
||||
exit 1
|
||||
echo "ERROR: can't copy $p to $restoredest; aborting." >&2
|
||||
exit 200
|
||||
}
|
||||
touch $restoredest
|
||||
fi
|
||||
@ -414,7 +447,7 @@ function restore_package() {
|
||||
}
|
||||
|
||||
function import_package() {
|
||||
[ $1 ] || exit 1
|
||||
[ $1 ] || exit 200
|
||||
|
||||
local import_pkg import_mode
|
||||
|
||||
@ -426,19 +459,29 @@ function import_package() {
|
||||
# check release in dest repository
|
||||
get_pkg_buildinfo $destrepository $a $import_pkg
|
||||
[ "$pkg_name" ] && {
|
||||
# IMPORT_ORIG_ARCHS=(${IMPORT_ORIG_ARCHS[*]} $a)
|
||||
dest_ver=$pkg_version
|
||||
dest_rel=$pkg_release
|
||||
get_pkg_buildinfo $origrepository $a $import_pkg
|
||||
[ "$pkg_name" ] || {
|
||||
[ "$a" == "$basearch" ] && {
|
||||
echo "Error: package $import_pkg does not exist in $origrepository($a); skipping."
|
||||
return
|
||||
}
|
||||
if [ "$force" = "1" ]; then
|
||||
echo "Warning: package $import_pkg is missing in $origrepository($a) but present in $destrepository($a)."
|
||||
echo "Import forced. You will need to port package to the missing arch."
|
||||
else
|
||||
echo "Error: package $import_pkg is missing in $origrepository($a). This would break package in $destrepository($a) repository."
|
||||
return 255
|
||||
for b in ${AUTODIST_ARCHS[*]}; do
|
||||
if [ "$b" != "$a" ]; then
|
||||
# Get upstream version in other architecture, then if same version -> merge
|
||||
get_pkg_buildinfo $origrepository $b $import_pkg
|
||||
fi
|
||||
[ "$pkg_name" ] && break
|
||||
done
|
||||
if [ "$dest_ver-$dest_rel" != "$pkg_version-$pkg_release" ]; then
|
||||
[ "$a" == "$basearch" -a "$force" != "1" ] && {
|
||||
echo "ERROR: package $import_pkg for $a does not exist in $origrepository and can't merge due to different versions; skipping." >&2
|
||||
return 254
|
||||
}
|
||||
if [ "$force" = "1" ]; then
|
||||
echo "WARNING: package $import_pkg for $a is missing in $origrepository but present in $destrepository." >&2
|
||||
echo "Import forced. You will need to port package to the missing arch." >&2
|
||||
else
|
||||
echo "ERROR: package $import_pkg for $a is missing in $origrepository. This would break package in $destrepository($a) repository." >&2
|
||||
return 255
|
||||
fi
|
||||
fi
|
||||
}
|
||||
}
|
||||
@ -462,8 +505,8 @@ function import_package() {
|
||||
} || origpkgversion="none"
|
||||
|
||||
[ $origpkgname ] || {
|
||||
echo "Error: package $import_pkg does not exist in $origrepository; aborting."
|
||||
exit 1
|
||||
echo "ERROR: package $import_pkg does not exist in $origrepository; aborting." >&2
|
||||
exit 200
|
||||
}
|
||||
|
||||
DEST_URL_ARCH=$DEST_URL/$destrepository/SRPMS.base/
|
||||
@ -485,7 +528,7 @@ function import_package() {
|
||||
if [ $check_existence = 1 ]; then
|
||||
|
||||
[ "$destpkgversion" = "$origpkgversion" ] && {
|
||||
echo "Warning: same version of $origpkgname exists in destination"
|
||||
echo "WARNING: same version of $origpkgname exists in destination" >&2
|
||||
}
|
||||
|
||||
if [ "$assume_yes" != "1" ]; then
|
||||
@ -529,14 +572,14 @@ function import_package() {
|
||||
# remove distromatic extra files associated with this package
|
||||
[ -e ${LOCAL_REPS_BASE_DIR}/distromatic/$rep/warnings/$import_pkg.in ] && {
|
||||
rm -f ${LOCAL_REPS_BASE_DIR}/distromatic/$rep/warnings/$import_pkg.in ||
|
||||
echo "Warning: cannot remove file ${LOCAL_REPS_BASE_DIR}/distromatic/$rep/warnings/$import_pkg.in"
|
||||
echo "WARNING: cannot remove file ${LOCAL_REPS_BASE_DIR}/distromatic/$rep/warnings/$import_pkg.in" >&2
|
||||
}
|
||||
# fi
|
||||
|
||||
#for i in ${pkg_obsoletes}; do
|
||||
# PKG_FILENAME="$i-$pkg_version-$pkg_release.$namearch.rpm"
|
||||
# DEST_URL_ARCH=$DEST_URL/$destrepository/RPMS.$namearch/$PKG_FILENAME
|
||||
# [ -e $DEST_URL_ARCH ] && echo "Warning: obsoleted package $i exists"
|
||||
# [ -e $DEST_URL_ARCH ] && echo "WARNING: obsoleted package $i exists" >&2
|
||||
# backup_package $i $destrepository $DESTREGFILE
|
||||
# #echo rm $DEST_URL_ARCH
|
||||
#done
|
||||
@ -544,8 +587,10 @@ function import_package() {
|
||||
} # ans = y
|
||||
|
||||
else # check_existence != 1
|
||||
echo "Warning: $import_pkg reported by distromatic does no longer exist"
|
||||
echo "ERROR: $import_pkg reported by distromatic does no longer exist" >&2
|
||||
return 253
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
# FIXME: only works with basearch
|
||||
@ -559,31 +604,31 @@ function extract_diffinfo() {
|
||||
if [ "$pkg_name" ]; then
|
||||
PKG_FILENAME="${LOCAL_REPS_BASE_DIR}/$REP/SRPMS.base/$pkg_name-$pkg_version-$pkg_release.src.rpm"
|
||||
[ -e "$PKG_FILENAME" ] || {
|
||||
echo "Error: package $PKG_FILENAME missing in $origrepository; skipping"
|
||||
echo "ERROR: package $PKG_FILENAME missing in $origrepository; skipping" >&2
|
||||
return 1
|
||||
}
|
||||
local filesize=`stat -c %s $PKG_FILENAME`
|
||||
[ $filesize -gt 1073741824 ] && {
|
||||
echo "Warning: $PKG_FILENAME size of $filesize is more than 1GB; skipping"
|
||||
echo "WARNING: $PKG_FILENAME size of $filesize is more than 1GB; skipping" >&2
|
||||
return 1
|
||||
}
|
||||
rpm -qp $PKG_FILENAME --requires > $TMP/buildrequires
|
||||
|
||||
autospec -q -x $PKG_FILENAME -F \*.spec --destdir $TMP >/dev/null || {
|
||||
echo "Error: could not extract specfile from $PKG_FILENAME; skipping package"
|
||||
echo "ERROR: could not extract specfile from $PKG_FILENAME; skipping package" >&2
|
||||
return 1
|
||||
}
|
||||
[ -e "$TMP_SPEC_DIR/$pkg_name.spec" ] || {
|
||||
SPEC_FOUND="`ls $TMP_SPEC_DIR/*.spec`"
|
||||
mv $SPEC_FOUND $TMP_SPEC_DIR/$pkg_name.spec
|
||||
echo "Warning: specfile name should be $pkg_name.spec instead of ${SPEC_FOUND/*\//} in $REP repository"
|
||||
echo "WARNING: specfile name should be $pkg_name.spec instead of ${SPEC_FOUND/*\//} in $REP repository" >&2
|
||||
}
|
||||
> $TMP/requires
|
||||
> $TMP/provides
|
||||
for i in ${pkg_builds[*]}; do
|
||||
PKG_FILENAME="${LOCAL_REPS_BASE_DIR}/$REP/RPMS.$basearch/$i-$pkg_version-$pkg_release.$pkg_arch.rpm"
|
||||
[ -e "$PKG_FILENAME" ] || {
|
||||
echo "Error: package $PKG_FILENAME missing in $origrepository; skipping"
|
||||
echo "ERROR: package $PKG_FILENAME missing in $origrepository; skipping" >&2
|
||||
return 1
|
||||
}
|
||||
rpm -qp $PKG_FILENAME --requires >> $TMP/requires
|
||||
@ -591,13 +636,13 @@ function extract_diffinfo() {
|
||||
rpm -qlp $PKG_FILENAME >> $TMP/files
|
||||
done
|
||||
else
|
||||
#echo "Warning: can't find package $PKG in $REP repository"
|
||||
#echo "WARNING: can't find package $PKG in $REP repository" >&2
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
[ $1 ] || { usage; exit 1; }
|
||||
[ $1 ] || { usage; exit 0; }
|
||||
|
||||
origrepository=
|
||||
destrepository=devel
|
||||
@ -626,26 +671,26 @@ while [ "$1" ]; do
|
||||
*)
|
||||
if [ "$command" ]; then
|
||||
case "$command" in
|
||||
"import"|"release"|"query"|"verify"|"archive"|"restore"|"diff"|"inspect"|"setwarning"|"distromatic")
|
||||
"import"|"release"|"query"|"verify"|"archive"|"restore"|"diff"|"inspect"|"install"|"setwarning"|"distromatic")
|
||||
[ "$origrepository" ] &&
|
||||
packages="$packages $1" ||
|
||||
origrepository=$1
|
||||
;;
|
||||
"search")
|
||||
[ "$searchstring" ] && {
|
||||
echo "Error: invalid option $1; aborting."
|
||||
echo "ERROR: invalid option $1; aborting." >&2
|
||||
exit 1
|
||||
}
|
||||
searchstring="$1"
|
||||
;;
|
||||
*) usage
|
||||
echo "Error: invalid option $1; aborting."
|
||||
echo "ERROR: invalid option $1; aborting." >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case "$1" in
|
||||
"import"|"release"|"query"|"verify"|"archive"|"restore"|"list"|"diff"|"inspect"|"setwarning"|"distromatic"|"search") command=$1 ;;
|
||||
"import"|"release"|"query"|"verify"|"archive"|"restore"|"list"|"diff"|"inspect"|"install"|"setwarning"|"distromatic"|"search") command=$1 ;;
|
||||
*)
|
||||
usage
|
||||
echo "Errror: $1 is not a valid command; aborting."
|
||||
@ -657,7 +702,7 @@ while [ "$1" ]; do
|
||||
esac
|
||||
shift
|
||||
done
|
||||
[ "$command" = "" ] && { usage; exit 1; }
|
||||
[ "$command" = "" ] && { usage; exit 0; }
|
||||
|
||||
#[ "$command" = "list" ] && echo "Local repositories:"
|
||||
for a in ${AUTODIST_REPOSITORIES_LOCAL_REPS[*]}; do
|
||||
@ -678,7 +723,7 @@ done
|
||||
for rep in ${AUTODIST_REPOSITORIES_LOCAL_REPS[*]} ${AUTODIST_REPOSITORIES_REMOTE_REPS[*]}; do
|
||||
[[ "$rep" =~ "$searchrep" ]] || continue
|
||||
[ -r ${LOCAL_REPS_BASE_DIR}/$rep/SRPMS.base ] || continue
|
||||
ls ${LOCAL_REPS_BASE_DIR}/$rep/SRPMS.base | grep $GREP_OPTS "$searchstring" 2>/dev/null | \
|
||||
ls --color=none ${LOCAL_REPS_BASE_DIR}/$rep/SRPMS.base | grep $GREP_OPTS "$searchstring" 2>/dev/null | \
|
||||
while read PKGLINE; do
|
||||
[ "$PKGLINE" ] && {
|
||||
echo "$rep(source): ${PKGLINE/ *}"
|
||||
@ -686,7 +731,7 @@ done
|
||||
done
|
||||
for a in ${AUTODIST_ARCHS[*]}; do
|
||||
[ -r ${LOCAL_REPS_BASE_DIR}/$rep/RPMS.$a ] || continue
|
||||
ls ${LOCAL_REPS_BASE_DIR}/$rep/RPMS.$a | grep $GREP_OPTS "$searchstring" 2>/dev/null | \
|
||||
ls --color=none ${LOCAL_REPS_BASE_DIR}/$rep/RPMS.$a | grep $GREP_OPTS "$searchstring" 2>/dev/null | \
|
||||
while read PKGLINE; do
|
||||
[ "$PKGLINE" ] && {
|
||||
echo "$rep($a): ${PKGLINE/ *}"
|
||||
@ -697,11 +742,12 @@ done
|
||||
exit 0
|
||||
}
|
||||
|
||||
[ "$origrepository" ] || { usage; exit 1; }
|
||||
[ "$origrepository" ] || { usage; exit 200; }
|
||||
SRCPKGLIST="${LOCAL_REPS_BASE_DIR}/$origrepository/srcpkglist"
|
||||
PKGLIST="${LOCAL_REPS_BASE_DIR}/$origrepository/pkglist"
|
||||
|
||||
[ "$DEST_MODE" ] || { echo "Error: $destrepository is not a valid repository; aborting."; exit 1; }
|
||||
[ "$ORIG_MODE" ] || { echo "Error: $origrepository is not a valid repository; aborting."; exit 1; }
|
||||
[ "$DEST_MODE" ] || { echo "ERROR: $destrepository is not a valid repository; aborting." >&2; exit 200; }
|
||||
[ "$ORIG_MODE" ] || { echo "ERROR: $origrepository is not a valid repository; aborting." >&2; exit 200; }
|
||||
[ "$DEST_MODE" = "remote" ] && { echo "Waring: destination is a remote repository; this is an EXPERIMENTAL feature."; }
|
||||
|
||||
[ "$command" = "query" ] && {
|
||||
@ -744,7 +790,7 @@ SRCPKGLIST="${LOCAL_REPS_BASE_DIR}/$origrepository/srcpkglist"
|
||||
else
|
||||
PKG_FILENAME="$i-$pkg_version-$pkg_release.src.rpm"
|
||||
rpm2cpio ${LOCAL_REPS_BASE_DIR}/${origrepository}/SRPMS.base/$PKG_FILENAME &>/dev/null || {
|
||||
echo "Warning: source package $PKG_FILENAME is empty or corrupted."
|
||||
echo "WARNING: source package $PKG_FILENAME is empty or corrupted." >&2
|
||||
}
|
||||
|
||||
for a in ${AUTODIST_ARCHS[*]}; do
|
||||
@ -753,7 +799,7 @@ SRCPKGLIST="${LOCAL_REPS_BASE_DIR}/$origrepository/srcpkglist"
|
||||
for l in ${pkg_builds[*]}; do
|
||||
PKG_FILENAME="$l-$pkg_version-$pkg_release.$pkg_arch.rpm"
|
||||
rpm2cpio ${LOCAL_REPS_BASE_DIR}/${origrepository}/RPMS.$a/$PKG_FILENAME &>/dev/null || {
|
||||
echo "Warning: package $PKG_FILENAME($a) is empty or corrupted."
|
||||
echo "WARNING: package $PKG_FILENAME($a) is empty or corrupted." >&2
|
||||
}
|
||||
done
|
||||
fi
|
||||
@ -777,7 +823,7 @@ SRCPKGLIST="${LOCAL_REPS_BASE_DIR}/$origrepository/srcpkglist"
|
||||
|
||||
extract_diffinfo $i $origrepository $TMP_SPEC_DIR || continue
|
||||
[ -e $TMP_SPEC_DIR/$i.spec ] || {
|
||||
echo "Error: could not extract specfile for $i in $origrepository repository; skipping"
|
||||
echo "ERROR: could not extract specfile for $i in $origrepository repository; skipping" >&2
|
||||
continue
|
||||
}
|
||||
mv $TMP_SPEC_DIR/$i.spec $TMP_SPEC_DIR/$i.spec.origrep
|
||||
@ -807,7 +853,7 @@ SRCPKGLIST="${LOCAL_REPS_BASE_DIR}/$origrepository/srcpkglist"
|
||||
continue
|
||||
}
|
||||
[ -e $TMP_SPEC_DIR/$i.spec ] || {
|
||||
echo "Error: could not extract specfile for $i in $destrepository repository; skipping"
|
||||
echo "ERROR: could not extract specfile for $i in $destrepository repository; skipping" >&2
|
||||
}
|
||||
mv $TMP_SPEC_DIR/$i.spec $TMP_SPEC_DIR/$i.spec.destrep
|
||||
mv $TMP_SPEC_DIR/files $TMP_SPEC_DIR/files.destrep
|
||||
@ -848,7 +894,7 @@ SRCPKGLIST="${LOCAL_REPS_BASE_DIR}/$origrepository/srcpkglist"
|
||||
for i in $packages; do
|
||||
extract_diffinfo $i $origrepository $TMP_SPEC_DIR
|
||||
[ -e $TMP_SPEC_DIR/$i.spec ] || {
|
||||
echo "Error: could not extract specfile for $i in $origrepository repository; aborting."
|
||||
echo "ERROR: could not extract specfile for $i in $origrepository repository; aborting." >&2
|
||||
exit 1
|
||||
}
|
||||
echo "$warningtext" > ${LOCAL_REPS_BASE_DIR}/distromatic/$origrepository/warnings/$i.in
|
||||
@ -863,7 +909,7 @@ SRCPKGLIST="${LOCAL_REPS_BASE_DIR}/$origrepository/srcpkglist"
|
||||
for i in $packages; do
|
||||
extract_diffinfo $i $origrepository $TMP_SPEC_DIR
|
||||
[ -e $TMP_SPEC_DIR/$i.spec ] || {
|
||||
echo "Error: could not extract specfile for $i in $origrepository repository; aborting."
|
||||
echo "ERROR: could not extract specfile for $i in $origrepository repository; aborting." >&2
|
||||
exit 1
|
||||
}
|
||||
echo "$i: details of package in $origrepository repository"
|
||||
@ -884,9 +930,63 @@ SRCPKGLIST="${LOCAL_REPS_BASE_DIR}/$origrepository/srcpkglist"
|
||||
exit 0;
|
||||
}
|
||||
|
||||
[ "$command" = "install" ] && {
|
||||
[ "$packages" ] || { usage; exit 1; }
|
||||
myarch=`uname -p`
|
||||
if [ "$myarch" = "*686" -o "$myarch" = "athlon" -o "$myarch" = "pentium*" ]; then
|
||||
myarch="i586"
|
||||
fi
|
||||
for i in $packages; do
|
||||
pkg=$i
|
||||
pkgarch=
|
||||
if [ "${i/.*}" != "${i}" ]; then
|
||||
pkg=${i/.*}
|
||||
pkgarch=${i/*.}
|
||||
fi
|
||||
if [ "$pkgarch" -a "$pkgarch" != "$myarch" ]; then
|
||||
get_pkg_info $origrepository $pkgarch $pkg
|
||||
[ "$pkg_name" ] || {
|
||||
echo "WARNING: $pkg not found in $origrepository for arch $pkgarch; skipping."
|
||||
continue
|
||||
}
|
||||
else
|
||||
get_pkg_info $origrepository $myarch $pkg
|
||||
[ "$pkg_name" ] || {
|
||||
echo "WARNING: $pkg not found in $origrepository for arch $myarch; skipping."
|
||||
continue
|
||||
}
|
||||
fi
|
||||
pkg_file=${pkg_name}-${pkg_version}-${pkg_release}.$pkg_arch.rpm
|
||||
pkg_path=${LOCAL_REPS_BASE_DIR}/$pkg_repository/RPMS.$pkg_arch/${pkg_file}
|
||||
[ -r $pkg_path ] || {
|
||||
echo "WARNING: file $pkg_path should exist but doesn't; skipping."
|
||||
continue
|
||||
}
|
||||
echo "Installing $pkg_file..."
|
||||
if [ "$force" = "1" ]; then
|
||||
rpm -i $pkg_path --force
|
||||
rpmret=$?
|
||||
[ $rpmret -gt 0 ] && echo "WARNING: rpm returned $rpmret"
|
||||
if [ "$pkg_arch" != "$myarch" ]; then
|
||||
pkg_file=${pkg_name}-${pkg_version}-${pkg_release}.$myarch.rpm
|
||||
pkg_path=${LOCAL_REPS_BASE_DIR}/$pkg_repository/RPMS.$myarch/${pkg_file}
|
||||
echo "Other arch installation forced; reinstalling native arch package after..."
|
||||
rpm -i $pkg_path --force
|
||||
rpmret=$?
|
||||
[ $rpmret -gt 0 ] && echo "WARNING: rpm returned $rpmret"
|
||||
fi
|
||||
else
|
||||
rpm -i $pkg_path
|
||||
rpmret=$?
|
||||
[ $rpmret -gt 0 ] && echo "WARNING: rpm returned $rpmret"
|
||||
fi
|
||||
done
|
||||
exit 0;
|
||||
}
|
||||
|
||||
[ "$command" = "distromatic" ] && {
|
||||
[ -r $SRCPKGLIST ] || {
|
||||
echo "Error: srcpkglist file missing for $origrepository repository; aborting."
|
||||
echo "ERROR: srcpkglist file missing for $origrepository repository; aborting." >&2
|
||||
exit 1
|
||||
}
|
||||
[ -d ${LOCAL_REPS_BASE_DIR}/$origrepository/specs ] || mkdir ${LOCAL_REPS_BASE_DIR}/$origrepository/specs
|
||||
@ -959,7 +1059,7 @@ DESTREGFILE=${LOCAL_REPS_BASE_DIR}/$destrepository/operations.log.html
|
||||
DEST_MODE=$ORIG_MODE
|
||||
|
||||
[ "$ORIG_MODE" = "remote" ] && {
|
||||
echo "Error: restore is only implemented in local repository; exiting."
|
||||
echo "ERROR: restore is only implemented in local repository; exiting." >&2
|
||||
exit 1
|
||||
}
|
||||
[ "$packages" ] || { usage; exit 1; }
|
||||
@ -975,7 +1075,7 @@ DESTREGFILE=${LOCAL_REPS_BASE_DIR}/$destrepository/operations.log.html
|
||||
[ "$command" = "import" -o "$command" = "release" ] && {
|
||||
|
||||
[ "$origrepository" = "$destrepository" ] && {
|
||||
echo "Error: source and destination repository cannot be the same; aborting."; exit 1; }
|
||||
echo "ERROR: source and destination repository cannot be the same; aborting." >&2; exit 200; }
|
||||
|
||||
if [ "$command" = "import" ]; then
|
||||
echo "Importing $1: $origrepository ($ORIG_MODE) => $destrepository ($DEST_MODE)"
|
||||
@ -989,9 +1089,11 @@ DESTREGFILE=${LOCAL_REPS_BASE_DIR}/$destrepository/operations.log.html
|
||||
get_packages_from_last_build $origrepository
|
||||
fi
|
||||
|
||||
RET=0
|
||||
for i in ${packages[*]}; do
|
||||
import_package $i $backup_mode
|
||||
if [ $? -eq 255 -a "${AUTODIST_REPOSITORIES_TRANSITIONAL_REP}" -a \
|
||||
IMPORT_RET=$?
|
||||
if [ $IMPORT_RET -eq 255 -a "${AUTODIST_REPOSITORIES_TRANSITIONAL_REP}" -a \
|
||||
"${AUTODIST_REPOSITORIES_TRANSITIONAL_REP}" != "$destrepository" -a \
|
||||
"${AUTODIST_REPOSITORIES_TRANSITIONAL_REP}" != "$origrepository" -a \
|
||||
"${AUTODIST_REPOSITORIES_TRANSITIONAL_REP/-*}" = "${destrepository/-*}" ]; then
|
||||
@ -999,13 +1101,17 @@ DESTREGFILE=${LOCAL_REPS_BASE_DIR}/$destrepository/operations.log.html
|
||||
destrepositorysave=$destrepository
|
||||
destrepository=${AUTODIST_REPOSITORIES_TRANSITIONAL_REP}
|
||||
import_package $i $backup_mode
|
||||
IMPORT_RET=$?
|
||||
destrepository=$destrepositorysave
|
||||
fi
|
||||
if [ $IMPORT_RET -ne 0 ]; then
|
||||
RET=`expr $RET + 1`
|
||||
fi
|
||||
done
|
||||
|
||||
exit 0
|
||||
exit $RET
|
||||
}
|
||||
|
||||
usage
|
||||
echo "Error: $command is not a valid command; aborting."
|
||||
echo "ERROR: $command is not a valid command; aborting." >&2
|
||||
exit 1
|
||||
|
1
autodist-tmpfilesd
Normal file
1
autodist-tmpfilesd
Normal file
@ -0,0 +1 @@
|
||||
d /run/autodist 775 autodist packager
|
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# autodist-tool
|
||||
# Copyright (c) 2008-2012 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Copyright (c) 2008-2014 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
. /etc/autodist/config
|
||||
me=(${0##*/} $VERSION "Tue Oct 28 2008")
|
||||
@ -14,7 +14,6 @@ SOURCESDIR=$AUTOUPDATEDIR/sources/
|
||||
SRCPKGLIST=/var/ftp/pub/openmamba/$AUTODIST_REPOSITORY/srcpkglist
|
||||
SUCCESSLISTDIR=$AUTOUPDATEDIR
|
||||
SKIPPEDLISTDIR=$AUTOUPDATEDIR
|
||||
DISTDBFILE=/etc/autodist/distdb
|
||||
|
||||
#eval `autospec -q --eval="srpms_dir"`
|
||||
#eval `autospec -q --eval="rpms_dir"`
|
||||
@ -133,7 +132,7 @@ elif [ "$COMMAND" = "schedule" ]; then
|
||||
# while read line; do
|
||||
# set -- $line
|
||||
# if [ "`echo \" $1 \" | grep \" $JOB \"`" ]; then
|
||||
if [ "`grep \"^$JOB \" $SRCPKGLIST`" -o "`grep \"^$JOB=(\" $DISTDBFILE`" ]; then
|
||||
if [ "`grep \"^$JOB \" $SRCPKGLIST`" -o "`autodist --list-jobs | grep ^$JOB$`" ]; then
|
||||
echo "Job $JOB scheduled for automatic update or rebuild"
|
||||
sed -i "/^$JOB .*/d" $AUTOUPDATEDIR/manual.in
|
||||
echo "$JOB $JOBVER 0" >> $AUTOUPDATEDIR/manual.in || exit 1
|
||||
@ -165,7 +164,7 @@ elif [ "$COMMAND" = "skip" ]; then
|
||||
if [ "$SKIPPEDLINE" ]; then
|
||||
sed -i "/^$PKGNAME /d" $SKIPPEDLISTDIR/*.skip
|
||||
fi
|
||||
if [ "`grep \"^$JOB \" $SRCPKGLIST`" -o "`grep \"^$JOB=(\" $DISTDBFILE`" ]; then
|
||||
if [ "`grep \"^$JOB \" $SRCPKGLIST`" -o "`autodist --list-jobs | grep ^$JOB$`" ]; then
|
||||
echo "$JOB $DATE_NOW 101" >> $SKIPPEDLISTDIR/auto.skip
|
||||
echo "Job $JOB skipped from automatic builds"
|
||||
else
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# autodist upstream updates - find upstream packages updates from different internet resources
|
||||
# Copyright (c) 2004-2013 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Copyright (c) 2004-2016 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
|
||||
#[ -r /etc/sysconfig/openmamba-central ] || {
|
||||
@ -24,16 +24,6 @@ XORG_RELEASE=current
|
||||
done
|
||||
}
|
||||
|
||||
[ -r $PKGLIST_FILE ] || {
|
||||
echo "Error: file $PKGLIST_FILE cannot be read; aborting." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -r $ALIASES_DB ] || {
|
||||
echo "Error: file $ALIASES_DB cannot be read; aborting." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
function usage()
|
||||
{
|
||||
echo "openmamba-upstream-updates - finds upstream packages updates from different internet resources"
|
||||
@ -98,7 +88,7 @@ function version_compare()
|
||||
function version_find_bigger()
|
||||
{
|
||||
local VER1 VER2 FPOS CUTVER1 CUTVER2
|
||||
|
||||
|
||||
VER1=$1
|
||||
VER2=$2
|
||||
FPOS=1
|
||||
@ -167,7 +157,17 @@ CONFIG_DIR=$CACHE_DIR
|
||||
UPDATES_DB=$CACHE_DIR/upstream-updates
|
||||
ALIASES_DB=$CACHE_DIR/aliases
|
||||
MANUALVER_DB=$CACHE_DIR/manualver
|
||||
BLACKLIST_DB_PREFIX=$CACHE_DIR/blacklist.
|
||||
|
||||
[ -s $PKGLIST_FILE ] || {
|
||||
echo "Error: file $PKGLIST_FILE is missing or empty; aborting." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -r $ALIASES_DB ] || {
|
||||
echo "Error: file $ALIASES_DB cannot be read; aborting." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
parse_arch_linux() {
|
||||
# parse Arch Linux package list
|
||||
@ -175,15 +175,18 @@ parse_arch_linux() {
|
||||
#for page in `seq 1 45`; do
|
||||
for rep in core community extra; do
|
||||
# SOURCEURL="https://www.archlinux.org/packages/?page=$page&sort=-last_update&q=&arch=i686&maintainer=&flagged="
|
||||
SOURCEURL="http://lug.mtu.edu/archlinux/$rep/os/i686/"
|
||||
SOURCEURL="http://lug.mtu.edu/archlinux/$rep/os/x86_64/"
|
||||
curl -L -s "$SOURCEURL" | \
|
||||
grep ".pkg." | grep -v ".sig\"" | \
|
||||
while read line; do
|
||||
line=`echo $line | sed "s|.*href=\"\([^\"]*\)\">.*|\1|"`
|
||||
pkg=`echo $line | sed "s|\(.*\)-[^-]*-[^-]*-[^-]*|\1|"`
|
||||
ver=`echo $line | sed "s|.*-\([^-]*\)-[^-]*-[^-]*|\1|;s|.*%3a||"`
|
||||
ver=`echo $line | sed "s|.*-\([^-]*\)-[^-]*-[^-]*|\1|;s|.*%3a||i;s|%2b.*||i"`
|
||||
alias=`grep "^$pkg " $ALIASES_DB`
|
||||
|
||||
# Skip blackisted
|
||||
if [ -e ${BLACKLIST_DB_PREFIX}arch ]; then
|
||||
grep -q "^$pkg$" ${BLACKLIST_DB_PREFIX}arch && continue
|
||||
fi
|
||||
[ "$alias" ] || alias=`grep "^lib$pkg " $ALIASES_DB`
|
||||
[ "$alias" ] && pkgalias=${alias/* /} || pkgalias=$pkg
|
||||
line=`grep -i "^$pkgalias:" $buildstmp || grep -i "^lib$pkgalias:" $buildstmp || grep -i " $pkgalias[^-_A-Za-z0-9]" $buildstmp`
|
||||
@ -207,6 +210,9 @@ parse_xorg() {
|
||||
if [ "$line" ]; then
|
||||
ver=`echo $line | sed "s|.*-||"`
|
||||
pkg="${line/-$ver}"
|
||||
if [ -e ${BLACKLIST_DB_PREFIX}xorg ]; then
|
||||
grep -q "^$pkg$" ${BLACKLIST_DB_PREFIX}xorg && continue
|
||||
fi
|
||||
alias=`grep "^$pkg " $ALIASES_DB`
|
||||
if [ ! "$alias" -a "${pkg:0:5}" == "xf86-" ]; then
|
||||
alias="$pkg xorg-drv-${pkg/xf86-}"
|
||||
@ -229,10 +235,22 @@ parse_gnome() {
|
||||
IFS=":"
|
||||
set -- $line
|
||||
pkg="$2"
|
||||
if [ -e ${BLACKLIST_DB_PREFIX}gnome ]; then
|
||||
grep -q "^$pkg$" ${BLACKLIST_DB_PREFIX}gnome && continue
|
||||
fi
|
||||
ver="$3"
|
||||
alias=`grep "^$pkg " $ALIASES_DB`
|
||||
[ "$alias" ] || alias=`grep "^lib$pkg " $ALIASES_DB`
|
||||
[ "$pkg" -a "$ver" ] && echo "$pkg $ver $SOURCEURL ${alias/* /}" >> $tmpfile
|
||||
if [ "$pkg" -a "$ver" ]; then
|
||||
ver1=$(echo $ver | cut -d. -f1)
|
||||
ver2=$(echo $ver | cut -d. -f2)
|
||||
if [ "$ver2" -a $(($ver2 % 2)) -ne 0 ]; then
|
||||
# skip unstable versions with odd numbers
|
||||
continue
|
||||
else
|
||||
echo "$pkg $ver $SOURCEURL ${alias/* /}" >> $tmpfile
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
@ -241,7 +259,7 @@ parse_gnome() {
|
||||
parse_distromatic() {
|
||||
# parse distrowatch.com packages list
|
||||
[ "$quiet" ] || echo "Parsing Distrowatch packages list..." >&2
|
||||
SOURCEURL="http://distrowatch.com/packages.php"
|
||||
SOURCEURL="https://distrowatch.com/packages.php"
|
||||
lynx -width 300 -dump $SOURCEURL |
|
||||
while read line; do
|
||||
[ "`echo $line | grep "Package Version Note"`" ] && start_print=1
|
||||
|
79
automaint
79
automaint
@ -159,30 +159,63 @@ for a in `seq 1 ${#ARCHS[*]}`; do
|
||||
needportlist[$a-1]="${needport_list[*]}"
|
||||
done
|
||||
|
||||
for p in ${pkglist[0]}; do
|
||||
tmpfile=`mktemp -q -t $me.XXXXXXXX` || {
|
||||
echo "ERROR: cannot create temporary files." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
for a in `seq 1 ${#ARCHS[*]}`; do
|
||||
echo -n "${pkglist[$a-1]} " >> $tmpfile
|
||||
done
|
||||
allpkgs="`cat $tmpfile | xargs -n 1 | sort -u | xargs`"
|
||||
rm -f $tmpfile
|
||||
|
||||
for p in ${allpkgs}; do
|
||||
pkgcontinue=
|
||||
needsport=
|
||||
|
||||
for w in ${warningslist[*]}; do
|
||||
[ "$p" = "$w" ] && { pkgcontinue=1; break; }
|
||||
done
|
||||
[ "$pkgcontinue" ] && continue
|
||||
|
||||
get_pkg_buildinfo $LOCAL_REPS_BASE_DIR/distromatic/$SOURCE_REPOSITORY ${ARCHS[0]} $p
|
||||
for a in `seq 1 ${#ARCHS[*]}`; do
|
||||
get_pkg_buildinfo $LOCAL_REPS_BASE_DIR/distromatic/$PORT_REPOSITORY ${ARCHS[$a-1]} $p
|
||||
if [ ! "$pkg_name" ]; then
|
||||
get_pkg_buildinfo $LOCAL_REPS_BASE_DIR/distromatic/$DEST_REPOSITORY ${ARCHS[$a-1]} $p
|
||||
fi
|
||||
|
||||
if [ "$pkg_name" ]; then
|
||||
spkg_version=$pkg_version
|
||||
spkg_release=$pkg_release
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
[ "$pkg_name" ] || {
|
||||
[ "$VERBOSE" ] && echo "$p: not present in $DEST_REPOSITORY; skipping."
|
||||
continue
|
||||
}
|
||||
|
||||
[ "$VERBOSE" ] && echo "$p: old release in $DEST_REPOSITORY is $spkg_version-$spkg_release"
|
||||
|
||||
for o in ${needportlist[*]}; do
|
||||
[ "$p" = "$o" ] && { needsport=1; break; }
|
||||
done
|
||||
[ "$needsport" -a ! "$PORT_REPOSITORY" ] && continue
|
||||
|
||||
spkg_version=$pkg_version
|
||||
spkg_release=$pkg_release
|
||||
get_pkg_buildinfo $LOCAL_REPS_BASE_DIR/distromatic/$DEST_REPOSITORY ${ARCHS[0]} $p
|
||||
for a in `seq 1 ${#ARCHS[*]}`; do
|
||||
get_pkg_buildinfo $LOCAL_REPS_BASE_DIR/distromatic/$SOURCE_REPOSITORY ${ARCHS[$a-1]} $p
|
||||
[ "$pkg_name" ] && break
|
||||
done
|
||||
|
||||
[ "$pkg_name" ] || {
|
||||
echo "$p: looks like a new package; skipping."
|
||||
[ "$VERBOSE" ] && echo "$p: not present in $SOURCE_REPOSITORY; skipping."
|
||||
continue
|
||||
}
|
||||
|
||||
[ "$VERBOSE" ] && echo "$p: new release in $SOURCE_REPOSITORY is $pkg_version-$pkg_release"
|
||||
|
||||
if [ "$pkg_version" = "$spkg_version" ]; then
|
||||
if [ "$pkg_release" = "$spkg_release" ]; then
|
||||
echo "$p: same release as upstream; skipping."
|
||||
@ -195,22 +228,38 @@ for p in ${pkglist[0]}; do
|
||||
read -ra SVER <<< "$spkg_version"
|
||||
read -ra VER <<< "$pkg_version"
|
||||
IFS=$OIFS
|
||||
dotdiff=`expr ${#VER[*]} - ${#SVER[*]}`
|
||||
for i in `seq 1 ${#SVER[*]}`; do
|
||||
[ "${SVER[i-1]}" != "${VER[i-1]}" ] && break
|
||||
done
|
||||
if [ "$i" = "${#SVER[*]}" ]; then
|
||||
if [[ 64#${SVER[i-1]} -gt 64#89 && 64#${VER[i-1]} -lt 64#80 ]]; then
|
||||
[ "$VERBOSE" ] && echo "$p: dubious beta upgrade from ${VER[i-1]} to ${SVER[i-1]}; skipping."
|
||||
if [ "$i" = "${#SVER[*]}" -a $dotdiff -eq 0 ]; then
|
||||
# e.g. SVER=0.11.3 -> VER=0.11.4
|
||||
if [[ 64#${VER[i-1]} -gt 64#89 && 64#${SVER[i-1]} -lt 64#80 ]]; then
|
||||
[ "$VERBOSE" ] && echo "$p: dubious beta upgrade from ${SVER[i-1]} to ${VER[i-1]}; skipping."
|
||||
continue
|
||||
fi
|
||||
update_type="minor"
|
||||
elif [ $dotdiff -lt 0 ]; then
|
||||
[ "$VERBOSE" ] && echo "$p: newer version has less dots than older ${#VER[*]} < ${#SVER[*]}; skipping."
|
||||
continue
|
||||
elif [ "$i" != "${#SVER[*]}" ]; then
|
||||
# e.g. SVER=0.11 -> VER=1.0
|
||||
[ "$VERBOSE" ] && echo "$p: not a minor version update at position $i/${#SVER[*]}: ${SVER[i-1]} != ${VER[i-1]}; skipping."
|
||||
continue
|
||||
elif [ "${SVER[i-1]}" = "${VER[i-1]}" -a $dotdiff -ge 1 ]; then
|
||||
# e.g. SVER=0.11.2 -> VER=0.11.2.3
|
||||
update_type="minor"
|
||||
else
|
||||
[ "$VERBOSE" ] && echo "$p: dubious not-minor version update $i/${#SVER[*]}: ${SVER[i-1]} != ${VER[i-1]}; skipping."
|
||||
if [[ 64#${VER[i-1]} -gt 64#89 && 64#${SVER[i-1]} -lt 64#80 ]]; then
|
||||
[ "$VERBOSE" ] && echo "$p: dubious beta upgrade from ${SVER[i-1]} to ${VER[i-1]}; skipping."
|
||||
continue
|
||||
fi
|
||||
echo "$p: UNEXPECTED CASE - CHECK CODE; skipping."
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
if [ "$needsport" ]; then
|
||||
echo "$p: importing from $SOURCE_REPOSITORY to $PORT_REPOSITORY ($spkg_version-$spkg_release -> $pkg_version-$pkg_release)"
|
||||
if [ "$needsport" -o "$pkg_repository" == "$PORT_REPOSITORY" ]; then
|
||||
echo "$p: importing from $SOURCE_REPOSITORY to $PORT_REPOSITORY ($pkg_version-$pkg_release -> $spkg_version-$spkg_release)"
|
||||
if [ ! "$TESTMODE" ]; then
|
||||
autodist-repository import $SOURCE_REPOSITORY $p -d $PORT_REPOSITORY -y >/dev/null
|
||||
if [ $? -eq 0 -a "$WEBBUILD_URL" -a "$WEBBUILD_USER" ]; then
|
||||
@ -218,8 +267,8 @@ for p in ${pkglist[0]}; do
|
||||
MESSAGE=`cgi_encodevar \"imported <b>$p</b> from <b>$SOURCE_REPOSITORY</b> to <b>$PORT_REPOSITORY</b> for porting\"`" >/dev/null
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "$p: importing from $SOURCE_REPOSITORY to $DEST_REPOSITORY ($spkg_version-$spkg_release -> $pkg_version-$pkg_release; update type: $update_type)"
|
||||
elif [ "$pkg_repository" == "$DEST_REPOSITORY" ]; then
|
||||
echo "$p: importing from $SOURCE_REPOSITORY to $DEST_REPOSITORY ($pkg_version-$pkg_release -> $spkg_version-$spkg_release; update type: $update_type)"
|
||||
if [ ! "$TESTMODE" ]; then
|
||||
autodist-repository import $SOURCE_REPOSITORY $p -d $DEST_REPOSITORY -y >/dev/null
|
||||
if [ $? -eq 0 -a "$WEBBUILD_URL" -a "$WEBBUILD_USER" ]; then
|
||||
@ -227,6 +276,8 @@ MESSAGE=`cgi_encodevar \"imported <b>$p</b> from <b>$SOURCE_REPOSITORY</b> to <b
|
||||
MESSAGE=`cgi_encodevar \"imported <b>$p</b> from <b>$SOURCE_REPOSITORY</b> to <b>$DEST_REPOSITORY</b>\"`" >/dev/null
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "$p: unexpected upstream package repository; ignoring."
|
||||
fi
|
||||
done
|
||||
|
||||
|
201
autoport
201
autoport
@ -1,10 +1,10 @@
|
||||
#!/bin/bash
|
||||
# autoport -- batch cross-build tool based on autodist
|
||||
# Copyright (C) 2011-2012 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Copyright (C) 2011-2014 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
# Released under the terms of the GNU GPL release 3 license
|
||||
#
|
||||
VERSION=0.9.9
|
||||
VERSION=1.0.1
|
||||
|
||||
BASE_ARCH=i586
|
||||
BASE_REPOSITORY=devel
|
||||
@ -17,13 +17,13 @@ me=(${0##*/} $VERSION "Sat Mar 20 2011")
|
||||
function usage() {
|
||||
echo "\
|
||||
${me[0]} ${me[1]}
|
||||
"$"Copyright (C) 2011-2012 Silvan Calarco <silvan.calarco@mambasoft.it>""
|
||||
"$"Copyright (C) 2011-2016 Silvan Calarco <silvan.calarco@mambasoft.it>""
|
||||
"$"Released under the terms of the GNU GPL v3 license"
|
||||
echo "
|
||||
"$"Batch port and cross-build tool based on autodist.""
|
||||
|
||||
"$"Usage"":
|
||||
$me [-a][-f][-x arch1[,arch2],..][-r repository][-d release_repository]{--fix|job ...}
|
||||
$me [-a][-f][-x arch1[,arch2],..][-r repository][-d release_repository][-s \"script_args\"]{--fix|job ...}
|
||||
|
||||
-a "$"Automatic mode (use cache)
|
||||
-b "$"Batch port all packages in port repository to sync with base repository
|
||||
@ -33,12 +33,14 @@ ${me[0]} ${me[1]}
|
||||
-nr "$"Don't recurse build
|
||||
--fix "$"Fix .la files for cross linking and exit
|
||||
-r "$"Work on given repository (default: $PORT_REPOSITORY)
|
||||
-d "$"Release packages to given repository (default: $PORT_REPOSITORY)
|
||||
-d "$"Release packages to given repository (default: work repository)
|
||||
-h "$"Show this help and exit
|
||||
-s \"script_args\" "$"Send script_args as arguments for autodist update-specfile script
|
||||
-u changelog "$"Rebuild packages with given changelog
|
||||
-ud "$"Rebuild dependent packages that need rebuild
|
||||
-v "$"More verbose output
|
||||
-x "$"Operate in cross build mode
|
||||
--user user "$"Pass calling user name for Webbuild social messages""
|
||||
--user user "$"Pass calling user name for Webbuild social messages
|
||||
|
||||
arch "$"Target architecture
|
||||
job "$"Job specification for autodist""
|
||||
@ -146,24 +148,22 @@ function get_pkg_buildinfo() {
|
||||
# }
|
||||
# . $DISTROMATIC_BUILD_FILE
|
||||
|
||||
for i in ${pkg_list[*]}; do
|
||||
if [ "$i" == "${pkg_header[0]}" ]; then
|
||||
pkg_name=${pkg_header[0]};
|
||||
# Note: pkg_arch reported in builds file is just last arch source was
|
||||
# built for, so we use repository arch instead
|
||||
pkg_arch=${pkg_header[1]};
|
||||
[ "$pkg_arch" = "noarch" ] || pkg_arch=${local_arch}
|
||||
pkg_version=${pkg_header[2]};
|
||||
pkg_release=${pkg_header[3]};
|
||||
pkg_group=${pkg_header[4]};
|
||||
pkg_license=${pkg_header[5]};
|
||||
pkg_size=${pkg_header[6]};
|
||||
pkg_buildtime=${pkg_header[7]};
|
||||
pkg_altrep=${pkg_header[8]};
|
||||
pkg_repository=${pkg_header[9]};
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
if [ "${pkg_header[0]}" ]; then
|
||||
pkg_name=${pkg_header[0]};
|
||||
# Note: pkg_arch reported in builds file is just last arch source was
|
||||
# built for, so we use repository arch instead
|
||||
pkg_arch=${pkg_header[1]};
|
||||
[ "$pkg_arch" = "noarch" ] || pkg_arch=${local_arch}
|
||||
pkg_version=${pkg_header[2]};
|
||||
pkg_release=${pkg_header[3]};
|
||||
pkg_group=${pkg_header[4]};
|
||||
pkg_license=${pkg_header[5]};
|
||||
pkg_size=${pkg_header[6]};
|
||||
pkg_buildtime=${pkg_header[7]};
|
||||
pkg_altrep=${pkg_header[8]};
|
||||
pkg_repository=${pkg_header[9]};
|
||||
return 0
|
||||
fi
|
||||
unset pkg_name pkg_arch pkg_version pkg_release \
|
||||
pkg_group pkg_license pkg_size pkg_buildtime pkg_altrep pkg_repository
|
||||
|
||||
@ -184,7 +184,7 @@ _EOF
|
||||
|
||||
function find_source_by_provide() {
|
||||
local pkg=`echo $2 | sed "s|(|\\\\\[|g;s|)|\\\\\]|g;s|:|_|g"`
|
||||
grep "^$pkg:" $DATADIR/$1/sources-$BASE_ARCH | \
|
||||
grep "^$pkg:" $DATADIR/$1/sources-{$BASE_ARCH,$TARGET_ARCH} | \
|
||||
awk '{ $1=""; print $0 }' | \
|
||||
sed "s|[[:space:]]_| |g"
|
||||
}
|
||||
@ -211,9 +211,16 @@ function find_requirements() {
|
||||
> $tf
|
||||
sort -u $tf1 | while read line; do
|
||||
REQ=`find_source_by_provide $PORT_REPOSITORY ${line}`
|
||||
[ "$REQ" ] && \
|
||||
echo "${REQ}" >> $tf || \
|
||||
if [ "$REQ" ]; then
|
||||
get_pkg_buildinfo $DATADIR/$PORT_REPOSITORY $TARGET_ARCH $REQ
|
||||
if [ "$pkg_name" ]; then
|
||||
echo -n "$line(notrebuilding) "
|
||||
else
|
||||
echo "${REQ}" >> $tf
|
||||
fi
|
||||
else
|
||||
echo -n "$line(unresolved) "
|
||||
fi
|
||||
done
|
||||
> $tf1
|
||||
cat $tf | sort -u 2>/dev/null | while read line; do
|
||||
@ -232,12 +239,29 @@ function find_requirements() {
|
||||
}
|
||||
|
||||
fetch_repfiles() {
|
||||
curl -s ${REPS_BASE_URL}/$PORT_REPOSITORY/srcpkglist -o $DATADIR/$PORT_REPOSITORY/srcpkglist ||
|
||||
local u
|
||||
|
||||
[ "$VERBOSE_MODE" = "1" ] && echo "Fetching ${REPS_BASE_URL}/$PORT_REPOSITORY/srcpkglist"
|
||||
curl -f -L -s ${REPS_BASE_URL}/$PORT_REPOSITORY/srcpkglist -o $DATADIR/$PORT_REPOSITORY/srcpkglist ||
|
||||
echo "Warning: unable to fetch ${REPS_BASE_URL}/$PORT_REPOSITORY/srcpkglist"
|
||||
curl -s $PORT_REPOSITORY_DISTROMATIC_URL/sources-$BASE_ARCH -o $DATADIR/$PORT_REPOSITORY/sources-$BASE_ARCH ||
|
||||
[ "$VERBOSE_MODE" = "1" ] && echo "Fetching $PORT_REPOSITORY_DISTROMATIC_URL/sources-$BASE_ARCH"
|
||||
curl -f -L -s $PORT_REPOSITORY_DISTROMATIC_URL/sources-$BASE_ARCH -o $DATADIR/$PORT_REPOSITORY/sources-$BASE_ARCH ||
|
||||
echo "Warning: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/sources-$BASE_ARCH"
|
||||
curl -s $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh -o $DATADIR/$PORT_REPOSITORY/builds-$TARGET_ARCH.sh ||
|
||||
echo "Error: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh"
|
||||
[ "$VERBOSE_MODE" = "1" ] && echo "Fetching $PORT_REPOSITORY_DISTROMATIC_URL/sources-$TARGET_ARCH"
|
||||
curl -f -L -s $PORT_REPOSITORY_DISTROMATIC_URL/sources-$TARGET_ARCH -o $DATADIR/$PORT_REPOSITORY/sources-$TARGET_ARCH ||
|
||||
echo "Warning: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/sources-$TARGET_ARCH"
|
||||
[ "$VERBOSE_MODE" = "1" ] && echo "Fetching $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh"
|
||||
curl -f -L -s $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh -o $DATADIR/$PORT_REPOSITORY/builds-$TARGET_ARCH.sh ||
|
||||
echo "Warning: unable to fetch $PORT_REPOSITORY_DISTROMATIC_URL/builds-$TARGET_ARCH.sh"
|
||||
for u in ${AUTOPORT_UNSTAGE_ARCHS}; do
|
||||
[ "$u" = "$TARGET_ARCH" ] && {
|
||||
rm -f $DATADIR/$PORT_REPOSITORY/unstage.$TARGET_ARCH
|
||||
return
|
||||
}
|
||||
done
|
||||
[ "$VERBOSE_MODE" = "1" ] && echo "Fetching ${REPS_BASE_URL}/${PORT_REPOSITORY/-*}/unstage.$TARGET_ARCH"
|
||||
curl -f -L -s ${REPS_BASE_URL}/${PORT_REPOSITORY/-*}/unstage.$TARGET_ARCH -o $DATADIR/$PORT_REPOSITORY/unstage.$TARGET_ARCH ||
|
||||
echo "Warning: unable to fetch ${REPS_BASE_URL}/${PORT_REPOSITORY/-*}/unstage.$TARGET_ARCH"
|
||||
}
|
||||
|
||||
[ $# -gt 0 ] || { usage ; exit 1; }
|
||||
@ -267,6 +291,9 @@ for ((i=1; i<=$#; i++)); do
|
||||
exit 1
|
||||
}
|
||||
;;
|
||||
-ud) REBUILD_DEPENDANT_MODE=1
|
||||
DONT_RECURSE=1
|
||||
;;
|
||||
-npa) DONT_PREPARE_ANY=1
|
||||
DONT_PREPARE=1 ;;
|
||||
-np) DONT_PREPARE=1 ;;
|
||||
@ -275,6 +302,9 @@ for ((i=1; i<=$#; i++)); do
|
||||
-r) shift
|
||||
PORT_REPOSITORY="${!i}"
|
||||
;;
|
||||
-s) shift
|
||||
SCRIPT_ARGS="${!i}"
|
||||
;;
|
||||
-d) shift
|
||||
DEST_REPOSITORY="${!i}"
|
||||
;;
|
||||
@ -321,10 +351,6 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
BASE_REPOSITORY_DISTROMATIC_URL=${DISTROMATIC_BASE_URL}$BASE_REPOSITORY
|
||||
PORT_REPOSITORY_DISTROMATIC_URL=${DISTROMATIC_BASE_URL}$PORT_REPOSITORY
|
||||
|
||||
[ "$AUTO_MODE" -a -e $DATAARCHDIR/last ] && . $DATAARCHDIR/last
|
||||
JOB=(${JOB_CMDLINE[*]} ${JOB_MISSINGREQ[*]} ${JOB_FAILED[*]})
|
||||
[ "$FIX_MODE" -o "$BATCH_MODE" -o "${JOB[*]}" ] || { usage ; exit 1; }
|
||||
|
||||
[ -d $DATAARCHDIR ] || mkdir -p $DATAARCHDIR
|
||||
[ -d $DATADIR/$BASE_REPOSITORY ] || mkdir -p $DATADIR/$BASE_REPOSITORY
|
||||
[ -d $DATADIR/$PORT_REPOSITORY ] || mkdir -p $DATADIR/$PORT_REPOSITORY
|
||||
@ -351,14 +377,46 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
echo "Port repository is $PORT_REPOSITORY"
|
||||
echo "Release repository is $DEST_REPOSITORY"
|
||||
|
||||
|
||||
# old files cleanup
|
||||
rm -f $DATADIR/$PORT_REPOSITORY/sources-$TARGET_CPU
|
||||
rm -f $DATADIR/$PORT_REPOSITORY/builds-$BASE_ARCH.sh
|
||||
|
||||
|
||||
fetch_repfiles
|
||||
|
||||
[ "$AUTO_MODE" -a -e $DATAARCHDIR/last ] && . $DATAARCHDIR/last
|
||||
if [ "$REBUILD_DEPENDANT_MODE" ]; then
|
||||
for j in ${JOB_CMDLINE[*]}; do
|
||||
get_pkg_buildinfo $DATADIR/$PORT_REPOSITORY $TARGET_ARCH $j
|
||||
port_pkg_list=${pkg_needrebuild[*]}
|
||||
port_pkg_builds=" ${pkg_builds[*]} "
|
||||
port_pkg_version=$pkg_version
|
||||
port_pkg_release=$pkg_release
|
||||
currrebuild=
|
||||
currjobsscriptargs=
|
||||
JOBNUM=0
|
||||
for p in ${port_pkg_list}; do
|
||||
if [ "${p/@*}" != "$currrebuild" ]; then
|
||||
[ $JOBNUM -gt 0 ] && JOB_SCRIPTARGS[$JOBNUM-1]="$currjobscriptargs"
|
||||
currjobscriptargs=
|
||||
currrebuild=${p/@*}
|
||||
get_pkg_buildinfo $DATADIR/$PORT_REPOSITORY $TARGET_ARCH $currrebuild
|
||||
JOB=(${JOB[*]} $currrebuild)
|
||||
let JOBNUM+=1
|
||||
fi
|
||||
currprovider=${p/*@}
|
||||
if [ "$port_pkgbuilds/ $currprovider-devel }" != "$port_pkgbuilds" ]; then
|
||||
currprovider=${currprovider}-devel
|
||||
fi
|
||||
currjobscriptargs="$currjobscriptargs --buildreq ${currprovider} >= $port_pkg_version-$port_pkg_release "
|
||||
done
|
||||
[ "$currjobscriptargs" ] && JOB_SCRIPTARGS[$JOBNUM-1]="$currjobscriptargs"
|
||||
echo "Package dependant from $j to rebuild: ${JOB[*]}"
|
||||
done
|
||||
else
|
||||
JOB=(${JOB_CMDLINE[*]} ${JOB_MISSINGREQ[*]} ${JOB_FAILED[*]})
|
||||
fi
|
||||
[ "$FIX_MODE" -o "$BATCH_MODE" -o "${JOB[*]}" ] || { echo "Nothing to do."; exit 0; }
|
||||
|
||||
if [ "$BATCH_MODE" ]; then
|
||||
[ "${JOB[*]}" ] && {
|
||||
echo "Error: no jobs allowed in batch mode; aborting."
|
||||
@ -383,12 +441,11 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
fi
|
||||
done
|
||||
echo "Packages to rebuild: ${JOB[*]}"
|
||||
else
|
||||
echo "Packages to port: ${needport_list[*]}"
|
||||
for p in ${needport_list[*]}; do
|
||||
JOB=(${JOB[*]} $p)
|
||||
done
|
||||
fi
|
||||
echo "Packages to port: ${needport_list[*]}"
|
||||
for p in ${needport_list[*]}; do
|
||||
JOB=(${JOB[*]} $p)
|
||||
done
|
||||
|
||||
[ -e $DATADIR/autoport-$PORT_REPOSITORY-current ] && \
|
||||
mv $DATADIR/autoport-$PORT_REPOSITORY-current $DATADIR/autoport-$PORT_REPOSITORY-last
|
||||
@ -438,8 +495,9 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
else
|
||||
JOB_CURRENT_VERSION=
|
||||
fi
|
||||
if [ "`grep "^${JOB_CURRENT}$" /etc/autodist/unstage 2>/dev/null`" -o \
|
||||
"`grep "^${JOB_CURRENT}$" /etc/autodist/unstage.${TARGET_ARCH} 2>/dev/null`" ]; then
|
||||
if [ ! -s $DATADIR/$PORT_REPOSITORY/unstage.${TARGET_ARCH} -o \
|
||||
"`grep "^${JOB_CURRENT}$" /etc/autodist/unstage.${TARGET_ARCH} 2>/dev/null`" -o \
|
||||
"`grep "^${JOB_CURRENT}$" $DATADIR/$PORT_REPOSITORY/unstage.${TARGET_ARCH} 2>/dev/null`" ]; then
|
||||
echo -n "^ $JOB_CURRENT: "
|
||||
STAGEOPTS=
|
||||
else
|
||||
@ -477,16 +535,21 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
fi
|
||||
|
||||
DONT_PREPARE_THIS=
|
||||
RELEASE_UPDATED=
|
||||
for p in ${JOB_CMDLINE[*]}; do
|
||||
[ "$p" = "${JOB_CURRENT}" -o "$DONT_PREPARE_ANY" ] || continue
|
||||
[ -e ${SPECDIR}/${JOB_CURRENT}.spec ] && DONT_PREPARE_THIS="$DONT_PREPARE"
|
||||
done
|
||||
[ ! "$DONT_PREPARE_THIS" -a ! "`grep ^$JOB_CURRENT\$ $DATAARCHDIR/preparedjobs`" ] && {
|
||||
echo -n "prepare"
|
||||
if [ ! "$REBUILD_DEPENDANT_MODE" -a "$step" = "1" ]; then
|
||||
REPOSITORY_STRICT_ADD="--repository-strict"
|
||||
else
|
||||
REPOSITORY_STRICT_ADD=""
|
||||
fi
|
||||
[ "$VERBOSE_MODE" ] && echo "
|
||||
%% COMMAND: LANG=C LC_ALL=C autodist -p ${JOB_CURRENT} --server $PORT_REPOSITORY --repository $PORT_REPOSITORY --severity 2 -- $STAGEOPTS"
|
||||
LANG=C LC_ALL=C autodist -p ${JOB_CURRENT} --server $PORT_REPOSITORY --repository $PORT_REPOSITORY --severity 2 -- $STAGEOPTS &>$tmpfile
|
||||
cat $tmpfile >> $logfile
|
||||
%% COMMAND: LANG=C LC_ALL=C autodist -p ${JOB_CURRENT} --server $PORT_REPOSITORY --repository $PORT_REPOSITORY $REPOSITORY_STRICT_ADD --severity 2 -- $STAGEOPTS"
|
||||
LANG=C LC_ALL=C autodist -p ${JOB_CURRENT} --server $PORT_REPOSITORY --repository $PORT_REPOSITORY $REPOSITORY_STRICT_ADD --severity 2 -- $STAGEOPTS &>$tmpfile
|
||||
[ $? -gt 0 ] && {
|
||||
RES=`find_source_by_provide $PORT_REPOSITORY $JOB_CURRENT`
|
||||
for j in ${RES}; do
|
||||
@ -506,11 +569,16 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
echo -n "(OK) "
|
||||
autoport_log ${JOB_CURRENT} prepare ok $tmpfile
|
||||
}
|
||||
if [ "$REBUILD_MODE" = "1" ]; then
|
||||
if [ "$REBUILD_MODE" = "1" -o "$REBUILD_DEPENDANT_MODE" = "1" ]; then
|
||||
echo -n "update"
|
||||
if [ "$REBUILD_DEPENDANT_MODE" ]; then
|
||||
SCRIPT_ARGS="${JOB_SCRIPTARGS[$JOB_NUM-1]}"
|
||||
changelogadd="`echo ${SCRIPT_ARGS} | sed "s|--buildreq|,|;s| ||g;s|^,||g"`"
|
||||
REBUILD_CHANGELOG="rebuilt by autoport with build requirements: '${changelogadd}'"
|
||||
fi
|
||||
[ "$VERBOSE_MODE" ] && echo "
|
||||
%% COMMAND: LANG=C LC_ALL=C autodist -u --rebuild -r ${JOB_CURRENT} --severity 2 -- $STAGEOPTS --changelog \"$REBUILD_CHANGELOG\""
|
||||
LANG=C LC_ALL=C autodist -u --rebuild -r ${JOB_CURRENT} --severity 2 -- $STAGEOPTS --changelog \"$REBUILD_CHANGELOG\" &>$tmpfile
|
||||
%% COMMAND: LANG=C LC_ALL=C autodist -u --rebuild -r ${JOB_CURRENT} --severity 2 -- $STAGEOPTS --changelog \"$REBUILD_CHANGELOG\" --- \"$SCRIPT_ARGS\""
|
||||
LANG=C LC_ALL=C autodist -u --rebuild -r ${JOB_CURRENT} --severity 2 -- $STAGEOPTS --changelog \"$REBUILD_CHANGELOG\" --- $SCRIPT_ARGS &>$tmpfile
|
||||
[ $? -gt 0 ] && {
|
||||
echo "(FAILED) "
|
||||
autoport_log ${JOB_CURRENT} update failed $tmpfile
|
||||
@ -518,12 +586,13 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
} || {
|
||||
autoport_log ${JOB_CURRENT} update ok $tmpfile
|
||||
echo -n "(OK) "
|
||||
RELEASE_UPDATED=1
|
||||
}
|
||||
elif [ "$PORT_REPOSITORY" != "$DEST_REPOSITORY" ]; then
|
||||
echo -n "update"
|
||||
[ "$VERBOSE_MODE" ] && echo "
|
||||
%% COMMAND: LANG=C LC_ALL=C autodist -u -r ${JOB_CURRENT} --severity 2 -- $STAGEOPTS --changelog \"automatic port from $PORT_REPOSITORY\""
|
||||
LANG=C LC_ALL=C autodist -u -r ${JOB_CURRENT} --severity 2 -- $STAGEOPTS --changelog \"automatic port from $PORT_REPOSITORY\" &>$tmpfile
|
||||
LANG=C LC_ALL=C autodist -u -r ${JOB_CURRENT} --severity 2 -- $STAGEOPTS --changelog \"automatic port from $PORT_REPOSITORY\" --- $SCRIPT_ARGS &>$tmpfile
|
||||
cat $tmpfile >> $logfile
|
||||
[ $? -gt 0 ] && {
|
||||
echo "(FAILED) "
|
||||
@ -532,6 +601,7 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
} || {
|
||||
autoport_log ${JOB_CURRENT} update ok $tmpfile
|
||||
echo -n "(OK) "
|
||||
RELEASE_UPDATED=1
|
||||
}
|
||||
elif [ "$REBUILD_MILESTONE" -a "$src_milestone" != "$REBUILD_MILESTONE" ]; then
|
||||
echo -n "update"
|
||||
@ -539,10 +609,11 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
echo "(FAILED) [can't get repository information for this package]"
|
||||
continue
|
||||
}
|
||||
src_release_num=`echo $src_release | sed "s|\([0-9.]*\).*|\1|"`
|
||||
[ "$VERBOSE_MODE" ] && echo "
|
||||
%% COMMAND: LANG=C LC_ALL=C autospec -u ${JOB_CURRENT} -a4 --rebuild --changelog \"$REBUILD_MILESTONE milestone rebuild\""
|
||||
%% COMMAND: LANG=C LC_ALL=C autospec -u ${JOB_CURRENT} -a4 --changelog \"$REBUILD_MILESTONE milestone rebuild\" $src_version $src_release_num${REBUILD_MILESTONE}"
|
||||
# FIXME: should be implemented in autodist
|
||||
LANG=C LC_ALL=C autospec -u ${JOB_CURRENT} -a4 --rebuild --changelog "$REBUILD_MILESTONE milestone rebuild" &>$tmpfile
|
||||
LANG=C LC_ALL=C autospec -u ${JOB_CURRENT} -a4 --changelog "$REBUILD_MILESTONE milestone rebuild" $src_version $src_release_num${REBUILD_MILESTONE} &>$tmpfile
|
||||
[ $? -gt 0 ] && {
|
||||
if [ "$VERBOSE_MODE" ]; then
|
||||
echo
|
||||
@ -563,6 +634,7 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
cat $tmpfile >> $logfile
|
||||
echo -n "(OK) "
|
||||
autoport_log ${JOB_CURRENT} update ok $tmpfile
|
||||
RELEASE_UPDATED=1
|
||||
}
|
||||
fi
|
||||
}
|
||||
@ -572,15 +644,14 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
autoport_log ${JOB_CURRENT} port failed
|
||||
continue
|
||||
fi
|
||||
if [ "$DONT_PREPARE_THIS" = "1" -a "$src_repository" != "$PORT_REPOSITORY" ]; then
|
||||
# if both -np and -r were given send to PORT_REPOSITORY instead of src_repository
|
||||
src_repository=$PORT_REPOSITORY
|
||||
SEND_REPOSITORY=$DEST_REPOSITORY
|
||||
if [ ! "$RELEASE_UPDATED" -a ! "$DONT_PREPARE_THIS" ]; then
|
||||
SEND_REPOSITORY=$src_repository
|
||||
fi
|
||||
[ "$PORT_REPOSITORY" != "$DEST_REPOSITORY" ] && src_repository="$DEST_REPOSITORY"
|
||||
[ ! "$DONT_PREPARE_THIS" -a "$PORT_REPOSITORY" = "$DEST_REPOSITORY" -a ! "$REBUILD_MILESTONE" ] && NOSRPM_OPTS="--nosrpm" || NOSRPM_OPTS="--force"
|
||||
[ ! "$DONT_PREPARE_THIS" -a ! "$RELEASE_UPDATED" ] && NOSRPM_OPTS="--nosrpm" || NOSRPM_OPTS="--force"
|
||||
[ "$VERBOSE_MODE" ] && echo "
|
||||
%% COMMAND: LANG=C LC_ALL=C autodist -b -s ${JOB_CURRENT} --arch $TARGET_ARCH --server $src_repository --repository $PORT_REPOSITORY --severity 2 $FORCE_FLAG -- $STAGEOPTS $NOSRPM_OPTS"
|
||||
LANG=C LC_ALL=C autodist -b -s ${JOB_CURRENT} --arch $TARGET_ARCH --server $src_repository --repository $PORT_REPOSITORY --severity 2 $FORCE_FLAG -- $STAGEOPTS $NOSRPM_OPTS &>$tmpfile
|
||||
%% COMMAND: LANG=C LC_ALL=C autodist -b -s ${JOB_CURRENT} --arch $TARGET_ARCH --server $SEND_REPOSITORY --repository $PORT_REPOSITORY --severity 2 $FORCE_FLAG -- $STAGEOPTS $NOSRPM_OPTS"
|
||||
LANG=C LC_ALL=C autodist -b -s ${JOB_CURRENT} --arch $TARGET_ARCH --server $SEND_REPOSITORY --repository $PORT_REPOSITORY --severity 2 $FORCE_FLAG -- $STAGEOPTS $NOSRPM_OPTS &>$tmpfile
|
||||
[ $? -gt 0 ] && {
|
||||
if [ "$VERBOSE_MODE" ]; then
|
||||
echo
|
||||
@ -607,10 +678,10 @@ for TARGET_ARCH in ${TARGET_ARCHS}; do
|
||||
if [ "$WEBBUILD_URL" -a "$WEBBUILD_USER" ]; then
|
||||
if [ "$WEBBUILD_USER_CMDLINE" ]; then
|
||||
curl -s "$WEBBUILD_URL?REQUEST=message&USER=$WEBBUILD_USER&SECRET=$WEBBUILD_SECRET&USER_EMAIL=$WEBBUILD_EMAIL&\
|
||||
MESSAGE=`cgi_encodevar \"(invoked by $WEBBUILD_USER_CMDLINE) ported <b>$JOB_CURRENT</b> to <b>$TARGET_ARCH</b> and sent it to <b>$src_repository</b>\"`" >/dev/null
|
||||
MESSAGE=`cgi_encodevar \"(invoked by $WEBBUILD_USER_CMDLINE) ported <b>$JOB_CURRENT</b> to <b>$TARGET_ARCH</b> and sent it to <b>$SEND_REPOSITORY</b>\"`" >/dev/null
|
||||
else
|
||||
curl -s "$WEBBUILD_URL?REQUEST=message&USER=$WEBBUILD_USER&SECRET=$WEBBUILD_SECRET&USER_EMAIL=$WEBBUILD_EMAIL&\
|
||||
MESSAGE=`cgi_encodevar \"ported <b>$JOB_CURRENT</b> to <b>$TARGET_ARCH</b> and sent it to <b>$src_repository</b>\"`" >/dev/null
|
||||
MESSAGE=`cgi_encodevar \"ported <b>$JOB_CURRENT</b> to <b>$TARGET_ARCH</b> and sent it to <b>$SEND_REPOSITORY</b>\"`" >/dev/null
|
||||
fi
|
||||
fi
|
||||
}
|
||||
@ -654,8 +725,8 @@ MESSAGE=`cgi_encodevar \"ported <b>$JOB_CURRENT</b> to <b>$TARGET_ARCH</b> and s
|
||||
JOB_CANTINSTALL=()
|
||||
for JOB_NUM in `seq 1 ${#JOB_CANTINSTALL_OLD[*]}`; do
|
||||
JOB_CURRENT=${JOB_CANTINSTALL_OLD[$JOB_NUM-1]}
|
||||
if [ "`grep "^${JOB_CURRENT}$" /etc/autodist/unstage 2>/dev/null`" -o \
|
||||
"`grep "^${JOB_CURRENT}$" /etc/autodist/unstage.${TARGET_ARCH} 2>/dev/null`" ]; then
|
||||
if [ "`grep "^${JOB_CURRENT}$" /etc/autodist/unstage.${TARGET_ARCH} 2>/dev/null`" -o \
|
||||
"`grep "^${JOB_CURRENT}$" $DATADIR/$PORT_REPOSITORY/unstage.$TARGET_ARCH 2>/dev/null`" ]; then
|
||||
echo -n "$JOB_CURRENT: "
|
||||
STAGEOPTS=
|
||||
else
|
||||
@ -718,4 +789,4 @@ MESSAGE=`cgi_encodevar \"ported <b>$JOB_CURRENT</b> to <b>$TARGET_ARCH</b> and s
|
||||
rm -f $tmpfile $tmpfile1
|
||||
done
|
||||
echo "* All jobs completed. See $logfile for details."
|
||||
exit 0
|
||||
exit ${#JOB_FAILED[*]}
|
||||
|
@ -30,7 +30,7 @@ function fix_la_files() {
|
||||
sed -i "s|libdir='/usr/$TARGET_PLATFORM/${_lib}'|libdir='/usr/${_lib}'|g" /usr/${_lib}/*.la
|
||||
sed -i "s|libdir='/$TARGET_PLATFORM/${_lib}'|libdir='/usr/${_lib}'|g" /usr/${_lib}/*.la
|
||||
sed -i "s|/usr/$TARGET_PLATFORM/${_lib}|/usr/${_lib}|g" /usr/${_lib}/*.la
|
||||
sed -i "s|[:space:]/usr/$TARGET_PLATFORM/${_lib}|[:space:]/usr/${_lib}/lib|g" /usr/${_lib}/*.la
|
||||
sed -i "s|[[:space:]]/usr/$TARGET_PLATFORM/${_lib}|[[:space:]]/usr/${_lib}/lib|g" /usr/${_lib}/*.la
|
||||
}
|
||||
done
|
||||
}
|
||||
@ -41,7 +41,7 @@ function fix_la_files_cross() {
|
||||
sed -i "s|libdir='/usr/${_lib}'|libdir='/usr/$TARGET_PLATFORM/${_lib}'|g" /usr/$TARGET_PLATFORM/${_lib}/*.la
|
||||
sed -i "s|libdir='/${_lib}'|libdir='/usr/$TARGET_PLATFORM/${_lib}'|g" /usr/$TARGET_PLATFORM/${_lib}/*.la
|
||||
sed -i "s|/usr/${_lib}|/usr/$TARGET_PLATFORM/${_lib}|g" /usr/$TARGET_PLATFORM/${_lib}/*.la
|
||||
sed -i "s|[:space:]/lib/${_lib}|[:space:]/usr/$TARGET_PLATFORM/${_lib}/lib|g" /usr/$TARGET_PLATFORM/${_lib}/*.la
|
||||
sed -i "s|[[:space:]]/lib/${_lib}|[[:space:]]/usr/$TARGET_PLATFORM/${_lib}/lib|g" /usr/$TARGET_PLATFORM/${_lib}/*.la
|
||||
}
|
||||
done
|
||||
}
|
||||
|
@ -12,7 +12,6 @@ makedist
|
||||
makedist-openmamba
|
||||
postplug
|
||||
grub-theme-openmamba
|
||||
kdevelop
|
||||
lxde
|
||||
distromatic
|
||||
u-boot
|
||||
|
@ -1,7 +1,8 @@
|
||||
# Global configuration file for autodist
|
||||
#
|
||||
AUTODIST_ARCHS=(i586 x86_64 arm)
|
||||
REPS_BASE_URL=http://www.openmamba.org/pub/openmamba
|
||||
SITE_BASE_URL=http://www.openmamba.org
|
||||
REPS_BASE_URL=${SITE_BASE_URL}/pub/openmamba
|
||||
LOCAL_REPS_BASE_DIR=/var/ftp/pub/openmamba
|
||||
SEND_SERVER=devel-autodist
|
||||
#WEBBUILD_URL=http://localhost/cgi-bin/webbuild
|
||||
@ -17,6 +18,7 @@ AUTOBUILD_SUCCESS_DAYS=3
|
||||
AUTODIST_REPOSITORY=devel-autodist
|
||||
AUTODIST_DELAYED_REPOSITORY=devel-future
|
||||
AUTODIST_REPOSITORIES=(devel devel-games devel-makedist devel-kernel devel-xorg devel-kde4 devel-autodist)
|
||||
AUTOPORT_UNSTAGE_ARCHS="i586"
|
||||
AUTOPORT_STAGEVARS="--define stage1=1"
|
||||
AUTOPORT_MAX_STEPS=10
|
||||
#RPMDIR=/usr/src/RPM
|
||||
|
@ -1,289 +0,0 @@
|
||||
# openmamba autodist build jobs database - architecture independent
|
||||
#
|
||||
# Copyright (c) 2006-2013 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Released under the terms of the GNU GPL version 3 license
|
||||
#
|
||||
|
||||
xorg_drv_video_all=(
|
||||
xorg-drv-video-apm,xorg-drv-video-ark,xorg-drv-video-ast,xorg-drv-video-ati,\
|
||||
xorg-drv-video-chips,xorg-drv-video-cirrus,xorg-drv-video-dummy,xorg-drv-video-fbdev,\
|
||||
xorg-drv-video-geode,xorg-drv-video-glint,xorg-drv-video-i128,xorg-drv-video-i740,\
|
||||
xorg-drv-video-intel,xorg-drv-video-mach64,xorg-drv-video-mga,xorg-drv-video-neomagic,\
|
||||
xorg-drv-video-newport,xorg-drv-video-nouveau,xorg-drv-video-nv,xorg-drv-video-openchrome,\
|
||||
xorg-drv-video-r128,xorg-drv-video-radeonhd,xorg-drv-video-rendition,xorg-drv-video-s3,\
|
||||
xorg-drv-video-s3virge,xorg-drv-video-savage,xorg-drv-video-siliconmotion,xorg-drv-video-sis,\
|
||||
xorg-drv-video-trident,xorg-drv-video-tseng,xorg-drv-video-v4l,\
|
||||
xorg-drv-video-vesa,xorg-drv-video-vmware,xorg-drv-video-voodoo,xorg-drv-video-xgixp,\
|
||||
xorg-drv-video
|
||||
%continue_on_error
|
||||
1
|
||||
)
|
||||
#xorg-drv-video-sisusb,
|
||||
|
||||
xorg_drv_input=(
|
||||
xorg-drv-input-acecad,xorg-drv-input-aiptek,xorg-drv-input-elographics,\
|
||||
xorg-drv-input-evdev,xorg-drv-input-fpit,xorg-drv-input-hyperpen,xorg-drv-input-joystick,\
|
||||
xorg-drv-input-keyboard,xorg-drv-input-mouse,xorg-drv-input-mutouch,xorg-drv-input-penmount,\
|
||||
xorg-drv-input-synaptics,xorg-drv-input-tslib,xorg-drv-input-vmmouse,xorg-drv-input-void,\
|
||||
xorg-drv-input
|
||||
%continue_on_error
|
||||
1
|
||||
)
|
||||
|
||||
abiword=(
|
||||
abiword,abiword-docs
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
|
||||
compiz=(
|
||||
compiz,compiz-bcop,compiz-plugins-extra,compiz-plugins-main,libcompizconfig,compizconfig-backend-kconfig4,\
|
||||
compizconfig-simple-settings-manager,emerald
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
# compiz-bcop,compizconfig-backend-kconfig,compizconfig-settings-manager,compizconfig-backend-gconf
|
||||
|
||||
compiz09=(
|
||||
compiz-core,libcompizconfig,python-compizconfig,compizconfig-backend-kconfig4,compiz-fusion-plugins-main,compiz-fusion-plugins-extra
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
|
||||
#curl=(
|
||||
#curl
|
||||
#%build_and_install
|
||||
#1
|
||||
#)
|
||||
|
||||
evolution=(
|
||||
libevolution-data-server,evolution
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
#,evolution-exchange
|
||||
|
||||
#ekiga=(
|
||||
#libpt,libopal,ekiga
|
||||
#%build_and_install
|
||||
#1
|
||||
#)
|
||||
|
||||
#gobby=(
|
||||
#obby,gobby
|
||||
#%build_and_install
|
||||
#1
|
||||
#)
|
||||
|
||||
kde3=(
|
||||
kdelibs,kdebase,kdeadmin,kdeutils,kdenetwork,kdeaccessibility,kdepim,kdegames,kdegraphics,kdemultimedia,kdeaddons,kdenetwork,\
|
||||
kdesdk,kdetoys,kdebindings,kdewebdev,kdeedu,kdeartwork,kde-i18n
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
|
||||
kde4=(
|
||||
kdelibs,kdepimlibs,oxygen-icons,nepomuk-core,kde-runtime,kactivities,kde-wallpapers,kde-baseapps,\
|
||||
nepomuk-widgets,kdepim,kdepim-runtime,libkdcraw,libkexiv2,kdeartwork,marble,\
|
||||
kdeplasma-addons,kde-l10n,blinken,libkipi,gwenview,libkdeedu,analitza,cantor,kalgebra,kalzium,kamera,\
|
||||
kanagram,kate,kbruch,kcolorchooser,kdegraphics-strigi-analyzer,kgamma,kgeography,khangman,kig,kiten,\
|
||||
klettres,kmplot,kolourpaint,konsole,kruler,ksnapshot,kstars,libksane,\
|
||||
okular,smokegen,smokeqt,smokekde,svgpart,rocs,kwordquiz,kturtle,ktouch,qtruby,korundum,\
|
||||
kross-interpreters,PyKDE4,perl-Qt4,perl-KDE,kdegraphics-thumbnailers,ksaneplugin,parley,step,\
|
||||
ark,filelight,kcalc,kcharselect,kdf,kfloppy,kgpg,kremotecontrol,ktimer,sweeper,\
|
||||
jovie,kmousetool,kmouth,qyoto,kimono,kaccessible,kdegraphics-mobipocket,\
|
||||
libkcddb,libkcompactdisc,audiocd-kio,kscd,dragon,kmix,juk,print-manager,kdewebdev,\
|
||||
kde-base-artwork,ffmpegthumbs,kmag,mplayerthumbs,superkaramba,\
|
||||
libkdegames,bomber,bovo,granatier,kajongg,kapman,knavalbattle,katomic,kblackbox,kblocks,\
|
||||
ksnakeduel,kbounce,kbreakout,kdiamond,kfourinline,kgoldrunner,kigo,killbots,kiriki,kjumpingcube,\
|
||||
klickety,klines,libkmahjongg,kmahjongg,kmines,knetwalk,kolf,kollision,konquest,kpat,kshisen,\
|
||||
kreversi,kspaceduel,ksquares,ksirk,ktuberling,kubrick,lskat,palapeli,ksudoku,pairs,picmi,\
|
||||
amor,kteatime,ktux,kcron,ksystemlog,kuser,kdenetwork-filesharing,zeroconf-ioslave,kget,kopete,kppp,\
|
||||
krdc,krfb,kdenetwork-strigi-analyzers,kdesdk-thumbnailers,cervisia,kcachegrind,kdesdk-kioslaves,\
|
||||
libkomparediff2,kompare,lokalize,okteta,dolphin-plugins,umbrello,kapptemplate,kde-dev-scripts,\
|
||||
kde-dev-utils,poxml,kdesdk-strigi-analyzers,kwalletmanager,baloo,kfilemetadata
|
||||
%build_and_install,%continue_on_error
|
||||
1,1
|
||||
)
|
||||
|
||||
kde4123=(
|
||||
kdelibs,kdepimlibs,oxygen-icons,nepomuk-core,kde-runtime,kactivities,kde-wallpapers,kde-baseapps,\
|
||||
nepomuk-widgets,kdepim,kdepim-runtime,libkdcraw,libkexiv2,kdeartwork,marble,\
|
||||
kdeplasma-addons,kde-l10n,blinken,libkipi,gwenview,libkdeedu,analitza,cantor,kalgebra,kalzium,kamera,\
|
||||
kanagram,kate,kbruch,kcolorchooser,kdegraphics-strigi-analyzer,kgamma,kgeography,khangman,kig,kiten,\
|
||||
klettres,kmplot,kolourpaint,konsole,kruler,ksnapshot,kstars,libksane,\
|
||||
okular,smokegen,smokeqt,smokekde,svgpart,rocs,kwordquiz,kturtle,ktouch,qtruby,korundum,\
|
||||
kross-interpreters,PyKDE4,perl-Qt4,perl-KDE,kdegraphics-thumbnailers,ksaneplugin,parley,step,\
|
||||
ark,filelight,kcalc,kcharselect,kdf,kfloppy,kgpg,kremotecontrol,ktimer,sweeper,\
|
||||
jovie,kmousetool,kmouth,qyoto,kimono,kaccessible,kdegraphics-mobipocket,\
|
||||
libkcddb,libkcompactdisc,audiocd-kio,kscd,dragon,kmix,juk,print-manager,kdewebdev,\
|
||||
kde-base-artwork,ffmpegthumbs,kmag,mplayerthumbs,superkaramba,\
|
||||
libkdegames,bomber,bovo,granatier,kajongg,kapman,knavalbattle,katomic,kblackbox,kblocks,\
|
||||
ksnakeduel,kbounce,kbreakout,kdiamond,kfourinline,kgoldrunner,kigo,killbots,kiriki,kjumpingcube,\
|
||||
klickety,klines,libkmahjongg,kmahjongg,kmines,knetwalk,kolf,kollision,konquest,kpat,kshisen,\
|
||||
kreversi,kspaceduel,ksquares,ksirk,ktuberling,kubrick,lskat,palapeli,ksudoku,pairs,picmi,\
|
||||
amor,kteatime,ktux,kcron,ksystemlog,kuser,kdenetwork-filesharing,kdnssd,kget,kopete,kppp,\
|
||||
krdc,krfb,kdenetwork-strigi-analyzers,kdesdk-thumbnailers,cervisia,kcachegrind,kdesdk-kioslaves,\
|
||||
libkomparediff2,kompare,lokalize,okteta,dolphin-plugins,umbrello,kapptemplate,kde-dev-scripts,\
|
||||
kde-dev-utils,poxml,kdesdk-strigi-analyzers
|
||||
%build_and_install,%continue_on_error
|
||||
1,1
|
||||
)
|
||||
# kwalletmanager
|
||||
|
||||
kde4122=(
|
||||
kdelibs,kdepimlibs,oxygen-icons,nepomuk-core,kde-runtime,kactivities,kde-wallpapers,kde-baseapps,\
|
||||
nepomuk-widgets,kdepim,kdepim-runtime,libkdcraw,libkexiv2,kdeartwork,marble,\
|
||||
kdeplasma-addons,kde-l10n,blinken,libkipi,gwenview,libkdeedu,analitza,cantor,kalgebra,kalzium,kamera,\
|
||||
kanagram,kate,kbruch,kcolorchooser,kdegraphics-strigi-analyzer,kgamma,kgeography,khangman,kig,kiten,\
|
||||
klettres,kmplot,kolourpaint,konsole,kruler,ksnapshot,kstars,libksane,\
|
||||
okular,smokegen,smokeqt,smokekde,svgpart,rocs,kwordquiz,kturtle,ktouch,qtruby,korundum,\
|
||||
kross-interpreters,PyKDE4,perl-Qt4,perl-KDE,kdegraphics-thumbnailers,ksaneplugin,parley,step,\
|
||||
ark,filelight,kcalc,kcharselect,kdf,kfloppy,kgpg,kremotecontrol,ktimer,kwallet,sweeper,\
|
||||
jovie,kmousetool,kmouth,qyoto,kimono,kaccessible,kdegraphics-mobipocket,\
|
||||
libkcddb,libkcompactdisc,audiocd-kio,kscd,dragon,kmix,juk,print-manager,kdewebdev,\
|
||||
kde-base-artwork,ffmpegthumbs,kmag,mplayerthumbs,superkaramba,\
|
||||
libkdegames,bomber,bovo,granatier,kajongg,kapman,knavalbattle,katomic,kblackbox,kblocks,\
|
||||
ksnakeduel,kbounce,kbreakout,kdiamond,kfourinline,kgoldrunner,kigo,killbots,kiriki,kjumpingcube,\
|
||||
klickety,klines,libkmahjongg,kmahjongg,kmines,knetwalk,kolf,kollision,konquest,kpat,kshisen,\
|
||||
kreversi,kspaceduel,ksquares,ksirk,ktuberling,kubrick,lskat,palapeli,ksudoku,pairs,picmi,\
|
||||
amor,kteatime,ktux,kcron,ksystemlog,kuser,kdenetwork-filesharing,kdnssd,kget,kopete,kppp,\
|
||||
krdc,krfb,kdenetwork-strigi-analyzers,kdesdk-thumbnailers,cervisia,kcachegrind,kdesdk-kioslaves,\
|
||||
libkomparediff2,kompare,lokalize,okteta,dolphin-plugins,umbrello,kapptemplate,kde-dev-scripts,\
|
||||
kde-dev-utils,poxml,kdesdk-strigi-analyzers
|
||||
%build_and_install,%continue_on_error
|
||||
1,1
|
||||
)
|
||||
|
||||
kde411=(
|
||||
kdelibs,kdepimlibs,oxygen-icons,nepomuk-core,kde-runtime,kactivities,kde-workspace,kde-wallpapers,kde-baseapps,\
|
||||
nepomuk-widgets,kdepim,kdepim-runtime,libkdcraw,libkexiv2,kdeartwork,marble,\
|
||||
kdeplasma-addons,kde-l10n,blinken,libkipi,gwenview,libkdeedu,analitza,cantor,kalgebra,kalzium,kamera,\
|
||||
kanagram,kate,kbruch,kcolorchooser,kdegraphics-strigi-analyzer,kgamma,kgeography,khangman,kig,kiten,\
|
||||
klettres,kmplot,kolourpaint,konsole,kruler,ksnapshot,kstars,libksane,\
|
||||
okular,smokegen,smokeqt,smokekde,svgpart,rocs,kwordquiz,kturtle,ktouch,qtruby,korundum,\
|
||||
kross-interpreters,PyKDE4,perl-Qt4,perl-KDE,kdegraphics-thumbnailers,ksaneplugin,parley,step,\
|
||||
ark,filelight,kcalc,kcharselect,kdf,kfloppy,kgpg,kremotecontrol,ktimer,kwallet,sweeper,\
|
||||
jovie,kmousetool,kmouth,qyoto,kimono,kaccessible,kdegraphics-mobipocket,\
|
||||
libkcddb,libkcompactdisc,audiocd-kio,kscd,dragon,kmix,juk,print-manager,kdewebdev,\
|
||||
kde-base-artwork,ffmpegthumbs,kmag,mplayerthumbs,superkaramba,\
|
||||
libkdegames,bomber,bovo,granatier,kajongg,kapman,knavalbattle,katomic,kblackbox,kblocks,\
|
||||
ksnakeduel,kbounce,kbreakout,kdiamond,kfourinline,kgoldrunner,kigo,killbots,kiriki,kjumpingcube,\
|
||||
klickety,klines,libkmahjongg,kmahjongg,kmines,knetwalk,kolf,kollision,konquest,kpat,kshisen,\
|
||||
kreversi,kspaceduel,ksquares,ksirk,ktuberling,kubrick,lskat,palapeli,ksudoku,pairs,picmi,\
|
||||
amor,kteatime,ktux,kcron,ksystemlog,kuser,kdenetwork-filesharing,kdnssd,kget,kopete,kppp,\
|
||||
krdc,krfb,kdenetwork-strigi-analyzers,kdesdk-thumbnailers,cervisia,kcachegrind,kdesdk-kioslaves,\
|
||||
kompare,lokalize,okteta,dolphin-plugins,umbrello,kapptemplate,kde-dev-scripts,kde-dev-utils,poxml
|
||||
%build_and_install,%continue_on_error
|
||||
1,1
|
||||
)
|
||||
|
||||
kde410=(
|
||||
kdelibs,kdepimlibs,oxygen-icons,nepomuk-core,kde-runtime,kactivities,kde-workspace,kde-wallpapers,kde-baseapps,\
|
||||
nepomuk-widgets,kdepim4,kdepim-runtime,kdeadmin,kdenetwork,kdetoys,kdesdk,libkdcraw,libkexiv2,kdeartwork,marble,\
|
||||
kdeplasma-addons,kde-l10n,blinken,libkipi,gwenview,libkdeedu,analitza,cantor,kalgebra,kalzium,kamera,\
|
||||
kanagram,kate,kbruch,kcolorchooser,kdegraphics-strigi-analyzer,kgamma,kgeography,khangman,kig,kiten,\
|
||||
klettres,kmplot,kolourpaint,konsole,kruler,ksnapshot,kstars,libksane,\
|
||||
okular,smokegen,smokeqt,smokekde,svgpart,rocs,kwordquiz,kturtle,ktouch,qtruby,korundum,\
|
||||
kross-interpreters,PyKDE4,perl-Qt4,perl-KDE,kdegraphics-thumbnailers,ksaneplugin,parley,step,\
|
||||
ark,filelight,kcalc,kcharselect,kdf,kfloppy,kgpg,kremotecontrol,ktimer,kwallet,sweeper,\
|
||||
jovie,kmousetool,kmouth,qyoto,kimono,kaccessible,kdegraphics-mobipocket,\
|
||||
libkcddb,libkcompactdisc,audiocd-kio,kscd,dragon,kmix,juk,print-manager,kdewebdev,\
|
||||
kde-base-artwork,ffmpegthumbs,kmag,mplayerthumbs,superkaramba,\
|
||||
libkdegames,bomber,bovo,granatier,kajongg,kapman,knavalbattle,katomic,kblackbox,kblocks,\
|
||||
ksnakeduel,kbounce,kbreakout,kdiamond,kfourinline,kgoldrunner,kigo,killbots,kiriki,kjumpingcube,\
|
||||
klickety,klines,libkmahjongg,kmahjongg,kmines,knetwalk,kolf,kollision,konquest,kpat,kshisen,\
|
||||
kreversi,kspaceduel,ksquares,ksirk,ktuberling,kubrick,lskat,palapeli,ksudoku,pairs,picmi
|
||||
%build_and_install,%continue_on_error
|
||||
1,1
|
||||
)
|
||||
|
||||
xfce4=(
|
||||
libxfce4util,libxfce4ui,xfce4-appfinder,xfce4-dev-tools,xfce4-panel,xfce4-session,xfce4-settings,xfconf,xfdesktop,xfwm4
|
||||
%build_and_install,%continue_on_error
|
||||
1,1
|
||||
)
|
||||
|
||||
alsa=(
|
||||
libalsa,libalsa-plugins,alsa-utils,alsa-tools,python-alsa
|
||||
%build_and_install,%continue_on_error
|
||||
1,1
|
||||
)
|
||||
#,alsa-driver
|
||||
|
||||
apache_tomcat=(
|
||||
apache-tomcat-dbcp,apache-tomcat
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
|
||||
netbeans=(
|
||||
netbeans-platform,netbeans
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
|
||||
#firefox=(
|
||||
#xulrunner,firefox
|
||||
#%build_and_install
|
||||
#1
|
||||
#)
|
||||
|
||||
xfce=(
|
||||
libxfce4util,xfconf,libxfcegui4,libxfce4ui,xfce-utils,xfce4-appfinder,xfce4-panel,xfce4-session,xfdesktop,xfwm4
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
#xfce4-mixer,xfprint,orage,xfwm4-themes,libxfce4menu
|
||||
|
||||
FlightGear=(
|
||||
libSimGear,FlightGear
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
|
||||
mythtv=(
|
||||
mythtv,mythplugins
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
|
||||
valknut=(
|
||||
libdc,valknut
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
|
||||
# use for major release update (e.g. 2.24 -> 2.26)
|
||||
gnome=(
|
||||
libgnome,libsoup,libgweather,librsvg,libwnck,libgdl,gnome-desktop,python-gnome-desktop,libeel,gnome-icon-theme,gnome-menus,\
|
||||
libgnome-panel,anjuta,zenity,metacity,nautilus,brasero,cheese,evince,gconf-editor,gedit,gedit-plugins
|
||||
%build_and_install,%continue_on_error
|
||||
1,1
|
||||
)
|
||||
|
||||
#fwbuilder=(
|
||||
#libfwbuilder,fwbuilder
|
||||
#%build_and_install
|
||||
#1
|
||||
#)
|
||||
|
||||
koffice=(
|
||||
koffice
|
||||
%build_and_install
|
||||
1
|
||||
)
|
||||
#,koffice-i18n
|
||||
|
||||
python_numpy=(
|
||||
python-numpy
|
||||
with_pyver
|
||||
-
|
||||
3
|
||||
)
|
||||
|
||||
shorewall=(
|
||||
shorewall-core,shorewall
|
||||
%build_and_install
|
||||
1
|
||||
)
|
@ -1,81 +0,0 @@
|
||||
# openmamba autodist build jobs database
|
||||
#
|
||||
# Copyright (c) 2006-2010 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Released under the terms of the GNU GPL version 3 license
|
||||
#
|
||||
|
||||
#
|
||||
# XTC 1 (Cross Toolchain)
|
||||
#
|
||||
# build native binutils (gcc needed, so it's not a stage1 build)
|
||||
# and cross platform binutils
|
||||
#
|
||||
binutils=(
|
||||
binutils
|
||||
cross_target_cpu,_target_platform
|
||||
arm,arm-openmamba-linux-gnueabi
|
||||
avr,avr
|
||||
)
|
||||
|
||||
glibc=(
|
||||
glibc
|
||||
cross_target_cpu,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER,build_doc,build_profile,build_selinux
|
||||
arm,-,-,mamba-arm,3.2,0,0,0
|
||||
)
|
||||
|
||||
kernel=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
arm,mamba-arm
|
||||
)
|
||||
|
||||
linux_firmware=(
|
||||
linux-firmware
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
arm,mamba-arm,3.4
|
||||
)
|
||||
|
||||
pam=(
|
||||
pam
|
||||
bootstrap
|
||||
1
|
||||
)
|
||||
|
||||
rpm=(
|
||||
rpm
|
||||
bootstrap
|
||||
1
|
||||
)
|
||||
|
||||
klibc=(
|
||||
klibc
|
||||
KERNEL_VER
|
||||
2.6.33mamba-arm
|
||||
)
|
||||
|
||||
gcc=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform,disable_java,disable_gjdoc
|
||||
arm,arm-openmamba-linux-gnueabi,-,1
|
||||
avr,avr,1,-
|
||||
)
|
||||
|
||||
udev=(
|
||||
udev
|
||||
%build_and_install
|
||||
0
|
||||
)
|
||||
|
||||
libcec=(
|
||||
libcec
|
||||
_with_raspberrypi
|
||||
-
|
||||
1
|
||||
)
|
||||
|
||||
xbmc=(
|
||||
xbmc
|
||||
_with_raspberrypi
|
||||
-
|
||||
1
|
||||
)
|
@ -1,430 +0,0 @@
|
||||
# openmamba autodist build jobs database for i586 platform
|
||||
#
|
||||
# Copyright (c) 2006-2010 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Released under the terms of the GNU GPL version 3 license
|
||||
#
|
||||
|
||||
#
|
||||
# XTC 1 (Cross Toolchain)
|
||||
#
|
||||
# build native binutils (gcc needed, so it's not a stage1 build)
|
||||
# and cross platform binutils
|
||||
#
|
||||
binutils=(
|
||||
binutils
|
||||
cross_target_cpu,_target_platform
|
||||
i586,i586-openmamba-linux-gnu
|
||||
arm,arm-openmamba-linux-gnueabi
|
||||
arm,arm-openmamba-linux-gnueabihf
|
||||
avr,avr
|
||||
x86_64,x86_64-openmamba-linux-gnu
|
||||
ppc,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 2
|
||||
#
|
||||
# glibc stage1: build headers only
|
||||
glibc_stage1=(
|
||||
glibc
|
||||
cross_target_cpu,stage1,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
i586,1,i586-openmamba-linux-gnu,mamba,-
|
||||
arm,1,arm-openmamba-linux-gnueabi,mamba-arm,2.6.33
|
||||
ppc,1,ppc-openmamba-linux-gnu,mamba-ppc,2.6.33
|
||||
x86_64,1,x86_64-openmamba-linux-gnu,mamba-x86_64,-
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 3
|
||||
#
|
||||
gcc_stage1=(
|
||||
gcc
|
||||
cross_target_cpu,stage1,_target_platform
|
||||
arm,1,arm-openmamba-linux-gnueabi
|
||||
i586,1,i586-openmamba-linux-gnu
|
||||
ppc,1,ppc-openmamba-linux-gnu
|
||||
x86_64,1,x86_64-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 4
|
||||
#
|
||||
glibc_stage2=(
|
||||
glibc
|
||||
cross_target_cpu,stage2,bigendian,softfloat,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
arm,1,-,-,arm-openmamba-linux-gnueabi,mamba-arm,2.6.33
|
||||
i586,1,-,-,i586-openmamba-linux-gnu,mamba,-
|
||||
ppc,1,-,-,ppc-openmamba-linux-gnu,mamba,-
|
||||
x86_64,1,-,-,x86_64-openmamba-linux-gnu,mamba-x86_64,-
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 5
|
||||
#
|
||||
gcc=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform,disable_java
|
||||
i586,i586-openmamba-linux-gnu,-
|
||||
arm,arm-openmamba-linux-gnueabi,1
|
||||
x86_64,x86_64-openmamba-linux-gnu,1
|
||||
avr,avr,1
|
||||
)
|
||||
#ppc,ppc-openmamba-linux-gnu,1
|
||||
|
||||
#
|
||||
# XTC 6
|
||||
#
|
||||
glibc=(
|
||||
glibc
|
||||
target,cross_target_cpu,multilib,_target_platform,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
-,i586,-,i586-openmamba-linux-gnu,-,-,mamba,-
|
||||
-,x86_64,-,x86_64-openmamba-linux-gnu,-,-,mamba-x86_64,-
|
||||
-,arm,-,arm-openmamba-linux-gnueabi,-,-,mamba-arm,-
|
||||
-,ppc,-,ppc-openmamba-linux-gnu,-,-,mamba-ppc,2.6.33
|
||||
x86_64,i586,1,i586-openmamba-linux-gnu,-,-,mamba-x86_64,-
|
||||
)
|
||||
|
||||
# XTC 7
|
||||
cross_environment=(
|
||||
cross-environment
|
||||
cross_target_cpu,autodist_crossonly,_target_platform
|
||||
i586,1,i586-openmamba-linux-gnu
|
||||
arm,1,arm-openmamba-linux-gnueabi
|
||||
ppc,1,ppc-openmamba-linux-gnu
|
||||
x86_64,1,x86_64-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
gcc_arm=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform,disable_java
|
||||
arm,arm-openmamba-linux-gnueabi,1
|
||||
)
|
||||
|
||||
glibc_arm=(
|
||||
glibc
|
||||
cross_target_cpu,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
arm,-,-,mamba-arm,-
|
||||
)
|
||||
|
||||
glibc_multilib=(
|
||||
glibc
|
||||
target,cross_target_cpu,multilib,_target_platform,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
x86_64,i586,1,x86_64-openmamba-linux-gnu,-,-,mamba-x86_64,-
|
||||
)
|
||||
|
||||
glibc_cross_multilib=(
|
||||
glibc
|
||||
target,cross_target_cpu,multilib,_target_platform,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
-,i586,1,x86_64-openmamba-linux-gnu,-,-,mamba-x86_64,-
|
||||
)
|
||||
|
||||
gcc_cross=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform,disable_java
|
||||
x86_64,x86_64-openmamba-linux-gnu,1
|
||||
arm,arm-openmamba-linux-gnueabi,1
|
||||
ppc,ppc-openmamba-linux-gnu,1
|
||||
avr,avr,1
|
||||
)
|
||||
|
||||
glibc_cross=(
|
||||
glibc
|
||||
target,cross_target_cpu,multilib,_target_platform,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
-,x86_64,-,x86_64-openmamba-linux-gnu,-,-,mamba-x86_64,-
|
||||
-,arm,-,arm-openmamba-linux-gnueabi,-,-,mamba-arm,-
|
||||
-,ppc,-,ppc-openmamba-linux-gnu,-,-,mamba-ppc,2.6.33
|
||||
x86_64,i586,1,i586-openmamba-linux-gnu,-,-,mamba-x86_64,-
|
||||
)
|
||||
|
||||
pkg_config=(
|
||||
pkg-config
|
||||
cross_target_cpu,_target_platform
|
||||
i586,i586-openmamba-linux-gnu
|
||||
x86_64,x86_64-openmamba-linux-gnu
|
||||
arm,arm-openmamba-linux-gnueabi
|
||||
ppc,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
gcc_uclibc=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
arm,arm-linux-uclibc,-,-,mamba-arm,2.6.33
|
||||
)
|
||||
|
||||
dietlibc=(
|
||||
dietlibc
|
||||
cross_target_cpu
|
||||
i586
|
||||
arm
|
||||
)
|
||||
|
||||
gcc34=(
|
||||
gcc34
|
||||
cross_target_cpu
|
||||
i586
|
||||
ppc
|
||||
)
|
||||
|
||||
klibc=(
|
||||
klibc
|
||||
cross_target_cpu,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
-,-,-
|
||||
ppc,ppc-openmamba-linux-gnu,mamba-ppc,-
|
||||
x86_64,x86_64-openmamba-linux-gnu,3mamba-x86_64,-
|
||||
arm,arm-openmamba-linux-gnueabi,mamba-arm,-
|
||||
)
|
||||
|
||||
#
|
||||
# arm cross toolchain
|
||||
#
|
||||
binutils_arm=(
|
||||
binutils
|
||||
cross_target_cpu,_target_platform
|
||||
arm,arm-openmamba-linux-gnueabi
|
||||
)
|
||||
|
||||
glibc_stage2_armhf=(
|
||||
glibc
|
||||
cross_target_cpu,stage2,bigendian,hardfloat,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
arm,1,-,1,arm-openmamba-linux-gnueabi,mamba-arm,3.4
|
||||
)
|
||||
|
||||
#
|
||||
# armhf cross toolchain
|
||||
#
|
||||
binutils_armhf=(
|
||||
binutils
|
||||
cross_target_cpu,_target_platform
|
||||
)
|
||||
|
||||
glibc_stage1_armhf=(
|
||||
glibc
|
||||
cross_target_cpu,stage1,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
armhf,1,arm-openmamba-linux-gnueabihf,mamba-arm,3.4
|
||||
)
|
||||
|
||||
#
|
||||
# ppc cross toolchain
|
||||
#
|
||||
binutils_ppc=(
|
||||
binutils
|
||||
cross_target_cpu,_target_platform
|
||||
ppc,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
glibc_ppc_stage1=(
|
||||
glibc
|
||||
cross_target_cpu,stage1,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
ppc,1,ppc-openmamba-linux-gnu,mamba,-
|
||||
)
|
||||
|
||||
gcc_ppc_stage1=(
|
||||
gcc
|
||||
cross_target_cpu,stage1,_target_platform
|
||||
ppc,1,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
glibc_ppc_stage2=(
|
||||
glibc
|
||||
cross_target_cpu,stage2,bigendian,softfloat,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
ppc,1,-,-,ppc-openmamba-linux-gnu,mamba-ppc,2.6.33
|
||||
)
|
||||
|
||||
gcc_ppc=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform
|
||||
ppc,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
glibc_ppc=(
|
||||
glibc
|
||||
cross_target_cpu,_target_platform,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
ppc,ppc-openmamba-linux-gnu,-,-,mamba-ppc,2.6.33
|
||||
)
|
||||
|
||||
#
|
||||
# KERNEL
|
||||
#
|
||||
kernel=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
i586,mamba-64GB
|
||||
i586,mamba
|
||||
arm,mamba-arm
|
||||
arm,mamba-arm-dove
|
||||
)
|
||||
#i586,mamba-rt
|
||||
#i586,mamba-64GB-rt
|
||||
#arm,mamba-arm-kirkwood
|
||||
#x86_64,mamba-x86_64
|
||||
|
||||
kernel_310=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
i586,mamba-64GB
|
||||
i586,mamba
|
||||
arm,mamba-arm
|
||||
)
|
||||
|
||||
kernel_37=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
i586,mamba
|
||||
i586,mamba-64GB
|
||||
arm,mamba-arm
|
||||
arm,mamba-arm-kirkwood
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
|
||||
kernel_34=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
i586,mamba-64GB
|
||||
i586,mamba
|
||||
x86_64,mamba-x86_64
|
||||
i586,mamba-rt
|
||||
i586,mamba-64GB-rt
|
||||
arm,mamba-arm
|
||||
arm,mamba-arm-kirkwood
|
||||
)
|
||||
|
||||
kernel_34_64GB=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
i586,mamba-64GB
|
||||
)
|
||||
|
||||
kernel_arm_kirkwood=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
arm,mamba-arm-kirkwood
|
||||
)
|
||||
|
||||
kernel_milestone2=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
i586,mamba
|
||||
i586,mamba-64GB
|
||||
arm,mamba-arm
|
||||
)
|
||||
|
||||
kernel_rt=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
i586,mamba-rt
|
||||
)
|
||||
|
||||
kernel_64GB=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
i586,mamba-64GB
|
||||
)
|
||||
|
||||
kernel_64GB_rt=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
i586,mamba-64GB-rt
|
||||
)
|
||||
|
||||
kernel_x86_64=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
|
||||
kernel_packages=(
|
||||
slmodem,stk11xx,cm2020
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
i586,mamba,-
|
||||
i586,mamba-64GB,-
|
||||
)
|
||||
#i586,mamba-rt,-
|
||||
#i586,mamba-64GB-rt,-
|
||||
|
||||
#Removed:
|
||||
#hsfmodem: dropped support
|
||||
#r8101, broadcom-sta, ndiswrapper: dkms
|
||||
#alsa-driver: abandoned upstream
|
||||
#compat-wireless: changed upstream to backport, stopping maintaining it for now
|
||||
#lirc
|
||||
|
||||
kernel_packages_37=(
|
||||
hsfmodem,slmodem,compat-wireless,alsa-driver,ati-driver,ndiswrapper,NVIDIA,VirtualBox-kernel,\
|
||||
broadcom-sta,stk11xx,cm2020,r8101
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
i586,mamba,3.7
|
||||
i586,mamba-64GB,3.7
|
||||
)
|
||||
#i586,mamba-rt,3.7
|
||||
#i586,mamba-64GB-rt,3.7
|
||||
|
||||
kernel_packages_36=(
|
||||
hsfmodem,slmodem,compat-wireless,alsa-driver,ati-driver,ndiswrapper,NVIDIA,VirtualBox-kernel,\
|
||||
broadcom-sta,stk11xx,cm2020,r8101
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
i586,mamba,3.6
|
||||
i586,mamba-64GB,3.6
|
||||
i586,mamba-rt,3.6
|
||||
i586,mamba-64GB-rt,3.6
|
||||
)
|
||||
#lirc
|
||||
|
||||
kernel_packages_34=(
|
||||
hsfmodem,slmodem,compat-wireless,alsa-driver,ati-driver,ndiswrapper,NVIDIA,VirtualBox-kernel,\
|
||||
broadcom-sta,stk11xx,cm2020,r8101
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
i586,mamba,3.4
|
||||
i586,mamba-64GB,3.4
|
||||
i586,mamba-rt,3.4
|
||||
i586,mamba-64GB-rt,3.4
|
||||
)
|
||||
#lirc
|
||||
|
||||
kernel_packages_32=(
|
||||
hsfmodem,slmodem,compat-wireless,alsa-driver,ati-driver,lirc,ndiswrapper,NVIDIA,NVIDIA_71xx,NVIDIA_96xx,NVIDIA_173xx,VirtualBox-kernel,\
|
||||
broadcom-sta,stk11xx,cm2020,r8101
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
i586,mamba,3.2
|
||||
i586,mamba-64GB,3.2
|
||||
)
|
||||
|
||||
kernel_packages_30=(
|
||||
hsfmodem,slmodem,compat-wireless,alsa-driver,ati-driver,lirc,ndiswrapper,NVIDIA,NVIDIA_71xx,NVIDIA_96xx,NVIDIA_173xx,VirtualBox,\
|
||||
broadcom-sta,atheros-81,drbd,rtl8192se
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
i586,mamba,3.0
|
||||
i586,mamba-64GB,3.0
|
||||
)
|
||||
|
||||
kernel_hannspad=(
|
||||
kernel-hannspad
|
||||
target
|
||||
arm
|
||||
)
|
||||
|
||||
kernel_iconia=(
|
||||
kernel-iconia
|
||||
target
|
||||
arm
|
||||
)
|
||||
|
||||
kernel_iconia_altgcc=(
|
||||
kernel-iconia
|
||||
target,_target_platform
|
||||
arm,arm-none-linux-gnueabi
|
||||
)
|
||||
|
||||
linux_firmware=(
|
||||
linux-firmware
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
i586,mamba,3.10
|
||||
)
|
||||
|
||||
NVIDIA=(
|
||||
NVIDIA
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
i586,mamba,-
|
||||
i586,mamba-64GB,-
|
||||
i586,mamba-rt
|
||||
i586,mamba-64GB-rt
|
||||
)
|
@ -1,267 +0,0 @@
|
||||
# openmamba autodist build jobs database
|
||||
#
|
||||
# Copyright (c) 2006-2010 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Released under the terms of the GNU GPL version 3 license
|
||||
#
|
||||
|
||||
# XTC 1 (Cross Toolchain)
|
||||
cross_environment=(
|
||||
cross-environment
|
||||
cross_target_cpu,autodist_crossonly,_target_platform
|
||||
x86_64,1,x86_64-openmamba-linux-gnu
|
||||
i586,1,i586-openmamba-linux-gnu
|
||||
arm,1,arm-openmamba-linux-gnueabi
|
||||
ppc,1,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 2
|
||||
#
|
||||
# build native binutils (gcc needed, so it's not a stage1 build)
|
||||
# and cross platform binutils
|
||||
#
|
||||
binutils=(
|
||||
binutils
|
||||
cross_target_cpu,_target_platform
|
||||
x86_64,x86_64-openmamba-linux-gnu
|
||||
i586,i586-openmamba-linux-gnu
|
||||
arm,arm-openmamba-linux-gnueabi
|
||||
ppc,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 3
|
||||
#
|
||||
# glibc stage1: build headers only
|
||||
glibc_stage1=(
|
||||
glibc
|
||||
cross_target_cpu,stage1,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
x86_64,1,x86_64-openmamba-linux-gnu,mamba-x86_64,-
|
||||
arm,1,arm-openmamba-linux-gnueabi,mamba-arm,2.6.33
|
||||
i586,1,i586-openmamba-linux-gnu,mamba,-
|
||||
ppc,1,ppc-openmamba-linux-gnu,mamba,-
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 4
|
||||
#
|
||||
gcc_stage1=(
|
||||
gcc
|
||||
cross_target_cpu,stage1,_target_platform
|
||||
x86_64,1,x86_64-openmamba-linux-gnu
|
||||
arm,1,arm-openmamba-linux-gnueabi
|
||||
i586,1,i586-openmamba-linux-gnu
|
||||
ppc,1,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 5
|
||||
#
|
||||
glibc_stage2=(
|
||||
glibc
|
||||
cross_target_cpu,stage2,bigendian,softfloat,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
x86_64,1,-,-,x86_64-openmamba-linux-gnu,mamba-x86_64,-
|
||||
arm,1,-,-,arm-openmamba-linux-gnueabi,mamba-arm,2.6.33
|
||||
i586,1,-,-,i586-openmamba-linux-gnu,mamba,-
|
||||
ppc,1,-,-,ppc-openmamba-linux-gnu,mamba,-
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 6
|
||||
#
|
||||
gcc=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform
|
||||
x86_64,x86_64-openmamba-linux-gnu
|
||||
arm,arm-openmamba-linux-gnueabi
|
||||
i586,i586-openmamba-linux-gnu
|
||||
ppc,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 7
|
||||
#
|
||||
glibc=(
|
||||
glibc
|
||||
cross_target_cpu,_target_platform,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
ppc,ppc-openmamba-linux-gnu,-,-,mamba-ppc,2.6.33
|
||||
x86_64,x86_64-openmamba-linux-gnu,-,-,mamba-x86_64,-
|
||||
i586,i586-openmamba-linux-gnu,-,-,mamba,-
|
||||
arm,arm-openmamba-linux-gnueabi,-,-,mamba-arm,2.6.33
|
||||
)
|
||||
|
||||
gcc_uclibc=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
arm,arm-linux-uclibc,-,-,mamba-arm,2.6.33
|
||||
)
|
||||
|
||||
dietlibc=(
|
||||
dietlibc
|
||||
cross_target_cpu
|
||||
ppc
|
||||
x86_64
|
||||
i586
|
||||
arm
|
||||
)
|
||||
|
||||
gcc34=(
|
||||
gcc34
|
||||
cross_target_cpu
|
||||
ppc
|
||||
x86_64
|
||||
i586
|
||||
ppc
|
||||
)
|
||||
|
||||
#klibc=(
|
||||
#klibc
|
||||
#cross_target_cpu,_target_platform,KERNEL_VER
|
||||
#-,-,-
|
||||
#ppc,ppc-openmamba-linux-gnueabi,2.6.33mamba-ppc
|
||||
#)
|
||||
|
||||
kernel=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
kernel_new=(
|
||||
kernel
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
ppc,mamba-ppc,2.6.33
|
||||
)
|
||||
|
||||
kernel_extra=(
|
||||
kernel-extramodules
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
kernel_packages=(
|
||||
hsfmodem,compat-wireless,ati-driver,NVIDIA,NVIDIA_71xx,NVIDIA_96xx,NVIDIA_173xx,broadcom-sta
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
ppc,mamba-ppc,-
|
||||
)
|
||||
# slmodem, alsa-driver, lirc,VirtualBox, ndiswrapper, alsa-driver
|
||||
|
||||
kernel_packages_new=(
|
||||
hsfmodem,compat-wireless,ati-driver,NVIDIA,NVIDIA_71xx,NVIDIA_96xx,NVIDIA_173xx,broadcom-sta
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
ppc,mamba-ppc,2.6.33
|
||||
)
|
||||
|
||||
NVIDIA_all=(
|
||||
NVIDIA,NVIDIA_71xx,NVIDIA_96xx,NVIDIA_173xx
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
alsa_driver=(
|
||||
alsa-driver
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
ati_driver=(
|
||||
ati-driver
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
broadcom_sta=(
|
||||
broadcom-sta
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
kernel_extramodules=(
|
||||
kernel-extramodules
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
kernel_nongpl=(
|
||||
kernel-nongpl
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
kernel_wireless_backport=(
|
||||
kernel-wireless-backport
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
lirc=(
|
||||
lirc
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
ndiswrapper=(
|
||||
ndiswrapper
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
NVIDIA=(
|
||||
NVIDIA
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
VirtualBox=(
|
||||
VirtualBox
|
||||
target,KERNEL_TARGET
|
||||
ppc,mamba-ppc
|
||||
)
|
||||
|
||||
glibc=(
|
||||
glibc
|
||||
cross_target_cpu,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
ppc,-,-,mamba-ppc,2.6.33
|
||||
)
|
||||
|
||||
gcc=(
|
||||
gcc
|
||||
cross_target_cpu
|
||||
ppc
|
||||
)
|
||||
|
||||
binutils=(
|
||||
binutils
|
||||
cross_target_cpu
|
||||
ppc
|
||||
)
|
||||
|
||||
pam=(
|
||||
pam
|
||||
bootstrap
|
||||
1
|
||||
)
|
||||
|
||||
rpm=(
|
||||
rpm
|
||||
bootstrap
|
||||
1
|
||||
)
|
||||
|
||||
klibc=(
|
||||
klibc
|
||||
KERNEL_VER
|
||||
2.6.33mamba-ppc
|
||||
)
|
||||
|
||||
emacs=(
|
||||
emacs
|
||||
bootstrap
|
||||
1
|
||||
)
|
||||
|
||||
gcc=(
|
||||
gcc
|
||||
disable_jack,disable_java,disable_gjdoc
|
||||
1,1,1
|
||||
)
|
@ -1,281 +0,0 @@
|
||||
# openmamba autodist build jobs database
|
||||
#
|
||||
# Copyright (c) 2006-2010 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Released under the terms of the GNU GPL version 3 license
|
||||
#
|
||||
|
||||
# XTC 1 (Cross Toolchain)
|
||||
cross_environment=(
|
||||
cross-environment
|
||||
cross_target_cpu,autodist_crossonly,_target_platform
|
||||
x86_64,1,x86_64-openmamba-linux-gnu
|
||||
i586,1,i586-openmamba-linux-gnu
|
||||
arm,1,arm-openmamba-linux-gnueabi
|
||||
ppc,1,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 2
|
||||
#
|
||||
# build native binutils (gcc needed, so it's not a stage1 build)
|
||||
# and cross platform binutils
|
||||
#
|
||||
binutils=(
|
||||
binutils
|
||||
cross_target_cpu,_target_platform
|
||||
x86_64,x86_64-openmamba-linux-gnu
|
||||
i586,i586-openmamba-linux-gnu
|
||||
arm,arm-openmamba-linux-gnueabi
|
||||
ppc,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 3
|
||||
#
|
||||
# glibc stage1: build headers only
|
||||
glibc_stage1=(
|
||||
glibc
|
||||
cross_target_cpu,stage1,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
x86_64,1,x86_64-openmamba-linux-gnu,mamba-x86_64,-
|
||||
arm,1,arm-openmamba-linux-gnueabi,mamba-arm,2.6.33
|
||||
i586,1,i586-openmamba-linux-gnu,mamba,-
|
||||
ppc,1,ppc-openmamba-linux-gnu,mamba,-
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 4
|
||||
#
|
||||
gcc_stage1=(
|
||||
gcc
|
||||
cross_target_cpu,stage1,_target_platform
|
||||
x86_64,1,x86_64-openmamba-linux-gnu
|
||||
arm,1,arm-openmamba-linux-gnueabi
|
||||
i586,1,i586-openmamba-linux-gnu
|
||||
ppc,1,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 5
|
||||
#
|
||||
glibc_stage2=(
|
||||
glibc
|
||||
cross_target_cpu,stage2,bigendian,softfloat,_target_platform,KERNEL_TARGET,KERNEL_VER
|
||||
x86_64,1,-,-,x86_64-openmamba-linux-gnu,mamba-x86_64,-
|
||||
arm,1,-,-,arm-openmamba-linux-gnueabi,mamba-arm,2.6.33
|
||||
i586,1,-,-,i586-openmamba-linux-gnu,mamba,-
|
||||
ppc,1,-,-,ppc-openmamba-linux-gnu,mamba,-
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 6
|
||||
#
|
||||
gcc=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform
|
||||
x86_64,x86_64-openmamba-linux-gnu
|
||||
arm,arm-openmamba-linux-gnueabi
|
||||
i586,i586-openmamba-linux-gnu
|
||||
ppc,ppc-openmamba-linux-gnu
|
||||
)
|
||||
|
||||
#
|
||||
# XTC 7
|
||||
#
|
||||
glibc=(
|
||||
glibc
|
||||
cross_target_cpu,_target_platform,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
x86_64,x86_64-openmamba-linux-gnu,-,-,mamba-x86_64,-
|
||||
i586,i586-openmamba-linux-gnu,-,-,mamba,-
|
||||
arm,arm-openmamba-linux-gnueabi,-,-,mamba-arm,2.6.33
|
||||
)
|
||||
|
||||
gcc_uclibc=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER
|
||||
arm,arm-linux-uclibc,-,-,mamba-arm,2.6.33
|
||||
)
|
||||
|
||||
dietlibc=(
|
||||
dietlibc
|
||||
cross_target_cpu
|
||||
x86_64
|
||||
i586
|
||||
arm
|
||||
)
|
||||
|
||||
gcc34=(
|
||||
gcc34
|
||||
cross_target_cpu
|
||||
x86_64
|
||||
i586
|
||||
ppc
|
||||
)
|
||||
|
||||
#
|
||||
# KERNEL
|
||||
#
|
||||
kernel=(
|
||||
kernel
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
linux_firmware=(
|
||||
linux-firmware
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
x86_64,mamba-x86_64,-
|
||||
)
|
||||
|
||||
kernel_extra=(
|
||||
kernel-extramodules
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
kernel_packages=(
|
||||
VirtualBox-kernel
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
x86_64,mamba-x86_64,-
|
||||
)
|
||||
#hsfmodem,compat-wireless,ati-driver,NVIDIA,NVIDIA_71xx,NVIDIA_96xx,NVIDIA_173xx,broadcom-sta
|
||||
# slmodem, alsa-driver, lirc,VirtualBox, ndiswrapper, alsa-driver
|
||||
|
||||
kernel_packages_36=(
|
||||
VirtualBox-kernel,NVIDIA
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
x86_64,mamba-x86_64,3.6
|
||||
)
|
||||
|
||||
kernel_packages_34=(
|
||||
VirtualBox-kernel,NVIDIA
|
||||
target,KERNEL_TARGET,KERNEL_VER
|
||||
x86_64,mamba-x86_64,3.4
|
||||
)
|
||||
|
||||
#kernelxen_packages=(
|
||||
#alsa-driver,hsfmodem,compat-wireless,ati-driver,ndiswrapper,broadcom-sta
|
||||
#target,KERNEL_TARGET,KERNEL_VER
|
||||
#x86_64,mamba-xen,-
|
||||
#)
|
||||
|
||||
#NVIDIA_all=(
|
||||
#NVIDIA,NVIDIA_71xx,NVIDIA_96xx,NVIDIA_173xx
|
||||
#target,KERNEL_TARGET,KERNEL_VER
|
||||
#x86_64,mamba-x86_64
|
||||
#)
|
||||
##x86_64,mamba-xen
|
||||
|
||||
alsa_driver=(
|
||||
alsa-driver
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
ati_driver=(
|
||||
ati-driver
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
broadcom_sta=(
|
||||
broadcom-sta
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
kernel_extramodules=(
|
||||
kernel-extramodules
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
kernel_nongpl=(
|
||||
kernel-nongpl
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
kernel_wireless_backport=(
|
||||
kernel-wireless-backport
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
broadcom_sta=(
|
||||
broadcom-sta
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
lirc=(
|
||||
lirc
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
ndiswrapper=(
|
||||
ndiswrapper
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
NVIDIA=(
|
||||
NVIDIA
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
VirtualBox_kernel=(
|
||||
VirtualBox-kernel
|
||||
target,KERNEL_TARGET
|
||||
x86_64,mamba-x86_64
|
||||
)
|
||||
#x86_64,mamba-xen
|
||||
|
||||
glibc=(
|
||||
glibc
|
||||
cross_target_cpu,bigendian,softfloat,KERNEL_TARGET,KERNEL_VER,multilib
|
||||
x86_64,-,-,mamba-x86_64,-,-
|
||||
)
|
||||
|
||||
binutils=(
|
||||
binutils
|
||||
cross_target_cpu
|
||||
x86_64
|
||||
)
|
||||
|
||||
pam=(
|
||||
pam
|
||||
bootstrap
|
||||
1
|
||||
)
|
||||
|
||||
rpm=(
|
||||
rpm
|
||||
bootstrap
|
||||
1
|
||||
)
|
||||
|
||||
gcc=(
|
||||
gcc
|
||||
cross_target_cpu,_target_platform,disable_jack,disable_gjdoc,disable_java
|
||||
x86_64,x86_64-openmamba-linux-gnu,1,0,0
|
||||
)
|
||||
|
||||
apache_ant=(
|
||||
apache-ant
|
||||
stage2
|
||||
1
|
||||
)
|
@ -1,141 +0,0 @@
|
||||
kdebase
|
||||
kdewebdev
|
||||
grub
|
||||
libsqlite2
|
||||
libglade1
|
||||
openssl097
|
||||
gnupg
|
||||
kannel
|
||||
ftp
|
||||
nrg2iso
|
||||
ddrescue
|
||||
db42
|
||||
gcc34
|
||||
ftpsync
|
||||
libglib1
|
||||
gcc33
|
||||
libxml
|
||||
libtool1
|
||||
openldap22
|
||||
python24
|
||||
postgresql7
|
||||
PyQt
|
||||
libcares1
|
||||
libraw13941
|
||||
net-snmp5
|
||||
libmtp7
|
||||
gambas
|
||||
libgda2
|
||||
libmusicbrainz2
|
||||
libpng2
|
||||
libXaw8
|
||||
icu38
|
||||
mysql5
|
||||
libreadline5
|
||||
libxcb-xlib
|
||||
autoconf2.13
|
||||
python
|
||||
libflac11
|
||||
libdc1394_control
|
||||
automake1.10
|
||||
libusb0
|
||||
xorg-drv-input
|
||||
libeigen
|
||||
libgtk1
|
||||
java-junit3
|
||||
lm_sensors2
|
||||
kernel-extramodules
|
||||
kernel-nongpl-nvidia
|
||||
kernel-nongpl-fglrx
|
||||
kernel-nongpl
|
||||
automake1.6
|
||||
libjpeg6b
|
||||
kernel-nongpl-fglrx
|
||||
kernel-nongpl-nvidia
|
||||
db47
|
||||
arts
|
||||
kdegraphics
|
||||
synaptic
|
||||
libjpeg7
|
||||
kdevelop
|
||||
objectweb-asm1
|
||||
objectweb-asm2
|
||||
apache-tomcat5
|
||||
java-junit381
|
||||
jakarta-commons-lang24
|
||||
openssl098
|
||||
libpng12
|
||||
java-servletapi4
|
||||
tcltk84
|
||||
make381
|
||||
lilo
|
||||
rpm516
|
||||
ffmpeg052
|
||||
rpm5
|
||||
libpoppler6
|
||||
x264-84
|
||||
db51
|
||||
kde-i18n
|
||||
libwpg01
|
||||
libwps01
|
||||
libwpd08
|
||||
db52
|
||||
glade-3
|
||||
goocanvas
|
||||
moagg
|
||||
apache-commons-digester18
|
||||
x264-116
|
||||
libcdio12
|
||||
udev173
|
||||
libtiff3
|
||||
libpcre0
|
||||
libcdio12
|
||||
libpoppler12
|
||||
libaudiofile0
|
||||
libxcb-util1
|
||||
parted2
|
||||
libguile1
|
||||
libgnutls2
|
||||
libgdbm3
|
||||
farstream1
|
||||
gst-plugins-base010
|
||||
gst-plugins-good010
|
||||
gst-plugins-bad010
|
||||
gst-plugins-ugly010
|
||||
gstreamer010
|
||||
lua51
|
||||
libwebkit-gtk
|
||||
libgraphite2_11
|
||||
goocanvas
|
||||
libdirectfb5
|
||||
libtasn1_3
|
||||
kdelibs3
|
||||
goocanvas
|
||||
libraptor
|
||||
python
|
||||
liblcms
|
||||
libpng14
|
||||
xmlgraphics-commons14
|
||||
pygobject2
|
||||
ImageMagick5
|
||||
automake1.12
|
||||
libpcap0
|
||||
htmlunit1
|
||||
libimobiledevice3
|
||||
libilmbase1
|
||||
libgif4
|
||||
libmpc2
|
||||
ffmpeg010
|
||||
openexr1
|
||||
libnl1
|
||||
db53
|
||||
libpoppler20
|
||||
net-snmp25
|
||||
openssl100
|
||||
libglew15
|
||||
libpng15
|
||||
libmng1
|
||||
libimlib2
|
||||
antlr313
|
||||
libgmp3
|
||||
libeigen
|
@ -1,29 +1,85 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Autodist script for updating specfiles
|
||||
#
|
||||
# Copyright (c) 2007-2012 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Copyright (c) 2007-2014 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Released with the same license as autodist
|
||||
#
|
||||
|
||||
[ "$1" ] || {
|
||||
echo "Error: update-specfile: specfile not given; aborting."
|
||||
SPECFILE=
|
||||
BUILDREQNUM=0
|
||||
|
||||
for ((i=1; i<=$#; i++)); do
|
||||
case ${!i} in
|
||||
--buildreq) let i+=1
|
||||
if [ ! "${!i}" ]; then
|
||||
echo "ERROR: --buildreq requires at least an argument; aborting."
|
||||
exit 1
|
||||
fi
|
||||
let BUILDREQNUM+=1
|
||||
BUILDREQ[$BUILDREQNUM]=${!i}
|
||||
if [ "${!i+1}" -a "${!i+1:0:1}" != "-" ]; then
|
||||
let i+=1
|
||||
BUILDREQREL[$BUILDREQNUM]=${!i}
|
||||
if [ ! "${!i+1}" -o "${!i+1:0:1}" = "-" ]; then
|
||||
echo "ERROR: update-specfile: --buildreq requires one or three arguments; aborting."
|
||||
exit 1
|
||||
fi
|
||||
let i+=1
|
||||
BUILDREQVER[$BUILDREQNUM]=${!i}
|
||||
fi
|
||||
;;
|
||||
*) if [ ! "$SPECFILE" ]; then
|
||||
SPECFILE=${!i}
|
||||
else
|
||||
echo "ERROR: update-specfile: unrecognized script option: '${!i}'; aborting."
|
||||
exit 1
|
||||
fi
|
||||
esac
|
||||
done
|
||||
|
||||
[ "$SPECFILE" ] || {
|
||||
echo "ERROR: update-specfile: specfile not given; aborting."
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -e $1 ] || {
|
||||
[ -e $SPECFILE ] || {
|
||||
echo "Error: update-specfile: file $1 does not exist; aborting."
|
||||
exit 1
|
||||
}
|
||||
|
||||
sed -i "s|^Vendor:.*|Vendor: openmamba|" $1
|
||||
sed -i "s|^Distribution:.*|Distribution: openmamba|" $1
|
||||
sed -i "s|silvan\.calarco@qilinux\.it|silvan.calarco@mambasoft.it|" $1
|
||||
sed -i "/BuildRequires:[[:space:]]*libffmpeg-devel/d" $1
|
||||
sed -i "s|\(BuildRequires:[[:space:]]*\)libmysql-devel|\1libmysql5-devel|" $1
|
||||
sed -i "s|\(BuildRequires:[[:space:]]*\)libdb42-devel|\1libdb47-devel|" $1
|
||||
sed -i "s|\(BuildRequires:[[:space:]]*\)firefox-devel|\1xulrunner-devel|" $1
|
||||
sed -i "s|^PreReq:[[:space:]]*/sbin/install-info|Requires(post):%{__install_info}|" $1
|
||||
sed -i "s|^PreReq:[[:space:]]*%{__install_info}|Requires(post):%{__install_info}|" $1
|
||||
sed -i "s|^PreReq:[[:space:]]*|Requires(pre): |" $1
|
||||
sed -i "s|http://.*.dl\.sourceforge\.net/|http://downloads.sourceforge.net/|" $1
|
||||
#sed -i "s|^\(Source.*:[[:space:]]*ftp://ftp.kde.org/pub/kde/stable/.*.tar.\)bz2|\1xz|" $1
|
||||
# Distribution global changes
|
||||
sed -i "s|^Vendor:.*|Vendor: openmamba|;
|
||||
s|^Distribution:.*|Distribution: openmamba|;
|
||||
/BuildRequires:[[:space:]]*libffmpeg-devel/d;
|
||||
/^BuildRequires:[[:space:]]*libkdegames-devel/d;
|
||||
/^BuildRequires:[[:space:]]*libkdegames5-devel/d;
|
||||
s|\(BuildRequires:[[:space:]]*\)libmysql-devel|\1libmysql5-devel|;
|
||||
s|\(BuildRequires:[[:space:]]*\)libdb42-devel|\1libdb47-devel|;
|
||||
s|\(BuildRequires:[[:space:]]*\)firefox-devel|\1xulrunner-devel|;
|
||||
s|^PreReq:[[:space:]]*/sbin/install-info|Requires(post):%{__install_info}|;
|
||||
s|^PreReq:[[:space:]]*%{__install_info}|Requires(post):%{__install_info}|;
|
||||
s|^PreReq:[[:space:]]*|Requires(pre): |;
|
||||
s|^\(Requires:[[:space:]]*kde-workspace\)$|#\1|;
|
||||
s|http://.*.dl\.sourceforge\.net/|http://downloads.sourceforge.net/|;
|
||||
s|http://ftp.kde.org/stable/|http://download.kde.org/stable/|;
|
||||
s|ftp://ftp.kde.org/pub/kde/|http://download.kde.org/|;
|
||||
s|http://download.kde.org/stable/%{version}|http://download.kde.org/stable/applications/%{version}|" $SPECFILE
|
||||
#sed -i "s|^\(Source.*:[[:space:]]*ftp://ftp.kde.org/pub/kde/stable/.*.tar.\)bz2|\1xz|" $SPECFILE
|
||||
|
||||
if [ $BUILDREQNUM -gt 0 ]; then
|
||||
grep "^## AUTOBUILDREQ-END" $SPECFILE > /dev/null || {
|
||||
echo "ERROR: update-specfile: missing AUTOBUILDREQ block; aborting."
|
||||
exit 1
|
||||
}
|
||||
for b in `seq 1 $BUILDREQNUM`; do
|
||||
line=${BUILDREQ[$b]}
|
||||
if [ "${BUILDREQREL[$b]}" ]; then
|
||||
line="$line ${BUILDREQREL[$b]} ${BUILDREQVER[$b]}"
|
||||
fi
|
||||
sed -i "/^## AUTOBUILDREQ-END/,9999{/BuildRequires:[[:space:]]*${BUILDREQ[$b]}$/d}" $SPECFILE
|
||||
sed -i "/^## AUTOBUILDREQ-END/,9999{/BuildRequires:[[:space:]]*${BUILDREQ[$b]}[[:space:]]/d}" $SPECFILE
|
||||
sed -i "/^## AUTOBUILDREQ-END/a BuildRequires: $line" $SPECFILE
|
||||
done
|
||||
fi
|
||||
exit 0
|
||||
|
@ -1 +0,0 @@
|
||||
gcc
|
@ -1,45 +0,0 @@
|
||||
libatk
|
||||
libgtk
|
||||
libpango
|
||||
tcltk
|
||||
dbus
|
||||
libgsf
|
||||
python
|
||||
glib
|
||||
libnfsidmap
|
||||
ghostscript
|
||||
liblcms
|
||||
ImageMagick4
|
||||
ImageMagick
|
||||
gcc
|
||||
libtiff
|
||||
libtiff3
|
||||
libcairo
|
||||
gtk-doc
|
||||
libpoppler
|
||||
libpoppler12
|
||||
gettext
|
||||
libXext
|
||||
gnokii
|
||||
kdegames
|
||||
soprano
|
||||
autoconf
|
||||
libidn
|
||||
libcanberra
|
||||
libxml2
|
||||
libcaca
|
||||
libproxy
|
||||
libphonon
|
||||
xmms2
|
||||
libalsa-plugins
|
||||
gutenprint
|
||||
gpm
|
||||
emacs
|
||||
groff
|
||||
graphviz
|
||||
python26
|
||||
python27
|
||||
beecrypt
|
||||
ncurses
|
||||
tcltk85
|
||||
java-openjdk
|
@ -1,42 +0,0 @@
|
||||
tcltk
|
||||
libxml2
|
||||
libpango
|
||||
libatk
|
||||
gettext
|
||||
libnfsidmap
|
||||
libXext
|
||||
libidn
|
||||
libtiff
|
||||
liblcms
|
||||
python
|
||||
glib
|
||||
libcanberra
|
||||
avahi
|
||||
gpm
|
||||
emacs
|
||||
groff
|
||||
soprano
|
||||
livecd-tools
|
||||
tracker
|
||||
graphviz
|
||||
PackageKit
|
||||
apache-ant
|
||||
libpeas
|
||||
libalsa-plugins
|
||||
libproxy
|
||||
python26
|
||||
python27
|
||||
beecrypt
|
||||
gtk-doc
|
||||
tzdata
|
||||
db60
|
||||
ImageMagick
|
||||
java-openjdk
|
||||
java-gcj-compat
|
||||
apache-log4j
|
||||
java-icu4j4
|
||||
mpg123
|
||||
libgphoto
|
||||
nfs-utils
|
||||
git
|
||||
xmms2
|
@ -1,33 +1,48 @@
|
||||
#!/bin/bash
|
||||
[ -e /etc/autodist/config ] && . /etc/autodist/config
|
||||
[ -e /etc/sysconfig/autoport ] && . /etc/sysconfig/autoport
|
||||
|
||||
RPMS_CTIME_OLD="+14"
|
||||
BUILD_CTIME_OLD="+14"
|
||||
SOURCES_CTIME_OLD="+40"
|
||||
SOURCES_PATH_CTIME_OLD="+730"
|
||||
SRPMS_CTIME_OLD="+14"
|
||||
TMP_CTIME_OLD="+2"
|
||||
|
||||
function clean() {
|
||||
dir=$1
|
||||
arch=$2
|
||||
find $dir/RPM/RPMS/$arch/ -maxdepth 1 -ctime +21 -exec rm -rf {} \;
|
||||
find $dir/RPM/RPMS/noarch/ -maxdepth 1 -ctime +21 -exec rm -rf {} \;
|
||||
find $dir/RPM/BUILD/ -maxdepth 1 -ctime +21 -exec rm -rf {} \;
|
||||
find $dir/RPM/SOURCES/ -maxdepth 1 -ctime +120 -a ! -name "*.patch" -exec rm -rf {} \;
|
||||
find $dir/RPM/SRPMS/ -maxdepth 1 -ctime +48 -exec rm -rf {} \;
|
||||
[ "$VERBOSE" ] && echo "Cleaning from base directory $dir..."
|
||||
[ -e $dir/ ] && find $dir/ -mindepth 1 -maxdepth 1 -name "pipe\:\[*" -exec rm -f {} \;
|
||||
[ -e $dir/RPM/SPECS/ ] && find $dir/RPM/SPECS/ -mindepth 1 -maxdepth 1 -type f -not -name "*.spec*" -exec rm -f {} \;
|
||||
for arch in ${AUTODIST_ARCHS[*]}; do
|
||||
[ -e $dir/RPM/RPMS/$arch/ ] && find $dir/RPM/RPMS/$arch/ -mindepth 1 -maxdepth 1 -type f -mtime ${RPMS_CTIME_OLD} -exec rm -f {} \;
|
||||
done
|
||||
[ -e $dir/RPM/RPMS/noarch/ ] && find $dir/RPM/RPMS/noarch/ -mindepth 1 -maxdepth 1 -type f -mtime ${RPMS_CTIME_OLD} -exec rm -f {} \;
|
||||
[ -e $dir/RPM/BUILD/ ] && find $dir/RPM/BUILD/ -mindepth 1 -maxdepth 1 -type d -ctime ${BUILD_CTIME_OLD} -exec rm -rf {} \;
|
||||
[ -e $dir/RPM/SOURCES/ ] && {
|
||||
find $dir/RPM/SOURCES/ -mindepth 1 -maxdepth 1 -type f -ctime ${SOURCES_CTIME_OLD} -a ! -name "*.patch" -exec rm -rf {} \;
|
||||
find $dir/RPM/SOURCES/ -mindepth 1 -maxdepth 1 -type f -ctime ${SOURCES_PATH_CTIME_OLD} -a -name "*.patch" -exec rm -rf {} \;
|
||||
}
|
||||
[ -e $dir/RPM/SRPMS/ ] && find $dir/RPM/SRPMS/ -mindepth 1 -maxdepth 1 -type f -mtime ${SRPMS_CTIME_OLD} -exec rm -f {} \;
|
||||
}
|
||||
|
||||
for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
|
||||
if [ "${AUTOPORT_CHROOT[$i]}" ]; then
|
||||
a=${AUTOPORT_CHROOT[$i]}
|
||||
clean /var/autoport/$a/usr/src ${AUTOPORT_ARCH[$i]}
|
||||
[ -e /var/autoport/$a/var/autodist/RPM/RPMS/$arch ] && \
|
||||
clean /var/autoport/$a/var/autodist ${AUTOPORT_ARCH[$i]}
|
||||
clean /var/autoport/$a/usr/src
|
||||
[ -e /var/autoport/$a/var/autodist/RPM/RPMS/ ] && \
|
||||
clean /var/autoport/$a/var/autodist
|
||||
[ -e /var/autoport/$a/var/tmp/autodist ] && \
|
||||
find /var/autoport/$a/var/tmp/autodist/ -maxdepth 1 -ctime +25 -exec rm -rf {} \;
|
||||
find /var/autoport/$a/tmp/ -maxdepth 1 -ctime +25 -exec rm -rf {} \;
|
||||
find /var/autoport/$a/var/tmp/autodist/ -mindepth 1 -maxdepth 1 -type f -mtime ${TMP_CTIME_OLD} -exec rm -rf {} \;
|
||||
find /var/autoport/$a/tmp/ -mindepth 1 -maxdepth 1 -type f -mtime ${TMP_CTIME_OLD} -exec rm -rf {} \;
|
||||
elif [ "${AUTOPORT_UPDATE[$i]}" ]; then
|
||||
clean /var/autodist ${AUTOPORT_ARCH[$i]}
|
||||
find /var/autodist-tmp/ -maxdepth 1 -ctime +25 -exec rm -rf {} \;
|
||||
clean /var/autodist
|
||||
find /var/autodist-tmp/ -mindepth 1 -maxdepth 1 -type f -mtime ${TMP_CTIME_OLD} -exec rm -rf {} \;
|
||||
elif [ "${AUTOPORT_NATIVE[$i]}" -a "${AUTOPORT_CHROOT_USER[$i]}" ]; then
|
||||
WORKINGHOME=`getent passwd ${AUTOPORT_CHROOT_USER[$i]} | cut -d: -f6`
|
||||
if [ -e $WORKINGHOME ]; then
|
||||
clean $WORKINGHOME ${AUTOPORT_ARCH[$i]}
|
||||
clean $WORKINGHOME
|
||||
fi
|
||||
find /var/autodist-tmp/ -maxdepth 1 -ctime +25 -exec rm -rf {} \;
|
||||
find /var/autodist-tmp/ -mindepth 1 -maxdepth 1 -type f -mtime ${TMP_CTIME_OLD} -exec rm -rf {} \;
|
||||
fi
|
||||
done
|
||||
|
@ -1,16 +1,20 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# autodist-upstream-updates daily cron script
|
||||
# (c) 2008-2012 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# (c) 2008-2014 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
. /etc/autodist/config
|
||||
REPOSITORY=devel
|
||||
/usr/sbin/autodist-upstream-updates -q -h -u -r $REPOSITORY > $LOCAL_REPS_BASE_DIR/distromatic/$REPOSITORY/_popular.html
|
||||
. /etc/sysconfig/autoport
|
||||
|
||||
REPOSITORY=milestone1-1.1
|
||||
/usr/sbin/autodist-upstream-updates -q -h -u -r $REPOSITORY > $LOCAL_REPS_BASE_DIR/distromatic/$REPOSITORY/_popular.html
|
||||
if [ ! "$AUTOPORT_UPDATE_NO_DISTROMATIC" ]; then
|
||||
REPOSITORY=devel
|
||||
/usr/sbin/autodist-upstream-updates -q -h -u -r $REPOSITORY > $LOCAL_REPS_BASE_DIR/distromatic/$REPOSITORY/_popular.html
|
||||
|
||||
REPOSITORY=milestone2
|
||||
/usr/sbin/autodist-upstream-updates -q -h -u -r $REPOSITORY > $LOCAL_REPS_BASE_DIR/distromatic/$REPOSITORY/_popular.html
|
||||
REPOSITORY=milestone1-1.1
|
||||
/usr/sbin/autodist-upstream-updates -q -h -u -r $REPOSITORY > $LOCAL_REPS_BASE_DIR/distromatic/$REPOSITORY/_popular.html
|
||||
|
||||
REPOSITORY=milestone2
|
||||
/usr/sbin/autodist-upstream-updates -q -h -u -r $REPOSITORY > $LOCAL_REPS_BASE_DIR/distromatic/$REPOSITORY/_popular.html
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
@ -1,22 +1,27 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# autodist autoupdate hourly cron script
|
||||
# (c) 2008-2013 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# (c) 2008-2014 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
. /etc/autodist/config
|
||||
. /etc/sysconfig/autoport
|
||||
|
||||
ME=`basename $0`
|
||||
|
||||
# Disable icecc
|
||||
export PATH=/usr/bin:$PATH
|
||||
|
||||
# FIXME: parametrize automaint call
|
||||
automaint -s devel-autodist -d devel -p devel-makedist
|
||||
if [ ! "$AUTOPORT_UPDATE_NO_AUTOMAINT" ]; then
|
||||
automaint -s devel-autodist -d devel -p devel-makedist
|
||||
fi
|
||||
|
||||
[ "$$" == "`pidof -x $ME`" -o "$$" == "`pidof -x 60-autodist-update`" ] || {
|
||||
# echo "Warning: $ME script already running; exiting."
|
||||
exit 0
|
||||
}
|
||||
|
||||
PIDFILE=/var/run/autodist/autodist.pid
|
||||
PIDFILE=/run/autodist/autodist.pid
|
||||
HOUR=`date +%H`
|
||||
[ "`uname -m`" = "x86_64" ] && HOST_IS_X86_64=1
|
||||
|
||||
@ -51,8 +56,10 @@ for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
|
||||
REPLASTLOGFILE=$LOCAL_REPS_BASE_DIR/$r/autodist-last.log
|
||||
|
||||
if [ "${AUTOPORT_UPDATE[$i]}" ]; then
|
||||
pid_check
|
||||
distromatic -q -t $DISTROMATIC_REPOSITORY --gensrcpkglist > $LOCAL_REPS_BASE_DIR/$DISTROMATIC_REPOSITORY/srcpkglist 2>/dev/null
|
||||
if [ ! "$AUTOPORT_UPDATE_NO_DISTROMATIC" ]; then
|
||||
pid_check
|
||||
distromatic -q -t $DISTROMATIC_REPOSITORY --gensrcpkglist > $LOCAL_REPS_BASE_DIR/$DISTROMATIC_REPOSITORY/srcpkglist 2>/dev/null
|
||||
fi
|
||||
|
||||
pid_check
|
||||
autodist-upstream-updates -q -h -u -r $DISTROMATIC_REPOSITORY -o $r \
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# openmamba-autobuild-autoport daily cron script
|
||||
# (c) 2008-2012 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# (c) 2008-2014 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
#. /etc/sysconfig/openmamba-central
|
||||
. /etc/sysconfig/autoport
|
||||
@ -14,7 +14,7 @@ ME=`basename $0`
|
||||
exit 0
|
||||
}
|
||||
|
||||
PIDFILE=/var/run/autodist/autoport.pid
|
||||
PIDFILE=/run/autodist/autoport.pid
|
||||
HOUR=`date +%H`
|
||||
[ "`uname -m`" = "x86_64" ] && HOST_IS_X86_64=1
|
||||
|
||||
@ -31,6 +31,8 @@ function pid_check() {
|
||||
|
||||
pid_check
|
||||
|
||||
NATIVE_UPGRADED=
|
||||
|
||||
for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
|
||||
for r in ${AUTOPORT_REPOSITORIES[$i]}; do
|
||||
[ "${AUTOPORT_ARCH[$i]}" ] || continue
|
||||
@ -55,10 +57,13 @@ for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
|
||||
|
||||
if [ "${AUTOPORT_NATIVE[$i]}" ]; then
|
||||
a=${AUTOPORT_ARCH[$i]}
|
||||
[[ "`/usr/bin/tty`" != "not a tty" ]] && echo "Updating packages in $a native environment"
|
||||
echo "= Updating packages in $a native environment..." >> $LOGFILE
|
||||
LANG=C smart update > /dev/null
|
||||
LANG=C smart upgrade -y >> $LOGFILE
|
||||
if [ ! "$NATIVE_UPGRADED" ]; then
|
||||
[[ "`/usr/bin/tty`" != "not a tty" ]] && echo "Updating packages in $a native environment"
|
||||
echo "= Updating packages in $a native environment..." >> $LOGFILE
|
||||
LANG=C smart update > /dev/null
|
||||
LANG=C smart upgrade -y >> $LOGFILE
|
||||
NATIVE_UPGRADED=1
|
||||
fi
|
||||
echo "= Working on $r($a) in native mode" >> $LOGFILE
|
||||
su -l ${AUTOPORT_CHROOT_USER[$i]} -c "$CMD_PREFIX autoport -b -r $r" >> $LOGFILE
|
||||
AUTODIST_HOME=`getent passwd ${AUTOPORT_CHROOT_USER[$i]} | cut -d: -f6`
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# openmamba-autobuild-autoport daily cron script
|
||||
# (c) 2008-2012 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# (c) 2008-2014 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
#. /etc/sysconfig/openmamba-central
|
||||
. /etc/sysconfig/autoport
|
||||
@ -14,7 +14,7 @@ ME=`basename $0`
|
||||
exit 0
|
||||
}
|
||||
|
||||
PIDFILE=/var/run/autodist/autoport.pid
|
||||
PIDFILE=/run/autodist/autoport.pid
|
||||
HOUR=`date +%H`
|
||||
[ "`uname -m`" = "x86_64" ] && HOST_IS_X86_64=1
|
||||
|
||||
@ -44,7 +44,7 @@ for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
|
||||
#echo "= Updating packages in ${AUTOPORT_CHROOT[$i]} chroot environment..." >> $LOGFILE
|
||||
LANG=C /usr/sbin/chroot /var/autoport/${AUTOPORT_CHROOT[$i]} smart update --quiet > /dev/null
|
||||
LANG=C /usr/sbin/chroot /var/autoport/${AUTOPORT_CHROOT[$i]} smart upgrade -y > /dev/null
|
||||
[ "${AUTOPORT_CHROOT_ICECREAM[$i]}" ] && LANG=C /usr/sbin/chroot /etc/init.d/icecream start
|
||||
[ "${AUTOPORT_CHROOT_ICECREAM[$i]}" ] && LANG=C /usr/sbin/chroot /var/autoport/${AUTOPORT_CHROOT[$i]} /etc/init.d/icecream start
|
||||
fi
|
||||
|
||||
for r in ${AUTOPORT_REPOSITORIES[$i]}; do
|
||||
@ -72,10 +72,12 @@ for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
|
||||
if [ "${AUTOPORT_CHROOT[$i]}" ]; then
|
||||
echo "= Working on $r(${AUTOPORT_CHROOT[$i]}) in chroot mode..." >> $LOGFILE
|
||||
[[ "`/usr/bin/tty`" != "not a tty" ]] && echo "Working on $r(${AUTOPORT_CHROOT[$i]}) in chroot mode" >> $LOGFILE
|
||||
#echo "DEBUG: $CMD_PREFIX /usr/sbin/chroot /var/autoport/${AUTOPORT_CHROOT[$i]} su -l ${AUTOPORT_CHROOT_USER[$i]} -c \"autoport -b -r $r\"" >> $LOGFILE
|
||||
$CMD_PREFIX /usr/sbin/chroot /var/autoport/${AUTOPORT_CHROOT[$i]} su -l ${AUTOPORT_CHROOT_USER[$i]} -c "autoport -b -r $r" >> $LOGFILE
|
||||
cat /var/autoport/${AUTOPORT_CHROOT[$i]}/home/${AUTOPORT_CHROOT_USER[$i]}/.autoport/${AUTOPORT_ARCH[$i]}/$r-current.log >> $LOGFILE
|
||||
#echo "DEBUG: cat /var/autoport/${AUTOPORT_CHROOT[$i]}/home/${AUTOPORT_CHROOT_USER[$i]}/.autoport/${AUTOPORT_ARCH[$i]}/$r-current.log" >> $LOGFILE
|
||||
if [ "${AUTOPORT_CHROOT_USER[$i]}" = "autodist" ]; then
|
||||
cat /var/autoport/${AUTOPORT_CHROOT[$i]}/var/autodist/.autoport/${AUTOPORT_ARCH[$i]}/$r-current.log >> $LOGFILE
|
||||
else
|
||||
cat /var/autoport/${AUTOPORT_CHROOT[$i]}/home/${AUTOPORT_CHROOT_USER[$i]}/.autoport/${AUTOPORT_ARCH[$i]}/$r-current.log >> $LOGFILE
|
||||
fi
|
||||
fi
|
||||
|
||||
# if [ "${AUTOPORT_NATIVE[$i]}" ]; then
|
||||
@ -103,7 +105,7 @@ for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
|
||||
|
||||
if [ "${AUTOPORT_CHROOT[$i]}" ]; then
|
||||
mv /var/autoport/${AUTOPORT_CHROOT[$i]}/sbin/service.autoport /var/autoport/${AUTOPORT_CHROOT[$i]}/sbin/service
|
||||
[ "${AUTOPORT_CHROOT_ICECREAM[$i]}" ] && LANG=C /usr/sbin/chroot /etc/init.d/icecream stop
|
||||
[ "${AUTOPORT_CHROOT_ICECREAM[$i]}" ] && LANG=C /usr/sbin/chroot /var/autoport/${AUTOPORT_CHROOT[$i]} /etc/init.d/icecream stop
|
||||
fi
|
||||
|
||||
done
|
||||
|
8
etc/logrotate.d/webbuild
Normal file
8
etc/logrotate.d/webbuild
Normal file
@ -0,0 +1,8 @@
|
||||
/var/webbuild/access_log {
|
||||
monthly
|
||||
rotate 12
|
||||
copytruncate
|
||||
compress
|
||||
notifempty
|
||||
missingok
|
||||
}
|
@ -5,8 +5,12 @@ local_ftp=/var/ftp/pub/openmamba/
|
||||
|
||||
#AUTOBUILDS_STATUS_URL="http://www.openmamba.org/distribution/autobuilds.html"
|
||||
#AUTOPORT_ENABLE=1
|
||||
# Disabled by default because they would require local repository
|
||||
AUTOPORT_UPDATE_NO_AUTOMAINT=1
|
||||
AUTOPORT_UPDATE_NO_DISTROMATIC=1
|
||||
#AUTOPORT_CGI_HOST=(http://localhost/cgi-bin/autodist)
|
||||
#AUTOPORT_WEBBUILD_HOST=http://localhost/webbuild.html
|
||||
#ICECREAM_MONITOR_HOST=localhost
|
||||
|
||||
AUTOPORT_DEVEL_IMPORT_REPOSITORIES="devel-makedist devel devel-games devel-autodist devel-gnome \
|
||||
devel-kde4 devel-xorg devel-kernel devel-misc devel-java devel-future devel-past devel-contrib devel-contrib-java"
|
||||
|
191
telegram/openmamba_bot.py
Executable file
191
telegram/openmamba_bot.py
Executable file
@ -0,0 +1,191 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# openmamba bot for Telegram
|
||||
#
|
||||
# Copyright (C) 2016-2017 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
# GPL v3 license
|
||||
|
||||
from telegram import (ParseMode)
|
||||
from telegram.ext import (Updater, CommandHandler, MessageHandler, Filters, RegexHandler,
|
||||
ConversationHandler, Job)
|
||||
|
||||
import logging
|
||||
import subprocess
|
||||
import sqlite3
|
||||
import os
|
||||
|
||||
# Enable logging
|
||||
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
level=logging.INFO)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
timers = dict()
|
||||
social_log_last_ids = dict()
|
||||
|
||||
|
||||
def start(bot, update):
|
||||
|
||||
user = update.message.from_user
|
||||
logger.info("User %s started the conversation." % user.first_name)
|
||||
|
||||
update.message.reply_text(
|
||||
'Hi! This is the openmamba GNU/Linux Bot.\n'
|
||||
'Send any text to search for packages.\n'
|
||||
'Send /details name to see details of specified source package.\n'
|
||||
'Send /set [seconds] to enable notifications.\n'
|
||||
'Send /unset to disable notifications.\n'
|
||||
'Send /cancel to stop talking to me.\n\n')
|
||||
|
||||
return
|
||||
|
||||
|
||||
def query(bot, update):
|
||||
user = update.message.from_user
|
||||
logger.info("Query of %s: %s" % (user.first_name, update.message.text))
|
||||
|
||||
response = ""
|
||||
for rep in [ 'devel', 'devel-games', 'devel-makedist', 'devel-autodist', 'devel-kernel', 'devel-misc', 'devel-kde4' ]:
|
||||
conn = sqlite3.connect('/var/webbuild/db/%s-sources.db' % rep, check_same_thread=False)
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(
|
||||
'SELECT id,name,version,release,summary,url FROM sources where name like "%%%s%%" or summary like "%%%s%%" '
|
||||
'ORDER BY name="%s" DESC, name like "%s%%" DESC, name like "%%%s%%" DESC limit 10'
|
||||
% (update.message.text, update.message.text, update.message.text, update.message.text, update.message.text))
|
||||
for row in cursor:
|
||||
response += "<b>%s</b> %s-%s (%s)\n%s\n%s\n\n" % (row[1], row[2], row[3], rep, row[4], row[5])
|
||||
|
||||
if response != "":
|
||||
update.message.reply_text(response, parse_mode=ParseMode.HTML)
|
||||
else:
|
||||
update.message.reply_text('No results found.')
|
||||
return
|
||||
|
||||
|
||||
def details(bot, update, args):
|
||||
user = update.message.from_user
|
||||
logger.info("Details of %s: %s" % (user.first_name, update.message.text))
|
||||
|
||||
response = ""
|
||||
for rep in [ 'devel', 'devel-games', 'devel-makedist', 'devel-autodist', 'devel-kernel', 'devel-misc', 'devel-kde4' ]:
|
||||
conn = sqlite3.connect('/var/webbuild/db/%s-sources.db' % rep, check_same_thread=False)
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(
|
||||
'SELECT id,name,version,release,summary,url,description FROM sources where name="%s"' % (args[0]))
|
||||
for row in cursor:
|
||||
response += "<b>%s</b> %s-%s (devel)\n%s\n%s\n\n<i>%s</i>\n\n" % (row[1], row[2], row[3], row[4], row[5], row[6])
|
||||
for arch in [ 'x86_64', 'i586', 'arm' ]:
|
||||
conn1 = sqlite3.connect('/var/webbuild/db/' + rep + '-' + arch + '.db', check_same_thread=False)
|
||||
cursor1 = conn1.cursor()
|
||||
cursor1.execute('SELECT id,name FROM packages where id_source=%s' % (row[0]))
|
||||
for row1 in cursor1:
|
||||
response += "<b>%s</b>(%s) " % (row1[1], arch)
|
||||
response += "\n\n\n"
|
||||
|
||||
if response != "":
|
||||
update.message.reply_text(response, parse_mode=ParseMode.HTML)
|
||||
else:
|
||||
update.message.reply_text('No results found.')
|
||||
return
|
||||
|
||||
|
||||
def alarm(bot, job):
|
||||
social_log_conn = sqlite3.connect('/var/webbuild/webbuild.db')
|
||||
social_log_cursor = social_log_conn.cursor()
|
||||
social_log_cursor.execute('SELECT id,user,text,datetime(time,\'localtime\'),type FROM social_log where id>%s' % social_log_last_ids[job.context])
|
||||
response = ""
|
||||
for row in social_log_cursor:
|
||||
if row[4] == "job":
|
||||
response += "Job run by <i>%s</i> %s (%s)\n" % (row[1], row[2], row[3])
|
||||
else:
|
||||
response += "<i>%s</i> %s (%s)\n" % (row[1], row[2], row[3])
|
||||
if response != "":
|
||||
bot.sendMessage(job.context, response, parse_mode=ParseMode.HTML)
|
||||
social_log_last_ids[job.context] = row[0]
|
||||
|
||||
|
||||
def set(bot, update, args, job_queue):
|
||||
chat_id = update.message.chat_id
|
||||
try:
|
||||
due = int(args[0])
|
||||
if due < 0:
|
||||
update.message.reply_text('Sorry we can not go back to future!')
|
||||
return
|
||||
job = Job(alarm, due, repeat=True, context=chat_id)
|
||||
timers[chat_id] = job
|
||||
job_queue.put(job)
|
||||
|
||||
social_log_conn = sqlite3.connect('/var/webbuild/webbuild.db')
|
||||
social_log_cursor = social_log_conn.cursor()
|
||||
social_log_cursor.execute('''SELECT MAX(id) FROM social_log''')
|
||||
social_log_last_ids[chat_id] = social_log_cursor.fetchone()[0] - 5
|
||||
|
||||
update.message.reply_text('Notifications enabled!')
|
||||
|
||||
except (IndexError, ValueError):
|
||||
update.message.reply_text('Usage: /set <seconds>')
|
||||
|
||||
|
||||
def unset(bot, update):
|
||||
chat_id = update.message.chat_id
|
||||
|
||||
if chat_id not in timers:
|
||||
update.message.reply_text('Notification were not enabled')
|
||||
return
|
||||
|
||||
job = timers[chat_id]
|
||||
job.schedule_removal()
|
||||
del timers[chat_id]
|
||||
update.message.reply_text('Notifications disabled')
|
||||
|
||||
|
||||
def cancel(bot, update):
|
||||
user = update.message.from_user
|
||||
logger.info("User %s canceled the conversation." % user.first_name)
|
||||
update.message.reply_text('Bye!')
|
||||
|
||||
return ConversationHandler.END
|
||||
|
||||
|
||||
def error(bot, update, error):
|
||||
logger.warn('Update "%s" caused error "%s"' % (update, error))
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
# Load bot token from external configuration file
|
||||
bot_token = ""
|
||||
with open("/etc/autodist/secrets") as myfile:
|
||||
for line in myfile:
|
||||
name, var = line.rstrip().split("=")
|
||||
if name == "TELEGRAM_BOT_TOKEN":
|
||||
bot_token = var
|
||||
|
||||
# Create the EventHandler and pass it your bot's token.
|
||||
updater = Updater(bot_token)
|
||||
|
||||
# Get the dispatcher to register handlers
|
||||
dp = updater.dispatcher
|
||||
|
||||
dp.add_handler(CommandHandler('start', start))
|
||||
dp.add_handler(MessageHandler(Filters.text, query))
|
||||
dp.add_handler(CommandHandler('details', details, pass_args=True))
|
||||
dp.add_handler(CommandHandler('set', set, pass_args=True, pass_job_queue=True))
|
||||
dp.add_handler(CommandHandler('unset', unset))
|
||||
dp.add_handler(CommandHandler('cancel', cancel))
|
||||
|
||||
# log all errors
|
||||
dp.add_error_handler(error)
|
||||
|
||||
# Start the Bot
|
||||
updater.start_polling()
|
||||
|
||||
# Run the bot until the you presses Ctrl-C or the process receives SIGINT,
|
||||
# SIGTERM or SIGABRT. This should be used most of the time, since
|
||||
# start_polling() is non-blocking and will stop the bot gracefully.
|
||||
updater.idle()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
10
telegram/openmambabot.service
Normal file
10
telegram/openmambabot.service
Normal file
@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=openmamba bot for Telegram
|
||||
After=syslog.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/python /usr/share/autodist/openmamba_bot.py
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@ -2,6 +2,7 @@
|
||||
<html><head>
|
||||
<meta content="text/html; charset=utf-8" http-equiv="content-type">
|
||||
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/images/webbuild.ico" />
|
||||
<!-- styles needed by jScrollPane -->
|
||||
<link type="text/css" href="/scripts/jquery.jscrollpane.css" rel="stylesheet" media="all" >
|
||||
<!-- latest jQuery direct from google's CDN -->
|
||||
@ -20,6 +21,7 @@ var reloadtime = 0;
|
||||
|
||||
function ajax_getvalues() {
|
||||
var url = window.location.protocol+"//"+window.location.hostname+"/cgi-bin/autodist?FORMAT=xml&"+window.location.href.replace(/.*\?/,"");
|
||||
var xmlhttp;
|
||||
if (window.XMLHttpRequest)
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
else if (window.ActiveXObject)
|
||||
|
BIN
webbuild/html/images/refresh.png
Normal file
BIN
webbuild/html/images/refresh.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 335 B |
BIN
webbuild/html/images/webbuild.ico
Normal file
BIN
webbuild/html/images/webbuild.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
78
webbuild/html/styles/webbuild-post.css
Normal file
78
webbuild/html/styles/webbuild-post.css
Normal file
@ -0,0 +1,78 @@
|
||||
webbuild.a { }
|
||||
pre {
|
||||
background: none;
|
||||
border:0;
|
||||
padding:0;
|
||||
margin:0;
|
||||
-webkit-box-shadow:none;
|
||||
box-shadow:none;
|
||||
font-family: monospace;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
form { margin:0; }
|
||||
a.webbuild:link { color:#0b0600; text-decoration: none; }
|
||||
a.webbuild:visited { color:#0b0600; text-decoration: none; }
|
||||
a.webbuild:active { color:#0b0600; text-decoration: none; }
|
||||
a.webbuild:hover { text-decoration: underline; }
|
||||
hr { margin:0; color:black; background: #aaaaaa; }
|
||||
label { white-space:nowrap; text-decoration:none; font-weight:initial; }
|
||||
|
||||
.webbuild input {
|
||||
font-size: 8pt;
|
||||
font-family:liberationsans,freesans,Arial,Verdana,Helvetica,sans-serif;
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
}
|
||||
|
||||
select {
|
||||
font-size: 8pt;
|
||||
font-family:liberationsans,freesans,Arial,Verdana,Helvetica,sans-serif;
|
||||
padding: 0;
|
||||
margin: 1px;
|
||||
max-width: 98%;
|
||||
background-color: buttonface;
|
||||
}
|
||||
|
||||
input[type="text"] {
|
||||
font-family:liberationsans,freesans,Arial,Verdana,Helvetica,sans-serif;
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
border: 1px solid #AAAAAA;
|
||||
}
|
||||
|
||||
input[type="button"] {
|
||||
font-family:liberationsans,freesans,Arial,Verdana,Helvetica,sans-serif;
|
||||
font-size: 8pt;
|
||||
font-weight: 400;
|
||||
margin: 1px;
|
||||
border: 1px solid #AAAAAA;
|
||||
white-space:nowrap;
|
||||
line-height: 1.1em;
|
||||
}
|
||||
|
||||
input[type="button"]::-moz-focus-inner { padding: 0; border: 0; }
|
||||
|
||||
input[type="button"]:hover {
|
||||
border: 1px solid #666666;
|
||||
}
|
||||
input[type="radio"] {
|
||||
font-family:liberationsans,freesans,Arial,Verdana,Helvetica,sans-serif;
|
||||
font-size: 7pt;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
input[type="checkbox"] {
|
||||
font-family:liberationsans,freesans,Arial,Verdana,Helvetica,sans-serif;
|
||||
vertical-align:middle;
|
||||
-ms-transform: scale(0.9);
|
||||
-moz-transform: scale(0.9);
|
||||
-webkit-transform: scale(0.9);
|
||||
-o-trasnform: scale(0.9);
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
}
|
13
webbuild/html/styles/webbuild-standalone.css
Normal file
13
webbuild/html/styles/webbuild-standalone.css
Normal file
@ -0,0 +1,13 @@
|
||||
body { font-size: 9pt; font-family: liberationsans, freesans, arial, verdana, sans-serif; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); }
|
||||
table { font-size: 9pt; font-family: liberationsans, freesans, arial, verdana, sans-serif; background-color: rgb(255, 255, 255); }
|
||||
img { border: 0; margin: 0px; vertical-align:middle; }
|
||||
h1 { font-size: 13pt; font-weight: bold; }
|
||||
h2 { font-size: 11pt; font-weight: bold; }
|
||||
h3 { font-size: 10pt; font-weight: bold; margin-top: 20px; margin-bottom: 2px; }
|
||||
h4 { margin:5; margin-right: 10; font-size: 9pt; font-weight: normal; }
|
||||
hr { margin:0; color:white; }
|
||||
a { }
|
||||
a:link { color:#2b6600; text-decoration: none; }
|
||||
a:visited { color:#2b6600; text-decoration: none; }
|
||||
a:active { color:#2b6600; text-decoration: none; }
|
||||
a:hover { text-decoration: underline; }
|
@ -1,75 +1,18 @@
|
||||
body { font-size: 9pt; font-family: liberationsans, freesans, arial, verdana, sans-serif; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); }
|
||||
table { font-size: 9pt; font-family: liberationsans, freesans, arial, verdana, sans-serif; background-color: rgb(255, 255, 255); }
|
||||
img { border: 0; margin: 0px; vertical-align:middle; }
|
||||
h1 { font-size: 13pt; font-weight: bold; }
|
||||
h2 { font-size: 11pt; font-weight: bold; }
|
||||
h3 { font-size: 10pt; font-weight: bold; margin-top: 20px; margin-bottom: 2px; }
|
||||
h4 { margin:5; margin-right: 10; font-size: 9pt; font-weight: normal; }
|
||||
hr { margin:0; color:white; }
|
||||
a { }
|
||||
a:link { color:#2b6600; text-decoration: none; }
|
||||
a:visited { color:#2b6600; text-decoration: none; }
|
||||
a:active { color:#2b6600; text-decoration: none; }
|
||||
a:hover { text-decoration: underline; }
|
||||
|
||||
label {
|
||||
white-space:nowrap;
|
||||
}
|
||||
|
||||
input {
|
||||
font-size: 8pt;
|
||||
font-family:liberationsans,freesans,Arial,Verdana,Helvetica,sans-serif;
|
||||
padding: 0;
|
||||
margin: 1px;
|
||||
}
|
||||
select {
|
||||
font-size: 8pt;
|
||||
font-family:liberationsans,freesans,Arial,Verdana,Helvetica,sans-serif;
|
||||
padding: 0;
|
||||
margin: 1px;
|
||||
height: 18px;
|
||||
}
|
||||
input[type="text"] {
|
||||
padding: 0px;
|
||||
margin: 1px;
|
||||
height: 1.40em;
|
||||
border: 1px solid #AAAAAA;
|
||||
}
|
||||
|
||||
input[type="button"] {
|
||||
margin: 1px;
|
||||
white-space:nowrap;
|
||||
height: 18px;
|
||||
}
|
||||
input[type="radio"] {
|
||||
font-size: 7pt;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
input[type="checkbox"] {
|
||||
vertical-align:middle;
|
||||
-ms-transform: scale(0.9);
|
||||
-moz-transform: scale(0.9);
|
||||
-webkit-transform: scale(0.9);
|
||||
-o-trasnform: scale(0.9);
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
}
|
||||
.boldbutton {
|
||||
font-weight: bold;
|
||||
font-weight: bold !important;
|
||||
}
|
||||
.redbutton {
|
||||
color: red;
|
||||
color: red !important;
|
||||
}
|
||||
.redbutton[disabled] {
|
||||
color: lightgray;
|
||||
color: lightgray !important;
|
||||
}
|
||||
.redboldbutton {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
color: red !important;
|
||||
font-weight: bold !important;
|
||||
}
|
||||
.redboldbutton[disabled] {
|
||||
color: lightgray;
|
||||
color: lightgray !important;
|
||||
}
|
||||
.screencontainer {
|
||||
text-align:center;
|
||||
@ -83,8 +26,8 @@ input[type="checkbox"] {
|
||||
|
||||
.opaquebackground {
|
||||
text-align:center;
|
||||
position:fixed;
|
||||
z-index:15 !important;
|
||||
position: fixed;
|
||||
height:100%;
|
||||
width:100%;
|
||||
left:0;
|
||||
@ -166,77 +109,166 @@ input[type="checkbox"] {
|
||||
.multiselect label {
|
||||
display:block;
|
||||
white-space:nowrap;
|
||||
font-weight:400;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.socialbox {
|
||||
.webbuildtopright {
|
||||
float:right;
|
||||
font-size:8pt;
|
||||
border:0px;
|
||||
padding:0px;
|
||||
height:130px;
|
||||
line-height: 100%;
|
||||
border:1px solid #2b6600;
|
||||
}
|
||||
|
||||
.searchbox {
|
||||
position:relative;
|
||||
display:block;
|
||||
float:left;
|
||||
width:215px;
|
||||
align:center;
|
||||
left:660px;
|
||||
top:-25px;
|
||||
// height:21px;
|
||||
font-size:8pt;
|
||||
border:1px solid #2b6600;
|
||||
// margin:4px;
|
||||
padding:2px;
|
||||
background-color: #e0f2d0;
|
||||
}
|
||||
.chatpanel {
|
||||
float:left;
|
||||
width:215px;
|
||||
align:center;
|
||||
}
|
||||
.webbuild {
|
||||
font-size: 8pt;
|
||||
}
|
||||
.webbuild td {
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
.editor {
|
||||
width:690px;
|
||||
height:300px;
|
||||
border:1px solid #cccccc;
|
||||
padding:0px;
|
||||
font-family: liberationsans, freesans, arial, verdana, sans-serif;
|
||||
line-height: 1.3em;
|
||||
color: #000000;
|
||||
margin:0px;
|
||||
font-family:'Courier New', Courier, 'Nimbus Mono L', monospace;
|
||||
font-size:8pt;
|
||||
}
|
||||
.webbuild td { font-size: 8pt; border:0; }
|
||||
}
|
||||
.webbuild table { font-size: 9pt; font-family: liberationsans, freesans, arial, verdana, sans-serif; background-color: rgb(255, 255, 255); }
|
||||
.webbuild img { border: 0; margin: 0px; vertical-align:middle; }
|
||||
.webbuild h1 { font-size: 13pt; font-weight: bold; }
|
||||
.webbuild h2 { font-size: 11pt; font-weight: bold; }
|
||||
.webbuild h3 { font-size: 10pt; font-weight: bold; margin-top: 20px; margin-bottom: 2px; }
|
||||
.webbuild h4 { margin:5; margin-right: 10; font-size: 9pt; font-weight: normal; }*/
|
||||
.webbuild hr { margin:0; color:white; }
|
||||
.webbuild div { margin-bottom:1px; padding-bottom:1px; }
|
||||
|
||||
.maintainer {
|
||||
width:684px;
|
||||
height:300px;
|
||||
overflow:auto;
|
||||
font-size:7pt;
|
||||
border:1px solid #2b6600;
|
||||
.webbuildcontainer {
|
||||
max-width:920px;
|
||||
height:auto;
|
||||
}
|
||||
.webbuildwrapleft {
|
||||
float:left;
|
||||
width:100%;
|
||||
margin-right:-210px;
|
||||
}
|
||||
.webbuildleft {
|
||||
margin-right:210px !important;
|
||||
padding:0;
|
||||
margin:0;
|
||||
background-color:white;
|
||||
}
|
||||
|
||||
.socialbox {
|
||||
.webbuildright {
|
||||
float:right;
|
||||
font-size:8pt;
|
||||
padding:0px;
|
||||
height:130px;
|
||||
line-height: 100%;
|
||||
border:1px solid #2b6600;
|
||||
width:202px;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.processes {
|
||||
float:left;
|
||||
@media screen and (min-width: 901px) {
|
||||
.webbuildright {
|
||||
width:202px;
|
||||
}
|
||||
.socialbox {
|
||||
width:200px;
|
||||
}
|
||||
}
|
||||
.operationpanelinfo {
|
||||
margin-top:137px;
|
||||
border:1px solid #2b6600;
|
||||
background-color:#E0F2D0;
|
||||
padding:1px;
|
||||
}
|
||||
.operationpanelsend {
|
||||
margin-top:5px;
|
||||
border:1px solid #2b6600;
|
||||
background-color:#E0F2D0;
|
||||
padding:1px;
|
||||
}
|
||||
.operationpanelautodist {
|
||||
margin-top:5px;
|
||||
border:1px solid #2b6600;
|
||||
background-color:#FFFFDE;
|
||||
padding:1px;
|
||||
}
|
||||
.operationpanelpatches {
|
||||
margin-top:5px;
|
||||
border:1px solid #2b6600;
|
||||
background-color:#E0F2D0;
|
||||
padding:1px;
|
||||
}
|
||||
.operationpanelupload {
|
||||
margin-top:5px;
|
||||
border:1px solid #2b6600;
|
||||
background-color:#FFFFFF;
|
||||
padding:1px;
|
||||
}
|
||||
.operationpanelpackageinfo {
|
||||
margin-top:5px;
|
||||
border:1px solid #2b6600;
|
||||
background-color:#A7DEDE;
|
||||
padding:1px;
|
||||
}
|
||||
.operationpanelgenericinfo {
|
||||
margin-top:5px;
|
||||
border:1px solid #2b6600;
|
||||
background-color:#A7DEDE;
|
||||
padding:1px;
|
||||
}
|
||||
.operationpanelhost {
|
||||
margin-top:5px;
|
||||
border:1px solid #2b6600;
|
||||
background-color:#FFFFFF;
|
||||
padding:1px;
|
||||
}
|
||||
.operationpaneloperations {
|
||||
margin-top:5px;
|
||||
border:1px solid #2b6600;
|
||||
background-color:#FFFFDE;
|
||||
padding:1px;
|
||||
}
|
||||
.operationpaneloperations > textarea {
|
||||
padding:0;
|
||||
}
|
||||
.webbuildprocesses {
|
||||
font-size:7pt;
|
||||
padding:0px;
|
||||
height:130px;
|
||||
line-height: 130%;
|
||||
margin-bottom: 2px;
|
||||
border:1px solid #2b6600;
|
||||
width:100%;
|
||||
margin:0;
|
||||
// display:table-cell;
|
||||
background-color:#E0F2D0;
|
||||
padding:1px;
|
||||
}
|
||||
.processes {
|
||||
width:100%;
|
||||
}
|
||||
.editor {
|
||||
float:left;
|
||||
width:100%;
|
||||
height:300px;
|
||||
border:1px solid #cccccc;
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
font-family:monospace;
|
||||
font-size:8pt;
|
||||
}
|
||||
.maintainer {
|
||||
float:left;
|
||||
width:100%;
|
||||
height:300px;
|
||||
overflow:auto;
|
||||
font-size:7pt;
|
||||
border:1px solid #2b6600;
|
||||
padding:1px;
|
||||
margin:0;
|
||||
background-color:white;
|
||||
float:left;
|
||||
}
|
||||
|
||||
.notes {
|
||||
@ -250,13 +282,14 @@ input[type="checkbox"] {
|
||||
}
|
||||
|
||||
.output {
|
||||
width:680px;
|
||||
width:100%;
|
||||
height:300px;
|
||||
overflow:auto;
|
||||
overflow-x:hidden;
|
||||
word-wrap: break-word;
|
||||
font-family:'Courier New', Courier, 'Nimbus Mono L', monospace;
|
||||
font-family:monospace;
|
||||
font-size:8pt;
|
||||
font-weight:400;
|
||||
border:1px solid #2b6600;
|
||||
padding:2px;
|
||||
margin:0;
|
||||
@ -264,27 +297,71 @@ input[type="checkbox"] {
|
||||
color:white;
|
||||
}
|
||||
|
||||
.output a:link {
|
||||
text-decoration: underline;
|
||||
color:white;
|
||||
}
|
||||
|
||||
.output a,
|
||||
.output a:link,
|
||||
.output a:visited {
|
||||
text-decoration: underline;
|
||||
color:white;
|
||||
}
|
||||
|
||||
.output p {
|
||||
background-color:gray;
|
||||
color:white;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 900px) {
|
||||
.webbuildright,
|
||||
.webbuildleft,
|
||||
.operationpanelinfo,
|
||||
.operationpanelsend,
|
||||
.operationpanelautodist {
|
||||
width:100%;
|
||||
}
|
||||
.socialbox {
|
||||
float: none !important;
|
||||
}
|
||||
span#socialbox > span > div > div > img,
|
||||
span#socialbox > span > div > div:first-child {
|
||||
height:12px !important;
|
||||
width:12px !important;
|
||||
}
|
||||
span#socialbox > span > div > div:nth-child(2),
|
||||
span#socialbox > span > div > div:nth-child(3) {
|
||||
margin-left: 12px !important;
|
||||
}
|
||||
.operationpanelinfo {
|
||||
margin-top:5px !important;
|
||||
}
|
||||
.webbuildtopright,
|
||||
.webbuildtopleft {
|
||||
margin-top:5px;
|
||||
width:100%;
|
||||
}
|
||||
.chatpanel {
|
||||
margin-left:10px;
|
||||
}
|
||||
select,
|
||||
input {
|
||||
margin:3px !important;
|
||||
}
|
||||
|
||||
}
|
||||
@media screen and (max-width: 370px) {
|
||||
.webbuildright,
|
||||
.webbuildleft {
|
||||
width:100%;
|
||||
}
|
||||
}
|
||||
|
||||
.matrix {
|
||||
width:100%;
|
||||
height:100%;
|
||||
height:97%;
|
||||
word-wrap: break-word;
|
||||
overflow:auto;
|
||||
font-size:7pt;
|
||||
// border:1px solid #2b6600;
|
||||
padding-right:-2px;
|
||||
padding-bottom:-2px;
|
||||
margin-left:2px;
|
||||
margin-bottom:2px;
|
||||
padding:0px;
|
||||
top:5px;
|
||||
left:5px;
|
||||
// background-color:#e0f2d0;
|
||||
/* -moz-column-count: 2;
|
||||
-moz-column-gap: 1.5em;
|
||||
@ -316,9 +393,11 @@ input[type="checkbox"] {
|
||||
}
|
||||
|
||||
.scroll-pane {
|
||||
/* socialbox */
|
||||
background-color: #e0f2d0;
|
||||
height:130px;
|
||||
width:200px;
|
||||
min-width:200px;
|
||||
width:100%;
|
||||
overflow:auto;
|
||||
float:right;
|
||||
}
|
||||
@ -337,11 +416,11 @@ input[type="checkbox"] {
|
||||
}
|
||||
|
||||
.scroll-pane3 {
|
||||
/* processes */
|
||||
background-color: #e0f2d0;
|
||||
height:130px;
|
||||
width:685px;
|
||||
width:auto;
|
||||
overflow:auto;
|
||||
float:right;
|
||||
}
|
||||
|
||||
.scroll-pane3-h {
|
||||
@ -357,3 +436,17 @@ input[type="checkbox"] {
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
/* socialbox */
|
||||
.socialbox {
|
||||
float:right;
|
||||
font-size:8pt;
|
||||
//border:0;
|
||||
//margin:0;
|
||||
//padding:0;
|
||||
height:130px;
|
||||
line-height: 100%;
|
||||
border:1px solid #2b6600;
|
||||
}
|
||||
.socialbox div { margin-bottom:1px; }
|
||||
.socialbox hr { margin:0; color:#FFF; }
|
||||
.downloadbox table { font-size: 9pt; border:1px solid #2b6600; margin: 4px; padding:4; background-color: #e0f2d0; }
|
||||
|
@ -1,7 +1,9 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html><head>
|
||||
<meta content="text/html; charset=utf-8" http-equiv="content-type">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
|
||||
<link rel="shortcut icon" type="image/x-icon" href="/images/webbuild.ico" />
|
||||
<!-- styles needed by jScrollPane -->
|
||||
<link type="text/css" href="/scripts/jquery.jscrollpane.css" rel="stylesheet" media="all" >
|
||||
<!-- latest jQuery direct from google's CDN -->
|
||||
@ -10,6 +12,7 @@
|
||||
<script type="text/javascript" src="/scripts/jquery.mousewheel.js"></script>
|
||||
<!-- the jScrollPane script -->
|
||||
<script type="text/javascript" src="/scripts/jquery.jscrollpane.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/styles/webbuild-standalone.css">
|
||||
<link rel="stylesheet" type="text/css" href="/styles/webbuild.css">
|
||||
<script type="text/javascript" src="/scripts/socialbox.js"></script>
|
||||
<script>
|
||||
@ -91,6 +94,7 @@ function editorChanged() {
|
||||
|
||||
function ajax_getvalues(request,confirm) {
|
||||
var url = "/cgi-bin/webbuild"
|
||||
var xmlhttp;
|
||||
|
||||
if (!user) {
|
||||
user=getCookie("webbuild-user");
|
||||
@ -150,13 +154,10 @@ function ajax_getvalues(request,confirm) {
|
||||
if (nodes[i].nodeName == "title") {
|
||||
document.title = nodes[i].childNodes[0].nodeValue;
|
||||
} else if (nodes[i].nodeName == "cookie-user") {
|
||||
setCookie("webbuild-user", nodes[i].childNodes[0].nodeValue, 1);
|
||||
setCookie("webbuild-user", nodes[i].childNodes[0].nodeValue);
|
||||
} else if (nodes[i].nodeName == "cookie-secret") {
|
||||
setCookie("webbuild-secret", nodes[i].childNodes[0].nodeValue, 1);
|
||||
setCookie("webbuild-secret", nodes[i].childNodes[0].nodeValue);
|
||||
} else if (document.getElementById(nodes[i].nodeName) != undefined) {
|
||||
// var node = document.getElementById(nodes[i].nodeName)
|
||||
//alert("replace " + node.nodeValue + "with " + nodes[i].childNodes[0].nodeValue);
|
||||
// node = replaceHTML(node, nodes[i].childNodes[0].nodeValue);
|
||||
$("#"+nodes[i].nodeName).html(nodes[i].childNodes[0].nodeValue);
|
||||
spectext = document.getElementById("spectext");
|
||||
if ((nodes[i].nodeName == "editor") && (spectext != undefined) && (spectext.parentNode != undefined))
|
||||
@ -260,39 +261,33 @@ function ajaxFileUpload(request)
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
<link rel="stylesheet" type="text/css" href="/styles/webbuild-post.css">
|
||||
|
||||
</head><body>
|
||||
<table width="100%">
|
||||
<tr><td>
|
||||
<span class=webbuild>
|
||||
<div id=container style="position:relative;width:894px;height:auto;top:0;left:0;margin-left:auto;margin-right:auto;">
|
||||
<div class="webbuildcontainer">
|
||||
<form id=webbuildform name=webbuild method=post action="javascript:">
|
||||
<img src="/images/webbuild.png" alt="build automatici">
|
||||
<b>- Webbuild - Interfaccia Web per lo sviluppo di openmamba</b>
|
||||
|
||||
<span id="searchbox"></span>
|
||||
|
||||
|
||||
|
||||
<div style="position:relative;top:-30px;left:0;width:100%;height:100%;">
|
||||
<div id="searchbox"></div>
|
||||
<div class="chatpanel"><span id="chatpanel"></span></div>
|
||||
<div id="noajax_msg"><p>Il supporto per AJAX non è abilitato nel tuo browser. L'aggiornamento live non sarà disponibile, premi Ricarica per aggiornare la pagina.</p></div>
|
||||
<span id="status">Caricamento in corso, attendere...</span>
|
||||
<span id="topcontrols"></span><span id="environments"></span><span id="specedit"></span>
|
||||
<br><span id="repositories"></span>
|
||||
<span id="repositories"></span>
|
||||
<span id="packages"></span>
|
||||
<span id="operations"></span>
|
||||
<br><span id="speccreate"></span>
|
||||
<hr>
|
||||
<div style="position:relative;float:left;width:686px;padding:0;margin:1px;">
|
||||
<div class="processes"><div class="scroll-pane3"><span id="processes"></span></div></div><br>
|
||||
<span id="speccreate"></span>
|
||||
<div class="webbuildleft">
|
||||
<div class="webbuildprocesses"><div class="scroll-pane3"><span id="processes"></span></div></div>
|
||||
<div><span id="editor"></span></div>
|
||||
<span id="editcontrols"></span>
|
||||
<span id="showlogcontrols"></span>
|
||||
<span id="output"></span>
|
||||
</div>
|
||||
<div style="position:relative;float:right;width:200px;padding:0;margin:1px;">
|
||||
<div class="webbuildright">
|
||||
<div class="socialbox"><div class="scroll-pane"><span id="socialbox"></span></div></div>
|
||||
<span id="operationpanel" style="margin:0;"></span>
|
||||
<span id="chatpanel"></span>
|
||||
<span id="operationpanel"></span>
|
||||
</div>
|
||||
<div style="clear:both"></div>
|
||||
<span id="window"></span>
|
||||
@ -306,6 +301,4 @@ ajax_getvalues_refresh("",user,user_email,encodeURIComponent(secret));
|
||||
//setInterval("ajax_getvalues_refresh(\"\",user,user_email,encodeURIComponent(secret))",0);
|
||||
</script>
|
||||
<br><br><br><br><br><br>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body></html>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -259,6 +259,7 @@ class PasswordHash {
|
||||
}
|
||||
|
||||
$wp_hasher = new PasswordHash(8, TRUE);
|
||||
echo $wp_hasher->HashPassword($argv[1]);
|
||||
if ($wp_hasher->CheckPassword($argv[1], $argv[2]) == "1")
|
||||
exit(0);
|
||||
else
|
||||
|
@ -27,17 +27,24 @@ function set_user_state_var() {
|
||||
|
||||
function social_log() {
|
||||
local line=$1
|
||||
local SPRIVACY=0
|
||||
|
||||
[ "$line" ] || return
|
||||
|
||||
if [ ! "$STATE_FAKEUSER" ]; then
|
||||
STATE_SOCIALLOG_ID=0
|
||||
. $WEBBUILD_STATEDIR/users/webbuild.state
|
||||
STATE_SOCIALLOG_ID=$(($STATE_SOCIALLOG_ID + 1))
|
||||
set_user_state_var STATE_SOCIALLOG_ID $STATE_SOCIALLOG_ID webbuild
|
||||
echo "SID=$STATE_SOCIALLOG_ID SPRIVACY=$STATE_PRIVACYMODE $line" >> $WEBBUILD_STATEDIR/social_log
|
||||
|
||||
if [ "$WEBBUILD_URL" ]; then
|
||||
[ -e $WEBBUILD_STATEDIR/webbuild.db ] || \
|
||||
sqlite3 $WEBBUILD_STATEDIR/webbuild.db \
|
||||
"CREATE TABLE social_log(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, privacy BOOLEAN, user CHAR(40), type CHAR(40), target CHAR(40), email CHAR(80), text TEXT, time datetime default current_timestamp);"
|
||||
|
||||
eval "$line"
|
||||
[ "$STATE_PRIVACYMODE" ] && $SPRIVACY=1
|
||||
sqlite3 $WEBBUILD_STATEDIR/webbuild.db \
|
||||
"INSERT into social_log (privacy, user, type, target, email, text) \
|
||||
values ($SPRIVACY,'$SUSER','$STYPE','$STARGET','$SEMAIL','$STEXT');"
|
||||
|
||||
# Note: checking that URL does not point here again to avoid recursive requests
|
||||
if [ "$WEBBUILD_URL" -a "${WEBBUILD_URL/\/localhost\//}" = "$WEBBUILD_URL" ]; then
|
||||
eval $line
|
||||
USER_SECRET_FIXED=`echo $USER_SECRET | sed "s|\$|\\$|"`
|
||||
curl -s "$WEBBUILD_URL?REQUEST=message&USER=$USER&SECRET=`cgi_encodevar \"$USER_SECRET\"`&USER_EMAIL=$USER_EMAIL&\
|
||||
@ -95,9 +102,9 @@ function cgi_get_POST_vars()
|
||||
cgi_get_POST_upload "${CONTENT_TYPE/*boundary=}"
|
||||
return
|
||||
fi
|
||||
[ "${CONTENT_TYPE:0:33}" != "application/x-www-form-urlencoded" ] && \
|
||||
echo "Warning: you should probably use MIME type "\
|
||||
"application/x-www-form-urlencoded instead of ${CONTENT_TYPE}!" 1>&2
|
||||
#[ "${CONTENT_TYPE:0:33}" != "application/x-www-form-urlencoded" ] && \
|
||||
# echo "Warning: you should probably use MIME type "\
|
||||
# "application/x-www-form-urlencoded instead of ${CONTENT_TYPE}!" 1>&2
|
||||
# save POST variables (only first time this is called)
|
||||
[ -z "$QUERY_STRING_POST" \
|
||||
-a "$REQUEST_METHOD" = "POST" -a ! -z "$CONTENT_LENGTH" ] &&
|
||||
@ -167,7 +174,7 @@ function cgi_getvars()
|
||||
p=`echo $q | sed "s|&.*||"`
|
||||
q=`echo $q | sed "s|[^&]*&||"`
|
||||
k="${p%%=*}" # get the key (variable name) from it
|
||||
[ "$k" = "REMOTE_ADDR" -o "$k" = "REMOTE_HOST" -o "$k" = "REMOTE_PORT" -o "$k" = "REMOTE_USER" ] && continue
|
||||
[ ! "$k" -o "$k" = "REMOTE_ADDR" -o "$k" = "REMOTE_HOST" -o "$k" = "REMOTE_PORT" -o "$k" = "REMOTE_USER" ] && continue
|
||||
v="${p#*=}" # get the value from it
|
||||
# decode and evaluate var if requested
|
||||
if [ "$k" != "SPECTEXT" ]; then
|
||||
@ -178,6 +185,20 @@ function cgi_getvars()
|
||||
return
|
||||
}
|
||||
|
||||
function var2html()
|
||||
{
|
||||
eval r=\$$1
|
||||
r="${r//\&/&}"
|
||||
r="${r//\</<}"
|
||||
r="${r//\\\n/<br>}"
|
||||
r="${r//\\/\}"
|
||||
r="${r//\"/"}"
|
||||
r="${r//\$/$}"
|
||||
r="${r//\`/`}"
|
||||
r="${r//\*/*}"
|
||||
echo "${r}"
|
||||
}
|
||||
|
||||
function kill_tree() {
|
||||
local killpid=$1
|
||||
|
||||
@ -238,22 +259,26 @@ function parse_patch_output() {
|
||||
}
|
||||
|
||||
function parse_build_output() {
|
||||
#s|\(.\{10000\}\).*|\1 [CUT - LONG LINE]|;
|
||||
sed "s|\r.*||;
|
||||
s|\(.\{10000\}\).*|\1 [CUT - LONG LINE]|;s|\\\|\\\\\\\|g;s|<|\<|g;s|[[:cntrl:]]\[[0-9;]*m||g;
|
||||
s|\\\|\\\\\\\|g;s|<|\<|g;
|
||||
s|[[:cntrl:]]\[[0-9;]*m||g;
|
||||
s|<font|<font|g;
|
||||
s|</font|</font|g;
|
||||
s|^\([\+#] .*\)|<font style=\"color:cyan\">\1</font>|;
|
||||
s|\(ftp[s]*://[[:alnum:]+\,:&?/_.=~%#-]*\)|<a href=\1 target=new>\1</a>|;
|
||||
s|\(http[s]*://[[:alnum:]+\,:&?/_.=~%#-]*\)|<a href=\1 target=new>\1</a>|;
|
||||
s|\(.*\)\(error[^0-9A-Za-z]*:[[:space:]]*.*\)|<font style=\"background-color:red;color:white\">\1<a %SRCURL%\2%SRCURLEND%>\2</a></font>|i;
|
||||
s|\(.*\)\(error[^0-9A-Za-z]*:[[:space:]]*.*\)|<font style=\"background-color:darkred;color:white\">\1<a %SRCURL%\2%SRCURLEND%>\2</a></font>|i;
|
||||
s|^\(== =.*\)|<font style=\"background-color:green;color:white\">\1</font>|;
|
||||
s|^[[:cntrl:]]*\([!%?=][!%!=>] .*\)|<font style=\"color:gold\">\1</font>|;
|
||||
s|[[:cntrl:]]||g;" | google_search $1
|
||||
}
|
||||
|
||||
function parse_generic_output() {
|
||||
# s|\(.\{10000\}\).*|\1 [CUT - LONG LINE]|;
|
||||
sed "s|\r.*||;
|
||||
s|\(.\{10000\}\).*|\1 [CUT - LONG LINE]|;s|<|\<|g;s|[[:cntrl:]]\[[0-9;]*m||g;
|
||||
s|<|\<|g;
|
||||
s|[[:cntrl:]]\[[0-9;]*m||g;
|
||||
s|<font|<font|g;
|
||||
s|</font|</font|g;
|
||||
s|^\([\+#] .*\)|<font style=\"color:cyan\">\1</font>|;
|
||||
@ -263,13 +288,12 @@ function parse_generic_output() {
|
||||
|
||||
function google_search() {
|
||||
while read line; do
|
||||
local SEARCH_STRING=`echo "$line" | sed "s|.*%SRCURL%\(.*\)%SRCURLEND%.*|\1|"`
|
||||
if [ "$SEARCH_STRING" = "$line" ]; then
|
||||
if [ "${line/\%SRCURL\%}" == "${line}" ]; then
|
||||
echo "$line"
|
||||
else
|
||||
SEARCH_STRING=`echo $SEARCH_STRING | sed "s|\<|<|"`
|
||||
local SEARCH_STRING=`echo "$line" | sed "s|.*%SRCURL%\(.*\)%SRCURLEND%.*|\1|;s|\<|<|"`
|
||||
local SEARCH_STRING_ENCODED=`cgi_encodevar "$1 $SEARCH_STRING"`
|
||||
echo "$line" | sed "s|%SRCURL%.*%SRCURLEND%|href=\"http://www.google.com/search?q=$SEARCH_STRING_ENCODED\" target=_new title=\"Search this error on the Web\"|g"
|
||||
echo "$line" | sed "s|%SRCURL%.*%SRCURLEND%|href=\"https://www.google.com/search?q=$SEARCH_STRING_ENCODED\" target=_new title=\"Search this error on the Web\"|g"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
@ -56,10 +56,10 @@ function showlog() {
|
||||
echo -n "<pre>"
|
||||
if [ "$LOGTYPE" = "processtail" ]; then
|
||||
echo -n "<!-- SCROLL -->"
|
||||
tail -n +0 -f $f --pid $PROCESSPID | stdbuf -oL sed "s|<|\<|g"
|
||||
tail -n +0 -f $f --pid $PROCESSPID | stdbuf -oL sed "s|<\([/]pre>\)|\<\1|g"
|
||||
echo -n "<!-- ENDSCROLL -->"
|
||||
else
|
||||
if [ $LOGFILESIZE -lt 524288 ]; then
|
||||
if [ $LOGFILESIZE -lt 12097152 ]; then
|
||||
if [ -r $f ]; then
|
||||
cat $f | parse_build_output $PACKAGE
|
||||
else
|
||||
@ -67,13 +67,13 @@ function showlog() {
|
||||
fi
|
||||
else
|
||||
if [ -r $f ]; then
|
||||
head -c 262144 $f | parse_build_output $PACKAGE
|
||||
head -c 1048576 $f | parse_build_output $PACKAGE
|
||||
echo "<br><font style=\"background-color:yellow;color:black\"><------ CUT (long file) -------></font>"
|
||||
tail -c 262144 $f | parse_build_output $PACKAGE
|
||||
tail -c 1048576 $f | parse_build_output $PACKAGE
|
||||
else
|
||||
$SUDO_WRAPPER 0 $ENVIRONMENT "$USER" "" "head -c 262144 $f" | parse_build_output $PACKAGE
|
||||
$SUDO_WRAPPER 0 $ENVIRONMENT "$USER" "" "head -c 1048576 $f" | parse_build_output $PACKAGE
|
||||
echo "<br><font style=\"background-color:yellow;color:black\"><------ CUT (long file) -------></font>"
|
||||
$SUDO_WRAPPER 0 $ENVIRONMENT "$USER" "" "tail -c 262144 $f" | parse_build_output $PACKAGE
|
||||
$SUDO_WRAPPER 0 $ENVIRONMENT "$USER" "" "tail -c 1048576 $f" | parse_build_output $PACKAGE
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@ -84,6 +84,7 @@ function showlog() {
|
||||
|
||||
function showEnvironmentPanel() {
|
||||
|
||||
echo -n "Host: <b>`hostname`</b><br>"
|
||||
echo -n "Environment: <b>"
|
||||
if [ "${AUTOPORT_CHROOT_USER[$ENVIRONMENT]}" ]; then
|
||||
echo -n "${AUTOPORT_CHROOT_USER[$ENVIRONMENT]} - "
|
||||
@ -107,33 +108,18 @@ function showEnvironmentPanel() {
|
||||
|
||||
# toolchain
|
||||
echo -n "<br>"
|
||||
local toolchain_output=`LANGUAGE=C $SUDO_WRAPPER 0 $ENVIRONMENT "$USER" "" "gcc --version | head -n1; LANGUAGE=C ld -v"`
|
||||
local gcc_ver=`echo $toolchain_output | sed "s|.*(GCC) \([0-9.]*\) .*|\1|"`
|
||||
local binutils_ver=`echo $toolchain_output | sed "s|.*GNU \(.*\) (GNU Binutils.*)\(.*\)|\1 \2|"`
|
||||
echo "Toolchain: gcc $gcc_ver, $binutils_ver"
|
||||
|
||||
# system upgrade
|
||||
echo -n "<br><input type=button id=smartupgrade value=\"system upgrade\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
||||
echo -n "REQUEST=smartupgrade\""
|
||||
echo -n ",\"`cgi_encodevar "Upgrade current environment to latest updates now?"`\"); class=redbutton>"
|
||||
|
||||
## run ldconfig
|
||||
#echo -n "<input type=button id=runldconfig value=\"run ldconfig\" onclick="
|
||||
#echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
||||
#echo -n "REQUEST=runldconfig\");>"
|
||||
|
||||
# rpm manager
|
||||
echo -n "<input type=button id=rpmmanager value=\"RPM manager\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
||||
echo -n "REQUEST=rpmmanager\");>"
|
||||
|
||||
# environment search
|
||||
echo -n "<br><div style=\"white-space:nowrap;width:100%;\">Provides:<input type=text style=\"width:75%;align:center;padding:0;margin:2px;\" id=environmentsearch value=\"Search package or provide...\" "
|
||||
echo -n "onfocus=\"if (this.value==this.defaultValue) this.value=''\" "
|
||||
echo -n "onkeypress=if(checkEnter(event))ajax_getvalues(\""
|
||||
echo -n "ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
||||
echo -n "REQUEST=environmentsearch&ENVSEARCHTEXT=\"+encodeURIComponent(getElementById('environmentsearch').value));></div>"
|
||||
if [ ! -e $WEBBUILD_STATEDIR/cache/environment-$ENVIRONMENT-data -o \
|
||||
"`find $WEBBUILD_STATEDIR/cache/environment-$ENVIRONMENT-data -mmin +5`" ]; then
|
||||
local toolchain_output=`LANGUAGE=C $SUDO_WRAPPER 0 $ENVIRONMENT "$USER" "" "gcc --version | head -n1; LANGUAGE=C clang -v | head -n1; LANGUAGE=C ld -v"`
|
||||
local gcc_ver=`echo $toolchain_output | sed "s|.*(GCC) \([0-9.]*\) .*|\1|"`
|
||||
local binutils_ver=`echo $toolchain_output | sed "s|.*GNU \(.*\) (GNU Binutils.*)\(.*\)|\1 \2|"`
|
||||
local clang_ver=`echo $toolchain_output | sed "s|.*clang version \([0-9.]*\) .*|\1|"`
|
||||
local toolchain_text="gcc $gcc_ver, clang $clang_ver, $binutils_ver"
|
||||
echo "$toolchain_text" > $WEBBUILD_STATEDIR/cache/environment-$ENVIRONMENT-data
|
||||
else
|
||||
local toolchain_text=`cat $WEBBUILD_STATEDIR/cache/environment-$ENVIRONMENT-data`
|
||||
fi
|
||||
echo "Toolchain: $toolchain_text"
|
||||
|
||||
}
|
||||
|
||||
@ -153,6 +139,21 @@ function print_showlogcontrols() {
|
||||
echo -n "REQUEST=showlog&LOGTYPE=send&LOGSTATUSOK=\"+document.all.logstatusOK.checked);> with status: "
|
||||
echo -n "OK <input id=\"logstatusOK\" type=\"radio\" name=\"logstatus\" value=\"OK\"> "
|
||||
echo -n "FAILED <input type=\"radio\" name=\"logstatus\" value=\"FAILED\" checked=\"checked\">"
|
||||
# console cmd
|
||||
echo -n "<hr><b>Command:</b> "
|
||||
echo -n " ["
|
||||
if [ "${AUTOPORT_CHROOT_USER[$ENVIRONMENT]}" ]; then
|
||||
echo -n "${AUTOPORT_CHROOT_USER[$ENVIRONMENT]}@"
|
||||
else
|
||||
echo -n "autodist@"
|
||||
fi
|
||||
echo -n "`hostname -s` ${SPECVAR_BUILDDIR}]\$ <input type=text id=consolecmd value=\"\" size=\"40\"> "
|
||||
echo -n "<input type=button id=consolecmdbutton value=\"submit\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
||||
echo -n "REQUEST=consolecmd&CONSOLECMD=\"+getElementById('consolecmd').value+\"&"
|
||||
echo -n "RPMFORCE=\"+getElementById('rpmforce').checked+\"&"
|
||||
echo -n "DEBUG=\"+getElementById('debug').checked+\"&"
|
||||
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue()));>"
|
||||
# close tag
|
||||
echo -n "]]></showlogcontrols>"
|
||||
}
|
||||
@ -162,7 +163,7 @@ function print_editorcontrols() {
|
||||
|
||||
echo -n "<editcontrols><![CDATA["
|
||||
# specfile save
|
||||
echo -n "<div style=\"width:100%;overflow:hidden;\"><span style=\"float:left\">"
|
||||
echo -n "<div style=\"width:100%;overflow:hidden;\"><span style=\"width:100%;display:block\">"
|
||||
echo -n "<input type=button id=savebutton value=\"save\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
||||
echo -n "REQUEST=savespec&SENDREPOSITORY=$SENDREPOSITORY&SPECTEXT=\"+encodeURIComponent(editor.getValue()));"
|
||||
@ -177,22 +178,71 @@ function print_editorcontrols() {
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
||||
echo -n "REQUEST=deletespec\",\"`cgi_encodevar "Really delete <b>$PACKAGE.spec</b>?"`\")>"
|
||||
# specfile rename
|
||||
echo -n "<input type=button id=updatespecbutton value=\"rename to:\" onclick="
|
||||
echo -n "<input type=button id=updatespecbutton value=\"rename:\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&RENAMESPECFROM=$PACKAGE&"
|
||||
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&"
|
||||
echo -n "REQUEST=renamespec&PACKAGE=\"+encodeURIComponent(getElementById('specnewname').value));>"
|
||||
echo -n "<input type=text id=specnewname value=\"\" size=12>.spec"
|
||||
# add a note
|
||||
echo -n "<label>"
|
||||
echo -n "<input type=button id=addpkgnote value=\"add a note:\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
||||
echo -n "<input type=text id=specnewname value=\"\" size=6>"
|
||||
# unpack
|
||||
echo -n "<input type=button value=\"prepare\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=rpmprepare&"
|
||||
echo -n "RPMBUILDARCH=\"+getSelectedValueById('rpmbuildarch')+\"&"
|
||||
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue()));>"
|
||||
# build
|
||||
echo -n "<input type=button value=\"build\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=rpmbuild&"
|
||||
echo -n "RPMBUILDARCH=\"+getSelectedValueById('rpmbuildarch')+\"&"
|
||||
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&RPMFORCE=\"+getElementById('rpmforce').checked); class=boldbutton>"
|
||||
# unpackaged files
|
||||
echo -n "<input type=button value=\"unpackaged list\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=autospeclistcheck&"
|
||||
echo -n "RPMBUILDARCH=\"+getSelectedValueById('rpmbuildarch')+\"&"
|
||||
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue()));>"
|
||||
# build requirements
|
||||
echo -n "<input type=button value=\"build reqs\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=autospecbuildreq\");>"
|
||||
# rpm install
|
||||
[ ! "$USER_CANINSTALL" ] && DISABLED="disabled=disabled"
|
||||
echo -n "<input type=button id=rpminstallbutton value=\"install\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=rpminstall&"
|
||||
echo -n "RPMFORCE=\"+getElementById('rpmforce').checked"
|
||||
echo -n ",\"`cgi_encodevar "Install <b>$PACKAGE</b> in current environment?"`\""
|
||||
echo -n "); class=redbutton $DISABLED>"
|
||||
# rpm send
|
||||
if [ "$SPECVAR_CHECK_NOAUTOBUILDREQ" ]; then
|
||||
HREFADD="disabled=disabled title=\"WARNING: fix specfile build requirements before you can send the package\""
|
||||
else
|
||||
HREFADD=
|
||||
fi
|
||||
echo -n "<input type=button id=sendpackagebutton value=\"send\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=sendpackage&"
|
||||
echo -n "SENDRECREATESRPM=\"+getElementById('sendrecreatesrpm').checked+\"&"
|
||||
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&"
|
||||
echo -n "REQUEST=addpkgnote&PKGNOTE=\"+encodeURIComponent(getElementById('pkgnote').value));></label></span>"
|
||||
echo -n "<span style=\"display:block;overflow:hidden;padding-right:5px;\">"
|
||||
echo -n "<input type=text id=pkgnote value=\"\" style=\"width:100%\">"
|
||||
echo -n "</span></div>"
|
||||
echo -n "AUTODISTARCH=\"+getSelectedValueById('rpmbuildarch')+\"&"
|
||||
echo -n "SENDREPOSITORY=\"+getSelectedValueById('sendrepository')"
|
||||
echo -n ",\"`cgi_encodevar "Send <b>$PACKAGE</b> built packages to <b>"`\"+getSelectedValueById('sendrepository')+"
|
||||
echo -n "\"`cgi_encodevar "</b>?<br><br><font color=goldenrod>HINT: does summary look short and good?</font><br><b>${SPECVAR_Name[0]} - ${SPECVAR_Summary[0]}.</b>"`\""
|
||||
echo -n "); class=redbutton $HREFADD>"
|
||||
# recreate and send SRPM
|
||||
if [ "$SPECVAR_CHECK_NOAUTOBUILDREQ" ]; then
|
||||
HREFADD="disabled=disabled title=\"WARNING: fix specfile build requirements before you can send the package\""
|
||||
else
|
||||
HREFADD=
|
||||
fi
|
||||
echo -n "<input type=button id=sendsourcebutton value=\"send SRPM\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=sendsource&"
|
||||
echo -n "RPMFORCE=\"+getElementById('rpmforce').checked+\"&"
|
||||
echo -n "SENDRECREATESRPM=\"+getElementById('sendrecreatesrpm').checked+\"&"
|
||||
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&"
|
||||
echo -n "SENDREPOSITORY=\"+getSelectedValueById('sendrepository')"
|
||||
echo -n ",\"`cgi_encodevar "Send <b>$PACKAGE</b> source package only to <b>"`\"+getSelectedValueById('sendrepository')+"
|
||||
echo -n "\"`cgi_encodevar "</b>?<br><br>WARNING: use this to refresh the SRPM of a package which already exists with same release in repository"`\""
|
||||
echo -n "); class=redbutton $HREFADD>"
|
||||
# recreate SRPM before sending checkbox
|
||||
echo -n "<label style=\"color:red;padding:0;\"><input type=checkbox id=\"sendrecreatesrpm\" value=\"force\">recreate SRPM</label>"
|
||||
|
||||
# specfile update
|
||||
echo -n "<div style=\"width:100%;overflow:hidden;\"><span style=\"float:left\">"
|
||||
echo -n "<div style=\"width:100%;overflow:hidden;\"><span style=\"display:flex\">"
|
||||
echo -n "<input type=button id=updatespecbutton value=\"update\" onclick="
|
||||
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
||||
echo -n "REQUEST=updatespec&UPDATESPECVERSION=\"+getElementById('updatespecversion').value+\"&"
|
||||
@ -200,12 +250,10 @@ function print_editorcontrols() {
|
||||
echo -n "DEBUG=\"+getElementById('debug').checked+\"&"
|
||||
echo -n "REBUILDSPECCHANGELOG=\"+encodeURIComponent(getElementById('rebuildspecchangelog').value)+\"&"
|
||||
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue()));>"
|
||||
echo -n " (automatic or specify new version:<input type=text id=updatespecversion value=\"\" size=\"10\">"
|
||||
echo -n " or new release changelog:"
|
||||
echo -n "</span><span style=\"display:block;float:right\">)</span>"
|
||||
echo -n "<span style=\"display:block;overflow:hidden;padding-right:5px;\">"
|
||||
echo -n "<input type=text id=rebuildspecchangelog value=\"$REBUILDSPECCHANGELOG\" style=\"width:100%\">"
|
||||
echo -n "</span></div>"
|
||||
echo -n " <label>to new version:</label><input type=text id=updatespecversion value=\"\" size=\"10\">"
|
||||
echo -n " <label>or to new release with changelog:</label>"
|
||||
echo -n "<input style=\"flex:1\" type=text id=rebuildspecchangelog value=\"$REBUILDSPECCHANGELOG\">"
|
||||
echo -n "</div>"
|
||||
# close tag
|
||||
echo -n "]]></editcontrols>"
|
||||
|
||||
@ -219,14 +267,14 @@ function show_docs() {
|
||||
done
|
||||
echo -n "<br>"
|
||||
for f in $@; do
|
||||
echo -n "<a name=logfile-$f><p style=\"background-color:gray\"><b>File $f:</b></a><pre>"
|
||||
echo -n "<a name=logfile-$f></a><p><b>File $f:</b><pre>"
|
||||
ftype="`$SUDO_WRAPPER 0 $ENVIRONMENT "$USER" $PACKAGE "cd $SPECVAR_RPMBUILDDIR/$SPECVAR_BUILDDIR && file $f"`"
|
||||
if [ "${ftype/text}" = "${ftype}" ]; then
|
||||
echo "<p>Binary file; skipping."
|
||||
continue
|
||||
fi
|
||||
$SUDO_WRAPPER 0 $ENVIRONMENT "$USER" $PACKAGE \
|
||||
"cd $SPECVAR_RPMBUILDDIR/$SPECVAR_BUILDDIR && head -c 10240 $f | sed \"s|<|\<|g;s|[[:cntrl:]]\[[0-9;]*m||g\"" | parse_generic_output
|
||||
"cd $SPECVAR_RPMBUILDDIR/$SPECVAR_BUILDDIR && head -c 10240 $f | strings | sed \"s|<|\<|g;s|[[:cntrl:]]\[[0-9;]*m||g\"" | parse_generic_output
|
||||
RET=$?
|
||||
echo -n "</pre>"
|
||||
done
|
||||
@ -240,7 +288,6 @@ function download_file() {
|
||||
local f
|
||||
|
||||
for f in $download_files; do
|
||||
echo $f >> /tmp/down
|
||||
echo -e "Content-Type: application/octet-stream"
|
||||
echo -e "Content-Disposition: attachment; filename=\"${f/*\/}\"\n"
|
||||
if [ "$download_environment" ]; then
|
||||
@ -249,7 +296,7 @@ echo $f >> /tmp/down
|
||||
cat $f 2>/dev/null
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
RET=$?
|
||||
return $RET
|
||||
}
|
||||
@ -275,6 +322,12 @@ function resolve_rpmmanagerdir() {
|
||||
RPMSNOARCH) rpmmanagerdir=../RPMS/noarch
|
||||
rpmmanagermask="*.noarch.rpm"
|
||||
rpmmanagermode=environment ;;
|
||||
RPMS_arm) rpmmanagerdir=../RPMS/arm
|
||||
rpmmanagermask="*.arm.rpm"
|
||||
rpmmanagermode=environment ;;
|
||||
RPMS_i586) rpmmanagerdir=../RPMS/i586
|
||||
rpmmanagermask="*.i586.rpm"
|
||||
rpmmanagermode=environment ;;
|
||||
*) rpmmanagerdir=../RPMS/$RPMMANAGERARCH
|
||||
rpmmanagermask="*.$RPMMANAGERARCH.rpm"
|
||||
rpmmanagermode=environment ;;
|
||||
|
8
webbuild/webbuild-httpd.conf
Normal file
8
webbuild/webbuild-httpd.conf
Normal file
@ -0,0 +1,8 @@
|
||||
<Directory /var/www/html>
|
||||
Options Indexes FollowSymLinks Includes ExecCGI
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
DirectoryIndex webbuild.html index.html index.php
|
||||
# SSILegacyExprParser on
|
||||
</Directory>
|
||||
Timeout 600
|
@ -2,6 +2,7 @@
|
||||
. /usr/share/autodist/webbuild-functions
|
||||
. /etc/sysconfig/autoport
|
||||
|
||||
export LANG="C.UTF-8"
|
||||
MODE=$1
|
||||
ENVIRONMENT=$2
|
||||
USER=$3
|
||||
@ -150,7 +151,7 @@ else
|
||||
if [ "$MODE" = "binary" ]; then
|
||||
$SUCMDPREFIX ". /etc/profile;cd $WORKINGHOME/RPM/SPECS;$COMMAND;echo \$? > $rettmpfile" 2>&1
|
||||
else
|
||||
$SUCMDPREFIX ". /etc/profile;cd $WORKINGHOME/RPM/SPECS;$COMMAND;echo \$? > $rettmpfile" 2>&1 | tr -d '\f' | tee $cmdtmpfile
|
||||
$SUCMDPREFIX ". /etc/profile;cd $WORKINGHOME/RPM/SPECS;$COMMAND;echo \$? > $rettmpfile" 2>&1 | tr -d '\f' | tee $cmdtmpfile | parse_generic_output
|
||||
fi
|
||||
# sed "s|<|\<|g" |
|
||||
else
|
||||
|
Reference in New Issue
Block a user