Commit 3ef9d1ba authored by Miller Puckette's avatar Miller Puckette
Browse files

added utility scripts for making releases

parent 81ca1afa
This diff is collapsed.
release checklist
version string in s_main.c
test OSS and ALSA
release notes
./make-release 0.35-0 or 0.35-test11, etc
update rpmspec version number
as root:
rpmbuild -ba rpmspec
rpmbuild -bb rpmspec-alsa
check size of compressed files:
/usr/src/redhat/SRPMS/pd-0.36-0.src.rpm
/usr/src/redhat/RPMS/i386/pd-0.36-0.i386.rpm
/usr/src/redhat/RPMS/i386/pd-alsa-0.36-0.i386.rpm
copy from /usr/src/redhat/RPMS/i386 and /usr/src/redhat/SRPMS
scp ~/pd/doc/1.manual/* felix:public_html/Pd_documentation/
put on web page and on ftp://sdfelix.ucsd.edu/pub/msp
copy README.txt to web page
mail release notice from ../attic
announce to:
pd-announce@iem.kug.ac.at
http://crca.ucsd.edu/~msp/software.html
less formal:
http://crca.ucsd.edu/~msp/Software
http://crca.ucsd.edu/~msp/Software/pd-033TEST7-linux.tar.gz
#!/bin/sh
#usage: ./clone-pd <new directory>
if test x$1 == x
then
echo usage: ./clone ~/tmp/pd1
exit 1
fi
if mkdir $1;
then
cp -a ../src ../obj ../bin $1/
fi
#! /bin/sh
for i in `find . -name "*.[ch]"` ; do
expand $i > /tmp/foo
if ( ! cmp -s $i /tmp/foo ) ; then
echo detabbing: $i
cp /tmp/foo $i
fi
done
#!/bin/sh
#usage: ./get-tgz /tmp/x.tgz /tmp/sent-one.tgz
if test x$1 == x
then
echo usage: ./get-tgz /tmp/x.tgz /tmp/sent-one.tgz
exit 1
fi
rm -rf /tmp/image
mkdir /tmp/image
cd /tmp/image
tar xzf $1
find . -type f \( -name "*.o" -o -name "*.d_fat" -o -name "*.d_ppc" \
-o -perm -0100 \) \
-exec echo rm {} \;
echo "****************** NEW FILES *******************"
find . -type f -newer $2
cd ~/pd
git add INSTALL.txt LICENSE.txt README.txt doc extra man \
portaudio portmidi src msw linux
#!/bin/sh
#usage: ./make-nodoc 0.34-0 or 0.35-0test11 or 0.37-1test6
if test x$1 == x
then
echo usage: ./make-nodoc 0.34-0 or 0.35-0test11 or 0.37-1test6
exit 1
fi
set -x
cd ..
ROOTDIR=`pwd`
find . \( -name ".[a-zA-Z]*" -o -name "core*" -o -name "*.cache" \) \
-ok rm -r {} \;
cd src
sh ../linux/detab-src.sh
cd ../extra
sh ../linux/detab-src.sh
cd ..
TMPPD=/tmp/pd-$1
rm -rf /tmp/pd $TMPPD
mkdir $TMPPD
cp -a README.txt LICENSE.txt INSTALL.txt src extra man \
portaudio portmidi $TMPPD
mkdir $TMPPD/doc
mkdir $TMPPD/doc/7.stuff
mkdir $TMPPD/doc/7.stuff/tools
cp doc/7.stuff/tools/testtone.pd $TMPPD/doc/7.stuff/tools
mkdir $TMPPD/obj $TMPPD/bin
cd $TMPPD/src
autoconf
make distclean
rm -rf autom4te.cache
rm *.pd
cd /tmp
tar cf - pd-$1 | gzip > $ROOTDIR/archive/dist/pd-$1.src.tar.gz
mv pd-$1 pd
tar cf - pd | gzip > /usr/src/redhat/SOURCES/pd.tar.gz
# rm -rf /tmp/pd $TMPPD
ls -l $ROOTDIR/archive/dist/pd-$1.src.tar.gz
#!/bin/sh
#usage: ./make-release 0.34-0 or 0.35-0test11 or 0.37-1test6
if test x$1 == x
then
echo usage: ./make-release 0.34-0 or 0.35-0test11 or 0.37-1test6
exit 1
fi
set -x
cd ..
ROOTDIR=`pwd`
find . \( -name ".[a-zA-Z]*" -o -name "core*" -o -name "*.cache" \) \
-ok rm -r {} \;
cd src
sh ../linux/detab-src.sh
cd ../extra
sh ../linux/detab-src.sh
cd ..
TMPPD=/tmp/pd-$1
rm -rf /tmp/pd $TMPPD
mkdir $TMPPD
cp -a README.txt LICENSE.txt INSTALL.txt src doc extra man \
portaudio portmidi $TMPPD
mkdir $TMPPD/obj $TMPPD/bin
cd $TMPPD/src
autoconf
make distclean
rm -rf autom4te.cache
rm *.pd
cd /tmp
tar cf - pd-$1 | gzip > $ROOTDIR/archive/dist/pd-$1.src.tar.gz
mv pd-$1 pd
tar cf - pd | gzip > /usr/src/redhat/SOURCES/pd.tar.gz
# rm -rf /tmp/pd $TMPPD
ls -l $ROOTDIR/archive/dist/pd-$1.src.tar.gz
Summary: Real-time patchable audio and multimedia processor.
Name: pd
Version: 0.37
Release: 0
Copyright: BSD
Group: Applications/Multimedia
Source: pd.tar.gz
BuildRoot: /var/tmp/%{name}-buildroot
Prefix: %{_prefix}
%description
Pd gives you a canvas for patching together modules that analyze, process,
and synthesize sounds, together with a rich palette of real-time control
and I/O possibilities. Similar to Max (Cycling74) and JMAX (IRCAM). A
related software package named Gem extends Pd's capabilities to include
graphical rendering.
%prep
%setup -n pd
%build
cd src
./configure --disable-alsa --prefix=%{prefix} --mandir=%{_mandir}
make depend
make
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{prefix}/bin
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
mkdir -p $RPM_BUILD_ROOT%{prefix}/lib/pd/include
mkdir -p $RPM_BUILD_ROOT%{prefix}/lib/pd/bin
install -m 644 man/* $RPM_BUILD_ROOT%{_mandir}/man1
install -s -m 4755 bin/pd $RPM_BUILD_ROOT%{prefix}/bin/pd
install -s bin/pd-gui bin/pd-watchdog $RPM_BUILD_ROOT%{prefix}/lib/pd/bin/
install -s bin/pdsend bin/pdreceive $RPM_BUILD_ROOT%{prefix}/bin/
install bin/pd.tk $RPM_BUILD_ROOT%{prefix}/lib/pd/bin/
cp -pr doc $RPM_BUILD_ROOT%{prefix}/lib/pd/
cp -pr extra $RPM_BUILD_ROOT%{prefix}/lib/pd/
install README.txt LICENSE.txt $RPM_BUILD_ROOT%{prefix}/lib/pd/
install src/*.h $RPM_BUILD_ROOT%{prefix}/lib/pd/include
%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%{prefix}/bin/pd
%{prefix}/bin/pdsend
%{prefix}/bin/pdreceive
%{prefix}/lib/pd
%{_mandir}/man1/pd.1.gz
%{_mandir}/man1/pdsend.1.gz
%{_mandir}/man1/pdreceive.1.gz
%changelog
* Tue Apr 14 2001 Fernando Lopez-Lezcano <nando@ccrma.stanford.edu>
- added %{prefix}, added %{_mandir} so that the man pages go into the
correct man directory for redhat
- added %{alsa} for automatic detection of the installed alsa library
- decoupled pd release (ie: PATCH2) from the rpm release
Summary: Real-time patchable audio and multimedia processor.
Name: pd-alsa
Version: 0.37
Release: 0
Copyright: free for any use
Group: Applications/Multimedia
Source: pd.tar.gz
BuildRoot: /var/tmp/%{name}-buildroot
Prefix: %{_prefix}
%description
Pd gives you a canvas for patching together modules that analyze, process,
and synthesize sounds, together with a rich palette of real-time control
and I/O possibilities. Similar to Max (Cycling74) and JMAX (IRCAM). A
related software package named Gem extends Pd's capabilities to include
graphical rendering.
%prep
%setup -n pd
%build
cd src
./configure --prefix=%{prefix} --mandir=%{_mandir}
make depend
make
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{prefix}/bin
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
mkdir -p $RPM_BUILD_ROOT%{prefix}/lib/pd/include
mkdir -p $RPM_BUILD_ROOT%{prefix}/lib/pd/bin
install -m 644 man/* $RPM_BUILD_ROOT%{_mandir}/man1
install -s -m 4755 bin/pd $RPM_BUILD_ROOT%{prefix}/bin/pd
install -s bin/pd-gui bin/pd-watchdog $RPM_BUILD_ROOT%{prefix}/lib/pd/bin/
install -s bin/pdsend bin/pdreceive $RPM_BUILD_ROOT%{prefix}/bin/
install bin/pd.tk $RPM_BUILD_ROOT%{prefix}/lib/pd/bin/
cp -pr doc $RPM_BUILD_ROOT%{prefix}/lib/pd/
cp -pr extra $RPM_BUILD_ROOT%{prefix}/lib/pd/
install README.txt LICENSE.txt $RPM_BUILD_ROOT%{prefix}/lib/pd/
install src/*.h $RPM_BUILD_ROOT%{prefix}/lib/pd/include
%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%{prefix}/bin/pd
%{prefix}/bin/pdsend
%{prefix}/bin/pdreceive
%{prefix}/lib/pd
%{_mandir}/man1/pd.1.gz
%{_mandir}/man1/pdsend.1.gz
%{_mandir}/man1/pdreceive.1.gz
%changelog
* Tue Apr 14 2001 Fernando Lopez-Lezcano <nando@ccrma.stanford.edu>
- added %{prefix}, added %{_mandir} so that the man pages go into the
correct man directory for redhat
- added %{alsa} for automatic detection of the installed alsa library
- decoupled pd release (ie: PATCH2) from the rpm release
File added
nmake
cd ..\extra
del *.dll
cd bonk~
nmake /NOLOGO pd_nt
cd ..\choice
nmake /NOLOGO pd_nt
cd ..\expr~
nmake /NOLOGO pd_nt
cd ..\fiddle~
nmake /NOLOGO pd_nt
cd ..\loop~
nmake /NOLOGO pd_nt
cd ..\lrshift~
nmake /NOLOGO pd_nt
cd ..\pique
nmake /NOLOGO pd_nt
cd ..\sigmund~
nmake /NOLOGO pd_nt
cd ..
#!/bin/tcsh
rm -rf image
mkdir image
cd image
unzip -q /tmp/pdout.zip
find . \( -name "*.lib" -o -name "*.exe" -o -name "*.dll" -o -name "*.obj" \
-o -name "*.exp" \) \
-exec rm {} \;
echo "****************** NEW FILES *******************"
find . -type f -newer /tmp/pd.zip
foreach i (`find . -name "*.c" -o -name "*.h" -o -name "*.cpp" \
-o -name "make*" -o -name "*.txt" -o -name "*.pd" -o -name "*.htm" \
-o -name "*.html" -o -name "*.tk"`)
textconvert w u < $i > /tmp/xxx
mv /tmp/xxx $i
end
makesfx /zip=pd-0.37-1test6.zip /sfx=pd-x.msw.exe /title=Pd /website=crca.ucsd.edu/~msp /defaultpath=$programfiles$
#!/bin/tcsh
set PDDIR=`pwd`/..
set MSWDIR=`pwd`
cd $PDDIR
find . -name ".[a-zA-Z]*" -o -name core -ok rm {} \;
rm -rf /tmp/pd /tmp/pd.zip
cd /tmp
tar xzf $MSWDIR/pdprototype.tgz
cd $PDDIR
cp src/*.{c,h} src/notes.txt /tmp/pd/src
textconvert u w < src/u_main.tk > /tmp/pd/src/u_main.tk
cp src/makefile.nt /tmp/pd/src/makefile
textconvert u w < $MSWDIR/build-nt.bat > /tmp/pd/src/build.bat
cp -a portaudio /tmp/pd/portaudio
cp -a portmidi /tmp/pd/portmidi
cp -a doc/ INSTALL.txt LICENSE.txt /tmp/pd/
cp -a extra/ /tmp/pd/extra
cd /tmp/pd
find . -name "*.pd_linux" -exec rm {} \;
foreach i (`find . -name "*.c" -o -name "*.h" -o -name "*.cpp" -o -name "make*" -o -name "*.txt" -o -name "*.pd" -o -name "*.htm" -o -name "*.html"`)
textconvert u w < $i > /tmp/xxx
mv /tmp/xxx $i
end
cd ..
rm -f pd.zip
zip -q -r pd.zip pd
ls -l /tmp/pd.zip
#!/bin/tcsh
set PDDIR=`pwd`/..
set MSWDIR=`pwd`
cd $PDDIR
find . -name ".[a-zA-Z]*" -o -name core -ok rm {} \;
rm -rf /tmp/pd /tmp/pd.zip
cd /tmp
tar xzf $MSWDIR/pdprototype.tgz
cd $PDDIR
cp src/*.{c,h} src/notes.txt /tmp/pd/src
textconvert u w < src/u_main.tk > /tmp/pd/src/u_main.tk
cp src/makefile.nt /tmp/pd/src/makefile
textconvert u w < $MSWDIR/build-nt.bat > /tmp/pd/src/build.bat
cp -a portaudio /tmp/pd/portaudio
cp -a portmidi /tmp/pd/portmidi
cp -a INSTALL.txt LICENSE.txt /tmp/pd/
mkdir /tmp/pd/doc
mkdir /tmp/pd/doc/7.stuff
mkdir /tmp/pd/doc/7.stuff/tools
cp doc/7.stuff/tools/testtone.pd /tmp/pd/doc/7.stuff/tools
cp -a extra/ /tmp/pd/extra
cd /tmp/pd
find . -name "*.pd_linux" -exec rm {} \;
foreach i (`find . -name "*.c" -o -name "*.h" -o -name "*.cpp" -o -name "make*" -o -name "*.txt" -o -name "*.pd" -o -name "*.htm" -o -name "*.html"`)
textconvert u w < $i > /tmp/xxx
mv /tmp/xxx $i
end
cd ..
rm -f pd.zip
zip -q -r pd.zip pd
ls -l /tmp/pd.zip
/* Text file conversion unix/max/windows. duh. */
#include <stdio.h>
int main(int argc, char **argv)
{
FILE *infile;
int lastchar = 0, c;
int from, to;
if (argc < 3 || argc > 4) goto usage;
from = argv[1][0];
to = argv[2][0];
if (argc == 4)
{
if (!(infile = fopen(argv[3], "r")))
{
perror(argv[3]);
exit(1);
}
}
else infile = stdin;
if (from != 'u' && from != 'm' && from != 'w'
|| to != 'u' && to != 'm' && to != 'w')
goto usage;
while ((c = getc(infile)) != EOF)
{
if (from == 'u' && to == 'm')
{
if (c == '\n')
c = '\r';
putchar(c);
}
else if (from == 'u' && to == 'w')
{
if (c == '\n')
putchar('\r');
putchar(c);
}
else if (from == 'm' && to == 'u')
{
if (c == '\r')
c = '\n';
putchar(c);
}
else if (from == 'm' && to == 'w')
{
putchar(c);
if (c == '\r')
putchar('\n');
}
else if (from == 'w' && to == 'u')
{
if (c != '\r')
putchar(c);
}
else if (from == 'w' && to == 'm')
{
if (c != '\n')
putchar(c);
}
else putchar(c);
}
exit(0);
usage:
fprintf(stderr, "usage: textconvert <sysfrom> <systo> [file]\n");
fprintf(stderr, "systems are u[nix], m[ac], w[indows].\n");
exit (1);
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment