How-to create 'packages gitlab-ce repository mirror in Artifactory' - repository

I use Artifactory Version 6.5.0
I couldn't create a mirror for https://packages.gitlab.com/gitlab/gitlab-ce repository. The Official Documentation recommends to use at apt-mirror utility. Yes, It works. I want to have the mirror in Artifactory.
I found a solution. URL for remote repository in Artifactory has name https://packages.gitlab.com/gitlab/gitlab-ce
Name doesn't include OS Linux.(for example Debian, Ubuntu etc)
I set type is Debian.
Sources list will be:
deb [arch=amd64] https://artifactory.example.com/gitlab-ce-deb-remote/ubuntu/ xenial main
It is example.
I resolved this problem, closed.

Related

Conan - no bintray?

I'm trying to add Conan support to my project.
Unfortunately I can't find the libraries:
GLI
PHYSFS
that were hosted on bintray.
I read that bintray has been shut down and repositories are being moved successively to conan center.
In this case I have a question how can I download these libraries using Conan?
Is there any way around this problem?
Conan PhysFs repository:
https://github.com/bincrafters/conan-physfs
The Bincrafters repositories was migrated to Artifactory Cloud, you can use the address:
conan remote add bincrafters https://bincrafters.jfrog.io/artifactory/api/conan/public-conan
You can visualize Bincrafters' repository here: https://bincrafters.jfrog.io
Also, it's well documented here and here

Please explain how to use FPM + pleaserun to create a Linux service

My goal is to package a service as deb & rpm artifacts using FPM (v1.9.3).
I would like to target Ubuntu 18.04 and Centos 7.
The service is comprised of an executable and multiple dll files.
The problem:
According to FPM documentation I should use the "Pleaserun" source to create a universal service installer and the "dir" source to pack the files.
Unfortunately, the combination does not work. The "Pleaserun" option overwrites all the rest of the flags and no dlls/executables are packaged.
I assume that my scenario is one of the basic use-cases. I would appreciate if you could share your working example of the command line invocation.
The following is the list of unanswered questions and directly related tickets that appear on the GitHub.
fpm + pleaserun: Documentation lacking
fpm + pleaserun: how-to use the .rpm or .deb generated

Latest nexus release artifact

