#969 Split applications off from platform

Closed
opened 1 year ago by wolfbeast · 19 comments
wolfbeast commented 1 year ago (Migrated from github.com)

For organizational reasons and to make it easier for other developers to build UXP applications, we need to split our applications out into separate repositories and set the build system up to do a comm-like build where application code is application code, and the platform is pulled in as a submodule.

Advantages:

  • Clear separation of applications (releases/etc.)
  • Independent development possible on arbitrary back-end commits
  • Clarity about the platform/application structure for the platform
  • Separation of application-specific issues that aren’t necessarily relevant for the platform, and v.v.
  • Uniform build procedure for all UXP applications

Disadvantages:

  • Some issues that impact both FE and BE will have to be split, with FE patches including a branch pointer shift.

This should be tackled later in 2019, probably Q4.

For organizational reasons and to make it easier for other developers to build UXP applications, we need to split our applications out into separate repositories and set the build system up to do a comm-like build where application code is application code, and the platform is pulled in as a submodule. Advantages: - Clear separation of applications (releases/etc.) - Independent development possible on arbitrary back-end commits - Clarity about the platform/application structure for the platform - Separation of application-specific issues that aren't necessarily relevant for the platform, and v.v. - Uniform build procedure for all UXP applications Disadvantages: - Some issues that impact both FE and BE will have to be split, with FE patches including a branch pointer shift. This should be tackled later in 2019, probably Q4.
mattatobin commented 1 year ago (Migrated from github.com)
Owner

As per IM discussion that took place but wasn’t documented: post commization of the MCP Phoenix-class browsers will result in an official stable release branch being established for Pale Moon.

This will allow for Pale Moon and those other applications that match platform states with Pale Moon to easily target a consistant release state for comparative and debug reasons. BinOC projects will also follow this branch for release.

Basilisk being rolling will likely use trunk at arbitrary stable luls between major development cycles.

Individual projects will decide their own commit points of the platform. The current hacks that allow the application subdirectory to work will be kept for those that already use it.

The tl;dr of this decision should help estabilish UXP’s independence as a cross-project/cross-organization/cross-community software platform in and of its self without being encumbered by any one specific project.

As per IM discussion that took place but wasn't documented: post commization of the MCP Phoenix-class browsers will result in an official stable release branch being established for Pale Moon. This will allow for Pale Moon and those other applications that match platform states with Pale Moon to easily target a consistant release state for comparative and debug reasons. BinOC projects will also follow this branch for release. Basilisk being rolling will likely use trunk at arbitrary stable luls between major development cycles. Individual projects will decide their own commit points of the platform. The current hacks that allow the application subdirectory to work will be kept for those that already use it. The tl;dr of this decision should help estabilish UXP's independence as a cross-project/cross-organization/cross-community software platform in and of its self without being encumbered by any one specific project.
mattatobin commented 1 year ago (Migrated from github.com)
Owner

Pale Moon has been returned back to its original repository.

Pale Moon has been returned back to its original repository.
mattatobin commented 1 year ago (Migrated from github.com)
Owner
Depends on https://github.com/MoonchildProductions/Pale-Moon/issues/1697
JustOff commented 1 year ago (Migrated from github.com)
Owner

I have a problem building on win32:

 0:48.11 Unified_cpp_editor_libeditor0.cpp
 0:48.12 d:\UXP-build-palemoon\dist\include\mozilla/css/Declaration.h(24): fatal error C1083: Cannot open include file:
'nsCSSDataBlock.h': No such file or directory
 0:48.14
 0:48.19 In the directory  /d/UXP-build-palemoon/editor/libeditor
 0:48.20 The following command failed to execute properly:
 0:48.21 d:/UXP-build-palemoon/_virtualenv/Scripts/python.exe -m mozbuild.action.cl cl.EXE -FoUnified_cpp_editor_libedit
