From a5cd918de7d7a070e219b4da3e93aa876674280a Mon Sep 17 00:00:00 2001 From: James Duley Date: Wed, 29 Jul 2015 19:55:47 +0100 Subject: [PATCH 1/5] LP-80 extend linux packaging: reworked dist Change-Id: Icd7b552d67dfa1ffd32172b78e283e6044bad47d --- Makefile | 55 ++++++++++++++++++++++++++---------------------- package/Linux.mk | 4 ++-- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 128d1e47c..e8f8d5516 100644 --- a/Makefile +++ b/Makefile @@ -735,10 +735,39 @@ PACKAGE_SEP := - PACKAGE_FULL_NAME := $(PACKAGE_NAME)$(PACKAGE_SEP)$(PACKAGE_LBL) # Source distribution is never dirty because it uses git archive -DIST_NAME := $(DIST_DIR)/$(subst dirty-,,$(PACKAGE_FULL_NAME)).tar +DIST_NAME := $(subst -dirty,,$(PACKAGE_FULL_NAME)) +DIST_TAR := $(DIST_DIR)/$(DIST_NAME).tar +DIST_TAR_GZ := $(DIST_TAR).gz +DIST_VER_INFO := $(DIST_DIR)/version-info.json include $(ROOT_DIR)/package/$(UNAME).mk +############################## +# +# Source for distribution +# +############################## +$(DIST_VER_INFO): .git/index | $(DIST_DIR) + $(V1) $(VERSION_INFO) --jsonpath="$(DIST_DIR)" + +$(DIST_TAR): $(DIST_VER_INFO) .git/index | $(DIST_DIR) + @$(ECHO) " SOURCE FOR DISTRIBUTION $(call toprel, $(DIST_TAR))" + $(V1) git archive --prefix="$(PACKAGE_NAME)/" -o "$(DIST_TAR)" HEAD + $(V1) tar --append --file="$(DIST_TAR)" \ + --transform='s,.*version-info.json,$(PACKAGE_NAME)/version-info.json,' \ + $(call toprel, "$(DIST_VER_INFO)") + +$(DIST_TAR_GZ): $(DIST_TAR) + @$(ECHO) " SOURCE FOR DISTRIBUTION $(call toprel, $(DIST_TAR_GZ))" + $(V1) gzip -kf "$(DIST_TAR)" + +.PHONY: dist_tar_gz +dist_tar_gz: $(DIST_TAR_GZ) + +.PHONY: dist +dist: dist_tar_gz + + ############################## # # Source code formatting @@ -813,30 +842,6 @@ build-info: | $(BUILD_DIR) --template="make/templates/$@.txt" \ --outfile="$(BUILD_DIR)/$@.txt" -############################## -# -# Source for distribution -# -############################## - -DIST_VER_INFO := $(DIST_DIR)/version-info.json - -$(DIST_VER_INFO): .git/index | $(DIST_DIR) - $(V1) $(VERSION_INFO) --jsonpath="$(DIST_DIR)" - - -$(DIST_NAME).gz: $(DIST_VER_INFO) .git/index | $(DIST_DIR) - @$(ECHO) " SOURCE FOR DISTRIBUTION $(call toprel, $(DIST_NAME).gz)" - $(V1) git archive --prefix="$(PACKAGE_NAME)/" -o "$(DIST_NAME)" HEAD - $(V1) tar --append --file="$(DIST_NAME)" \ - --transform='s,.*version-info.json,$(PACKAGE_NAME)/version-info.json,' \ - $(call toprel, "$(DIST_VER_INFO)") - $(V1) gzip -f "$(DIST_NAME)" - -.PHONY: dist -dist: $(DIST_NAME).gz - - ############################## # # Config diff --git a/package/Linux.mk b/package/Linux.mk index 3d61b329e..7acc0455f 100644 --- a/package/Linux.mk +++ b/package/Linux.mk @@ -67,8 +67,8 @@ endif package_src: $(DEB_ORIG_SRC_NAME) $(DEB_PACKAGE_DIR) $(V1) cd $(DEB_PACKAGE_DIR) && dpkg-buildpackage -S -us -uc -$(DEB_ORIG_SRC): $(DIST_NAME).gz | $(PACKAGE_DIR) - $(V1) cp $(DIST_NAME).gz $(DEB_ORIG_SRC) +$(DEB_ORIG_SRC): $(DIST_TAR_GZ) | $(PACKAGE_DIR) + $(V1) cp $(DIST_TAR_GZ) $(DEB_ORIG_SRC) $(DEB_PACKAGE_DIR): $(DEB_ORIG_SRC) debian | $(PACKAGE_DIR) $(V1) tar -xf $(DEB_ORIG_SRC) -C $(PACKAGE_DIR) From 57f90038334e31b3644ceadbde09305188596226 Mon Sep 17 00:00:00 2001 From: James Duley Date: Fri, 31 Jul 2015 18:20:19 +0100 Subject: [PATCH 2/5] LP-80 extend linux packaging: split out debian package make into own file Change-Id: I5a84c53d2a0727d424053bf0f506c47d4b7b7d78 --- package/Linux.mk | 69 ++------------------------------------------ package/linux/deb.mk | 67 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 67 deletions(-) create mode 100644 package/linux/deb.mk diff --git a/package/Linux.mk b/package/Linux.mk index 7acc0455f..255c23b66 100644 --- a/package/Linux.mk +++ b/package/Linux.mk @@ -8,74 +8,9 @@ endif # Are we using a debian based distro? ifneq ($(shell which dpkg 2> /dev/null),) - -DEB_DIST := unstable -# Instead of RELEASE-15.01-RC1 debian wants 15.01~RC1 -UPSTREAM_VER := $(subst -,~,$(subst RELEASE-,,$(PACKAGE_LBL))) -DEB_REV := 1 -ifeq ($(DEB_DIST), trusty) -DEB_REV := $(DEB_REV)$(DEB_DIST)1 -endif -DEB_NAME := $(ORG_SMALL_NAME) -DEB_ORIG_SRC := $(PACKAGE_DIR)/$(DEB_NAME)_$(UPSTREAM_VER).orig.tar.gz -DEB_PACKAGE_DIR := $(PACKAGE_DIR)/$(DEB_NAME)-$(UPSTREAM_VER) -DEB_ARCH := $(shell dpkg --print-architecture) -DEB_PACKAGE_NAME := $(DEB_NAME)_$(UPSTREAM_VER)-$(DEB_REV)_$(DEB_ARCH) -DEB_DIR := package/linux/debian - -SED_DATE_STRG = $(shell date -R) -SED_SCRIPT = sed -i -e ' \ - s//$(UPSTREAM_VER)-$(DEB_REV)/g; \ - s//$(SED_DATE_STRG)/g; \ - s//$(DEB_DIST)/g; \ - s//$(DEB_NAME)/g; \ - ' - -# Ubuntu 14.04 (Trusty Tahr) has different names for the qml-modules -TRUSTY_DEPS_SED := s/qml-module-qtquick-controls/qtdeclarative5-controls-plugin/g; \ - s/qml-module-qtquick-dialogs/qtdeclarative5-dialogs-plugin/g; \ - s/qml-module-qtquick-localstorage/qtdeclarative5-localstorage-plugin/g; \ - s/qml-module-qtquick-particles2/qtdeclarative5-particles-plugin/g; \ - s/qml-module-qtquick2/qtdeclarative5-qtquick2-plugin/g; \ - s/qml-module-qtquick-window2/qtdeclarative5-window-plugin/g; \ - s/qml-module-qtquick-xmllistmodel/qtdeclarative5-xmllistmodel-plugin/g; - -# Leave off Qt and ARM compiler dependencies if calling package target under the assumption that -# OP is providing them or the user already has them installed because OP is already built. -PACKAGE_DEPS_SED := s/python.*/python/;s/{misc:Depends}.*/{misc:Depends}/; - -.PHONY: package -package: debian - @$(ECHO) "Building Linux package, please wait..." - $(V1) sed -i -e "$(PACKAGE_DEPS_SED)" debian/control - $(V1) dpkg-buildpackage -b -us -uc -nc - $(V1) mv $(ROOT_DIR)/../$(DEB_PACKAGE_NAME).deb $(BUILD_DIR) - $(V1) mv $(ROOT_DIR)/../$(DEB_PACKAGE_NAME).changes $(BUILD_DIR) - $(V1) rm -r debian - -.PHONY: debian -debian: $(DEB_DIR) - $(V1) rm -rf debian - $(V1) cp -r $(DEB_DIR) debian - $(V1) cp -T package/linux/45-uav.rules debian/$(DEB_NAME).udev - $(V1) $(SED_SCRIPT) debian/changelog debian/control -ifeq ($(DEB_DIST), trusty) - $(V1) sed -i -e "$(TRUSTY_DEPS_SED)" debian/control -endif - -.PHONY: package_src -package_src: $(DEB_ORIG_SRC_NAME) $(DEB_PACKAGE_DIR) - $(V1) cd $(DEB_PACKAGE_DIR) && dpkg-buildpackage -S -us -uc - -$(DEB_ORIG_SRC): $(DIST_TAR_GZ) | $(PACKAGE_DIR) - $(V1) cp $(DIST_TAR_GZ) $(DEB_ORIG_SRC) - -$(DEB_PACKAGE_DIR): $(DEB_ORIG_SRC) debian | $(PACKAGE_DIR) - $(V1) tar -xf $(DEB_ORIG_SRC) -C $(PACKAGE_DIR) - $(V1) mv debian $(PACKAGE_DIR)/$(PACKAGE_NAME) - $(V1) rm -rf $(DEB_PACKAGE_DIR) && mv $(PACKAGE_DIR)/$(PACKAGE_NAME) $(DEB_PACKAGE_DIR) - + include $(ROOT_DIR)/package/linux/deb.mk endif # Debian based distro? + ############################## # # Install Linux Target diff --git a/package/linux/deb.mk b/package/linux/deb.mk new file mode 100644 index 000000000..ed481aa25 --- /dev/null +++ b/package/linux/deb.mk @@ -0,0 +1,67 @@ + +DEB_DIST := unstable +# Instead of RELEASE-15.01-RC1 debian wants 15.01~RC1 +UPSTREAM_VER := $(subst -,~,$(subst RELEASE-,,$(PACKAGE_LBL))) +DEB_REV := 1 +ifeq ($(DEB_DIST), trusty) +DEB_REV := $(DEB_REV)$(DEB_DIST)1 +endif +DEB_NAME := $(ORG_SMALL_NAME) +DEB_ORIG_SRC := $(PACKAGE_DIR)/$(DEB_NAME)_$(UPSTREAM_VER).orig.tar.gz +DEB_PACKAGE_DIR := $(PACKAGE_DIR)/$(DEB_NAME)-$(UPSTREAM_VER) +DEB_ARCH := $(shell dpkg --print-architecture) +DEB_PACKAGE_NAME := $(DEB_NAME)_$(UPSTREAM_VER)-$(DEB_REV)_$(DEB_ARCH) +DEB_DIR := package/linux/debian + +SED_DATE_STRG := $(shell date -R) +SED_SCRIPT := sed -i -e ' \ + s//$(UPSTREAM_VER)-$(DEB_REV)/g; \ + s//$(SED_DATE_STRG)/g; \ + s//$(DEB_DIST)/g; \ + s//$(DEB_NAME)/g; \ + ' + +# Ubuntu 14.04 (Trusty Tahr) has different names for the qml-modules +TRUSTY_DEPS_SED := s/qml-module-qtquick-controls/qtdeclarative5-controls-plugin/g; \ + s/qml-module-qtquick-dialogs/qtdeclarative5-dialogs-plugin/g; \ + s/qml-module-qtquick-localstorage/qtdeclarative5-localstorage-plugin/g; \ + s/qml-module-qtquick-particles2/qtdeclarative5-particles-plugin/g; \ + s/qml-module-qtquick2/qtdeclarative5-qtquick2-plugin/g; \ + s/qml-module-qtquick-window2/qtdeclarative5-window-plugin/g; \ + s/qml-module-qtquick-xmllistmodel/qtdeclarative5-xmllistmodel-plugin/g; + +# Leave off Qt and ARM compiler dependencies if calling package target under the assumption that +# OP is providing them or the user already has them installed because OP is already built. +PACKAGE_DEPS_SED := s/python.*/python/;s/{misc:Depends}.*/{misc:Depends}/; + +.PHONY: package +package: debian + @$(ECHO) "Building Linux package, please wait..." + $(V1) sed -i -e "$(PACKAGE_DEPS_SED)" debian/control + $(V1) dpkg-buildpackage -b -us -uc -nc + $(V1) mv $(ROOT_DIR)/../$(DEB_PACKAGE_NAME).deb $(BUILD_DIR) + $(V1) mv $(ROOT_DIR)/../$(DEB_PACKAGE_NAME).changes $(BUILD_DIR) + $(V1) rm -r debian + +.PHONY: debian +debian: $(DEB_DIR) + $(V1) rm -rf debian + $(V1) cp -r $(DEB_DIR) debian + $(V1) cp -T package/linux/45-uav.rules debian/$(DEB_NAME).udev + $(V1) $(SED_SCRIPT) debian/changelog debian/control +ifeq ($(DEB_DIST), trusty) + $(V1) sed -i -e "$(TRUSTY_DEPS_SED)" debian/control +endif + +.PHONY: package_src +package_src: $(DEB_ORIG_SRC_NAME) $(DEB_PACKAGE_DIR) + $(V1) cd $(DEB_PACKAGE_DIR) && dpkg-buildpackage -S -us -uc + +$(DEB_ORIG_SRC): $(DIST_TAR_GZ) | $(PACKAGE_DIR) + $(V1) cp $(DIST_TAR_GZ) $(DEB_ORIG_SRC) + +$(DEB_PACKAGE_DIR): $(DEB_ORIG_SRC) debian | $(PACKAGE_DIR) + $(V1) tar -xf $(DEB_ORIG_SRC) -C $(PACKAGE_DIR) + $(V1) mv debian $(PACKAGE_DIR)/$(PACKAGE_NAME) + $(V1) rm -rf $(DEB_PACKAGE_DIR) && mv $(PACKAGE_DIR)/$(PACKAGE_NAME) $(DEB_PACKAGE_DIR) + From 7bb70e203a5b178d4b4c6f8e2af508be64cf4dad Mon Sep 17 00:00:00 2001 From: James Duley Date: Fri, 31 Jul 2015 19:17:31 +0100 Subject: [PATCH 3/5] LP-80 extend linux packaging: added basis for rpm Change-Id: I3d00fd1801375abadb1ea0057469f5ba710d15dc --- Makefile | 3 +- package/Linux.mk | 12 +++++- package/linux/rpm.mk | 37 +++++++++++++++++++ package/linux/{librepilot.spec => rpmspec.in} | 15 ++++---- 4 files changed, 57 insertions(+), 10 deletions(-) create mode 100644 package/linux/rpm.mk rename package/linux/{librepilot.spec => rpmspec.in} (90%) diff --git a/Makefile b/Makefile index e8f8d5516..66ca9049a 100644 --- a/Makefile +++ b/Makefile @@ -735,7 +735,8 @@ PACKAGE_SEP := - PACKAGE_FULL_NAME := $(PACKAGE_NAME)$(PACKAGE_SEP)$(PACKAGE_LBL) # Source distribution is never dirty because it uses git archive -DIST_NAME := $(subst -dirty,,$(PACKAGE_FULL_NAME)) +DIST_LBL := $(subst -dirty,,$(PACKAGE_LBL)) +DIST_NAME := $(PACKAGE_NAME)$(PACKAGE_SEP)$(DIST_LBL) DIST_TAR := $(DIST_DIR)/$(DIST_NAME).tar DIST_TAR_GZ := $(DIST_TAR).gz DIST_VER_INFO := $(DIST_DIR)/version-info.json diff --git a/package/Linux.mk b/package/Linux.mk index 255c23b66..3dc9ad7b4 100644 --- a/package/Linux.mk +++ b/package/Linux.mk @@ -9,7 +9,17 @@ endif # Are we using a debian based distro? ifneq ($(shell which dpkg 2> /dev/null),) include $(ROOT_DIR)/package/linux/deb.mk -endif # Debian based distro? +endif + +# Are we using a rpm based distro? +ifneq ($(shell which rpm 2> /dev/null),) + include $(ROOT_DIR)/package/linux/rpm.mk +endif + +# Are we using an Arch based distro? +ifneq ($(shell which makepkg 2> /dev/null),) + $(info TODO: built in arch package) +endif ############################## # diff --git a/package/linux/rpm.mk b/package/linux/rpm.mk new file mode 100644 index 000000000..789c1ce30 --- /dev/null +++ b/package/linux/rpm.mk @@ -0,0 +1,37 @@ +RPM_NAME := $(PACKAGE_NAME) +UPSTREAM_VER := $(subst -,~,$(subst RELEASE-,,$(DIST_LBL))) +RPM_REL := 1 +RPM_ARCH := $(shell rpm --eval '%{_arch}') +RPM_PACKAGE_NAME := $(RPM_NAME)-$(UPSTREAM_VER)-$(RPM_REL)$(shell rpm --eval '%{?dist}').$(RPM_ARCH).rpm +RPM_PACKAGE_FILE := $(PACKAGE_DIR)/RPMS/$(RPM_ARCH)/$(RPM_PACKAGE_NAME) + +SED_SCRIPT := sed -i -e ' \ + s//$(UPSTREAM_VER)/g; \ + s//$(RPM_NAME)/g; \ + s//$(RPM_REL)/g; \ + s//$(notdir $(DIST_TAR_GZ))/g; \ + s//$(PACKAGE_NAME)/g; \ + ' + +RPM_DIRS := $(addprefix $(PACKAGE_DIR)/,BUILD RPMS SOURCES SPECS SRPMS) +DIRS += $(RPM_DIRS) + +SPEC_FILE := $(PACKAGE_DIR)/SPECS/$(RPM_NAME).spec +SPEC_FILE_IN := $(ROOT_DIR)/package/linux/rpmspec.in + +.PHONY: rpmspec +rpmspec: $(SPEC_FILE) + +$(SPEC_FILE): $(SPEC_FILE_IN) | $(RPM_DIRS) + $(V1) cp -f $(SPEC_FILE_IN) $(SPEC_FILE) + $(V1) $(SED_SCRIPT) $(SPEC_FILE) + + +.PHONY: package +package: $(RPM_PACKAGE_FILE) + +$(RPM_PACKAGE_FILE): $(SPEC_FILE) $(DIST_TAR_GZ) | $(RPM_DIRS) + @$(ECHO) "Building $(RPM_PACKAGE_NAME), please wait..." + $(V1) ln -sf $(DIST_TAR_GZ) $(PACKAGE_DIR)/SOURCES + $(V1) rpmbuild -bb --define "_topdir $(PACKAGE_DIR)" $(SPEC_FILE) + diff --git a/package/linux/librepilot.spec b/package/linux/rpmspec.in similarity index 90% rename from package/linux/librepilot.spec rename to package/linux/rpmspec.in index 5d653644e..e89595840 100644 --- a/package/linux/librepilot.spec +++ b/package/linux/rpmspec.in @@ -1,16 +1,13 @@ - -%global gitrev g07deb66 - -Name: LibrePilot +Name: Summary: Ground Control Station -Version: 0.0 -Release: 1.git%{gitrev}%{?dist} +Version: +Release: Group: Applications/Scientific License: GPLv3+ URL: http://forum.librepilot.org/ -Source0: https://github.com/librepilot/%{name}/archive/%{name}-%{version}-%{gitrev}.tar.gz +Source0: BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -25,6 +22,7 @@ BuildRequires: qt5-qtscript-devel BuildRequires: qt5-qtserialport-devel BuildRequires: qt5-qtsvg-devel BuildRequires: qt5-qttools-devel +BuildRequires: qt5-qttranslations BuildRequires: dwz BuildRequires: pkgconfig BuildRequires: python @@ -33,6 +31,7 @@ BuildRequires: systemd-devel Requires: libusbx Requires: SDL +Requires: qt5-qtquickcontrols Requires: qt5-qtdeclarative Requires: qt5-qtmultimedia Requires: qt5-qtscript @@ -50,7 +49,7 @@ and ease of use. %prep -%setup -q -n %{name}-%{version}-%{gitrev} +%setup -q -n %{name}-%{version} %build From 8714a34238ef4d389db052d70855c0922b125294 Mon Sep 17 00:00:00 2001 From: James Duley Date: Sat, 1 Aug 2015 09:30:28 +0100 Subject: [PATCH 4/5] LP-80 extend linux packaging: rework distro selection Change-Id: I476f52296de254b3b04a200c14a3924a2832e452 --- package/Linux.mk | 10 +++------- package/linux/rpmspec.in | 10 +++++----- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/package/Linux.mk b/package/Linux.mk index 3dc9ad7b4..51148f4d1 100644 --- a/package/Linux.mk +++ b/package/Linux.mk @@ -7,17 +7,13 @@ ifndef TOP_LEVEL_MAKEFILE endif # Are we using a debian based distro? -ifneq ($(shell which dpkg 2> /dev/null),) +ifneq ($(wildcard /etc/apt/sources.list),) include $(ROOT_DIR)/package/linux/deb.mk -endif - # Are we using a rpm based distro? -ifneq ($(shell which rpm 2> /dev/null),) +else ifneq ($(wildcard /etc/yum.repos.d/*),) include $(ROOT_DIR)/package/linux/rpm.mk -endif - # Are we using an Arch based distro? -ifneq ($(shell which makepkg 2> /dev/null),) +else ifneq ($(wildcard /etc/pacman.conf),) $(info TODO: built in arch package) endif diff --git a/package/linux/rpmspec.in b/package/linux/rpmspec.in index e89595840..b685efee0 100644 --- a/package/linux/rpmspec.in +++ b/package/linux/rpmspec.in @@ -1,7 +1,7 @@ Name: Summary: Ground Control Station Version: -Release: +Release: %{?dist} Group: Applications/Scientific License: GPLv3+ @@ -49,12 +49,11 @@ and ease of use. %prep -%setup -q -n %{name}-%{version} +%setup -q -n %build make %{?_smp_mflags} gcs QMAKE=qmake-qt5 CC=%{__cc} CXX=%{__cxx} libbasename=%{_lib} -#make -j1 opfw_resource %install @@ -75,11 +74,12 @@ rm -rf $RPM_BUILD_ROOT %files -%doc README.txt GPLv3.txt +%doc README.md CREDITS.txt WHATSNEW.txt +%doc GPLv3.txt %{_bindir}/librepilot-gcs %{_udevrulesdir}/45-librepilot.rules %{_datadir}/applications/librepilot.desktop -%{_datadir}/librepilot-gcs//* +%{_datadir}/librepilot-gcs/* %{_datadir}/pixmaps/librepilot.png %{_libdir}/librepilot-gcs/plugins/OpenPilot/*.pluginspec %{_libdir}/librepilot-gcs/plugins/OpenPilot/*.so From c30fa6bc6469cd0f2c3d3921fc4f99e7d82930c7 Mon Sep 17 00:00:00 2001 From: James Duley Date: Sat, 1 Aug 2015 14:35:22 +0100 Subject: [PATCH 5/5] LP-80 extend linux packaging: add package_src for rpm Change-Id: Iaf0e8d134a5396917c3d71edb47e822c9dd5d129 --- package/linux/rpm.mk | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/package/linux/rpm.mk b/package/linux/rpm.mk index 789c1ce30..7814f547f 100644 --- a/package/linux/rpm.mk +++ b/package/linux/rpm.mk @@ -4,6 +4,7 @@ RPM_REL := 1 RPM_ARCH := $(shell rpm --eval '%{_arch}') RPM_PACKAGE_NAME := $(RPM_NAME)-$(UPSTREAM_VER)-$(RPM_REL)$(shell rpm --eval '%{?dist}').$(RPM_ARCH).rpm RPM_PACKAGE_FILE := $(PACKAGE_DIR)/RPMS/$(RPM_ARCH)/$(RPM_PACKAGE_NAME) +RPM_PACKAGE_SRC := $(PACKAGE_DIR)/SRPMS/$(RPM_PACKAGE_NAME).src.rpm SED_SCRIPT := sed -i -e ' \ s//$(UPSTREAM_VER)/g; \ @@ -29,9 +30,14 @@ $(SPEC_FILE): $(SPEC_FILE_IN) | $(RPM_DIRS) .PHONY: package package: $(RPM_PACKAGE_FILE) +$(RPM_PACKAGE_FILE): RPMBUILD_OPTS := -bb -$(RPM_PACKAGE_FILE): $(SPEC_FILE) $(DIST_TAR_GZ) | $(RPM_DIRS) - @$(ECHO) "Building $(RPM_PACKAGE_NAME), please wait..." +.PHONY: package_src +package_src: $(RPM_PACKAGE_SRC) +$(RPM_PACKAGE_SRC): RPMBUILD_OPTS := -bs + +$(RPM_PACKAGE_FILE) $(RPM_PACKAGE_SRC): $(SPEC_FILE) $(DIST_TAR_GZ) | $(RPM_DIRS) + @$(ECHO) "Building $(call toprel,$@), please wait..." $(V1) ln -sf $(DIST_TAR_GZ) $(PACKAGE_DIR)/SOURCES - $(V1) rpmbuild -bb --define "_topdir $(PACKAGE_DIR)" $(SPEC_FILE) + $(V1) rpmbuild $(RPMBUILD_OPTS) --define "_topdir $(PACKAGE_DIR)" $(SPEC_FILE)