P2 Touchpoint chmod not working? - eclipse

I'm using Eclipse 3.5.2 and I've created a p2.inf with the following information:
instructions.install = \
chmod(targetDir:#artifact,targetFile:$os$/libfoo.so,permissions:755);
instructions.install.import= \
org.eclipse.equinox.p2.touchpoint.natives.chmod
I placed the p2.inf inside the META-INF folder of the fragment, but when I install the update site, libfoo.so does not have execute permissions.
After pulling my hair out, I tried a p2.inf referencing a non-existing *.so, but nothing seems to happen. No error messages, exceptions, or warnings of any kind to indicate the P2 touchpoint action failed...
What's the deal? Any ideas?

The import line should be org.eclipse.equinox.p2.touchpoint.eclipse.chmod (i.e. eclipse rather than natives), according to the following comment from org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.ChmodAction
// This basically a copy of the chmod action in the native touchpoint,
// only it provides #artifact support.
(For comparison, see the 'natives' chmod action)
I haven't checked about support for interpolating variables like 'os'.

In Eclipse 3.6 (don't know about previous versions), the variable to use instead of #artifact is ${artifact.location}. I had to dig into the p2 source code to find it, but using it in the targetDir parameter worked like a charm.

A couple of things I notice:
The "touchpoint.natives.chmod" action does not look like it supports #artifact. Try using org.eclipse.equinox.p2.touchpoint.eclipse.chmod instead.
os does not appear to be a parameter that is replaced at install time. Also, looking at the p2 source code, if "os" was a parameter, it seems the syntax would actually be ${os}. (See ParameterizedProvisioningAction#processVariables)
Note that the $version$ and `$qualifier$' parameters mentioned on the wiki are replaced at metadata generation/publishing time, not at install time.

Related

upgrade from Artifactory 2.3.3.1

As in the subject, we are currently stuck at very (!) old version 2.3.3.1. We must upgrade to the latest (or a least a much more recent) version.
I suspect I'll need a few steps to make such a version leap.
Please give me any pointers you may find useful. This has landed on me, and I've never worked with Artifactory before.
As you suspected, there are several versions you'll have to go through, like 3.9.x.
You can find more info here and here
Following the directions above:
I have taken us to 2.6.7 as a necessary upgrade step, and today I worked on moving to 3.9.2 as a next necessary step.
I have followed the official instructions from https://www.jfrog.com/confluence/display/RTF3X/Upgrading+Artifactory
The "empty" 3.9.2 worked fine of course, so I proceeded with the copy of the filestore and then the import of the System export. The Export had been done as instructed, i.e. with Content excluded, and nothing else excluded.
The import finished but with 99 errors. These were of these three types:
A file missing from the export. In all cases, the export contained a folder with the same name as the file but with a ".artifactory-metadata" appended to its name. So for example instead of
/BACKUP_DISK/ARTIFACTORY/20200402.192450/repositories/jboss-releases-cache/jboss/jboss-j2ee/4.2.0.GA/jboss-j2ee-4.2.0.GA.pom
...in the export there was this folder:
/BACKUP_DISK/ARTIFACTORY/20200402.192450/repositories/jboss-releases-cache/jboss/jboss-j2ee/4.2.0.GA/jboss-j2ee-4.2.0.GA.pom.artifactory-metadata/
...containing two files, artifactory-file.xml and artifactory.stats.xml
Errors about failure to import a file because "MD5 value 'null' is not a valid checksum"
Errors about failure to import file because " Artifact rejected: The repository 'codehaus-cache' is blacked out and cannot serve artifact"
The last disturbing thing is that the new installation in the Home page states that there are half as many artifacts as in the 2.6.7 installation. I wonder if some kind of merging/relabelling has been done, and I should not worry about that.
I'd be grateful for any clues on the above.

Confusion: GitHub Project broken(?), Instructions not clear: Mercurial setup(?)

first of all, i've never done something with github, this is my first try, so please be polite and help me on the train.
I would like to use this github-project:
https://github.com/jmmcatee/cracklord which is completly in go language.
from the instructions:
If you'd like to get things build from source, it will first require you to have a working Go build environment with the GOPATH setup. Additionally, you'll probably want Git and Mercurial setup to gather the various libraries and plugins that we've used in the code.
Here are my Questions:
I've done installing git and i'm able to clone the repro, which works fine.
I've installed mercurial, but have no idea how to "setup" mercurial.
Can someone explain what mercurial setup togehter with this githubproject example means?
why i'm asking
after creating a directory git-repos
changing into this directory with cd git-repos
path is now /root/git-repos
# set GOPATH to /root/git-repos
export GOPATH=/root/git-repos
and doing go get github.com/jmmcatee/cracklord
gives this error-message:
go get github.com/jmmcatee/cracklord
can't load package: package github.com/jmmcatee/cracklord: no Go files in /root/git-repos/src/github.com/jmmcatee/cracklord
okay.
So, when i'm following the instructions i'm not able to finish. Can someone explain what i'm doing wrong?
Thank you
Paul
You don't need to set gopath anymore, it is set by default to:
~/go
You don't say which os you're using, but given your paths I assume linux. I suspect you haven't exported the environment variable correctly. You might want to try setting up a simpler package first and verifying you have your go setup right. Follow the instructions here (including verifying your setup is working, and just using the default gopath):
https://golang.org/doc/install
And try downloading and running something simpler (which doesn't require several components installed) to verify your setup first.

"Undefined variable: Environment" when editing SConscript file in Eclipse Neon

I have an SCons project (an implementation of the Generic Mapping Tools tutorial at http://gmt.soest.hawaii.edu/doc/latest/GMT_Tutorial.html using SCons rather than shell scripts), and I am using Eclipse Neon to edit the Sconstruct file.
The Sconstruct file starts in quite a standard way (the rest of the file is immaterial to this question).
import os
import collections
env = Environment(ENV = os.environ)
bld = Builder(action = 'ps2pdf $SOURCE $TARGET', \
suffix = '.pdf', \
src_suffix = '.ps')
What is annoying me is that while the build works perfectly using scons, Eclipse keeps marking the Environment and Builder constructions as "Undefined variables".
I installed the SConsolidator plugin, but it makes no difference.
I find the marking of an error that is not an error incredibly annoying.
While I could do something like tell Eclipse to ignore the error, I would prefer something more intelligent, such as adding Scons to the library path. I have tried adding C:\Python27\Lib\site-packages\scons-2.5.1\Scons and C:\Python27\Lib\site-packages\scons-2.5.1\Scons\Scripts to the Python Interpreter Paths (Window → Preferences → PyDev → Interpreters → Python Interpreters → Paths), and using an import directive like from SConscript.SCons import * but it doesn't make a difference.
Try library path:
C:\Python27\Lib\site-packages\scons-2.5.1\
Then
from SCons.Script import *
First thing first - if you know exactly where does your plugin keep it's symbol index(es) make sure that they don't get deleted by whatever the editor/IDE/build think they are doing to "be helpful".
Python plugins for editors easily get confused and you may need you to draw very explicit and detailed picture and train them a bit (by stopping the code in debugger) in order for a scanner/indexer to "wake up" and finally scan and index all symbols.
What I do in VS (with PTVS) is to make one proj for Scons_lib (home at C:\Python27\Lib\site-packages\scons-2.5.0), another for Scons_Scripts (C:\Python27\Scripts\, startup file: scons.py)
and then separate projects for separate scons driven folders/builds. To get editor to immediately recognize building files as Python I add extension .scons (google's convention used in Chrome build, Sconcsript's are ProjName.scons), tell VS that .scons is also Python, rename Sconstruct to Make.scons.
Then I run in debugger, (with -f Make.scons -n of course) as many times as I can :-) trying to place breakpoints in different files form different sub-packages that I know will run. Letting scons throw exceptions for nothing (like missing Sconstuct file) is also file - the goal is to force indexer to go places because it sees that debugger is going there.
After N runs, (and/or K days). PTVS (you can consider it a plugin) all of the sudden starts recognizing all symbols, packages, sub-packages, only can't penetrate things explicitly hidden behind caches.
Gave up trying to determine which events exactly make the scanner/indexer see the light. Probably something like seeing the number of files at "unexpected" paths being in debugger. Most symbols are visible in debugger immediately, except for the files that load first (scons.py and my own file that I exec from scons.py to inject whatever I want before anything else runs.)
Also I keep PYTHONDONTWRITEBYTECODE=1 to make sure that it always has to load actual .py-s
It might potentially help to have a single file that would exercise something form every sub-package, litter it with breakpoints and let it be run a few times.

Issue running golang Hello World in eclipse

Alright, so just a disclaimer I suspect this question will be a duplicate of another question however I'm not even sure what to search for.
I have never used Eclipse or Golang before and am attempting to get a basic hello world application to work.
I have installed the goclipse plugin, created a new go package and go command source file. From what I have read to run a project in Eclipse you right click the package, select Run as then set the run configurations. The problem occurs when I attempt to select the go package as none shows up and if I leave it blank it throws a 'Go package not found' exception.
Thank you for any help you can provide.
EDIT: Upon the answers advice I have decided to go with the basic command line, however a friend did also recommend LiteIDE. I will "assume" tmichels answer is correct in regards to getting Go to work within eclipse.
If you don't use the GOPATH environment variable and you don't put your project folder under $GOPATH/src the compiler won't find it. As I see it goclipse lets you skip the GOPATH entirely but in this case you have to put your code under the src directory that you can see in the Project Explorer. See the related section of the goclipe documentation.
Although I think you make your life harder by using a full-fetched IDE for go development. Just use the command line tools. And it has the added benefit that you will actually understand what's going on (IDEs hide this from you).
So for building you can use go build or go install. The latter will copy the binary to your $GOPATH/bin directory. For running test just call go test or go test path/to/package. There is a hidden gem in the go tool: when you are working with multiple packages in the same directory you can use go test ./... to test all of them at once. This also works with other go commands.

Problems using netbeans 7.01 with CMake 2.8.6

so once again, I'm having a little problem I can't figure out myself. Meaning, I'm pretty sure I know what the problem is, I just can't fix it.
I'm developing in C++ using Netbeans 7.01 with CMake 2.8.6. However, when I'm trying to build a project, I get the following error from CMake:
CMake Error: The path to the source directory:
H:/Projects/Netbeans/CppApplication_1/CONF=Release
contains unsupported character '='.
Please use a different source directory name.
Please note, that "CONF=Release" isn't a folder. It seems to be a configuration flag set by Netbeans, as it changes when I'm trying a debug build. So, my guess here is, that theres a space missing, or something similar. Unfortunately, I can't figure out where to change that. There are no options in any related Netbeans window, I can't find anything related in the configuration files for netbeans itself or the project either.
Did anyone here have experienced the same problem and found a solution to it? I would be very glad to hear it. If there's any information missing, let me know, I will add them as fast as possible.
Edit:
Just noticed there is already version 7.1 of netbeans, nice to know. However, even with this version, the same problem occurs.
You must specify the command you ran to allow for the error to be identified. However, it looks like you missed the "source-path" parameter.
The cmake command ends with the path to source and should be something like:
cmake -D CONF=Release <path to source>