On Thu, Aug 26, 2021 at 11:07 AM Sérgio Basto sergio@serjux.com wrote:
On Thu, 2021-08-26 at 10:42 +0200, Mikolaj Izdebski wrote:
On Tue, Aug 24, 2021 at 4:46 PM Mat Booth fedora@matbooth.co.uk wrote:
On Tue, 24 Aug 2021 at 15:25, Sérgio Basto sergio@serjux.com wrote:
[1] %add_maven_depmap org.eclipse.tycho:tycho-bundles- external:txt:manifest:%{version} tycho/tycho-bundles-external- manifest.txt
This is probably a question for Mikolaj (CC'd).
Mikolaj, in this case tycho is trying to install a text file. Is it possible to do it with %mvn_artifact?
Yes, sure it is possible. Everything that can be done with %add_maven_depmap can also be achieved with %mvn_artifact and %mvn_install.
I believe in you , but how we replace [1] ?
[1] %add_maven_depmap org.eclipse.tycho:tycho-bundles- external:txt:manifest:%{version} tycho/tycho-bundles-external- manifest.txt
Consider the following example. It produces a package with the following contents (text file is installed as Maven artifact, with corresponding metadata):
$ rpm -qlp test-1-1.fc36.noarch.rpm /repo/base/dir/artifact /repo/base/dir/artifact/location-manifest.txt /usr/share/maven-metadata/test.xml
Name: test Version: 1 Release: 1%{?dist} Summary: test License: Public Domain URL: file:/dev/null BuildArch: noarch
BuildRequires: javapackages-local
%description test
%prep %setup -qcT
# Configure XMvn repository for holding custom artifacts .txt artifacts with classifier manifest mkdir -p .xmvn/config.d echo " <configuration> <repositories> <repository> <id>custom-repo-for-text-manifest-installation</id> <type>jpp</type> <properties> <root>repo/base/dir</root> </properties> <filter> <and> <equals> <extension/> <string>txt</string> </equals> <equals> <classifier/> <string>manifest</string> </equals> </and> </filter> </repository> <repository> <id>install</id> <type>compound</type> <configuration> <repositories> <repository>base-install</repository> <repository>custom-repo-for-text-manifest-installation</repository> </repositories> </configuration> </repository> </repositories> </configuration> " >.xmvn/config.d/custom-install-repo.xml
# Create a text file echo test >foo.txt
# Tell XMvn that foo.txt is a Maven artifact %mvn_artifact bar:foo:txt:manifest:%{version} foo.txt
# Tell XMvn to install attached artifacts, by default it doesn't install them %mvn_package bar:foo:txt:manifest:%{version}
# Tell XMvn where should the artifact be installed %mvn_file bar:foo:txt:manifest:%{version} artifact/location
%install # Perform artifact installation. %mvn_install
%files -f .mfiles
%changelog
-- Mikolaj
-- Mikolaj
For example, to start you off, I fixed the tycho bootstrap issue in this change:
https://src.fedoraproject.org/rpms/tycho/c/be3860f37b8eb2c52079fac0deeac94ba...
It was due to an ambiguous requirement on a package that is split between multiple bundles -- a "split-package." Adding an explicit require-bundle directive gives tycho enough information to correctly resolve the correct bundle.
So bootstrap mode should now work on F34.
For F35+ there are still multiple issues to resolve before you can begin to bootstrap tycho and eclipse there:
- tycho and eclipse BR maven-install-plugin is retired
- eclipse itself is retired
- aqute-bnd has missing osgi metadata since the upgrade to 5.2 (I
believe this is causing the issue in your original mail)
- hamcrest has missing osgi metadata since the upgrade to 2.2
(therefore junit 4 almost certainly has a unsatisfiable osgi dep and probably will need rebuild after fixing hamcrest)
- objectweb-asm has missing osgi metadata since the upgrade to
9.1
- atinject has broken osgi metadata since the upgrade to 1.0.3
- felix-scr has broken osgi metadata since the upgrade to 2.1.26
- Various eclipse deps are orphaned and will be retired soon:
lucene, icu4j, jetty, felix-scr, felix-gogo-parent, felix-gogo-runtime, felix-gogo-shell, felix-gogo-command, takari-polyglot, cbi- plugins, eclipse-license, eclipse-emf and eclipse-ecf
I opened some bug reports: https://bugzilla.redhat.com/show_bug.cgi?id=1996621 https://bugzilla.redhat.com/show_bug.cgi?id=1996787
aqute-bnd is fixed . atinject seems is also fixed .
And that's just the things that I can immediately see without actually trying to build it on F35. There are probably more problems that I've missed.
Once all that is all fixed, the general process of bootstrapping eclipse into a new buildroot is as follows:
- Build tycho -- (bootstrap)
- Build cbi-plugins
3a. Build eclipse-license 3b. Build eclipse-emf -- (bootstrap) 3c. Build eclipse-ecf 4. Build eclipse -- (bootstrap) 5. Rebuild tycho -- (full build) 6. Rebuild eclipse -- (full build) 7. Rebuild eclipse-emf -- (full build)
I can answer questions about the process, but I don't have time any more to do any real maintenance.
Hope this helps.
yes it helps , as you wrote many updates on rawhide missing osgi metadata etc , it will be a long way . I will not rush myself .
Thank you.
Sérgio M. B.
-- Mat Booth http://fedoraproject.org/get-fedora
-- Sérgio M. B.