Giter Club home page Giter Club logo

sbre_robot_ros_gentoo_prefix's People

Contributors

mcaniot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

sbre_robot_ros_gentoo_prefix's Issues

Unite efforts?

Hello. I've just discovered this repo. Thanks for linking to my projects and mentioning me as the author or the CI for Gentoo Prefix and for ros-overlay on Gentoo Prefix.

I see a lot of work duplicated in this repo and it makes me sad. Maintaining the pipeline of Gentoo Prefix > ROS base > ROS desktop (in 32b and 64b, and for Kinetic and Melodic, that's a lot of combinations!) takes continuous effort. It's usually not much work, but things change or break upstream all the time (such is Gentoo, a rolling release).

I would propose to create a version of this repo that starts from my work and then adds your extras as an additional layer. This would avoid that we both need to fix the same errors, or that you need to re-implemented the fixes I implement.

By what I see in your Dockerfile (just checked the Kinetic one). You are mainly building on top of ros_base.

You could just start your image doing docker pull from:
awesomebytes/roogp_ros_kinetic_ros_base
awesomebytes/roogp_ros_melodic_ros_base

Or follow from from one of the binary releases, if you prefer, as I do in https://github.com/awesomebytes/pepper_os (mainly to avoid the 127 max layers of Docker).

I would find great if you would provide ready-to-use, as I do, ROS Kinetic/Melodic on Nao & Pepper. It's a matter of setting up a job to package it. You can copy my approach of uploading it to GitHub releases of the repo for free storage on nightly builds. Or, if you have some server to use as a file host, just upload it without splitting (I just need to do it to keep it under 2GB release files). I say this because of experience. During the development months of RoboCup plenty of times I didn't have time to fix the upstream problems, and having pre-compiled versions being built every night allowed for the development to continue. Eventually I'd go back, report bugs upstream, fix stuff... and we are back on the latest SW, yay.

This way, you can focus on maintaining less things (probably just naoqi-* stuff). And when you have time to dedicate to fixes of the general pipeline, we all benefit from it.

There may be discrepancies on how to structure the Dockerfiles, the patches... in general how to work on all of this. I'm open to conversation. Up until now I've been working mostly alone in it, so I just did what seemed quicker and alright.

Add to README instructions to avoid the lengthy building process

To be more friendly with your users you could be more verbose with how to use your pre-built Docker images. e.g.:

# Pull your image with the corresponding DOCKER_TAG (kinetic, melodic, kinetic_32b or melodic_32b)
docker pull softbankroboticsresearch/sbre_robot_ros_gentoo_prefix:DOCKER_TAG
# Rest of your instructions to copy the system to the robot

You can also add somewhere that they can use your images as cache if they want to build extra stuff starting from your Dockerfile avoiding the lengthy process too.

# Add your changes to the Dockerfile (preferably after the end to be able to re-use the cache)

# Pull your image with the corresponding DOCKER_TAG (kinetic, melodic, kinetic_32b or melodic_32b)
docker pull softbankroboticsresearch/sbre_robot_ros_gentoo_prefix:DOCKER_TAG
# Build using the cache from that image
docker build --network host -f Dockerfile --cache-from softbankroboticsresearch/sbre_robot_ros_gentoo_prefix:DOCKER_TAG -t NAME_OF_CUSTOM_IMAGE .

Good job though! Advertise this project more :)

circular dependencies

Hi! Thank you for this prefixes, but I've faced with error, while running docker build --network host -f Dockerfile -t gentoo_emerge_xenial . :

(sys-libs/libcap-2.33:0/0::gentoo, ebuild scheduled for merge) depends on
 (sys-libs/pam-1.3.1_p20200128:0/0::gentoo, ebuild scheduled for merge) (buildtime)
  (sys-libs/libcap-2.33:0/0::gentoo, ebuild scheduled for merge) (buildtime)

It might be possible to break this cycle
by applying any of the following changes:
- sys-libs/pam-1.3.1_p20200128 (Change USE: -filecaps)
- sys-libs/libcap-2.33 (Change USE: -pam)

Note that this change can be reverted, once the package has been installed.
Hmmmm, I was already afraid of this to happen.  Running
  /tmp/gentoo/bin/bash ./bootstrap-prefix.sh "/tmp/gentoo" stage3
