Skip irrelevant submodules when building on Arch - #817

Merged
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1
Mar 10, 2023
Merged

Skip irrelevant submodules when building on Arch#817
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1

Conversation

@Tea23

@Tea23Tea23 commented Jan 23, 2023

Copy link
Copy Markdown
Contributor

Description

The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in ffpmeg-linux-x86_64 and the others are not used at all.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

Screenshot

N/A

Issues Fixed or Closed

N/A

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

Branch Updates

LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.

  • I want maintainers to keep my branch updated

ReenigneArcherand others added 7 commits October 30, 2022 15:05
The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in `ffpmeg-linux-x86_64` and the others are not used at all.
Arguably we could conditionally pull `ffpmeg-linux-aarch64` instead of its x86_64 counterpart when building for / on aarch64, but because `arch` doesn't specify aarch64 as a valid architecture for this package, there's no real need.
@CLAassistant

CLAassistant commented Jan 23, 2023

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@github-actions
github-actionsBot changed the base branch from master to nightlyJanuary 23, 2023 03:57
@github-actions

Copy link
Copy Markdown

Your PR was set to master, PRs should be sent to nightly.
The base branch of this PR has been automatically changed to nightly.
Please check that there are no merge conflicts

@ReenigneArcher

Copy link
Copy Markdown
Member

Thank you for your submission.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

I was planning to enable this for aarch64, but as far as I could find all the dependencies are not available for arm64. Perhaps I am searching wrong, but when I search for avahi for example, it just shows x86_64... https://archlinux.org/packages/?sort=&q=avahi&maintainer=&flagged=

In fact, arm64/aarch64 is not even listed as a possible architecture.
image

@Tea23

Copy link
Copy Markdown
ContributorAuthor

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

@ReenigneArcher

Copy link
Copy Markdown
Member

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

Okay, would you mind making the adjustment, as well as adding aarch64 to the arch parameter?

@Tea23

Copy link
Copy Markdown
ContributorAuthor

@ReenigneArcher Sure, although you may want to remove i686 altogether, there only seems to be x86_64 and aarch64 ffpmeg submodules so sunshine may not build in i686 at all.

The default behaviour will pull all submodules, because honestly it'd be impressive if someone got that far at all!
@ReenigneArcher

Copy link
Copy Markdown
Member

you may want to remove i686 altogether

That's fine with me as well.

Comment threadpackaging/linux/aur/PKGBUILD Outdated
Comment threadpackaging/linux/aur/PKGBUILD Outdated
@ReenigneArcher
ReenigneArcher merged commit bf4ed89 into LizardByte:nightlyMar 10, 2023
@KuleRucket

Copy link
Copy Markdown
Contributor

You have most commands in the if/else block repeating for every branch.

All of this could simply be outside the if block:

 git -c submodule."ffmpeg-macos-x86_64".update=none \
-c submodule."ffmpeg-windows-x86_64".update=none \
-c submodule."ffmpeg-macos-aarch64".update=none \
submodule update --recursive --init

@ReenigneArcher

Copy link
Copy Markdown
Member

@KuleRucket then it would grab non architecture specific submodules in all cases.

@KuleRucket

KuleRucket commented Mar 10, 2023

Copy link
Copy Markdown
Contributor

The final commit is OK. I was looking at the one before that had the same in the else block.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@Tea23@CLAassistant@ReenigneArcher@KuleRucket@LizardByte-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Skip irrelevant submodules when building on Arch - #817

Merged
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1
Mar 10, 2023
Merged

Skip irrelevant submodules when building on Arch#817
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1

Conversation

@Tea23

@Tea23Tea23 commented Jan 23, 2023

Copy link
Copy Markdown
Contributor

Description

The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in ffpmeg-linux-x86_64 and the others are not used at all.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

Screenshot

N/A

Issues Fixed or Closed

N/A

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

Branch Updates

LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.

  • I want maintainers to keep my branch updated

