From 8e8481c2bc6cc7c692682f714dbaa77a3fd64aea Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com>
Date: Thu, 22 Feb 2018 14:40:27 -0500
Subject: [PATCH] contrib: Fix installation of kashmir-dependency, other fixes.

* contrib/src/main.mak (dep_on): Filter out top-level packages
from the result (as it used to be prior to commit 6fa37b57c10).
(pprint): Display 'None' when there are no packages selected.
* contrib/src/kashmir-dependency/rules.mak (.kashmir-dependency):
Ensure installation directory exists before copying files.
* contrib/src/asio/rules.mak: Do not add to PKGS. This prevent build
this indirect dependency when its parent referrer was disabled.
* contrib/src/kashmir-dependency/rules.mak: Likewise.
* contrib/src/restbed/rules.mak: Likewise.

Change-Id: I58e515c4e4e49220f0e82144b349c97ba86d6940
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
---
 contrib/src/asio/rules.mak               |  2 +-
 contrib/src/kashmir-dependency/rules.mak |  6 ++++--
 contrib/src/main.mak                     | 24 ++++++++++++++----------
 contrib/src/restbed/rules.mak            |  2 +-
 4 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/contrib/src/asio/rules.mak b/contrib/src/asio/rules.mak
index 61b97929de..be1dc04386 100644
--- a/contrib/src/asio/rules.mak
+++ b/contrib/src/asio/rules.mak
@@ -21,7 +21,7 @@
 ASIO_VERSION := f5c570826d2ebf50eb38c44039181946a473148b
 ASIO_URL := https://github.com/chriskohlhoff/asio/archive/$(ASIO_VERSION).tar.gz
 
-PKGS += asio
+# Pure dependency of restbed: do not add to PKGS.
 
 $(TARBALLS)/asio-$(ASIO_VERSION).tar.gz:
 	$(call download,$(ASIO_URL))
diff --git a/contrib/src/kashmir-dependency/rules.mak b/contrib/src/kashmir-dependency/rules.mak
index c8639d983a..d324e1d3c9 100644
--- a/contrib/src/kashmir-dependency/rules.mak
+++ b/contrib/src/kashmir-dependency/rules.mak
@@ -1,3 +1,4 @@
+# -*- mode: makefile; -*-
 #
 #  Copyright (C) 2018 Savoir-faire Linux Inc.
 #
@@ -21,7 +22,7 @@
 KASHMIR_VERSION := 2f3913f49c4ac7f9bff9224db5178f6f8f0ff3ee
 KASHMIR_URL := https://github.com/Corvusoft/kashmir-dependency/archive/$(KASHMIR_VERSION).tar.gz
 
-PKGS += kashmir-dependency
+# Pure dependency of restbed: do not add to PKGS.
 
 $(TARBALLS)/kashmir-dependency-$(KASHMIR_VERSION).tar.gz:
 	$(call download,$(KASHMIR_URL))
@@ -31,7 +32,8 @@ kashmir-dependency: kashmir-dependency-$(KASHMIR_VERSION).tar.gz
 	$(MOVE)
 
 .kashmir-dependency: kashmir-dependency .sum-kashmir-dependency
-	cd $< && cp -r kashmir $(PREFIX)/include
+	mkdir -p "$(PREFIX)/include"
+	cd $< && cp -r kashmir "$(PREFIX)/include"
 	touch $@
 
 .sum-kashmir-dependency: kashmir-dependency-$(KASHMIR_VERSION).tar.gz
diff --git a/contrib/src/main.mak b/contrib/src/main.mak
index f07180eaef..1c3d1f963c 100644
--- a/contrib/src/main.mak
+++ b/contrib/src/main.mak
@@ -1,3 +1,5 @@
+# -*- mode: makefile; -*-
+#
 # Main makefile for VLC 3rd party libraries ("contrib")
 # Copyright (C) 2003-2011 the VideoLAN team
 #
@@ -399,9 +401,9 @@ PKGS_MANUAL := $(sort $(PKGS_ENABLE) $(filter-out $(PKGS_DISABLE),$(PKGS_AUTOMAT
 # Resolve dependencies:
 dep_on = $(if $(filter $1,$2),\
   $(error Dependency cycle detected: $(patsubst %,% ->,$2) $(filter $1,$2)),\
-  $(sort $(foreach p,$(filter-out $(PKGS_FOUND),$(1)),$(p) $(call dep_on,$(DEPS_$(p)),$2 $(p)))))
-PKGS_DEPS := $(call dep_on,$(PKGS_MANUAL))
-PKGS := $(sort $(PKGS_MANUAL) $(PKGS_DEPS))
+  $(foreach p,$(filter-out $(PKGS_FOUND),$(1)),$(p) $(call dep_on,$(DEPS_$(p)),$2 $(p))))
+PKGS_DEPS := $(filter-out $(PKGS_MANUAL),$(call dep_on,$(PKGS_MANUAL)))
+PKGS := $(PKGS_MANUAL) $(PKGS_DEPS)
 
 convert-static:
 	for p in $(PREFIX)/lib/pkgconfig/*.pc; do $(SRC)/pkg-static.sh $$p; done
@@ -444,21 +446,23 @@ package: install
 	cd tmp/$(notdir $(PREFIX)) && $(abspath $(SRC))/change_prefix.sh $(PREFIX) @@CONTRIB_PREFIX@@
 	(cd tmp && tar c $(notdir $(PREFIX))/) | bzip2 -c > ../ring-contrib-$(HOST)-$(DATE).tar.bz2
 
+pprint = @echo '  $(or $(sort $1), None)' | fmt
+
 list:
 	@echo All packages:
-	@echo '  $(PKGS_ALL)' | fmt
+	$(call pprint,$(PKGS_ALL))
 	@echo Distribution-provided packages:
-	@echo '  $(PKGS_FOUND)' | fmt
+	$(call pprint,$(PKGS_FOUND))
 	@echo Automatically selected packages:
-	@echo '  $(PKGS_AUTOMATIC)' | fmt
+	$(call pprint,$(PKGS_AUTOMATIC))
 	@echo Manually deselected packages:
-	@echo '  $(PKGS_DISABLE)' | fmt
+	$(call pprint,$(PKGS_DISABLE))
 	@echo Manually selected packages:
-	@echo '  $(PKGS_ENABLE)' | fmt
+	$(call pprint,$(PKGS_ENABLE))
 	@echo Depended-on packages:
-	@echo '  $(PKGS_DEPS)' | fmt
+	$(call pprint,$(PKGS_DEPS))
 	@echo To-be-built packages:
-	@echo '  $(PKGS)' | fmt
+	$(call pprint,$(PKGS))
 
 .PHONY: all fetch fetch-all install mostlyclean clean distclean package list prebuilt
 
diff --git a/contrib/src/restbed/rules.mak b/contrib/src/restbed/rules.mak
index f3af25be6d..957a06f8b1 100644
--- a/contrib/src/restbed/rules.mak
+++ b/contrib/src/restbed/rules.mak
@@ -22,7 +22,7 @@
 RESTBED_VERSION := df867a858dddc4cf6ca8642da02720bd65ba239a
 RESTBED_URL := https://github.com/corvusoft//restbed/archive/$(RESTBED_VERSION).tar.gz
 
-PKGS += restbed
+# Pure dependency of OpenDHT: do not add to PKGS.
 
 ifeq ($(call need_pkg,"restbed >= 4.0"),)
 PKGS_FOUND += restbed
-- 
GitLab