How to Use the openEuler User Repository

waaagh2023-02-20User software repositoryRPMPyPIRubyGemsInfrastructureEUR

TL;DR

The openEuler user repository is built based on the copr project. If you are familiar with copr, you can directly start your journey with the openEuler user repository.

Overview

This document describes how to use the openEuler user repository. Feedback channels are as follows:

Basic Concepts

Before using the openEuler user repository, you need to know the following concepts:

  1. User: A user is the entity that uses the system and initiates all operations.
  2. Project: Each user can create multiple projects to organize one or more software packages by creating a software package repository for each openEuler release.
  3. Software package: source package
  4. Build: context of a build of an RPM package, including the srpm package and some RPM packages generated during the build process.
  5. Repository: software package repository built for a openEuler release
└── User
    ├── Project
    │   └── package 1
    │       ├── build 1
    │       │   └── log
    │       ├── build 2
    │       │   └── log
    │       ├── build 3
    │       │   └── log
    │       │   └── rpms
    │       │   └── src.rpm
    │   └── package 2
    │   └── repo for 22.03-x86_64
    │       ├── pkg1.noarch.rpm
    │       ├── pkg1-debuginfo.rpm
    │       ├── pkg2.x86_64.rpm
    │       ├── pkg2-debuginfo.rpm
    │   └── repo for 22.03-aarch64

How to Use

Preparations

An openEuler account is required. If you do not have an account, register one in the openEuler account center.


Register or log in to your openEuler account.


Go to the home page of the openEuler user repository.


Use your openEuler ID to log in. After the login, your profile is displayed.


Building a Project

Click New Project to create a project.

  • Project Name: This parameter cannot be modified after the project is created.
  • Description, Instructions, Homepage, and Contact: These parameters are optional and can be modified after the project is created.
  • Chroots: This parameter is mandatory and can be modified after the project is created. Select a required software package build environment.
  • External Repositories: This parameter is optional. Input software repositories on which the build process depends.


Click Create.


After the project is created, you can download the repository configuration file of a required version under Repo Download. (No software package is available in the current repository.)

Then, let's build a simple software package!
Click the Packages tab and then click Create a New Package.


We can directly add the isulad software package of openEuler because it contains the SPEC file and source package required for the build.


After the software package is created, click Rebuild to trigger a build.


Click Build. The background build system starts to build your software package. You can click the task ID to view task logs in real time.


In the task details, you can view the compilation logs and generated RPM packages.


Content in chroot


Building a Software Package on PyPI

The user repository provides the capability of quickly packaging software packages on PyPI. When adding a software package, you can directly add the name of the software package on PyPI.


Building a Software Package on RubyGems

You can build a software package on RubyGems following Project > Builds > New Build.


Using the User Repository

Go to the project homepage and obtain the repository configuration file of the corresponding version.


Run cd /etc/yum.repos.d/ && curl -OL <your repo url> to download the corresponding repository configuration. Run dnf in <package name> to install the software package in the corresponding repository. Each project has an independent GPG key to sign the RPM packages.

通过EUR安装软件包

  1. The user repository uses pyporter of the openEuler community to automatically pack packages on PyPI. If you have any questions, please submit a quick issue or issue.
  2. The user repository uses rubyporter of the openEuler community to automatically pack packages on RubyGems. If you have any questions, please submit a quick issue or issue.

[Disclaimer] This article only represents the author's opinions, and is irrelevant to this website. This website is neutral in terms of the statements and opinions in this article, and does not provide any express or implied warranty of accuracy, reliability, or completeness of the contents contained therein. This article is for readers' reference only, and all legal responsibilities arising therefrom are borne by the reader himself.