ReenigneArcherand others added 7 commits October 30, 2022 15:05
The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in `ffpmeg-linux-x86_64` and the others are not used at all.
Arguably we could conditionally pull `ffpmeg-linux-aarch64` instead of its x86_64 counterpart when building for / on aarch64, but because `arch` doesn't specify aarch64 as a valid architecture for this package, there's no real need.
@CLAassistant

CLAassistant commented Jan 23, 2023

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@github-actions
github-actionsBot changed the base branch from master to nightlyJanuary 23, 2023 03:57
@github-actions

Copy link
Copy Markdown

Your PR was set to master, PRs should be sent to nightly.
The base branch of this PR has been automatically changed to nightly.
Please check that there are no merge conflicts

@ReenigneArcher

Copy link
Copy Markdown
Member

Thank you for your submission.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

I was planning to enable this for aarch64, but as far as I could find all the dependencies are not available for arm64. Perhaps I am searching wrong, but when I search for avahi for example, it just shows x86_64... https://archlinux.org/packages/?sort=&q=avahi&maintainer=&flagged=

In fact, arm64/aarch64 is not even listed as a possible architecture.
image

@Tea23

Copy link
Copy Markdown
ContributorAuthor

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

@ReenigneArcher

Copy link
Copy Markdown
Member

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

Okay, would you mind making the adjustment, as well as adding aarch64 to the arch parameter?

@Tea23

Copy link
Copy Markdown
ContributorAuthor

@ReenigneArcher Sure, although you may want to remove i686 altogether, there only seems to be x86_64 and aarch64 ffpmeg submodules so sunshine may not build in i686 at all.

The default behaviour will pull all submodules, because honestly it'd be impressive if someone got that far at all!
@ReenigneArcher

Copy link
Copy Markdown
Member

you may want to remove i686 altogether

That's fine with me as well.

Comment threadpackaging/linux/aur/PKGBUILD Outdated
Comment threadpackaging/linux/aur/PKGBUILD Outdated
@ReenigneArcher
ReenigneArcher merged commit bf4ed89 into LizardByte:nightlyMar 10, 2023
@KuleRucket

Copy link
Copy Markdown
Contributor

You have most commands in the if/else block repeating for every branch.

All of this could simply be outside the if block:

 git -c submodule."ffmpeg-macos-x86_64".update=none \
-c submodule."ffmpeg-windows-x86_64".update=none \
-c submodule."ffmpeg-macos-aarch64".update=none \
submodule update --recursive --init

@ReenigneArcher

Copy link
Copy Markdown
Member

@KuleRucket then it would grab non architecture specific submodules in all cases.

@KuleRucket

KuleRucket commented Mar 10, 2023

Copy link
Copy Markdown
Contributor

The final commit is OK. I was looking at the one before that had the same in the else block.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@Tea23@CLAassistant@ReenigneArcher@KuleRucket@LizardByte-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Skip irrelevant submodules when building on Arch - #817

Merged
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1
Mar 10, 2023
Merged

Skip irrelevant submodules when building on Arch#817
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1

Conversation

@Tea23

@Tea23Tea23 commented Jan 23, 2023

Copy link
Copy Markdown
Contributor

Description

The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in ffpmeg-linux-x86_64 and the others are not used at all.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

Screenshot

N/A

Issues Fixed or Closed

N/A

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

Branch Updates

LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.

  • I want maintainers to keep my branch updated

ReenigneArcherand others added 7 commits October 30, 2022 15:05
The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in `ffpmeg-linux-x86_64` and the others are not used at all.
Arguably we could conditionally pull `ffpmeg-linux-aarch64` instead of its x86_64 counterpart when building for / on aarch64, but because `arch` doesn't specify aarch64 as a valid architecture for this package, there's no real need.
@CLAassistant

CLAassistant commented Jan 23, 2023

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@github-actions
github-actionsBot changed the base branch from master to nightlyJanuary 23, 2023 03:57
@github-actions

Copy link
Copy Markdown

Your PR was set to master, PRs should be sent to nightly.
The base branch of this PR has been automatically changed to nightly.
Please check that there are no merge conflicts

@ReenigneArcher

