summaryrefslogtreecommitdiff
path: root/dev-java/swt
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-java/swt
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-java/swt')
-rw-r--r--dev-java/swt/Manifest23
-rw-r--r--dev-java/swt/files/as-needed-and-flag-fixes-3.6.patch243
-rw-r--r--dev-java/swt/files/build.xml17
-rw-r--r--dev-java/swt/files/swt-3.7-manifest17
-rw-r--r--dev-java/swt/files/swt-3.7.2-gio_launch-URI-x86.patch121
-rw-r--r--dev-java/swt/files/swt-3.7.2-gio_launch-URI.patch121
-rw-r--r--dev-java/swt/files/swt-3.8-as-needed-and-flag-fixes.patch243
-rw-r--r--dev-java/swt/files/swt-3.8-manifest17
-rw-r--r--dev-java/swt/files/swt-3.8.2-gthread.patch44
-rw-r--r--dev-java/swt/files/swt-4.2-as-needed-and-flag-fixes.patch243
-rw-r--r--dev-java/swt/files/swt-4.2-manifest16
-rw-r--r--dev-java/swt/metadata.xml13
-rw-r--r--dev-java/swt/swt-3.7.2-r2.ebuild169
-rw-r--r--dev-java/swt/swt-3.8.2-r2.ebuild166
-rw-r--r--dev-java/swt/swt-4.2-r3.ebuild169
15 files changed, 1622 insertions, 0 deletions
diff --git a/dev-java/swt/Manifest b/dev-java/swt/Manifest
new file mode 100644
index 000000000000..7553c8e7b68e
--- /dev/null
+++ b/dev-java/swt/Manifest
@@ -0,0 +1,23 @@
+AUX as-needed-and-flag-fixes-3.6.patch 7755 BLAKE2B 8e15b6cba2fa403b63647eab5e9b1ffc293d6db67cac2c2ecdc437cbe540433ef4077a333e9290a36c9615204a8361864b322442be9030e66d4d8bfa1569a8ed SHA512 9c2061b82d0a9a10fc99500ea27192cbf74001ab48254f528f00c15ca28e56de697c3861975691d0f8e4d6079a77236a8389ba07612c98031297e3289f4bf083
+AUX build.xml 458 BLAKE2B 5e37fe8b8428e23f477c2767a2a96b1dc02aa6a8d4caa70b9f900c84d734f72665bb7cfeb7fd24dd6b54189ef4a242b1a6b9ab9d4d0bb0b370d59b491f09d2bd SHA512 49f3a4cc04d4d9cf0609aa97e01fa409a8f2dbb953ab3a52bc9984799d0bf4092d2a63fe665d8ba6ca0428089984b6ef47bc78900c613373ca1a7b588f6c5525
+AUX swt-3.7-manifest 750 BLAKE2B b0182c7e25e66be2443e3dcf0d64be1a92b836b8cd461cd6a92e7b73985a91a0c853fb8a3b784fa1edb70e2261f4a94e7273a505e4b130fcfe7b1c372b41efa1 SHA512 e4f6aa5ce58cdc697c234a2a4be43de0510d3c082a2737627a35df74d378a50edc0f7d3e62221f402eed602fcdc50fa7eff969b12602189fd400e1f1580f0d8f
+AUX swt-3.7.2-gio_launch-URI-x86.patch 4287 BLAKE2B 54c55cd48cb4f4d64deae90769aa84b7d2785c070c2e5b3e647037ca986d152b8ea71bb58c0d9749e8efb50fca53ab3fc9dbb4ae4355a86dc2285f253e74e064 SHA512 c82364b7e7bc255ed592a254201346a4159789ddbf486f22c026fdefce3f0d26bc91b42535228050eee4ec9b4e7a840008b60b2c7cb98896d6b8f1d875b5bef7
+AUX swt-3.7.2-gio_launch-URI.patch 4287 BLAKE2B 45c2655ca657b968b1fa6dc74fee4e30330339da12ffac079eaf616cf1f2e9a3a8e984789d38c43019ade81d9a5a444b0a763df3026732dbc515a3a6b329efb5 SHA512 4954c7464bb2ab7b9c23fd771d3dd49dd826d4a919d3ee85914ca8360708f26d396aaaa6564cc826fcff6ea892d916097e118c4ed0a1ed60cb8217e5c3ebf94d
+AUX swt-3.8-as-needed-and-flag-fixes.patch 8852 BLAKE2B 963f9cccc06c41b6bbd88d5430d66b500094c19708bb903cae7b125342556eb42d193c91fb6c3ca94c589a75060e3a16c3f8cec2ccd02c3f5a4176d5ec2c6a91 SHA512 523dfb0c0fa2bb2c8c0647ef214465c7ebbc93a7a179b204efc46065a925170dc2659238bbb0abefc73b145322b9668340d36ff8a95fc5083890223b48d6e644
+AUX swt-3.8-manifest 750 BLAKE2B 46ff2102bf58343aa6443accc445c1531920f5913876189f471eba38961c4850cc121f52410570f8cae374f2112ec9466cffaccb218daf9558d43c32f39cd24c SHA512 ce465f77e2fc3340ccaf3ecce67697666972331f849ef196eeebfed3dd1342691a5641ec20b91bc5b480ea0acc9edf194ec9f4bc597c2778d0bd0382923d1bc5
+AUX swt-3.8.2-gthread.patch 1225 BLAKE2B 44dd188433a0e3f70ae53c2df79ffe1fe9839e82847568f611e1c04d380b6cd5837c7f96055ea3132c401de3e73f4b41e6b9bf070f515778cf0b5ddbdaa8942f SHA512 035ea3dda893481f67ac0447e0c7382a9761eb3ee77b65ca77038bd17117b68a2d93058c8414d9b2656ceeecde3e6ebc06c0f27e044f217fe8f44945104dcbd4
+AUX swt-4.2-as-needed-and-flag-fixes.patch 7840 BLAKE2B 96edb84193506ed8c4c293970def5c1c38fb0cd66561030e1e07f214a70f84c657260e1adbdf41f2eb404d4069794cca9b5422dea344ceaf028fbc75cf9aaa26 SHA512 00cc50a0432bb17272a40c3606c9a5729171708af5581c861a5bfae3d1b694289de92164961bfceb841813fb9161befdc2114616556296e81401f133f07c1db1
+AUX swt-4.2-manifest 739 BLAKE2B 031d2e59e4b20c8aacdb4c5b03ff3bdfd14f9373386766993efeb833995d4858b09ac157bdc847820271bd0a354f5c0280aa0746eb0038413782c5cf59f7ba4c SHA512 f17bdc21083c70896d82d12d6918bb121db838b895d1db95dbbf9bbc0368b1b26e6b6acf5a90b709ff961f3640911111932391fa45ae898d1de8a387d17594b1
+DIST swt-3.7.2-gtk-linux-ppc64.zip 5688113 BLAKE2B bb102da40a3f63d63ca6a56d4c57ade55d7fe8d6206acf9e60caa0a8600b5c2cec6c0304cd2ab532948f03ff0706e8b2928ae9e93ef0019051044dad3fe7b1c0 SHA512 750aaa43560bbf6f82f7f8cd9338abc88578f4f0b9aadaec9bc8a5c3d1ad593619cdf01d202cbf06766090ee977989ea7904643669c61971973951d8428b57d0
+DIST swt-3.7.2-gtk-linux-x86.zip 5374609 BLAKE2B 04d44b9fffcedc6ce255e2651377ac6968bb41c44cee403f063c159962d9d43a5c9529026819ddb1c8eea98cd11ed818075c37f4e9851d2e95532dc166e570ce SHA512 9f58864d05eba2648e4b5d5c958172f5c0c7c730209525b3d6f607586daaefea4d5ba1013e80c0c11948f01c553044b0a98c81688b33c14114ba79c7ce620426
+DIST swt-3.7.2-gtk-linux-x86_64.zip 5671443 BLAKE2B 953fc9eab6d1f2750b1a1345cddf4aa6969567cb75977f87ee50668d367e55dda8be2ff836d87b780005c22132fa783b475f422c093617fd02f478eadd96076d SHA512 d60ae1d3f3b0577f7e3018139f93069c89d021064fec2f3f4074f95cfae56abdc0c7d531cb904ad3911482543cddcc3f6646ff47192073f4bde97c79e13612b7
+DIST swt-3.8.2-gtk-linux-ppc64.zip 5933708 BLAKE2B d49633d9d5049d1a6f9bbdcf5a364b73802194fbaf02aa5064c7a1c917e0aad80c829b026a1a41b7903ed0d8066af89ff24683897ced8cbe8c41406a7696c408 SHA512 cb9f2c7aed0b18bae6546272076c23c91d9e1a38404f0a70ddc6408047d961befe2839db177066312b82d8365bee6bcffb6e92aaa7a869ad37d9f49ab780e337
+DIST swt-3.8.2-gtk-linux-x86.zip 5558694 BLAKE2B 8dd0ce9f2c6b8dc448c85a6c509f39ef2da000e0589da52330b83dec87601d100320af778983b2083ca8f9e2890a2d4c731cb2810d9054a9e50e7940ad14bea2 SHA512 afe1563e92fe9af0a58e7dbae731976991a6afacf6415ab88ebf557f99a5154169ad7103519524f71142c4160d55a9b0a9f7379b21486430318e4160e6f01c00
+DIST swt-3.8.2-gtk-linux-x86_64.zip 5865160 BLAKE2B 45d60d334eb99f407cf9101a06f65e48543538a386103767700fb0af5ea0cf3da73eefe57b8cc6b3d78cb8f29345869f5474513648560395a69cbd4c9b8ee8a4 SHA512 43a27cb6fc891d7da35f5fcfc6ccb689d2b2c58de70b628b1e7cf07131f0641598b627eeedafb6a8dca715a336a7fb4fb6a03bb29fea3e115a4af571b1574cf8
+DIST swt-4.2-gtk-linux-ppc64.zip 5935799 BLAKE2B 6b1ca0d25d81134239e56ead673303075b6d9c5f20e4ab07fb7b5b87d54582023d02c28a1d330fd40d647bdbc27823ca7b184837cb974706ee13809ebdfd2db4 SHA512 bedd64099380980a6dbe47b86f4719666366680f7580150f97282c6f6b6acc95822493469e950e8fcbc9c584f6fca9f35a59937551ae8b6e799b188dc3751e9d
+DIST swt-4.2-gtk-linux-x86.zip 5561088 BLAKE2B cf8bda6a48d5d8e389c387162bf2aafde5a95c43d76e444a4b79008e1154348d2c99850851b3d0e428890e6b2da1e4bec53a7f9050169ad4866a5a8352e9ed2b SHA512 e3d53bcd0521411c40f4c37719917f3570a17fb3ea5c617560986273fd155b99d9b0790ba27c57da26663d49ebec4c6a8387b41bd01b0ba934b21724ba98e133
+DIST swt-4.2-gtk-linux-x86_64.zip 5867140 BLAKE2B 994bf18799297529329637c1b9ebf15638187339b4f56bf8cc1dedfc97c25a1ea4a1664605cac1374fe3d79b321dc450c6129ebef00ddd6f9507f238b7836316 SHA512 56c5ec4ca2ddeed5256dd6ff350dc3911034ecbc414a06ba879f04ab53d6380ca9da9037097f76228ca8182f6076bcd9cc4cb9b01c10766c10048e6576fc5f50
+EBUILD swt-3.7.2-r2.ebuild 4606 BLAKE2B 9d782b21565f93a1d69e83f3f65ade694bbc1034f24ac2b1a59ceaa1c2da0defcd00e27d43c43907e04661b3a29094282dfca952caa99d4ece750b72491f28ec SHA512 6ca872bd210d5823d369abc031d3e412a3e3f869f541c37f4fcfc084bedefb1e3144f3aeb7d1bfc039b0337641c1582bcde76a279a5a0f6a2b5b0f5c4232495d
+EBUILD swt-3.8.2-r2.ebuild 4437 BLAKE2B 19f84cd5506ca1306754a26f601d9a1a18b6e3f3091e7f38fb768db833621c741502794417ab7099a1edec0546ba6c79785c918bb26aa0acfb3bdc5dc788b860 SHA512 c4e25e86c66d29d74d5bc100d97214b3742369ab7bbf96f38fd95ed28c7c03838f3260dcd45f755c90a07ba4f0f0a066702f7f8b2396e66569fe6f513770ab28
+EBUILD swt-4.2-r3.ebuild 4682 BLAKE2B 1e47fc517f3eba4ff626129f5b4810dba8930da995aa03788806d324192443e56570c280e3e732f4a58b6b3aad125574b22e8d024de11b56cced051675cb382c SHA512 15ffbb9e0cdaca5bc782327052d049efce05686d2a27ab84f44c9388e82a2f83ce42adab9e2c8110580b7572b18b111d5dcdf5ab601021cc2a321a84ffeca130
+MISC metadata.xml 518 BLAKE2B a325a8cd71c85886ffabde744769f9edfac99311d30be502937ff560e3cdced76c92a4a90979e0d46950fa2f345d2364d21902ee13fefa4d78477bb829e6298f SHA512 088a1c3b97e2496e801234ef5a99ce14bb259f8065545e4be1af65e6e5639c273a88a77ed50c414e35c20f62e7b5183c721321a0e463ffb990dba05ea271251e
diff --git a/dev-java/swt/files/as-needed-and-flag-fixes-3.6.patch b/dev-java/swt/files/as-needed-and-flag-fixes-3.6.patch
new file mode 100644
index 000000000000..16194fdc5f51
--- /dev/null
+++ b/dev-java/swt/files/as-needed-and-flag-fixes-3.6.patch
@@ -0,0 +1,243 @@
+--- make_linux.mak~ 2010-06-08 17:30:58.000000000 +0000
++++ make_linux.mak 2010-08-09 22:48:01.515433721 +0000
+@@ -66,7 +66,7 @@
+ # Uncomment for Native Stats tool
+ #NATIVE_STATS = -DNATIVE_STATS
+
+-MOZILLACFLAGS = -O \
++MOZILLACFLAGS = $(CXXFLAGS) \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DMOZILLA_STRICT_API=1 \
+@@ -107,7 +107,7 @@
+ WEBKIT_OBJECTS = swt.o webkit.o webkit_structs.o webkit_stats.o
+ GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o
+
+-CFLAGS = -O -Wall \
++CFLAGS += \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DLINUX -DGTK \
+@@ -131,13 +131,13 @@
+ make_swt: $(SWT_LIB) $(SWTPI_LIB)
+
+ $(SWT_LIB): $(SWT_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
+
+ callback.o: callback.c callback.h
+ $(CC) $(CFLAGS) -DUSE_ASSEMBLER -c callback.c
+
+ $(SWTPI_LIB): $(SWTPI_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
+
+ swt.o: swt.c swt.h
+ $(CC) $(CFLAGS) -c swt.c
+@@ -156,7 +156,7 @@
+ make_cairo: $(CAIRO_LIB)
+
+ $(CAIRO_LIB): $(CAIRO_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
+
+ cairo.o: cairo.c cairo.h swt.h
+ $(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo.c
+@@ -172,7 +172,7 @@
+ make_cde: $(CDE_LIB)
+
+ $(CDE_LIB): $(CDE_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
+
+ #
+ # AWT lib
+@@ -180,7 +180,7 @@
+ make_awt:$(AWT_LIB)
+
+ $(AWT_LIB): $(AWT_OBJECTS)
+- $(CC) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
++ $(CC) $(LDFLAGS) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
+
+ #
+ # Atk lib
+@@ -188,7 +188,7 @@
+ make_atk: $(ATK_LIB)
+
+ $(ATK_LIB): $(ATK_OBJECTS)
+- $(CC) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
+
+ atk.o: atk.c atk.h
+ $(CC) $(CFLAGS) $(ATKCFLAGS) -c atk.c
+@@ -205,7 +205,7 @@
+ make_gnome: $(GNOME_LIB)
+
+ $(GNOME_LIB): $(GNOME_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
+
+ gnome.o: gnome.c
+ $(CC) $(CFLAGS) $(GNOMECFLAGS) -c gnome.c
+@@ -222,7 +222,7 @@
+ make_mozilla:$(MOZILLA_LIB)
+
+ $(MOZILLA_LIB): $(MOZILLA_OBJECTS)
+- $(CXX) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
++ $(CXX) $(LDFLAGS) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
+
+ xpcom.o: xpcom.cpp
+ $(CXX) $(MOZILLACFLAGS) $(MOZILLAEXCLUDES) ${MOZILLA_INCLUDES} -c xpcom.cpp
+@@ -242,7 +242,7 @@
+ make_xulrunner:$(XULRUNNER_LIB)
+
+ $(XULRUNNER_LIB): $(XULRUNNER_OBJECTS)
+- $(CXX) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcomxul.o: xpcom.cpp
+ $(CXX) -o xpcomxul.o $(MOZILLACFLAGS) $(XULRUNNEREXCLUDES) ${XULRUNNER_INCLUDES} -c xpcom.cpp
+@@ -262,7 +262,7 @@
+ make_xpcominit:$(XPCOMINIT_LIB)
+
+ $(XPCOMINIT_LIB): $(XPCOMINIT_OBJECTS)
+- $(CXX) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcominit.o: xpcominit.cpp
+ $(CXX) $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcominit.cpp
+@@ -279,7 +279,7 @@
+ make_webkit: $(WEBKIT_LIB)
+
+ $(WEBKIT_LIB): $(WEBKIT_OBJECTS)
+- $(CC) $(LFLAGS) -o $(WEBKIT_LIB) $(WEBKIT_OBJECTS) $(WEBKITLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(WEBKIT_LIB) $(WEBKIT_OBJECTS) $(WEBKITLIBS)
+
+ webkit.o: webkitgtk.c
+ $(CC) $(CFLAGS) $(WEBKITCFLAGS) -c webkitgtk.c -o webkit.o
+@@ -296,7 +296,7 @@
+ make_glx: $(GLX_LIB)
+
+ $(GLX_LIB): $(GLX_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
+
+ glx.o: glx.c
+ $(CC) $(CFLAGS) $(GLXCFLAGS) -c glx.c
+--- make_freebsd.mak~ 2010-06-08 17:30:58.000000000 +0000
++++ make_freebsd.mak 2010-08-09 22:50:26.173246263 +0000
+@@ -64,7 +64,7 @@
+ # Uncomment for Native Stats tool
+ #NATIVE_STATS = -DNATIVE_STATS
+
+-MOZILLACFLAGS = -O \
++MOZILLACFLAGS += \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DMOZILLA_STRICT_API=1 \
+@@ -91,7 +91,7 @@
+ XPCOMINIT_OBJECTS = swt.o xpcominit.o xpcominit_structs.o xpcominit_stats.o
+ GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o
+
+-CFLAGS = -O -Wall \
++CFLAGS += \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DFREEBSD -DGTK \
+@@ -115,13 +115,13 @@
+ make_swt: $(SWT_LIB) $(SWTPI_LIB)
+
+ $(SWT_LIB): $(SWT_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
+
+ callback.o: callback.c callback.h
+ $(CC) $(CFLAGS) -DUSE_ASSEMBLER -c callback.c
+
+ $(SWTPI_LIB): $(SWTPI_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
+
+ swt.o: swt.c swt.h
+ $(CC) $(CFLAGS) -c swt.c
+@@ -140,7 +140,7 @@
+ make_cairo: $(CAIRO_LIB)
+
+ $(CAIRO_LIB): $(CAIRO_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
+
+ cairo.o: cairo.c cairo.h swt.h
+ $(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo.c
+@@ -156,7 +156,7 @@
+ make_cde: $(CDE_LIB)
+
+ $(CDE_LIB): $(CDE_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
+
+ #
+ # AWT lib
+@@ -164,7 +164,7 @@
+ make_awt:$(AWT_LIB)
+
+ $(AWT_LIB): $(AWT_OBJECTS)
+- $(CC) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
++ $(CC) $(LDFLAGS) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
+
+ #
+ # Atk lib
+@@ -172,7 +172,7 @@
+ make_atk: $(ATK_LIB)
+
+ $(ATK_LIB): $(ATK_OBJECTS)
+- $(CC) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
+
+ atk.o: atk.c atk.h
+ $(CC) $(CFLAGS) $(ATKCFLAGS) -c atk.c
+@@ -189,7 +189,7 @@
+ make_gnome: $(GNOME_LIB)
+
+ $(GNOME_LIB): $(GNOME_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
+
+ gnome.o: gnome.c
+ $(CC) $(CFLAGS) $(GNOMECFLAGS) -c gnome.c
+@@ -206,7 +206,7 @@
+ make_mozilla:$(MOZILLA_LIB)
+
+ $(MOZILLA_LIB): $(MOZILLA_OBJECTS)
+- $(CXX) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
++ $(CXX) $(LDFLAGS) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
+
+ xpcom.o: xpcom.cpp
+ $(CXX) $(MOZILLACFLAGS) ${MOZILLA_INCLUDES} -c xpcom.cpp
+@@ -226,7 +226,7 @@
+ make_xulrunner:$(XULRUNNER_LIB)
+
+ $(XULRUNNER_LIB): $(XULRUNNER_OBJECTS)
+- $(CXX) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcomxul.o: xpcom.cpp
+ $(CXX) -o xpcomxul.o $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcom.cpp
+@@ -252,7 +252,7 @@
+ make_xpcominit:$(XPCOMINIT_LIB)
+
+ $(XPCOMINIT_LIB): $(XPCOMINIT_OBJECTS)
+- $(CXX) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcominit.o: xpcominit.cpp
+ $(CXX) $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcominit.cpp
+@@ -269,7 +269,7 @@
+ make_glx: $(GLX_LIB)
+
+ $(GLX_LIB): $(GLX_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
+
+ glx.o: glx.c
+ $(CC) $(CFLAGS) $(GLXCFLAGS) -c glx.c
diff --git a/dev-java/swt/files/build.xml b/dev-java/swt/files/build.xml
new file mode 100644
index 000000000000..ea775871bf09
--- /dev/null
+++ b/dev-java/swt/files/build.xml
@@ -0,0 +1,17 @@
+<project name="SWT" default="jar" basedir=".">
+ <property name="src" location="."/>
+ <property name="build" location="build"/>
+
+ <target name="init">
+ <tstamp/>
+ <mkdir dir="${build}"/>
+ </target>
+
+ <target name="compile" depends="init" description="Compile the SWT toolset">
+ <javac srcdir="${src}" destdir="${build}"/>
+ </target>
+
+ <target name="jar">
+ <jar destfile="swt.jar" basedir="${build}"/>
+ </target>
+</project>
diff --git a/dev-java/swt/files/swt-3.7-manifest b/dev-java/swt/files/swt-3.7-manifest
new file mode 100644
index 000000000000..bddcbb48b041
--- /dev/null
+++ b/dev-java/swt/files/swt-3.7-manifest
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Fragment-Host: org.eclipse.swt; bundle-version="[3.0.0,4.0.0)"
+Bundle-SymbolicName: org.eclipse.swt.gtk.linux.SWT_ARCH; singleton:=true
+Bundle-Version: 3.7
+Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=SWT_ARCH))
+Export-Package: org.eclipse.swt.internal.accessibility.gtk; x-internal:=true,
+ org.eclipse.swt.internal.cairo; x-internal:=true,
+ org.eclipse.swt.internal.cde; x-internal:=true,
+ org.eclipse.swt.internal.gnome; x-internal:=true,
+ org.eclipse.swt.internal.gtk; x-internal:=true,
+ org.eclipse.swt.internal.opengl.glx; x-internal:=true
+ org.eclipse.swt.internal.webkit; x-internal:=true
+
diff --git a/dev-java/swt/files/swt-3.7.2-gio_launch-URI-x86.patch b/dev-java/swt/files/swt-3.7.2-gio_launch-URI-x86.patch
new file mode 100644
index 000000000000..cab0e0cdb573
--- /dev/null
+++ b/dev-java/swt/files/swt-3.7.2-gio_launch-URI-x86.patch
@@ -0,0 +1,121 @@
+Program.launch will first attempt to open files using libgio and then fallback
+to gnome-vfs. gio_launch uses g_file_new_for_path which fails when passed a
+URI. If swt was built with USE="-gnome" then the fallback fails as well,
+making it appear that a package has a dependency on swt[gnome] when it does
+not.
+
+Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
+ no swt-gnome-gtk-3740 in java.library.path
+ no swt-gnome-gtk in java.library.path
+ Can't load library: /home/xxx/.swt/lib/linux/x86_64/libswt-gnome-gtk-3740.so
+ Can't load library: /home/xxx/.swt/lib/linux/x86_64/libswt-gnome-gtk.so
+
+Use g_file_new_for_commandline_arg instead.
+
+https://bugs.gentoo.org/424151
+
+
+--- a/os.c
++++ b/os.c
+@@ -3059,6 +3059,30 @@ fail:
+ }
+ #endif
+
++#ifndef NO__1g_1file_1new_1for_1commandline_1arg
++JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1file_1new_1for_1commandline_1arg)
++ (JNIEnv *env, jclass that, jbyteArray arg0)
++{
++ jbyte *lparg0=NULL;
++ jintLong rc = 0;
++ OS_NATIVE_ENTER(env, that, _1g_1file_1new_1for_1commandline_1arg_FUNC);
++ if (arg0) if ((lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL)) == NULL) goto fail;
++/*
++ rc = (jintLong)g_file_new_for_commandline_arg(lparg0);
++*/
++ {
++ LOAD_FUNCTION(fp, g_file_new_for_commandline_arg)
++ if (fp) {
++ rc = (jintLong)((jintLong (CALLING_CONVENTION*)(jbyte *))fp)(lparg0);
++ }
++ }
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);
++ OS_NATIVE_EXIT(env, that, _1g_1file_1new_1for_1commandline_1arg_FUNC);
++ return rc;
++}
++#endif
++
+ #ifndef NO__1g_1file_1new_1for_1path
+ JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1file_1new_1for_1path)
+ (JNIEnv *env, jclass that, jbyteArray arg0)
+--- a/os_custom.h
++++ b/os_custom.h
+@@ -280,6 +280,7 @@
+ #define g_file_icon_get_file_LIB LIB_GIO
+ #define g_file_info_get_content_type_LIB LIB_GIO
+ #define g_file_info_get_modification_time_LIB LIB_GIO
++#define g_file_new_for_commandline_arg_LIB LIB_GIO
+ #define g_file_new_for_path_LIB LIB_GIO
+ #define g_file_new_for_uri_LIB LIB_GIO
+ #define g_file_read_LIB LIB_GIO
+--- a/os_stats.c
++++ b/os_stats.c
+@@ -18,8 +18,8 @@
+
+ #ifdef NATIVE_STATS
+
+-int OS_nativeFunctionCount = 1396;
+-int OS_nativeFunctionCallCount[1396];
++int OS_nativeFunctionCount = 1397;
++int OS_nativeFunctionCallCount[1397];
+ char * OS_nativeFunctionNames[] = {
+ #ifndef JNI64
+ "Call__IIII",
+@@ -250,6 +250,7 @@ char * OS_nativeFunctionNames[] = {
+ "_1g_1file_1icon_1get_1file",
+ "_1g_1file_1info_1get_1content_1type",
+ "_1g_1file_1info_1get_1modification_1time",
++ "_1g_1file_1new_1for_1commandline_1arg",
+ "_1g_1file_1new_1for_1path",
+ "_1g_1file_1new_1for_1uri",
+ "_1g_1file_1query_1info",
+--- a/os_stats.h
++++ b/os_stats.h
+@@ -258,6 +258,7 @@ typedef enum {
+ _1g_1file_1icon_1get_1file_FUNC,
+ _1g_1file_1info_1get_1content_1type_FUNC,
+ _1g_1file_1info_1get_1modification_1time_FUNC,
++ _1g_1file_1new_1for_1commandline_1arg_FUNC,
+ _1g_1file_1new_1for_1path_FUNC,
+ _1g_1file_1new_1for_1uri_FUNC,
+ _1g_1file_1query_1info_FUNC,
+--- a/src/org/eclipse/swt/internal/gtk/OS.java
++++ b/src/org/eclipse/swt/internal/gtk/OS.java
+@@ -2113,6 +2113,16 @@ public static final int /*long*/ g_file_new_for_path(byte[] fileName) {
+ }
+ }
+ /** @method flags=dynamic */
++public static final native int /*long*/ _g_file_new_for_commandline_arg(byte[] fileName);
++public static final int /*long*/ g_file_new_for_commandline_arg(byte[] fileName) {
++ lock.lock();
++ try {
++ return _g_file_new_for_commandline_arg(fileName);
++ } finally {
++ lock.unlock();
++ }
++}
++/** @method flags=dynamic */
+ public static final native int /*long*/ _g_file_new_for_uri(byte[] fileName);
+ public static final int /*long*/ g_file_new_for_uri(byte[] fileName) {
+ lock.lock();
+--- a/src/org/eclipse/swt/program/Program.java
++++ b/src/org/eclipse/swt/program/Program.java
+@@ -954,7 +954,7 @@ static boolean gio_isExecutable(String fileName) {
+ static boolean gio_launch(String fileName) {
+ boolean result = false;
+ byte[] fileNameBuffer = Converter.wcsToMbcs (null, fileName, true);
+- int /*long*/ file = OS.g_file_new_for_path (fileNameBuffer);
++ int /*long*/ file = OS.g_file_new_for_commandline_arg (fileNameBuffer);
+ if (file != 0) {
+ int /*long*/ uri = OS.g_file_get_uri (file);
+ if (uri != 0) {
diff --git a/dev-java/swt/files/swt-3.7.2-gio_launch-URI.patch b/dev-java/swt/files/swt-3.7.2-gio_launch-URI.patch
new file mode 100644
index 000000000000..bbb28573072b
--- /dev/null
+++ b/dev-java/swt/files/swt-3.7.2-gio_launch-URI.patch
@@ -0,0 +1,121 @@
+Program.launch will first attempt to open files using libgio and then fallback
+to gnome-vfs. gio_launch uses g_file_new_for_path which fails when passed a
+URI. If swt was built with USE="-gnome" then the fallback fails as well,
+making it appear that a package has a dependency on swt[gnome] when it does
+not.
+
+Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
+ no swt-gnome-gtk-3740 in java.library.path
+ no swt-gnome-gtk in java.library.path
+ Can't load library: /home/xxx/.swt/lib/linux/x86_64/libswt-gnome-gtk-3740.so
+ Can't load library: /home/xxx/.swt/lib/linux/x86_64/libswt-gnome-gtk.so
+
+Use g_file_new_for_commandline_arg instead.
+
+https://bugs.gentoo.org/424151
+
+
+--- a/os.c
++++ b/os.c
+@@ -3059,6 +3059,30 @@ fail:
+ }
+ #endif
+
++#ifndef NO__1g_1file_1new_1for_1commandline_1arg
++JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1file_1new_1for_1commandline_1arg)
++ (JNIEnv *env, jclass that, jbyteArray arg0)
++{
++ jbyte *lparg0=NULL;
++ jintLong rc = 0;
++ OS_NATIVE_ENTER(env, that, _1g_1file_1new_1for_1commandline_1arg_FUNC);
++ if (arg0) if ((lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL)) == NULL) goto fail;
++/*
++ rc = (jintLong)g_file_new_for_commandline_arg(lparg0);
++*/
++ {
++ LOAD_FUNCTION(fp, g_file_new_for_commandline_arg)
++ if (fp) {
++ rc = (jintLong)((jintLong (CALLING_CONVENTION*)(jbyte *))fp)(lparg0);
++ }
++ }
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);
++ OS_NATIVE_EXIT(env, that, _1g_1file_1new_1for_1commandline_1arg_FUNC);
++ return rc;
++}
++#endif
++
+ #ifndef NO__1g_1file_1new_1for_1path
+ JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1file_1new_1for_1path)
+ (JNIEnv *env, jclass that, jbyteArray arg0)
+--- a/os_custom.h
++++ b/os_custom.h
+@@ -280,6 +280,7 @@
+ #define g_file_icon_get_file_LIB LIB_GIO
+ #define g_file_info_get_content_type_LIB LIB_GIO
+ #define g_file_info_get_modification_time_LIB LIB_GIO
++#define g_file_new_for_commandline_arg_LIB LIB_GIO
+ #define g_file_new_for_path_LIB LIB_GIO
+ #define g_file_new_for_uri_LIB LIB_GIO
+ #define g_file_read_LIB LIB_GIO
+--- a/os_stats.c
++++ b/os_stats.c
+@@ -18,8 +18,8 @@
+
+ #ifdef NATIVE_STATS
+
+-int OS_nativeFunctionCount = 1396;
+-int OS_nativeFunctionCallCount[1396];
++int OS_nativeFunctionCount = 1397;
++int OS_nativeFunctionCallCount[1397];
+ char * OS_nativeFunctionNames[] = {
+ #ifndef JNI64
+ "Call__IIII",
+@@ -250,6 +250,7 @@ char * OS_nativeFunctionNames[] = {
+ "_1g_1file_1icon_1get_1file",
+ "_1g_1file_1info_1get_1content_1type",
+ "_1g_1file_1info_1get_1modification_1time",
++ "_1g_1file_1new_1for_1commandline_1arg",
+ "_1g_1file_1new_1for_1path",
+ "_1g_1file_1new_1for_1uri",
+ "_1g_1file_1query_1info",
+--- a/os_stats.h
++++ b/os_stats.h
+@@ -258,6 +258,7 @@ typedef enum {
+ _1g_1file_1icon_1get_1file_FUNC,
+ _1g_1file_1info_1get_1content_1type_FUNC,
+ _1g_1file_1info_1get_1modification_1time_FUNC,
++ _1g_1file_1new_1for_1commandline_1arg_FUNC,
+ _1g_1file_1new_1for_1path_FUNC,
+ _1g_1file_1new_1for_1uri_FUNC,
+ _1g_1file_1query_1info_FUNC,
+--- a/src/org/eclipse/swt/internal/gtk/OS.java
++++ b/src/org/eclipse/swt/internal/gtk/OS.java
+@@ -2113,6 +2113,16 @@ public static final long /*int*/ g_file_new_for_path(byte[] fileName) {
+ }
+ }
+ /** @method flags=dynamic */
++public static final native long /*int*/ _g_file_new_for_commandline_arg(byte[] fileName);
++public static final long /*int*/ g_file_new_for_commandline_arg(byte[] fileName) {
++ lock.lock();
++ try {
++ return _g_file_new_for_commandline_arg(fileName);
++ } finally {
++ lock.unlock();
++ }
++}
++/** @method flags=dynamic */
+ public static final native long /*int*/ _g_file_new_for_uri(byte[] fileName);
+ public static final long /*int*/ g_file_new_for_uri(byte[] fileName) {
+ lock.lock();
+--- a/src/org/eclipse/swt/program/Program.java
++++ b/src/org/eclipse/swt/program/Program.java
+@@ -954,7 +954,7 @@ static boolean gio_isExecutable(String fileName) {
+ static boolean gio_launch(String fileName) {
+ boolean result = false;
+ byte[] fileNameBuffer = Converter.wcsToMbcs (null, fileName, true);
+- long /*int*/ file = OS.g_file_new_for_path (fileNameBuffer);
++ long /*int*/ file = OS.g_file_new_for_commandline_arg (fileNameBuffer);
+ if (file != 0) {
+ long /*int*/ uri = OS.g_file_get_uri (file);
+ if (uri != 0) {
diff --git a/dev-java/swt/files/swt-3.8-as-needed-and-flag-fixes.patch b/dev-java/swt/files/swt-3.8-as-needed-and-flag-fixes.patch
new file mode 100644
index 000000000000..ce5c54e408e2
--- /dev/null
+++ b/dev-java/swt/files/swt-3.8-as-needed-and-flag-fixes.patch
@@ -0,0 +1,243 @@
+--- a/make_freebsd.mak
++++ b/make_freebsd.mak
+@@ -64,7 +64,7 @@ GLXLIBS = -L/usr/X11R6/lib -lGL -lGLU -lm
+ # Uncomment for Native Stats tool
+ #NATIVE_STATS = -DNATIVE_STATS
+
+-MOZILLACFLAGS = -O \
++MOZILLACFLAGS += \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DMOZILLA_STRICT_API=1 \
+@@ -91,7 +91,7 @@ XULRUNNER_OBJECTS = swt.o xpcomxul.o xpcomxul_custom.o xpcomxul_structs.o xpcomx
+ XPCOMINIT_OBJECTS = swt.o xpcominit.o xpcominit_structs.o xpcominit_stats.o
+ GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o
+
+-CFLAGS = -O -Wall \
++CFLAGS += \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DFREEBSD -DGTK \
+@@ -115,13 +115,13 @@ all: make_swt make_atk make_gnome make_glx
+ make_swt: $(SWT_LIB) $(SWTPI_LIB)
+
+ $(SWT_LIB): $(SWT_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
+
+ callback.o: callback.c callback.h
+ $(CC) $(CFLAGS) -DUSE_ASSEMBLER -c callback.c
+
+ $(SWTPI_LIB): $(SWTPI_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
+
+ swt.o: swt.c swt.h
+ $(CC) $(CFLAGS) -c swt.c
+@@ -140,7 +140,7 @@ os_stats.o: os_stats.c os_structs.h os.h os_stats.h swt.h
+ make_cairo: $(CAIRO_LIB)
+
+ $(CAIRO_LIB): $(CAIRO_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
+
+ cairo.o: cairo.c cairo.h swt.h
+ $(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo.c
+@@ -156,7 +156,7 @@ cairo_stats.o: cairo_stats.c cairo_structs.h cairo.h cairo_stats.h swt.h
+ make_cde: $(CDE_LIB)
+
+ $(CDE_LIB): $(CDE_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
+
+ #
+ # AWT lib
+@@ -164,7 +164,7 @@ $(CDE_LIB): $(CDE_OBJECTS)
+ make_awt:$(AWT_LIB)
+
+ $(AWT_LIB): $(AWT_OBJECTS)
+- $(CC) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
++ $(CC) $(LDFLAGS) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
+
+ #
+ # Atk lib
+@@ -172,7 +172,7 @@ $(AWT_LIB): $(AWT_OBJECTS)
+ make_atk: $(ATK_LIB)
+
+ $(ATK_LIB): $(ATK_OBJECTS)
+- $(CC) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
+
+ atk.o: atk.c atk.h
+ $(CC) $(CFLAGS) $(ATKCFLAGS) -c atk.c
+@@ -189,7 +189,7 @@ atk_stats.o: atk_stats.c atk_structs.h atk_stats.h atk.h
+ make_gnome: $(GNOME_LIB)
+
+ $(GNOME_LIB): $(GNOME_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
+
+ gnome.o: gnome.c
+ $(CC) $(CFLAGS) $(GNOMECFLAGS) -c gnome.c
+@@ -206,7 +206,7 @@ gnome_stats.o: gnome_stats.c gnome_stats.h
+ make_mozilla:$(MOZILLA_LIB)
+
+ $(MOZILLA_LIB): $(MOZILLA_OBJECTS)
+- $(CXX) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
++ $(CXX) $(LDFLAGS) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
+
+ xpcom.o: xpcom.cpp
+ $(CXX) $(MOZILLACFLAGS) ${MOZILLA_INCLUDES} -c xpcom.cpp
+@@ -226,7 +226,7 @@ xpcom_stats.o: xpcom_stats.cpp
+ make_xulrunner:$(XULRUNNER_LIB)
+
+ $(XULRUNNER_LIB): $(XULRUNNER_OBJECTS)
+- $(CXX) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcomxul.o: xpcom.cpp
+ $(CXX) -o xpcomxul.o $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcom.cpp
+@@ -252,7 +252,7 @@ xpcomxulglue_stats.o: xpcomglue_stats.cpp
+ make_xpcominit:$(XPCOMINIT_LIB)
+
+ $(XPCOMINIT_LIB): $(XPCOMINIT_OBJECTS)
+- $(CXX) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcominit.o: xpcominit.cpp
+ $(CXX) $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcominit.cpp
+@@ -269,7 +269,7 @@ xpcominit_stats.o: xpcominit_stats.cpp
+ make_glx: $(GLX_LIB)
+
+ $(GLX_LIB): $(GLX_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
+
+ glx.o: glx.c
+ $(CC) $(CFLAGS) $(GLXCFLAGS) -c glx.c
+--- a/make_linux.mak
++++ b/make_linux.mak
+@@ -66,7 +66,7 @@ GLXLIBS = -lGL -lGLU -lm
+ # Uncomment for Native Stats tool
+ #NATIVE_STATS = -DNATIVE_STATS
+
+-MOZILLACFLAGS = -O \
++MOZILLACFLAGS = $(CXXFLAGS) \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DMOZILLA_STRICT_API=1 \
+@@ -106,7 +106,7 @@ XPCOMINIT_OBJECTS = swt.o xpcominit.o xpcominit_structs.o xpcominit_stats.o
+ WEBKIT_OBJECTS = swt.o webkit.o webkit_structs.o webkit_stats.o
+ GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o
+
+-CFLAGS = -O -Wall \
++CFLAGS += \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DLINUX -DGTK \
+@@ -130,13 +130,13 @@ all: make_swt make_atk make_glx make_webkit
+ make_swt: $(SWT_LIB) $(SWTPI_LIB)
+
+ $(SWT_LIB): $(SWT_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
+
+ callback.o: callback.c callback.h
+ $(CC) $(CFLAGS) -DUSE_ASSEMBLER -c callback.c
+
+ $(SWTPI_LIB): $(SWTPI_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
+
+ swt.o: swt.c swt.h
+ $(CC) $(CFLAGS) -c swt.c
+@@ -155,7 +155,7 @@ os_stats.o: os_stats.c os_structs.h os.h os_stats.h swt.h
+ make_cairo: $(CAIRO_LIB)
+
+ $(CAIRO_LIB): $(CAIRO_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
+
+ cairo.o: cairo.c cairo.h swt.h
+ $(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo.c
+@@ -171,7 +171,7 @@ cairo_stats.o: cairo_stats.c cairo_structs.h cairo.h cairo_stats.h swt.h
+ make_cde: $(CDE_LIB)
+
+ $(CDE_LIB): $(CDE_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
+
+ #
+ # AWT lib
+@@ -179,7 +179,7 @@ $(CDE_LIB): $(CDE_OBJECTS)
+ make_awt:$(AWT_LIB)
+
+ $(AWT_LIB): $(AWT_OBJECTS)
+- $(CC) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
++ $(CC) $(LDFLAGS) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
+
+ #
+ # Atk lib
+@@ -187,7 +187,7 @@ $(AWT_LIB): $(AWT_OBJECTS)
+ make_atk: $(ATK_LIB)
+
+ $(ATK_LIB): $(ATK_OBJECTS)
+- $(CC) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
+
+ atk.o: atk.c atk.h
+ $(CC) $(CFLAGS) $(ATKCFLAGS) -c atk.c
+@@ -204,7 +204,7 @@ atk_stats.o: atk_stats.c atk_structs.h atk_stats.h atk.h
+ make_gnome: $(GNOME_LIB)
+
+ $(GNOME_LIB): $(GNOME_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
+
+ gnome.o: gnome.c
+ $(CC) $(CFLAGS) $(GNOMECFLAGS) -c gnome.c
+@@ -221,7 +221,7 @@ gnome_stats.o: gnome_stats.c gnome_stats.h
+ make_mozilla:$(MOZILLA_LIB)
+
+ $(MOZILLA_LIB): $(MOZILLA_OBJECTS)
+- $(CXX) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
++ $(CXX) $(LDFLAGS) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
+
+ xpcom.o: xpcom.cpp
+ $(CXX) $(MOZILLACFLAGS) $(MOZILLAEXCLUDES) ${MOZILLA_INCLUDES} -c xpcom.cpp
+@@ -242,7 +242,7 @@ make_xulrunner:$(XULRUNNER_LIB)
+
+ $(XULRUNNER_LIB): $(XULRUNNER_OBJECTS)
+ echo -e "#include<stdlib.h>\nsize_t je_malloc_usable_size_in_advance(size_t n) {\nreturn n;\n}" | gcc --shared -xc - -o libswt-xulrunner-fix.so
+- $(CXX) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcomxul.o: xpcom.cpp
+ $(CXX) -o xpcomxul.o $(MOZILLACFLAGS) $(XULRUNNEREXCLUDES) ${XULRUNNER_INCLUDES} -c xpcom.cpp
+@@ -262,7 +262,7 @@ xpcomxul_stats.o: xpcom_stats.cpp
+ make_xpcominit:$(XPCOMINIT_LIB)
+
+ $(XPCOMINIT_LIB): $(XPCOMINIT_OBJECTS)
+- $(CXX) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcominit.o: xpcominit.cpp
+ $(CXX) $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcominit.cpp
+@@ -279,7 +279,7 @@ xpcominit_stats.o: xpcominit_stats.cpp
+ make_webkit: $(WEBKIT_LIB)
+
+ $(WEBKIT_LIB): $(WEBKIT_OBJECTS)
+- $(CC) $(LFLAGS) -o $(WEBKIT_LIB) $(WEBKIT_OBJECTS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(WEBKIT_LIB) $(WEBKIT_OBJECTS)
+
+ webkit.o: webkitgtk.c
+ $(CC) $(CFLAGS) $(WEBKITCFLAGS) -c webkitgtk.c -o webkit.o
+@@ -296,7 +296,7 @@ webkit_stats.o: webkitgtk_stats.c webkitgtk_stats.h
+ make_glx: $(GLX_LIB)
+
+ $(GLX_LIB): $(GLX_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
+
+ glx.o: glx.c
+ $(CC) $(CFLAGS) $(GLXCFLAGS) -c glx.c
diff --git a/dev-java/swt/files/swt-3.8-manifest b/dev-java/swt/files/swt-3.8-manifest
new file mode 100644
index 000000000000..ee9e31c373d6
--- /dev/null
+++ b/dev-java/swt/files/swt-3.8-manifest
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Fragment-Host: org.eclipse.swt; bundle-version="[3.0.0,4.0.0)"
+Bundle-SymbolicName: org.eclipse.swt.gtk.linux.SWT_ARCH; singleton:=true
+Bundle-Version: 3.8
+Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=SWT_ARCH))
+Export-Package: org.eclipse.swt.internal.accessibility.gtk; x-internal:=true,
+ org.eclipse.swt.internal.cairo; x-internal:=true,
+ org.eclipse.swt.internal.cde; x-internal:=true,
+ org.eclipse.swt.internal.gnome; x-internal:=true,
+ org.eclipse.swt.internal.gtk; x-internal:=true,
+ org.eclipse.swt.internal.opengl.glx; x-internal:=true
+ org.eclipse.swt.internal.webkit; x-internal:=true
+
diff --git a/dev-java/swt/files/swt-3.8.2-gthread.patch b/dev-java/swt/files/swt-3.8.2-gthread.patch
new file mode 100644
index 000000000000..6f99a59382ba
--- /dev/null
+++ b/dev-java/swt/files/swt-3.8.2-gthread.patch
@@ -0,0 +1,44 @@
+From c973b9b9be568ebbce618985bc5ee440babf8ab1 Mon Sep 17 00:00:00 2001
+From: Jakub Adam <jakub.adam@ktknet.cz>
+Date: Thu, 27 Jun 2013 10:16:49 +0200
+Subject: [PATCH 1/2] fix-glib-2.35-compatibility
+
+g_thread_init() and g_thread_supported() are deprecated and don't
+have to be used anymore.
+
+---
+ os.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- a/os.c
++++ b/os.c
+@@ -4444,9 +4444,9 @@ fail:
+ JNIEXPORT void JNICALL OS_NATIVE(_1g_1thread_1init)
+ (JNIEnv *env, jclass that, jintLong arg0)
+ {
+- OS_NATIVE_ENTER(env, that, _1g_1thread_1init_FUNC);
++ /*OS_NATIVE_ENTER(env, that, _1g_1thread_1init_FUNC);
+ g_thread_init((GThreadFunctions *)arg0);
+- OS_NATIVE_EXIT(env, that, _1g_1thread_1init_FUNC);
++ OS_NATIVE_EXIT(env, that, _1g_1thread_1init_FUNC);*/
+ }
+ #endif
+
+@@ -4454,11 +4454,12 @@ JNIEXPORT void JNICALL OS_NATIVE(_1g_1thread_1init)
+ JNIEXPORT jboolean JNICALL OS_NATIVE(_1g_1thread_1supported)
+ (JNIEnv *env, jclass that)
+ {
+- jboolean rc = 0;
++ /*jboolean rc = 0;
+ OS_NATIVE_ENTER(env, that, _1g_1thread_1supported_FUNC);
+ rc = (jboolean)g_thread_supported();
+ OS_NATIVE_EXIT(env, that, _1g_1thread_1supported_FUNC);
+- return rc;
++ return rc;*/
++ return 1;
+ }
+ #endif
+
+--
+1.7.10.4
+
diff --git a/dev-java/swt/files/swt-4.2-as-needed-and-flag-fixes.patch b/dev-java/swt/files/swt-4.2-as-needed-and-flag-fixes.patch
new file mode 100644
index 000000000000..98773c155697
--- /dev/null
+++ b/dev-java/swt/files/swt-4.2-as-needed-and-flag-fixes.patch
@@ -0,0 +1,243 @@
+--- make_linux.mak- 2012-07-02 00:49:48.729100052 +0000
++++ make_linux.mak 2012-07-02 00:53:16.753499389 +0000
+@@ -66,7 +66,7 @@
+ # Uncomment for Native Stats tool
+ #NATIVE_STATS = -DNATIVE_STATS
+
+-MOZILLACFLAGS = -O \
++MOZILLACFLAGS = $(CXXFLAGS) \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DMOZILLA_STRICT_API=1 \
+@@ -106,7 +106,7 @@
+ WEBKIT_OBJECTS = swt.o webkit.o webkit_structs.o webkit_stats.o
+ GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o
+
+-CFLAGS = -O -Wall \
++CFLAGS += \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DLINUX -DGTK \
+@@ -130,13 +130,13 @@
+ make_swt: $(SWT_LIB) $(SWTPI_LIB)
+
+ $(SWT_LIB): $(SWT_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
+
+ callback.o: callback.c callback.h
+ $(CC) $(CFLAGS) -DUSE_ASSEMBLER -c callback.c
+
+ $(SWTPI_LIB): $(SWTPI_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
+
+ swt.o: swt.c swt.h
+ $(CC) $(CFLAGS) -c swt.c
+@@ -155,7 +155,7 @@
+ make_cairo: $(CAIRO_LIB)
+
+ $(CAIRO_LIB): $(CAIRO_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
+
+ cairo.o: cairo.c cairo.h swt.h
+ $(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo.c
+@@ -171,7 +171,7 @@
+ make_cde: $(CDE_LIB)
+
+ $(CDE_LIB): $(CDE_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
+
+ #
+ # AWT lib
+@@ -179,7 +179,7 @@
+ make_awt:$(AWT_LIB)
+
+ $(AWT_LIB): $(AWT_OBJECTS)
+- $(CC) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
++ $(CC) $(LDFLAGS) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
+
+ #
+ # Atk lib
+@@ -187,7 +187,7 @@
+ make_atk: $(ATK_LIB)
+
+ $(ATK_LIB): $(ATK_OBJECTS)
+- $(CC) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
+
+ atk.o: atk.c atk.h
+ $(CC) $(CFLAGS) $(ATKCFLAGS) -c atk.c
+@@ -204,7 +204,7 @@
+ make_gnome: $(GNOME_LIB)
+
+ $(GNOME_LIB): $(GNOME_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
+
+ gnome.o: gnome.c
+ $(CC) $(CFLAGS) $(GNOMECFLAGS) -c gnome.c
+@@ -221,7 +221,7 @@
+ make_mozilla:$(MOZILLA_LIB)
+
+ $(MOZILLA_LIB): $(MOZILLA_OBJECTS)
+- $(CXX) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
++ $(CXX) $(LDFLAGS) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
+
+ xpcom.o: xpcom.cpp
+ $(CXX) $(MOZILLACFLAGS) $(MOZILLAEXCLUDES) ${MOZILLA_INCLUDES} -c xpcom.cpp
+@@ -242,7 +242,7 @@
+
+ $(XULRUNNER_LIB): $(XULRUNNER_OBJECTS)
+ echo -e "#include<stdlib.h>\nsize_t je_malloc_usable_size_in_advance(size_t n) {\nreturn n;\n}" | gcc --shared -xc - -o libswt-xulrunner-fix.so
+- $(CXX) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcomxul.o: xpcom.cpp
+ $(CXX) -o xpcomxul.o $(MOZILLACFLAGS) $(XULRUNNEREXCLUDES) ${XULRUNNER_INCLUDES} -c xpcom.cpp
+@@ -262,7 +262,7 @@
+ make_xpcominit:$(XPCOMINIT_LIB)
+
+ $(XPCOMINIT_LIB): $(XPCOMINIT_OBJECTS)
+- $(CXX) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcominit.o: xpcominit.cpp
+ $(CXX) $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcominit.cpp
+@@ -279,7 +279,7 @@
+ make_webkit: $(WEBKIT_LIB)
+
+ $(WEBKIT_LIB): $(WEBKIT_OBJECTS)
+- $(CC) $(LFLAGS) -o $(WEBKIT_LIB) $(WEBKIT_OBJECTS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(WEBKIT_LIB) $(WEBKIT_OBJECTS)
+
+ webkit.o: webkitgtk.c
+ $(CC) $(CFLAGS) $(WEBKITCFLAGS) -c webkitgtk.c -o webkit.o
+@@ -296,7 +296,7 @@
+ make_glx: $(GLX_LIB)
+
+ $(GLX_LIB): $(GLX_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
+
+ glx.o: glx.c
+ $(CC) $(CFLAGS) $(GLXCFLAGS) -c glx.c
+--- make_freebsd.mak- 2012-07-02 00:53:28.553351871 +0000
++++ make_freebsd.mak 2012-07-02 00:55:37.369741444 +0000
+@@ -64,7 +64,7 @@
+ # Uncomment for Native Stats tool
+ #NATIVE_STATS = -DNATIVE_STATS
+
+-MOZILLACFLAGS = -O \
++MOZILLACFLAGS += \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DMOZILLA_STRICT_API=1 \
+@@ -91,7 +91,7 @@
+ XPCOMINIT_OBJECTS = swt.o xpcominit.o xpcominit_structs.o xpcominit_stats.o
+ GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o
+
+-CFLAGS = -O -Wall \
++CFLAGS += \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -DFREEBSD -DGTK \
+@@ -115,13 +115,13 @@
+ make_swt: $(SWT_LIB) $(SWTPI_LIB)
+
+ $(SWT_LIB): $(SWT_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWT_LIB) $(SWT_OBJECTS)
+
+ callback.o: callback.c callback.h
+ $(CC) $(CFLAGS) -DUSE_ASSEMBLER -c callback.c
+
+ $(SWTPI_LIB): $(SWTPI_OBJECTS)
+- $(CC) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(SWTPI_LIB) $(SWTPI_OBJECTS) $(GTKLIBS)
+
+ swt.o: swt.c swt.h
+ $(CC) $(CFLAGS) -c swt.c
+@@ -140,7 +140,7 @@
+ make_cairo: $(CAIRO_LIB)
+
+ $(CAIRO_LIB): $(CAIRO_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CAIRO_LIB) $(CAIRO_OBJECTS) $(CAIROLIBS)
+
+ cairo.o: cairo.c cairo.h swt.h
+ $(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo.c
+@@ -156,7 +156,7 @@
+ make_cde: $(CDE_LIB)
+
+ $(CDE_LIB): $(CDE_OBJECTS)
+- $(CC) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(CDE_LIB) $(CDE_OBJECTS) $(CDE_LIBS)
+
+ #
+ # AWT lib
+@@ -164,7 +164,7 @@
+ make_awt:$(AWT_LIB)
+
+ $(AWT_LIB): $(AWT_OBJECTS)
+- $(CC) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
++ $(CC) $(LDFLAGS) $(AWT_LFLAGS) -o $(AWT_LIB) $(AWT_OBJECTS) $(AWT_LIBS)
+
+ #
+ # Atk lib
+@@ -172,7 +172,7 @@
+ make_atk: $(ATK_LIB)
+
+ $(ATK_LIB): $(ATK_OBJECTS)
+- $(CC) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(ATK_LIB) $(ATK_OBJECTS) $(ATKLIBS)
+
+ atk.o: atk.c atk.h
+ $(CC) $(CFLAGS) $(ATKCFLAGS) -c atk.c
+@@ -189,7 +189,7 @@
+ make_gnome: $(GNOME_LIB)
+
+ $(GNOME_LIB): $(GNOME_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GNOME_LIB) $(GNOME_OBJECTS) $(GNOMELIBS)
+
+ gnome.o: gnome.c
+ $(CC) $(CFLAGS) $(GNOMECFLAGS) -c gnome.c
+@@ -206,7 +206,7 @@
+ make_mozilla:$(MOZILLA_LIB)
+
+ $(MOZILLA_LIB): $(MOZILLA_OBJECTS)
+- $(CXX) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
++ $(CXX) $(LDFLAGS) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS}
+
+ xpcom.o: xpcom.cpp
+ $(CXX) $(MOZILLACFLAGS) ${MOZILLA_INCLUDES} -c xpcom.cpp
+@@ -226,7 +226,7 @@
+ make_xulrunner:$(XULRUNNER_LIB)
+
+ $(XULRUNNER_LIB): $(XULRUNNER_OBJECTS)
+- $(CXX) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcomxul.o: xpcom.cpp
+ $(CXX) -o xpcomxul.o $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcom.cpp
+@@ -252,7 +252,7 @@
+ make_xpcominit:$(XPCOMINIT_LIB)
+
+ $(XPCOMINIT_LIB): $(XPCOMINIT_OBJECTS)
+- $(CXX) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
++ $(CXX) $(LDFLAGS) -o $(XPCOMINIT_LIB) $(XPCOMINIT_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS}
+
+ xpcominit.o: xpcominit.cpp
+ $(CXX) $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcominit.cpp
+@@ -269,7 +269,7 @@
+ make_glx: $(GLX_LIB)
+
+ $(GLX_LIB): $(GLX_OBJECTS)
+- $(CC) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(GLX_LIB) $(GLX_OBJECTS) $(GLXLIBS)
+
+ glx.o: glx.c
+ $(CC) $(CFLAGS) $(GLXCFLAGS) -c glx.c
diff --git a/dev-java/swt/files/swt-4.2-manifest b/dev-java/swt/files/swt-4.2-manifest
new file mode 100644
index 000000000000..36736a0db72d
--- /dev/null
+++ b/dev-java/swt/files/swt-4.2-manifest
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Fragment-Host: org.eclipse.swt; bundle-version=4.2.0
+Bundle-SymbolicName: org.eclipse.swt.gtk.linux.SWT_ARCH; singleton:=true
+Bundle-Version: 4.2
+Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=SWT_ARCH))
+Export-Package: org.eclipse.swt.internal.accessibility.gtk; x-internal:=true,
+ org.eclipse.swt.internal.cairo; x-internal:=true,
+ org.eclipse.swt.internal.cde; x-internal:=true,
+ org.eclipse.swt.internal.gnome; x-internal:=true,
+ org.eclipse.swt.internal.gtk; x-internal:=true,
+ org.eclipse.swt.internal.opengl.glx; x-internal:=true
+ org.eclipse.swt.internal.webkit; x-internal:=true
diff --git a/dev-java/swt/metadata.xml b/dev-java/swt/metadata.xml
new file mode 100644
index 000000000000..40abe82a75f0
--- /dev/null
+++ b/dev-java/swt/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ <name>Java</name>
+ </maintainer>
+ <longdescription>
+ SWT is the software component that delivers native widget functionality for the
+ Eclipse platform in an operating system independent manner. It is analogous to
+ AWT/Swing in Java with a difference - SWT uses a rich set of native widgets.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-java/swt/swt-3.7.2-r2.ebuild b/dev-java/swt/swt-3.7.2-r2.ebuild
new file mode 100644
index 000000000000..aa38b1de0654
--- /dev/null
+++ b/dev-java/swt/swt-3.7.2-r2.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit eutils java-pkg-2 java-ant-2 toolchain-funcs java-osgi
+
+MY_PV="${PV/_rc/RC}"
+MY_DMF="http://archive.eclipse.org/eclipse/downloads/drops/R-${MY_PV}-201202080800"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="GTK based SWT Library"
+HOMEPAGE="http://www.eclipse.org/"
+SRC_URI="
+ amd64? ( ${MY_DMF}/${MY_P}-gtk-linux-x86_64.zip )
+ ppc? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip )
+ ppc64? ( ${MY_DMF}/${MY_P}-gtk-linux-ppc64.zip )
+ x86? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip )
+ x86-fbsd? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip )"
+
+SLOT="3.7"
+LICENSE="CPL-1.0 LGPL-2.1 MPL-1.1"
+KEYWORDS="amd64 ppc64 x86"
+
+IUSE="cairo gnome opengl"
+COMMON=">=dev-libs/glib-2.6
+ >=x11-libs/gtk+-2.6.8:2
+ >=dev-libs/atk-1.10.2
+ cairo? ( >=x11-libs/cairo-1.4.14 )
+ gnome? (
+ =gnome-base/libgnome-2*
+ =gnome-base/gnome-vfs-2*
+ =gnome-base/libgnomeui-2*
+ )
+ opengl? (
+ virtual/opengl
+ virtual/glu
+ )
+ x11-libs/libXtst"
+
+DEPEND=">=virtual/jdk-1.4
+ app-arch/unzip
+ x11-base/xorg-proto
+ x11-libs/libX11
+ x11-libs/libXrender
+ x11-libs/libXt
+ >=x11-libs/libXtst-1.1.0
+ virtual/pkgconfig
+ ${COMMON}"
+
+RDEPEND=">=virtual/jre-1.4
+ ${COMMON}"
+
+S="${WORKDIR}"
+
+# JNI libraries don't need SONAME, bug #253756
+QA_SONAME="usr/$(get_libdir)/libswt-.*.so"
+
+src_unpack() {
+ local DISTFILE=${A}
+ unzip -jq "${DISTDIR}"/${DISTFILE} "*src.zip" || die "Unable to extract distfile"
+ unpack "./src.zip"
+
+ # Cleanup the redirtied directory structure
+ rm -rf about_files/ || die
+}
+
+java_prepare() {
+ # Replace the build.xml to allow compilation without Eclipse tasks
+ cp "${FILESDIR}/build.xml" "${S}/build.xml" || die "Unable to update build.xml"
+ mkdir "${S}/src" && mv "${S}/org" "${S}/src" || die "Unable to restructure SWT sources"
+
+ # Fix Makefiles to respect flags and work with --as-needed
+ epatch "${FILESDIR}"/as-needed-and-flag-fixes-3.6.patch
+
+ case ${ARCH} in
+ ppc|x86) epatch "${FILESDIR}"/${P}-gio_launch-URI-x86.patch ;;
+ *) epatch "${FILESDIR}"/${P}-gio_launch-URI.patch ;;
+ esac
+}
+
+src_compile() {
+ # Drop jikes support as it seems to be unfriendly with SWT
+ java-pkg_filter-compiler jikes
+
+ local AWT_ARCH
+ local JAWTSO="libjawt.so"
+ if [[ $(tc-arch) == 'x86' ]] ; then
+ AWT_ARCH="i386"
+ elif [[ $(tc-arch) == 'ppc' ]] ; then
+ AWT_ARCH="ppc"
+ elif [[ $(tc-arch) == 'ppc64' ]] ; then
+ AWT_ARCH="ppc64"
+ else
+ AWT_ARCH="amd64"
+ fi
+ if [[ -f "${JAVA_HOME}/jre/lib/${AWT_ARCH}/${JAWTSO}" ]]; then
+ export AWT_LIB_PATH="${JAVA_HOME}/jre/lib/${AWT_ARCH}"
+ elif [[ -f "${JAVA_HOME}/jre/bin/${JAWTSO}" ]]; then
+ export AWT_LIB_PATH="${JAVA_HOME}/jre/bin"
+ elif [[ -f "${JAVA_HOME}/$(get_libdir)/${JAWTSO}" ]] ; then
+ export AWT_LIB_PATH="${JAVA_HOME}/$(get_libdir)"
+ else
+ eerror "${JAWTSO} not found in the JDK being used for compilation!"
+ die "cannot build AWT library"
+ fi
+
+ # Fix the pointer size for AMD64
+ [[ ${ARCH} == "amd64" || ${ARCH} == "ppc64" ]] && export SWT_PTR_CFLAGS=-DJNI64
+
+ local platform="linux"
+
+ use elibc_FreeBSD && platform="freebsd"
+
+ local make="emake -f make_${platform}.mak NO_STRIP=y CC=$(tc-getCC) CXX=$(tc-getCXX)"
+
+ einfo "Building AWT library"
+ ${make} make_awt
+
+ einfo "Building SWT library"
+ ${make} make_swt
+
+ einfo "Building JAVA-AT-SPI bridge"
+ ${make} make_atk
+
+ if use gnome ; then
+ einfo "Building GNOME VFS support"
+ ${make} make_gnome
+ fi
+
+ if use cairo ; then
+ einfo "Building CAIRO support"
+ ${make} make_cairo
+ fi
+
+ if use opengl ; then
+ einfo "Building OpenGL component"
+ ${make} make_glx
+ fi
+
+ einfo "Building JNI libraries"
+ eant compile
+
+ einfo "Copying missing files"
+ cp -i "${S}/version.txt" "${S}/build/version.txt"
+ cp -i "${S}/src/org/eclipse/swt/internal/SWTMessages.properties" \
+ "${S}/build/org/eclipse/swt/internal/" || die
+
+ einfo "Packing JNI libraries"
+ eant jar
+}
+
+src_install() {
+ swtArch=${ARCH}
+ use amd64 && swtArch=x86_64
+ use x86-fbsd && swtArch=x86
+
+ sed "s/SWT_ARCH/${swtArch}/" "${FILESDIR}/${PN}-${SLOT}-manifest" > "MANIFEST_TMP.MF" || die
+ use cairo || sed -i -e "/ org.eclipse.swt.internal.cairo; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ use gnome || sed -i -e "/ org.eclipse.swt.internal.gnome; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ use opengl || sed -i -e "/ org.eclipse.swt.internal.opengl.glx; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ sed -i -e "/ org.eclipse.swt.internal.webkit; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ java-osgi_newjar-fromfile "swt.jar" "MANIFEST_TMP.MF" "Standard Widget Toolkit for GTK 2.0"
+
+ java-pkg_sointo /usr/$(get_libdir)
+ java-pkg_doso *.so
+
+ dohtml about.html || die
+}
diff --git a/dev-java/swt/swt-3.8.2-r2.ebuild b/dev-java/swt/swt-3.8.2-r2.ebuild
new file mode 100644
index 000000000000..64b28cc018f3
--- /dev/null
+++ b/dev-java/swt/swt-3.8.2-r2.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils java-pkg-2 java-ant-2 toolchain-funcs java-osgi
+
+MY_PV="${PV/_rc/RC}"
+MY_DMF="http://archive.eclipse.org/eclipse/downloads/drops/R-${MY_PV}-201301310800"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="GTK based SWT Library"
+HOMEPAGE="http://www.eclipse.org/"
+SRC_URI="
+ amd64? ( ${MY_DMF}/${MY_P}-gtk-linux-x86_64.zip )
+ ppc? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip )
+ ppc64? ( ${MY_DMF}/${MY_P}-gtk-linux-ppc64.zip )
+ x86? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip )
+ x86-fbsd? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip )"
+
+SLOT="3.8"
+LICENSE="CPL-1.0 LGPL-2.1 MPL-1.1"
+KEYWORDS="amd64 ppc64 x86"
+
+IUSE="cairo gnome opengl"
+COMMON=">=dev-libs/glib-2.6
+ >=x11-libs/gtk+-2.6.8:2
+ >=dev-libs/atk-1.10.2
+ cairo? ( >=x11-libs/cairo-1.4.14 )
+ gnome? (
+ gnome-base/gnome-vfs:2
+ gnome-base/libgnome
+ gnome-base/libgnomeui
+ )
+ opengl? (
+ virtual/opengl
+ virtual/glu
+ )
+ x11-libs/libXtst"
+
+DEPEND=">=virtual/jdk-1.4
+ app-arch/unzip
+ x11-base/xorg-proto
+ x11-libs/libX11
+ x11-libs/libXrender
+ x11-libs/libXt
+ >=x11-libs/libXtst-1.1.0
+ virtual/pkgconfig
+ ${COMMON}"
+
+RDEPEND=">=virtual/jre-1.4
+ ${COMMON}"
+
+S="${WORKDIR}"
+
+# JNI libraries don't need SONAME, bug #253756
+QA_SONAME="usr/$(get_libdir)/libswt-.*.so"
+
+src_unpack() {
+ local DISTFILE=${A}
+ unzip -jq "${DISTDIR}"/${DISTFILE} "*src.zip" || die "Unable to extract distfile"
+ unpack "./src.zip"
+
+ # Cleanup the redirtied directory structure
+ rm -rf about_files/ || die
+}
+
+java_prepare() {
+ # Replace the build.xml to allow compilation without Eclipse tasks
+ cp "${FILESDIR}/build.xml" "${S}/build.xml" || die "Unable to update build.xml"
+
+ mkdir -p "${S}/src"
+ mv "${S}/org" "${S}/src" || die "Unable to restructure SWT sources"
+
+ epatch "${FILESDIR}"/${PN}-3.8-as-needed-and-flag-fixes.patch
+ epatch "${FILESDIR}"/${P}-gthread.patch
+}
+
+src_compile() {
+ # Drop jikes support as it seems to be unfriendly with SWT
+ java-pkg_filter-compiler jikes
+
+ local AWT_ARCH
+ local JAWTSO="libjawt.so"
+ if [[ $(tc-arch) == 'x86' ]] ; then
+ AWT_ARCH="i386"
+ elif [[ $(tc-arch) == 'ppc' ]] ; then
+ AWT_ARCH="ppc"
+ elif [[ $(tc-arch) == 'ppc64' ]] ; then
+ AWT_ARCH="ppc64"
+ else
+ AWT_ARCH="amd64"
+ fi
+ if [[ -f "${JAVA_HOME}/jre/lib/${AWT_ARCH}/${JAWTSO}" ]]; then
+ export AWT_LIB_PATH="${JAVA_HOME}/jre/lib/${AWT_ARCH}"
+ elif [[ -f "${JAVA_HOME}/jre/bin/${JAWTSO}" ]]; then
+ export AWT_LIB_PATH="${JAVA_HOME}/jre/bin"
+ elif [[ -f "${JAVA_HOME}/$(get_libdir)/${JAWTSO}" ]] ; then
+ export AWT_LIB_PATH="${JAVA_HOME}/$(get_libdir)"
+ else
+ eerror "${JAWTSO} not found in the JDK being used for compilation!"
+ die "cannot build AWT library"
+ fi
+
+ # Fix the pointer size for AMD64
+ [[ ${ARCH} == "amd64" || ${ARCH} == "ppc64" ]] && export SWT_PTR_CFLAGS=-DJNI64
+
+ local platform="linux"
+
+ use elibc_FreeBSD && platform="freebsd"
+
+ local make="emake -f make_${platform}.mak NO_STRIP=y CC=$(tc-getCC) CXX=$(tc-getCXX)"
+
+ einfo "Building AWT library"
+ ${make} make_awt
+
+ einfo "Building SWT library"
+ ${make} make_swt
+
+ einfo "Building JAVA-AT-SPI bridge"
+ ${make} make_atk
+
+ if use gnome ; then
+ einfo "Building GNOME VFS support"
+ ${make} make_gnome
+ fi
+
+ if use cairo ; then
+ einfo "Building CAIRO support"
+ ${make} make_cairo
+ fi
+
+ if use opengl ; then
+ einfo "Building OpenGL component"
+ ${make} make_glx
+ fi
+
+ einfo "Building JNI libraries"
+ eant compile
+
+ einfo "Copying missing files"
+ cp -i "${S}/version.txt" "${S}/build/version.txt" || die
+ cp -i "${S}/src/org/eclipse/swt/internal/SWTMessages.properties" \
+ "${S}/build/org/eclipse/swt/internal/" || die
+
+ einfo "Packing JNI libraries"
+ eant jar
+}
+
+src_install() {
+ swtArch=${ARCH}
+ use amd64 && swtArch=x86_64
+ use x86-fbsd && swtArch=x86
+
+ sed "s/SWT_ARCH/${swtArch}/" "${FILESDIR}/${PN}-${SLOT}-manifest" > "MANIFEST_TMP.MF" || die
+ use cairo || sed -i -e "/ org.eclipse.swt.internal.cairo; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ use gnome || sed -i -e "/ org.eclipse.swt.internal.gnome; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ use opengl || sed -i -e "/ org.eclipse.swt.internal.opengl.glx; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ sed -i -e "/ org.eclipse.swt.internal.webkit; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ java-osgi_newjar-fromfile "swt.jar" "MANIFEST_TMP.MF" "Standard Widget Toolkit for GTK 2.0"
+
+ java-pkg_sointo /usr/$(get_libdir)
+ java-pkg_doso *.so
+
+ dohtml about.html
+}
diff --git a/dev-java/swt/swt-4.2-r3.ebuild b/dev-java/swt/swt-4.2-r3.ebuild
new file mode 100644
index 000000000000..fdfce91451a6
--- /dev/null
+++ b/dev-java/swt/swt-4.2-r3.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils flag-o-matic java-pkg-2 java-ant-2 toolchain-funcs java-osgi
+
+MY_PV="${PV/_rc/RC}"
+MY_DMF="http://archive.eclipse.org/eclipse/downloads/drops4/R-${MY_PV}-201206081400"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="GTK based SWT Library"
+HOMEPAGE="http://www.eclipse.org/"
+SRC_URI="
+ amd64? ( ${MY_DMF}/${MY_P}-gtk-linux-x86_64.zip )
+ ppc? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip )
+ ppc64? ( ${MY_DMF}/${MY_P}-gtk-linux-ppc64.zip )
+ x86? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip )
+ x86-fbsd? ( ${MY_DMF}/${MY_P}-gtk-linux-x86.zip )"
+
+LICENSE="CPL-1.0 LGPL-2.1 MPL-1.1"
+SLOT="4.2"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE="cairo gnome opengl"
+
+COMMON_DEP="
+ >=dev-libs/atk-1.10.2
+ >=dev-libs/glib-2.32
+ >=x11-libs/gtk+-2.6.8:2
+ x11-libs/libXtst
+ cairo? ( >=x11-libs/cairo-1.4.14 )
+ gnome? (
+ =gnome-base/gnome-vfs-2*
+ =gnome-base/libgnome-2*
+ =gnome-base/libgnomeui-2*
+ )
+ opengl? (
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${COMMON_DEP}
+ >=virtual/jdk-1.4
+ app-arch/unzip
+ virtual/pkgconfig
+ x11-base/xorg-proto
+ x11-libs/libX11
+ x11-libs/libXrender
+ x11-libs/libXt
+ >=x11-libs/libXtst-1.1.0"
+RDEPEND="${COMMON_DEP}
+ >=virtual/jre-1.4"
+
+S="${WORKDIR}"
+
+# JNI libraries don't need SONAME, bug #253756
+QA_SONAME="usr/$(get_libdir)/libswt-.*.so"
+
+src_unpack() {
+ local DISTFILE=${A}
+ unzip -jq "${DISTDIR}"/${DISTFILE} "*src.zip" || die "Unable to extract distfile"
+ unpack "./src.zip"
+
+ # Cleanup the redirtied directory structure
+ rm -rf about_files/ || die
+}
+
+java_prepare() {
+ # Replace the build.xml to allow compilation without Eclipse tasks
+ cp "${FILESDIR}/build.xml" "${S}/build.xml" || die "Unable to update build.xml"
+ mkdir "${S}/src" && mv "${S}/org" "${S}/src" || die "Unable to restructure SWT sources"
+
+ # Fix Makefiles to respect flags and work with --as-needed
+ epatch "${FILESDIR}"/${P}-as-needed-and-flag-fixes.patch
+
+ # Define missing g_thread_supported() to be 0.
+ sed -i '1s/^/#define g_thread_supported() 0\n\n/' "${S}"/os_custom.h || die
+}
+
+src_compile() {
+ # Drop jikes support as it seems to be unfriendly with SWT
+ java-pkg_filter-compiler jikes
+
+ local AWT_ARCH
+ local JAWTSO="libjawt.so"
+ if [[ $(tc-arch) == 'x86' ]] ; then
+ AWT_ARCH="i386"
+ elif [[ $(tc-arch) == 'ppc' ]] ; then
+ AWT_ARCH="ppc"
+ elif [[ $(tc-arch) == 'ppc64' ]] ; then
+ AWT_ARCH="ppc64"
+ else
+ AWT_ARCH="amd64"
+ fi
+ if [[ -f "${JAVA_HOME}/jre/lib/${AWT_ARCH}/${JAWTSO}" ]]; then
+ export AWT_LIB_PATH="${JAVA_HOME}/jre/lib/${AWT_ARCH}"
+ elif [[ -f "${JAVA_HOME}/jre/bin/${JAWTSO}" ]]; then
+ export AWT_LIB_PATH="${JAVA_HOME}/jre/bin"
+ elif [[ -f "${JAVA_HOME}/$(get_libdir)/${JAWTSO}" ]] ; then
+ export AWT_LIB_PATH="${JAVA_HOME}/$(get_libdir)"
+ else
+ eerror "${JAWTSO} not found in the JDK being used for compilation!"
+ die "cannot build AWT library"
+ fi
+
+ # Fix the pointer size for AMD64
+ [[ ${ARCH} == "amd64" || ${ARCH} == "ppc64" ]] && export SWT_PTR_CFLAGS=-DJNI64
+
+ local platform="linux"
+
+ use elibc_FreeBSD && platform="freebsd"
+
+ # Bug #461784, g_thread_init is deprecated since glib-2.32.
+ append-cflags -DNO__1g_1thread_1init
+
+ local make="emake -f make_${platform}.mak NO_STRIP=y CC=$(tc-getCC) CXX=$(tc-getCXX)"
+
+ einfo "Building AWT library"
+ ${make} make_awt
+
+ einfo "Building SWT library"
+ ${make} make_swt
+
+ einfo "Building JAVA-AT-SPI bridge"
+ ${make} make_atk
+
+ if use gnome ; then
+ einfo "Building GNOME VFS support"
+ ${make} make_gnome
+ fi
+
+ if use cairo ; then
+ einfo "Building CAIRO support"
+ ${make} make_cairo
+ fi
+
+ if use opengl ; then
+ einfo "Building OpenGL component"
+ ${make} make_glx
+ fi
+
+ einfo "Building JNI libraries"
+ eant compile
+
+ einfo "Copying missing files"
+ cp -i "${S}/version.txt" "${S}/build/version.txt"
+ cp -i "${S}/src/org/eclipse/swt/internal/SWTMessages.properties" \
+ "${S}/build/org/eclipse/swt/internal/" || die
+
+ einfo "Packing JNI libraries"
+ eant jar
+}
+
+src_install() {
+ swtArch=${ARCH}
+ use amd64 && swtArch=x86_64
+ use x86-fbsd && swtArch=x86
+
+ sed "s/SWT_ARCH/${swtArch}/" "${FILESDIR}/${PN}-${SLOT}-manifest" > "MANIFEST_TMP.MF" || die
+ use cairo || sed -i -e "/ org.eclipse.swt.internal.cairo; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ use gnome || sed -i -e "/ org.eclipse.swt.internal.gnome; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ use opengl || sed -i -e "/ org.eclipse.swt.internal.opengl.glx; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ sed -i -e "/ org.eclipse.swt.internal.webkit; x-internal:=true,/d" "MANIFEST_TMP.MF"
+ java-osgi_newjar-fromfile "swt.jar" "MANIFEST_TMP.MF" "Standard Widget Toolkit for GTK 2.0"
+
+ java-pkg_sointo /usr/$(get_libdir)
+ java-pkg_doso *.so
+
+ dohtml about.html
+}