Fedora repositories

Out GitHub actions are set to build and upload RPMs to repository.astro.unige.ch. See GitHub repositories / Actions for an explanation of each action.

We also use the third-party get-fedora-releases-action to retrieve the list of stable Fedoras and build for them. However, Centos7 is manually specified for each project, on its workflow file main.yaml.

Note that repository.astro.unige.ch points to the public facing web server, which is not accesible by ssh. repo01.astro.unige must be used instead. However, this one is only accessible from within the university network, so you will need to login first into, or proxy the connection via, login01.astro.unige.ch. You can do this by modifying ${HOME}/.ssh/config and adding the following:

1
2
3
Host repo01.astro.unige.ch # You can also use wildcards !login*.astro.unige.ch *.astro.unige.ch
    ForwardAgent yes
    ProxyJump login02.astro.unige.ch

The contents of the repository are under /srv/repository/www/html/euclid:

centos
devel
fedora
sources

centos and fedora contain the RPMs for the released versions. devel contain non-tagged versions:

develop
pull
stable

develop corresponds to the develop branch, stable to master, and pull RPMs build for pull requests (i.e. pull/Alexandria/118).

The structure under each one of those is identical to the root: centos, fedora. The substructure looks like:

centos/7
├── SRPMS
│   ├── Alexandria-2.27-dev.el7.src.rpm
│   ├── PhosphorosCore-1.4-dev.el7.src.rpm
│   ├── repodata
│   ├── repoview
│   └── SourceXtractorPlusPlus-0.19-dev.el7.src.rpm
└── x86_64
    ├── Alexandria-2.27-dev.el7.x86_64.rpm
    ├── Alexandria-debuginfo-2.27-dev.el7.x86_64.rpm
    ├── Alexandria-devel-2.27-dev.el7.x86_64.rpm
    ├── Alexandria-doc-2.27-dev.el7.x86_64.rpm
    ├── debug
    │   ├── Alexandria-debuginfo-2.27-dev.el7.x86_64.rpm
    │   ├── PhosphorosCore-debuginfo-1.4-dev.el7.x86_64.rpm
    │   ├── repodata
    │   ├── repoview
    ├── PhosphorosCore-1.4-dev.el7.x86_64.rpm
    ├── PhosphorosCore-debuginfo-1.4-dev.el7.x86_64.rpm
    ├── PhosphorosCore-devel-1.4-dev.el7.x86_64.rpm
    ├── PhosphorosCore-doc-1.4-dev.el7.x86_64.rpm
    ├── repodata
    ├── repoview
    ├── SourceXtractorPlusPlus-0.19-dev.el7.x86_64.rpm
    ├── SourceXtractorPlusPlus-debuginfo-0.19-dev.el7.x86_64.rpm
    ├── SourceXtractorPlusPlus-devel-0.19-dev.el7.x86_64.rpm
    └── SourceXtractorPlusPlus-doc-0.19-dev.el7.x86_64.rpm
fedora/35
├── SRPMS
│   ├── Alexandria-2.27-dev.fc35.src.rpm
│   ├── Phosphoros-1.4-dev.fc35.src.rpm
│   ├── PhosphorosCore-1.4-dev.fc35.src.rpm
│   ├── repodata
│   ├── repoview
│   └── SourceXtractorPlusPlus-0.19-dev.fc35.src.rpm
└── x86_64
    ├── Alexandria-2.27-dev.fc35.x86_64.rpm
    ├── Alexandria-debuginfo-2.27-dev.fc35.x86_64.rpm
    ├── Alexandria-debugsource-2.27-dev.fc35.x86_64.rpm
    ├── Alexandria-devel-2.27-dev.fc35.x86_64.rpm
    ├── Alexandria-doc-2.27-dev.fc35.x86_64.rpm
    ├── debug
    │   ├── Alexandria-debuginfo-2.27-dev.fc35.x86_64.rpm
    │   ├── Alexandria-debugsource-2.27-dev.fc35.x86_64.rpm
    │   ├── PhosphorosCore-debuginfo-1.4-dev.fc35.x86_64.rpm
    │   ├── PhosphorosCore-debugsource-1.4-dev.fc35.x86_64.rpm
    │   ├── Phosphoros-debuginfo-1.4-dev.fc35.x86_64.rpm
    │   ├── Phosphoros-debugsource-1.4-dev.fc35.x86_64.rpm
    │   ├── repodata
    │   ├── repoview
    │   ├── SourceXtractorPlusPlus-debuginfo-0.19-dev.fc35.x86_64.rpm
    │   └── SourceXtractorPlusPlus-debugsource-0.19-dev.fc35.x86_64.rpm
    ├── Phosphoros-1.4-dev.fc35.x86_64.rpm
    ├── PhosphorosCore-1.4-dev.fc35.x86_64.rpm
    ├── PhosphorosCore-debuginfo-1.4-dev.fc35.x86_64.rpm
    ├── PhosphorosCore-debugsource-1.4-dev.fc35.x86_64.rpm
    ├── PhosphorosCore-devel-1.4-dev.fc35.x86_64.rpm
    ├── PhosphorosCore-doc-1.4-dev.fc35.x86_64.rpm
    ├── Phosphoros-debuginfo-1.4-dev.fc35.x86_64.rpm
    ├── Phosphoros-debugsource-1.4-dev.fc35.x86_64.rpm
    ├── Phosphoros-devel-1.4-dev.fc35.x86_64.rpm
    ├── Phosphoros-doc-1.4-dev.fc35.x86_64.rpm
    ├── repodata
    ├── repoview
    ├── SourceXtractorPlusPlus-0.19-dev.fc35.x86_64.rpm
    ├── SourceXtractorPlusPlus-debuginfo-0.19-dev.fc35.x86_64.rpm
    ├── SourceXtractorPlusPlus-debugsource-0.19-dev.fc35.x86_64.rpm
    ├── SourceXtractorPlusPlus-devel-0.19-dev.fc35.x86_64.rpm
    └── SourceXtractorPlusPlus-doc-0.19-dev.fc35.x86_64.rpm

repodata is updated by createrepo, and repoview by repoview. They are automatically run by the CI, but they can also be manually run:

1
2
createrepo -v --update .
repoview .

This repository can be used from Fedora or Centos7 adding a .repo file to your system:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Stable and tagged versions
[Astrorama]
name=Astrorama
baseurl=http://repository.astro.unige.ch/euclid/fedora/$releasever/$basearch
enabled=1
gpgcheck=0


# Enable this to get the development version
[Astrorama-Develop]
name=Astrorama Develop
baseurl=http://repository.astro.unige.ch/euclid/devel/develop/fedora/$releasever/$basearch
enabled=0
gpgcheck=0

Enabling this .repo file can introduce conflicts with the versions shipped directly in Fedora. See Troubleshooting for more information.

Troubleshooting

Conflicts with Fedora

When the astrorama.repo file is enabled, there can be conflicts since the packages in Fedora and those from repository.astro.unige.ch do not have the same name:

repository.astro.unige.ch Fedora
Elements elements
Alexandria elements-alexandria
SourceXtractorPlusPlus sourcextractor++
PhosphorosCore n/a
Phosphoros n/a

This is because Fedora guidelines specify that the package name must be lowercase, while Euclid capitalizes the project names.

Therefore, as far as dnf is concerned, those are different RPMs that provide the same set of files. It may try to install them together (different names), but fail. It will then complain that it can not satisfy the dependencies of, say, PhosphorosCore.

If you want to install from repository.astro.unige.ch, it is advisable to either exclude the packages from the Fedora repo:

1
2
# Add this to /etc/yum.repos.d/fedora.repo under [fedora] and /etc/yum.repos.d/fedora-updates.repo under [updates]
exclude=elements* sourcextractor++

Or modify the priority of astrorama.repo and install only from there (i.e., remove any installed packages listed under the “Fedora” column):

1
2
3
4
5
6
7
[Astrorama]
name=Astrorama
baseurl=http://repository.astro.unige.ch/euclid/fedora/$releasever/$basearch
enabled=1
gpgcheck=0
# Lowest value is picked first. Default is 99.
priority=10