Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • alistair23/pmaports
  • exkc/pmaports
  • fossdd/pmaports
  • JustSoup321/pmaports
  • Eisenbahnfan/pmaports
  • raihan2000/pmaports
  • sleirsgoevy/pmaports
  • Adrian/pmaports
  • adamthiede/pmaports
  • jianhua/pmaports
  • knuxify/pmaports
  • Arnavion/pmaports
  • barni2000/pmaports
  • longnoserob/pmaports
  • smankusors/pmaports
  • Aren/pmaports
  • langfingaz/pmaports
  • sicelo/pmaports
  • kouta-kun/pmaports
  • craftyguy/pmaports
  • rdacayan/pmaports
  • rmader/pmaports
  • Haui111/pmaports
  • jakko/pmaports
  • dujem/pmaports
  • methanal/pmaports
  • WeirdTreeThing/pmaports
  • MightyM17/pmaports
  • sertonix/pmaports
  • amessier/pmaports
  • akemnade/pmaports
  • setotau/pmaports
  • kevinwidjaja21/pmaports
  • NekoCWD/pmaports
  • ollieparanoid/pmaports
  • manoedinata/pmaports
  • Drakulix/pmaports
  • grimler/pmaports
  • benpicco/pmaports
  • Frieder.Hannenheim/pmaports
  • andrisas/pmaports
  • EspiDev/pmaports
  • maze42/pmaports
  • anjandev/pmaports
  • danct12/pmaports
  • ijiki16/pmaports
  • jja2000/pmaports
  • fancsali/pmaports
  • bolilingmeng89006/pmaports
  • Minecrell/pmaports
  • chipiguay/pmaports
  • cherrypicker/pmaports
  • fortuna-mainline/pmaports
  • pevik/pmaports
  • Patriot-06/pmaports
  • JoseskVolpe/pmaports
  • verdre/pmaports
  • proycon/pmaports
  • AutumnSpark1226/pmaports
  • PsychoGame/pmaports
  • fraolt/pmaports
  • VaporGame/pmaports
  • pugzarecute/pmaports
  • CalcProgrammer1/pmaports
  • hexaheximal/pmaports
  • dabao1955/pmaports
  • HenriDellal/pmaports
  • semfault/pmaports
  • strobo5/pmaports
  • andrewgigena/pmaports
  • Athozus/pmaports
  • 1peter10/pmaports
  • vixalien/pmaports
  • Tooniis/pmaports
  • adomerle/pmaports
  • bjorn3/pmaports
  • StacyHarper/pmaports
  • Jack_Kekzoz/pmaports
  • Ceddicedced/pmaports
  • Justin_Zobel/pmaports
  • airtower-luna/pmaports
  • f-izzo/pmaports
  • cosmo/pmaports
  • 9lore/pmaports
  • postmarketOS/pmaports
  • Johnnynator/pmaports
  • iAboothahir/pmaports
  • N1kroks/pmaports
  • neuschaefer/pmaports
  • DylanVanAssche/pmaports
  • yehiashamaa987/pmaports
  • Operachi/pmaports
  • faveoled/pmaports
  • ilpianista/pmaports
  • johkra/pmaports
  • HDDTHR/pmaports
  • zsoltiv/pmaports
  • Justin/pmaports
  • Kaloyan501/pmaports_huawei_p8_lite_2015_fix
  • joelselvaraj/pmaports
  • rontti/pmaports
  • dsankouski/pmaports
  • StandaSK/pmaports
  • paricbat/pmaports
  • asdfugil/pmaports
  • komaru-yml/pmaports
  • MasterPlexus/pmaports
  • Felix/pmaports
  • ayakael/pmaports
  • feisuzhu/pmaports
  • AJ-RR/pmaports
  • SzczurekYT/pmaports
  • mediaberry/pmaports
  • justsomeguy/pmaports
  • Augis154/pmaports
  • hrdl/pmaports
  • sib0ndt/pmaports
  • 19atlas/pmaports
  • vipaoL/pmaports
  • wannjanjic/pmaports
  • dh/pmaports
  • LogicalErzor/pmaports
  • halamix2/pmaports
  • Shamilkv34/pmaports
  • Cogitri/pmaports
  • fallenritemonk/pmaports
  • user0-07161/pmaports
  • rock3tsprocket/pmaports
  • ellyq/pmaports
  • rodent/pmaports
  • mkorpershoek/pmaports
  • candrew/pmaports
  • fallaciousreasoning/pmaports
  • chalkin/pmaports
  • ungeskriptet/pmaports
  • r00t/pmaports
  • panpanpanpan/pmaports
  • celiffe/pmaports
  • davidfurey/pmaports
  • kidd/pmaports
  • tpikonen/pmaports
  • camelCaseNick/pmaports
  • ermine/pmaports
  • lgh/pmaports
  • sajattack/pmaports
  • StephanieBread/pmaports
  • M0Rf30/pmaports
  • notfound405/pmaports
  • samueldr/pmaports
  • r10nw7fd3/pmaports
  • treid998/pmaports-merge
  • denysvitali/pmaports
  • rodriguezst/pmaports
  • puppiestdoggo1/pmaports
  • donihalim/pmaports
  • EDKPiepaint/pmaports-apple-tonga-test
