From nobody Fri Feb 23 02:51:10 2024 X-Original-To: freebsd-ports@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4TgvfN5r6jz5BVhM for ; Fri, 23 Feb 2024 02:51:24 +0000 (UTC) (envelope-from agh@riseup.net) Received: from mx1.riseup.net (mx1.riseup.net [198.252.153.129]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mx1.riseup.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TgvfM3y18z4bqK for ; Fri, 23 Feb 2024 02:51:23 +0000 (UTC) (envelope-from agh@riseup.net) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=riseup.net header.s=squak header.b=GMkxNCuV; spf=pass (mx1.freebsd.org: domain of agh@riseup.net designates 198.252.153.129 as permitted sender) smtp.mailfrom=agh@riseup.net; dmarc=pass (policy=none) header.from=riseup.net Received: from fews02-sea.riseup.net (fews02-sea-pn.riseup.net [10.0.1.112]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx1.riseup.net (Postfix) with ESMTPS id 4TgvfL1LG2zDqR5 for ; Fri, 23 Feb 2024 02:51:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1708656682; bh=vZfcjbhlDsHNzhivbIQ7ovK4xbD+/J1AAClqJMl3Tto=; h=Date:From:To:Subject:From; b=GMkxNCuV0qfab3TwdyRZ2i0gXCsIsfRe3IVzVs4fNYQ7btVh9t9fUKgxLpCS8mCze IlU0gwKbLWKEFJxizkTRWkf12+3966C4avK1vUZxkKOUmx/4S9stXJdJYdYf3lBuOx 6c++ubEbGBJYv7iBFgHuWQ2VZkDaCbPsUL+LB61o= X-Riseup-User-ID: 63A2D1709115015026FA372241844CFE52E41EB728EECC98972B8EF2336C4A6E Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews02-sea.riseup.net (Postfix) with ESMTPSA id 4Tgvf704X0zFvx4 for ; Fri, 23 Feb 2024 02:51:10 +0000 (UTC) List-Id: Porting software to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-ports List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-ports@freebsd.org X-BeenThere: freebsd-ports@freebsd.org MIME-Version: 1.0 Date: Fri, 23 Feb 2024 02:51:10 +0000 From: Alastair Hogge To: freebsd-ports@freebsd.org Subject: emulators/mame: Increasing option granularity woes Message-ID: <0f7f4f5675d1e75e504ad67d963e8874@riseup.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4TgvfM3y18z4bqK X-Spamd-Bar: ----- X-Spamd-Result: default: False [-5.20 / 15.00]; DWL_DNSWL_LOW(-1.00)[riseup.net:dkim]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; DMARC_POLICY_ALLOW(-0.50)[riseup.net,none]; R_DKIM_ALLOW(-0.20)[riseup.net:s=squak]; R_SPF_ALLOW(-0.20)[+a:mx1.riseup.net]; RWL_MAILSPIKE_GOOD(-0.10)[198.252.153.129:from]; MIME_GOOD(-0.10)[text/plain]; RCVD_IN_DNSWL_LOW(-0.10)[198.252.153.129:from]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_TRACE(0.00)[riseup.net:+]; RCPT_COUNT_ONE(0.00)[1]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; ASN(0.00)[asn:16652, ipnet:198.252.153.0/24, country:US]; ARC_NA(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; MISSING_XM_UA(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-ports@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-ports@freebsd.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+] Hello, The current in-tree port of mame, 0.261, is built around the core multi-emulation framework, which results in the usual mega monolithic mame binary. There are options for TOOLS, which include two other emulators. The current upstream release, 0.262 has enabled separation of mame from the rest of the project—TOOLS can now be built separately. I would like to reflect this in the Port, however, that means moving the two added emulators (LaserDisk player, and Netlist resolver) out of TOOLS (which I think the correct path to take). Considering the new upstream build pattern, I would like to configure the Port to option any of the emulators, and existing TOOLS. The problem I am facing, the three emulators require the same (or close to it) runtime config/resources, the assets are currently covered by the do-install target[1], how do I cover the assets in the Port, specifically in the pkg-plist to be conditioned on either of 3 potential emulator options? Should I add an option MAMEDATA? But then that moves the problem to the user, why should the user make a choice to install the runtime data, if they select any emulator, the Port should automate that? How can I avoid fixing the data to only one emulator option? In summary, the current Port is structured as a monolith with optional tools (including two other emulators fixed to the bulk MAME build), enabling a Qt debugger for the emulators, enabling platform optimisation, and object production type. What I am attempting, which is not proving successful, a minimal port (which is a single project man page, tho would be nicer to have at a minimum TOOLS or at least one emulator), adding new options for the current 3 build-able emulators, separate TOOLS from the emulators, and a way to install the data if any emulator is selected, the last element being the most difficult. Any feedback would be muchly appreciated. 1: https://codeberg.org/FreeBSD/freebsd-ports/src/commit/7ec8098ee3483dc19cbd23e16139a737d601153a/emulators/mame/Makefile#L189 To anarchy and health, Alastair