From b2fe33ecd00fef23ca8afa63b8d83ecb197377d6 Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Oct 19 2016 10:47:58 +0000 Subject: Initial package --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..568f8c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/*.src.rpm +/*.tar.xz +/.build-*.log +/noarch/ +/.project diff --git a/eclipse-usage.spec b/eclipse-usage.spec new file mode 100644 index 0000000..5317dea --- /dev/null +++ b/eclipse-usage.spec @@ -0,0 +1,82 @@ +%global gittag jbosstools-%{version}.Final + +Name: eclipse-usage +Version: 4.4.1 +Release: 1%{?dist} +Summary: Usage reporting plug-ins for Eclipse +License: EPL +URL: http://tools.jboss.org/ + +# Generate tarball with: ./get-jbosstools.sh +Source0: %{gittag}.tar.xz +Source1: get-jbosstools.sh + +Patch0: rpm-usage.patch + +BuildArch: noarch + +BuildRequires: tycho +BuildRequires: tycho-extras +BuildRequires: eclipse-epp-logging +BuildRequires: maven-plugin-build-helper + +%description +Usage reporting plug-ins for Eclipse. + +%prep +%setup -q -n %{gittag} +pushd jbosstools-base +%patch0 -p1 +popd + +# Fix whitespace error in xml declaration +sed -i -e '1s/\t//' jbosstools-build/parent/pom.xml + +# Fix perms on license +chmod -x jbosstools-base/foundation/features/org.jboss.tools.foundation.license.feature/license.html + +# Remove unnecessary plugins from parent pom +%pom_remove_plugin org.jboss.tools.tycho-plugins:repository-utils jbosstools-build/parent +%pom_remove_plugin org.jacoco:jacoco-maven-plugin jbosstools-build/parent +%pom_remove_plugin org.apache.maven.plugins:maven-enforcer-plugin jbosstools-build/parent + +# Remove dep on jgit +%pom_xpath_remove "pom:plugin[pom:artifactId='tycho-packaging-plugin']/pom:dependencies" jbosstools-build/parent +%pom_xpath_remove "pom:plugin[pom:artifactId='tycho-packaging-plugin']/pom:configuration/pom:sourceReferences" jbosstools-build/parent +%pom_xpath_set "pom:plugin[pom:artifactId='tycho-packaging-plugin']/pom:configuration/pom:timestampProvider" "default" jbosstools-build/parent + +# Disable everything except for usage plugin +%pom_disable_module tests jbosstools-base +%pom_disable_module org.jboss.tools.foundation.feature jbosstools-base/foundation/features +%pom_disable_module org.jboss.tools.foundation.security.linux.feature jbosstools-base/foundation/features +%pom_disable_module org.jboss.tools.foundation.test.feature jbosstools-base/foundation/features +%pom_disable_module plugins jbosstools-base/foundation +%pom_disable_module tests jbosstools-base/foundation +%pom_disable_module common jbosstools-base +%pom_disable_module stacks jbosstools-base +%pom_disable_module runtime jbosstools-base +%pom_disable_module org.jboss.tools.usage.test.feature jbosstools-base/usage/features +%pom_disable_module org.jboss.tools.usage.test jbosstools-base/usage/tests +%pom_disable_module site jbosstools-base + +# No need to install poms or license feature +%mvn_package "::pom::" __noinstall +%mvn_package ":org.jboss.tools.foundation.license.feature" __noinstall + +%build +pushd jbosstools-build +%mvn_build -j -- install -f parent/pom.xml +popd + +%mvn_build -j -- -Dno-target-platform -f jbosstools-base/pom.xml + +%install +%mvn_install + +%files -f .mfiles +%license jbosstools-base/foundation/features/org.jboss.tools.foundation.license.feature/license.html + +%changelog +* Tue Sep 27 2016 Mat Booth - 4.4.1-1 +- Initial package + diff --git a/get-jbosstools.sh b/get-jbosstools.sh new file mode 100755 index 0000000..c5e25b0 --- /dev/null +++ b/get-jbosstools.sh @@ -0,0 +1,27 @@ +#!/usr/bin/bash + +gittag="jbosstools-4.4.1.Final" + +MODULES="jbosstools-base \ + jbosstools-build" + +mkdir $gittag +pushd $gittag + +# JBoss Tools is split across many repositories +for module in $MODULES; do + wget https://github.com/jbosstools/$module/archive/$gittag.tar.gz + mkdir $module + tar --strip-components=1 --directory=$module -xf $gittag.tar.gz + rm $gittag.tar.gz +done + +# Delete pre-built artifacts +for ext in jar war zip class; do + find -type f -name *.$ext -delete +done + +popd +tar cJf $gittag.tar.xz $gittag/ +rm -r $gittag/ + diff --git a/rpm-usage.patch b/rpm-usage.patch new file mode 100644 index 0000000..3543b6a --- /dev/null +++ b/rpm-usage.patch @@ -0,0 +1,96 @@ +diff --git a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java +index 860c763..bedf2da 100644 +--- a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java ++++ b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java +@@ -10,8 +10,11 @@ + ******************************************************************************/ + package org.jboss.tools.usage.googleanalytics.eclipse; + ++import java.io.File; ++import java.net.URL; + import java.util.Random; + ++import org.eclipse.core.runtime.Platform; + import org.eclipse.core.runtime.preferences.IEclipsePreferences; + import org.eclipse.swt.graphics.Rectangle; + import org.eclipse.swt.widgets.Display; +@@ -237,10 +240,34 @@ public abstract class AbstractEclipseEnvironment extends AbstractGoogleAnalytics + + @Override + public String getUserDefined() { +- return getLinuxDistroNameAndVersion(); ++ String pkgs = getInstalledPkgs(); ++ if (pkgs != null && !pkgs.isEmpty()) { ++ return getLinuxDistroNameAndVersion() + "|" + pkgs; ++ } else { ++ return getLinuxDistroNameAndVersion(); ++ } + } + + protected String getLinuxDistroNameAndVersion() { + return LinuxSystem.INSTANCE.getDistroNameAndVersion(); + } ++ ++ protected String getInstalledPkgs() { ++ StringBuilder pkgs = new StringBuilder(); ++ URL installLoc = Platform.getInstallLocation().getURL(); ++ File pkgDir = new File(installLoc.getFile(), ".pkgs"); ++ if (pkgDir.isDirectory()) { ++ File[] files = pkgDir.listFiles(); ++ for (int i = 0; i < files.length; i++) { ++ if (files[i].isFile()) { ++ if (pkgs.length() > 0) { ++ pkgs.append("," + files[i].getName()); ++ } else { ++ pkgs.append(files[i].getName()); ++ } ++ } ++ } ++ } ++ return pkgs.toString(); ++ } + } +\ No newline at end of file +diff --git a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/PreferencesMessages.java b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/PreferencesMessages.java +index c2b21a1..22bb957 100644 +--- a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/PreferencesMessages.java ++++ b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/PreferencesMessages.java +@@ -26,6 +26,7 @@ public class PreferencesMessages extends NLS { + public static String UsageReportPreferencePage_OperatingSystem; + public static String UsageReportPreferencePage_OperatingSystemVersion; + public static String UsageReportPreferencePage_LinuxDistro; ++ public static String UsageReportPreferencePage_InstalledPkgs; + public static String UsageReportPreferencePage_ProductId; + public static String UsageReportPreferencePage_ProductOwner; + public static String UsageReportPreferencePage_ProductVersion; +diff --git a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/UsageReportPreferencePage.java b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/UsageReportPreferencePage.java +index 6335b60..34acf6a 100644 +--- a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/UsageReportPreferencePage.java ++++ b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/UsageReportPreferencePage.java +@@ -102,8 +102,13 @@ public class UsageReportPreferencePage extends FieldEditorPreferencePage impleme + appendLabeledValue(PreferencesMessages.UsageReportPreferencePage_OperatingSystemVersion, + eclipseUserAgent.getOSVersion(), builder, styles); + if (eclipseEnvironment.isLinuxDistro()) { ++ String ud[] = eclipseEnvironment.getUserDefined().split("\\|", 2); + appendLabeledValue(PreferencesMessages.UsageReportPreferencePage_LinuxDistro, +- eclipseEnvironment.getUserDefined(), builder, styles); ++ ud[0], builder, styles); ++ if (ud.length > 1) { ++ appendLabeledValue(PreferencesMessages.UsageReportPreferencePage_InstalledPkgs, ++ ud[1], builder, styles); ++ } + } + builder.append(StringUtils.getLineSeparator()); + +diff --git a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/messages.properties b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/messages.properties +index a0579f9..fb05fac 100644 +--- a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/messages.properties ++++ b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/messages.properties +@@ -20,6 +20,7 @@ UsageReportPreferencePage_NumberOfUsageHits=Number of usage-hits\: + UsageReportPreferencePage_OperatingSystem=Operating system\: + UsageReportPreferencePage_OperatingSystemVersion=Operating system version\: + UsageReportPreferencePage_LinuxDistro=Linux Distro\: ++UsageReportPreferencePage_InstalledPkgs=Installed packages\: + + UsageReportPreferencePage_JvmName=JVM name\: + UsageReportPreferencePage_JvmVersion=JVM version\: diff --git a/sources b/sources new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/sources