Git Product home page Git Product logo

choco-packages's Introduction

Chocolatey Packages for ROS2 Dependencies

This repository houses some basic Chocolatey packages for ROS2 external dependencies. Currently TinyXML and Eigen 3.

Installing packages

You'll need Chocolatey installed. They have an installation guide that you can follow. Chocolatey recently announced a Pro version. The pro version is not necessary to install the packages created here.

These packages can be installed by downloading the desired packages and specifying the path to the package with choco install.

From a Windows command prompt or PowerShell console with Administrator privileges:

choco install Downloads\eigen-3.3.3.nupkg

Building packages

Each of the packages has a manual build process outlined in the package specific README file. The instructions there should get you started.

Uploading packages

The packages here don't get uploaded to a central repository, instead they're published using GitHub Releases.

To upload a new release, follow these general steps:

  • Make any desired changes to the package contents. The contents are not version controlled by this repository and Chocolatey lacks the concept of a package revision as far as I can discern, so these changes are not tracked here. If you have an update that consists only of altered package contents, create an empty commit describing the change. For example
git commit --allow-empty -m "Rebuild TinyXML for 64-bit Windows."
  • Make any updates to the package configuration and commit the changes.

  • Create a git tag in order to publish your new package version.

git tag 2017-03-21-1
  • Push your changes and the new tag to GitHub
git push
git push --tags
  • Open the tag on the GitHub releases view and attach your package as a binary.

  • Check the previous release and download the other packages from it.

  • Attach all other packages as binaries to your release.

In order for every package user to have the same url prefix for their downloads, every nupkg file needs to be added to each release. This is the chief caveat of the single-repository approach. But if the number of packages or revisions begins to climb,it's a signal that we should revisit automating this process better.

  • Publish the release. The Pre-release option is unset by default but if you're tempted to set it, bear in mind that prereleases don't update the "latest" release alias.

choco-packages's People

Contributors

ahcorde avatar cottsay avatar mm318 avatar nuclearsandwich avatar ross-desmond avatar sloretz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

choco-packages's Issues

Use Upstream Eigen3Config.cmake

The chocolatey package for Eigen currently ships a custom EigenConfig.cmake, but it only sets old-style CMake variables. The upstream EigenConfig.cmake sets CMake targets. I think the upstream one should be used here.

This repo's

get_filename_component (_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE)
set (Eigen3_INCLUDE_DIRS "${_PREFIX}/include")
# Compatibility with nonstandard and legacy package variable expectations.
set (Eigen3_INCLUDE_DIR "${Eigen3_INCLUDE_DIRS}")
set (EIGEN3_INCLUDE_DIRS "${Eigen3_INCLUDE_DIRS}")
set (EIGEN3_INCLUDE_DIR "${Eigen3_INCLUDE_DIRS}")

Upstream's
https://gitlab.com/libeigen/eigen/-/blob/master/cmake/Eigen3Config.cmake.in#L7

Issue with `$PSScriptRoot` on Windows 7

Hi,

I'm trying to install ROS2 dependencies as choco packages from this repository (following this).
I successfully installed choco and python3. When I install these dependencies or just one of these, I get the following error:

> C:\Users\USER\Downloads>choco install -y -s C:\Users\USER\Downloads\ asio
Chocolatey v0.10.5
Installing the following packages:
asio
By installing you accept licenses for the packages.

asio v1.10.6
asio package files install completed. Performing other installation steps.
ERROR: The term '\regKeys.ps1' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
The install of asio was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\asio\tools\chocolateyinstall.ps1'.
 See log for details.

Chocolatey installed 0/1 packages. 1 packages failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Failures
 - asio (exited -1) - Error while running 'C:\ProgramData\chocolatey\lib\asio\tools\chocolateyinstall.ps1'.
 See log for details.

Somehow, powershell variable $RSScriptRoot is empty when asio\tools\chocolateyinstall.ps1 is executed.
Can you please hint me where is the problem ?

Thanks

tinyxml2 and eigen fail to uninstall if the registery keys are missing

See: ros2/ros2#516

I got in a situation some how where the registry keys that CMake needs were not setup and so I fixed it by uninstalling and reinstalling the chocolatey packages, but for tinyxml2 and eigen (but not asio) the uninstall failed, complaining about the keys not being found (I guess trying to remove them).

Not sure if this needs to be fixed, but opening for visibility. Feel free to close as wont fix, since you can just uninstall with -n and reinstall to workaround it.

tinyxml2 fails to install after being uninstalled

After having timnyxml2 uninstalled (to build an earlier version of Fast-RTPS which would not build if tinyxml2 was installed on the system) it will not reinstall.

C:\WINDOWS\system32>choco install -y -s N:\ChocoDownloads tinyxml2
Chocolatey v0.10.11
Installing the following packages:
tinyxml2
By installing you accept licenses for the packages.

tinyxml2 v6.0.0
tinyxml2 package files install completed. Performing other installation steps.
ERROR: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: A key in this path already exists.
The install of tinyxml2 was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\tinyxml2\tools\chocolateyinstall.ps1'.
 See log for details.

Chocolatey installed 0/1 packages. 1 packages failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Failures
 - tinyxml2 (exited -1) - Error while running 'C:\ProgramData\chocolatey\lib\tinyxml2\tools\chocolateyinstall.ps1'.
 See log for details.

Running regedit, navigating to Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Kitware\CMake\Packages\TinyXML2 and deleting the TinyXML2 keys fixes the problem.
image

C:\WINDOWS\system32>choco install -y -s N:\ChocoDownloads tinyxml2
Chocolatey v0.10.11
Installing the following packages:
tinyxml2
By installing you accept licenses for the packages.

tinyxml2 v6.0.0
tinyxml2 package files install completed. Performing other installation steps.
HKEY_LOCAL_MACHINE\SOFTWARE\Kitware\CMake\Packages\TinyXML2
@{CMakePackageDir=C:\ProgramData\chocolatey\lib\tinyxml2\share\cmake; PSPath=Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Kitware\CMake\Packages\TinyXML2; PSParentPath=Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Kitware\CMake\Packages; PSChildName=TinyXML2; PSDrive=HKLM; PSProvider=Microsoft.PowerShell.Core\Registry}
PATH environment variable does not have C:\ProgramData\chocolatey\lib\tinyxml2\lib in it. Adding...
Environment Vars (like PATH) have changed. Close/reopen your shell to
 see the changes (or in powershell/cmd.exe just type `refreshenv`).
 The install of tinyxml2 was successful.
  Software install location not explicitly set, could be in package or
  default install location if installer.

Chocolatey installed 1/1 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Package libpcl for Windows

In order for ros2/pcl_conversions#1 to work on Windows, we'll need to have PCL packaged. This isn't an urgent need right now, as the current demo only needs to work on Linux. However, I believe pcl_conversions is core enough to perception that we are eventually going to want to have it working on Windows. There is some information about downloading the pre-built binaries, and building from source, here: http://pointclouds.org/downloads/windows.html

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.