I just checked, the search in PPM only searches currently-selected repo. Yep, works as expected. I tested by searching for "abiword".
I searched abiword too. It was found in every repo, even those that do not have it such as ubuntu-lucid-main.
I'm pretty sure I have the latest findnames.sh. It shows a modify time of 30 Nov, and a change/access time of 6 Dec. I'm never quite sure what the difference is between "change" and "modify" though. (I'm also assuming this PPM code works in Lupu 511 which is what I'm running.) Here is the code in question:
Code: Select all
#!/bin/sh
#(c) Copyright Barry Kauler 2009, puppylinux.com
#2009 Lesser GPL licence v2 (http://www.fsf.org/licensing/licenses/lgpl.html).
#called from /usr/local/petget/pkg_chooser.sh
# ENTRY1 is a string, to search for a package.
#101129 checkboxes for show EXE DEV DOC NLS. fixed some search bugs.
. /etc/DISTRO_SPECS #has DISTRO_BINARY_COMPAT, DISTRO_COMPAT_VERSION
. /root/.packages/DISTRO_PKGS_SPECS #has PKGS_SPECS_TABLE.
. /root/.packages/DISTRO_PET_REPOS #has PET_REPOS, PACKAGELISTS_PET_ORDER
entryPATTERN='^'"`echo -n "$ENTRY1" | sed -e 's%\\-%\\\\-%g' -e 's%\\.%\\\\.%g' -e 's%\\*%.*%g'`"
CURRENTREPO="`cat /tmp/petget_filterversion`" #search here first.
REPOLIST="${CURRENTREPO} `cat /tmp/petget_active_repo_list | grep -v "$CURRENTREPO" | tr '\n' ' '`"
FNDIT=no
for ONEREPO in $REPOLIST
do
FNDENTRIES="`cat /root/.packages/Packages-${ONEREPO} | grep -i "$entryPATTERN"`"
if [ "$FNDENTRIES" != "" ];then
FIRSTCHAR="`echo "$FNDENTRIES" | cut -c 1 | tr '\n' ' ' | sed -e 's% %%g'`"
#write these just in case needed...
ALPHAPRE="`cat /tmp/petget_pkg_first_char`"
#if [ "$ALPHAPRE" != "ALL" ];then
# echo "$FIRSTCHAR" > /tmp/petget_pkg_first_char
#fi
#echo "ALL" > /tmp/petget_filtercategory
echo "$ONEREPO" > /tmp/petget_filterversion #ex: slackware-12.2-official
#this is read when update TREE1 in pkg_chooser.sh...
echo "$FNDENTRIES" | cut -f 1,10 -d '|' > /tmp/filterpkgs.results
FNDIT=yes
break
fi
done
Note the for loop where the search is done through every repo in the variable REPOLIST. REPOLIST holds every active repo.
At least, it looks like it is searching through every repo, to me. It does break out of the loop the first time it finds something in a repo, but it's not confining itself to the selected repo. It makes it look like every repo has the same searched packages in it, because no matter which repo you select, you always get the same results.
Note also that CURRENTREPO depends on what is in petget_filterversion, but petget_filterversion is modified in the loop. So next time the search happens...