Bug 259259 - Mk/Uses/emacs.mk: Remove Emacs major version from EMACS_PKGNAMESUFFIX
Summary: Mk/Uses/emacs.mk: Remove Emacs major version from EMACS_PKGNAMESUFFIX
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Ports Framework (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: emacs@FreeBSD.org (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-19 06:17 UTC by Yasuhiro Kimura
Modified: 2021-11-15 15:29 UTC (History)
4 users (show)

See Also:


Attachments
Patch file (3.99 KB, patch)
2021-10-19 06:17 UTC, Yasuhiro Kimura
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yasuhiro Kimura freebsd_committer 2021-10-19 06:17:18 UTC
Created attachment 228822 [details]
Patch file

When major version of editors/emacs-devel was bumped to 29, I experienced the problem that `pkg upgrade` can't properly upgrade ports depending on Emacs. For example, before major version was bumped to 29, package name of 'devel_nox' flavor of 'devel/magit' was 'magit-emacs28_nox-3.2.1' and it changed to 'magit-emacs29_nox-3.2.1' after major version bump. Unfortunately `pkg upgrade` can't handle change of PKGNAMESUFFIX properly and regards installed 'magit-emacs28_nox-3.2.1' as orphaned. By applying this commit the package name becomes 'magit-emacs-devel-nox-3.2.1' and it doesn't change even if major version of editor/emacs-devel is bumped. So `pkg upgrade` can properly upgrade ports depending on Emacs.

This is primary purpose that I propose to remove Emacs major version from EMACS_PKGNAMESUFFIX. But there is also the reason that I think Emacs major version should not be included in EMACS_PKGNAMESUFFIX. And I'd like to explain it by comparing Emacs ports with Python ones.

Right now there are following 6 Python ports.

* lang/python27
* lang/python36
* lang/python37
* lang/python38
* lang/python39
* lang/python310

They are latest release of Python 2.7, 3.6, 3.7, 3.8, 3.9 and 3.10 respectively. Every time new minor version X.Y.0 is released new port lang/pythonXY is created. Each time new point release (X.Y.1, X.Y.2, ...) is released lang/pythonXY is updated to latest one. When Python X.Y reached its EoL lang/pythonXY is removed from ports tree. It never upgrades to X.(Y+1).0. Like this Python ports are tightly coupled with its minor version.

Then how flavor is used? In Python ports world Python ports (lang/pythonXY) themselves don't have any flavors. They are ports depending on Python that have flavors. And flavors are used to distinguish which version of Python the specified flavor of port works with. In this case it is quite reasonable that flavors name include Python version and PKGNAMEPREFIX such as 'py27-', 'py36-', etc. are used with ports depending on Python.

Now let's go back Emacs ports world. Currently, and as far as I know, there are 2 Emacs ports. That is, editors/emacs and editors/emacs-devel. The former is always latest release version, and the latter is latest snapshot from master branch of upstream repository. Different from Python ports, new port isn't created even if new version is released or version of latest snapshot is changed. There is always 2 Emacs ports.

Usage of flavor is also different from that of Python ports. At first Emacs ports themselves have flavors and they are used to provide variations of Emacs ports that have different option settings. As a result names such as 'full', 'nox', 'canna' are used to represent such difference. And flavors are also used with ports depending on Emacs ports to distinguish which flavor of Emacs they work with. Under such situation I don't think it is reasonable for PKGNAMESUFFIX of ports depending on Emacs ports to include Emacs major version.
Comment 1 Yasuhiro Kimura freebsd_committer 2021-10-19 08:12:03 UTC
Let me note one thing about the value of EMACS_PKGNAMESUFFIX. You may think that including 'emacs' in EMACS_PKGNAMESUFFIX is needless and simpler values such as following are better.

----------------------------------------------------------------------
Flavor		EMACS_PKGNAMESUFFIX
----------------------------------------------------------------------
full		"" (empty string)
canna		"-canna"
nox		"-nox"
devel_full	"-devel"
devel_nox	"-devel-nox"
----------------------------------------------------------------------

I also thought so at first but I noticed it may cause problem.

As is often the case with actively developing software, there are some cases that both release and development version are in the ports tree. And under such situation, the former is created as 'category/foo' and the latter is often created as 'category/foo-devel'.  And the problem happens when there are such
ports and they depends on Emacs.

Now let me select 'devel/magit' and 'devel/magit-devel' as example of such ones. If we adopt EMACS_PKGNAMESUFFIX above then packages name of each flavor of these ports are as following.

----------------------------------------------------------------------
Flavor of port			package name
----------------------------------------------------------------------
devel/magit@full		magit-3.3.0
devel/magit@canna		magit-canna-3.3.0
devel/magit@nox			magit-nox-3.3.0
devel/magit@devel_full		magit-devel-3.3.0
devel/magit@devel_nox		magit-devel-nox-3.3.0
devel/magit-devel@full		magit-devel-3.2.1.76
devel/magit-devel@canna		magit-devel-canna-3.2.1.76
devel/magit-devel@nox		magit-devel-nox-3.2.1.76
devel/magit-devel@devel_full	magit-devel-devel-3.2.1.76
devel/magit-devel@devel_nox	magit-devel-devel-nox-3.2.1.76
----------------------------------------------------------------------

Then please keep your eyes to the package names of following 2 cases.

* 'devel/magit@devel_full' and 'devel/magit-devel@full'
* 'devel/magit@devel_nox' and 'devel/magit-devel@nox'

In both case the difference is only version number. Though I haven't actually found it yet, it is quite possible that it causes malfunction of some tools doing something with ports/packages.

And there is worse case. When it is just after the release of new version, it is possible that both release and development version is exactly same one. And under such situation package name are exactly same including version number with these 2 cases. This definitely causes disaster.  So we need to add something extra to EMACS_PKGNAMESUFFIX in order to prevent such problem.
Comment 2 Li-Wen Hsu freebsd_committer 2021-10-19 08:25:10 UTC
Over to maintainer
Comment 3 Joseph Mingrone freebsd_committer 2021-10-21 04:53:31 UTC
Are you using the official repository?  I may be misremembering, but I didn't think that I experienced any problems with this major bump, i.e., pkg upgrade went through an extra step to confirm that I wanted to delete pdf-tools-emacs28 and install pdf-tools-emacs29.

When the Emacs ports were being flavorized, I recall the deliberating about whether the major version should be included in the package names.  I don't recall details, but it might have been to account for the possibility that we would have more than two emacs ports in the tree in the future.

I don't have a problem with this idea in principal, but there are some hurdles before we can proceed.

1. The other Emacs maintainer has to agree
2. It looks like the transition won't be smooth.  This doesn't happen without the patch.  Maybe we just need to bump PORTVERSION?  Could you check this?

jrm@ser /usr/ports [emacs-flavor-names|✔] % git apply ~/diffs/emacs-flavor-names.diff
jrm@ser /usr/ports [emacs-flavor-names|✚1] % s poudriere bulk -C -t -j 13amd64 devel/magit-devel@all
[00:00:00] Creating the reference jail... done
[00:00:00] Mounting system devices for 13amd64-default
[00:00:00] Stashing existing package repository
[00:00:00] Mounting ccache from: /usr/local/poudriere/ccache/13amd64
[00:00:00] Mounting ports from: /usr/ports
[00:00:00] Mounting packages from: /usr/local/poudriere/data/packages/13amd64-default
[00:00:00] Mounting distfiles from: /usr/ports/distfiles
[00:00:00] Copying /var/db/ports from: /usr/local/etc/poudriere.d/13amd64-options
[00:00:00] Appending to make.conf: /usr/local/etc/poudriere.d/make.conf
/etc/resolv.conf -> /usr/local/poudriere/data/.m/13amd64-default/ref/etc/resolv.conf
[00:00:00] Starting jail 13amd64-default
[00:00:00] Will build as nobody:nobody (65534:65534)
[00:00:01] Logs: /usr/local/poudriere/data/logs/bulk/13amd64-default/2021-10-21_01h18m26s
[00:00:01] WWW: http://pkg.ftfl.ca/build.html?mastername=13amd64-default&build=2021-10-21_01h18m26s
[00:00:01] Loading MOVED for /usr/local/poudriere/data/.m/13amd64-default/ref/usr/ports
[00:00:01] Ports supports: FLAVORS SELECTED_OPTIONS
[00:00:01] Inspecting ports tree for modifications to git checkout... yes
[00:00:01] Ports top-level git hash: f99dd971a4d9 (dirty)
[00:00:01] Gathering ports metadata
[00:00:03] Calculating ports order and dependencies
[00:00:04] -C specified, cleaning listed packages
[00:00:04] (-C) Flushing package deletions
[00:00:04] Trimming IGNORED and blacklisted ports
[00:00:04] Sanity checking the repository
[00:00:04] Checking packages for incremental rebuild needs
[00:00:04] Deleting dash.el-emacs27_nox-2.19.1_1.pkg: package name changed to 'dash.el-emacs-nox'
[00:00:04] Deleting dash.el-emacs27_canna-2.19.1_1.pkg: package name changed to 'dash.el-emacs-canna'
[00:00:04] Deleting dash.el-emacs29-2.19.1_1.pkg: package name changed to 'dash.el-emacs-devel'
[00:00:04] Deleting dash.el-emacs29_nox-2.19.1_1.pkg: package name changed to 'dash.el-emacs-devel-nox'
[00:00:05] Deleting magit-devel-emacs27_canna-3.2.1.76.pkg: package name changed to 'magit-devel-emacs-canna'
[00:00:05] Deleting magit-devel-emacs27_nox-3.2.1.76.pkg: package name changed to 'magit-devel-emacs-nox'
[00:00:05] Deleting magit-devel-emacs29-3.2.1.76.pkg: package name changed to 'magit-devel-emacs-devel'
[00:00:05] Deleting magit-devel-emacs29_nox-3.2.1.76.pkg: package name changed to 'magit-devel-emacs-devel-nox'
[00:00:05] Deleting transient-emacs27_canna-0.3.6_1.pkg: package name changed to 'transient-emacs-canna'
[00:00:05] Deleting transient-emacs27_nox-0.3.6_1.pkg: package name changed to 'transient-emacs-nox'
[00:00:05] Deleting transient-emacs29_nox-0.3.6_1.pkg: package name changed to 'transient-emacs-devel-nox'
[00:00:05] Deleting transient-emacs29-0.3.6_1.pkg: package name changed to 'transient-emacs-devel'
[00:00:05] Deleting with-editor-emacs27_canna-3.0.5.pkg: package name changed to 'with-editor-emacs-canna'
[00:00:05] Deleting with-editor-emacs27_nox-3.0.5.pkg: package name changed to 'with-editor-emacs-nox'
[00:00:05] Deleting with-editor-emacs29-3.0.5.pkg: package name changed to 'with-editor-emacs-devel'
[00:00:05] Deleting with-editor-emacs29_nox-3.0.5.pkg: package name changed to 'with-editor-emacs-devel-nox'
[00:00:05] Deleting stale symlinks... done
[00:00:05] Deleting empty directories... done
[00:00:05] Unqueueing existing packages
[00:00:05] Unqueueing orphaned build dependencies
[00:00:05] Sanity checking build queue
[00:00:05] Error: Packages stuck in queue (depended on but not in queue):
ccache-3.7.12_2
emacs-27.2,3
git-2.33.0
gmake-4.3_2
indexinfo-0.3.1
pkg-1.17.3
texinfo-6.8,1
[13amd64-default] [2021-10-21_01h18m26s] [crashed:] Queued: 20 Built: 0  Failed: 0  Skipped: 0  Ignored: 0  Fetched: 0  Tobuild: 20  Time: 00:00:05
[00:00:05] Logs: /usr/local/poudriere/data/logs/bulk/13amd64-default/2021-10-21_01h18m26s
[00:00:05] WWW: http://pkg.ftfl.ca/build.html?mastername=13amd64-default&build=2021-10-21_01h18m26s
[00:00:05] Cleaning up
[00:00:05] Unmounting file systems

3. Could we replace some '-' with '_' like the old package names, so it's easier to determine what part of the package name is the flavor?

--------------------------------------------------------------------------------------------------------------------------------------------------
|port@flavor                  | Current Package Name               | Currently Proposed Package Name      | Suggested Package Name               |
|-----------------------------|------------------------------------|--------------------------------------|--------------------------------------|
|devel/magit@full             | magit-emacs27-3.3.0                | magit-emacs-3.3.0                    | magit-emacs-3.3.0                    |
|devel/magit@nox              | magit-emacs27_nox-3.3.0            | magit-emacs-nox-3.3.0                | magit-emacs_nox-3.3.0                |
|devel/magit@canna            | magit-emacs27_canna-3.3.0          | magit-emacs-canna-3.3.0              | magit-emacs_canna-3.3.0              |
|                             |                                    |                                      |                                      |
|devel/magit@devel_nox        | magit-emacs29_nox-3.3.0            | magit-emacs-devel-nox-3.3.0          | magit-emacs_devel_nox-3.3.0          |
|devel/magit@devel_full       | magit-emacs29-3.3.0                | magit-emacs-devel-3.3.0              | magit-emacs_devel-3.3.0              |
|                             |                                    |                                      |                                      |
|devel/magit-devel@full       | magit-devel-emacs27-3.2.1.76       | magit-devel-emacs-3.2.1.76           | magit-devel-emacs-3.2.1.76           |
|devel/magit-devel@nox        | magit-devel-emacs27_nox-3.2.1.76   | magit-devel-emacs-nox-3.2.1.76       | magit-devel-emacs_nox-3.2.1.76       |
|devel/magit-devel@canna      | magit-devel-emacs27_canna-3.2.1.76 | magit-devel-emacs-canna-3.2.1.76     | magit-devel-emacs_canna-3.2.1.76     |
|                             |                                    |                                      |                                      |
|devel/magit-devel@devel_nox  | magit-devel-emacs29_nox-3.2.1.76   | magit-devel-emacs-devel-nox-3.2.1.76 | magit-devel-emacs_devel_nox-3.2.1.76 |
|devel/magit-devel@devel_full | magit-devel-emacs29-3.2.1          | magit-devel-emacs-devel-3.2.1.76     | magit-devel-emacs_devel-3.2.1.76     |
--------------------------------------------------------------------------------------------------------------------------------------------------
Comment 4 Joseph Mingrone freebsd_committer 2021-10-21 04:57:10 UTC
Table was too wide.  You can view it at https://ftfl.ca/paste/emacs-flavors-package-names.html
Comment 5 Yasuhiro Kimura freebsd_committer 2021-10-21 14:36:11 UTC
(In reply to Joseph Mingrone from comment #3)

I reprodeced the situation and confirmed if the problem really happens. At first I made crean install of 13.0-RELEASE amd64 and checked out ports 342b303a6a89 as ports tree. Editor/emacs-devel is updated to 29.0.50 with ports e7edd97198e4 and ports 342b303a6a89 is just previous commit of it in main branch.

----------------------------------------------------------------------
yasu@rolling-vm-freebsd4[1054]% git log -n 2 e7edd97198e4
commit e7edd97198e4
Author: Joseph Mingrone <jrm@FreeBSD.org>
Date:   Wed Sep 29 22:20:03 2021

    editors/emacs-devel: Update to 2021-10-01 commit, 30bbb57*
    
    * The major version was bumped from 28 to 29 since the last update.
    
    Approved by:    portmgr (implicit)
    Differential Revision:  https://reviews.freebsd.org/D32258

commit 342b303a6a89
Author: Jimmy Olgeni <olgeni@FreeBSD.org>
Date:   Sat Oct 2 03:13:27 2021

    lang/erlang-doc: Update to version 24.1.
yasu@rolling-vm-freebsd4[1054]%
----------------------------------------------------------------------

Then I did bulk build with poudriere and 13.0-RELEASE jail under following settings.

List of ports specified with '-f' option of `poudriere bulk`:
https://www.utahime.org/FreeBSD/Mk_Users_emacs.mk/ports-list.txt (*)
Settings used as /usr/local/poudriere.d/make.conf
https://www.utahime.org/FreeBSD/Mk_Users_emacs.mk/make.conf

After bulk build completed I did `pkg install` with each ports in (*) and following packages are installed as a result.

https://www.utahime.org/FreeBSD/Mk_Users_emacs.mk/pkg-info-aq.log

Next I updated ports tree to ports 126e3bb1f151.

----------------------------------------------------------------------
commit 126e3bb1f151
Author: Joseph Mingrone <jrm@FreeBSD.org>
Date:   Sat Oct 2 00:37:38 2021

    *: Chase new major version (29) of editors/emacs-devel
    
    Differential Revision:  https://reviews.freebsd.org/D32258
----------------------------------------------------------------------

Then I did bulk build again to update editors/emacs-devel and depending packages.

Now preparation has completed. First `pkg version -vL =` displays following output.

----------------------------------------------------------------------
root@rolling-vm-freebsd4[35]# pkg version -vL =
apel-emacs28_nox-10.8.20201106_1   ?   orphaned: editors/apel
c-sig-emacs28_nox-3.8.0.1_5        ?   orphaned: mail/c-sig
closql-emacs28_nox-1.0.6           ?   orphaned: databases/closql
dash.el-emacs28_nox-2.19.1         ?   orphaned: devel/dash.el
emacs-devel-nox-28.0.50.20210916,2 <   needs updating (index has 29.0.50.20211001,2)
emacs-w3m-emacs28_nox-1.4.632.b.20210917 ?   orphaned: www/emacs-w3m
emacsql-emacs28_nox-3.0.0          ?   orphaned: databases/emacsql
flim-emacs28_nox-1.14.9.20210529,1 ?   orphaned: editors/flim
forge-devel-emacs28_nox-0.2.1.14   ?   orphaned: devel/forge-devel
ghub-emacs28_nox-3.5.3             ?   orphaned: devel/ghub
git-modes-emacs28_nox-1.3.1,1      ?   orphaned: devel/git-modes
ja-lookup-emacs28_nox-1.99.96.20180209_7 ?   orphaned: japanese/lookup
magit-devel-emacs28_nox-3.2.1.32   ?   orphaned: devel/magit-devel
markdown-mode.el-emacs28_nox-2.4   ?   orphaned: textproc/markdown-mode.el
mew-devel-emacs28_nox-6.8.72_1     ?   orphaned: mail/mew-devel
pg.el-emacs28_nox-0.13             ?   orphaned: databases/pg.el
semi-emacs28_nox-1.14.7.20210613   ?   orphaned: editors/semi
transient-emacs28_nox-0.3.6        ?   orphaned: devel/transient
treepy.el-emacs28_nox-0.1.2_1      ?   orphaned: devel/treepy.el
with-editor-emacs28_nox-3.0.4      ?   orphaned: editors/with-editor
yaml-mode.el-emacs28_nox-0.0.15_1  ?   orphaned: textproc/yaml-mode.el
yaml.el-emacs28_nox-0.3.4          ?   orphaned: textproc/yaml.el
root@rolling-vm-freebsd4[35]#
----------------------------------------------------------------------

And result of `pkg upgrade` is as following.

----------------------------------------------------------------------
root@rolling-vm-freebsd4[36]# pkg upgrade
Updating Poudriere repository catalogue...
Poudriere repository is up to date.
All repositories are up to date.
Checking for upgrades (2 candidates): 100%
Processing candidates (2 candidates): 100%
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
        emacs-devel-nox: 28.0.50.20210916,2 -> 29.0.50.20211001,2

Number of packages to be upgraded: 1

Proceed with this action? [y/N]: y
[1/1] Upgrading emacs-devel-nox from 28.0.50.20210916,2 to 29.0.50.20211001,2...
[1/1] Extracting emacs-devel-nox-29.0.50.20211001,2: 100%
root@rolling-vm-freebsd4[36]#
----------------------------------------------------------------------

As you can see, only editors/emacs-devel is updated and depending ports aren't updated.
Comment 6 Yasuhiro Kimura freebsd_committer 2021-10-21 15:40:51 UTC
(In reply to Joseph Mingrone from comment #3)

> 2. It looks like the transition won't be smooth.  This doesn't happen without the patch.  Maybe we just need to bump PORTVERSION?

Certainly it is the hurdle that need to be overcome.

At first PORTVERSION of all dependent ports need to be bump to rebuild packages with new EMACS_PKGNAMESUFFIX. Based on it, for portmaster user it is properly handled with `portmaster -a`.  But for binary packages user it isn't so easy to handle it. Since package name of dependent ports change, `pkg` command regards them as orphaned. And unfortunately I can't find the way to upgrading orphaned package without once removing and reinstalling them. So following steps are probably easiest and most reliable.

1. Execute `pkg query -a '%a %o' | awk '$1==0 {print $2}' | sort > /tmp/package-origin-list.txt`. This command creates the list of origin of packages manually installed by user.
2. Remove Emacs and dependent packages with `pkg remove -g 'emacs*'`.
3. Execute `pkg query -a '%a %o' | awk '$1==0 {print $2}' | sort | diff /tmp/package-origin-list.txt -`. This command shows manually installed packages removed by step 2.
4. Install each package showed by step 3 with `pkg install`.
Comment 7 Joseph Mingrone freebsd_committer 2021-10-22 02:51:34 UTC
Thank you for confirming the problem.  We could probably add a new UPDATING entry that points to the 20200107 entry when the editors/emacs-devel major version was bumped from 27 to 28.

I think the remaining TODOs are:

1. Bump PORTREVISION of consumer ports
2. Add simple UPDATING entry that references 20200107 entry
3. Tweak flavor names
4. Wait for feedback from ashish@.
Comment 8 Bryan Drewery freebsd_committer 2021-10-23 13:19:17 UTC
This patch runs into numerous Poudriere errors. I have not yet figured it out fully, however "" is definitely not going to work. Directly in the ports you can see why:
 
~/git/ports/main/devel/magit-devel # make -V PKGNAME FLAVOR=full
magit-devel""-3.2.1.76

The "" is taken literally. Making it simply blank works, if I understand the intent right.

~/git/ports/main/devel/magit-devel # make -V PKGNAME FLAVOR=full
magit-devel-3.2.1.76


I haven't finished my analysis but fixing that does allow Poudriere to avoid the errors. Changing to blank does result in these kind of package names if that is expected:

[00:00:30] [Dry Run] Deleting dash.el-emacs27-2.19.1_1.pkg: package name changed to 'dash.el'
[00:00:30] [Dry Run] Deleting dash.el-emacs27_canna-2.19.1_1.pkg: package name changed to 'dash.el-emacs-canna'
[00:00:30] [Dry Run] Deleting dash.el-emacs29-2.19.1_1.pkg: package name changed to 'dash.el-emacs-devel'
[00:00:30] [Dry Run] Deleting dash.el-emacs29_nox-2.19.1_1.pkg: package name changed to 'dash.el-emacs-devel-nox'
[00:00:30] [Dry Run] Deleting magit-devel-emacs27-3.2.1.76.pkg: package name changed to 'magit-devel'
[00:00:30] [Dry Run] Deleting magit-devel-emacs27_canna-3.2.1.76.pkg: package name changed to 'magit-devel-emacs-canna'
[00:00:30] [Dry Run] Deleting magit-devel-emacs29-3.2.1.76.pkg: package name changed to 'magit-devel-emacs-devel'
[00:00:30] [Dry Run] Deleting magit-devel-emacs29_nox-3.2.1.76.pkg: package name changed to 'magit-devel-emacs-devel-nox'
[00:00:30] [Dry Run] Deleting transient-emacs27-0.3.6_1.pkg: package name changed to 'transient'
[00:00:30] [Dry Run] Deleting transient-emacs27_canna-0.3.6_1.pkg: package name changed to 'transient-emacs-canna'
[00:00:30] [Dry Run] Deleting transient-emacs29-0.3.6_1.pkg: package name changed to 'transient-emacs-devel'
[00:00:30] [Dry Run] Deleting transient-emacs29_nox-0.3.6_1.pkg: package name changed to 'transient-emacs-devel-nox'
[00:00:30] [Dry Run] Deleting with-editor-emacs27-3.0.5.pkg: package name changed to 'with-editor'
[00:00:30] [Dry Run] Deleting with-editor-emacs27_canna-3.0.5.pkg: package name changed to 'with-editor-emacs-canna'
[00:00:30] [Dry Run] Deleting with-editor-emacs29-3.0.5.pkg: package name changed to 'with-editor-emacs-devel'
[00:00:30] [Dry Run] Deleting with-editor-emacs29_nox-3.0.5.pkg: package name changed to 'with-editor-emacs-devel-nox'


I plan to add a validation to bsd.port.mk about "" being invalid, among whatever else is a problem here.
Comment 9 Bryan Drewery freebsd_committer 2021-10-23 13:23:53 UTC
I do run into other errors on a different experimental Poudriere branch. These may or may not be bogus. Still looking into it but wanted to post as I may take a few days to work through Poudriere's handling of it and this PR might be able to progress on its own.

[00:00:11] [Dry Run] Error: compute_deps_pkg failed to lookup pkgname for devel/dash.el@nox processing package magit-devel-emacs-nox-3.2.1.76 from devel/magit-devel -- Does devel/dash.el provide the 'nox' FLAVOR?
[00:00:11] [Dry Run] Error: compute_deps_pkg failed to lookup pkgname for devel/transient@nox processing package magit-devel-emacs-nox-3.2.1.76 from devel/magit-devel -- Does devel/transient provide the 'nox' FLAVOR?
[00:00:11] [Dry Run] Error: compute_deps_pkg failed to lookup pkgname for editors/with-editor@nox processing package magit-devel-emacs-nox-3.2.1.76 from devel/magit-devel -- Does editors/with-editor provide the 'nox' FLAVOR?
[00:00:11] [Dry Run] Error: compute_deps_pkg failed to lookup PKGNAME for devel/dash.el@nox processing package magit-devel-emacs-nox-3.2.1.76
[00:00:11] [Dry Run] Error: compute_deps_pkg failed to lookup PKGNAME for devel/transient@nox processing package magit-devel-emacs-nox-3.2.1.76
[00:00:11] [Dry Run] Error: compute_deps_pkg failed to lookup PKGNAME for editors/with-editor@nox processing package magit-devel-emacs-nox-3.2.1.76
Comment 10 Joseph Mingrone freebsd_committer 2021-10-23 17:15:59 UTC
Review created at https://reviews.freebsd.org/D32613

- Use flavor names that conform to what's described in the Porter's Handbook [1] and fix a problem with "" being appended to the package name, which causes poudriere to fail.

- Add UPDATING entry

- Bump PORTREVISIONs

[1] ...flavor names can only contain lowercase letters, numbers, and the underscore _.
Comment 11 commit-hook freebsd_committer 2021-11-15 15:21:58 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=061afcca16999e2e4e791d4517a918d0d606d692

commit 061afcca16999e2e4e791d4517a918d0d606d692
Author:     Joseph Mingrone <jrm@FreeBSD.org>
AuthorDate: 2021-10-23 15:11:31 +0000
Commit:     Joseph Mingrone <jrm@FreeBSD.org>
CommitDate: 2021-11-15 15:19:58 +0000

    USES=emacs: Chase package name changes

    PR:             259259
    Differential Revision:  https://reviews.freebsd.org/D32613

 audio/emms/Makefile                   | 2 +-
 cad/dinotrace/Makefile                | 2 +-
 cad/verilog-mode.el/Makefile          | 2 +-
 databases/bbdb/Makefile               | 2 +-
 databases/closql/Makefile             | 1 +
 databases/emacsql/Makefile            | 2 +-
 databases/pg.el/Makefile              | 2 +-
 deskutils/howm/Makefile               | 1 +
 devel/cask/Makefile                   | 2 +-
 devel/clojure-cider/Makefile          | 2 +-
 devel/dash.el/Makefile                | 2 +-
 devel/distel/Makefile                 | 2 +-
 devel/epl.el/Makefile                 | 2 +-
 devel/forge-devel/Makefile            | 1 +
 devel/forge/Makefile                  | 1 +
 devel/ghub/Makefile                   | 1 +
 devel/git-modes/Makefile              | 1 +
 devel/libegit2/Makefile               | 2 +-
 devel/magit-devel/Makefile            | 1 +
 devel/magit/Makefile                  | 1 +
 devel/p5-Sepia/Makefile               | 2 +-
 devel/pkg-info.el/Makefile            | 2 +-
 devel/psvn/Makefile                   | 2 +-
 devel/tablist/Makefile                | 2 +-
 devel/transient/Makefile              | 1 +
 devel/treepy.el/Makefile              | 2 +-
 editors/apel/Makefile                 | 2 +-
 editors/flim/Makefile                 | 2 +-
 editors/paredit-mode.el/Makefile      | 2 +-
 editors/psgml/Makefile                | 2 +-
 editors/semi/Makefile                 | 2 +-
 editors/slime/Makefile                | 2 +-
 editors/sly-asdf/Makefile             | 2 +-
 editors/sly-named-readtables/Makefile | 2 +-
 editors/sly-quicklisp/Makefile        | 2 +-
 editors/sly/Makefile                  | 2 +-
 editors/web-mode/Makefile             | 2 +-
 editors/with-editor/Makefile          | 1 +
 graphics/xface.el/Makefile            | 2 +-
 irc/riece/Makefile                    | 2 +-
 japanese/boiled-mozc/Makefile         | 2 +-
 japanese/cp5022x-el/Makefile          | 2 +-
 japanese/ddskk/Makefile               | 2 +-
 japanese/lookup/Makefile              | 2 +-
 japanese/migemo.el/Makefile           | 2 +-
 japanese/mozc-el/Makefile             | 1 +
 japanese/navi2ch/Makefile             | 2 +-
 japanese/yc.el/Makefile               | 2 +-
 lang/alchemist.el/Makefile            | 2 +-
 lang/clojure-mode.el/Makefile         | 2 +-
 lang/csharp-mode.el/Makefile          | 2 +-
 lang/elixir-mode.el/Makefile          | 2 +-
 lang/haskell-mode.el/Makefile         | 2 +-
 lang/php-mode.el/Makefile             | 2 +-
 lang/tuareg-mode.el/Makefile          | 2 +-
 mail/c-sig/Makefile                   | 2 +-
 mail/mailest/Makefile                 | 2 +-
 mail/mew-devel/Makefile               | 2 +-
 mail/mew/Makefile                     | 2 +-
 mail/mu4e-maildirs/Makefile           | 2 +-
 mail/mu4e/Makefile                    | 2 +-
 mail/notmuch-emacs/Makefile           | 1 +
 mail/wanderlust/Makefile              | 2 +-
 mail/x-face-e21/Makefile              | 2 +-
 mail/xcite/Makefile                   | 2 +-
 math/coq/Makefile                     | 2 +-
 math/ess/Makefile                     | 2 +-
 misc/elscreen/Makefile                | 2 +-
 net-im/jabber.el/Makefile             | 2 +-
 net/tramp/Makefile                    | 2 +-
 print/auctex/Makefile                 | 2 +-
 print/hyperlatex/Makefile             | 2 +-
 print/pdf-tools/Makefile              | 2 +-
 print/yatex/Makefile                  | 2 +-
 security/starttls/Makefile            | 2 +-
 sysutils/puppet-mode.el/Makefile      | 2 +-
 textproc/dictem/Makefile              | 2 +-
 textproc/dictionary/Makefile          | 2 +-
 textproc/doc-mode.el/Makefile         | 2 +-
 textproc/markdown-mode.el/Makefile    | 2 +-
 textproc/muse/Makefile                | 2 +-
 textproc/uim-el/Makefile              | 2 +-
 textproc/xml-lite.el/Makefile         | 2 +-
 textproc/yaml-mode.el/Makefile        | 2 +-
 textproc/yaml.el/Makefile             | 2 +-
 www/emacs-w3m/Makefile                | 2 +-
 86 files changed, 86 insertions(+), 74 deletions(-)
Comment 12 commit-hook freebsd_committer 2021-11-15 15:22:00 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1d376e5a14d80b6ac6ba42234c166356651db810

commit 1d376e5a14d80b6ac6ba42234c166356651db810
Author:     Joseph Mingrone <jrm@FreeBSD.org>
AuthorDate: 2021-10-23 15:08:56 +0000
Commit:     Joseph Mingrone <jrm@FreeBSD.org>
CommitDate: 2021-11-15 15:06:22 +0000

    UPDATING: Document removal of emacs version from package names

    PR:             259259
    Differential Revision:  https://reviews.freebsd.org/D32613

 UPDATING | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)
Comment 13 commit-hook freebsd_committer 2021-11-15 15:22:01 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f32475f3a44fe79191e6063066459c82a7a43986

commit f32475f3a44fe79191e6063066459c82a7a43986
Author:     Yasuhiro KIMURA <yasu@utahime.org>
AuthorDate: 2021-10-21 15:05:29 +0000
Commit:     Joseph Mingrone <jrm@FreeBSD.org>
CommitDate: 2021-11-15 15:06:15 +0000

    Mk/Uses/emacs.mk: Do not use Emacs major version in package names

    PR:             259259
    Differential Revision:  https://reviews.freebsd.org/D32613

 Mk/Uses/emacs.mk | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)