Bug 1430309 - Remove classycle from the tree. r=froydnj
☠☠ backed out by 8b27687d7617 ☠ ☠
authorNick Alexander <nalexander@mozilla.com>
Thu, 16 Nov 2017 09:58:51 -0800
changeset 453597 0b0cab4592d9e15e0ae68ded75838993c7bd9f7e
parent 453596 1cf3422c44890c30f38833c6c3df47f3edec59d6
child 453598 5dd6963e2a123df1baa6fab3a878ed4b1660133c
push id1648
push usermtabara@mozilla.com
push dateThu, 01 Mar 2018 12:45:47 +0000
treeherdermozilla-release@cbb9688c2eeb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfroydnj
bugs1430309, 1096627
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1430309 - Remove classycle from the tree. r=froydnj This was added in Bug 1096627 to enforce the baseline GeckoView layering that we had at that time. Now that GeckoView is a separate Gradle project, that layering is automatically enforced. It's time for this to go. MozReview-Commit-ID: Ly35QhgBdWM
mobile/android/base/Makefile.in
mobile/android/base/geckoview.ddf
mobile/android/base/moz.build
mobile/android/build/classycle/LICENSE.txt
mobile/android/build/classycle/classycle-1.4.1.jar
--- a/mobile/android/base/Makefile.in
+++ b/mobile/android/base/Makefile.in
@@ -268,29 +268,16 @@ else
     else
       PROGUARD_PASSES=6
     endif
   endif
 endif
 
 proguard_config_dir=$(topsrcdir)/mobile/android/config/proguard
 
-# This stanza ensures that the set of GeckoView classes does not depend on too
-# much of Fennec, where "too much" is defined as the set of potentially
-# non-GeckoView classes that GeckoView already depended on at a certain point in
-# time.  The idea is to set a high-water mark that is not to be crossed.
-classycle_jar := $(topsrcdir)/mobile/android/build/classycle/classycle-1.4.1.jar
-.geckoview.deps: geckoview.ddf $(classycle_jar) $(ALL_JARS)
-	$(JAVA) -cp $(classycle_jar) \
-		classycle.dependency.DependencyChecker \
-		-mergeInnerClasses \
-		-dependencies=@$< \
-		$(ALL_JARS)
-	@$(TOUCH) $@
-
 # First, we delete debugging information from libraries. Having line-number
 # information for libraries for which we lack the source isn't useful, so this
 # saves us a bit of space. Importantly, Proguard has a bug causing it to
 # sometimes corrupt this information if present (which it does for some of the
 # included libraries). This corruption prevents dex from completing, so we need
 # to get rid of it.  This prevents us from seeing line numbers in stack traces
 # for stack frames inside libraries.
 #
@@ -307,17 +294,17 @@ classycle_jar := $(topsrcdir)/mobile/and
 		-injars $(subst ::,:,$(java_bundled_libs))\
 		-outjars bundled-jars-nodebug \
 		-libraryjars $(library_jars):gecko-R.jar
 
 # We touch the target file before invoking Proguard so that Proguard's
 # outputs are fresher than the target, preventing a subsequent
 # invocation from thinking Proguard's outputs are stale.  This is safe
 # because Make removes the target file if any recipe command fails.
-.proguard.deps: .geckoview.deps .bundled.proguard.deps $(ALL_JARS) $(proguard_config_dir)/proguard.cfg $(PROGUARD_JAR)
+.proguard.deps: .bundled.proguard.deps $(ALL_JARS) $(proguard_config_dir)/proguard.cfg $(PROGUARD_JAR)
 	$(REPORT_BUILD)
 	@$(TOUCH) $@
 	$(JAVA) \
 		-Xmx512m -Xms128m \
 		-jar $(PROGUARD_JAR) \
 		@$(proguard_config_dir)/proguard.cfg \
 		-optimizationpasses $(PROGUARD_PASSES) \
 		-injars $(subst ::,:,$(all_jars_classpath)):bundled-jars-nodebug \
