CVS: theedge/var/lib/lunar/functions main.lunar, NONE,
1.1 build.lunar, 1.1, 1.2 depends.lunar, 1.8,
1.9 download.lunar, 1.17, 1.18 install.lunar, 1.1,
1.2 modules.lunar, 1.19, 1.20 moonbase.lunar, 1.7,
1.8 optimize.lunar, 1.35, 1.36 prune.lunar, 1.2,
1.3 sizes.lunar, 1.1.1.1, 1.2 sources.lunar, 1.7,
1.8 tracking.lunar, 1.1, 1.2 uniqid.lunar, 1.1,
1.2 updatelog.lunar, 1.8, 1.9
sofar at lunar-linux.org
sofar at lunar-linux.org
Sun Jul 13 20:49:57 GMT 2003
Update of /var/cvs/lunar/theedge/var/lib/lunar/functions
In directory dbguin.lunar-linux.org:/tmp/cvs-serv18149/var/lib/lunar/functions
Modified Files:
build.lunar depends.lunar download.lunar install.lunar
modules.lunar moonbase.lunar optimize.lunar prune.lunar
sizes.lunar sources.lunar tracking.lunar uniqid.lunar
updatelog.lunar
Added Files:
main.lunar
Log Message:
Hi,
this is not a mailbox flood, but rather something I've been working on for
about 3.4 weeks now. Some fundamental things have changed in the code and
from the outside not much may have changed, but this is a 2400 line merge!
Biggest differences is in the function calling and temporary file generation,
which now has a complete unique ID and gets cleaned up better. All major
functions have been rewritten to handle $@ and return data over STDOUT.
Upgrading and installing multiple modules has been rewritten, all frontends
are now true frontends (no standard code in there anymore).
I added some gadgets for CVS options thanks to jol, and there's a framework
for downloading code from SVN:// urls, which I haven't been able to check
yet... someone please try.
some gaps still remain, this *IS* theedge. I suspect resurrect behaviour to
be broken, as well as the download monitoring (but at least it works). At
least I'll be able to track most of the bugs now pretty fast, as I know
where there still is more work to do...
Noted also that md5sum checking was down in theedge up to this one, as for
quite some few other bugs... should be all fixed I hope.
Please make sure that you run the theedge code for testing, I really need
the feedback on this in the coming 2 weeks.
Thanks,
sofar
PS fortune of the day:
Live fast, die young, and leave a flat patch of fur on the highway!
-- The Squirrels' Motto (The "Hell's Angels of Nature")
--- NEW FILE: main.lunar ---
############################################################
# #
# This code is written for Lunar Linux, see #
# http://www.lunar-linux.org #
# #
############################################################
# #
# $FUNCTIONS/main.lunar #
# contains all main handling code, aka the long complex #
# functions like renew, update, fix, etc. One day they all #
# will be in here. #
# #
############################################################
# #
# Copyrighted Auke Kok 2003 under GPLv2 #
# #
############################################################
# function : renew
# usage : renew
# purpose : frontend function that includes all renewing code
renew() {
message "${MESSAGE_COLOR}Starting update of installed modules${DEFAULT_COLOR}"
purge_modules
export TMP_LIN_SUCCESS=$(temp_create "successfull")
export TMP_LIN_FAIL=$(temp_create "failed")
update_modules
if [ "$AUTOFIX" == "on" ] ; then
message "${MESSAGE_COLOR}Executing AUTOFIX : lin --fix${DEFAULT_COLOR}"
lin --fix
fi
if [ "$AUTOPRUNE" == "on" ] ; then
message "${MESSAGE_COLOR}Executing AUTOPRUNE : lunar prune${DEFAULT_COLOR}"
prune
fi
display_update_log
temp_destroy $TMP_LIN_SUCCESS
temp_destroy $TMP_LIN_FAIL
}
update() {
if ps -C lin > /dev/null; then
echo "Unable to update lunar concurrently while installing."
sleep 5
return 1
fi
lin moonbase
if (( $(lvu installed $LUNAR_MODULE) < $(lvu version $LUNAR_MODULE) ))
then
lin $LUNAR_MODULE && lunar renew
else
lunar renew
fi
}
rebuild() {
rm -f $INSTALL_QUEUE
message "To do a non recursive rebuild"
message "all installed modules must be fixed first."
sleep 3
$LIN --fix
for LINE in `cat $MODULE_STATUS_BACKUP`; do
MODULE=`echo "$LINE" | cut -d : -f1`
STATUS=`echo "$LINE" | cut -d : -f3`
if [ "$STATUS" == "installed" ] &&
[ "$MODULE" != "$LUNAR_MODULE" ]; then
echo $MODULE >> $INSTALL_QUEUE
fi
done
message "Sorting the dependencies, that may take some time"
sort_install_queue
unset MODULE
if query "Edit Rebuild/Install Queue?" n
then edit_file $INSTALL_QUEUE
fi
$LIN --compile `cat $INSTALL_QUEUE`
rm -f $INSTALL_QUEUE
}
# function : prune
# usage : prune
# purpose : prune all old logs, source copy's, install caches
prune() {
message "${MESSAGE_COLOR}Generating a keep list..." \
"${DEFAULT_COLOR}"
KEEP="/tmp/prune.keep.$$"
trap "rm -f $KEEP 2>/dev/null; exit" INT QUIT TERM
generate_keep_list
message "${MESSAGE_COLOR}Now pruning $SOURCE_CACHE..." \
"${DEFAULT_COLOR}"
ls $SOURCE_CACHE |
while read FILE; do
grep -q "^$FILE$" $KEEP || {
rm $SOURCE_CACHE/$FILE 2>/dev/null
verbose_msg "rm \"$SOURCE_CACHE/$FILE\""
}
done
message "${MESSAGE_COLOR}Now pruning $INSTALL_CACHE..." \
"${DEFAULT_COLOR}"
ls $INSTALL_CACHE |
while read FILE; do
grep -q "^$FILE$" $KEEP || {
rm $INSTALL_CACHE/$FILE 2>/dev/null
verbose_msg "rm \"$INSTALL_CACHE/$FILE\""
}
done
KEEP2="/tmp/prune.instlist.$$"
trap "rm -f $KEEP2 2>/dev/null; exit" INT QUIT TERM
cat $MODULE_STATUS | cut -d: -f1,4 | sed 's/:/-/' > $KEEP2
message "${MESSAGE_COLOR}Now pruning $INSTALL_LOGS..." \
"${DEFAULT_COLOR}"
ls $INSTALL_LOGS |
while read FILE; do
grep -q "^$FILE$" $KEEP2 || {
rm $INSTALL_LOGS/$FILE
verbose_msg "rm \"$INSTALL_LOGS/$FILE\""
}
done
message "${MESSAGE_COLOR}Now pruning $COMPILE_LOGS..." \
"${DEFAULT_COLOR}"
ls $COMPILE_LOGS | sed 's/.bz2$//' |
while read FILE; do
grep -q "^$FILE$" $KEEP2 || {
rm $COMPILE_LOGS/$FILE.bz2
verbose_msg "rm \"$COMPILE_LOGS/$FILE\""
}
done
message "${MESSAGE_COLOR}Now pruning $MD5SUM_LOGS..." \
"${DEFAULT_COLOR}"
ls $MD5SUM_LOGS |
while read FILE; do
grep -q "^$FILE$" $KEEP2 || {
rm $MD5SUM_LOGS/$FILE
verbose_msg "rm \"$MD5SUM_LOGS/$FILE\""
}
done
rm -f $KEEP 2>/dev/null
rm -f $KEEP2 2>/dev/null
trap INT QUIT TERM
}
resurrect_modules() {
for MODULE in $@ ; do
if run_details $MODULE ; then
resurrect $MODULE
fi
done
}
Index: build.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/build.lunar,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- build.lunar 27 Apr 2003 17:24:56 -0000 1.1
+++ build.lunar 13 Jul 2003 20:49:54 -0000 1.2
@@ -195,8 +195,7 @@
}
-default_config()
-{
+default_config() {
verbose_msg "running \"default_config\""
verbose_msg "CFLAGS=\"$CFLAGS\"" &&
@@ -283,8 +282,7 @@
unlock_file $MODULE_STATUS_BACKUP &&
unlock_file $MODULE_STATUS
- if [ -n "$EXILE" ];
- then
+ if [ -n "$EXILE" ] ; then
lock_file $MODULE_STATUS &&
lock_file $MODULE_STATUS_BACKUP &&
echo "$1::exiled:0.0" >> $MODULE_STATUS &&
@@ -301,6 +299,7 @@
fi
}
+
# function: add_module
# usage : add_module <module_name>
# purpose : adds the 1st parameter as the module name to the MODULE_STATUS files
@@ -322,17 +321,14 @@
fi
true
-
}
push_install_queue() {
-
remove_queue $REMOVE_QUEUE "$1"
remove_queue $INSTALL_QUEUE "$1"
! module_installed "$1" &&
add_queue $INSTALL_QUEUE "$1"
-
}
@@ -342,7 +338,6 @@
remove_queue $REMOVE_QUEUE "$1"
module_installed "$1" &&
add_queue $REMOVE_QUEUE "$1"
-
}
@@ -351,115 +346,126 @@
# purpose : sorts the install queue according to the dependencies
sort_install_queue() {
- if ! [ -s $INSTALL_QUEUE ]; then return; fi
-
- message "${MESSAGE_COLOR}Sorting module dependencies...${DEFAULT_COLOR}"
-
- export TMP_DEPENDS="/tmp/lunar_tmp_depends.$$"
- rm -f $TMP_DEPENDS 2>/dev/null
-
- export TMP_INSTALL="/tmp/lunar_install_queue.$$"
- rm -f $TMP_INSTALL 2>/dev/null
-
- cp $INSTALL_QUEUE $TMP_INSTALL || return 1
- for MODULE in `cat $TMP_INSTALL`; do
+ for MODULE in $@; do
+ QUEUE="$QUEUE $MODULE"
show_fancy_progress "Processing: $MODULE"
- find_depends $MODULE
+ for DEP in $(find_depends $MODULE) ; do
+ if $(echo "$@" | grep -qw "$DEP") ; then
+ QUEUE="$DEP $QUEUE"
+ fi
+ done
done
- for LINE in `tsort $TMP_DEPENDS 2>/dev/null`; do
- if grep -q "^$LINE\$" $TMP_INSTALL 2>/dev/null; then
- remove_queue $INSTALL_QUEUE $LINE
- add_queue $INSTALL_QUEUE $LINE
- fi
- done
- rm -f $TMP_DEPENDS 2>/dev/null
- rm -f $TMP_INSTALL 2>/dev/null
+ echo $QUEUE | tsort
}
-# function : update_installed
-# usage : update_installed
-# purpose : add the packages which will be updated into the INSTALL_QUEUE
-update_installed() {
- message "${MESSAGE_COLOR}Searching installed modules for upgrade..." \
- "${DEFAULT_COLOR}"
- rm -f $INSTALL_QUEUE
- for LINE in $(cat $MODULE_STATUS | grep -v "^moonbase" | sort) ; do
-
- MODULE=$(echo "$LINE" | cut -d : -f1)
- IDATE=$(echo "$LINE" | cut -d : -f2)
- STATUS=$(echo "$LINE" | cut -d : -f3)
- IVERSION=$(echo "$LINE" | cut -d : -f4)
-
- show_fancy_progress "Processing: $MODULE"
-
- if [ "$STATUS" == "installed" ] ; then
-
- if ! run_details $MODULE &> /dev/null ; then
-
- message "${MODULE_COLOR}$MODULE${DEFAULT_COLOR}${MESSAGE_COLOR} was removed from ${FILE_COLOR}${MOONBASE}${DEFAULT_COLOR}"
-
- if query "Do you want to remove ${MODULE_COLOR}$MODULE${DEFAULT_COLOR}${QUERY_COLOR} ?" y ; then
- lrm $MODULE
- continue
- else
- message "${MODULE_COLOR}$MODULE${DEFAULT_COLOR}${MESSAGE_COLOR} is kept and can be removed manually later${DEFAULT_COLOR}"
- echo
- fi
-
+# function : purge_modules
+# usage : purge_modules
+# purpose : purge modules that were removed from moonbase
+purge_modules() {
+ verbose_msg "Discovering modules that were removed from moonbase"
+ for MODULE in $(list_installed | grep -v "^moonbase$") ; do
+ if ! run_details $MODULE &> /dev/null ; then
+ message "${MODULE_COLOR}$MODULE${DEFAULT_COLOR}${MESSAGE_COLOR} was removed from ${FILE_COLOR}${MOONBASE}${DEFAULT_COLOR}"
+ if query "Do you want to remove ${MODULE_COLOR}$MODULE${DEFAULT_COLOR}${QUERY_COLOR} ?" y ; then
+ lrm $MODULE
+ continue
else
+ message "${MODULE_COLOR}$MODULE${DEFAULT_COLOR}${MESSAGE_COLOR} is kept and can be removed manually later${DEFAULT_COLOR}"
+ fi
+ fi
+ done
+}
+
+# function : list_expired_modules
+# usage : list_expired_modules
+# purpose : return a list of modules that need to be updated
+list_expired_modules() {
+ for LINE in $(cat $MODULE_STATUS | grep -v "^moonbase" | sort) ; do
+ MODULE=$(echo "$LINE" | cut -d: -f1)
+ IDATE=$(echo "$LINE" | cut -d: -f2)
+ STATUS=$(echo "$LINE" | cut -d: -f3)
+ IVERSION=$(echo "$LINE" | cut -d: -f4)
+ if run_details $MODULE ; then
+ if [ "$STATUS" == "installed" ] ; then
if [ "$VERSION" != "$IVERSION" ] || [ -z "$IDATE" ] ||
- (( "$UPDATED" > "$IDATE" )) ; then
+ (( "$UPDATED" > "$IDATE" )) ; then
if [ "$MODULE" != "lunar" ] && [ "$MODULE" != "theedge" ] ; then
- add_queue $INSTALL_QUEUE $MODULE
+ echo $MODULE
fi
- fi
-
- fi
-
+ fi
+ fi
fi
done
- sort_install_queue
}
-# function : upgrade_install_queue
-# usage : upgrade_install_queue
-# purpose : optionally edit INSTALL_QUEUE, install modules, fix and prune
-upgrade_install_queue() {
-
- if [ -f $INSTALL_QUEUE ]; then
- message "The following modules will be updated:"
- cat $INSTALL_QUEUE
- unset MODULE
- if query "Do you wish to edit ${FILE_COLOR}$INSTALL_QUEUE${QUERY_COLOR} ?" n
- then edit_file $INSTALL_QUEUE
+# function : sort_by_dependency
+# usage : LIST=$(sort_by_dependency $LIST)
+# purpose : return a LIST sorted by dependency
+sort_by_dependency() {
+ LIST=$@
+ for MODULE in $LIST ; do
+ unset DEPS
+ for DEP in $(find_depends $MODULE) ; do
+ if $(echo $LIST | grep -qw $DEP) ; then
+ DEPS="$DEPS $DEP"
+ fi
+ done
+ TMP_LIST="$TMP_LIST $DEPS $MODULE"
+ done
+
+ for MODULE in $TMP_LIST ; do
+ if ! $(echo $QUEUE | grep -qw $MODULE) ; then
+ QUEUE="$QUEUE $MODULE"
fi
+ done
- if [ -n "`cat $INSTALL_QUEUE`" ]; then
- export LOGTMP=$$_`date +%s`
- lin `cat $INSTALL_QUEUE`
- rm $INSTALL_QUEUE
- fi
+ echo $QUEUE
+}
- fi
- if [ "$AUTOFIX" == "on" ]; then
- message "${MESSAGE_COLOR}Executing AUTOFIX : lin --fix${DEFAULT_COLOR}"
- lin --fix
+# function : update_modules
+# usage : update_modules
+# purpose : update all installed modules that need to be updated
+update_modules() {(
+
+ export IFS="$STANDARD_IFS"
+
+ verbose_msg "Searching for modules to update"
+ LIST=$(list_expired_modules)
+
+ if [ -z "$LIST" ] ; then
+ verbose_msg "Nothing to update!"
+ return
fi
+
+ verbose_msg "Sorting update queue"
+ QUEUE=$(sort_by_dependency $LIST)
- if [ "$AUTOPRUNE" == "on" ]; then
- message "${MESSAGE_COLOR}Executing AUTOPRUNE : lunar prune${DEFAULT_COLOR}"
- prune
+
+ message "${MESSAGE_COLOR}The following modules will be updated:${DEFAULT_COLOR}"
+ TMP_QUEUE=$(temp_create "update-queue")
+ for MODULE in $QUEUE ; do
+ echo $MODULE >> $TMP_QUEUE
+ echo $MODULE
+ done
+
+ unset MODULE
+ if query "Do you wish to edit the update queue ? " n ; then
+ edit_file $TMP_QUEUE
fi
+ QUEUE=$(cat $TMP_QUEUE)
+ temp_destroy $TMP_QUEUE
- display_update_log update
+ if [ -n "$QUEUE" ] ; then
+ lin -c $QUEUE
+ fi
+)}
-}
log_list() {
@@ -593,7 +599,6 @@
TMP_LOG="/tmp/$MODULE-$VERSION"
INST_LOG="$INSTALL_LOGS/$MODULE-$VERSION"
MD5_LOG="$MD5SUM_LOGS/$MODULE-$VERSION"
- IW_LOG="/tmp/$MODULE.iw"
rm -f $CACHE
rm -f $INST_LOG
Index: depends.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/depends.lunar,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- depends.lunar 8 Jun 2003 19:30:47 -0000 1.8
+++ depends.lunar 13 Jul 2003 20:49:54 -0000 1.9
@@ -29,53 +29,37 @@
# purpose : recursive dependency finder, no need to be installed
function find_depends() {
- verbose_msg "find_depends $@"
- [ -n "$1" ] || return 1
- run_details $1 || return 1
- [ -n "$SCRIPT_DIRECTORY" ] || return 1
-
- REQ_DEPENDS="/tmp/lunar_req_depends.`uuidgen`"
- rm -f $REQ_DEPENDS 2>/dev/null
+ # as always, use private depends() and optional_depends() functions
+ depends () {
+ if ! $(echo $FOUND_DEPENDS | grep -qw $1) ; then
+ export FOUND_DEPENDS="$FOUND_DEPENDS $1"
+ find_depends $1
+ echo $1
+ fi
+ }
- DEPENDS_FILE=$SCRIPT_DIRECTORY/DEPENDS
- [ -s "$DEPENDS_FILE" ] || return 1
-
- grep -q ^depends $DEPENDS_FILE 2>/dev/null && {
- grep ^depends $DEPENDS_FILE 2>/dev/null |
- tr "\t" " " |
- sed "s/^depends *//g" |
- cut -d " " -f 1-1 |
- sed "s/[\'\"\\ &]//g" |
- while read TMP_DEP
- do
- echo $TMP_DEP >> $REQ_DEPENDS
- echo $TMP_DEP $1 >> $TMP_DEPENDS
- done
- }
+ optional_depends() {
+ if ! $(echo $FOUND_DEPENDS | grep -qw $1) ; then
+ if module_installed $1 ; then
+ export FOUND_DEPENDS="$FOUND_DEPENDS $1"
+ find_depends $1
+ echo $1
+ fi
+ fi
+ }
+
+ export FOUND_DEPENDS="$FOUND_DEPENDS $1"
+ if ! run_details $1 ; then
+ exit 1
+ fi
- grep -q ^optional_depends $DEPENDS_FILE 2>/dev/null && {
- grep ^optional_depends $DEPENDS_FILE 2>/dev/null |
- tr "\t" " " |
- sed "s/^optional_depends *//g" |
- cut -d " " -f 1-1 |
- sed "s/[\'\"\\ &]//g" |
- while read TMP_DEP
- do
- echo $TMP_DEP >> $REQ_DEPENDS
- echo $TMP_DEP $1 >> $TMP_DEPENDS
- done
- }
- [ -s "$REQ_DEPENDS" ] && {
- cat $REQ_DEPENDS |
- while read REQ_DEP
- do
- grep -q " $REQ_DEP" $TMP_DEPENDS ||
- find_depends $REQ_DEP
- done
- }
+ if [ -e "$MODULE_CONFIG" ] ; then
+ . "$MODULE_CONFIG"
+ fi
- rm -f $REQ_DEPENDS 2>/dev/null
- rm -f $OPT_DEPENDS 2>/dev/null
+ if [ -x "$SCRIPT_DIRECTORY/DEPENDS" ] ; then
+ . "$SCRIPT_DIRECTORY/DEPENDS"
+ fi
}
@@ -100,17 +84,16 @@
if [ -n "$2" ] ; then
if grep -q "^$1:$2:" $DEPENDS_STATUS ; then
- grep -v "^$1:$2:" $DEPENDS_STATUS_BACKUP > $DEPENDS_STATUS
+ grep -v "^$1:$2:" $DEPENDS_STATUS_BACKUP > $DEPENDS_STATUS
verbose_msg "removing depends for \"$1\" on \"$2\""
- fi
- else
- if grep -q "^$1:" $DEPENDS_STATUS ; then
- grep -v "^$1:" $DEPENDS_STATUS_BACKUP | \
- grep -v ":$1:on:optional:" > $DEPENDS_STATUS
- verbose_msg "removing all depends for and optional on \"$1\""
- fi
+ fi
+ elif grep -q "^$1:" $DEPENDS_STATUS ; then
+ grep -v "^$1:" $DEPENDS_STATUS_BACKUP | \
+ grep -v ":$1:on:optional:" > $DEPENDS_STATUS
+ verbose_msg "removing all depends for and optional on \"$1\""
fi
- cat $DEPENDS_STATUS > $DEPENDS_STATUS_BACKUP
+
+ cp $DEPENDS_STATUS $DEPENDS_STATUS_BACKUP
unlock_file $DEPENDS_STATUS_BACKUP &&
unlock_file $DEPENDS_STATUS
@@ -138,7 +121,7 @@
run_depends() {
# local definitions of depends and optional_depends!
depends() {
- grep -q "^"$1"\$" $PREPD 2>/dev/null && return 0
+ grep -q "^"$1"\$" $TEMP_PREPAREDDEPS 2>/dev/null && return 0
if ! module_installed $1 && ! module_held $1 ; then
if ! is_depends $1 && module_exiled $1 ; then
@@ -148,7 +131,7 @@
"Adding required dependency${FILE_COLOR}" \
"$1 ${DEFAULT_COLOR}"
lin --deps $1
- echo "$1" >> $PREPD
+ echo "$1" >> $TEMP_PREPAREDDEPS
fi
fi
add_depends "$MODULE" "$1" "on" "required" "$2" "$3"
@@ -183,7 +166,7 @@
}
prepare_depends_status
- grep -q "^"$MODULE"\$" $PREPD 2>/dev/null && return 0
+ grep -q "^"$MODULE"\$" $TEMP_PREPAREDDEPS 2>/dev/null && return 0
if [ -x $SCRIPT_DIRECTORY/DEPENDS ]; then
message "${CHECK_COLOR}Checking dependencies for" \
"${MODULE_COLOR}${MODULE}" \
@@ -239,7 +222,7 @@
# base vars needed to execute DEPENDS
SECTION=$(find_section $MODULE)
SCRIPT_DIRECTORY=$MOONBASE/$SECTION/$MODULE
- MODULE_CONFIG=$CONFIG_CACHE/depends/$MODULE
+ MODULE_CONFIG=$DEPENDS_CONFIG/$MODULE
# reroute depends output to our private files:
OLD_DEPENDS_STATUS=$DEPENDS_STATUS
@@ -281,10 +264,10 @@
OLD_OFF_OPTS=$(echo $OLDDEP | cut -d: -f6)
NEW_OFF_OPTS=$(echo $NEWDEP | cut -d: -f6)
if [ -z "$NEWDEP" ] ; then
- echo -e "${MESSAGE_COLOR}* ${MODULE_COLOR}$DEP${DEFAULT_COLOR}${MESSAGE_COLOR} was removed from the dependancy list${DEFAULT_COLOR}"
+ echo -e "${MESSAGE_COLOR}* ${MODULE_COLOR}$DEP${DEFAULT_COLOR}${MESSAGE_COLOR} was removed from the dependency list${DEFAULT_COLOR}"
else
if [ -z "$OLDDEP" ] ; then
- echo -e "${MESSAGE_COLOR}* ${MODULE_COLOR}$DEP${DEFAULT_COLOR}${MESSAGE_COLOR} was added to the $NEW_REQD dependancy list${DEFAULT_COLOR}"
+ echo -e "${MESSAGE_COLOR}* ${MODULE_COLOR}$DEP${DEFAULT_COLOR}${MESSAGE_COLOR} was added to the $NEW_REQD dependency list${DEFAULT_COLOR}"
else
# the dep changed!
if [ "$OLD_STATUS" == "on" -a "$NEW_STATUS" == "on" ]; then
@@ -434,16 +417,15 @@
satisfy_depends() {
[ -n "$DEPS_ONLY" ] && return 0
- unset OPTS
- MODULE_CONFIG=$DEPENDS_CONFIG/$MODULE
-
+ unset OPTS
+
if [ -s $MODULE_CONFIG ]; then
. $MODULE_CONFIG
fi
TMP_FILE="/tmp/satisfy_depends.`uuidgen`"
grep "^$MODULE:" $DEPENDS_STATUS > $TMP_FILE
-
+
while read LINE; do
DEP_MODULE=`echo $LINE | cut -d : -f2`
DEP_STATUS=`echo $LINE | cut -d : -f3`
Index: download.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/download.lunar,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- download.lunar 8 Jun 2003 19:30:47 -0000 1.17
+++ download.lunar 13 Jul 2003 20:49:54 -0000 1.18
@@ -33,6 +33,67 @@
############################################################
+get_svn() {(
+ if ! module_installed subversion ; then
+ message "${PROBLEM_COLOR}Cannot fetch SVN sources without \"subversion\" installed!${DEFAULT_COLOR}"
+ exit 1
+ fi
+
+ message "${MESSAGE_COLOR}Downloading SVN module for" \
+ "module ${MODULE_COLOR}${MODULE}${DEFAULT_COLOR}"
+
+ mk_source_dir /tmp/$MODULE-$VERSION
+ cd /tmp/$MODULE-$VERSION
+
+ if [[ -f $SOURCE_CACHE/$2 ]]; then
+ verbose_msg "Extracting local SVN copy"
+ # unpacking in last component dir of $CVSMODULE
+ CD=$(pwd)
+ if ! tar xjf $SOURCE_CACHE/$2 ; then
+ message "${PROBLEM_COLOR}Warning: bad local SVN copy, checking out fresh SVN copy${DEFAULT_COLOR}"
+
+ rm_source_dir /tmp/$MODULE-$VERSION
+ mk_source_dir /tmp/$MODULE-$VERSION
+ fi
+ fi
+
+ NUM_RETRY=${NUM_RETRY:-5}
+
+ # 0 == infinity
+ if [ $NUM_RETRY -eq 0 ]; then
+ NUM_RETRY=1000
+ fi
+
+ for (( TRY=1 ; $TRY<$NUM_RETRY+1 ; TRY++ )) ; do
+ if [[ -d $(basename $1).svn ]]; then
+ verbose_msg "[${TRY}] svn up $1"
+ svn up $1 && GOT_SVN="yes"
+ elif ! [[ -d $(basename $1).svn ]]; then
+ verbose_msg "[${TRY}] svn co $1"
+ svn co $1 && GOT_SVN="yes"
+ fi
+
+ if [[ "$?" == "0" ]]; then
+ break
+ fi
+
+ sleep 2
+ done
+
+ if [[ "$GOT_SVN" == "yes" ]]; then
+ message "${MESSAGE_COLOR}Creating ${FILE_COLOR}${SOURCE}${DEFAULT_COLOR}"
+ # pack in last component dir of $CVSMODULE
+ tar cjf $SOURCE_CACHE/$2 $(basename $1)
+ else
+ activity_log "lget" "$MODULE" "$VERSION" "failed" "Could not get $1"
+ fi
+
+ cd /tmp
+ rm_source_dir /tmp/$MODULE-$VERSION
+
+)}
+
+
get_cvs() {(
if ! module_installed cvs ; then
message "${PROBLEM_COLOR}Cannot fetch CVS sources without \"cvs\" installed!${DEFAULT_COLOR}"
@@ -47,6 +108,8 @@
CVSSPATH=$(echo $CVSURL | cut -d@ -f2 | cut -d: -f2)
CVSMODULE=$(echo $CVSURL | cut -d@ -f2 | cut -d: -f3)
CVSRELEASE=$(echo $CVSURL | cut -d@ -f2 | cut -d: -f4)
+ CVSOPTIONS=$(echo $CVSURL | cut -d@ -f2 | cut -d: -f5)
+
if [ ! -z $CVSRELEASE ]; then
CVSRELEASE="-r $CVSRELEASE"
@@ -68,7 +131,7 @@
mkdir -p $(dirname $CVSMODULE)
cd $(dirname $CVSMODULE)
if ! tar xjf $SOURCE_CACHE/$2 ; then
- message "${WARNING_COLOR}Warning: bad local CVS copy, checking out fresh CVS copy${DEFAULT_COLOR}"
+ message "${PROBLEM_COLOR}Warning: bad local CVS copy, checking out fresh CVS copy${DEFAULT_COLOR}"
rm_source_dir /tmp/$MODULE-$VERSION
mk_source_dir /tmp/$MODULE-$VERSION
@@ -78,7 +141,7 @@
verbose_msg "CVSROOT=\"$CVSROOT\""
- NUM_RETRY=${NUM_RETRY:=5}
+ NUM_RETRY=${NUM_RETRY:-5}
# 0 == infinity
if [ $NUM_RETRY -eq 0 ]; then
@@ -86,14 +149,12 @@
fi
for (( TRY=1 ; $TRY<$NUM_RETRY+1 ; TRY++ )) ; do
- verbose_msg "${MESSAGE_COLOR}Try: ${TRY}${DEFAULT_COLOR}"
-
if [[ -d $CVSMODULE/CVS ]]; then
- verbose_msg "cvs -qz3 up -PAd $CVSRELEASE $CVSMODULE"
- cvs -qz3 up -PAd $CVSRELEASE $CVSMODULE && GOT_CVS="yes"
+ verbose_msg "[${TRY}] cvs -qz3 up -PAd $CVSOPTIONS $CVSRELEASE $CVSMODULE"
+ cvs -qz3 up -PAd $CVSOPTIONS $CVSRELEASE $CVSMODULE && GOT_CVS="yes"
elif ! [[ -d CVS ]]; then
- verbose_msg "cvs -qz3 co $CVSRELEASE $CVSMODULE"
- cvs -qz3 co $CVSRELEASE $CVSMODULE && GOT_CVS="yes"
+ verbose_msg "[${TRY}] cvs -qz3 co $CVSOPTIONS $CVSRELEASE $CVSMODULE"
+ cvs -qz3 co $CVSOPTIONS $CVSRELEASE $CVSMODULE && GOT_CVS="yes"
fi
if [[ "$?" == "0" ]]; then
@@ -243,11 +304,25 @@
elif [ "$(find $SOURCE_CACHE/$2 -amin +$CVS_THRESHOLD)" == "$SOURCE_CACHE/$2" ] ; then
get_cvs $1 $2
else
- verbose_msg "skipping cvs update (less than $CVS_THRESHOLD mins old)"
+ verbose_msg "Skipping cvs update (less than $CVS_THRESHOLD mins old)"
fi
else
get_cvs $1 $2
fi
+ elif [ "${1:0:6}" == "svn://" ] ; then
+ # svn urls
+ SVN_THRESHOLD=${SVN_THRESHOLD:-10}
+ if [ "SVN_THRESHOLD" > 0 ] ; then
+ if [ ! -f $SOURCE_CACHE/$2 ] ; then
+ get_svn $1 $2
+ elif [ "$(find $SOURCE_CACHE/$2 -amin +$SVN_THRESHOLD)" == "$SOURCE_CACHE/$2" ] ; then
+ get_svn $1 $2
+ else
+ verbose_msg "Skipping svn update (less than $SVN_THRESHOLD mins old)"
+ fi
+ else
+ get_svn $1 $2
+ fi
elif [ "$1:0:7}" == "cpan://" ] ; then
# no way, this cannot be tru
#
@@ -275,13 +350,13 @@
lget_lock() {
- echo $$ > /var/lock/lgetting.$MODULE
+ echo $$ > /var/lock/lgetting.$1
}
lget_locked() {
- if [ -f "/var/lock/lgetting.$MODULE" ] &&
- ps `cat /var/lock/lgetting.$MODULE` | grep -q "lget" ; then
+ if [ -f "/var/lock/lgetting.$1" ] &&
+ ps `cat /var/lock/lgetting.$1` | grep -q "lget" ; then
true
else
false
@@ -290,21 +365,22 @@
lget_unlock() {
- rm -f /var/lock/lgetting.$MODULE &> /dev/null
+ rm -f /var/lock/lgetting.$1 &> /dev/null
}
download_module() { (
-
- run_details $1 || exit 1
+ if ! run_details $1 ; then
+ exit 1
+ fi
MAX_SOURCES=${MAX_SOURCES:=100}
# loop over all sources
for (( N = 0 ; N < MAX_SOURCES ; N++ )) ; do
# get the URL part
- eval SRC=\$$(echo SOURCE$N | sed s/SOURCE0/SOURCE/ )
- eval URLS=\${$(echo SOURCE${N}_URL | sed s/SOURCE0/SOURCE/ )[@]}
+ eval SRC=\$$(echo SOURCE$N | sed s/SOURCE0/SOURCE/ )
+ eval URLS=\${$(echo SOURCE${N}_URL | sed s/SOURCE0/SOURCE/ )[@]}
# continue (to next) if empty once, break if empty tiwce
if [ -z "$SRC" ] ; then
@@ -334,7 +410,7 @@
verbose_msg "trying to download \"$URL\""
get_url $URL $SRC
else
- verbose_msg "skipping download of \"$SRC\" for module \"$MODULE\" (in cache)"
+ verbose_msg "Skipping download of \"$SRC\" for module \"$MODULE\" (in cache)"
continue 2
fi
else
@@ -348,6 +424,8 @@
done
done
+
+ return 0
) }
Index: install.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/install.lunar,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- install.lunar 8 Jun 2003 19:30:47 -0000 1.1
+++ install.lunar 13 Jul 2003 20:49:54 -0000 1.2
@@ -74,29 +74,28 @@
prepare_module_config() {
- MODULE_CONFIG=$DEPENDS_CONFIG/$MODULE
- if [ ! -x $MODULE_CONFIG ]; then
- touch $MODULE_CONFIG
- chmod a+x $MODULE_CONFIG
+ if [ ! -x $MODULE_CONFIG ] ; then
+ touch $MODULE_CONFIG
+ chmod a+x $MODULE_CONFIG
fi
}
run_configure() {
- if [ -n "$RECONFIGURE" ]; then
- rm -f $DEPENDS_CONFIG/$MODULE
- remove_depends $MODULE
+ if [ -n "$RECONFIGURE" ]; then
+ verbose_msg "Reconfiguring \"$MODULE\""
+ rm -f $DEPENDS_CONFIG/$MODULE
+ remove_depends $MODULE
fi
prepare_module_config
- use_xinetd || {
- if [ -n "$RECONFIGURE" ] || ! grep -q INITDSCRIPTS $MODULE_CONFIG ; then
- use_initd
- fi
- }
-
- grep -q "^"$MODULE"\$" $PREPD 2>/dev/null && return 0
+ if ! use_xinetd ; then
+ if [ -n "$RECONFIGURE" ] || ! grep -q INITDSCRIPTS $MODULE_CONFIG ; then
+ use_initd
+ fi
+ fi
+ grep -q "^"$MODULE"\$" $TEMP_PREPAREDDEPS 2>/dev/null && return 0
if [ -x $SCRIPT_DIRECTORY/CONFIGURE ]; then
. $SCRIPT_DIRECTORY/CONFIGURE
fi
@@ -104,22 +103,16 @@
run_pre_build() {
- if [ -f /tmp/$MODULE.iw ] ; then
- verbose_msg echo "removing \"/tmp/$MODULE.iw\""
- rm -f /tmp/$MODULE.iw
- fi
-
- message "${MESSAGE_COLOR}Building" \
- "${MODULE_COLOR}${MODULE}" \
- "${DEFAULT_COLOR}"
+ message "${MESSAGE_COLOR}Building ${MODULE_COLOR}$MODULE${DEFAULT_COLOR}"
- cd $BUILD_DIRECTORY
+ cd $BUILD_DIRECTORY
- verify_sources &&
- if [ -x $SCRIPT_DIRECTORY/PRE_BUILD ]; then
- . $SCRIPT_DIRECTORY/PRE_BUILD
- else
- default_pre_build
+ if verify_sources ; then
+ if [ -x $SCRIPT_DIRECTORY/PRE_BUILD ] ; then
+ . $SCRIPT_DIRECTORY/PRE_BUILD
+ else
+ default_pre_build
+ fi
fi
}
@@ -129,26 +122,26 @@
"${FILE_COLOR}$COMPILE_LOGS/$MODULE-$VERSION.bz2" \
"${DEFAULT_COLOR}"
- bzip2 -9f < $C_LOG > $COMPILE_LOGS/$MODULE-$VERSION.bz2
- rm -f $C_LOG $C_FIFO
- unset C_LOG C_FIFO
+ bzip2 -9f < $C_LOG > $COMPILE_LOGS/$MODULE-$VERSION.bz2
+ temp_destroy $C_LOG
+ temp_destroy $C_FIFO
}
view_compile_log() {
- sleep 1
- report $C_LOG "Compile log"
+ sleep 1
+ report $C_LOG "Compile log"
}
start_logging () {
- export C_LOG=/tmp/$MODULE.compile.log
- export C_FIFO=/tmp/$MODULE.compile.fifo
+ export C_LOG=$(temp_create "${MODULE}_compilelog")
+ export C_FIFO=$(temp_create "${MODULE}_compilefifo")
- rm -f $C_FIFO
- mknod $C_FIFO p
- rm -f $C_LOG
- echo "Compile log for $MODULE $VERSION Built on `date -u`" > $C_LOG
+ # just remaking this as FIFO
+ rm -f $C_FIFO
+ mknod $C_FIFO p
+ echo "Compile log for $MODULE $VERSION Built on `date -u`" > $C_LOG
activate_voyeur
}
@@ -166,10 +159,9 @@
run_build() {
- [ -d "$SOURCE_DIRECTORY" ] &&
- cd $SOURCE_DIRECTORY
-
- invoke_installwatch
+ if [ -d "$SOURCE_DIRECTORY" ] ; then
+ cd $SOURCE_DIRECTORY
+ fi
verbose_msg "building \"$MODULE\" version \"$VERSION\" in `pwd`"
@@ -311,9 +303,9 @@
PASSED="$PASSED$MODULE:"
else
FIXED="no"
- ( run_details
- satisfy_depends
- unset FIX
+ ( run_details $MODULE &&
+ satisfy_depends &&
+ unset FIX &&
satisfy_depends
)
@@ -347,87 +339,31 @@
) }
-process_parameters() {
- while [ -n "$1" ]; do
- if echo "" $1 | grep -q "^ -"; then
- case $1 in
- --deps) export DEPS_ONLY="$1"; shift 1 ;;
- -r|--reconfigure) RECONFIGURE="$1"; shift 1 ;;
- -c|--compile) COMPILE="$1"; shift 1 ;;
- -p|--probe) PROBE="yes"; shift 1 ;;
- --from) export SOURCE_CACHE=$2; shift 2 ;;
- --silent) SILENT="$1"; shift 1 ;;
- -f|--fix) export FIX="$1"; shift 1 ;;
- -n|--nofix) export FIX="--fix"
- export NOFIX="$1"; shift 1 ;;
- -d|--fixdepends) export FIXDEPENDS="$1";
- export FIX="$1"; shift 1 ;;
- -s) SEPARATE="$1"; shift 1 ;;
- --url) export BASE_URL="$2"; shift 2 ;;
- --pam) lin -c `find_pam_aware`; shift 1 ;;
- *) help ;;
- esac
- else
- shift
- fi
- done
-}
-
-
-strip_parameters() {
- while [ -n "$1" ]; do
- if echo "" $1 | grep -q "^ -"; then
- case $1 in
- --deps) shift 1 ;;
- -r|--reconfigure) shift 1 ;;
- --from) shift 2 ;;
- --silent) shift 1 ;;
- -f|--fix) shift 1 ;;
- -n|--nofix) shift 1 ;;
- -d|--fixdepends) shift 1 ;;
- -c|--compile) shift 1 ;;
- -p|--probe) shift 1 ;;
- -s) shift 1 ;;
- --url) shift 2 ;;
- --pam) shift 1 ;;
- *) shift 1 ;;
- esac
- else
- echo $1
- shift
- fi
- done
-}
-
-
-resurrect() { (
- run_details &&
+resurrect() { (
+ if ! run_details $1 ; then
+ return 1
+ fi
run_conflicts &&
satisfy_depends &&
- STATUS=installed
+ STATUS=installed &&
- if module_held $MODULE; then
- VERSION=`installed_version $MODULE`
- STATUS=held
- lrm --keepconfig $MODULE
- fi
+ if module_held $MODULE ; then
+ VERSION=`installed_version $MODULE`
+ STATUS=held
+ lrm --keepconfig $MODULE
+ fi &&
CACHE_BZ="$INSTALL_CACHE/$MODULE-$VERSION-$BUILD.tar.bz2"
- if [ -f $CACHE_BZ ] &&
- bzip2 -tf $CACHE_BZ; then
-
- bzip2 -cd $CACHE_BZ | tar -Pkx 1>/dev/null 2>&1
- add_module $MODULE $STATUS $VERSION
+ if [ -f $CACHE_BZ ] && bzip2 -tf $CACHE_BZ ; then
+ message "${RESURRECT_COLOR}Resurrecting ${MODULE_COLOR}${MODULE}${DEFAULT_COLOR} ${MESSAGE_COLOR}version ${VERSION_COLOR}${VERSION}${DEFAULT_COLOR}"
+ bzip2 -cd $CACHE_BZ | tar -Pkx 1>/dev/null 2>&1
+ add_module $MODULE $STATUS $VERSION
+ verbose_msg "running \"lin --fix $MODULE\""
+ lin --fix $SILENT $MODULE
activity_log "lin" "$MODULE" "$VERSION" "success"
- message "${RESURRECT_COLOR}Resurrected module:" \
- "${MODULE_COLOR}${MODULE}" \
- "${DEFAULT_COLOR}" \
- "version" \
- "${VERSION_COLOR}${VERSION}" \
- "${DEFAULT_COLOR}"
- lin --fix $SILENT $MODULE
+ message "${RESURRECT_COLOR}Resurrected ${MODULE_COLOR}${MODULE}${DEFAULT_COLOR} ${MESSAGE_COLOR}succesfully${DEFAULT_COLOR}"
else
false
fi
@@ -435,28 +371,32 @@
show_download_progress() {
- if [ -f "$D_LOG" ]; then
- if [ -z "$LC_OLD" ]; then
+ if [ -f "$TEMP_DOWNLOADLOG" ] ; then
+ if [ -z "$LC_OLD" ] ; then
LC_OLD=0
fi
- LC=`cat $D_LOG 2>/dev/null | wc -l | tr -d ' '`
+ LC=`cat $TEMP_DOWNLOADLOG 2>/dev/null | wc -l | tr -d ' '`
- if [ "$LC" != "$LC_OLD" ]; then
- (( LC_OLD++ ))
- sed -n ${LC_OLD},${LC}p $D_LOG
+ if [ "$LC" != "$LC_OLD" ] ; then
+ verbose_msg "====== download progess:"
+ (( LC_OLD++ ))
+ sed -n ${LC_OLD},${LC}p $TEMP_DOWNLOADLOG
LC_OLD=$LC
+ verbose_msg "====== end download progress"
fi
fi
}
-show_downloading() {
- while ! lget $MODULE; do
- show_download_progress
- sleep 1
- done
+show_downloading() {
+ if [ -e "$TEMP_DOWNLOADLOG" ] ; then
+ while ! lget $MODULE >> $TEMP_DOWNLOADLOG 2>&1 ; do
+ show_download_progress
+ sleep 1
+ done
show_download_progress
+ fi
}
@@ -467,9 +407,28 @@
lin_module() { (
- if [ $MODULE == "moonbase" ] ; then
+ # make sure we got all the info
+ if ! run_details $1 ; then
+ return 1
+ fi
+
+ if [ "$AUTORESURRECT" == "on" ] ; then
+ if resurrect $MODULE ; then
+ return 0
+ fi
+ fi
+
+ # make sure we have the source code
+ download_module $MODULE
+
+ # set the installwatchfile
+ export INSTALLWATCHFILE=$(temp_create "$MODULE-installwatch")
+ invoke_installwatch
+
+ # lock the module for installation, check for moonbase call
+ linING="/var/lock/installing.$MODULE"
+ if [ "$MODULE" == "moonbase" ] ; then
if ! current_locked && ! solo_locked ; then
- linING="/var/lock/installing.$MODULE"
echo $$ > $linING &&
get_moonbase &&
rm -f $linING &&
@@ -479,11 +438,13 @@
fi
fi
check_blacklist &&
- run_details &&
+
+ # here we run CONFLICTS, DEPENDS and CONFIGURE stuff
run_conflicts &&
satisfy_depends &&
show_downloading &&
-
+
+ # now entering the physical BUILD stage
if ! current_locked && ! solo_locked ; then
echo $$ > $linING &&
if ! [[ $CFLAGS ]] ; then
@@ -507,7 +468,9 @@
stop_logging
if [ -n "$LIN_ERROR" ] ; then
- [ -f /tmp/$MODULE.iw ] && rm -f /tmp/$MODULE.iw
+ if [ -f "$INSTALLWATCHFILE" ] ; then
+ temp_destroy $INSTALLWATCHFILE
+ fi
sound FAILURE
message "${PROBLEM_COLOR}! Problem detected during \"$LIN_ERROR\" !${DEFAULT_COLOR}"
rm -f $linING
@@ -518,12 +481,15 @@
if ! boost ; then
LIN_ERROR="boost"
- [ -f /tmp/$MODULE.iw ] && rm -f /tmp/$MODULE.iw
else
if ! run_post_install ; then
LIN_ERROR="POST_INSTALL"
fi
fi
+ if [ -f "$INSTALLWATCHFILE" ] ; then
+ verbose_msg "removing installwatch file"
+ temp_destroy $INSTALLWATCHFILE
+ fi
if [ -n "$LIN_ERROR" ] ; then
sound FAILURE
@@ -534,9 +500,10 @@
return 1
fi
+
rm_source_dir &&
report_install &&
- rm -f $linING &&
+ rm -f $linING &&
sound SUCCESS &&
activity_log "lin" "$MODULE" "$VERSION" "success"
@@ -588,64 +555,18 @@
}
-lin_modules() {
- for MODULE in $@ ; do
-
- if ! module_installed $MODULE || [ ! -n "$PROBE" ] ; then
- if ! module_held $MODULE ; then
- linING="/var/lock/installing.$MODULE"
- if [ -n "$COMPILE" ] ||
- [ -n "$RECONFIGURE" ] ||
- module_installed $MODULE ||
- ! resurrect $MODULE; then
- if ! lin_module; then
- if [ -n "$LOGTMP" ]; then
- echo "$MODULE" >> /tmp/fail_$LOGTMP
- fi
- lin_EXIT_STATUS=1;
- else
- if [ -n "$LOGTMP" ]; then
- echo "$MODULE" >> /tmp/success_$LOGTMP
- fi
- fi
- fi
- else
- verbose_msg "Skipping compile and install for held module \"$MODULE\""
- fi
- fi
- done
-
- if [ -n "$lin_EXIT_STATUS" ]; then
- exit 1
- fi
-}
-
-
build_depends() {
for MODULE in $@ ; do
if ! module_installed $MODULE || [ ! -n "$PROBE" ] ; then
if ! module_held $MODULE ; then
(
- run_details &&
- run_configure &&
- run_depends &&
+ run_details $MODULE &&
+ run_configure &&
+ run_depends &&
satisfy_depends
)
else
- verbose_msg "Skipping dependancy checking of held module \"$MODULE\""
- fi
- fi
- done
-}
-
-
-build_sources() {
- for MODULE in $@ ; do
- if ! module_installed $MODULE || [ ! -n "$PROBE" ] ; then
- if ! module_held $MODULE ; then
- lget $MODULE >> $D_LOG 2>&1
- else
- verbose_msg "Skipping download check for held module \"$MODULE\""
+ verbose_msg "Skipping dependency checking of held module \"$MODULE\""
fi
fi
done
Index: modules.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/modules.lunar,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- modules.lunar 9 Jun 2003 14:51:24 -0000 1.19
+++ modules.lunar 13 Jul 2003 20:49:54 -0000 1.20
@@ -110,14 +110,16 @@
# usage : create_module_index
# purpose : created an index file of module:section pair list
create_module_index() {
+ # make sure it exists before trying to see it's writeable
+ touch $MODULE_INDEX &> /dev/null
+
# silently fail if we cannot write to $MODULE_INDEX, it is okay
# for this to fail in case we are a mere user using lvu's search
# functionality
- touch $MODULE_INDEX &> /dev/null
-
if [ ! -w $MODULE_INDEX ] ; then
return 0
fi
+
lock_file $MODULE_INDEX || return 1
if [ -f "$MODULE_INDEX" ] ; then
@@ -181,39 +183,32 @@
# function : run_details
-# usage : run_details |module_name| ($MODULE is pre-defined or param)
+# usage : run_details module_name ($MODULE is pre-defined or param)
# purpose : runs the DETAILS file of a module
# returns : (0) on success, (1) on failure, error messages on stdout
run_details() {
+ # Note: run_details doesn't EXIT the code, but merely drops a warning
+ # (return 1), which means that the calling code needs to decide
+ # if this is a problem or not... -sofar
- if [ -z "$MODULE" ] && [ -z "$1" ] ; then
+ if ! SECTION=$(find_section $1) ; then
+ message "${PROBLEM_COLOR}Unable to find module ${MODULE_COLOR}${1}${DEFAULT_COLOR}" \
+ "${PROBLEM_COLOR}in ${FILE_COLOR}$MOONBASE${DEFAULT_COLOR}"
return 1
- elif [ -n "$1" ] ; then
- MODULE="$1"
- fi
-
- if SECTION=$(find_section $MODULE) ; then
- [ -d "$MOONBASE/$SECTION/$MODULE" ] || {
- message "${PROBLEM_COLOR}Unable to find module" \
- "${MODULE_COLOR}${MODULE}${DEFAULT_COLOR}" \
- "${PROBLEM_COLOR}in ${FILE_COLOR}$MOONBASE${DEFAULT_COLOR}"
- return 1
- }
-
- [ -f "$MOONBASE/$SECTION/$MODULE/DETAILS" ] || {
- message "${PROBLEM_COLOR}Module ${MODULE_COLOR}${MODULE}" \
- "${DEFAULT_COLOR}${PROBLEM_COLOR}has no ${FILE_COLOR}DETAILS" \
- "${DEFAULT_COLOR}${PROBLEM_COLOR}file!${DEFAULT_COLOR}"
- return 1
- }
+ else
+ if [ ! -f "$MOONBASE/$SECTION/$1/DETAILS" ] ; then
+ message "${PROBLEM_COLOR}Module ${MODULE_COLOR}${1}" \
+ "${DEFAULT_COLOR}${PROBLEM_COLOR}has no ${FILE_COLOR}DETAILS" \
+ "${DEFAULT_COLOR}${PROBLEM_COLOR}file!${DEFAULT_COLOR}"
+ return 1
+ fi
- SCRIPT_DIRECTORY=$MOONBASE/$SECTION/$MODULE
+ SCRIPT_DIRECTORY=$MOONBASE/$SECTION/$1
. $SCRIPT_DIRECTORY/DETAILS &>/dev/null &&
- SOURCE_DIRECTORY=${SOURCE_DIRECTORY:-$BUILD_DIRECTORY/$MODULE-$VERSION}
+ SOURCE_DIRECTORY=${SOURCE_DIRECTORY:-$BUILD_DIRECTORY/$1-$VERSION}
+ MODULE_CONFIG=${MODULE_CONFIG:-$DEPENDS_CONFIG/$1}
return 0
- else
- return 1
fi
}
@@ -290,6 +285,42 @@
for MODULE in "$@" ; do
grep -v "^$MODULE:" $MODULE_STATUS > $MODULE_STATUS_BACKUP
grep "^$MODULE:" $MODULE_STATUS | sed "s:held:installed:" >> $MODULE_STATUS_BACKUP
+ cp $MODULE_STATUS_BACKUP $MODULE_STATUS
+ done
+ unlock_file $MODULE_STATUS
+ unlock_file $MODULE_STATUS_BACKUP
+ fi
+}
+
+
+# function : exile_modules
+# usage : exile_modules $MODULE [$MODULE....]
+# purpose : put modules on exile
+exile_modules() {
+ if [ -n "$1" ] ; then
+ lock_file $MODULE_STATUS_BACKUP
+ lock_file $MODULE_STATUS
+ for MODULE in "$@" ; do
+ grep -v "^$MODULE:" $MODULE_STATUS > $MODULE_STATUS_BACKUP
+ grep "^$MODULE:" $MODULE_STATUS | sed "s:installed:exiled:" >> $MODULE_STATUS_BACKUP
+ cp $MODULE_STATUS_BACKUP $MODULE_STATUS
+ done
+ unlock_file $MODULE_STATUS
+ unlock_file $MODULE_STATUS_BACKUP
+ fi
+}
+
+
+# function : unexile_modules
+# usage : unexile_modules $MODULE [$MODULE....]
+# purpose : put modules on exile back to normal
+unexile_modules () {
+ if [ -n "$1" ] ; then
+ lock_file $MODULE_STATUS_BACKUP
+ lock_file $MODULE_STATUS
+ for MODULE in "$@" ; do
+ grep -v "^$MODULE:" $MODULE_STATUS > $MODULE_STATUS_BACKUP
+ grep "^$MODULE:" $MODULE_STATUS | sed "s:exiled:installed:" >> $MODULE_STATUS_BACKUP
cp $MODULE_STATUS_BACKUP $MODULE_STATUS
done
unlock_file $MODULE_STATUS
Index: moonbase.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/moonbase.lunar,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- moonbase.lunar 17 Jun 2003 14:23:42 -0000 1.7
+++ moonbase.lunar 13 Jul 2003 20:49:54 -0000 1.8
@@ -24,10 +24,7 @@
CLEAR_CACHE=on
}
- if [ "$UNIQID" == "" ]; then
- mk_uniqid;
- fi
-
+ # make sure we set these values up front to be sure
run_details
rm -f /tmp/$SOURCE
@@ -39,9 +36,9 @@
mkdir -p $SYSTEM_MOONBASE/zlocal
fi
- wget -O - >/dev/null "www.lunar-linux.org/cgi-bin/houston?loc=$UNIQID"
+ push_uniq_id
- if download_module ; then
+ if download_module $MODULE ; then
echo -e "${MESSAGE_COLOR}Preparing to install ${FILE_COLOR}${SOURCE}" \
"${DEFAULT_COLOR}${MESSAGE_COLOR}...${DEFAULT_COLOR}" &&
mv $SYSTEM_MOONBASE/zlocal/ /var/lib/lunar/.zlocal-backup &&
Index: optimize.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/optimize.lunar,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- optimize.lunar 13 Jun 2003 03:56:37 -0000 1.35
+++ optimize.lunar 13 Jul 2003 20:49:54 -0000 1.36
@@ -25,7 +25,7 @@
. /etc/lunar/local/optimizations
else
verbose_msg "initializing optimizations with hard-coded defaults"
- echo -e PLATFORM=x86 '\n' \
+ echo -e PLATFOM=x86 '\n' \
BUILD=i386-pc-linux-gnu '\n' \
MAKES= '\n' \
COPT= '\n' \
@@ -120,7 +120,7 @@
Fastest) CFLAGS="-O3"
CXXFLAGS="-O3"
;;
- Smaller) CFLAGS="-Os"
+ Small) CFLAGS="-Os"
CXXFLAGS="-Os"
;;
esac
@@ -735,17 +735,6 @@
}
-optimize_cc_warn() {
- for W in ${CC_WARN[@]}; do
- case $W in
- Deprecated)
- CFLAGS="$CFLAGS -Wno-deprecated"
- ;;
- esac
- done
-}
-
-
optimize_ccc_warn() {
for W in ${CCC_WARN[@]}; do
case $W in
@@ -769,7 +758,6 @@
optimize_extra ${XTRA[@]} &&
optimize_stack &&
optimize_fp $FPM &&
- optimize_cc_warn &&
optimize_ccc_warn &&
optimize_ld ${LDF[@]} &&
optimize_addon
@@ -780,7 +768,6 @@
optimize_speed ${SPD[@]} &&
optimize_extra ${XTRA[@]} &&
optimize_fp $FPM &&
- optimize_cc_warn &&
optimize_ccc_warn &&
optimize_ld ${LDF[@]} &&
optimize_addon
@@ -791,7 +778,6 @@
optimize_speed ${SPD[@]} &&
optimize_extra ${XTRA[@]} &&
optimize_fp $FPM &&
- optimize_cc_warn &&
optimize_ccc_warn &&
optimize_ld ${LDF[@]} &&
optimize_addon
@@ -802,7 +788,6 @@
optimize_speed ${SPD[@]} &&
optimize_extra ${XTRA[@]} &&
optimize_fp $FPM &&
- optimize_cc_warn &&
optimize_ccc_warn &&
optimize_ld ${LDF[@]} &&
optimize_addon
@@ -890,11 +875,6 @@
fpm_options &&
menu radiolist &&
FPM=$RESULT
-
- help cc_warn_help &&
- cc_warn &&
- menu checklist &&
- CC_WARN=$RESULT
help ccc_warn_help &&
ccc_warn &&
Index: prune.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/prune.lunar,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- prune.lunar 8 Jun 2003 19:30:47 -0000 1.2
+++ prune.lunar 13 Jul 2003 20:49:54 -0000 1.3
@@ -34,7 +34,7 @@
sources $MODULE >> $KEEP
VERSION=$(installed_version $MODULE)
if [ -z "$VERSION" ] ; then
- VERSION=$(run_details ; echo $VERSION)
+ VERSION=$(run_details $MODULE ; echo $VERSION)
fi
echo $MODULE-$VERSION-$BUILD.tar.bz2 >> $KEEP
done
@@ -42,76 +42,6 @@
echo README >> $KEEP
}
-
-# function : prune
-# usage : prune
-# purpose : prune all old logs, source copy's, install caches
-prune() {
- message "${MESSAGE_COLOR}Generating a keep list..." \
- "${DEFAULT_COLOR}"
-
- KEEP="/tmp/prune.keep.$$"
- trap "rm -f $KEEP 2>/dev/null; exit" INT QUIT TERM
- generate_keep_list
-
- message "${MESSAGE_COLOR}Now pruning $SOURCE_CACHE..." \
- "${DEFAULT_COLOR}"
- ls $SOURCE_CACHE |
- while read FILE; do
- grep -q "^$FILE$" $KEEP || {
- rm $SOURCE_CACHE/$FILE 2>/dev/null
- verbose_msg "rm \"$SOURCE_CACHE/$FILE\""
- }
- done
-
- message "${MESSAGE_COLOR}Now pruning $INSTALL_CACHE..." \
- "${DEFAULT_COLOR}"
- ls $INSTALL_CACHE |
- while read FILE; do
- grep -q "^$FILE$" $KEEP || {
- rm $INSTALL_CACHE/$FILE 2>/dev/null
- verbose_msg "rm \"$INSTALL_CACHE/$FILE\""
- }
- done
-
- KEEP2="/tmp/prune.instlist.$$"
- trap "rm -f $KEEP2 2>/dev/null; exit" INT QUIT TERM
- cat $MODULE_STATUS | cut -d: -f1,4 | sed 's/:/-/' > $KEEP2
-
- message "${MESSAGE_COLOR}Now pruning $INSTALL_LOGS..." \
- "${DEFAULT_COLOR}"
- ls $INSTALL_LOGS |
- while read FILE; do
- grep -q "^$FILE$" $KEEP2 || {
- rm $INSTALL_LOGS/$FILE
- verbose_msg "rm \"$INSTALL_LOGS/$FILE\""
- }
- done
-
- message "${MESSAGE_COLOR}Now pruning $COMPILE_LOGS..." \
- "${DEFAULT_COLOR}"
- ls $COMPILE_LOGS | sed 's/.bz2$//' |
- while read FILE; do
- grep -q "^$FILE$" $KEEP2 || {
- rm $COMPILE_LOGS/$FILE.bz2
- verbose_msg "rm \"$COMPILE_LOGS/$FILE\""
- }
- done
-
- message "${MESSAGE_COLOR}Now pruning $MD5SUM_LOGS..." \
- "${DEFAULT_COLOR}"
- ls $MD5SUM_LOGS |
- while read FILE; do
- grep -q "^$FILE$" $KEEP2 || {
- rm $MD5SUM_LOGS/$FILE
- verbose_msg "rm \"$MD5SUM_LOGS/$FILE\""
- }
- done
-
- rm -f $KEEP 2>/dev/null
- rm -f $KEEP2 2>/dev/null
- trap INT QUIT TERM
-}
Index: sizes.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/sizes.lunar,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- sizes.lunar 21 Aug 2002 00:59:02 -0000 1.1.1.1
+++ sizes.lunar 13 Jul 2003 20:49:54 -0000 1.2
@@ -21,7 +21,7 @@
# purpose : finds the installed size of module in KB
find_module_size()
{
- #this functions checks the packages file if there is already size entry
+ #this functions checks the modules file if there is already size entry
module_size()
{
unset SIZE
Index: sources.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/sources.lunar,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- sources.lunar 8 Jun 2003 19:30:47 -0000 1.7
+++ sources.lunar 13 Jul 2003 20:49:54 -0000 1.8
@@ -23,25 +23,34 @@
sources() { (
MAX_SOURCES=${MAX_SOURCES:=100}
- run_details $1 || return 1
+ if ! run_details $1 ; then
+ return 1
+ fi
for (( CNT=0; CNT<=$MAX_SOURCES; CNT++ )) ; do
TEMP=SOURCE$((CNT))
- eval TEMP=\$${TEMP/SOURCE0/SOURCE}
- eval TEMP2=\$SOURCE$((CNT+1))
- eval TEMP3=\$SOURCE$((CNT+2))
+ TEMP=${TEMP/SOURCE0/SOURCE}
- TEMP1_MD5=${TEMP1}_MD5[@]
- eval TEMP_MD5=\${$TEMP1_MD5}
- TEMP_MD5=${TEMP_MD5:=0}
+ eval SRC1=\$${TEMP}
+ if [ "$2" == "MD5" ] ; then
+ eval SRC_MD5=\$${TEMP}_MD5
+ if [ -z "$SRC_MD5" ] ; then
+ SRC_MD5=0
+ fi
+ fi
- [ -n "$TEMP" ] &&
- echo $TEMP &&
- [ "$2" == "MD5" ] &&
- echo $TEMP_MD5
+ eval SRC2=\$SOURCE$((CNT+1))
+ eval SRC3=\$SOURCE$((CNT+2))
+
+ if [ -n "$SRC1" ] ; then
+ echo $SRC1
+ if [ "$2" == "MD5" ] ; then
+ echo $SRC_MD5
+ fi
+ fi
#if two consequtive empty sources, then break
- [ -z "$TEMP2" ] && [ -z "$TEMP3" ] && {
+ [ -z "$SRC2" ] && [ -z "$SRC3" ] && {
break
}
done
@@ -51,33 +60,35 @@
# function : md5_verify_source
# usage : md5_verify_source filename_1 md5_1, filename_2 md52.....
# purpose : md5 verifies a filename
-md5_verify_source()
-{
- ALL_OK=true
- while [ -n "$2" ]
- do
- verify_source $1 || return 1
+md5_verify_source() {
+ ALL_OK=true
+ while [ -n "$2" ]
+ do
+ if ! verify_source $1 ; then
+ return 1
+ fi
+ if [ "$2" == "0" ] ; then
+ TEMP=0
+ else
verbose_msg "checking md5sum of \"$1\""
-
- [ "$2" == "0" ] &&
- TEMP=0 ||
- TEMP=`md5sum $SOURCE_CACHE/$1 | cut -d " " -f 1-1`
+ TEMP=$(md5sum $SOURCE_CACHE/$1 | cut -d " " -f 1-1)
+ fi
- [ "$TEMP" == "$2" ] || {
- message "${PROBLEM_COLOR}Wrong md5 sum for ${FILE_COLOR}${1}" \
- "${DEFAULT_COLOR}"
- message "${PROBLEM_COLOR}Removing ${FILE_COLOR}${SOURCE_CACHE}/${1}" \
- "${DEFAULT_COLOR}"
- rm -f $SOURCE_CACHE/$1 2>/dev/null &&
- message "${FILE_COLOR}Removed!!${DEFAULT_COLOR}" ||
- message "${PROBLEM_COLOR}Unable to remove!!${DEFAULT_COLOR}"
- ALL_OK=false
- }
+ if [ "$TEMP" != "$2" ] ; then
+ message "${PROBLEM_COLOR}Wrong md5 sum for ${FILE_COLOR}${1}" \
+ "${DEFAULT_COLOR}"
+ message "${PROBLEM_COLOR}Removing ${FILE_COLOR}${SOURCE_CACHE}/${1}" \
+ "${DEFAULT_COLOR}"
+ rm -f $SOURCE_CACHE/$1 2>/dev/null &&
+ message "${FILE_COLOR}Removed!!${DEFAULT_COLOR}" ||
+ message "${PROBLEM_COLOR}Unable to remove!!${DEFAULT_COLOR}"
+ ALL_OK=false
+ fi
- shift 2
- done
- $ALL_OK
+ shift 2
+ done
+ $ALL_OK
}
Index: tracking.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/tracking.lunar,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- tracking.lunar 27 Apr 2003 17:24:56 -0000 1.1
+++ tracking.lunar 13 Jul 2003 20:49:54 -0000 1.2
@@ -35,7 +35,6 @@
# purpose : start logging all disk accesses with installwatch
invoke_installwatch() {
if [ -e /usr/lib/installwatch.so ] ; then
- export INSTALLWATCHFILE=/tmp/$MODULE.iw
export LD_PRELOAD=/usr/lib/installwatch.so
fi
}
@@ -56,9 +55,8 @@
OMIT="^/dev\|^/tmp\|^/usr/src"
OMIT_IN=" rename\| symlink\| unlink"
- grep -v "$OMIT_IN" $IW_LOG | cut -f3 | grep -v "$OMIT"
- cat $IW_LOG | cut -f4 | grep -v "$OMIT" | grep "^/"
-
+ grep -v "$OMIT_IN" $INSTALLWATCHFILE | cut -f3 | grep -v "$OMIT"
+ cat $INSTALLWATCHFILE | cut -f4 | grep -v "$OMIT" | grep "^/"
}
@@ -68,7 +66,7 @@
track() {
message "${MESSAGE_COLOR}Creating ${FILE_COLOR}${INST_LOG}${DEFAULT_COLOR}"
- export IFS="$TAB_ENTER_IFS"
+ export IFS="$TAB_ENTER_IFS"
parse_iw |
sort |
@@ -89,8 +87,7 @@
else grep -v "$MISOWNED_SYMLINKS" $TMP_LOG > $INST_LOG
fi
- verbose_msg "removing \"$IW_LOG\""
- rm -f $IW_LOG $TMP_LOG
+ rm -f $TMP_LOG
}
Index: uniqid.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/uniqid.lunar,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- uniqid.lunar 17 Jun 2003 02:20:48 -0000 1.1
+++ uniqid.lunar 13 Jul 2003 20:49:54 -0000 1.2
@@ -8,8 +8,18 @@
# #
############################################################
-mk_uniqid() {
+push_uniq_id() {
+ if [ "$UNIQID" == "" ]; then
+ create_uniq_id
+ fi
+
+ verbose_msg "registering \"$UNIQID\" with server"
+ wget -O - >/dev/null "www.lunar-linux.org/cgi-bin/houston?loc=$UNIQID" &>/dev/null
+
+}
+
+create_uniq_id() {
if [ $UNIQID >= "" ]; then
return
fi
@@ -19,22 +29,22 @@
if [ "$OS" == "OpenBSD" ]; then
HASH="sha1"
IFACE=`netstat -r | grep default | awk '{print $7}'`
-
elif [ "$OS" == "Linux" ]; then
HASH="md5sum"
IFACE=`netstat -r | grep default | awk '{print $8}'`
-
- else exit 1
-
+ else
+ exit 1
fi
-
- echo "Interface=$IFACE"
UNIQID=`ifconfig $IFACE |\
awk '/addr.*[:]* [0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]/ {print $NF}' |\
tr 'A-Z' 'a-z' | $HASH | awk '{print $1}'`
export UNIQID
+
+ verbose_msg "id(\"$IFACE\")=\"$UNIQID\""
+
echo " UNIQID=$UNIQID" >> $LOCAL_CONFIG
+
}
Index: updatelog.lunar
===================================================================
RCS file: /var/cvs/lunar/theedge/var/lib/lunar/functions/updatelog.lunar,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- updatelog.lunar 27 Mar 2003 17:41:11 -0000 1.8
+++ updatelog.lunar 13 Jul 2003 20:49:54 -0000 1.9
@@ -15,54 +15,46 @@
# #
############################################################
+
# function : display_update_log
# usage : display_update_log update|rebuild
# purpose : display a log describing update successes, failures, and summaries
-
-display_update_log() {
+display_update_log() {
rm -f /var/log/lunar/update
-
{
- display_success_info $1
- if [ "$1" == "update" ]; then
- display_moonbase_changes
- fi
+ if [ -e "$TMP_LIN_SUCCESS" -a -e "$TMP_LIN_FAIL" ] ; then
+ display_success_info
+ fi
+ display_moonbase_changes
} | tee /var/log/lunar/update
-
- rm -f /tmp/fail_$LOGTMP /tmp/success_$LOGTMP
}
+
# function : display_success_info
# usage : display_success_info update|rebuild
# purpose : display a list of update successes and failures
-display_success_info() {
-
- touch /tmp/success_$LOGTMP /tmp/fail_$LOGTMP
+display_success_info() {
- NUMSUCCESS=`cat /tmp/success_$LOGTMP | wc -l`
- NUMFAILURES=`cat /tmp/fail_$LOGTMP | wc -l`
+ NUMSUCCESS=$(cat $TMP_LIN_SUCCESS | wc -l)
+ NUMFAILURES=$(cat $TMP_LIN_FAIL | wc -l)
message
- message "${MESSAGE_COLOR}Lunar $1 completed at `date`${DEFAULT_COLOR}"
- message "Successful ${1}s : " $NUMSUCCESS
- message "Failed ${1}s : " $NUMFAILURES
+ message "${MESSAGE_COLOR}Lunar renew completed at `date`${DEFAULT_COLOR}"
+ message "Successful : " $NUMSUCCESS
+ message "Failed : " $NUMFAILURES
message
if [ "$NUMSUCCESS" -gt "0" ]; then
message "${MESSAGE_COLOR}Successfully updated modules:${DEFAULT_COLOR}"
- cat /tmp/success_$LOGTMP
+ cat $TMP_LIN_SUCCESS
message
fi
if [ "$NUMFAILURES" -gt "0" ]; then
message "${MESSAGE_COLOR}Failed updated modules:${DEFAULT_COLOR}"
- cat /tmp/fail_$LOGTMP
+ cat $TMP_LIN_FAIL
message
fi
-
- if [ "$1" == "update" ]; then
- display_moonbase_changes
- fi
}
More information about the Lunar-commits
mailing list