From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id 6G8QJJdSMWQ3bQAASxT56A (envelope-from ) for ; Sat, 08 Apr 2023 13:40:07 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id AOvmI5dSMWSKlQAAauVa8A (envelope-from ) for ; Sat, 08 Apr 2023 13:40:07 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 004AAB48F for ; Sat, 8 Apr 2023 13:40:05 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pl6uS-0006HG-0Y; Sat, 08 Apr 2023 07:39:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pl6uP-0006H7-8F for emacs-orgmode@gnu.org; Sat, 08 Apr 2023 07:39:05 -0400 Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pl6uM-0006Tn-Ir for emacs-orgmode@gnu.org; Sat, 08 Apr 2023 07:39:04 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 6F942240222 for ; Sat, 8 Apr 2023 13:39:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1680953940; bh=J7jeqmYWkxjwHpXwU26q+cz1U8X4s6QuqYwpowvNJY4=; h=From:To:Cc:Subject:Date:From; b=gtjuoHu8MEOBb3sK+Jt6zlQH1tN1HgscKm6CDcm4g67U6rHQXX7wPOZaF1mF1jYM/ BX0Nb9vG5dE0rdizLmti6aaLcawo2YkDaAL3NQv6wTVQPaHXzPw56JqZSGAS0Cw9HW fwwVaXCK0nM0/B7nch6CqL+PV/WTDdPcpuGnFjJpBtMvcDjx+KDnKHrQ04t3zxpNZQ JjTV90f35DlwOlxtgfZ9k0FZ9POsfE2kjpYkvwA1X8Uflsqi70ImSa+iUDpF6BlUOM KS6VFToxmEH3D0nhfYMQcl8fjsvxuOU/RWAURfp5T83w0MdWbXcJOVXTknjzD3yrno 01b7c8uLEgzPw== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PttYH5jkkz6twW; Sat, 8 Apr 2023 13:38:59 +0200 (CEST) From: Ihor Radchenko To: Max Nikulin Cc: emacs-orgmode@gnu.org Subject: Re: [PATCH v2] Add compat.el support to Org (was: [POLL] Use compat.el in Org? (was: Useful package? Compat.el)) In-Reply-To: References: <87sfx7degz.fsf@gmail.com> <87v8ks6rhf.fsf@localhost> <87r0t3gahd.fsf@localhost> <87wn2ujk27.fsf@localhost> Date: Sat, 08 Apr 2023 11:41:21 +0000 Message-ID: <87jzymk3dq.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=185.67.36.66; envelope-from=yantar92@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1680954007; a=rsa-sha256; cv=none; b=Mh7Kvmi3Qn1+E86Kw5PbqIArni5pcPXYdF6qszkYQAcJ4N0ZrYZqm1BEfDjUiX+NxKnovv S3WpWYICRmv2gM4F6cIT+MwRs2o/YJAl265gXgpgjmREGaVeK9pTYD3reltXWq2k3n4GeR wUPhqUWuEArF7h0jsfRRKOuMp13TPahbgzF+yfazepzRf4xHc3lAjUJYnrMnJ/P7eIiaq1 BsAJ7dbVg5AmcOMbKc9/6wDXpvO+IFEa0hP3D09HjCse+Vpsq7N/o8kmj07SdAklt/z80J uFAH8TLQF6d8TYvjrd/nrU1YuWNFqL91ffynk6xIQ4hzL43UV8q3pS+jTNqeZA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=gtjuoHu8; dmarc=pass (policy=none) header.from=posteo.net; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1680954007; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=0exqc6GrjU7Xsj/Jgnx6DsInNX97SGyAjre9VobdeEM=; b=RjSpTucZW+dVj/Tsh/R1uM8LT7lSanoL32AEH2Lr+n4LRmL9bMskH+dC9ZLbBBsUEjWTYa bOzfroiNjHbHICFfNvazeI1n/IaEjV2P07s9nO4yZHS9fPbFh170oUIaA1r9rSGtcvYv0N RTAlkhNziH2lynd90DDEfMKZLgnTUli9A+/JBt3NOKeK/WzoRq6BgFXHSYrBkYcLErhgPV 0T8tNbEZ3ZmBV42ZoN7B+Ey/J2G7O//zkp+538f+KLAJBg95jCuYl6gcsTcyNknjqHXSVM 2LWpctqbFltHxw5D4tDnzIUIpiL8iH9DvVzaOKYATUX4tUhIwUpEvx9rF4T4kw== X-Migadu-Spam-Score: -6.22 X-Migadu-Scanner: scn1.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=gtjuoHu8; dmarc=pass (policy=none) header.from=posteo.net; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Spam-Score: -6.22 X-Migadu-Queue-Id: 004AAB48F X-TUID: JPOTG9hubmcq Max Nikulin writes: >> I know no other Emacs packages that manage dependencies using make. > > org-ql uses a helper shell script. org-roam and projectile use eldev > that is procedural, not declarative build system. I have not figured out > which way magit handles dependencies. I have no more ideas what projects > may involve unit tests and dependencies. I see. Unfortunately, using third-party non-standard packages like makem.sh or eldev will be more troublesome. We will need to sync Org repo with them or demand users to install them separately. Also, eldev is not on ELPA, and we cannot use it at all. As for makem.sh, AFAIK, it will be even worse wrt network access - it tries refreshing and downloading some packages by default, unless we explicitly disable that feature. And under the hood, makem.sh anyway does the same emacs --eval thing I used in the patch. >>> I do not like the idea of network queries on every make. >> Any better suggestions? > > Do not run install dependencies for regular targets like test or > compile. At least do not do it unless it is explicitly requested by > command line argument or a variable in local.mk compat.el is required for "compile" target. Compilation will simply fail with older Emacs. And "test" triggers "compile". >> Actually, we need pkgdir := $(shell pwd)/pkg-deps. >> CURDIR is wrong because default.mk will trigger evaluation in every make >> sub-process as well. > > default.mk is included from top level Makefile only. Not sure here. I just noticed that GITVERSION got re-calculated many times when looking at debug output of make. (It was slowing things down significantly). GITVERSION is in targets.mk though. > By the way, it is > better to explicitly express that path is relative to top project > directory by defining e.g. top_builddir (or abs_top_builddir) at first and > > pkgdir = $(top_builddir)/pkg-deps How to define top_builddir? If also via `pwd`, I see not much difference. > Today I noticed the following trick in (likely stale) > https://github.com/org-roam/org-roam/blob/main/default.mk > > TOP := $(dir $(lastword $(MAKEFILE_LIST))) > > I have not realized if it is safe enough. Reading through 6.14 Other Special Variables section of make manual, it does not look safe - MAKEFILE_LIST may be altered by presence of includes. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at