somewhere failed :(  Details might be found in the build log:
  (no build logs found?!?)

How can i fix this or maybe avoid?(:

Error running on Ubuntu machine

I was attempting to run the ros_kinetic_32 branch instructions on a 32-bit Ubuntu install (18.04), but I get the following error during stage 3:

Any suggestions on what might be the issue?

configure: OPENSSL_ENABLED: 
configure: error: --with-ssl was given but OpenSSL could not be detected

!!! Please attach the following file when seeking support:
!!! /tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/work/curl-7.68.0-abi_x86_32.x86/config.log
 * ERROR: net-misc/curl-7.68.0::gentoo failed (configure phase):
 *   econf failed
 * 
 * Call stack:
 *               ebuild.sh, line  125:  Called src_configure
 *             environment, line 2210:  Called multilib-minimal_src_configure
 *             environment, line 1570:  Called multilib_foreach_abi 'multilib-minimal_abi_src_configure'
 *             environment, line 1797:  Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
 *             environment, line 1500:  Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
 *             environment, line 1498:  Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_configure'
 *             environment, line  510:  Called multilib-minimal_abi_src_configure
 *             environment, line 1564:  Called multilib_src_configure
 *             environment, line 2055:  Called econf '--disable-alt-svc' '--enable-crypto-auth' '--enable-dict' '--disable-esni' '--enable-file' '--enable-ftp' '--enable-gopher' '--enable-http' '--enable-imap' '--disable-ldap' '--disable-ldaps' '--disable-ntlm-wb' '--enable-pop3' '--enable-rt' '--enable-rtsp' '--disable-smb' '--without-libssh2' '--enable-smtp' '--enable-telnet' '--enable-tftp' '--enable-tls-srp' '--disable-ares' '--enable-cookies' '--enable-dateparse' '--enable-dnsshuffle' '--enable-doh' '--enable-hidden-symbols' '--enable-http-auth' '--enable-ipv6' '--enable-largefile' '--without-libpsl' '--enable-manual' '--enable-mime' '--enable-netrc' '--enable-progress-meter' '--enable-proxy' '--disable-sspi' '--disable-static' '--disable-threaded-resolver' '--disable-pthreads' '--disable-versioned-symbols' '--without-amissl' '--without-bearssl' '--without-cyassl' '--without-darwinssl' '--without-fish-functions-dir' '--without-libidn2' '--without-gssapi' '--without-libmetalink' '--without-nghttp2' '--without-nghttp3' '--without-ngtcp2' '--without-quiche' '--without-librtmp' '--without-brotli' '--without-schannel' '--without-secure-transport' '--without-spnego' '--without-winidn' '--without-wolfssl' '--with-zlib' '--without-gnutls' '--without-mbedtls' '--without-nss' '--without-polarssl' '--without-ssl' '--without-winssl' '--without-ca-fallback' '--with-ca-bundle=/tmp/gentoo/etc/ssl/certs/ca-certificates.crt' '--with-ssl' '--with-ca-path=/tmp/gentoo/etc/ssl/certs'
 *        phase-helpers.sh, line  718:  Called __helpers_die 'econf failed'
 *   isolated-functions.sh, line  119:  Called die
 * The specific snippet of code:
 *   		die "$@"
 * 
 * If you need support, post the output of `emerge --info '=net-misc/curl-7.68.0::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=net-misc/curl-7.68.0::gentoo'`.
 * The complete build log is located at '/tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/temp/build.log'.
 * The ebuild environment file is located at '/tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/temp/environment'.
 * Working directory: '/tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/work/curl-7.68.0-abi_x86_32.x86'
 * S: '/tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/work/curl-7.68.0'

>>> Failed to emerge net-misc/curl-7.68.0, Log file:

>>>  '/tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/temp/build.log'
 * Messages for package sys-apps/portage-2.3.88:
 * Unable to find kernel sources at /usr/src/linux
 * Unable to calculate Linux Kernel version for build, attempting to use running version
 * Unable to check for the following kernel config options due
 * to absence of any configured kernel sources or compiled
 * config:
 *  - IPC_NS
 *  - PID_NS
 *  - NET_NS
 * You're on your own to make sure they are set if needed.
 * Messages for package sys-apps/util-linux-2.35.1:
 * chown failure ignored with unprivileged user:
 *     chown root:root ${D}${EPREFIX}/usr/bin/mount
 *     ${EPREFIX}/bin/chown: changing ownership of '${D}${EPREFIX}/usr/bin/mount': Operation not permitted
 * chown failure ignored with unprivileged user:
 *     chown root:root ${D}${EPREFIX}/usr/bin/umount
 *     ${EPREFIX}/bin/chown: changing ownership of '${D}${EPREFIX}/usr/bin/umount': Operation not permitted
 * The mesg/wall/write tools have been disabled due to USE=-tty-helpers.
 * The agetty util now clears the terminal by default. You
 * might want to add --noclear to your /etc/inittab lines.
 * Messages for package sys-apps/sandbox-2.18:
 * chown failure ignored with unprivileged user:
 *     chown root:portage ${D}${EPREFIX}/var/log/sandbox
 *     ${EPREFIX}/bin/chown: invalid group: 'root:portage'
 * chown failure ignored with unprivileged user:
 *     chown root:portage ${D}${EPREFIX}/var/log/sandbox
 *     ${EPREFIX}/bin/chown: invalid group: 'root:portage'
 * Messages for package app-misc/ca-certificates-20190110.3.43:
 * You should run update-ca-certificates manually after etc-update
 * Messages for package net-misc/curl-7.68.0:
 * ERROR: net-misc/curl-7.68.0::gentoo failed (configure phase):
 *   econf failed
 * 
 * Call stack:
 *               ebuild.sh, line  125:  Called src_configure
 *             environment, line 2210:  Called multilib-minimal_src_configure
 *             environment, line 1570:  Called multilib_foreach_abi 'multilib-minimal_abi_src_configure'
 *             environment, line 1797:  Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
 *             environment, line 1500:  Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
 *             environment, line 1498:  Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_configure'
 *             environment, line  510:  Called multilib-minimal_abi_src_configure
 *             environment, line 1564:  Called multilib_src_configure
 *             environment, line 2055:  Called econf '--disable-alt-svc' '--enable-crypto-auth' '--enable-dict' '--disable-esni' '--enable-file' '--enable-ftp' '--enable-gopher' '--enable-http' '--enable-imap' '--disable-ldap' '--disable-ldaps' '--disable-ntlm-wb' '--enable-pop3' '--enable-rt' '--enable-rtsp' '--disable-smb' '--without-libssh2' '--enable-smtp' '--enable-telnet' '--enable-tftp' '--enable-tls-srp' '--disable-ares' '--enable-cookies' '--enable-dateparse' '--enable-dnsshuffle' '--enable-doh' '--enable-hidden-symbols' '--enable-http-auth' '--enable-ipv6' '--enable-largefile' '--without-libpsl' '--enable-manual' '--enable-mime' '--enable-netrc' '--enable-progress-meter' '--enable-proxy' '--disable-sspi' '--disable-static' '--disable-threaded-resolver' '--disable-pthreads' '--disable-versioned-symbols' '--without-amissl' '--without-bearssl' '--without-cyassl' '--without-darwinssl' '--without-fish-functions-dir' '--without-libidn2' '--without-gssapi' '--without-libmetalink' '--without-nghttp2' '--without-nghttp3' '--without-ngtcp2' '--without-quiche' '--without-librtmp' '--without-brotli' '--without-schannel' '--without-secure-transport' '--without-spnego' '--without-winidn' '--without-wolfssl' '--with-zlib' '--without-gnutls' '--without-mbedtls' '--without-nss' '--without-polarssl' '--without-ssl' '--without-winssl' '--without-ca-fallback' '--with-ca-bundle=/tmp/gentoo/etc/ssl/certs/ca-certificates.crt' '--with-ssl' '--with-ca-path=/tmp/gentoo/etc/ssl/certs'
 *        phase-helpers.sh, line  718:  Called __helpers_die 'econf failed'
 *   isolated-functions.sh, line  119:  Called die
 * The specific snippet of code:
 *   		die "$@"
 * 
 * If you need support, post the output of `emerge --info '=net-misc/curl-7.68.0::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=net-misc/curl-7.68.0::gentoo'`.
 * The complete build log is located at '/tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/temp/build.log'.
 * The ebuild environment file is located at '/tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/temp/environment'.
 * Working directory: '/tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/work/curl-7.68.0-abi_x86_32.x86'
 * S: '/tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/work/curl-7.68.0'

 * GNU info directory index is up-to-date.

 * IMPORTANT: config file '/tmp/gentoo/etc/hosts' needs updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.

Hmmmm, I was already afraid of this to happen.  Running
  /tmp/gentoo/bin/bash ./bootstrap-prefix.sh "/tmp/gentoo" stage3
somewhere failed :(  Details might be found in the build log:
  /tmp/gentoo/var/tmp/portage/net-misc/curl-7.68.0/temp/build.log
I have no clue, really.  Please find friendly folks in #gentoo-prefix on
irc.gentoo.org, [email protected] mailing list, or file a bug
at bugs.gentoo.org under Gentoo/Alt, Prefix Support.  This is most
inconvenient, and it crushed my ego.  Sorry, I give up.
Should you want to give it a try, there is /tmp/gentoo/stage3.log
The command '/bin/sh -c LATEST_TREE_YES=1 TESTING_PV=latest linux32 ./bootstrap-prefix.sh ${EPREFIX} noninteractive stage3' returned a non-zero code: 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.