Copy link
Copy Markdown
Member

Thank you for your submission.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

I was planning to enable this for aarch64, but as far as I could find all the dependencies are not available for arm64. Perhaps I am searching wrong, but when I search for avahi for example, it just shows x86_64... https://archlinux.org/packages/?sort=&q=avahi&maintainer=&flagged=

In fact, arm64/aarch64 is not even listed as a possible architecture.
image

@Tea23

Copy link
Copy Markdown
ContributorAuthor

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

@ReenigneArcher

Copy link
Copy Markdown
Member

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

Okay, would you mind making the adjustment, as well as adding aarch64 to the arch parameter?

@Tea23

Copy link
Copy Markdown
ContributorAuthor

@ReenigneArcher Sure, although you may want to remove i686 altogether, there only seems to be x86_64 and aarch64 ffpmeg submodules so sunshine may not build in i686 at all.

The default behaviour will pull all submodules, because honestly it'd be impressive if someone got that far at all!
@ReenigneArcher

Copy link
Copy Markdown
Member

you may want to remove i686 altogether

That's fine with me as well.

Comment threadpackaging/linux/aur/PKGBUILD Outdated
Comment threadpackaging/linux/aur/PKGBUILD Outdated
@ReenigneArcher
ReenigneArcher merged commit bf4ed89 into LizardByte:nightlyMar 10, 2023
@KuleRucket

Copy link
Copy Markdown
Contributor

You have most commands in the if/else block repeating for every branch.

All of this could simply be outside the if block:

 git -c submodule."ffmpeg-macos-x86_64".update=none \
-c submodule."ffmpeg-windows-x86_64".update=none \
-c submodule."ffmpeg-macos-aarch64".update=none \
submodule update --recursive --init

@ReenigneArcher

Copy link
Copy Markdown
Member

@KuleRucket then it would grab non architecture specific submodules in all cases.

@KuleRucket

KuleRucket commented Mar 10, 2023

Copy link
Copy Markdown
Contributor

The final commit is OK. I was looking at the one before that had the same in the else block.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@Tea23@CLAassistant@ReenigneArcher@KuleRucket@LizardByte-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Skip irrelevant submodules when building on Arch - #817

Merged
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1
Mar 10, 2023
Merged

Skip irrelevant submodules when building on Arch#817
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1

Conversation

@Tea23

@Tea23Tea23 commented Jan 23, 2023

Copy link
Copy Markdown
Contributor

Description

The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in ffpmeg-linux-x86_64 and the others are not used at all.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

Screenshot

N/A

Issues Fixed or Closed

N/A

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

Branch Updates

LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.

  • I want maintainers to keep my branch updated

ReenigneArcherand others added 7 commits October 30, 2022 15:05
The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in `ffpmeg-linux-x86_64` and the others are not used at all.
Arguably we could conditionally pull `ffpmeg-linux-aarch64` instead of its x86_64 counterpart when building for / on aarch64, but because `arch` doesn't specify aarch64 as a valid architecture for this package, there's no real need.
@CLAassistant

CLAassistant commented Jan 23, 2023

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@github-actions
github-actionsBot changed the base branch from master to nightlyJanuary 23, 2023 03:57
@github-actions

Copy link
Copy Markdown

Your PR was set to master, PRs should be sent to nightly.
The base branch of this PR has been automatically changed to nightly.
Please check that there are no merge conflicts

@ReenigneArcher

Copy link
Copy Markdown
Member

Thank you for your submission.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

I was planning to enable this for aarch64, but as far as I could find all the dependencies are not available for arm64. Perhaps I am searching wrong, but when I search for avahi for example, it just shows x86_64... https://archlinux.org/packages/?sort=&q=avahi&maintainer=&flagged=

In fact, arm64/aarch64 is not even listed as a possible architecture.
image

@Tea23

Copy link
Copy Markdown
ContributorAuthor

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

@ReenigneArcher

Copy link
Copy Markdown
Member

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

Okay, would you mind making the adjustment, as well as adding aarch64 to the arch parameter?