or0.obj -c -Id:/UXP-build-palemoon/dist/stl_wrappers -DNDEBUG=1 -DTRIMMED=1 -DWIN32_LEAN_AND_MEAN -D_WIN32 -DWIN32 -D_CR
T_RAND_S -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DOS_WIN=1 -D_UNICODE -DCHROMIUM_BUILD -DU_STATIC_IMPLEMENTATION -DUNICODE -
D_WINDOWS -D_SECURE_ATL -DCOMPILER_MSVC -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXU
L -Id:/Pale-Moon/platform/editor/libeditor -Id:/UXP-build-palemoon/editor/libeditor -Id:/Pale-Moon/platform/dom/base -Id
:/Pale-Moon/platform/editor/txmgr -Id:/Pale-Moon/platform/extensions/spellcheck/src -Id:/Pale-Moon/platform/layout/gener
ic -Id:/Pale-Moon/layout/style -Id:/Pale-Moon/platform/layout/tables -Id:/Pale-Moon/platform/layout/xul -Id:/UXP-build-p
alemoon/ipc/ipdl/_ipdlheaders -Id:/Pale-Moon/platform/ipc/chromium/src -Id:/Pale-Moon/platform/ipc/glue -Id:/UXP-build-p
alemoon/dist/include -Id:/UXP-build-palemoon/dist/include/nspr -Id:/UXP-build-palemoon/dist/include/nss -MD -FI d:/UXP-b
uild-palemoon/mozilla-config.h -DMOZILLA_CLIENT -TP -nologo -wd5026 -wd5027 -Zc:sizedDealloc- -wd4752 -wd4091 -wd4577 -D
_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -utf-8 -arch:SSE2 -FS -Gw -wd4251 -wd4244 -wd4267 -wd4345 -wd4351 -wd4800 -wd4595 -
we4553 -GR- -Zi -O2 -GS- -Oy- -Fdgenerated.pdb d:/UXP-build-palemoon/editor/libeditor/Unified_cpp_editor_libeditor0.cpp
 0:48.27 d:/Pale-Moon/platform/config/rules.mk:884: recipe for target 'Unified_cpp_editor_libeditor0.obj' failed
 0:48.29 mozmake.EXE[4]: *** [Unified_cpp_editor_libeditor0.obj] Error 1

It seems this path is wrong: -Id:/Pale-Moon/layout/style

I have a problem building on win32: ``` 0:48.11 Unified_cpp_editor_libeditor0.cpp 0:48.12 d:\UXP-build-palemoon\dist\include\mozilla/css/Declaration.h(24): fatal error C1083: Cannot open include file: 'nsCSSDataBlock.h': No such file or directory 0:48.14 0:48.19 In the directory /d/UXP-build-palemoon/editor/libeditor 0:48.20 The following command failed to execute properly: 0:48.21 d:/UXP-build-palemoon/_virtualenv/Scripts/python.exe -m mozbuild.action.cl cl.EXE -FoUnified_cpp_editor_libedit or0.obj -c -Id:/UXP-build-palemoon/dist/stl_wrappers -DNDEBUG=1 -DTRIMMED=1 -DWIN32_LEAN_AND_MEAN -D_WIN32 -DWIN32 -D_CR T_RAND_S -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DOS_WIN=1 -D_UNICODE -DCHROMIUM_BUILD -DU_STATIC_IMPLEMENTATION -DUNICODE - D_WINDOWS -D_SECURE_ATL -DCOMPILER_MSVC -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXU L -Id:/Pale-Moon/platform/editor/libeditor -Id:/UXP-build-palemoon/editor/libeditor -Id:/Pale-Moon/platform/dom/base -Id :/Pale-Moon/platform/editor/txmgr -Id:/Pale-Moon/platform/extensions/spellcheck/src -Id:/Pale-Moon/platform/layout/gener ic -Id:/Pale-Moon/layout/style -Id:/Pale-Moon/platform/layout/tables -Id:/Pale-Moon/platform/layout/xul -Id:/UXP-build-p alemoon/ipc/ipdl/_ipdlheaders -Id:/Pale-Moon/platform/ipc/chromium/src -Id:/Pale-Moon/platform/ipc/glue -Id:/UXP-build-p alemoon/dist/include -Id:/UXP-build-palemoon/dist/include/nspr -Id:/UXP-build-palemoon/dist/include/nss -MD -FI d:/UXP-b uild-palemoon/mozilla-config.h -DMOZILLA_CLIENT -TP -nologo -wd5026 -wd5027 -Zc:sizedDealloc- -wd4752 -wd4091 -wd4577 -D _HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -utf-8 -arch:SSE2 -FS -Gw -wd4251 -wd4244 -wd4267 -wd4345 -wd4351 -wd4800 -wd4595 - we4553 -GR- -Zi -O2 -GS- -Oy- -Fdgenerated.pdb d:/UXP-build-palemoon/editor/libeditor/Unified_cpp_editor_libeditor0.cpp 0:48.27 d:/Pale-Moon/platform/config/rules.mk:884: recipe for target 'Unified_cpp_editor_libeditor0.obj' failed 0:48.29 mozmake.EXE[4]: *** [Unified_cpp_editor_libeditor0.obj] Error 1 ``` It seems this path is wrong: `-Id:/Pale-Moon/layout/style`
mattatobin commented 1 year ago (Migrated from github.com)
Owner