I have setup a Nexus repository to store our built artifacts, third party dependencies, and home brewed shared source code headers.
I am currently using wget to retrieve the third party dependencies and shared source headers for use while building our software applications (the source for the specific applications are stored in separate git repositories).
When you use wget, you essentially have to know the exact version of the artifact that you want - you must explicitly know what the latest version number is.
Is there another way to retrieve the latest version of an artifact from the maven releases nexus repository without actually knowing what the version number is?
It would be ideal if there was a way to do this using wget instead of maven itself because I don't want to force users to install apache maven just for the purpose of downloading artifacts from nexus.
I think you cannot do it by using curl only. You will need to accomplish other tasks to achieve what you want.
Here is a possibility:
You should first access to maven repository metadata file. (You will find the documentation here: http://maven.apache.org/ref/3-LATEST/maven-repository-metadata/repository-metadata.html)
For instance, let's say that you want to download the latest version of the following maven artifact from maven central:
groupId = javax
artifactId = javaee-api
Download the following file:
http://central.maven.org/maven2/javax/javaee-api/maven-metadata.xml
Its contents will be something like:
<metadata>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<versioning>
<latest>8.0</latest>
<release>8.0</release>
<versions>
<version>7.0</version>
<version>8.0</version>
</versions>
<lastUpdated>20170915063942</lastUpdated>
</versioning>
</metadata>
Then you will need to access the latest tag to retrieve the latest version.
Documentation says the following regarding the meaning of the latest or release tag:
latest String What the latest version in the directory is, including snapshots
release String What the latest version in the directory is, of the releases only
You should find this file also in nexus repositories, and you should use something like xmllint to obtain the value you want. For instance:
curl http://central.maven.org/maven2/jx/javaee-api/maven-metadata.xml \
| xmllint --xpath "/metadata/versioning/latest/text()" -
or
curl http://central.maven.org/maven2/jx/javaee-api/maven-metadata.xml \
| xmllint --xpath "/metadata/versioning/release/text()" -
depending on what you want exactly.
After that, you can use the version information to compose the full URL of the artifact you want to download.
Hope this helps.
Cheers.
Edu.

Conan, C++ package manager, don't work for boost

I run: conan install Boost/1.64.0#conan/stable, and it fails.
Output:
C:\temp>conan install Boost/1.64.0#conan/stable
Boost/1.64.0#conan/stable: Not found in local cache, looking in remotes...
Boost/1.64.0#conan/stable: Trying with 'bintray'...
Boost/1.64.0#conan/stable: Trying with 'conan.io'...
ERROR: Unable to find 'Boost/1.64.0#conan/stable' in remotes
Trying other package, works:
C:\temp>conan install fmt/4.0.0#bincrafters/stable
fmt/4.0.0#bincrafters/stable: Not found in local cache, looking in remotes...
fmt/4.0.0#bincrafters/stable: Trying with 'bintray'...
fmt/4.0.0#bincrafters/stable: Trying with 'conan.io'...
Downloading conanmanifest.txt
[==================================================] 121B/121B
Downloading conanfile.py
[==================================================] 1.8KB/1.8KB
fmt/4.0.0#bincrafters/stable: Installing package
Requirements
fmt/4.0.0#bincrafters/stable from conan.io
Packages
fmt/4.0.0#bincrafters/stable:63da998e3642b50bee33f4449826b2d623661505
fmt/4.0.0#bincrafters/stable: Retrieving package 63da998e3642b50bee33f4449826b2d623661505
fmt/4.0.0#bincrafters/stable: Looking for package 63da998e3642b50bee33f4449826b2d623661505 in remote 'conan.io'
Downloading conanmanifest.txt
[==================================================] 938B/938B
Downloading conaninfo.txt
[==================================================] 491B/491B
Downloading conan_package.tgz
[==================================================] 159.8KB/159.8KB
fmt/4.0.0#bincrafters/stable: Package installed 63da998e3642b50bee33f4449826b2d623661505
Any idea why the package isn't found?
How to debug it?
Conan is a decentralized package manager (kind of git-like style), so it can have many remotes. By default it comes configured with 2 remotes:
conan-transit: Is a read-only copy of the old conan.io repository, which contains many different Boost packages, from different authors. Quality is variable, so some packages might work only for certain OS, or might fail for some configurations.
conan-center: It is a moderated/reviewed repository, package creators can submit inclusion requests to share their packages with the community.
So far conan-transit contains several Boost/1.64 packages, so can check it with:
$ conan search Boost* -r=conan-transit
$ conan search Boost* -r=conan-center
As you can see the package you are trying to install doesn't exist in these repositories.
As I said above, conan is decentralized, so you can use different remotes. For example, the "bincrafters" community has a bintray repo that can be added with:
$ conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
$ conan search Boost* -r=bincrafters
You will see they have a large number of Boost/1.64 packages, because they have created a modularized version of boost, in which every library lives in a different package, so you only get installed what you need.
UPDATE: Packages in the central repository are being renamed by the community to lowercase. Try with boost lowercase in the above if necessary.

Nexus: Configure jarvana as a remote repository -- what's the URL?

I'm converting an Ant build system to use a local Nexus mirror (1.3.6), and can't seem to get Nexus to proxy Jarvana repository. One of our dependencies is jython 2.5, which is available only on Jarvana.
I had no problem configuring other repository proxies, such as java.net at http://download.java.net/maven/2/
For Jarvana I've tried
www.jarvana.com/
www.jarvana.com/jarvana/
www.jarvana.com/maven2/
www.jarvana.com/maven/2/
www.jarvana.com/browse/
In all cases, the browse pane shows .index and .meta folders, and the .index is populated with nexus-maven-repository-index-* files, but searching for jython returns only the earlier (2.2 and prior) versions from Maven Central.
Am I using the wrong URL, and if so what URL should I be using?
Jarvana offers maven repository search capabilities and maven repository browse capabilities, but it does not offer a direct URL for its repository files. This is because all Jarvana files come from the maven central repository, so every file in Jarvana should be available in the maven central repository.
As an example, Jython 2.5 is available in the central repository at:
repo1.maven.org/maven2/org/python/jython/2.5.0/
Update: I did a bit more digging and it looks like the repository URL for Jarvana is http://www.jarvana.com/jarvana/browse. I've just added Jarvana as a proxy repository with that URL and successfully downloaded Jython 2.5.