@Tea23

Copy link
Copy Markdown
ContributorAuthor

@ReenigneArcher Sure, although you may want to remove i686 altogether, there only seems to be x86_64 and aarch64 ffpmeg submodules so sunshine may not build in i686 at all.

The default behaviour will pull all submodules, because honestly it'd be impressive if someone got that far at all!
@ReenigneArcher

Copy link
Copy Markdown
Member

you may want to remove i686 altogether

That's fine with me as well.

Comment threadpackaging/linux/aur/PKGBUILD Outdated
Comment threadpackaging/linux/aur/PKGBUILD Outdated
@ReenigneArcher
ReenigneArcher merged commit bf4ed89 into LizardByte:nightlyMar 10, 2023
@KuleRucket

Copy link
Copy Markdown
Contributor

You have most commands in the if/else block repeating for every branch.

All of this could simply be outside the if block:

 git -c submodule."ffmpeg-macos-x86_64".update=none \
-c submodule."ffmpeg-windows-x86_64".update=none \
-c submodule."ffmpeg-macos-aarch64".update=none \
submodule update --recursive --init

@ReenigneArcher

Copy link
Copy Markdown
Member

@KuleRucket then it would grab non architecture specific submodules in all cases.

@KuleRucket

KuleRucket commented Mar 10, 2023

Copy link
Copy Markdown
Contributor

The final commit is OK. I was looking at the one before that had the same in the else block.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@Tea23@CLAassistant@ReenigneArcher@KuleRucket@LizardByte-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Skip irrelevant submodules when building on Arch - #817

Merged
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1
Mar 10, 2023
Merged

Skip irrelevant submodules when building on Arch#817
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1

Conversation

@Tea23

@Tea23Tea23 commented Jan 23, 2023

Copy link
Copy Markdown
Contributor

Description

The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in ffpmeg-linux-x86_64 and the others are not used at all.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

Screenshot

N/A

Issues Fixed or Closed

N/A

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

Branch Updates

LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.

  • I want maintainers to keep my branch updated

ReenigneArcherand others added 7 commits October 30, 2022 15:05
The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in `ffpmeg-linux-x86_64` and the others are not used at all.
Arguably we could conditionally pull `ffpmeg-linux-aarch64` instead of its x86_64 counterpart when building for / on aarch64, but because `arch` doesn't specify aarch64 as a valid architecture for this package, there's no real need.
@CLAassistant

CLAassistant commented Jan 23, 2023

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@github-actions
github-actionsBot changed the base branch from master to nightlyJanuary 23, 2023 03:57
@github-actions

Copy link
Copy Markdown

Your PR was set to master, PRs should be sent to nightly.
The base branch of this PR has been automatically changed to nightly.
Please check that there are no merge conflicts

@ReenigneArcher

Copy link
Copy Markdown
Member

Thank you for your submission.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

I was planning to enable this for aarch64, but as far as I could find all the dependencies are not available for arm64. Perhaps I am searching wrong, but when I search for avahi for example, it just shows x86_64... https://archlinux.org/packages/?sort=&q=avahi&maintainer=&flagged=

In fact, arm64/aarch64 is not even listed as a possible architecture.
image

@Tea23

Copy link
Copy Markdown
ContributorAuthor

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

@ReenigneArcher

Copy link
Copy Markdown
Member

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

Okay, would you mind making the adjustment, as well as adding aarch64 to the arch parameter?

@Tea23

Copy link
Copy Markdown
ContributorAuthor

@ReenigneArcher Sure, although you may want to remove i686 altogether, there only seems to be x86_64 and aarch64 ffpmeg submodules so sunshine may not build in i686 at all.

The default behaviour will pull all submodules, because honestly it'd be impressive if someone got that far at all!
@ReenigneArcher

Copy link
Copy Markdown
Member

you may want to remove i686 altogether

That's fine with me as well.

Comment threadpackaging/linux/aur/PKGBUILD Outdated
Comment threadpackaging/linux/aur/PKGBUILD Outdated
@ReenigneArcher
ReenigneArcher merged commit bf4ed89 into LizardByte:nightlyMar 10, 2023
@KuleRucket

Copy link
Copy Markdown
Contributor

You have most commands in the if/else block repeating for every branch.

All of this could simply be outside the if block:

 git -c submodule."ffmpeg-macos-x86_64".update=none \
-c submodule."ffmpeg-windows-x86_64".update=none \
-c submodule."ffmpeg-macos-aarch64".update=none \
submodule update --recursive --init

@ReenigneArcher

Copy link
Copy Markdown
Member

@KuleRucket then it would grab non architecture specific submodules in all cases.

@KuleRucket

KuleRucket commented Mar 10, 2023

Copy link
Copy Markdown
Contributor

The final commit is OK. I was looking at the one before that had the same in the else block.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@Tea23@CLAassistant@ReenigneArcher@KuleRucket@LizardByte-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Skip irrelevant submodules when building on Arch - #817

Merged
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1
Mar 10, 2023
Merged

Skip irrelevant submodules when building on Arch#817
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1

Conversation

@Tea23

@Tea23Tea23 commented Jan 23, 2023

Copy link
Copy Markdown
Contributor

Description

The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in ffpmeg-linux-x86_64 and the others are not used at all.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

Screenshot

N/A

Issues Fixed or Closed

N/A

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

Branch Updates

LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.

  • I want maintainers to keep my branch updated

ReenigneArcherand others added 7 commits October 30, 2022 15:05
The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in `ffpmeg-linux-x86_64` and the others are not used at all.
Arguably we could conditionally pull `ffpmeg-linux-aarch64` instead of its x86_64 counterpart when building for / on aarch64, but because `arch` doesn't specify aarch64 as a valid architecture for this package, there's no real need.
@CLAassistant

CLAassistant commented Jan 23, 2023

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@github-actions
github-actionsBot changed the base branch from master to nightlyJanuary 23, 2023 03:57
@github-actions

Copy link
Copy Markdown

Your PR was set to master, PRs should be sent to nightly.
The base branch of this PR has been automatically changed to nightly.
Please check that there are no merge conflicts

@ReenigneArcher

Copy link
Copy Markdown
Member

Thank you for your submission.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

I was planning to enable this for aarch64, but as far as I could find all the dependencies are not available for arm64. Perhaps I am searching wrong, but when I search for avahi for example, it just shows x86_64... https://archlinux.org/packages/?sort=&q=avahi&maintainer=&flagged=

In fact, arm64/aarch64 is not even listed as a possible architecture.
image

@Tea23

Copy link
Copy Markdown
ContributorAuthor

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

@ReenigneArcher

Copy link
Copy Markdown
Member

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

Okay, would you mind making the adjustment, as well as adding aarch64 to the arch parameter?

@Tea23

Copy link
Copy Markdown
ContributorAuthor

@ReenigneArcher Sure, although you may want to remove i686 altogether, there only seems to be x86_64 and aarch64 ffpmeg submodules so sunshine may not build in i686 at all.

The default behaviour will pull all submodules, because honestly it'd be impressive if someone got that far at all!
@ReenigneArcher

Copy link
Copy Markdown
Member

you may want to remove i686 altogether

That's fine with me as well.

Comment threadpackaging/linux/aur/PKGBUILD Outdated
Comment threadpackaging/linux/aur/PKGBUILD Outdated
@ReenigneArcher
ReenigneArcher merged commit bf4ed89 into LizardByte:nightlyMar 10, 2023
@KuleRucket

Copy link
Copy Markdown
Contributor

You have most commands in the if/else block repeating for every branch.

All of this could simply be outside the if block:

 git -c submodule."ffmpeg-macos-x86_64".update=none \
-c submodule."ffmpeg-windows-x86_64".update=none \
-c submodule."ffmpeg-macos-aarch64".update=none \
submodule update --recursive --init

@ReenigneArcher

Copy link
Copy Markdown
Member

@KuleRucket then it would grab non architecture specific submodules in all cases.

@KuleRucket

KuleRucket commented Mar 10, 2023

Copy link
Copy Markdown
Contributor

The final commit is OK. I was looking at the one before that had the same in the else block.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@Tea23@CLAassistant@ReenigneArcher@KuleRucket@LizardByte-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Skip irrelevant submodules when building on Arch - #817

Merged
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1
Mar 10, 2023
Merged

Skip irrelevant submodules when building on Arch#817
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1

Conversation

@Tea23

@Tea23Tea23 commented Jan 23, 2023

Copy link
Copy Markdown
Contributor

Description

The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in ffpmeg-linux-x86_64 and the others are not used at all.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

Screenshot

N/A

Issues Fixed or Closed

N/A

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

Branch Updates

LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.

  • I want maintainers to keep my branch updated

ReenigneArcherand others added 7 commits October 30, 2022 15:05
The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in `ffpmeg-linux-x86_64` and the others are not used at all.
Arguably we could conditionally pull `ffpmeg-linux-aarch64` instead of its x86_64 counterpart when building for / on aarch64, but because `arch` doesn't specify aarch64 as a valid architecture for this package, there's no real need.
@CLAassistant

CLAassistant commented Jan 23, 2023

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@github-actions
github-actionsBot changed the base branch from master to nightlyJanuary 23, 2023 03:57
@github-actions

Copy link
Copy Markdown

Your PR was set to master, PRs should be sent to nightly.
The base branch of this PR has been automatically changed to nightly.
Please check that there are no merge conflicts

@ReenigneArcher

Copy link
Copy Markdown
Member

Thank you for your submission.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

I was planning to enable this for aarch64, but as far as I could find all the dependencies are not available for arm64. Perhaps I am searching wrong, but when I search for avahi for example, it just shows x86_64... https://archlinux.org/packages/?sort=&q=avahi&maintainer=&flagged=

In fact, arm64/aarch64 is not even listed as a possible architecture.
image

@Tea23

Copy link
Copy Markdown
ContributorAuthor

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

@ReenigneArcher

Copy link
Copy Markdown
Member

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

Okay, would you mind making the adjustment, as well as adding aarch64 to the arch parameter?

@Tea23

Copy link
Copy Markdown
ContributorAuthor

@ReenigneArcher Sure, although you may want to remove i686 altogether, there only seems to be x86_64 and aarch64 ffpmeg submodules so sunshine may not build in i686 at all.

The default behaviour will pull all submodules, because honestly it'd be impressive if someone got that far at all!
@ReenigneArcher

Copy link
Copy Markdown
Member

you may want to remove i686 altogether

That's fine with me as well.

Comment threadpackaging/linux/aur/PKGBUILD Outdated
Comment threadpackaging/linux/aur/PKGBUILD Outdated
@ReenigneArcher
ReenigneArcher merged commit bf4ed89 into LizardByte:nightlyMar 10, 2023
@KuleRucket

Copy link
Copy Markdown
Contributor

You have most commands in the if/else block repeating for every branch.

All of this could simply be outside the if block:

 git -c submodule."ffmpeg-macos-x86_64".update=none \
-c submodule."ffmpeg-windows-x86_64".update=none \
-c submodule."ffmpeg-macos-aarch64".update=none \
submodule update --recursive --init

@ReenigneArcher

Copy link
Copy Markdown
Member

@KuleRucket then it would grab non architecture specific submodules in all cases.

@KuleRucket

KuleRucket commented Mar 10, 2023

Copy link
Copy Markdown
Contributor

The final commit is OK. I was looking at the one before that had the same in the else block.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@Tea23@CLAassistant@ReenigneArcher@KuleRucket@LizardByte-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Skip irrelevant submodules when building on Arch - #817

Merged
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1
Mar 10, 2023
Merged

Skip irrelevant submodules when building on Arch#817
ReenigneArcher merged 11 commits into
LizardByte:nightlyfrom
Tea23:patch-1

Conversation

@Tea23

@Tea23Tea23 commented Jan 23, 2023

Copy link
Copy Markdown
Contributor

Description

