how to build scl, example are old and rpmlint contradict the documentation? - redhat

I read the official documentation, some examples on github and on atomicorp . But I am still confused!
Should have to make 2 specs? One to build the tools and another one for a metapackage?
If yes why atomicscorp's spec file seem to be a mix of spec and the meta-spec files ?
Moreover with rpmlint 1.10 on metapackage seem to contracdict the documentation and examples. I have this error:
scl-runtime-package-without-%scl_files
SCL runtime package must contain %scl_files in %files section.
And examples used %scl_files statement into the runtime part (line 172)
Any help is welcome
Thanks

Should have to make 2 specs? One to build the tools and another one for a metapackage?
YES.
One for the metapackage
One for each package, which will require the metapackage-build in the buildroot.

Related

How do I use JavaFX in Eclipse 2021-06 JRE x86_64_16.0.2

There are a couple postings on this topic, but I can't get this to work with the latest version of Eclipse. I am using the JRE that comes with 2021-06, the one it puts in p2, x86_64_16.0.2.
I have tried various configurations of User Libraries, Maven dependencies, setting PATH_TO_FX, searching Eclipse Marketplace for JavaFX-as-a-plugin, e.g.,
How do I use JavaFX 11 in Eclipse? (2.5 years old)
https://www.javatpoint.com/javafx-with-eclipse
https://www.tutorialspoint.com/javafx-with-eclipse
https://gluonhq.com/products/javafx/
On a couple more elaborate examples, a couple builds had a scattering of missing methods, which I assume is due to JavaFX being somewhat in flux or instructions being quite outdated. I can get a simple Hello, World to build with javafx-sdk-17.0.1 as a User Library (what I'm doing now) and also some of the other configurations. When I try to launch Hello, World with various build-able configurations, I keep getting
Error: JavaFX runtime components are missing, and are required to run this application
Well, I was a bit too quick. I kept playing around, and adding quotes in the VM arg seems to work,
--module-path="C:\Program Files\Java\javafx-sdk-17.0.1\lib" --add-modules=javafx.controls
If the project is not a module project, the Used Library goes on the Classpath in the project properties, Libraries tab. If it is a module project, it goes on the Modulepath,and the following module-info.java file must be in the src with this minimal information:
module <myProject> {
requires javafx.controls;
exports <myPackageContainingFXAppClass>;
}
I just don't get it why people prefer to search half of the internet for tutorials instead of just consulting the official documentation first. Here it is: https://openjfx.io/openjfx-docs/#IDE-Eclipse It seems to be the best hidden secret that there actually is documentation for JavaFX that one could start with.
I just did the test. Googling for "javafx documentation" gives https://openjfx.io/ as the first search result.
I use --module-path=${PATH_TO_FX} --add-modules=javafx.controls.
Obviously PATH_TO_FX needs to be defined in Preferences->Run/Debug->String Substitution.

How do I link to third party Racket docs in Scribble?

I'm attempting to link to Scribble docs provided by a third party (as opposed to core) library (specifically, data/collection), but I'm having trouble getting it to work.
With these imports:
#require[scribble/manual
scribble-abbrevs/manual
scribble/example
racket/sandbox
#for-label[(only-in racket
(foldl f:foldl)
(foldr f:foldr))
(only-in data/collection
(foldl d:foldl)]]
The following link to Racket built-in docs works:
#racketlink[f:foldl "foldl"]
But this one, to the data/collection version:
#racketlink[d:foldl "foldl"]
... results in the following error:
raco setup: WARNING: undefined tag in <pkgs>/relation/scribblings/relation.scrbl:
raco setup: (undef "--UNDEFINED:d:foldl--")
raco setup: ((lib "data/collection.rkt") foldl)
I also attempted using the #tech tag, something like:
#tech[#:doc '(lib "scribblings/data/collection/collections.scrbl")]{"foldl"}
I tried several variants of this and wasn't able to get it to work -- one thing I couldn't uncover in my scanning of the documentation, for instance here, was how the lib link works -- what exactly is the path referring to? Evidently, "scribblings" does not refer to the local scribblings folder but some kind of global documentation path. But how does one know what path to use for a particular library's documentation? This is perhaps more of a secondary question to the primary one being asked above, but any light you can shed here would be helpful.
The problem is that you only install collections-lib. This does not include its documentation which lives at collections-doc.
So either install the package collections-doc or the (meta-)package collections which will include both collections-lib and collections-doc. Then, run raco setup relation to re-render your documentation. This would suffice for your own builds.
You probably should also modify info.rkt so that other people who install your package download the desired dependencies. There are a couple of ways to set this up.
An easy way is to put collections in deps, which will require users to install the meta-package collections, hence installing both collections-lib and collections-doc.
A more difficult way is put collections-lib in deps (you did this already) and put collections-doc in build-deps. An advantage of this approach is that users won't be required to download all tools necessary for building documentation if they install your package as a binary package (which will pre-renders the documentation already).