deleted file mode 100644
--- a/mobile/android/base/geckoview.ddf
+++ /dev/null
@@ -1,74 +0,0 @@
-# This is a Classycle dependency definition file that asserts that the contents
-# of the GeckoView library (Classycle set [lib]) is a dependency (but does not
-# depend) on Fennec (Classycle set [main]).  The additional Classycle set
-# [middle] consists of classes referenced by GeckoView that probably should not
-# be referenced.  We want this middle set to shrink over time.
-
-show allResults
-
-[lib] = \
-  org.mozilla.gecko.gfx.* \
-  org.mozilla.gecko.mozglue.* \
-  org.mozilla.gecko.sqlite.* \
-  org.mozilla.gecko.util.* \
-  org.mozilla.gecko.AndroidGamepadManager \
-  org.mozilla.gecko.AppConstants \
-  org.mozilla.gecko.ContextGetter \
-  org.mozilla.gecko.CrashHandler \
-  org.mozilla.gecko.EventDispatcher \
-  org.mozilla.gecko.GeckoAccessibility \
-  org.mozilla.gecko.GeckoAppShell \
-  org.mozilla.gecko.GeckoBatteryManager \
-  org.mozilla.gecko.GeckoEditable \
-  org.mozilla.gecko.GeckoEditableClient \
-  org.mozilla.gecko.GeckoEditableListener \
-  org.mozilla.gecko.GeckoEvent \
-  org.mozilla.gecko.GeckoInputConnection \
-  org.mozilla.gecko.GeckoJavaSampler \
-  org.mozilla.gecko.GeckoNetworkManager \
-  org.mozilla.gecko.GeckoProfile \
-  org.mozilla.gecko.GeckoScreenOrientation \
-  org.mozilla.gecko.GeckoSharedPrefs \
-  org.mozilla.gecko.GeckoThread \
-  org.mozilla.gecko.GeckoView \
-  org.mozilla.gecko.GlobalHistory \
-  org.mozilla.gecko.InputMethods \
-  org.mozilla.gecko.NSSBridge \
-  org.mozilla.gecko.NotificationClient \
-  org.mozilla.gecko.NotificationHandler \
-  org.mozilla.gecko.PrefsHelper \
-  org.mozilla.gecko.SysInfo \
-  org.mozilla.gecko.TouchEventInterceptor \
-  org.mozilla.gecko.ZoomConstraints
-
-[middle] = \
-  org.mozilla.gecko.prompts.* \
-  org.mozilla.gecko.FormAssistPopup \
-  org.mozilla.gecko.GeckoActivity \
-  org.mozilla.gecko.GeckoApp \
-  org.mozilla.gecko.GeckoProfileDirectories \
-  org.mozilla.gecko.GuestSession \
-  org.mozilla.gecko.R \
-  org.mozilla.gecko.Tab \
-  org.mozilla.gecko.Tabs \
-  org.mozilla.gecko.Telemetry \
-  org.mozilla.gecko.TelemetryContract \
-  org.mozilla.gecko.ThumbnailHelper \
-  org.mozilla.gecko.db.BrowserDB \
-  org.mozilla.gecko.db.LocalBrowserDB \
-  org.mozilla.gecko.distribution.Distribution \
-  org.mozilla.gecko.icons.*
-
-[main] = org.mozilla.gecko.* excluding [lib] [middle]
-
-check sets [lib] [middle] [main]
-
-# Bug 1107134: it appears that Classycle can be fooled if the Java
-# compiler inlines a constant from [main] into [lib].  That is, [main]
-# really does depend on [lib] but Classycle only sees the dependency
-# with some javac versions.  For now, disable the check.  Yes, this
-# processing is useless without this check.
-# check [lib] directlyIndependentOf [main]
-
-# This fails; if this passed, GeckoView would be ready to extract from Fennec.
-# check [lib] independentOf [middle]
--- a/mobile/android/base/moz.build
+++ b/mobile/android/base/moz.build
@@ -17,19 +17,16 @@ with Files('adjust-sdk-sandbox.token'):
     BUG_COMPONENT = ('Firefox for Android', 'Build Config & IDE Support')
 
 with Files('pocket-api-sandbox.token'):
     BUG_COMPONENT = ('Firefox for Android', 'Build Config & IDE Support')
 
 with Files('android-services.mozbuild'):
     BUG_COMPONENT = ('Android Background Services', 'Android Sync')
 
-with Files('geckoview.ddf'):
-    BUG_COMPONENT = ('Firefox for Android', 'GeckoView')
-
 with Files('crashreporter/**'):
     BUG_COMPONENT = ('Firefox for Android', 'General')
 
 with Files('java/**'):
     BUG_COMPONENT = ('Firefox for Android', 'General')
 
 with Files('java/org/mozilla/gecko/activitystream/**'):
     BUG_COMPONENT = ('Firefox for Android', 'Awesomescreen')
deleted file mode 100644
--- a/mobile/android/build/classycle/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2003-2008, Franz-Josef Elmer, All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-- Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
deleted file mode 100644
index bc8f2ddaac38df5e5eb22e2033546e04aa0d656f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001