The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in ffpmeg-linux-x86_64 and the others are not used at all.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

Screenshot

N/A

Issues Fixed or Closed

N/A

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

Branch Updates

LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.

  • I want maintainers to keep my branch updated

ReenigneArcherand others added 7 commits October 30, 2022 15:05
The ffmpeg submodules are quite large, so pulling them in when building on Arch adds some unnecessary extra time to the build. When building on Arch, we're only interested in `ffpmeg-linux-x86_64` and the others are not used at all.
Arguably we could conditionally pull `ffpmeg-linux-aarch64` instead of its x86_64 counterpart when building for / on aarch64, but because `arch` doesn't specify aarch64 as a valid architecture for this package, there's no real need.
@CLAassistant

CLAassistant commented Jan 23, 2023

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@github-actions
github-actionsBot changed the base branch from master to nightlyJanuary 23, 2023 03:57
@github-actions

Copy link
Copy Markdown

Your PR was set to master, PRs should be sent to nightly.
The base branch of this PR has been automatically changed to nightly.
Please check that there are no merge conflicts

@ReenigneArcher

Copy link
Copy Markdown
Member

Thank you for your submission.

Arguably we could conditionally pull ffpmeg-linux-aarch64 instead of its x86_64 counterpart when building for / on aarch64, but because arch doesn't specify aarch64 as a valid architecture for this package, there's no real need.

I was planning to enable this for aarch64, but as far as I could find all the dependencies are not available for arm64. Perhaps I am searching wrong, but when I search for avahi for example, it just shows x86_64... https://archlinux.org/packages/?sort=&q=avahi&maintainer=&flagged=

In fact, arm64/aarch64 is not even listed as a possible architecture.
image

@Tea23

Copy link
Copy Markdown
ContributorAuthor

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

@ReenigneArcher

Copy link
Copy Markdown
Member

Strictly speaking, Arch only supports x86_64 and so they don't list alternative architectures on the official AUR. The arch parameter in a PKGBUILD specifies which architectures the package maintainer deems it to be compatible with, but the upstream distro itself will only support/endorse/etc x86_64. aarch64 and i686 are supplied by separate projects (https://archlinuxarm.org/ and https://archlinux32.org/).

Nothing stops you from defining i686 and/or aarch64 in arch, you just forfeit any distro level support and have to take it on yourself. If we do want this package to build on aarch64, we'd need to adjust the prepare section to conditionally pull the appropriate submodule.

Okay, would you mind making the adjustment, as well as adding aarch64 to the arch parameter?

@Tea23

Copy link
Copy Markdown
ContributorAuthor

@ReenigneArcher Sure, although you may want to remove i686 altogether, there only seems to be x86_64 and aarch64 ffpmeg submodules so sunshine may not build in i686 at all.

The default behaviour will pull all submodules, because honestly it'd be impressive if someone got that far at all!
@ReenigneArcher

Copy link
Copy Markdown
Member

you may want to remove i686 altogether

That's fine with me as well.

Comment threadpackaging/linux/aur/PKGBUILD Outdated
Comment threadpackaging/linux/aur/PKGBUILD Outdated
@ReenigneArcher
ReenigneArcher merged commit bf4ed89 into LizardByte:nightlyMar 10, 2023
@KuleRucket

Copy link
Copy Markdown
Contributor

You have most commands in the if/else block repeating for every branch.

All of this could simply be outside the if block:

 git -c submodule."ffmpeg-macos-x86_64".update=none \
-c submodule."ffmpeg-windows-x86_64".update=none \
-c submodule."ffmpeg-macos-aarch64".update=none \
submodule update --recursive --init

@ReenigneArcher

Copy link
Copy Markdown
Member

@KuleRucket then it would grab non architecture specific submodules in all cases.

@KuleRucket

KuleRucket commented Mar 10, 2023

Copy link
Copy Markdown
Contributor

The final commit is OK. I was looking at the one before that had the same in the else block.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@Tea23@CLAassistant@ReenigneArcher@KuleRucket@LizardByte-bot