Browse Source

Clifford Wolf:


			
			
				rocklinux
			
			
		
Clifford Wolf 20 years ago
parent
commit
0815575e10
7 changed files with 67 additions and 19 deletions
  1. +3
    -1
      Documentation/Developers/PKG-BUILD-VARS
  2. +28
    -7
      misc/tools-source/descparser.c
  3. +1
    -1
      scripts/Build-Pkg
  4. +3
    -0
      scripts/Build-Target
  5. +2
    -4
      scripts/Build-Tools
  6. +29
    -6
      scripts/Download
  7. +1
    -0
      scripts/functions

+ 3
- 1
Documentation/Developers/PKG-BUILD-VARS

@ -131,5 +131,7 @@ KCC_WRAPPER_* ..... configuration for Kernel C compiler wrapper
F77_WRAPPER_* ..... configuration for Fortran 77 compiler wrapper
STRIP_WRAPPER_* ... configuration for strip wrapper
ROCKCFG_* ..... configuration from 'Config' file
ROCK_BUILD_TARGET ... set to '1' in Build-Target
ROCKCFG_* ........... configuration from 'Config' file

+ 28
- 7
misc/tools-source/descparser.c

@ -37,6 +37,11 @@ int check_condition(const char *cond)
char *right = strtok(0, " \t\n");
int retcode = 0;
if ( !strcmp(left, "xpkg") && getenv("descparser_ign_xpkg") ) {
free(t);
return 1;
}
if ( !strcmp(op, "==") ) {
char regex[strlen(right)+3];
char *text = getenv(left);
@ -60,14 +65,16 @@ int check_condition(const char *cond)
return retcode;
}
int main()
{
char line[4096];
int condstack[128];
int condcount = -1;
int falselevel = 0;
char line[4096];
int condstack[128];
int condcount = -1;
int falselevel = 0;
void parse_file(FILE *f);
while ( fgets(line, 4096, stdin) ) {
void parse_file(FILE *f)
{
while ( fgets(line, 4096, f) ) {
if (line[0] == '#') {
if ( !strncmp(line, "#if ", 4) ) {
condstack[++condcount] = check_condition(line+4);
@ -86,12 +93,26 @@ int main()
} else
if ( !strncmp(line, "#endif", 6) ) {
if ( !condstack[condcount--] ) falselevel--;
} else
if ( !strncmp(line, "#include ", 9) ) {
FILE *i;
if (strchr(line, '\n')) *strchr(line, '\n') = 0;
i = fopen(line+9, "r");
if (i) {
parse_file(i);
fclose(i);
} else
fprintf(stderr, "Can't #include '%s'.\n", line+9);
}
} else
if ( !falselevel )
fputs(line, stdout);
}
}
int main()
{
parse_file(stdin);
return 0;
}

+ 1
- 1
scripts/Build-Pkg

@ -533,7 +533,7 @@ fi
# ---- Build Package
#
echo_status "Preparing build in src.$pkg.$id"
echo_status "Preparing build in src.$xpkg.$id"
if [ $clear_src = 1 ] ; then
mkdir -p $builddir; chmod 700 $builddir

+ 3
- 0
scripts/Build-Target

@ -59,6 +59,9 @@ fi
. scripts/parse-config
. scripts/functions
# so we can disable stuff not available in Build-Target
export ROCK_BUILD_TARGET=1
build_root="$base/build/$ROCKCFG_ID"
build_rock="$base/build/$ROCKCFG_ID/ROCK"
build_logs="$build_rock/logs" ; mkdir -p "${build_logs}"

+ 2
- 4
scripts/Build-Tools

@ -291,10 +291,8 @@ EOT
# Create pkgmapper script
#
bash scripts/xfind.sh \
architecture/$arch/. package/. target/$target/. misc/ -type f \
-name 'pkgmapper.in' \
-printf '%f\t%p\n' | sort | awk '{ $1="."; print; }' \
bash scripts/xfind.sh package/. -type f -name 'pkgmapper.in' \
-printf '%f\t%p\n' | sort | awk '{ $1="."; print; }' \
> build/$ROCKCFG_ID/ROCK/$toolsdir/lib/pkgmapper.$$
mv build/$ROCKCFG_ID/ROCK/$toolsdir/lib/pkgmapper.$$ \
build/$ROCKCFG_ID/ROCK/$toolsdir/lib/pkgmapper

+ 29
- 6
scripts/Download

@ -196,6 +196,15 @@ fi
#Disable checking for certificates on https downloads
curl_options="$curl_options -k"
# build descparser if needed and run it
descparser() {
if [ ! -f src/descparser ]; then
mkdir -p src
cc -o src/descparser misc/tools-source/descparser.c
fi
cat "$@" | descparser_ign_xpkg=1 src/descparser
}
# cksum_chk filename cksum origfile
#
# This function verifies the checksum. If it fails it renames the file
@ -623,8 +632,8 @@ download_file_now() {
list_dtags() {
{
grep -H '^\[D\] ' package/*/*/*.desc
grep -H '^[X0-9]' target/*/download.txt | sed 's,:,:[D] ,'
descparser package/*/*/*.desc | grep '^\[D\] '
grep -h '^[X0-9]' target/*/download.txt | sed 's,^,[D] ,'
} | column_clean
}
@ -689,7 +698,7 @@ required() {
[ "$forkedpkg" = "$pkg" ] || pkg=$forkedpkg
if [ "$on" = "X" ] ; then
grep -H '^\[D\] ' package/$repo/$pkg/$pkg.desc > src/down.$$.lst
descparser package/$repo/$pkg/$pkg.desc | grep '^\[D\] ' > src/down.$$.lst
while read tag cksum file url flags ; do
download_file "`source_file cksum $file url $flags`" "$url" "$cksum" "$repo" "$pkg"
done < src/down.$$.lst ; rm -f src/down.$$.lst
@ -714,7 +723,7 @@ all() {
while read tag cksum file url flags ; do
download_file "`source_file cksum $file url $flags`" "$url" "$cksum" "$repo" "$pkg"
done < <(grep -H '^\[D\] ' package/$repo/$pkg/$pkg.desc)
done < <(descparser package/$repo/$pkg/$pkg.desc | grep '^\[D\] ')
done
for each in target/*/download.txt; do
@ -761,12 +770,26 @@ packages() {
while read tag cksum file url flags ; do
download_file "`source_file cksum $file url $flags`" \
"$url" "$cksum" "$repo" "$pkg"
done < <(grep -H '^\[D\] ' package/$repo/$pkg/$pkg.desc)
done < <(descparser package/$repo/$pkg/$pkg.desc | grep '^\[D\] ')
;;
esac
done
}
mapped_packages() {
if [ ! -f src/pkgmapper ]
then
mkdir -p src
bash scripts/xfind.sh package/. -type f -name 'pkgmapper.in' \
-printf '%f\t%p\n' | sort | awk '{ $1="."; print; }' > src/pkgmapper
fi
for pkg; do
xpkg=$pkg
. src/pkgmapper
packages $pkg
done
}
# Things to do only for downloading
#
if [ "${1:0:5}" != "-list" -a $checkonly = 0 ]; then
@ -820,7 +843,7 @@ case "$1" in
-*|"") exec $0 --help ;;
*) packages "$@" ;;
*) mapped_packages "$@" ;;
esac
exit 0

+ 1
- 0
scripts/functions

@ -640,6 +640,7 @@ build_this_package() {
else # styles that include a make run
if [ ! -f Makefile -a ! -f makefile -a \
-f Makefile.PL -a $runmkpl = 1 ]; then
sed -i 's/auto_install/# &/' Makefile.PL
perl Makefile.PL INSTALLDIRS=perl
fi
#

Loading…
Cancel
Save