Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

If I understand your question correctly, this is not supported (at the moment).

You can ask your users to add the extra repository, but the buildfarm will not do this.

There have been packages in the past that used rdmanifest scripts for this, but personally I would not do that any more: it's very ugly and (imo) a big security issue. I also doubt it's supported on the buildfarm.

If I understand your question correctly, this is not supported (at the moment).

You can ask your users to add the extra repository, but the buildfarm will not do this.

There have been packages in the past that used rdmanifest scripts for this, but personally I would not do that any more: it's very ugly and (imo) a big security issue. risk. I also doubt it's supported on the buildfarm.

If I understand your question correctly, this is not supported (at the moment).

You can ask your users to add the extra repository, but the buildfarm will not do this.

There have been packages in the past that used rdmanifest scripts for this, but personally I would not do that any more: it's very ugly and (imo) a big security risk. I also doubt it's supported on the buildfarm.


Edit:

I was hoping for a more automated install for my CI environment

could you please add these sort of "details" In future questions, just so we can avoid an xy-problem?

Your original question gave the impression that you were asking this in the context of regular use / to release a package. Your comment here clarifies that this is for CI purposes. Those are two entirely different scenarios, and my answer would have been completely different as well.

CI setups (using something like Travis or Github actions) typically support executing scripts before running the actual configuration phase. You should be able to use add-apt-repository to add the deb repository needed, then proceed as normal.

Alternatively, you could do something like this:

echo "deb http://host/path/to/deb/repo/ubuntu $DISTRO $COMPONENT" >> /etc/apt/sources.list.d/your_repo.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABCDEF123456

That would be essentially what add-apt_repository does for you. Provided you have supplied the required rules, rosdep should then be able to resolve your dependencies even with this "custom" repository.

If I understand your question correctly, this is not supported (at the moment).

You can ask your users to add the extra repository, but the buildfarm will not do this.

There have been packages in the past that used rdmanifest scripts for this, but personally I would not do that any more: it's very ugly and (imo) a big security risk. I also doubt it's supported on the buildfarm.


Edit:

I was hoping for a more automated install for my CI environment

could you please add these sort of "details" In future questions, just so we can avoid an xy-problem?

Your original question gave the impression that you were asking this in the context of regular use / to release a package. Your comment here clarifies that this is for CI purposes. Those are two entirely different scenarios, and my answer would have been completely different as well.

CI setups (using something like Travis or Github actions) typically support executing scripts before running the actual configuration phase. You should be able to use add-apt-repository to add the deb repository needed, then proceed as normal.

Alternatively, you could do something like this:

echo "deb http://host/path/to/deb/repo/ubuntu $DISTRO $COMPONENT" >> /etc/apt/sources.list.d/your_repo.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABCDEF123456

That would be essentially what add-apt_repository does for you. Provided you have supplied the required rules, rosdep should then be able to resolve your dependencies even with this "custom" repository.

so I could avoid having to create/maintain my own docker image for this project

I don't see a direct need for a Docker image, but if that seems like the best approach to you then it would of course work as well.

If I understand your question correctly, this is not supported (at the moment).

You can ask your users to add the extra repository, but the buildfarm will not do this.

There have been packages in the past that used rdmanifest scripts for this, but personally I would not do that any more: it's very ugly and (imo) a big security risk. I also doubt it's supported on the buildfarm.


Edit:

I was hoping for a more automated install for my CI environment

could you please add these sort of "details" In future questions, just so we can avoid an xy-problem?

Your original question gave the impression that you were asking this in the context of regular use / to release a package. Your comment here clarifies that this is for CI purposes. Those are two entirely different scenarios, and my answer would have been completely different as well.

CI setups (using something like Travis or Github actions) typically support executing scripts before running the actual configuration phase. You should be able to use add-apt-repository to add the deb repository needed, then proceed as normal.

Alternatively, you could do something like this:

echo "deb http://host/path/to/deb/repo/ubuntu $DISTRO $COMPONENT" >> /etc/apt/sources.list.d/your_repo.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABCDEF123456

That would be essentially what add-apt_repositoryadd-apt-repository does for you. Provided you have supplied the required rules, rosdep should then be able to resolve your dependencies even with this "custom" repository.

so I could avoid having to create/maintain my own docker image for this project

I don't see a direct need for a Docker image, but if that seems like the best approach to you then it would of course work as well.

If I understand your question correctly, this is not supported (at the moment).

You can ask your users to add the extra repository, but the buildfarm will not do this.

There have been packages in the past that used rdmanifest scripts for this, but personally I would not do that any more: it's very ugly and (imo) a big security risk. I also doubt it's supported on the buildfarm.


Edit:

I was hoping for a more automated install for my CI environment

could you please add these sort of "details" In in the OP of future questions, just so we can avoid an xy-problem?

Your original question gave the impression that you were asking this in the context of regular use / to release a package. Your comment here clarifies that this is for CI purposes. Those are two entirely different scenarios, and my answer would have been completely different as well.

CI setups (using something like Travis or Github actions) typically support executing scripts before running the actual configuration phase. You should be able to use add-apt-repository to add the deb repository needed, then proceed as normal.

Alternatively, you could do something like this:

echo "deb http://host/path/to/deb/repo/ubuntu $DISTRO $COMPONENT" >> /etc/apt/sources.list.d/your_repo.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABCDEF123456

That would be essentially what add-apt-repository does for you. Provided you have supplied the required rules, rosdep should then be able to resolve your dependencies even with this "custom" repository.

so I could avoid having to create/maintain my own docker image for this project

I don't see a direct need for a Docker image, but if that seems like the best approach to you then it would of course work as well.

If I understand your question correctly, this is not supported (at the moment).

You can ask your users to add the extra repository, but the buildfarm will not do this.

There have been packages in the past that used rdmanifest scripts for this, but personally I would not do that any more: it's very ugly and (imo) a big security risk. I also doubt it's supported on the buildfarm.


Edit:

I was hoping for a more automated install for my CI environment

could you please add these sort of "details" in the OP of future questions, just so we can avoid an xy-problem?

Your original question gave the impression that you were asking this in the context of regular use / to release a package. Your comment here clarifies that this is for CI purposes. Those are two entirely different scenarios, and my answer would have been completely different as well.

CI setups (using something like Travis or Github actions) typically support executing scripts before running the actual configuration phase. You should be able to use add-apt-repository to add the deb repository needed, then proceed as normal.

Alternatively, you could do something like this:

echo "deb http://host/path/to/deb/repo/ubuntu $DISTRO $COMPONENT" >> /etc/apt/sources.list.d/your_repo.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABCDEF123456

That would be essentially what add-apt-repository does for you. Provided you have supplied the required rules, rosdep should then be able to resolve your dependencies even with this "custom" repository.

so I could avoid having to create/maintain my own docker image for this project

I don't see a direct need for a Docker image, but if that seems like the best approach to you then it would of course work as well.


Edit 2:

I am currently running my CI system in the docker image moveit/moveit:master-ci and could extend this via a Dockerfile that is built as part of my CI system.

Doesn't seem to be needed: moveit_ci supports BEFORE_SCRIPT which is documented as:

Used to specify shell commands or scripts that run in docker, just after setting up the ROS workspace and before actually starting the build processes. In contrast to BEFORE_DOCKER_SCRIPT, this script runs in the context of the docker container.

So you should be able to add the repository there.

If I understand your question correctly, this is not supported (at the moment).

You can ask your users to add the extra repository, but the buildfarm will not do this.

There have been packages in the past that used rdmanifest scripts for this, but personally I would not do that any more: it's very ugly and (imo) a big security risk. I also doubt it's supported on the buildfarm.


Edit:

I was hoping for a more automated install for my CI environment

could you please add these sort of "details" in the OP of future questions, just so we can avoid an xy-problem?

Your original question gave the impression that you were asking this in the context of regular use / to release a package. Your comment here clarifies that this is for CI purposes. Those are two entirely different scenarios, and my answer would have been completely different as well.

CI setups (using something like Travis or Github actions) typically support executing scripts before running the actual configuration phase. You should be able to use add-apt-repository to add the deb repository needed, then proceed as normal.

Alternatively, you could do something like this:

echo "deb http://host/path/to/deb/repo/ubuntu $DISTRO $COMPONENT" >> /etc/apt/sources.list.d/your_repo.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABCDEF123456

That would be essentially what add-apt-repository does for you. Provided you have supplied the required rules, rosdep should then be able to resolve your dependencies even with this "custom" repository.

so I could avoid having to create/maintain my own docker image for this project

I don't see a direct need for a Docker image, but if that seems like the best approach to you then it would of course work as well.


Edit 2:

I am currently running my CI system in the docker image moveit/moveit:master-ci and could extend this via a Dockerfile that is built as part of my CI system.

Doesn't seem to be needed: moveit_ci supports BEFORE_SCRIPT which is documented as:as (from here):

Used to specify shell commands or scripts that run in docker, just after setting up the ROS workspace and before actually starting the build processes. In contrast to BEFORE_DOCKER_SCRIPT, this script runs in the context of the docker container.

So you should be able to add the repository there.

If I understand your question correctly, this is not supported (at the moment).

You can ask your users to add the extra repository, but the buildfarm will not do this.

There have been packages in the past that used rdmanifest scripts for this, but personally I would not do that any more: it's very ugly and (imo) a big security risk. I also doubt it's supported on the buildfarm.


Edit:

I was hoping for a more automated install for my CI environment

could you please add these sort of "details" in the OP of future questions, just so we can avoid an xy-problem?

Your original question gave the impression that you were asking this in the context of regular use / to release a package. Your comment here clarifies that this is for CI purposes. Those are two entirely different scenarios, and my answer would have been completely different as well.

CI setups (using something like Travis or Github actions) typically support executing scripts before running the actual configuration phase. You should be able to use add-apt-repository to add the deb repository needed, then proceed as normal.

Alternatively, you could do something like this:

echo "deb http://host/path/to/deb/repo/ubuntu $DISTRO $COMPONENT" >> /etc/apt/sources.list.d/your_repo.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABCDEF123456

That would be essentially what add-apt-repository does for you. Provided you have supplied the required rules, rosdep should then be able to resolve your dependencies even with this "custom" repository.

so I could avoid having to create/maintain my own docker image for this project

I don't see a direct need for a Docker image, but if that seems like the best approach to you then it would of course work as well.


Edit 2:

I am currently running my CI system in the docker image moveit/moveit:master-ci and could extend this via a Dockerfile that is built as part of my CI system.

Doesn't seem to be needed: moveit_ci supports BEFORE_SCRIPT which is documented as (from here):

Used to specify shell commands or scripts that run in docker, just after setting up the ROS workspace and before actually starting the build processes. In contrast to BEFORE_DOCKER_SCRIPT, this script runs in the context of the docker container.

So you should be able to add the repository there.

You'll have to verify whether "setting up the ROS workspace" includes running rosdep though. If it does, then BEFORE_SCRIPT is probably too late. Perhaps one of the maintainers of moveit_ci could help you figure this one out.