diff --git a/pkg_builder/Makefile b/pkg_builder/Makefile new file mode 100644 index 0000000..32ffce8 --- /dev/null +++ b/pkg_builder/Makefile @@ -0,0 +1,147 @@ +# Main Info +NAME = gitlist +DESCRIPTION = "An elegant and modern git repository viewer" +LICENSE = New BSD +GROUP = gitlist +VENDOR = gitlist.org +URL = "http://www.gitlist.org" + +#BUILD Info +PREFIX = /usr/share +PROJROOT = "$(shell pwd)" +SRCROOT = "$(shell pwd)/gitlist" +UPSTREAM_VERSION = $(shell cat tools/release.info | head -n1 | cut -d"=" -f2) +BUILD_STAMP = $(shell date +"%Y%m%d%H%M%S") + +#Packager Info +PACKAGER = $(shell git config user.name) +PACKAGER_MAIL = $(shell git config user.email) + +#Debian Package Info +PACKAGE-VERSION= 1 +DEBIAN_BUILD_ROOT = ${PROJROOT}/debian/ +PROJECT_DEBIAN_LIKE_NAME=$(shell cat tools/release.info | grep name | cut -d"=" -f2) +DEBIAN_NAME=$(PROJECT_DEBIAN_LIKE_NAME)$(shell echo "_")$(UPSTREAM_VERSION)-${PACKAGE-VERSION}$(shell echo "_all.deb") +DEBIAN_VERSION = +# Generating control file +define control +Package: $(PROJECT_DEBIAN_LIKE_NAME) +Version: $(UPSTREAM_VERSION)-${PACKAGE-VERSION} +Architecture: all +Section: web +Priority: optional +Maintainer: "${PACKAGER} <${PACKAGER_MAIL}>" +Description: ${DESCRIPTION} +endef +export control + +all: + @echo "... $(UPSTREAM_VERSION)" + @echo "... $(PACKAGER)" + @echo "... $(PACKAGER_MAIL)" + @echo "... $(DEBIAN_NAME)" + +help: + @echo "To use this make file just:" + @echo "Download the gitlist tarball and stract it into a folder called gitlist" + @echo "make [build_deb|build_rpm|build(apache|nginx|lighthttp)]" + +clean_deb: + @echo "Cleaning . . ." + @rm -rf ${DEBIAN_BUILD_ROOT}/*.deb + @rm -rf ${PROJROOT}/debian + +prepare_deb: clean_deb + @echo "############################### - Building DEB" + @mkdir ${DEBIAN_BUILD_ROOT} -pv + @mkdir ${DEBIAN_BUILD_ROOT}/DEBIAN -pv + @mkdir ${DEBIAN_BUILD_ROOT}${PREFIX}/${PROJECT_DEBIAN_LIKE_NAME} -pv + +copy_deb_files: prepare_deb + @echo "$$control" > ${DEBIAN_BUILD_ROOT}/DEBIAN/control + +copy_deb: copy_deb_files + @echo Sync files + @rsync -avz ${SRCROOT} ${DEBIAN_BUILD_ROOT}${PREFIX}/ + +md5sum_deb: copy_deb + @cd debian; find . -type f ! -regex '.*\.hg.*' ! -regex '.*?debian-binary.*' ! -regex '.*?DEBIAN.*' | xargs -d "\n" md5sum > DEBIAN/md5sums + +deb_uniq: md5sum_deb + @mkdir ${PROJROOT}/pkg -p + @dpkg -b debian $(DEBIAN_NAME); + @mv $(DEBIAN_NAME) ${PROJROOT}/pkg/ + @rm debian -rf + @echo '### Wrote $(DEBIAN_NAME) in ${PROJROOT}/pkg/ . . . . . Success' + + +build_deb: deb_uniq + +#### RPM STUFF + +RPM_NAME=$(PROJECT_DEBIAN_LIKE_NAME)$(shell echo "_")$(UPSTREAM_VERSION)-${PACKAGE-VERSION}$(shell echo "_all.rpm") + +DIST_DIR = dist +TAR_DIR = tar + +RPM_DIR = rpm +RPM_DIRS = SPECS RPMS SOURCES BUILD + +clean_rpm: + @echo Cleaning temporary dirs... + @rm -rf $(TAR_DIR) + @rm -rf $(RPM_DIR) + @rm -rf $(DIST_DIR) + +rpm_init: clean_rpm + @echo Creating directories... + @echo $(DIST_DIR) + @mkdir -p $(DIST_DIR) + @for dir in $(RPM_DIRS); do \ + echo $(RPM_DIR)/$$dir; \ + mkdir -p $(RPM_DIR)/$$dir; \ + done + +rpm_preptar: rpm_init + @echo Copying files to generate tar... + @echo creating directory: $(TAR_DIR)/ + @mkdir $(TAR_DIR)/ -p + @rsync -avz --exclude ".git" --exclude ".gitignore" --exclude "builder" gitlist $(TAR_DIR)/ + +rpm_tar: rpm_preptar + @echo Generating tarball... + @cd $(PROJROOT)/$(TAR_DIR); \ + tar cf $(PROJROOT)/$(RPM_DIR)/SOURCES/$(NAME).tar . + +rpm: rpm_tar + @echo Calling rpmbuild... + @echo Vesion: $(VERSION) + @cp tools/$(NAME).spec $(RPM_DIR)/SPECS/ + + @cd $(PROJROOT)/$(RPM_DIR)/SPECS ; \ + rpmbuild -bb \ + --buildroot="$(PROJROOT)/$(RPM_DIR)/BUILD/$(NAME)" \ + --define "_topdir $(PROJROOT)/$(RPM_DIR)" \ + --define "name $(NAME)" \ + --define "summary "$(DESCRIPTION)"" \ + --define "version $(UPSTREAM_VERSION)" \ + --define "release $(PACKAGE-VERSION)" \ + --define "url _$(URL)_" \ + --define "license $(LICENSE)" \ + --define "group $(GROUP)" \ + --define "vendor $(VENDOR)" \ + --define "packager $(PACKAGER)" \ + --define "prefix $(PREFIX)" \ + --define "source_dir $(PROJROOT)/$(RPM_DIR)/SOURCES" \ + $(NAME).spec + @echo Copying generated RPM to dist dir... + @mkdir ${PROJROOT}/pkg -p + @cp $(PROJROOT)/$(RPM_DIR)/RPMS/noarch/*.rpm $(PROJROOT)/pkg + @rm -rf $(TAR_DIR) + @rm -rf $(RPM_DIR) + @rm -rf $(DIST_DIR) + + + +build_rpm: rpm + diff --git a/pkg_builder/README.md b/pkg_builder/README.md new file mode 100644 index 0000000..ffb4b0c --- /dev/null +++ b/pkg_builder/README.md @@ -0,0 +1,46 @@ +# GitList Builder: Tools to build gitlist package + +## Status + +### Ready to build + +* Core Deb Packages: +``` +$ make build_deb +``` + +* Core Rpm Packages: +``` +$ make build_rpm +``` + +### Not Ready (Comming soon) + +Packages to install configuration files: + +* make apache_deb +* make apache_rpm +* make nginx_deb +* make nginx_rpm + +## Dependencies + +* To use this package builder you may need to install some development packages like: dpkg-dev or evem rpm; +* A tarball of a stable release; + +## Instructions + +To use this builder just download the lastest stable release into this directory and build using the make functions avaible in make help + +## How to build + +The packages can be generated by running Makefile functions like: + +``` +$ make build_deb +$ make build_rpm +``` + +## Structure + +Core package is a simple source package while a configuration package requires all the dependencies. diff --git a/pkg_builder/tools/gitlist.spec b/pkg_builder/tools/gitlist.spec new file mode 100644 index 0000000..d7d675c --- /dev/null +++ b/pkg_builder/tools/gitlist.spec @@ -0,0 +1,37 @@ +Name: %{name} +Summary: %{summary} +Version: %{version} +Release: %{release} +URL: %{url} +License: %{license} +Group: %{group} +Vendor: %{vendor} +Packager: %{user} +Prefix: %{prefix} +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +Source0: %{name}.tar + +%description +%{summary} + +%prep +%setup -c + +%build + +%install +%{__rm} -rf %{buildroot} +%{__mkdir} -p %{buildroot}%{prefix} +%{__cp} -Ra * %{buildroot}%{prefix} + +%clean +rm -rf %{buildroot} + +%files +%defattr(0755,root,root) +%{prefix}/* + +%changelog +* Thu Jan 21 2013 Bruno Gurgel +- Initial diff --git a/pkg_builder/tools/release.info b/pkg_builder/tools/release.info new file mode 100644 index 0000000..4eac5e4 --- /dev/null +++ b/pkg_builder/tools/release.info @@ -0,0 +1,2 @@ +release=0.3 +name=gitlist