You are building win32 or you are building ON win32? Also, those paths don’t make any sense and it is out of context. Though I am doing a win32 build now.

You are building win32 or you are building ON win32? Also, those paths don't make any sense and it is out of context. Though I am doing a win32 build now.
JustOff commented 1 year ago (Migrated from github.com)
Owner

win32 target on win64 host, the path above is only one that has no platform included, it should be -Id:/Pale-Moon/platform/layout/style like all others.

win32 target on win64 host, the path above is only one that has no `platform` included, it should be `-Id:/Pale-Moon/platform/layout/style` like all others.
mattatobin commented 1 year ago (Migrated from github.com)
Owner

Yeah.. and I don’t understand why.. IF this was something specifically to do with the comm-configuration then Borealis and Interlink as well as the Hyperbola applications would ALSO fail.

As I said, I am doing a win32 build right now.

Yeah.. and I don't understand why.. IF this was something specifically to do with the comm-configuration then Borealis and Interlink as well as the Hyperbola applications would ALSO fail. As I said, I am doing a win32 build right now.
mattatobin commented 1 year ago (Migrated from github.com)
Owner

Is that objdir reused?


image

Is that objdir reused? ---- ![image](https://user-images.githubusercontent.com/3889475/70856392-f19b1400-1ea9-11ea-86b4-303d95e0504d.png)
JustOff commented 1 year ago (Migrated from github.com)
Owner

Clobber build is failed exactly the same way.

Clobber build is failed exactly the same way.
mattatobin commented 1 year ago (Migrated from github.com)
Owner

What is your directory structure and what is your mozconfig and get me config.status

What is your directory structure and what is your `mozconfig` and get me `config.status`
JustOff commented 1 year ago (Migrated from github.com)
Owner

I’m sorry, but it’s 2:50am local time, I’ll provide all you requested in about 10 hours, as it’s really hard to collect it right now using vnc session from my tablet.

I'm sorry, but it's 2:50am local time, I'll provide all you requested in about 10 hours, as it's really hard to collect it right now using vnc session from my tablet.
wolfbeast commented 1 year ago (Migrated from github.com)
Owner

Not entirely sure why you immediately jumped on building this when stuff is still being organized and in-progress :)
Anyway, just provide when you’re awake again; I’m sure it’s something like setting the MOZ_OBJDIR to an absolute path or something.

Not entirely sure why you immediately jumped on building this when stuff is still being organized and in-progress :) Anyway, just provide when you're awake again; I'm sure it's something like setting the MOZ_OBJDIR to an absolute path or something.
JustOff commented 1 year ago (Migrated from github.com)
Owner

I had to manually purge all the *.pyc files (some of them were even from 2017), and now everything builds properly. Apparently, this because I continued to work in the old PM repo.

It seems I really shouldn’t have to build at night, sorry for the noise.

I had to manually purge all the `*.pyc` files (some of them were even from 2017), and now everything builds properly. Apparently, this because I continued to work in the old PM repo. It seems I really shouldn't have to build at night, sorry for the noise.
mattatobin commented 1 year ago (Migrated from github.com)
Owner

Well it is good to know of that case so if someone runs into it we have an answer.

Well it is good to know of that case so if someone runs into it we have an answer.
adeshkp commented 1 year ago (Migrated from github.com)
Owner

