From d1cea3ebf96f61b5bbac1e74975700770e06add6 Mon Sep 17 00:00:00 2001
From: Rusty Russell
Date: Tue, 26 Oct 2010 18:07:22 +1030
Subject: [PATCH 1/1] gitify the tree, especially the web makefile.
---
.bzrignore => .gitignore | 2 ++
Makefile | 2 +-
Makefile-web | 36 +++++++++++++++++-------------------
web/staticindex.php | 40 +++++++++++++++++++---------------------
4 files changed, 39 insertions(+), 41 deletions(-)
rename .bzrignore => .gitignore (93%)
diff --git a/.bzrignore b/.gitignore
similarity index 93%
rename from .bzrignore
rename to .gitignore
index 10cbbc33..cc82ce6a 100644
--- a/.bzrignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
.depends
*.d
+*.o
+ccan/*-Makefile
*~
tools/ccan_depends
tools/doc_extract
diff --git a/Makefile b/Makefile
index 28ea503b..c1f5ea8f 100644
--- a/Makefile
+++ b/Makefile
@@ -94,7 +94,7 @@ libccan.a(%.o): ccan/%.o
$(AR) r $@ $<
clean: tools-clean
- $(RM) `find . -name '*.o'` `find . -name '.depends'` `find . -name '*.a'` `find . -name info` `find . -name '*.d'`
+ $(RM) `find * -name '*.o'` `find * -name '.depends'` `find * -name '*.a'` `find * -name info` `find * -name '*.d'`
$(RM) inter-depends lib-depends test-depends ccan/*-Makefile
# Creates a dependency from the tests to the object files which it needs.
diff --git a/Makefile-web b/Makefile-web
index 472070e2..6079c9d9 100644
--- a/Makefile-web
+++ b/Makefile-web
@@ -2,7 +2,7 @@
WEBDIR=/home/rusty/www/html/ccan
# Ignore EXCLUDE when making webpages.
-REALLY_ALL=$(patsubst ccan/%/_info, %, $(shell bzr ls -R ccan | grep '/_info$$'))
+REALLY_ALL=$(patsubst ccan/%/_info, %, $(wildcard ccan/*/_info))
ALL_PAGES=$(patsubst %, $(WEBDIR)/info/%.html, $(REALLY_ALL))
DIRECT_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/%.tar.bz2, $(REALLY_ALL))
DEPEND_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/with-deps/%.tar.bz2, $(REALLY_ALL))
@@ -10,28 +10,29 @@ WEB_SUBDIRS=$(WEBDIR)/tarballs $(WEBDIR)/junkcode $(WEBDIR)/tarballs/with-deps $
JUNKDIRS=$(wildcard junkcode/*)
JUNKPAGES=$(JUNKDIRS:%=$(WEBDIR)/%.html)
JUNKBALLS=$(JUNKDIRS:%=$(WEBDIR)/%.tar.bz2)
-BZRBROWSE=$(WEBDIR)/bzrbrowse.cgi $(WEBDIR)/file.png $(WEBDIR)/folder.png $(WEBDIR)/symlink.png
-upload: fastcheck webpages
- bzr push
- send-web # Rusty's upload script.
+upload: fastcheck
+ git push origin HEAD:master
-webpages: $(WEB_SUBDIRS) $(WEBDIR)/index.html $(WEBDIR)/upload.html $(WEBDIR)/uploader.php $(WEBDIR)/example-config.h $(WEBDIR)/ccan.jpg $(BZRBROWSE) $(DIRECT_TARBALLS) $(DEPEND_TARBALLS) $(WEBDIR)/ccan.tar.bz2 $(WEBDIR)/Makefile-ccan $(ALL_PAGES) junkpages
+clean-tree:
+ ! git status --porcelain | grep .
-junkpages: $(WEBDIR)/list.html $(WEBDIR)/junkcode $(JUNKPAGES) $(JUNKBALLS)
-$(WEB_SUBDIRS):
+webpages: clean-tree $(WEB_SUBDIRS) $(WEBDIR)/index.html $(WEBDIR)/upload.html $(WEBDIR)/uploader.php $(WEBDIR)/example-config.h $(WEBDIR)/ccan.jpg $(DIRECT_TARBALLS) $(DEPEND_TARBALLS) $(WEBDIR)/ccan.tar.bz2 $(WEBDIR)/Makefile-ccan $(ALL_PAGES) junkpages
+
+junkpages: $(WEBDIR)/list.html $(WEBDIR)/junkcode $(JUNKPAGES) $(JUNKBALLS)
+$(WEB_SUBDIRS): $(WEBDIR)
mkdir -p $@
$(WEBDIR)/junkcode/%.tar.bz2: junkcode/% $(WEBDIR)/junkcode
- (bzr ls --recursive --versioned --kind=file --null $<; bzr ls --recursive --versioned --kind=symlink --null $<) | xargs -0 -x tar cvfj $@
+ git ls-files -z $< | xargs -0 -x tar cvfj $@
$(WEBDIR)/junkcode/%.html: $(WEBDIR)/junkcode/%.tar.bz2
cd $(WEBDIR) && tar xfj junkcode/$*.tar.bz2
php5 web/staticjunkcode.php junkcode/$* $* > $@
-# We want tarball to contain ccan/
-$(WEBDIR)/ccan.tar.bz2: config.h Makefile Makefile-ccan $(shell bzr ls --versioned --kind=file --recursive ccan) $(shell bzr ls --versioned --recursive --kind=file tools) $(shell bzr ls --versioned --kind=symlink --recursive ccan) $(shell bzr ls --versioned --recursive --kind=symlink tools)
- DIR=`pwd` && cd /tmp && ln -sf "$$DIR" ccan && tar cvfj $@ `for f in $^; do echo ccan/$$f; done` && rm ccan
+# We want tarball to contain ccan/; we put junkcode in, but don't depend on it.
+$(WEBDIR)/ccan.tar.bz2: config.h Makefile Makefile-ccan $(shell git ls-files ccan tools licenses)
+ DIR=`pwd` && cd /tmp && ln -sf "$$DIR" ccan && tar cvfj $@ `for f in $^; do echo ccan/$$f; done` ccan/junkcode && rm ccan
$(ALL_PAGES): tools/doc_extract web/staticmoduleinfo.php
@@ -57,17 +58,14 @@ $(WEBDIR)/Makefile-ccan: Makefile-ccan
$(WEBDIR)/ccan.jpg: web/ccan.jpg
cp $< $@
-$(BZRBROWSE): $(WEBDIR)/%: web/bzrbrowse/%
- cp $< $@
-
$(WEBDIR)/info/%.html: $(WEBDIR)/tarballs/%.tar.bz2 $(WEBDIR)/tarballs/with-deps/%.tar.bz2
URLPREFIX=../ php5 web/staticmoduleinfo.php `pwd`/ccan/$* > $@
-$(WEBDIR)/tarballs/%.tar.bz2: ccan/%/_info
- tar -c -j -f $@ `bzr ls --recursive --versioned --kind=file ccan/$*` `bzr ls --recursive --versioned --kind=symlink ccan/$*` $$(for l in $$(bzr ls --recursive --versioned --kind=symlink ccan/$* | xargs -r ls -l | sed 's,.*/,,'); do echo licenses/$$l; done | sort -u)
+$(WEBDIR)/tarballs/%.tar.bz2: ccan/%/_info clean-tree
+ tar -c -j -f $@ $$(git ls-files ccan/$*) $$(git ls-files ccan/$* | xargs -n1 -r readlink | sed -n 's,^../../,,p' | sort -u)
-$(WEBDIR)/tarballs/with-deps/%.tar.bz2: ccan/%/_info tools/ccan_depends
- tar cfj $@ $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) | xargs -n 1 bzr ls --recursive --versioned --kind=file) $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) | xargs -n 1 bzr ls --recursive --versioned --kind=symlink) $$(for l in $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) | xargs -r -n 1 bzr ls --recursive --versioned --kind=symlink | xargs -r ls -l | sed 's,.*/,,'); do echo licenses/$$l; done | sort -u)
+$(WEBDIR)/tarballs/with-deps/%.tar.bz2: ccan/%/_info tools/ccan_depends clean-tree
+ tar -c -j -f $@ $$(git ls-files $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) ) ) $$(git ls-files $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) ) | xargs -n1 -r readlink | sed -n 's,^../../,,p' | sort -u)
distclean: distclean-web
diff --git a/web/staticindex.php b/web/staticindex.php
index 9e8f1935..0a521023 100644
--- a/web/staticindex.php
+++ b/web/staticindex.php
@@ -18,33 +18,36 @@ CCAN is loosely modelled after the successful CPAN pro
for Perl code development and sharing.
-Getting The Code
+Get The Code
+ You can get each module as a tarball (see
+list), get a tarball of the whole repository with tools,
+or clone our git repository (git clone git://git.ozlabs.org/~ccan/ccan).
+
+
+Use The Code
-Once you grab some modules, there are two basic
-ways to use it:
+There are two ways to use it:
-- Just hack it to compile in your project.
+
- Put modules into a ccan/ subdirectory into your project. Add a "config.h" (like
+ this example) and compile every .c file
+ in ccan/* (as in this Makefile)).
-
- Use it in place by giving it a "config.h" (steal
- this example) and compiling all the .c
- files (simply, or as in this Makefile).
+
- Alternatively, just hack whatever parts you want so it compiles in
+your project.
+Add Code
-There's also a
-Bazaar repository for all the CCAN
-infrastructure at http://ccan.ozlabs.org/repo (browse).
+We always welcome new code! Copy an existing module and run the "ccanlint"
+tool over it, or just send any code you have lying around any let someone
+else polish it up.
-Module Contributions
-
-
-We welcome new code! The guide to creating new modules is a work in
-progress (just copy an existing module), but anyone can send code to
+
Anyone can send code or a git pull request to
the friendly
-mailing list or just upload it.
+mailing list or just upload it using the web form.
@@ -67,10 +70,5 @@ We also have an IRC channel: #ccan on Freenode
We also have a wiki; feel free to enhance it.
-
-
-Rusty Russell
-
-