From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id uNzaA9hNw2QmSAEASxT56A (envelope-from ) for ; Fri, 28 Jul 2023 07:10:48 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id gFfPA9hNw2QTaAAA9RJhRA (envelope-from ) for ; Fri, 28 Jul 2023 07:10:48 +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 79CBA5F82C for ; Fri, 28 Jul 2023 07:10:46 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=lepiller.eu header.s=dkim header.b=nJ07hymk; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=lepiller.eu ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1690521047; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=tkZ+hyGLhCbRTK5ioGwl69ukTxlLCY3uzHw3vyUHUJI=; b=DiSgnZF6swACB3D0jZ2T1M3RfwhQBG9MFAfFcbxhLEVVjr9vEtua12jyg99nZB92l5yta8 IypX67TBOKG10XuaZHm7FRjwcxkGjbLSp7RuEI6L3Qtk8J+jI88nQ1k2UCvtPYdmIcGzHx YfKYSjQJCJtjymtOHjKpxamsSu80juCBv8yIU0ZFdrmVoZ0zdTcSJSk7m5kf9i1gbKpEKf NadPSSdLvmMk8BDrPHaNP38YwfRh/E6Aw++WXD8S/zNJSh6OF+3CtDkpor963cWNchocTO pOhsgKo9AAtK7fMc5vyWszyAqlxrmhYN7Fz252fr72tHK1KF9dwA4Cn/RrtDtQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=lepiller.eu header.s=dkim header.b=nJ07hymk; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=lepiller.eu ARC-Seal: i=1; s=key1; d=yhetil.org; t=1690521047; a=rsa-sha256; cv=none; b=QOyREOXb/H7cugB6Hp+eAO8Jq4Qpaf9gQEVApD7wz7qchU8gtmwKX0dRUaV2spdooTAU11 /zSswHQ7ZRL16LfyA8UsXcc6fxIJa7nQizJmnzOq90882l439Jydt1BfTc8zhukF92H4xz tEFDMQneM4lwQdFMajFQ7H1LzZ2HmcI9c8a/rBJFyaI5tSgXtwINsOqv2lIrtizn0XWchl gNZ4sWCEqImJV+xk9YzwG1vGfCQEY1HlmH+x5b6IqRGvsiItDzXNLeBMX/pbEsIqexohDX l75MhrpaQXv2seVTkHO6bGdJosMvVH/7cDJkMXgXD/eOyfGk1tyuK1X/0nEgaQ== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qPFiz-00064l-AN; Fri, 28 Jul 2023 01:09:13 -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 1qPFiw-00064N-ML for help-guix@gnu.org; Fri, 28 Jul 2023 01:09:10 -0400 Received: from lepiller.eu ([89.234.186.109]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qPFit-00024X-Bm for help-guix@gnu.org; Fri, 28 Jul 2023 01:09:10 -0400 Received: from lepiller.eu (localhost [127.0.0.1]) by lepiller.eu (OpenSMTPD) with ESMTP id fb947869; Fri, 28 Jul 2023 05:07:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=lepiller.eu; h=date:from :to:cc:subject:in-reply-to:references:message-id:mime-version :content-type:content-transfer-encoding; s=dkim; bh=tkZ+hyGLhCbR TK5ioGwl69ukTxlLCY3uzHw3vyUHUJI=; b=nJ07hymkp+P1h1AZos72I5sbiKgJ d8jg08L5PngA96FMyJ7kWABPenaLICHFJFynESd8N5/1L5QXV5qae25zDjoldgek iALLvjJ0NNryoe3w2yJfR9LfueERospnufru8Nzq2jzdzvffGFTuVVZoq9hiwAI1 /cHUF/AIA/BfM3+w1Njf+XgRM4mOmBGJ1FVhTUFO4NHSuw6pF/V2yBBaFZC+x+7c Twjhc7p/TaW+aDcWH3eTRI5a9m+OdZFyYVoRhHuF+Ty0fplHViNIfaMcfsAWR7go TfjJLswM1dYvJJEEPT4ZcrQDtxurIEqczwEVK/Y7wXgLeX091QR0NYFOpw== Received: by lepiller.eu (OpenSMTPD) with ESMTPSA id 3730686f (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 28 Jul 2023 05:07:58 +0000 (UTC) Date: Fri, 28 Jul 2023 07:07:56 +0200 From: Julien Lepiller To: Bruno Victal CC: bjoern.hoefling@bjoernhoefling.de, help-guix Subject: Re: Guidance for packaging Java programs User-Agent: K-9 Mail for Android In-Reply-To: <7dd90295-0e7a-720a-93df-b2f5c7cba899@makinata.eu> References: <2c37e0d5-b110-ab8a-8810-7f73ab0ec180@makinata.eu> <7dd90295-0e7a-720a-93df-b2f5c7cba899@makinata.eu> Message-ID: <05831405-1E09-4E8B-B778-BBF890692078@lepiller.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=89.234.186.109; envelope-from=julien@lepiller.eu; helo=lepiller.eu X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Spam-Score: -8.11 X-Migadu-Queue-Id: 79CBA5F82C X-Migadu-Spam-Score: -8.11 X-Migadu-Scanner: mx0.migadu.com X-TUID: VWmgv+ZKpG3U Le 28 juillet 2023 04:09:42 GMT+02:00, Bruno Victal = a =C3=A9crit=C2=A0: >Hi Julien, > >On 2023-07-13 18:48, Julien Lepiller wrote: >> If you feel like helping, maybe an importer would be a good first step = :)=2E You should be able to get info from Maven Central (get the pom files,= they are XML files and we have a module somewhere to handle them (guix bui= ld maven pom) I think)=2E It should work for maven and gradle packages at l= east=2E Mapping maven name to guix names might also be challenging, but we = can solve with an upstream-name property=2E >>=20 >> Here are some more resources if you want to learn more about Guix and J= ava: >>=20 >> I gave a talk about bootstrapping Maven in 2020: >>=20 >> https://xana=2Elepiller=2Eeu/guix-days-2020/guix-days-2020-julien-lepil= ler-bootstrapping-maven-480=2Emp4 > >Thanks! This was very helpful in providing an overview of the system=2E > >Can we say that the maven in Guix has already been =E2=80=9Cbootstrapped= =E2=80=9D or is there something still missing? >Given the large and non-trivial nature of just the =E2=80=9Cbootstrap=E2= =80=9D part, would it make sense to split >gnu/packages/maven=2Escm into maven-bootstrap=2Escm and maven-=2Escm files to keep things manageable? Maven itself is bootstrapped, along with the essential plugins=2E We're st= ill missing many plugins=2E As long as we don't have maven-plugin-plugin, w= e need to build them "manually" in the same way we build other other plugin= s=2E It could be an interesting target for improving the situation=2E > >The maven-importer situation is quite unfortunate due to the often absent= source location, a quick glance >here suggests that the best we might hope for is an automation-=C2=BD app= roach: generate =E2=80=9Cskeleton=E2=80=9D package >definitions and manually fill-in the source & co=2E > >Some additional maven related questions: > >* What is 'sisu=2Esh' & 'components=2Esh' and when/what are they used for= ? They are scripts to automatically generate some files that are required at= runtime for "dependency injection"=2E Normally, this generation is done by= a maven plugin, but in the bootstrap, we can't use maven, so we managed to= replace that with a small script=2E > >* Is it common for maven plugins to end up with package definitions >that make heavy use of inherit? (a quick glance at gnu/packages/maven=2Es= cm >gives the impression that it all looks very fragile due to the matryoshka= -like >inheritance rabbit-holes) There's inheritance everywhere in java and maven packages=2E There shouldn= 't be that many layers though=2E Usually, there's a package definition and = its bootstrap version or other components from the same source inherit from= it=2E If you find a way to simplify all that, it's more than welcome :)