mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.1 KiB

  1. #!/bin/bash
  2. if [ "$#" -lt 2 -o -z "$1" -o -z "${1##-*}" ]; then
  3. echo ""
  4. echo "Usage: $0 <pkg-name> <install-command>"
  5. echo ""
  6. echo "E.g.:"
  7. echo ""
  8. echo " cd /usr/local/src/foobar-1.0"
  9. echo " ./configure && make"
  10. echo " mkpkg foobar make install"
  11. echo ""
  12. exit 1
  13. fi
  14. pkg=$1; shift
  15. slog=`mktemp` wlog=`mktemp` flog=`mktemp`
  16. strace -o $slog -F -f -q -e open,creat,`
  17. `mkdir,mknod,link,symlink,rename,utime,chdir,`
  18. `execve,fork,vfork,_exit -p $$ &
  19. strace_pid=$!; sleep 1; cd $PWD
  20. "$@"
  21. sleep 1; kill -INT $strace_pid; sleep 1
  22. /usr/lib/fl_stparse -w $wlog < $slog
  23. touch /var/adm/flists/$pkg
  24. /usr/lib/fl_wrparse -s -r / -p "$pkg" < $wlog | cat /var/adm/flists/$pkg - |
  25. egrep -v '^[^ ]+: (dev|proc|tmp)(/|$)' | sort -u > $flog
  26. cat $flog > /var/adm/flists/$pkg
  27. cd /
  28. cut -f2- -d' ' < var/adm/flists/$pkg | xargs cksum > var/adm/cksums/$pkg
  29. cut -f2- -d' ' < var/adm/flists/$pkg | xargs md5sum > var/adm/md5sums/$pkg
  30. touch var/adm/{dependencies,descs}/$pkg
  31. echo "Package Name and Version: $pkg 0000 mkpkg" > var/adm/packages/$pkg
  32. echo "[ Created package $pkg with" $( wc -l < $flog ) "files. ]"
  33. rm -f $wlog $slog $flog