Mac build is currently busted. Fix is this:

index bccdec265..dc3d5ec6e 100644
--- a/palemoon/base/content/baseMenuOverlay.xul
+++ b/palemoon/base/content/baseMenuOverlay.xul
@@ -29,7 +29,7 @@
         <menuitem id="menu_mac_show_all" label="&showAllAppsCmdMac.label;"/>
     </menupopup>
 <!-- Mac window menu -->
-#include ../../../../toolkit/content/macWindowMenu.inc
+#include ../../../platform/toolkit/content/macWindowMenu.inc
 #endif
 
 #ifdef XP_WIN
diff --git a/palemoon/themes/osx/shared.inc b/palemoon/themes/osx/shared.inc
index ef27746a3..7b77db28a 100644
--- a/palemoon/themes/osx/shared.inc
+++ b/palemoon/themes/osx/shared.inc
@@ -1,4 +1,4 @@
-%include ../../../../toolkit/themes/osx/global/shared.inc
+%include ../../../platform/toolkit/themes/osx/global/shared.inc
 %include ../shared/browser.inc
 
 %define hudButton -moz-appearance: none; color: #434343; border-radius: 4px; border: 1px solid #b5b5b5; background: linear-gradient(#fff, #f2f2f2); box-shadow: inset 0 1px rgba(255,255,255,.8), inset 0 0 1px rgba(255,255, 255,.25), 0 1px rgba(255,255,255,.3); background-clip: padding-box; background-origin: padding-box; padding: 2px 6px;

https://pastebin.com/raw/BLWHe4jR

@mattatobin This is same as mentioned on IRC.

Mac build is currently busted. Fix is this: ```diff --git a/palemoon/base/content/baseMenuOverlay.xul b/palemoon/base/content/baseMenuOverlay.xul index bccdec265..dc3d5ec6e 100644 --- a/palemoon/base/content/baseMenuOverlay.xul +++ b/palemoon/base/content/baseMenuOverlay.xul @@ -29,7 +29,7 @@ <menuitem id="menu_mac_show_all" label="&showAllAppsCmdMac.label;"/> </menupopup> <!-- Mac window menu --> -#include ../../../../toolkit/content/macWindowMenu.inc +#include ../../../platform/toolkit/content/macWindowMenu.inc #endif #ifdef XP_WIN diff --git a/palemoon/themes/osx/shared.inc b/palemoon/themes/osx/shared.inc index ef27746a3..7b77db28a 100644 --- a/palemoon/themes/osx/shared.inc +++ b/palemoon/themes/osx/shared.inc @@ -1,4 +1,4 @@ -%include ../../../../toolkit/themes/osx/global/shared.inc +%include ../../../platform/toolkit/themes/osx/global/shared.inc %include ../shared/browser.inc %define hudButton -moz-appearance: none; color: #434343; border-radius: 4px; border: 1px solid #b5b5b5; background: linear-gradient(#fff, #f2f2f2); box-shadow: inset 0 1px rgba(255,255,255,.8), inset 0 0 1px rgba(255,255, 255,.25), 0 1px rgba(255,255,255,.3); background-clip: padding-box; background-origin: padding-box; padding: 2px 6px; ``` https://pastebin.com/raw/BLWHe4jR @mattatobin This is same as mentioned on IRC.
mattatobin commented 1 year ago (Migrated from github.com)
Owner

Why did you respond here and not issue a pull request?

Why did you respond here and not issue a pull request?
adeshkp commented 1 year ago (Migrated from github.com)
Owner

Sorry I commented on the wrong issue. I had to go through extra work to set up the new repo, but now you have a PR. Be happy!

Sorry I commented on the wrong issue. I had to go through extra work to set up the new repo, but now you have a PR. Be happy!
mattatobin commented 1 year ago (Migrated from github.com)
Owner

I am :)

I am :)
mattatobin commented 1 year ago (Migrated from github.com)
Owner

Basilisk is now switched to its new repository at https://github.com/MoonchildProductions/Basilisk

Basilisk is now switched to its new repository at https://github.com/MoonchildProductions/Basilisk
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.