Adding python internal modules (cgi.py) to yocto image

I am trying to add some python libraries to my custom image.
So far, I successfully added some libraries.
Some others, like sqlalchemy, was requiring some python internal module named “dummy_threading” and thus producing some error output stating "No module named ‘dummy_threading’ ".
I found out you can solve this issue by adding ‘python-threading’ to the image.
Unfortunately, I came across a similar issue with the ‘python-requests’ library, which cannot be imported throwing 'No module named ‘cgi’ ".
cgi.py seems to be a python internal module, much like ‘dummy_threading’, but I can’t find a way to include it to my image.
I already tried to add 'python-cgi' with no success.
Does anyone have a solution to this ?
Lucas
Additionnal info:
Yocto 1.7 (I cannot upgrade it to the newest)
Python 2.7.3
Despite poky already contains maybe all what you need regarding python, as you mention, there are some internal parts of python which are provided in a different way.
A good idea to find out how to get what you miss is to inspect the manifest files. Such files can be found in your layers (basically poky and openembedded-core). For example, in poky is located in:
poky/meta/recipes-devtools/python/python-x.y-manifest.inc
If I check inside mine I can see:
FILES_${PN}-netserver="${libdir}/python2.7/cgi.* ${libdir}/python2.7/*HTTPServer.* ${libdir}/python2.7/SocketServer.* "
Notice the cgi. and the FILES_${PN}-netserver.
Finally that would mean that the package you need is actually "python-netserver".

Autofac AggregateService exists in NuGet?

I found Autofac AggregateService awesome but what is the right way to include it in my project: clone it from code.google.com or use NuGet?
I got used to use NuGet but I can't find nothing about AggegateService there. Any help?
It seems that AggregateService and the other Extras are currently "in limbo". There's been a recent change in that the contributions are now being made part of the same solution as Autofac core, while they were previously a separate solution. From the current build file you can see that extras will be made available as a separate Autofac.Extras package and a separate download from the Autofac page.
Meanwhile, you can use AutofacContrib 2.6.1 or to grab the source and compile a dll yourself.
Btw, thanks for finding AggregateService awesome ;)
Update: actually, reading the build file properly (and looking at the current source structure), the Extras parts will be distributed as individual packages. So expect to find Autofac.Extras.AggregateService on Nuget in the future.

Correct configuration to build libsrtp for the iphone?

I'm trying to build libsrtp so that I can use it on the iPhone (I intend to use it with libav's implementation of RTP).
My configuration:
./configure
--build='arm-apple-darwin9'
The warning I get when I attempt to call srtp_init():
file was built for unsupported file
format which is not the architecture
being linked (armv7)
Followed by the error:
"_srtp_init", referenced from:
+[Manager initialize:] in Manager.o
Symbol(s) not found
Does anyone know the proper configuration for building the library correctly?
The problem is it's not being built for ARM (or not for the right ARM; you need to look at which compiler is bing invoked with which options, and compare it to one you know is working). Did you do rebuild configure with autoconf? See the GNU build system wiki page for a starting point on how to reconfigure the build for other systems/processors.
FYI, if you find a bug in the configure.in or other parts of libsrtp, please let me know - I'm an author on it with checkin privs.
For general guidelines on cross compiling libraries for iOS I recommend this article:
http://tinsuke.wordpress.com/2011/02/17/how-to-cross-compiling-libraries-for-ios-armv6armv7i386/
The same guy also wrote an updated version for iOS 5. This one is specific to the tesseract library, but the general principles are the same:
http://tinsuke.wordpress.com/2011/11/01/how-to-compile-and-use-tesseract-3-01-on-ios-sdk-5/.
Using these as a guide I've had some success compiling a few libraries. Key things to note are that you have to disable compiling shared binaries. Also I recommend using clang rather than gcc.