156 results
Show changes
Commits on Source (266)
Showing
with 164 additions and 330 deletions
#!/usr/bin/env python3
# Copyright 2019 Martijn Braam
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import json
import os
import requests
# Require environment vars
for key in ["BPO_API_ENDPOINT",
"BPO_API_HOST",
"BPO_ARCH",
"BPO_BRANCH",
"BPO_JOB_ID",
"BPO_JOB_NAME",
"BPO_TOKEN_FILE",
"BPO_PAYLOAD_FILES", # one file per line
"BPO_PAYLOAD_IS_JSON", # set to "1" to enable
"BPO_PKGNAME",
"BPO_VERSION", # $pkgver-r$pkgrel
]:
if key not in os.environ:
print("ERROR: missing environment variable: " + key)
exit(1)
# Parse and check files
files = os.environ["BPO_PAYLOAD_FILES"].split("\n")
for path in files:
if not os.path.exists(path):
print("ERROR: file not found: " + path)
exit(1)
# Load token
with open(os.path.expanduser(os.environ["BPO_TOKEN_FILE"]),
encoding="utf-8") as handle:
token = handle.read().strip()
# Load other env vars
url = (os.environ["BPO_API_HOST"] + "/api/job-callback/" +
os.environ["BPO_API_ENDPOINT"])
is_json = (os.environ["BPO_PAYLOAD_IS_JSON"] == "1")
# Prepare HTTP headers
headers = {"X-BPO-Arch": os.environ["BPO_ARCH"],
"X-BPO-Branch": os.environ["BPO_BRANCH"],
"X-BPO-Job-Id": os.environ["BPO_JOB_ID"],
"X-BPO-Job-Name": os.environ["BPO_JOB_NAME"],
"X-BPO-Token": token,
"X-BPO-Pkgname": os.environ["BPO_PKGNAME"],
"X-BPO-Version": os.environ["BPO_VERSION"]}
# Submit JSON
if is_json:
if len(files) > 1:
print("ERROR: json mode doesn't support multiple input files")
exit(1)
# Send contents of file as HTTP POST with json payload
with open(files[0], encoding="utf-8") as handle:
data = handle.read()
data = json.loads(data)
print("Sending JSON to: " + url)
response = requests.post(url, json=data, headers=headers)
else: # Submit blobs
blobs = []
for path in files:
print("Appending: " + path)
filename = os.path.basename(path)
# Send contents of file as HTTP POST with multipart/formdata payload
blobs.append(("file[]", (filename,
open(path, "rb"),
"application/octet-stream")))
print("Uploading to: " + url)
response = requests.post(url, files=blobs, headers=headers)
if response.status_code > 399:
print("Error occurred:")
print(response.content.decode())
exit(1)
else:
print(response.content.decode())
......@@ -118,7 +118,8 @@ mr-settings:
before_script:
- apk -q add python3
script:
- .gitlab-ci/check_mr_settings.py
- wget -q "https://gitlab.com/postmarketOS/ci-common/-/raw/master/check_mr_settings.py"
- python3 ./check_mr_settings.py
# build changed aports
aports-build:
......@@ -129,3 +130,8 @@ aports-build:
- sh ./install_pmbootstrap.sh
script:
- PYTHONUNBUFFERED=1 su pmos -c ".gitlab-ci/build_changed_aports.py"
- cp -r /home/pmos/.local/var/pmbootstrap/packages/ packages/ || true
artifacts:
expire_in: 1 week
paths:
- packages/
......@@ -19,7 +19,7 @@ import pmb.helpers.logging
def get_package_version(args, package, revision, check=True):
# Redirect stderr to /dev/null, so git doesn't complain about files not
# existing in master for new packages
# existing in upstream branch for new packages
stderr = None
if not check:
stderr = subprocess.DEVNULL
......@@ -56,20 +56,23 @@ def version_compare_operator(result):
def exit_with_error_message():
branch = common.get_upstream_branch()
print()
print("ERROR: Modified package(s) don't have an increased version!")
print("ERROR: Modified package(s) don't have an increased version or a")
print("new package has a nonzero pkgrel!")
print()
print("This can either happen if you did not change the pkgver/pkgrel")
print("This can happen if you added a new package with a nonzero")
print("pkgrel, or if you did not change the pkgver/pkgrel")
print("variables in the APKBUILDs. Or you did change them, but the")
print("packages have been updated in the official master branch, and now")
print("your versions are not higher anymore.")
print(f"packages have been updated in the official '{branch}' branch, and")
print("now your versions are not higher anymore.")
print()
print("Your options:")
print("a) If you made changes to the packages, and did not increase the")
print(" pkgrel/pkgver: increase them now, and force push your branch.")
print(" => https://postmarketos.org/howto-bump-pkgrel-pkgver")
print("b) If you had already increased the package versions, rebase on")
print(" master, increase the versions again and then force push:")
print(f" '{branch}', increase the versions again and then force push:")
print(" => https://postmarketos.org/rebase")
print("c) If you made a change, that does not require rebuilding the")
print(" packages, such as only changing the arch=... line: you can")
......@@ -83,29 +86,34 @@ def exit_with_error_message():
def check_versions(args, packages):
error = False
# Get relevant commits: compare HEAD against upstream/master or HEAD~1
# (the latter if this CI check is running on upstream/master). Note that
# Get relevant commits: compare HEAD against upstream branch or HEAD~1
# (the latter if this CI check is running on upstream branch). Note that
# for the common.get_changed_files() code, we don't check against
# upstream/master, but against the latest common ancestor. This is not
# upstream branch HEAD, but against the latest common ancestor. This is not
# desired here, since we already know what packages changed, and really
# want to check if the version was increased towards *current* master.
commit = "upstream/master"
# want to check if the version was increased towards *current* upstream
# branch HEAD.
commit = f"upstream/{common.get_upstream_branch()}"
if common.run_git(["rev-parse", "HEAD"]) == common.run_git(["rev-parse",
commit]):
print("NOTE: upstream/master is on same commit as HEAD, comparing"
print(f"NOTE: {commit} is on same commit as HEAD, comparing"
" HEAD against HEAD~1.")
commit = "HEAD~1"
for package in packages:
# Get versions, skip new packages
head = get_package_version(args, package, "HEAD")
master = get_package_version(args, package, commit, False)
if not master:
print("- {}: {} (HEAD) (new package)".format(package, head))
upstream = get_package_version(args, package, commit, False)
if not upstream:
if head.rpartition('r')[2] != "0":
print(f"- {package}: {head} (HEAD) (new package) [ERROR]")
error = True
else:
print(f"- {package}: {head} (HEAD) (new package)")
continue
# Compare head and master versions
result = pmb.parse.version.compare(head, master)
# Compare head and upstream versions
result = pmb.parse.version.compare(head, upstream)
if result != 1:
error = True
......@@ -114,7 +122,7 @@ def check_versions(args, packages):
if result != 1:
formatstr += " [ERROR]"
operator = version_compare_operator(result)
print(formatstr.format(package, head, operator, master, commit))
print(formatstr.format(package, head, operator, upstream, commit))
if error:
exit_with_error_message()
......
#!/usr/bin/env python3
# Copyright 2020 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import argparse
import json
import os
import sys
import urllib.parse
import urllib.request
def check_environment_variables():
""" Make sure that all environment variables from GitLab CI are present,
and exit right here when a variable is missing. """
keys = ["CI_MERGE_REQUEST_IID",
"CI_MERGE_REQUEST_PROJECT_PATH",
"CI_MERGE_REQUEST_SOURCE_PROJECT_URL"]
for key in keys:
if key in os.environ:
continue
print("ERROR: missing environment variable: " + key)
print("Reference: https://docs.gitlab.com/ee/ci/variables/")
exit(1)
def get_url_api():
""" :returns: single merge request API URL, as documented here:
https://docs.gitlab.com/ee/api/merge_requests.html#get-single-mr """
project_path = os.environ["CI_MERGE_REQUEST_PROJECT_PATH"]
project_path = urllib.parse.quote_plus(project_path)
mr_id = os.environ["CI_MERGE_REQUEST_IID"]
url = "https://gitlab.com/api/v4/projects/{}/merge_requests/{}"
return url.format(project_path, mr_id)
def get_url_mr_edit():
""" :returns: the link where the user can edit their own MR """
url = "https://gitlab.com/{}/merge_requests/{}/edit"
return url.format(os.environ["CI_MERGE_REQUEST_PROJECT_PATH"],
os.environ["CI_MERGE_REQUEST_IID"])
def get_url_repo_settings():
""" :returns: link to the user's forked pmaports project's settings """
prefix = os.environ["CI_MERGE_REQUEST_SOURCE_PROJECT_URL"]
return prefix + "/settings/repository"
def get_mr_settings(path):
""" Get the merge request API data and parse it as JSON. Print the whole
thing on failure.
:param path: to a local file with the saved API data (will download a
fresh copy when set to None)
:returns: dict of settings data (see GitLab API reference) """
content = ""
if path:
# Read file
with open(path, encoding="utf-8") as handle:
content = handle.read()
else:
# Download from GitLab API
url = get_url_api()
print("Download " + url)
content = urllib.request.urlopen(url).read().decode("utf-8")
# Parse JSON
try:
return json.loads(content)
except:
print("ERROR: failed to decode JSON. Here's the whole content for"
" debugging:")
print("---")
print(content)
exit(1)
def settings_read(settings, key):
if key not in settings:
print("ERROR: missing '" + key + "' key in settings!")
print("Here are the whole settings for debugging:")
print("---")
print(settings)
exit(1)
return settings[key]
def check_allow_push(settings):
""" :returns: True when maintainers are allowed to push to the branch
(what we want!), False otherwise """
# Check if source branch is in same repository
source = settings_read(settings, "source_project_id")
target = settings_read(settings, "target_project_id")
if source == target:
return True
return settings_read(settings, "allow_maintainer_to_push")
def main():
# Parse arguments
parser = argparse.ArgumentParser()
parser.add_argument("--path", help="use a local file instead of querying"
" the GitLab API", default=None)
args = parser.parse_args()
# Check the merge request
check_environment_variables()
settings = get_mr_settings(args.path)
# Make sure that squashing is disabled
if settings_read(settings, "squash"):
print("*** MR settings check failed!")
print('ERROR: Please turn off the "Squash commits when merge request'
' is accepted." option in the merge request settings.')
return 1
if check_allow_push(settings):
print("*** MR settings check successful!")
else:
print("*** MR settings check failed!")
print()
print("We need to be able to push changes to your merge request.")
print("So we can rebase it on master right before merging, add the")
print("MR-ID to the commit messages, etc.")
print()
print("How to fix it:")
print("1) Open the 'edit' page of your merge request:")
print(" " + get_url_mr_edit())
print("2) Enable this option and save:")
print(" 'Allow commits from members who can merge to the target"
" branch'")
print("3) Run these tests again with an empty commit in your MR:")
print(" $ git commit --allow-empty -m 'run mr-settings test again'")
print()
print("If that setting is disabled, then you have created the MR from")
print("a protected branch. When you had forked the repository from")
print("postmarketOS, the protected branch settings were copied to")
print("your fork.")
print()
print("Resolve this with:")
print("1) Open your repository settings:")
print(" " + get_url_repo_settings())
print("2) Scroll down to 'Protected Branches' and expand it")
print("3) Click 'unprotect' next to the branch from your MR")
print("4) Follow steps 1-3 from the first list again, the option")
print(" should not be disabled anymore.")
print()
print("Thank you and sorry for the inconvenience.")
return 1
return 0
sys.exit(main())
......@@ -4,13 +4,22 @@
# Various functions used in CI scripts
import configparser
import os
import subprocess
import sys
cache = {}
def get_pmaports_dir():
return os.path.realpath(os.path.join(os.path.dirname(__file__) + "/.."))
global cache
if "pmaports_dir" in cache:
return cache["pmaports_dir"]
ret = os.path.realpath(os.path.join(os.path.dirname(__file__) + "/.."))
cache["pmaports_dir"] = ret
return ret
def run_git(parameters, check=True, stderr=None):
......@@ -45,24 +54,56 @@ def run_pmbootstrap(parameters, output_return=False):
return result.stdout
def get_upstream_branch():
""" Use pmaports.cfg from current branch (e.g. "v20.05_fix-ci") and
channels.cfg from master to retrieve the upstream branch.
:returns: branch name, e.g. "v20.05" """
global cache
if "upstream_branch" in cache:
return cache["upstream_branch"]
# Get channel (e.g. "stable") from pmaports.cfg
# https://postmarketos.org/pmaports.cfg
pmaports_dir = get_pmaports_dir()
pmaports_cfg = configparser.ConfigParser()
pmaports_cfg.read(f"{pmaports_dir}/pmaports.cfg")
channel = pmaports_cfg["pmaports"]["channel"]
# Get branch_pmaports (e.g. "v20.05") from channels.cfg
# https://postmarketos.org/channels.cfg
channels_cfg_str = run_git(["show", "upstream/master:channels.cfg"])
channels_cfg = configparser.ConfigParser()
channels_cfg.read_string(channels_cfg_str)
assert channel in channels_cfg, \
f"Channel '{channel}' from pmaports.cfg in your branch is unknown." \
" This appears to be an old branch, consider recreating your change" \
" on top of master."
ret = channels_cfg[channel]["branch_pmaports"]
cache["upstream_branch"] = ret
return ret
def get_changed_files(removed=True):
""" Get all changed files and print them, as well as the branch and the
commit that was used for the diff.
:param removed: also return removed files (default: True)
:returns: set of changed files
"""
branch_upstream = f"upstream/{get_upstream_branch()}"
commit_head = run_git(["rev-parse", "HEAD"])[:-1]
commit_upstream_master = run_git(["rev-parse", "upstream/master"])[:-1]
commit_upstream = run_git(["rev-parse", branch_upstream])[:-1]
print("commit HEAD: " + commit_head)
print("commit upstream/master: " + commit_upstream_master)
print(f"commit {branch_upstream}: f{commit_upstream}")
# Check if we are latest upstream/master
if commit_head == commit_upstream_master:
# Check if we are HEAD on the upstream branch
if commit_head == commit_upstream:
# then compare with previous commit
commit = "HEAD~1"
else:
# otherwise compare with latest common ancestor
commit = run_git(["merge-base", "upstream/master", "HEAD"])[:-1]
commit = run_git(["merge-base", branch_upstream, "HEAD"])[:-1]
print("comparing HEAD with: " + commit)
# Changed files
......@@ -88,6 +129,7 @@ def get_changed_packages_sanity_check(count):
if count <= 10:
return
branch = get_upstream_branch()
print()
print("ERROR: Too many packages have changed!")
print()
......@@ -97,7 +139,7 @@ def get_changed_packages_sanity_check(count):
print()
print("Your options:")
print("a) If you *did not* modify everything listed above, then rebase")
print(" your branch on the official postmarketOS/pmaports.git master")
print(f" your branch on the official postmarketOS/pmaports.git {branch}")
print(" branch. Feel free to ask in the chat for help if you need any.")
print("b) If you *did* modify all these packages, and you assume that")
print(" they will build within one hour: skip this sanity check by")
......
......@@ -96,11 +96,23 @@ def device_dependency_check(apkbuild, path):
" <https://postmarketos.org/devicepkg>.")
def test_aports_kernel(args):
"""
Various tests performed on the /**/linux-* aports.
"""
for path in glob.iglob(args.aports + "**/linux-*/APKBUILD", recursive=True):
apkbuild = pmb.parse.apkbuild(args, path)
if "pmb:cross-native" not in apkbuild["options"]:
raise RuntimeError("\"pmb:cross-native\" missing in"
f" options= line: {path}")
def test_aports_device(args):
"""
Various tests performed on the /device/*/device-* aports.
"""
for path in glob.glob(args.aports + "/device/*/device-*/APKBUILD"):
for path in glob.iglob(args.aports + "/device/*/device-*/APKBUILD"):
apkbuild = pmb.parse.apkbuild(args, path)
# Depends: Require "postmarketos-base"
......
......@@ -2,6 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import os
import stat
expected_directories = [
"console",
......@@ -28,6 +29,23 @@ def test_directories():
"Consider adding it to test_directory_structure.py!"
# Ensure no file in pmaports are executable.
# see https://gitlab.com/postmarketOS/pmaports/-/issues/593.
def test_executable_files():
for file in glob.iglob("**/*", recursive=True):
if os.path.isdir(file) or os.path.islink(file):
continue
# still check other less common inode types
permissions = os.stat(file).st_mode
executable_bits = stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH
if permissions & executable_bits != 0:
raise RuntimeError(f"\"{file}\" is executable. Files in pmaports" +
" should not be executables. post-* files" +
" don't need to be executable and executables" +
" should be installed using `install -D" +
"m0755` or a variation thereof.")
# Make sure files are either:
# - in root directory (README.md)
# - hidden (.gitlab-ci/, device/.shared-patches/)
......
......@@ -9,7 +9,7 @@ branch_aports=master
mirrordir_alpine=edge
[stable]
description=Upcoming beta release (WIP, DO NOT USE!)
description=Stable release channel (first beta v20.05, does not have many devices yet)
branch_pmaports=v20.05
branch_aports=3.11-stable
mirrordir_alpine=v3.11
branch_aports=3.12-stable
mirrordir_alpine=v3.12
# Contributor: Danct12 <danct12@disroot.org>
# Maintainer: Danct12 <danct12@disroot.org>
pkgname="console-keyboard-basic"
pkgname=console-keyboard-basic
pkgver=0_git20200104
pkgrel=0
pkgdesc="A basic console keyboard"
......
# Contributor: Danct12 <danct12@disroot.org>
# Maintainer: Danct12 <danct12@disroot.org>
pkgname="console-keyboard-multiplexer"
pkgname=console-keyboard-multiplexer
pkgver=0_git20200104
pkgrel=0
pkgrel=1
pkgdesc="An on screen keyboard for terminals"
arch="all"
url="https://github.com/Daniel-Abrecht/console-keyboard-multiplexer"
......@@ -26,7 +25,8 @@ build() {
package() {
make install-bin DESTDIR="$pkgdir"
cp -f $srcdir/ckmvt $pkgdir/usr/bin/ckmvt
install -Dm755 "$srcdir"/ckmvt \
"$pkgdir"/usr/bin/ckmvt
}
sha512sums="be8e3a892409ee316ee0478c7d46249ab5eefffaffbe11215f593beab2b0da5ae24392e407748a50d567eaffb9cdcd847e24f077030447fb4753470bc75b8cf4 console-keyboard-multiplexer-e304969224ba79cdac9e6715fd329a8af278cc33.tar.gz
1c56ec846de906ec63446aa07cb40d0e64c7e609e5756497aa63fef6b3b071d0f098071e42450e973b6a7bad670771b1c680e5788b987b852c471d074f909ac1 ckmvt"
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
# Contributor: Danct12 <danct12@disroot.org>
# Maintainer: Danct12 <danct12@disroot.org>
pkgname="libconsolekeyboard"
pkgname=libconsolekeyboard
pkgver=1.0.0_git20191011
pkgrel=0
pkgdesc="A terminal multiplexer library"
......
# Contributor: Danct12 <danct12@disroot.org>
# Maintainer: Danct12 <danct12@disroot.org>
pkgname="libttymultiplex"
pkgname=libttymultiplex
pkgver=0.0.1_git20200204
pkgrel=0
pkgdesc="A terminal multiplexer library"
......
......@@ -12,7 +12,7 @@ pkgdesc="Wrappers for ccache + distcc (native and foreign chroots)"
url="https://postmarketOS.org"
arch="all"
license="MIT"
options="!check !tracedeps"
options="!check !tracedeps pmb:cross-native"
package() {
# Architectures and binaries
......
......@@ -2,23 +2,22 @@
# Generator: pmbootstrap aportgen binutils-aarch64
# Based on: main/binutils
pkgname="binutils-aarch64"
builddir="$srcdir/binutils-2.34"
pkgname=binutils-aarch64
pkgver=2.34
pkgrel=0
pkgrel=1
pkgdesc="Tools necessary to build programs for aarch64 targets"
url="https://www.gnu.org/software/binutils/"
makedepends_build=""
makedepends_host=""
makedepends="gettext libtool autoconf automake bison texinfo"
arch="armhf armv7 x86_64 x86"
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
subpackages=""
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
binutils-ld-fix-static-linking.patch
gold-mips.patch
ld-bfd-mips.patch
"
builddir="$srcdir/binutils-$pkgver"
if [ "$CHOST" != "$CTARGET" ]; then
pkgname="binutils-$CTARGET_ARCH"
......@@ -28,16 +27,15 @@ fi
# secfixes:
# 2.32-r0:
# - CVE-2018-19931
# - CVE-2018-19932
# - CVE-2018-20002
# - CVE-2018-20712
# - CVE-2018-19931
# - CVE-2018-19932
# - CVE-2018-20002
# - CVE-2018-20712
# 2.28-r1:
# - CVE-2017-7614
# - CVE-2017-7614
build() {
_target="$(arch_to_hostspec aarch64)"
cd "$builddir"
"$builddir"/configure \
--build="$CBUILD" \
--target=$_target \
......@@ -55,7 +53,6 @@ build() {
}
package() {
cd "$builddir"
make install DESTDIR="$pkgdir"
# remove man, info folders
......@@ -64,7 +61,7 @@ package() {
sha512sums="f47e7304e102c7bbc97958a08093e27796b9051d1567ce4fbb723d39ef3e29efa325ee14a1bdcc462a925a7f9bbbc9aee28294c6dc23850f371030f3835a8067 binutils-2.34.tar.bz2
sha512sums="2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd binutils-2.34.tar.xz
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch
314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch"
......@@ -2,23 +2,22 @@
# Generator: pmbootstrap aportgen binutils-armhf
# Based on: main/binutils
pkgname="binutils-armhf"
builddir="$srcdir/binutils-2.34"
pkgname=binutils-armhf
pkgver=2.34
pkgrel=0
pkgrel=1
pkgdesc="Tools necessary to build programs for armhf targets"
url="https://www.gnu.org/software/binutils/"
makedepends_build=""
makedepends_host=""
makedepends="gettext libtool autoconf automake bison texinfo"
arch="armv7 aarch64 x86_64 x86"
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
subpackages=""
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
binutils-ld-fix-static-linking.patch
gold-mips.patch
ld-bfd-mips.patch
"
builddir="$srcdir/binutils-$pkgver"
if [ "$CHOST" != "$CTARGET" ]; then
pkgname="binutils-$CTARGET_ARCH"
......@@ -28,16 +27,15 @@ fi
# secfixes:
# 2.32-r0:
# - CVE-2018-19931
# - CVE-2018-19932
# - CVE-2018-20002
# - CVE-2018-20712
# - CVE-2018-19931
# - CVE-2018-19932
# - CVE-2018-20002
# - CVE-2018-20712
# 2.28-r1:
# - CVE-2017-7614
# - CVE-2017-7614
build() {
_target="$(arch_to_hostspec armhf)"
cd "$builddir"
"$builddir"/configure \
--build="$CBUILD" \
--target=$_target \
......@@ -55,7 +53,6 @@ build() {
}
package() {
cd "$builddir"
make install DESTDIR="$pkgdir"
# remove man, info folders
......@@ -64,7 +61,7 @@ package() {
sha512sums="f47e7304e102c7bbc97958a08093e27796b9051d1567ce4fbb723d39ef3e29efa325ee14a1bdcc462a925a7f9bbbc9aee28294c6dc23850f371030f3835a8067 binutils-2.34.tar.bz2
sha512sums="2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd binutils-2.34.tar.xz
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch
314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch"
......@@ -2,23 +2,22 @@
# Generator: pmbootstrap aportgen binutils-armv7
# Based on: main/binutils
pkgname="binutils-armv7"
builddir="$srcdir/binutils-2.34"
pkgname=binutils-armv7
pkgver=2.34
pkgrel=0
pkgrel=1
pkgdesc="Tools necessary to build programs for armv7 targets"
url="https://www.gnu.org/software/binutils/"
makedepends_build=""
makedepends_host=""
makedepends="gettext libtool autoconf automake bison texinfo"
arch="armhf aarch64 x86_64 x86"
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
subpackages=""
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
binutils-ld-fix-static-linking.patch
gold-mips.patch
ld-bfd-mips.patch
"
builddir="$srcdir/binutils-$pkgver"
if [ "$CHOST" != "$CTARGET" ]; then
pkgname="binutils-$CTARGET_ARCH"
......@@ -28,16 +27,15 @@ fi
# secfixes:
# 2.32-r0:
# - CVE-2018-19931
# - CVE-2018-19932
# - CVE-2018-20002
# - CVE-2018-20712
# - CVE-2018-19931
# - CVE-2018-19932
# - CVE-2018-20002
# - CVE-2018-20712
# 2.28-r1:
# - CVE-2017-7614
# - CVE-2017-7614
build() {
_target="$(arch_to_hostspec armv7)"
cd "$builddir"
"$builddir"/configure \
--build="$CBUILD" \
--target=$_target \
......@@ -55,7 +53,6 @@ build() {
}
package() {
cd "$builddir"
make install DESTDIR="$pkgdir"
# remove man, info folders
......@@ -64,7 +61,7 @@ package() {
sha512sums="f47e7304e102c7bbc97958a08093e27796b9051d1567ce4fbb723d39ef3e29efa325ee14a1bdcc462a925a7f9bbbc9aee28294c6dc23850f371030f3835a8067 binutils-2.34.tar.bz2
sha512sums="2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd binutils-2.34.tar.xz
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch
314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch"
......@@ -3,7 +3,7 @@
pkgname=busybox-static-aarch64
pkgver=1.31.1
pkgrel=14
pkgrel=21
_arch="aarch64"
_mirror="http://dl-cdn.alpinelinux.org/alpine/"
......@@ -26,4 +26,4 @@ package() {
rm .PKGINFO .SIGN.*
}
sha512sums="d8b821b9f03837fde107cd6b4260b339c57c532d0c643d4bdf142c2cc33248029023238240a863117deed1ea3cb4531f51cbad0de4767f44801ce18cef4b3475 busybox-static-1.31.1-r14-aarch64.apk"
sha512sums="9b298f4393abfeacab93828d3afd789eeab4f45245781970e167ce83897c9ff3ede47e2327cfacb26d14c6966615f68b7f12603a206c23d02eb5c13c6aed6667 busybox-static-1.31.1-r21-aarch64.apk"
......@@ -3,7 +3,7 @@
pkgname=busybox-static-armhf
pkgver=1.31.1
pkgrel=14
pkgrel=21
_arch="armhf"
_mirror="http://dl-cdn.alpinelinux.org/alpine/"
......@@ -26,4 +26,4 @@ package() {
rm .PKGINFO .SIGN.*
}
sha512sums="ceeb5786a2ca8a904dece9b9b3132e883c03eeb216b9343def3faa2a0d64a4744ee359f991730c531859ed7e82baa88a9f95349265735ac6e1c539f28adf668e busybox-static-1.31.1-r14-armhf.apk"
sha512sums="f6e47ed398112d2e2d33a297d8f8a711ead5c7a10a5e6acf89b38b9d0ef51a51a5adffb5f08237754fd733eccf7df7c387d4435ca6b78806dbbb79ff3add5066 busybox-static-1.31.1-r21-armhf.apk"